CN113315800A - 镜像存储、下载方法、设备以及系统 - Google Patents
镜像存储、下载方法、设备以及系统 Download PDFInfo
- Publication number
- CN113315800A CN113315800A CN202010124217.9A CN202010124217A CN113315800A CN 113315800 A CN113315800 A CN 113315800A CN 202010124217 A CN202010124217 A CN 202010124217A CN 113315800 A CN113315800 A CN 113315800A
- Authority
- CN
- China
- Prior art keywords
- area
- thread
- region
- file
- download
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 177
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000012634 fragment Substances 0.000 claims abstract description 153
- 238000013467 fragmentation Methods 0.000 claims abstract description 19
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 19
- 230000006835 compression Effects 0.000 description 35
- 238000007906 compression Methods 0.000 description 35
- 238000013461 design Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006837 decompression Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013213 extrapolation Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种镜像存储、下载方法、设备以及系统。所述方法包括:一种镜像存储方法,运用于云平台的区域,所述云平台包括至少两个区域,每个区域包括多台计算节点用于运行存储模块、分片模块、对象存储模块以及拷贝模块,所述方法包括:第一区域内运行的存储模块存储镜像,其中,所述镜像是文件的副本;所述第一区域内运行的分片模块将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储模块中;所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,其中,所述第一区域和所述第二区域位于不同的地理位置。上述方法能够有效提高镜像下载的效率。
Description
技术领域
本申请涉及云技术领域,尤其涉及一种镜像存储、下载方法、设备以及系统。
背景技术
镜像是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。在实际应用中,可以将一个或者多个文件制作一个镜像,然后,将该镜像进行还原后,又可以恢复成一个或者多个文件。
但是,镜像的下载往往需要比较多的时间,下载的效率并不高,极大地影响用户的体验。
发明内容
为了解决上述问题,本申请提供了一种镜像存储、下载方法、设备以及系统,能够有效提高镜像下载的效率。
第一方面,提供了一种镜像存储方法,运用于云平台的区域,所述云平台包括至少两个区域,每个区域包括多台计算节点用于运行存储模块、分片模块、对象存储模块以及拷贝模块,所述方法包括:
第一区域内运行的存储模块存储镜像,其中,所述镜像是文件的副本;
所述第一区域内运行的分片模块将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储模块中;
所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,其中,所述第一区域和所述第二区域位于不同的地理位置。
在一些可能的设计中,所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,包括:
所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
在一些可能的设计中,所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,包括:
所述第一区域内运行的拷贝模块在所述高速通道的使用率小于预设阈值时,将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
在一些可能的设计中,所述方法还包括:
所述第一区域内运行的加密模块将镜像输入完整性加密算法,从而得到第一加密值;
所述第一区域内运行的加密模块将所述第一加密值存储在所述第一区域中内运行的对象存储模块中。
第二方面,提供了一种镜像下载方法,包括:
下载端接收镜像创建请求,所述镜像创建请求用于向云平台请求下载镜像,所述镜像包括多个分片文件,所述云平台包括至少两个区域,每个区域包括多台计算节点用于存储所述多个分片文件,每个区域位于不同的地理位置;
所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件;
所述下载端将下载得到的所述多个分片文件进行合并,获取所述镜像。
在一些可能的设计中,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第n线程,所述区域包括:第一区域、第二区域,…,第n区域,其中,m和n均为正整数,并且,m大于n;所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件,包括:
在T0时刻,下载端通过第一线程以第一下载速率下载从第一区域中下载第一个分片文件,通过第二线程以第二下载速率从第二区域中下载第二个分片文件,…,通过第n线程以第n下载速率从第n区域中下载第n个分片文件;其中,第i下载速率是n个下载速率中最大的下载速率,i为正整数,并且,0<i≤n;
在T1时刻,下载端结束通过第i线程以第i下载速率从第i区域中下载第i个分片文件,启动第i线程以第i下载速率从第i区域中下载第n+1个分片文件,并且,其他的线程保持不变。
在一些可能的设计中,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件,包括:
所述下载端通过第一线程从第一区域中下载第一分片文件,通过第二线程从第二区域中下载第二分片文件,…,通过第m线程从第m区域中下载第m分片文件。
在一些可能的设计中,所述分片文件包括:第一组分片文件、第二组分片文件,…,第m组分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件,包括:
下载端通过第一线程下载从第一区域中下载第一组分片文件,通过第二线程从第二区域中下载第二组分片文件,…,通过第m线程从第m区域中下载第m组分片文件。
在一些可能的设计中,所述方法还包括:
所述下载端下载第一加密值,其中,所述第一加密值为使用完整性加密算法对分片前的镜像进行加密得到的;
所述下载端通过所述完整性加密算法对还原后的镜像进行加密,从而得到第二加密值;
在所述第一加密值和所述第二加密值相同的情况下,确定所述还原后的镜像和所述分片前的镜像是相同的。
第三方面,提供了一种计算节点集群,所述计算节点集群构成第一区域,所述计算节点集群包括:存储模块、分片模块以及对象存储模块,
所述存储模块用于存储镜像,其中,所述镜像是文件的副本;
所述分片模块用于将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储模块中;
所述拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,其中,所述第一区域和所述第二区域位于不同的地理位置。
在一些可能的设计中,所述拷贝模块具体用于将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
在一些可能的设计中,所述拷贝模块具体用于在所述高速通道的使用率小于预设阈值时,将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
在一些可能的设计中,所述计算节点集群还包括加密模块,
所述加密模块用于将镜像输入完整性加密算法,从而得到第一加密值;
所述加密模块用于将所述第一加密值存储在所述第一区域内运行的对象存储模块中。
第四方面,提供了一种下载端,包括接收模块、下载模块以及合并模块,
所述接收模块用于接收镜像创建请求,所述镜像创建请求用于向云平台请求下载镜像,所述镜像包括多个分片文件,所述云平台包括至少两个区域,每个区域包括多台计算节点用于存储所述多个分片文件,每个区域位于不同的地理位置;
所述下载模块用于创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件;
所述合并模块用于将下载得到的所述多个分片文件进行合并,获取所述镜像。
在一些可能的设计中,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第n线程,所述区域包括:第一区域、第二区域,…,第n区域,其中,m和n均为正整数,并且,m大于n;所述下载模块具体用于:
在T0时刻,下载端通过第一线程以第一下载速率下载从第一区域中下载第一个分片文件,通过第二线程以第二下载速率从第二区域中下载第二个分片文件,…,通过第n线程以第n下载速率从第n区域中下载第n个分片文件;其中,第i下载速率是n个下载速率中最大的下载速率,i为正整数,并且,0<i≤n;
在T1时刻,下载端结束通过第i线程以第i下载速率从第i区域中下载第i个分片文件,启动第i线程以第i下载速率从第i区域中下载第n+1个分片文件,并且,其他的线程保持不变。
在一些可能的设计中,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,
所述下载模块具体用于通过第一线程从第一区域中下载第一分片文件,通过第二线程从第二区域中下载第二分片文件,…,通过第m线程从第m区域中下载第m分片文件。
在一些可能的设计中,所述分片文件包括:第一组分片文件、第二组分片文件,…,第m组分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,
所述下载模块具体用于通过第一线程下载从第一区域中下载第一组分片文件,通过第二线程从第二区域中下载第二组分片文件,…,通过第m线程从第m区域中下载第m组分片文件。
在一些可能的设计中,所述下载端还包括加密模块以及确定模块,
所述下载模块还用于下载第一加密值,其中,所述第一加密值为使用完整性加密算法对分片前的镜像进行加密得到的;
所述加密模块用于通过所述完整性加密算法对还原后的镜像进行加密,从而得到第二加密值;
所述确定模块用于在所述第一加密值和所述第二加密值相同的情况下,确定所述还原后的镜像和所述分片前的镜像是相同的。
第五方面,提供了一种计算节点集群,包括至少一个计算节点,所述计算节点包括处理器和存储器,所述处理器执行所述存储器中的代码执行如第一方面任一项所述的方法。
第六方面,提供了包括处理器和存储器,所述处理器执行所述存储器中的代码执行如第二方面任一项所述的方法。
第七方面,提供了一种计算机可读存储介质,包括指令,当所述指令在计算设备上运行时,使得所述计算设备执行如第一方面或者第二方面任一项所述的方法。
第八方面,提供了一种计算机程序产品,当所述计算机程序产品被终端设备读取并执行时,如第一方面或第二方面任一项所述的方法将被执行。
上述方案中,镜像被分成几个分片文件,并拷贝到多个不同的区域中,下载端可以启动多个线程以从不同的区域中分别下载镜像的分片,即,下载端可以同时从多个通道并发下载镜像的各个分片文件,因此,能够有效提高镜像下载的效率。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请涉及的一种云平台的示意图;
图2是本申请中下载端从云平台下载镜像的示意图;
图3是本申请中云平台将多个分片文件从一个区域拷贝到多个区域的示意图;
图4A至图4C是下载端通过动态方式从多个区域下载多个分片文件的各个时刻的示意图;
图5A至图5D是下载端通过静态方式从多个区域下载多个分片文件的示意图;
图6是本申请提供的一种镜像上传下载方法的流程示意图;
图7是本申请涉及的一种云平台的结构示意图;
图8是本申请涉及的一种下载端的结构示意图;
图9是本申请提供的一种种镜像下载系统的示意图。
具体实施方式
云平台也称为云计算平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力的平台。如图1所示,云平台通常包括多个区域,例如,区域1、区域2、…、区域T。每个区域包括多台计算节点,不同的区域之间具有高速通道,可以便于区域之间进行数据传输。区域的划分方式可以有多种,例如,可以划分为美国区域、英国区域、加拿大区域、法国区域以及中国区域等等,可以划分为华东区域、华南区域、华西区域、华北区域以及华中区域等等,也可以划分为北京区域、上海区域、广州区域、深圳区域以及重庆区域等等。应理解,上述举例仅用于说明,并不能构成具体限定。
如图2所示,云平台上提供有丰富的镜像(image)供下载者选择下载。具体地,上传者可以将镜像发布到云平台上,下载者可以从云平台上下载镜像,从而完成上传者和下载者之间的交易。其中,
上传者可以是公有云、私有云、混合云或者终端设备等等。这里,终端设备可以是智能手机、掌上处理设备、平板电脑、个人电脑、移动笔记本、虚拟现实设备、一体化掌机、车载设备、智能会议设备、智能广告设备、智能家电、可穿戴设备等等,其中,可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备可以是直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备可以通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。应理解,上述举例仅用于说明,并不能构成具体限定。
下载者同样可以是公有云、私有云、混合云或者终端设备等等,此处不再展开描述。
云平台可以是公有云、私有云或者混合云等等。当载体为公有云时,云市场可以称之为公有云市场;当载体为私有云时,云市场可以称之为私有云市场;当载体为混合云时,云市场可以称之为混合云市场。应理解,上述云平台的例子仅仅是作为具体的举例,在实际应用中,随着技术的发展会衍生更多种类的云,此处不作具体的限定。
镜像的容量有很多数量级别,例如,可以是千(K)级别、兆(M)级别、千兆(G)级别、太(T)级别、拍(P)级别、艾(E)级别、泽(Z)级别以及尧(Y)等等。制作镜像的文件可以是多种多样的,例如,操作系统、应用软件、服务以及游戏等等。在一般情况下,应用软件制作成的镜像的级别可能是兆级别的,操作系统制作成的镜像的级别可能是千兆级别的,服务制作成的镜像的级别可能是太级别的等等。可以理解,上述镜像的数量级别的例子仅仅是作为具体的举例,在实际应用中,随着技术的高速发展,可能会出现越来越多更高的数量级别,此次不作具体限定。
但是,随着镜像越来越庞大,下载镜像所需要的时间会越来越长,而且,当镜像更新的时候,需要全部重新下载,导致不必要的时间浪费。
为了解决上述问题,本申请提供一种镜像存储、下载方法、设备以及系统,能够有效地减少下载镜像所需要的时间。
在发布镜像时,云平台的第一区域中运行的加密模块将镜像输入完整性加密算法,从而得到第一加密值。在一具体的实施例中,完整性加密算法可以表示为:
y1=f(x1)
其中,x1表示为镜像,y1表示为第一加密值,f()表示为加密算法,即,镜像和第一加密值之间的映射关系。其中,加密算法可以包括SHA-256等等。以SHA-256算法为例,以数据分解成512bit大小的块,假设分成n个小块,算法即完成n次迭代,n次迭代的结果为最终的哈希值,即,256bit的数字摘要,即为第一加密值。应理解,上述完整性加密算法的例子仅仅是作为具体的举例,不应构成具体的限定。
云平台的第一区域中运行的压缩模块将镜像输入压缩算法进行压缩,从而得到压缩文件。在一具体的实施例中,压缩算法可以表示为:
b=g(a)
其中,a表示为镜像,b表示为压缩文件,g()表示为压缩算法,即,镜像和压缩文件之间的映射关系。其中,压缩算法可以是无损压缩算法或者有损压缩算法。无损压缩算法可以是霍夫曼(Huffman)算法和LZW(Lenpel-Ziv&Welch)压缩算法等等。有损压缩算法可以是脉冲编码调制(Pulse Code Modulation,PCM)、预测编码,变换编码,插值和外推法,统计编码,矢量量化和子带编码等等。应理解,上述压缩算法的例子仅仅是作为具体的举例,不应构成具体的限定。
云平台的第一区域中运行的分片模块将压缩文件分成多个分片文件,并存储在第一区域内运行的对象存储模块中。这里,分片文件的大小可以是相同的,也可以是不同的。其中,分片文件的大小受压缩文件大小、下载速度要求、带宽的大小、线程的数量等等的因素影响。例如,压缩文件的大小越大,则分片文件的大小越大;下载速度要求越快,则分片文件的大小越小;带宽的大小越大,则分片文件的大小越大;线程的数量越多,则分片文件的大小越小。应理解,上述影响因素的例子仅仅是作为具体的举例,不应构成具体的限定。
云平台的第一区域中运行的拷贝模块可以按照复制策略将第一区域中的多个分片文件以及第一加密值复制到其他区域的对象存储模块中。其中,复制策略可以是将第一区域中的对象存储模块的多个分片文件在闲时复制到其他区域的对象存储模块中。这里,闲时是指高速通道的使用率小于预设阈值等等。以图3所示为例,云平台包括区域1、区域2、…、区域T。云平台的区域1中存储了两个镜像,其中,镜像1被分成分片文件1、分片文件2、…、分片文件m,镜像2被分成分片文件1、分片文件2、…、分片文件n。云平台将区域1中的对象存储模块的镜像1和镜像2在闲时分别复制到区域2、区域3、…、区域T的对象存储模块。可以理解,上述例子仅仅是作为举例,在实际应用中,还可以将镜像1和镜像2分别复制到区域1、区域2、…、区域S中的对象存储模块,S<T;还可以将镜像1分别复制到区域1、区域2、…、区域S的对象存储模块中,将镜像2的对象存储模块复制到区域S+1、区域S+2、…、区域T的对象存储模块中;还可以将镜像1复制到区域1、区域2、…、区域S的对象存储模块中,将镜像2复制到区域S-2、区域S-1、区域S、区域S+1、…、区域T的对象存储模块中,也就是说,有部分区域的对象存储模块中只复制了镜像1,有部分区域的对象存储模块中只复制了镜像2,还有部分区域的对象存储模块中同时复制了镜像1和镜像2,此次不做具体限定。
下载端启动多线程从多个区域下载所述多个分片文件。这里,下载端通过多线程下载多个分片文件的方式可以包括动态方式以及静态加密算法。
下面将详细介绍下载端通过多线程以动态方式下载多个分片文件的具体做法。
在下载端动态启动多线程从多个区域下载所述多个分片文件方式中,遵循谁先下载完成,谁继续下载下一个文件分片的原则。下面结合具体的实施例进行说明,假设云平台上的镜像被分成了分片文件1、分片文件2、…、分片文件m,并且,镜像的m个分片文件分别被拷贝到区域2、区域3的对象存储模块中。下载端启动了线程1、线程2以及线程3。在T0时刻,如图4A所示,线程1以1.52Mb/S的下载速率从区域1下载分片文件1,线程2以2.58Mb/S的下载速率从区域2下载分片文件2,线程3以4.62Mb/S的下载速率从区域3下载分片文件3。在T1时刻,如图4B所示,线程1继续以1.52Mb/S的下载速率从区域1下载分片文件1,线程2继续以2.58Mb/S的下载速率从区域2下载分片文件2,线程3已经完成了从区域3下载分片文件3,于是,线程3继续从区域3下载分片文件4,在T2时刻,如图4C所示,线程1继续以1.52Mb/S的下载速率从区域1下载分片文件1,线程2已经完成了从区域2下载分片文件2,线程3继续以4.62Mb/S的下载速率从区域3下载分片文件4,于是,线程2继续从区域2下载分片文件5,依次类推,直到完成m个文件下载。应理解,图4A和图4C所示的实施例仅仅是一个具体的实施例,在其他的实施例中,区域的数量、线程的数量以及下载速率等等还可以是其他的数值,此处不作具体限定。
除了上述下载端以动态方式通过多线程下载多个分片文件之外,还包括以下几种以静态方式通过多线程下载多个分片文件:
在第一种方式中,以图5A所示为例,云平台上区域1中的镜像被分成了分片文件1、分片文件2、…、分片文件m总共m个分片文件,并且,镜像的m个分片文件分别被顺序拷贝到区域2、区域3以及区域m的对象存储模块中。下载端启动了线程1、线程2、…、线程m。其中,下载端通过线程1下载从区域1的对象存储模块中下载分片文件1,通过线程2从区域2的对象存储模块中下载分片文件2,…,通过线程m从区域m的对象存储模块中下载分片文件m。可以理解,本方式适用于分片文件数量不多的场景,或者,云平台中具有很多的区域的对象存储模块拷贝了镜像文件的场景。
在第二种方式中,以图5B所示为例,云平台上的镜像被分成了第一组分片文件、第二组分片文件、…、第m组分片文件,并且,镜像的m组分片文件分别被拷贝到区域2的对象存储模块中、区域3的对象存储模块中以及区域m的对象存储模块中。其中,第一组分片文件包括分片文件1,1、分片文件2,1、…、分片文件n,1;第二组分片文件包括分片文件1,2、分片文件2,2、…、分片文件n,2;…;第m组分片文件包括分片文件1,m、分片文件2,m、…、分片文件n,m。下载端启动了线程1、线程2、…、线程m。其中,下载端通过线程1从区域1的对象存储模块中下载第一组分片文件,通过线程2从区域2的对象存储模块中下载第二组分片文件,…,通过线程m从区域m的对象存储模块中下载第m组分片文件。可以理解,本方式适用于分片文件数量较多的场景,或者,云平台中具有较少的区域的对象存储模块中拷贝了镜像文件的场景。
上述的方式仅仅作为具体的实施例,在实际应用中,还可以在上述方式的基础上进行变形,此处不作具体限定。下面将分别进行详细的介绍。
针对第一种方式,以图5C所示为例,云平台上的镜像被分成了分片文件1、分片文件2、…、分片文件m,并且,镜像的m个分片文件分别被拷贝到区域2的对象存储模块中、区域3的对象存储模块中以及区域m-n的对象存储模块中。下载端启动了线程1、线程2、…、线程m-n。其中,下载端先通过线程1从区域1的对象存储模块中下载分片文件1,通过线程2从区域2的对象存储模块中下载分片文件2,…,通过线程m-n从区域m-n的对象存储模块中下载分片文件m-n,下载分片文件m-n+1,…,下载分片文件m。
针对第二种方式,以图5D所示为例,云平台上的镜像被分成了第一组分片文件、第二组分片文件、…、第m组分片文件,并且,镜像的m组分片文件分别被拷贝到区域2的对象存储模块中、区域3的对象存储模块中以及区域m的对象存储模块中。其中,第一组分片文件包括分片文件1,1、分片文件2,1、…、分片文件n,1;第二组分片文件包括分片文件1,2、分片文件2,2、…、分片文件n,2;…;第m组分片文件包括分片文件1,m、分片文件2,m、…、分片文件n-1,m。下载端启动了线程1、线程2、…、线程m。其中,下载端通过线程1从区域1的对象存储模块中下载第一组分片文件,通过线程2从区域2的对象存储模块中下载第二组分片文件,…,通过线程m从区域m的对象存储模块中下载第m组分片文件。
应理解,上述的变形方式仅仅是众多变形方式中的一部分,在实际应用中,还可以有更多的变形方式,此处不做具体限定。
下载端除了下载镜像的分片文件之外,还从其中一个区域或者多个区域获取完整性加密算法及第一加密值。
下载端将下载得到的多个分片文件进行合并,从而还原得到压缩文件。具体地,下载到下载端的分片文件可以采用高速SSD盘进行存储、并后端异步存储至最终存储介质(如NAS、对象存储等)。另外,合并后得到的合并文件也可以采用高速SSD盘进行存储。
下载端将压缩文件输入解压缩算法进行压缩,从而还原得到镜像。在一具体的实施例中,解压缩算法可以表示为:
a=g-1(b)
其中,a表示为镜像,b表示为压缩文件,g-1()表示为解压缩算法,即,压缩文件和镜像之间的映射关系。其中,解压缩算法可以是无损压缩算法的逆运算或者有损压缩算法的逆运算。无损压缩算法的逆运算可以是霍夫曼(Huffman)算法的逆运算和LZW(Lenpel-Ziv&Welch)压缩算法的逆运算等等。有损压缩算法的逆运算可以是脉冲编码调制(PulseCode Modulation,PCM)的逆运算、预测编码的逆运算,变换编码的逆运算,插值的逆运算和外推法的逆运算,统计编码的逆运算,矢量量化的逆运算和子带编码的逆运算等等。应理解,上述解压缩算法的例子仅仅是作为具体的举例,不应构成具体的限定。
下载端将云平台将还原的镜像输入完整性加密算法,从而得到第二加密值。在一具体的实施例中,完整性加密算法可以表示为:
y2=f(x2)
其中,x2表示为还原的镜像,y2表示为第二加密值,f()表示为完整性加密算法,即,还原的镜像和第二加密值之间的映射关系。在第一加密值和第二加密值相同的时候,说明还原的镜像正确无误,在第一加密值和第二加密值不相同的时候,说明还原的镜像出现错误,需要被重新下载。这里,云平台使用完整性加密算法和下载端使用的完整性加密算法是相同的完整性加密算法。
如图6所示,图6是本申请提供的一种镜像上传下载方法的流程示意图。如图6所示,本申请涉及的镜像上传方法,运用于云平台的区域,所述云平台包括至少两个区域,每个区域包括多台计算节点用于运行存储模块、分片模块、对象存储模块以及拷贝模块,这里,第一区域内运行的存储模块存储镜像,所述方法包括:
S101:所述第一区域内运行的分片模块将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储模块中。
在本申请具体的实施例中,分片文件的大小可以是相同的,也可以是不同的。其中,分片文件的大小受压缩文件大小、下载速度要求、带宽的大小、线程的数量等等的因素影响。例如,压缩文件的大小越大,则分片文件的大小越大;下载速度要求越快,则分片文件的大小越小;带宽的大小越大,则分片文件的大小越大;线程的数量越多,则分片文件的大小越小。应理解,上述影响因素的例子仅仅是作为具体的举例,不应构成具体的限定。
S102:所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,其中,所述第一区域和所述第二区域位于不同的地理位置。
在本申请具体的实施例中,第一区域内运行的拷贝模块可以按照复制策略将第一区域的对象存储模块中的多个分片文件以及第一加密值复制到其他区域的对象存储模块中。其中,复制策略可以是将第一区域的对象存储模块中的多个分片文件在闲时复制到其他区域的对象存储模块中。这里,闲时是指高速通道的使用率小于预设阈值等等。
在本申请具体的实施例中,以图3所示为例,云平台包括区域1、区域2、…、区域T。云平台的区域1中存储了两个镜像,其中,镜像1被分成分片文件1、分片文件2、…、分片文件m,镜像2被分成分片文件1、分片文件2、…、分片文件n。云平台将区域1中的对象存储模块的镜像1和镜像2在闲时分别复制到区域2、区域3、…、区域T的对象存储模块。可以理解,上述例子仅仅是作为举例,在实际应用中,还可以将镜像1和镜像2分别复制到区域1、区域2、…、区域S中的对象存储模块,S<T;还可以将镜像1分别复制到区域1、区域2、…、区域S的对象存储模块中,将镜像2的对象存储模块复制到区域S+1、区域S+2、…、区域T的对象存储模块中;还可以将镜像1复制到区域1、区域2、…、区域S的对象存储模块中,将镜像2复制到区域S-2、区域S-1、区域S、区域S+1、…、区域T的对象存储模块中,也就是说,有部分区域的对象存储模块中只复制了镜像1,有部分区域的对象存储模块中只复制了镜像2,还有部分区域的对象存储模块中同时复制了镜像1和镜像2,此次不做具体限定。
S103:在接收镜像创建请求的情况下,所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件。
在本申请具体的实施例中,所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件方式可以包括动态方式以及静态方式。
在动态方式中,遵循谁先下载完成,谁继续下载下一个文件分片的原则。下面结合具体的实施例进行说明,假设镜像被分成了分片文件1、分片文件2、…、分片文件m,并且,镜像的m个分片文件分别被拷贝到区域2、区域3的对象存储模块中。下载端启动了线程1、线程2以及线程3。在T0时刻,如图4A所示,线程1以1.52Mb/S的下载速率从区域1的对象存储模块中下载分片文件1,线程2以2.58Mb/S的下载速率从区域2的对象存储模块中下载分片文件2,线程3以4.62Mb/S的下载速率从区域3的对象存储模块中下载分片文件3。在T1时刻,如图4B所示,线程1继续以1.52Mb/S的下载速率从区域1的对象存储模块中下载分片文件1,线程2继续以2.58Mb/S的下载速率从区域2的对象存储模块中下载分片文件2,线程3已经完成了从区域3的对象存储模块中下载分片文件3,于是,线程3继续从区域3的对象存储模块中下载分片文件4,在T2时刻,如图4C所示,线程1继续以1.52Mb/S的下载速率从区域1的对象存储模块中下载分片文件1,线程2已经完成了从区域2的对象存储模块中下载分片文件2,线程3继续以4.62Mb/S的下载速率从区域3的对象存储模块中下载分片文件4,于是,线程2继续从区域2的对象存储模块中下载分片文件5,依次类推,直到完成m个文件下载。应理解,图4A和图4C所示的实施例仅仅是一个具体的实施例,在其他的实施例中,区域的数量、线程的数量以及下载速率等等还可以是其他的数值,此处不作具体限定。
除了上述下载端以动态方式下载多个分片文件之外,还包括以下几种以静态方式下载多个分片文件:
在第一种方式中,以图5A所示为例,云平台上区域1中的镜像被分成了分片文件1、分片文件2、…、分片文件m总共m个分片文件,并且,镜像的m个分片文件分别被顺序拷贝到区域2、区域3以及区域m的对象存储模块中。下载端启动了线程1、线程2、…、线程m。其中,下载端通过线程1下载从区域1的对象存储模块中下载分片文件1,通过线程2从区域2的对象存储模块中下载分片文件2,…,通过线程m从区域m的对象存储模块中下载分片文件m。可以理解,本方式适用于分片文件数量不多的场景,或者,云平台中具有很多的区域的对象存储模块拷贝了镜像文件的场景。
在第二种方式中,以图5B所示为例,云平台上的镜像被分成了第一组分片文件、第二组分片文件、…、第m组分片文件,并且,镜像的m组分片文件分别被拷贝到区域2的对象存储模块中、区域3的对象存储模块中以及区域m的对象存储模块中。其中,第一组分片文件包括分片文件1,1、分片文件2,1、…、分片文件n,1;第二组分片文件包括分片文件1,2、分片文件2,2、…、分片文件n,2;…;第m组分片文件包括分片文件1,m、分片文件2,m、…、分片文件n,m。下载端启动了线程1、线程2、…、线程m。其中,下载端通过线程1从区域1的对象存储模块中下载第一组分片文件,通过线程2从区域2的对象存储模块中下载第二组分片文件,…,通过线程m从区域m的对象存储模块中下载第m组分片文件。可以理解,本方式适用于分片文件数量较多的场景,或者,云平台中具有较少的区域的对象存储模块中拷贝了镜像文件的场景。
上述的方式仅仅作为具体的实施例,在实际应用中,还可以在上述方式的基础上进行变形,此处不作具体限定。下面将分别进行详细的介绍。
针对第一种方式,以图5C所示为例,云平台上的镜像被分成了分片文件1、分片文件2、…、分片文件m,并且,镜像的m个分片文件分别被拷贝到区域2的对象存储模块中、区域3的对象存储模块中以及区域m-n的对象存储模块中。下载端启动了线程1、线程2、…、线程m-n。其中,下载端先通过线程1从区域1的对象存储模块中下载分片文件1,通过线程2从区域2的对象存储模块中下载分片文件2,…,通过线程m-n从区域m-n的对象存储模块中下载分片文件m-n,下载分片文件m-n+1,…,下载分片文件m。
针对第二种方式,以图5D所示为例,云平台上的镜像被分成了第一组分片文件、第二组分片文件、…、第m组分片文件,并且,镜像的m组分片文件分别被拷贝到区域2的对象存储模块中、区域3的对象存储模块中以及区域m的对象存储模块中。其中,第一组分片文件包括分片文件1,1、分片文件2,1、…、分片文件n,1;第二组分片文件包括分片文件1,2、分片文件2,2、…、分片文件n,2;…;第m组分片文件包括分片文件1,m、分片文件2,m、…、分片文件n-1,m。下载端启动了线程1、线程2、…、线程m。其中,下载端通过线程1从区域1的对象存储模块中下载第一组分片文件,通过线程2从区域2的对象存储模块中下载第二组分片文件,…,通过线程m从区域m的对象存储模块中下载第m组分片文件。
应理解,上述的变形方式仅仅是众多变形方式中的一部分,在实际应用中,还可以有更多的变形方式,此处不做具体限定。
S104:下载端将下载得到的多个分片文件进行合并,从而获取镜像。
为了保证上传的镜像和下载的镜像是一致,可以使用完整性加密算法进行校验。具体地:
云平台将镜像输入完整性加密算法,从而得到第一加密值。在一具体的实施例中,完整性加密算法可以表示为:
y1=f(x1)
其中,x1表示为镜像,y1表示为第一加密值,f()表示为加密算法,即,镜像和第一加密值之间的映射关系。
下载端将云平台将还原的镜像输入完整性加密算法,从而得到第二加密值。在一具体的实施例中,完整性加密算法可以表示为:
y2=f(x2)
其中,x2表示为还原的镜像,y2表示为第二加密值,f()表示为完整性加密算法,即,还原的镜像和第二加密值之间的映射关系。
在第一加密值和第二加密值相同的时候,说明还原的镜像正确无误,在第一加密值和第二加密值不相同的时候,说明还原的镜像出现错误,需要被重新下载。这里,云平台使用完整性加密算法和下载端使用的完整性加密算法是相同的完整性加密算法。其中,加密算法可以包括SHA-256等等。以SHA-256算法为例,以数据分解成512bit大小的块,假设分成n个小块,算法即完成n次迭代,n次迭代的结果为最终的哈希值,即,256bit的数字摘要,即为第一加密值。应理解,上述完整性加密算法的例子仅仅是作为具体的举例,不应构成具体的限定。
为了减少镜像的数据量,还可以对镜像进行压缩。具体地:
云平台将镜像输入压缩算法进行压缩,从而得到压缩文件。在一具体的实施例中,压缩算法可以表示为:
b=g(a)
其中,a表示为镜像,b表示为压缩文件,g()表示为压缩算法,即,镜像和压缩文件之间的映射关系。其中,压缩算法可以是无损压缩算法或者有损压缩算法。无损压缩算法可以是霍夫曼(Huffman)算法和LZW(Lenpel-Ziv&Welch)压缩算法等等。有损压缩算法可以是脉冲编码调制(Pulse Code Modulation,PCM)、预测编码,变换编码,插值和外推法,统计编码,矢量量化和子带编码等等。应理解,上述压缩算法的例子仅仅是作为具体的举例,不应构成具体的限定。
下载端将压缩文件输入解压缩算法进行压缩,从而还原得到镜像。在一具体的实施例中,解压缩算法可以表示为:
a=g-1(b)
其中,a表示为镜像,b表示为压缩文件,g-1()表示为解压缩算法,即,压缩文件和镜像之间的映射关系。其中,解压缩算法可以是无损压缩算法的逆运算或者有损压缩算法的逆运算。无损压缩算法的逆运算可以是霍夫曼(Huffman)算法的逆运算和LZW(Lenpel-Ziv&Welch)压缩算法的逆运算等等。有损压缩算法的逆运算可以是脉冲编码调制(PulseCode Modulation,PCM)的逆运算、预测编码的逆运算,变换编码的逆运算,插值的逆运算和外推法的逆运算,统计编码的逆运算,矢量量化的逆运算和子带编码的逆运算等等。应理解,上述解压缩算法的例子仅仅是作为具体的举例,不应构成具体的限定。
本申请还提供了一种镜像存储、下载系统,包括相互连接的云平台以及下载端。其中,云平台连接下载端。云平台用于在多个不同的区域中存储镜像,下载端用于从云平台的多个不同的区域中下载镜像。
参见图7,图7是本申请涉及的一种云平台的示意图。本申请的云系统包括:物理主机210、计算节点220、网络230以及对象存储设备240。其中,物理主机210、计算节点220以及对象存储设备240之间通过网络230进行连接。
物理主机210包括云管理平台211。其中,云管理平台211可以是AWS(Amazon WebService)、OpenStack、CloudStack、Hadoop、Apache Mesos、基于Docker的kubernetes、swarm等等,此处不作具体限定。云管理平台211可以包括计算服务212、存储服务213以及网络服务214。其中,计算服务212可以是云管理平台211中的计算组织控制器,是用于部署虚拟机等等的组件。存储服务213可以是云管理平台211中用于提供分布式、持续虚拟对象存储等等的组件。网络服务214可以是云管理平台211中用于提供了对网络节点的网络拓扑管理的组件。以云管理平台211为OpenStack为例,计算服务212可以是Nova,存储服务213可以是Swift,网络服务214可以是Neutron。此外,物理主体还包括操作系统215以及硬件216。其中,硬件216可以包括物理网卡217。
计算节点220自下而上包括硬件资源221、虚拟软件(Hypervisor)222、虚拟机(Virtual Machine,VM)223、操作系统224以及应用软件(Application,APP)225。其中,硬件资源221是计算节点中的基础物理硬件,可以包括处理器、内存、磁盘以及网络等等。虚拟软件222运行在硬件资源和虚拟机之间的中间软件层,例如,VMware vSphere、Hyper-V、Citrix XenServer、IBM PowerVM、Red Hat Enterprise Virtulization、HuaweiFusionSphere、KVM、Xen、VirtualBSD等,可允许多个虚拟机共享一套基础物理硬件。虚拟机223指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。操作系统(Operating System,OS)224是管理和控制计算机硬件与软件资源的计算机程序,用户和计算机的接口,同时也是计算机硬件和其他软件的接口,例如,SUNSolaris,IBM-AIX,HP-UX,FreeBSD,Red Hat Linux,CentOS,Debian,Ubuntu,Windows Server 2003,Windows Server2008,Windows Server 2008R2。应用软件225是用户可以使用的各种程序设计语言以及用各种程序设计语言编制的应用程序的集合,例如,office软件、ICQ软件、浏览器软件。虚拟软件222可以采用Hypervisor,它可以协调访问计算节点上的所有基础物理硬件和虚拟机,当计算节点启动并执行Hypervisor时,它会给每一台虚拟机分配适量的硬件资源,例如处理器、内存、磁盘和网络等等,并加载所有虚拟机的操作系统。
网络230提供了数据传输的通路,例如,光纤数据传输通路、电缆数据传输通路等等,此处不作具体限定。
对象存储设备240(Object-based Storage Device,OSD)具有一定的智能,能够自动管理其上的数据分布。
对象存储设备240用于存储镜像,其中,所述镜像是文件的副本;
计算节点220用于将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储设备240中;
计算节点220用于将存储在所述第一区域内运行的对象存储设备240中的所述多个分片文件拷贝到第二区域的对象存储设备240中,其中,所述第一区域和所述第二区域位于不同的地理位置。
上述物理服务器210、计算节点220以及对象存储设备240之间相互配合可以完成图6所示的镜像上传下载方法,具体参见图6以及相关描述,此处不再展开描述。
参见图8,图8是本申请涉及的一种下载端的示意图。本申请的下载端包括:第一处理器310、第一存储器320、智能网卡330以及总线340。
第一处理器310可以是一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及专用集成电路(Application Specific IntegratedCircuit,ASIC)等等。第一处理器310执行各种类型的数字存储指令,例如存储在第一存储器320中的软件或者固件程序。在一具体的实施例中,第一处理器310可以是x86处理器等等。第一处理器310通过物理接口将命令发送给第一存储器320,以完成存储相关的任务,例如,第一处理器310可以提供的命令包括读取命令、写入命令、复制命令以及擦除命令等等。所述命令可以指定与第一存储器320的特定页和块有关的操作。作为一个示例,一个命令可以请求将数据写入到特定物理页,或者,另一个命令可以请求擦除特定物理块。第一处理器310内可以虚拟出多个虚拟机,每个虚拟机上可以安装相应的操作系统。
第一存储器320可以包括是随机存取存储器(Random Access Memory,RAM)、快闪存储器(FlashMemory)等,也可以是RAM,只读存储器(Read-OnlyMemory,ROM)或者硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-StateDrive,SSD)。
智能网卡330,还被称为网络接口控制器、网络接口卡或者局域网(Local AreaNetwork,LAN)适配器。每块智能网卡330都有一个唯一的MAC地址,是智能网卡330厂家在生产时烧入只读存储芯片中的。智能网卡330包括第二处理器331、第二存储器332以及收发器333。第二处理器331与第一处理器320相类似,但是,第二处理器331的性能要求可以低于第一处理器320的性能要求。在一具体的实施例中,第二处理器331可以是ARM处理器等等。第二存储器332也可以是快闪存储器、HDD或者SDD,第二存储器332的存储容量可以小于第一存储器320的存储容量。收发器333可以用于接收和发送报文,并将接收到的报文上传给第二处理器331进行处理。智能网卡330还可以包括多个端口,端口可以是粗缆接口、细缆接口和双绞线接口三种接口类型中的任意一种或者多种。
收发器333用于接收镜像创建请求,所述镜像创建请求用于向云平台请求下载镜像,所述镜像包括多个分片文件,所述云平台包括至少两个区域,每个区域包括多台计算节点用于存储所述多个分片文件,每个区域位于不同的地理位置;
第一处理器310用于创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件;
第一处理器310用于将下载得到的所述多个分片文件进行合并,获取所述镜像。
为了简便起见,此处并没有对下载端展开描述,具体请参见图6所示的镜像上传下载方法以及相关描述,此处不再展开描述。
参见图9,图9是本申请提供的一种种镜像下载系统的示意图。本实施方式的镜像下载系统包括相互连接的云平台以及下载端。其中,所述云平台包括至少两个区域,每个区域包括多台计算节点用于运行存储模块、分片模块、对象存储模块以及拷贝模块,下载端用于从云平台的多个不同的区域中下载镜像。
如图9所示,第一区域包括:存储模块410、分片模块420、对象存储模块430以及拷贝模块440。其中,
所述存储模块410用于存储镜像,其中,所述镜像是文件的副本。
所述分片模块420用于将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储模块中;
所述拷贝模块440用于将存储在所述第一区域内运行的对象存储模块430中的所述多个分片文件拷贝到第二区域,其中,所述第一区域和所述第二区域位于不同的地理位置。
如图9所示,下载端包括:接收模块510、下载模块520以及合并模块530。
所述接收模块510用于接收镜像创建请求,所述镜像创建请求用于向云平台请求下载镜像,所述镜像包括多个分片文件,所述云平台包括至少两个区域,每个区域包括多台计算节点用于存储所述多个分片文件,每个区域位于不同的地理位置;
所述下载模块520用于创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件;
所述合并模块530用于将下载得到的所述多个分片文件进行合并,获取所述镜像。
为了简便起见,此处并没有对云平台以及下载端展开描述,具体请参见图6所示的镜像上传下载方法以及相关描述,此处不再展开描述。
上述方案中,镜像被分成几个分片文件,并拷贝到多个不同的区域中,下载端可以启动多个线程以从不同的区域中分别下载镜像的分片,即,下载端可以同时从多个通道并发下载镜像的各个分片文件,因此,能够有效提高镜像下载的效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。
Claims (21)
1.一种镜像存储方法,其特征在于,运用于云平台的区域,所述云平台包括至少两个区域,每个区域包括多台计算节点用于运行存储模块、分片模块、对象存储模块以及拷贝模块,所述方法包括:
第一区域内运行的存储模块存储镜像,其中,所述镜像是文件的副本;
所述第一区域内运行的分片模块将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储模块中;
所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,其中,所述第一区域和所述第二区域位于不同的地理位置。
2.根据权利要求1所述的方法,其特征在于,所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,包括:
所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
3.根据权利要求2所述的方法,其特征在于,所述第一区域内运行的拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,包括:
所述第一区域内运行的拷贝模块在所述高速通道的使用率小于预设阈值时,将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
4.根据权利要求1至3任一权利要求所述的方法,其特征在于,所述方法还包括:
所述第一区域内运行的加密模块将镜像输入完整性加密算法,从而得到第一加密值;
所述第一区域内运行的加密模块将所述第一加密值存储在所述第一区域中内运行的对象存储模块中。
5.一种镜像下载方法,其特征在于,包括:
下载端接收镜像创建请求,所述镜像创建请求用于向云平台请求下载镜像,所述镜像包括多个分片文件,所述云平台包括至少两个区域,每个区域包括多台计算节点用于存储所述多个分片文件,每个区域位于不同的地理位置;
所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件;
所述下载端将下载得到的所述多个分片文件进行合并,获取所述镜像。
6.根据权利要求5所述的方法,其特征在于,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第n线程,所述区域包括:第一区域、第二区域,…,第n区域,其中,m和n均为正整数,并且,m大于n;所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件,包括:
在T0时刻,下载端通过第一线程以第一下载速率下载从第一区域中下载第一个分片文件,通过第二线程以第二下载速率从第二区域中下载第二个分片文件,…,通过第n线程以第n下载速率从第n区域中下载第n个分片文件;其中,第i下载速率是n个下载速率中最大的下载速率,i为正整数,并且,0<i≤n;
在T1时刻,下载端结束通过第i线程以第i下载速率从第i区域中下载第i个分片文件,启动第i线程以第i下载速率从第i区域中下载第n+1个分片文件,并且,其他的线程保持不变。
7.根据权利要求5所述的方法,其特征在于,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件,包括:
所述下载端通过第一线程从第一区域中下载第一分片文件,通过第二线程从第二区域中下载第二分片文件,…,通过第m线程从第m区域中下载第m分片文件。
8.根据权利要求5所述的方法,其特征在于,所述分片文件包括:第一组分片文件、第二组分片文件,…,第m组分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,所述下载端创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件,包括:
下载端通过第一线程下载从第一区域中下载第一组分片文件,通过第二线程从第二区域中下载第二组分片文件,…,通过第m线程从第m区域中下载第m组分片文件。
9.根据权利要求5至8任一权利要求所述的方法,其特征在于,所述方法还包括:
所述下载端下载第一加密值,其中,所述第一加密值为使用完整性加密算法对分片前的镜像进行加密得到的;
所述下载端通过所述完整性加密算法对还原后的镜像进行加密,从而得到第二加密值;
在所述第一加密值和所述第二加密值相同的情况下,确定所述还原后的镜像和所述分片前的镜像是相同的。
10.一种计算节点集群,其特征在于,所述计算节点集群构成第一区域,所述计算节点集群包括:存储模块、分片模块以及对象存储模块,
所述存储模块用于存储镜像,其中,所述镜像是文件的副本;
所述分片模块用于将所述镜像分成多个分片文件,并将所述多个分片文件存储在所述第一区域内运行的对象存储模块中;
所述拷贝模块将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件拷贝到第二区域,其中,所述第一区域和所述第二区域位于不同的地理位置。
11.根据权利要求10所述云平台,其特征在于,所述拷贝模块具体用于将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
12.根据权利要求10所述的云平台,其特征在于,所述拷贝模块具体用于在所述高速通道的使用率小于预设阈值时,将存储在所述第一区域内运行的对象存储模块中的所述多个分片文件通过所述第一区域和所述第二区域之间的高速通道拷贝到所述第二区域。
13.根据权利要求10至12任一权利要求所述的云平台,其特征在于,所述计算节点集群还包括加密模块,
所述加密模块用于将镜像输入完整性加密算法,从而得到第一加密值;
所述加密模块用于将所述第一加密值存储在所述第一区域内运行的对象存储模块中。
14.一种下载端,其特征在于,包括接收模块、下载模块以及合并模块,
所述接收模块用于接收镜像创建请求,所述镜像创建请求用于向云平台请求下载镜像,所述镜像包括多个分片文件,所述云平台包括至少两个区域,每个区域包括多台计算节点用于存储所述多个分片文件,每个区域位于不同的地理位置;
所述下载模块用于创建至少两个线程,通过每个线程从至少一个区域内下载至少一个分片文件,所述至少两个线程配合下载了所述多个分片文件;
所述合并模块用于将下载得到的所述多个分片文件进行合并,获取所述镜像。
15.根据权利要求14所述的下载端,其特征在于,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第n线程,所述区域包括:第一区域、第二区域,…,第n区域,其中,m和n均为正整数,并且,m大于n;所述下载模块具体用于:
在T0时刻,下载端通过第一线程以第一下载速率下载从第一区域中下载第一个分片文件,通过第二线程以第二下载速率从第二区域中下载第二个分片文件,…,通过第n线程以第n下载速率从第n区域中下载第n个分片文件;其中,第i下载速率是n个下载速率中最大的下载速率,i为正整数,并且,0<i≤n;
在T1时刻,下载端结束通过第i线程以第i下载速率从第i区域中下载第i个分片文件,启动第i线程以第i下载速率从第i区域中下载第n+1个分片文件,并且,其他的线程保持不变。
16.根据权利要求14所述的下载端,其特征在于,所述分片文件包括:第一分片文件、第二分片文件,…,第m分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,
所述下载模块具体用于通过第一线程从第一区域中下载第一分片文件,通过第二线程从第二区域中下载第二分片文件,…,通过第m线程从第m区域中下载第m分片文件。
17.根据权利要求14所述的下载端,其特征在于,所述分片文件包括:第一组分片文件、第二组分片文件,…,第m组分片文件,所述线程包括:第一线程,第二线程,…,第m线程,所述区域包括:第一区域、第二区域,…,第m区域,
所述下载模块具体用于通过第一线程下载从第一区域中下载第一组分片文件,通过第二线程从第二区域中下载第二组分片文件,…,通过第m线程从第m区域中下载第m组分片文件。
18.根据权利要求14至17任一权利要求所述的下载端,其特征在于,所述下载端还包括加密模块以及确定模块,
所述下载模块还用于下载第一加密值,其中,所述第一加密值为使用完整性加密算法对分片前的镜像进行加密得到的;
所述加密模块用于通过所述完整性加密算法对还原后的镜像进行加密,从而得到第二加密值;
所述确定模块用于在所述第一加密值和所述第二加密值相同的情况下,确定所述还原后的镜像和所述分片前的镜像是相同的。
19.一种计算节点集群,其特征在于,包括至少一个计算节点,所述计算节点包括处理器和存储器,所述处理器执行所述存储器中的代码执行如权利要求1至4任一权利要求所述的方法。
20.一种下载端,其特征在于,包括处理器和存储器,所述处理器执行所述存储器中的代码执行如权利要求5至9任一权利要求所述的方法。
21.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算设备上运行时,使得所述计算设备执行如权利要求1至9任一权利要求所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010124217.9A CN113315800A (zh) | 2020-02-27 | 2020-02-27 | 镜像存储、下载方法、设备以及系统 |
PCT/CN2020/127473 WO2021169397A1 (zh) | 2020-02-27 | 2020-11-09 | 镜像存储、下载方法、设备以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010124217.9A CN113315800A (zh) | 2020-02-27 | 2020-02-27 | 镜像存储、下载方法、设备以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113315800A true CN113315800A (zh) | 2021-08-27 |
Family
ID=77370341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010124217.9A Pending CN113315800A (zh) | 2020-02-27 | 2020-02-27 | 镜像存储、下载方法、设备以及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113315800A (zh) |
WO (1) | WO2021169397A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598714A (zh) * | 2022-03-11 | 2022-06-07 | 上海凯翔信息科技有限公司 | 一种基于云端nas的数据存储系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900720B (zh) * | 2021-10-15 | 2023-08-08 | 抖音视界有限公司 | 操作系统启动方法、装置和电子设备 |
CN114327657B (zh) * | 2021-12-28 | 2023-06-16 | 福建新大陆支付技术有限公司 | 一种基于Fastboot的大镜像分割下载验签方法及其存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281374B (zh) * | 2013-05-30 | 2015-12-09 | 成都信息工程学院 | 一种云存储中数据快速调度的方法 |
CN114356651A (zh) * | 2015-05-27 | 2022-04-15 | 谷歌有限责任公司 | 用于移动设备上的自动基于云的全数据备份和恢复的系统和方法 |
CN108418858B (zh) * | 2018-01-23 | 2021-07-02 | 南京邮电大学 | 一种面向Geo-distributed云存储的数据副本放置方法 |
US11258775B2 (en) * | 2018-04-04 | 2022-02-22 | Oracle International Corporation | Local write for a multi-tenant identity cloud service |
CN109062501A (zh) * | 2018-07-05 | 2018-12-21 | 南京信息职业技术学院 | 一种基于ida算法的网盘聚合方法 |
-
2020
- 2020-02-27 CN CN202010124217.9A patent/CN113315800A/zh active Pending
- 2020-11-09 WO PCT/CN2020/127473 patent/WO2021169397A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598714A (zh) * | 2022-03-11 | 2022-06-07 | 上海凯翔信息科技有限公司 | 一种基于云端nas的数据存储系统 |
CN114598714B (zh) * | 2022-03-11 | 2023-08-18 | 上海凯翔信息科技有限公司 | 一种基于云端nas的数据存储系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021169397A1 (zh) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324814B2 (en) | Faster reconstruction of segments using a spare memory unit | |
US10209910B2 (en) | Copy-redirect on write | |
US20220164104A1 (en) | Virtualizing non-volatile storage at a peripheral device | |
US11411885B2 (en) | Network-accessible data volume modification | |
US10091295B1 (en) | Converged infrastructure implemented with distributed compute elements | |
US11093148B1 (en) | Accelerated volumes | |
WO2021169397A1 (zh) | 镜像存储、下载方法、设备以及系统 | |
US10831398B2 (en) | Storage device efficiency during data replication | |
US10574734B2 (en) | Dynamic data and compute management | |
US9720719B2 (en) | Method and system for optimizing virtual disk provisioning | |
US10037298B2 (en) | Network-accessible data volume modification | |
US11042519B2 (en) | Reinforcement learning for optimizing data deduplication | |
US10747458B2 (en) | Methods and systems for improving efficiency in cloud-as-backup tier | |
US11068192B1 (en) | Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source | |
US11662928B1 (en) | Snapshot management across cloud provider network extension security boundaries | |
US11386124B2 (en) | Snapshot rollback for synchronous replication | |
EP3479236B1 (en) | Network-accessible data volume modification | |
US10585612B2 (en) | Optimized sequential writes on mirrored disks | |
US11809735B1 (en) | Snapshot management for cloud provider network extensions | |
CN114706652A (zh) | 一种基于OpenStack平台的虚拟机跨集群迁移方法及系统 | |
US11347596B2 (en) | Preliminary data protection using composite copies of data in a data storage system | |
US11853785B1 (en) | Virtual machine cloning and resource configuration | |
WO2024016811A1 (en) | Accelerated encoding for virtual machine synchronization | |
US20190155921A1 (en) | Remote copy with data deduplication functionality | |
CN117749813A (zh) | 基于云计算技术的数据迁移方法及云管理平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220215 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |