具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接。可以是机械连接,也可以是电连接。可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
在一个实施例中,参考说明书附图1,示出了本发明提供的一种云端数据迁移方法的流程示意图。参考说明书附图2,示出了本发明提供的一种云端数据迁移方法的结构示意图。
本发明提供的一种云端数据迁移方法,包括:
S101:确定各个待迁移服务器中的待迁移数据。
需要说明的是,需要迁移数据的待迁移服务器的数量可能有多个,每个待迁移服务器中存放有部分的待迁移数据。本发明需要为每一个待迁移服务器多方面因素的考虑下寻找到最佳的迁入服务器,以完成数云端数据的迁移。
S102:根据待迁移数据量、迁移成本、迁移带宽以及待迁入服务器的可用容量,构建云端数据迁移目标函数。
需要说明的是,在为每一个待迁移服务器多方面因素的考虑下寻找到最佳的迁入服务器时,应当使得云端数据迁移目标函数的数值尽量大。
在一种可能的实施方式中,S102具体为:根据以下公式,构建云端数据迁移目标函数:
其中,J表示云端数据迁移目标函数,TB表示待迁入服务器的可用容量,λ 1表示待迁入服务器的可用容量的换算比例,B表示迁移带宽,λ 2表示迁移带宽的换算比例,C表示迁移成本,λ 3表示迁移成本的换算比例。
其中,迁移成本C的计算方式为:
其中,A表示待迁移数据量,B表示迁移带宽,c表示单位时间的迁移成本。
在本发明中,综合包括待迁移数据量、迁移成本、迁移带宽以及目标服务器的可用容量在内的多个因素构建目标函数,有助于综合权衡不同因素,以找到最佳的迁入服务器,从而实现更有效的数据迁移。
S103:根据云端数据迁移目标函数,确定接收各个待迁移服务器中的待迁移数据的待迁入服务器。
在本发明中,根据待迁移数据量、迁移成本、迁移带宽以及待迁入服务器的可用容量,构建云端数据迁移目标函数,之后根据云端数据迁移目标函数,确定接收各个待迁移服务器中的待迁移数据的待迁入服务器。在迁移成本的基础上,还综合考虑了待迁移数据量、迁移带宽以及待迁入服务器的可用容量,来最终确定如何进行数据迁移,避免服务器性能下降,减少网络拥堵,提升数据迁移效率,避免数据分散化和碎片化,提升云服务器的综合效能,为下一次数据迁移提供良好的基础。
在一种可能的实施方式中,S103具体包括子步骤S1031至S1036:
S1031:根据待迁入服务器的数量m,初始化具有m个粒子的粒子群。
S1032:确定初始搜寻速度和初始搜寻位置,对各个待迁移数据的全局最优位置进行搜寻。
S1033:在搜寻过程中引入惯性权重因子和收缩因子,将搜寻范围向全局最优位置不断缩小。
其中,惯性权重因子可表示为:
其中,w表示惯性权重因子,x表示当前粒子搜寻位置,J(x)表示当前粒子搜寻位置处的目标函数值,e表示自然对数,j表示迭代次数。
在本发明中,引入惯性权重因子w,使得算法在迭代前期选择较大的惯性权重因子w,避免算法过早收敛而陷入局部最优解,而在迭代后期使用较小的惯性权重因子w进行更加细致的布局搜索,可以提升寻找全局最优位置的稳定性。
其中,收缩因子可表示为:
其中,ρ表示收缩因子,E表示平衡因子。
在本发明中,引入收缩因子ρ,可以将搜寻范围向全局最优位置不断缩小,避免搜寻范围远离最优位置提高了搜寻的准确性。
S1034:根据以下公式,更新种群搜寻速度和搜寻位置:
其中,表示第i个粒子在第j+1次迭代时的搜寻速度,/>表示第i个粒子在第j次迭代时的搜寻速度,E表示平衡因子,s表示步长因子,rand表示介于0到1之间的随机数,表示第i个粒子在第j+1次迭代时的搜寻位置,/>表示第i个粒子在第j次迭代时的搜寻位置。
需要说明的是,在每次迭代中,粒子的搜寻速度和位置都会根据目标函数的值进行调整,以响应不断变化的环境,寻找更好的解决方案,有助于在复杂问题中找到全局最优解。
S1035:直至搜寻位置收敛或者达到预设迭代次数,确定出待迁移数据的全局最优位置。
S1036:根据各个待迁移数据的全局最优位置,确定接收各个待迁移服务器中的待迁移数据的待迁入服务器。
在本发明中,通过使用粒子群优化算法,可以寻找每个待迁移数据的全局最优位置,在多个潜在的迁入服务器中,可以选择最优的服务器,以最大程度地满足云端数据迁移目标函数,有助于优化整个数据迁移过程。在迁移成本的基础上,还综合考虑了待迁移数据量、迁移带宽以及待迁入服务器的可用容量,来最终确定如何进行数据迁移,避免服务器性能下降,减少网络拥堵,提升数据迁移效率,避免数据分散化和碎片化,提升云服务器的综合效能,为下一次数据迁移提供良好的基础。
S104:对各个待迁移服务器中的待迁移数据进行转换。
具体而言,将待迁移数据转换为JSON格式。
其中,JSON格式是一种通用数据交换格式,几乎在所有编程语言和平台上都有解析器和支持。这意味着无论迁移数据是从哪个平台到另一个平台,都可以轻松解析和处理JSON数据,而不需要担心兼容性问题。
S105:根据预设的理想文件大小,对转换后的数据进行分割。
优选地,根据科学研究,理想文件大小约为4MB。
在本发明中,根据预设的理想文件大小,对转换后的数据进行分割,避免分割的数据太小导致文件过多,导致迁移处理量增加,迁移效率降低,也避免分割的数据太大,导致云迁移时间的增加。通过将数据分割为适当的理想文件大小,有助于提高数据迁移效率,降低迁移成本。
在实际应用过程中,很难精确地分割出理想文件大小的子数据,为此,需要采用新型的数据分割方法。
在一种可能的实施方式中本发明提出了一种全新的数据分割方法,S105具体包括子步骤S1051至S1053:
S1051:从加密后的数据中分割出第一子数据。
S1052:根据第一子数据的文件大小与理想文件大小的关系,确定第二子数据的实际数据行数,并从加密后的数据中分割出第二子数据:
其中,h 2表示第二子数据的实际数据行数,表示第二子数据的理想数据行数,μ表示调节参数,h 1表示第一子数据的实际数据行数,S 1表示第一子数据的文件大小,S *表示理想文件大小。
S1053:依据同样的方式,从加密后的数据中分割出其他子数据:
其中,h k 表示第k个子数据的实际数据行数,表示第k个子数据的理想数据行数,h k-1表示第k-1个子数据的实际数据行数,S k-1表示第k-1个子数据的文件大小。
在本发明中,根据理想数据行数以及实际数据行数动态地确定分割出的数据行数,以尽量保持分割出的文件大小为理想文件大小,实现方式简单,并且能够满足控制数据文件大小的要求。
S106:对分割后的数据进行加密。
在一种可能的实施方式中,S106具体包括子步骤S1061至S1065:
S1061:确定对整个待迁移数据进行加密的私钥以及公钥。
在一种可能的实施方式中,子步骤S1061具体包括孙步骤S10611至S10614:
S10611:选择两个大素数a和b,计算以及/>:
S10612:随机选择一个整数r,使得随机数r满足:
其中,表示随机数r与/>互质。
S10613:计算随机数r的逆元:
S10614:将(G,r)作为私钥SK,将(G,d)作为公钥EK,mod表示取模运算。
在本发明中,使用非对称加密算法生成私钥和公钥,可以提高数据的安全性。私钥作为加密密钥仅在数据迁移过程中使用,不需要共享给其他人,而公钥可以公开传播。这种方法允许只有私钥持有者能够解密数据,从而保护数据免受未经授权的访问。
在一种可能的实施方式中,子步骤S1061还包括孙步骤S10615:
S10615:构建关于随机数r和逆元d的混沌映射关系式:
其中,n表示验证次数,r n 表示第n次验证时的随机数,r n+1表示第n+1次验证时的随机数,d n 表示第n次验证时的逆元,d n+1表示第n+1次验证时的逆元,β 1、β 2、β 3、β 4和β 5表示混沌参数且均为常数。
在本发明中,混沌映射关系式的作用是为了保护随机数r和逆元d,在后续的每一次验证中,随机数r和逆元d均会发生变化。现有技术中的混沌映射关系式,现有的二维混沌映射存在混沌参数范围不连续,参数空间中存在许多周期窗口,混沌行为较脆弱,当参数受到干扰时,会出现混沌行为很容易消失,发生混沌退化的问题。而本发明首先初始化两个参数多项式,然后通过模运算将任意值折叠到一个固定的范围内,最后从非线性多项式生成混沌映射,生成具有鲁棒混沌性的二维混沌映射,弥补了现有混沌映射关系式中存在的缺点。
S1062:根据整个待迁移数据的数字摘要以及私钥,计算待迁移数据的数字签名:
其中,sig表示数字签名,SK表示私钥,L 1表示待迁移数据的数字摘要,SHA.1表示SHA.1型哈希函数,M 1表示待迁移数据。
S1063:根据分割出的子数据的数量K,将数字签名分解为K个子签名。
S1064:通过第k个子签名与第k个子数据的实际数据行数,构建第k个子数据的加密密钥:
其中,K i 表示第k个子数据的加密密钥,Hash表示哈希运算,sig k 表示第k个子签名,h k 表示第k个子数据的实际数据行数。
S1065:通过第k个子签名对第k个子数据进行加密。
在本发明中,通过在子数据级别进行加密,可以更精细地控制和保护数据的安全性,每个子数据块都有自己的加密密钥和数字签名,这增加了数据的安全性,即使某个子数据块被泄露,也不会影响其他子数据块的安全性。
S107:将加密后的数据传输到相应的待迁入服务器中。
在一种可能的实施方式中,S107具体包括子步骤S1071至S1073:
S1071:获取待迁移服务器的导出流数量和待迁入服务器的导入流数量。
S1072:当待迁移服务器的导出流数量和待迁入服务器的导入流数量相等时,按照一一对应的关系搭建数据流,通过数据流传输加密后的数据。
S1073:当待迁移服务器的导出流数量和待迁入服务器的导入流数量不相等时,根据以下公式设置数据流数量:
其中,Num t 表示数据流数量,LCM表示最小公倍数,Num o 表示待迁移服务器的导出流数量,Num i 表示待迁入服务器的导入流数量。
将待迁移服务器的每个导出流导出的加密后的数据,平均交给个数据流,将/>个数据流中的数据合并交给待迁入服务器的一个导入流,以完成加密后的数据的传输。
在本发明中,通过根据待迁移服务器的导出流数量和待迁入服务器的导入流数量来动态调整数据流数量,可以充分利用可用的传输通道。这有助于避免某些服务器资源被浪费,同时确保数据以最大带宽传输,提高了整体数据迁移的速度。进一步地,平均分配每个导出流的加密后数据到多个数据流中,以及将多个数据流的数据合并到一个导入流中,有助于平衡各个服务器之间的数据传输负载,实现负载均衡,确保数据传输均匀分布,减少了潜在的性能瓶颈。
S108:对接收的数据进行解密。
S109:对解密后的数据进行装载。
其中,装载过程包括对解密后的数据进行组装以及格式转换。具体可以是由JSON格式转换为原格式。
S110:对装载后的数据进行一致性检验。
在一种可能的实施方式中,S110具体包括子步骤S1101和S1102:
S1101:计算装载后的数据的数字摘要:
其中,L 2表示装载后的数据的数字摘要,SHA.1表示SHA.1型哈希函数,M 2表示装载后的数据。
S1102:检验待迁移数据的数字摘要L 1与装载后的数据的数字摘要L 2是否一致,若是,通过一致性检验,否则,不通过一致性检验。
在本发明中,计算装载后的数据的数字摘要(L 2)并将其与原始数据的数字摘要(L 1)进行比较,可以检测在数据传输和装载过程中是否发生了任何意外的数据损坏或篡改。如果L 1与L 2不一致,这可能表明在数据传输或装载过程中出现了问题,需要进一步的调查和处理,有助于确保数据在迁移过程中的完整性。进一步地,通过一致性检验,可以验证数据是否在迁移过程中受到了合法性的保护,并且没有被未经授权的访问或篡改,这一点对于确保数据的可信性和安全性非常重要,特别是对于敏感数据或关键业务数据。
S111:当通过一致性检验时,完成迁移。当未通过一致性检验时,提示迁移失败。
与现有技术相比,本发明至少具有以下有益技术效果:
(1)在本发明中,根据待迁移数据量、迁移成本、迁移带宽以及待迁入服务器的可用容量,构建云端数据迁移目标函数,之后根据云端数据迁移目标函数,确定接收各个待迁移服务器中的待迁移数据的待迁入服务器。在迁移成本的基础上,还综合考虑了待迁移数据量、迁移带宽以及待迁入服务器的可用容量,来最终确定如何进行数据迁移,避免服务器性能下降,减少网络拥堵,提升数据迁移效率,避免数据分散化和碎片化,提升云服务器的综合效能,为下一次数据迁移提供良好的基础。
(2)在本发明中,根据预设的理想文件大小,对转换后的数据进行分割,避免分割的数据太小导致文件过多,导致迁移处理量增加,迁移效率降低,也避免分割的数据太大,导致云迁移时间的增加。通过将数据分割为适当的理想文件大小,有助于提高数据迁移效率,降低迁移成本。
实施例2
在一个实施例中,本发明提供的一种云端数据迁移系统,用于执行实施例1中的云端数据迁移方法。
本发明提供的一种云端数据迁移系统可以实现上述实施例1中的云端数据迁移方法的步骤和效果,为避免重复,本发明不再赘述。
与现有技术相比,本发明至少具有以下有益技术效果:
(1)在本发明中,根据待迁移数据量、迁移成本、迁移带宽以及待迁入服务器的可用容量,构建云端数据迁移目标函数,之后根据云端数据迁移目标函数,确定接收各个待迁移服务器中的待迁移数据的待迁入服务器。在迁移成本的基础上,还综合考虑了待迁移数据量、迁移带宽以及待迁入服务器的可用容量,来最终确定如何进行数据迁移,避免服务器性能下降,减少网络拥堵,提升数据迁移效率,避免数据分散化和碎片化,提升云服务器的综合效能,为下一次数据迁移提供良好的基础。
(2)在本发明中,根据预设的理想文件大小,对转换后的数据进行分割,避免分割的数据太小导致文件过多,导致迁移处理量增加,迁移效率降低,也避免分割的数据太大,导致云迁移时间的增加。通过将数据分割为适当的理想文件大小,有助于提高数据迁移效率,降低迁移成本。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。