云主机镜像文件的多备份就近存储和读取方法及系统的制作方法

文档序号:6508698阅读:260来源:国知局
云主机镜像文件的多备份就近存储和读取方法及系统的制作方法
【专利摘要】本发明属于云计算中的基于分布式文件系统的云管理平台的镜像存储领域,涉及一种云主机镜像文件的多备份就近存储和读取方法及系统。该方法将云主机镜像文件分割成数据块并进行备份,然后存储在若干计算节点服务器中,其中本地计算节点服务器存储一份完整的云主机镜像文件,其它备份的数据块平均分配到其它计算节点服务器中存储;并采用元数据服务器记录云主机镜像文件的各数据块所对应存储的计算节点服务器信息;然后客户端优先从本地计算节点服务器读取数据,如果该本地计算节点服务器出现故障,则从其它计算节点服务器中并发读取整份数据。本发明适用于云管理平台中的云主机镜像文件的存储,能够提高系统的性能,获得更快的存储和读取速度。
【专利说明】云主机镜像文件的多备份就近存储和读取方法及系统
【技术领域】
[0001]本发明属于计算机【技术领域】中的基于分布式文件系统的云主机镜像存储技术,涉及在基于分布式文件系统中的云主机镜像数据存储策略和读取策略,主要应用在需要使用共享存储,并且对于数据的I/o性能要求比较高的云管理平台环境之下。
【背景技术】
[0002]在云平台管理系统中,传统的方式是使用本地磁盘存储云主机镜像文件,使用这种方式的优点是存取速度快,虚机直接和本地磁盘中的数据交互,I/o性能良好。但是这种方式有个比较大的缺点,那就是如果本地磁盘坏掉的话,用户所使用的云主机就会停止,即使还有其他的云主机镜像备份或者本机做了 raid,那要恢复云主机镜像的话也还是要一段时间,而且需要人工去处理;这就会影响用户的服务。基于这种情况的一种解决方式就是使用共享存储,云主机镜像文件不存放于本地磁盘中,而是存放于由分布式文件系统创建的共享存储上,即使云主机所在的物理机出现故障不能正常工作,存储于共享存储中的云主机镜像还是可以正常使用。通过这种方式可以使用合理的调度策略来提高云平台的服务质量,但是使用这种方式对分布式文件系统的I/O性能提出了挑战。
[0003]分布式文件系统是指网络中的多个存储节点通过网络组织起来,并通过网络来完成各存储节点时的通信和控制的文件系统。分布式文件系统的主要目标是使多个客户可以并发地存取文件,因此缓存一致性语义和各种底层优化也是根据这种存取行为来设计的。就目前主流的分布式文件系统来看,当数据写入时,整个文件会被分成多个小块,然后这些小文件块会被均等的分配到各个数据服务器中。这就导致了在读取数据时,性能的下降,因为无论是在哪个客户端服务器读取数据,都需要通过网络到每个数据服务器上去获取数据。目前分布式并行文件系统的性能研究更得到了国内外许多专家学者的关注,研究分布式并行文件系统及它的性能具有非常重要的意义。如何有效的存储海量数据,并提供较好的可靠性和可扩展性都是分布式文件系统设计和优化所面临的问题。

【发明内容】

[0004]从以上的技术背景来看,云管理平台要实现高可用性就需要使用分布式文件系统来存储云主机的镜像文件,而当用户使用云主机时,用户的每一个操作都需要同云主机镜像进行交互,这是一种I/o密集型的应用场景。但是分布式文件系统在处理大规模I/O访问的情况下,会出现性能不够良好的问题,由于分布式文件系统的存储方式是分布的,所以在文件读取的时候都需要通过网络来存取数据,这就加重了网络的负载。虽然可以采用多CPU和多网卡绑定并发访问的方式来提高系统的读写性能,但是在云管理平台I/o访问频繁的情况下,还是会出现I/o读写的瓶颈。本发明结合了云管理平台和分布式文件系统的特征,采用了一种多备份就近本地存储和读取的方式来提高系统的I/o读写速度,从而优化了云管理平台中分布式文件系统的性能。
[0005]为实现上述目的,本发明采用如下技术方案:[0006]一种云主机镜像文件的存储和读取方法,其步骤包括:
[0007]I)将云主机镜像文件分割成数据块并进行备份,然后存储在若干计算节点服务器中,其中客户端所在的本地计算节点服务器存储一份完整的云主机镜像文件,其它备份的数据块平均分配到其它计算节点服务器中存储;
[0008]2)采用元数据服务器记录云主机镜像文件的各数据块所对应存储的计算节点服务器信息;
[0009]3)客户端读取元数据服务器中记录的各数据块所对应存储的计算节点服务器信息,访问相应的计算节点服务器以读取数据。
[0010]进一步地,客户端优先从本地计算节点服务器读取数据;如果该本地计算节点服务器出现故障,则从其它计算节点服务器中并发读取整份数据。
[0011]进一步地,用户创建云主机时,首先根据云管理平台中控制服务器的宿主机调度策略选择一台计算节点服务器,然后从该计算节点服务器创建云主机并写入云主机镜像文件数据;用户使用云主机时,首先找到该云主机所在的计算节点服务器,然后读取云主机镜像文件数据。
[0012]一种云主机镜像文件的存储和读取系统,其包括:
[0013]控制服务器,负责云管理平台中云主机的调度、迁移和网络配置功能;
[0014]若干计算节点服务器,负责创建和运行云主机,同时具有共享存储的数据存储功能和共享存储的客户端功能,用于将云主机镜像文件分割成数据块并进行备份,其中客户端所在的本地计算节点服务器存储一份完整的云主机镜像文件,其它备份的数据块平均分配到其它计算节点服务器中存储;
[0015]元数据服务器,用于记录云主机镜像文件的各数据块所对应存储的计算节点服务器信息。
[0016]进一步地,客户端优先从本地计算节点服务器读取数据,如果该本地计算节点服务器出现故障,则从其它计算节点服务器中并发读取整份数据。
[0017]优选地,所述元数据服务器为两台,做双机热备。
[0018]本发明适用于云管理平台中的云主机镜像文件的存储;在这样的环境下,云管理平台会做相应的调度,来平衡各个客户端的负载,因此不会造成某个客户端和数据服务器中的数据量过大,从而影响系统性能的问题。本发明中的元数据服务器在记录时不仅记录每个数据块和元数据的存放位置,也会记录每个数据的优先读取服务器。在数据写入时会有一份数据写入到客户端所在的云平台计算节点,这会在元数据服务器中做相应的记录,当用户发使用云主机时,由于每个云主机所在的计算节点都存了一份完整的云主机镜像文件,此时按照元数据服务器所记录的信息,就可以优先使用本地计算节点中所存储的云平台镜像,然后从本地读取数据,虽然数据分割成了块,但是本地读取数据不会通过网络,而是通过本地I/O直接读取数据,从而提高系统的性能,获得更快的存储和读取速度。
【专利附图】

【附图说明】
[0019]图1是本发明的云主机镜像文件的存储和读取系统的架构示意图。
[0020]图2是本发明的云主机镜像文件的存储和读取系统的数据写入流程图。
[0021]图3是本发明的云主机镜像文件的存储和读取系统的数据读取流程图。【具体实施方式】
[0022]下面通过具体实施例和附图,对本发明做进一步详细说明。
[0023]本实施例的云主机镜像文件的存储和读取系统,需要三种服务器:控制服务器(Controller服务器)、元数据服务器(Metadata服务器)和计算节点服务器(Compute服务器),如图1所示。其中,控制服务器是指的云管理平台中的管理云主机的调度、迁移和网络配置等功能的服务器;计算节点服务器是指云管理平台中的创建云主机和运行云主机的服务器,计算节点服务器同时具有共享存储的数据存储功能,并且有共享存储的客户端功能,能够读取数据;元数据服务器主要用于记录云主机镜像文件的各数据块所对应存储的计算节点服务器信息。控制服务器只要一台就可以,元数据服务器准备两台,做双机热备,以提高系统的高可用(HA,High Available,)性能;计算节点服务器的数量根据整个系统所需的存储要求来配置,理论上讲任意台都可以。
[0024]下面分别介绍应用上述系统进行数据写入和读取的流程。
[0025]I)数据写入流程
[0026]当用户使用本发明中的云管理平台创建云主机时,首先根据云管理平台中控制服务器的宿主机调度策略选择一台计算节点服务器,然后需要从计算节点服务器写入云主机镜像文件数据。计算节点服务器要把云主机数据分割成许多小的数据块,同时跟元数据服务器交互,在此过程中,需要把一份完整的数据存入到当前计算节点服务器中,其他备份的数据块再均等的分配到其他所有的计算节点服务器中,平均分配是为了能够并发的写入和读取,分配和负载均衡的过程都是由元数据服务器来实现的。云主机数据的备份数目可以手动灵活的设置,然后再按照所设置的备份数目,把每个数据块复制并均衡的发送到其他计算节点服务器中,以提高数据的安全性。数据写入完成之后在元数据服务器中要有相应的记录,包括整份完整数据存放在了哪个计算节点服务器中,以及所有的数据块在各个计算节点服务器中的存放位置。
[0027]图1是上述数据写入流程的示意图。此图描述的主要是基于本发明中云管理平台所使用的分布式文件系统的架构,将数据写入到文件系统中的过程。如图中所示,计算节点I指的是云管理平台中提供创建虚机和运行虚机的服务器,同时计算节点I也充当分布式文件系统中的数据服务器,用来存储数据,而且计算节点I也部署了分布式文件系统的客户端用来从分布式文件系统读取数据。图中分别位于上面和下面的两个计算节点I实际为同一台服务器,为了方便描述,将其画成两份。计算节点2到计算节点4也都是如此。当计算节点I在创建云主机时,将云主机镜像数据Data写入到文件系统中时,首先假设将Data分成6个小数据块,用1-6来表示。然后计算节点服务器和元数据服务器进行交互,记录相关的数据信息。在这个过程中,数据备份的数目假设是两份;那么根据本发明中所定的策略,有一份数据,也就是完整的1-6数据块存放到了计算节点I所在的服务器上。另一份数据存放在了计算节点2-4服务器上,每个计算节点服务器上都有两个数据块;这种方式就是本发明中数据就近存储的策略。可以根据数据的大小决定一份数据分成多少个数据块,每个数据块的大小也是可以灵活设定的,比如64k,可以根据实际情况改变。
[0028]2)数据读取流程
[0029]当用户使用云主机时,首先找到该云主机所在的计算节点服务器,然后计算节点服务器读取云主机镜像数据,先要从元数据服务器获取相应的元数据信息,因为元数据服务器中存放了整份云主机镜像数据的存放位置和所有数据块的存放位置,如果整份云主机镜像数据存放在本地计算节点服务器中的话,那么就优先从本地获取所需的数据,如果整份云主机镜像数据没有存放在本地的话,那么就按照分布式文件系统传统的数据读取方式,根据元数据服务器中的元数据信息,获取各个数据块存放的位置,从各数据服务器中分别读取所有的数据块从而拼凑成一整份数据。在本发明所描述的环境下,当计算节点服务器出现故障时,那么就是自动转到其他计算节点服务器上提供云主机服务,这样就不能从本地读取云主机镜像,但是一般情况下,能够达到用户大部分的取数据操作都能够在本地完成。
[0030]图2是上述数据读取流程的示意图。此图描述的过程是在本发明的基于就近存储分布式文件系统的云管理平台中数据读取的流程。当用户提在云管理平台中使用云主机时,根据云管理平台中的控制服务器的调度策略,由创建该云主机的计算节点服务器获得响应,首先访问元数据服务器,查看是否有一份完整云主机镜像数据存放在了本台计算节点服务器中,如果本地计算节点服务器中存放了一份完整云主机镜像数据的话,那么就优先从本地的计算节点服务器读取完整的云主机镜像数据。这样的话,读取整份数据的过程只是走的本地1/0,因此能够提高系统的性能。在某种情况下,如果某台计算节点出现了故障,那么控制服务器就会把该计算节点上的云主机迁移到其他计算节点上去,这就会造成云主机所在的计算节点本地没有完整的云主机镜像文件的情况。如果本地没有存放完成的云主机镜像数据的话,那就按照元数据服务器所存放的元数据信息,从其他计算节点服务器中读取整份数据,并发读取以达到比较高的性能。
[0031]本发明中当计算节点服务器使用云主机镜像数据时,优先从本地读取;在这种方式下,数据从本地读取,不走网络,所以能够达到比较好的性能;而且在很多应用中客户端都有自动调度策略,能够使整个分布式文件系统达到较好的负载均衡效果。
[0032]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
【权利要求】
1.一种云主机镜像文件的存储和读取方法,其步骤包括: 1)将云主机镜像文件分割成数据块并进行备份,然后存储在若干计算节点服务器中,其中客户端所在的本地计算节点服务器存储一份完整的云主机镜像文件,其它备份的数据块平均分配到其它计算节点服务器中存储; 2)采用元数据服务器记录云主机镜像文件的各数据块所对应存储的计算节点服务器信息; 3)客户端读取元数据服务器中记录的各数据块所对应存储的计算节点服务器信息,访问相应的计算节点服务器以读取数据。
2.如权利要求1所述的方法,其特征在于:客户端优先从本地计算节点服务器读取数据;如果该本地计算节点服务器出现故障,则从其它计算节点服务器中并发读取整份数据。
3.如权利要求1或2所述的方法,其特征在于:用户创建云主机时,首先根据云管理平台中控制服务器的宿主机调度策略选择一台计算节点服务器,然后从该计算节点服务器创建云主机并写入云主机镜像文件数据;用户使用云主机时,首先找到该云主机所在的计算节点服务器,然后读取云主机镜像文件数据。
4.如权利要求1或2所述的方法,其特征在于:云主机镜像文件的备份数目为两份或者多份。
5.如权利要求1或2中任一项所述的方法,其特征在于:每个数据块的大小为64k。
6.一种云主机镜像文件的存储和读取系统,其特征在于,包括: 控制服务器,负责云管理平台中云主机的调度、迁移和网络配置功能; 若干计算节点服务器,负责创建和运行云主机,同时具有共享存储的数据存储功能和共享存储的客户端功能,用于将云主机镜像文件分割成数据块并进行备份,其中客户端所在的本地计算节点服务器存储一份完整的云主机镜像文件,其它备份的数据块平均分配到其它计算节点服务器中存储; 元数据服务器,用于记录云主机镜像文件的各数据块所对应存储的计算节点服务器信肩、O
7.如权利要求6所述的系统,其特征在于:客户端优先从本地计算节点服务器读取数据,如果该本地计算节点服务器出现故障,则从其它计算节点服务器中并发读取整份数据。
8.如权利要求6或7所述的系统,其特征在于:所述元数据服务器为两台,做双机热备。
9.如权利要求6或7所述的系统,其特征在于:云主机镜像文件的备份数目为两份或者多份。
【文档编号】G06F17/30GK103455577SQ201310371435
【公开日】2013年12月18日 申请日期:2013年8月23日 优先权日:2013年8月23日
【发明者】冯凯, 韦远科, 赵红新, 周园春, 黎建辉, 甘宁, 邵靖 申请人:中国科学院计算机网络信息中心, 北龙泽达(北京)数据科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1