一种分布式物理磁盘的使用方法、及虚拟机与流程

文档序号:11230060阅读:640来源:国知局
一种分布式物理磁盘的使用方法、及虚拟机与流程

本发明涉及信息技术领域,特别涉及一种分布式物理磁盘的使用方法、及虚拟机。



背景技术:

分布式存储系统,是将数据分散存储在多台独立的设备上。

传统的网络存储系统采用集中的存储宿主机存放所有数据,存储宿主机成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储宿主机分担存储负荷,利用位置宿主机定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

1、虚拟机(virtualmachine,vm)指模拟出来的一台虚拟的计算机,也即逻辑上的一台计算机。

2、主机(host),指物理存在的计算机,或者称为宿主机,在本发明实施例中也可以称之为宿主机。

3、guestos——指运行在vm上的操作系统。例如在一台安装了windowsnt的计算机上安装了vmware,那么,host指的是安装windowsnt的这台计算机,其host′sos为windowsnt。vm上运行的是linux,那么linux即为guestos。

在分布式系统存储系统中,需要将数据存储到多个独立的设备上,在这个过程中,经常出现拥塞导致存储速度慢,因此整个数据存储效率较低。



技术实现要素:

本发明实施例提供了一种分布式物理磁盘的使用方法、及虚拟机,用于减少数据拥塞的几率,并且提高数据存储的安全性。

一方面本发明实施例提供了一种分布式物理磁盘的使用方法,应用于包含n个物理磁盘的分布式系统中的虚拟机,所述n个物理磁盘位于宿主机一侧且每个物理磁盘被分为大小相等的小物理磁盘,每个物理磁盘内的小物理磁盘的序号按照地址从低到高排序;所述n个物理磁盘各自具有大物理磁盘标识,各小物理磁盘具有小物理磁盘标识,所述小物理磁盘标识由所述大物理磁盘标识与所述小物理磁盘的序号组合得到,所述方法包括:

虚拟机被构建后启动运行;所述虚拟机的存储空间由目标物理磁盘组成;所述目标物理磁盘组成过程如下:所述小物理磁盘的分配状态,以及所述n个物理磁盘的活跃程度被所述宿主机所监测到;在所述宿主机在接收到虚拟机创建请求后,确定将要创建的虚拟机的存储空间需求;依据所述小物理磁盘的分配状态确定处于未分配状态的小物理磁盘;从处于未分配状态的小物理磁盘中选择m个小物理磁盘作为目标物理磁盘,所述m个小物理磁盘的存储空间大于或等于所述存储空间需求;所述m大于或等于8且为2的指数次方;所述m个小物理磁盘各自位于不同的物理磁盘;所述宿主机响应所述虚拟机创建请求在所述目标物理磁盘中安装虚拟操作系统构建所述虚拟机;

所述虚拟机在运行过程中若有数据存储需求,则首先获得所述目标物理磁盘的标识,向所述目标物理磁盘发送活跃度查询请求,在所述活跃度查询请求中携带所述目标物理磁盘的标识;

所述虚拟机接收所述m个小物理磁盘对应的物理磁盘返回的活跃程度;

所述虚拟机将需要存储的数据拆分为大于或等于4且小于m个目标数据,按照所述m个小物理磁盘对应的物理磁盘的活跃程度从低到高,将各目标数据分别存储到所述目标物理磁盘中的各小物理磁盘。

在一个可选的实现方式中,所述大物理磁盘标识为p位的二进制字符串,所述小物理磁盘标识为q位的二进制字符串;所述小物理磁盘的序号为位于小磁盘标识的低位部分,每个小物理磁盘的存储空间为r位;所述方法还包括:

所述虚拟机在确定需要进行访存操作后,确定所述访存操作指定的虚拟地址;所述目标物理磁盘由其包含的各小物理磁盘按照所述各小物理磁盘所在的大物理磁盘标识从低到高依次排序组成,所述虚拟地址以所述目标物理磁盘的起始地址为起始虚拟地址顺序编号获得;在所述虚拟机中存储有地址映射表,所述地址映射表的表项包含:虚拟盘序号、小物理磁盘标识;

所述虚拟机计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量;

所述虚拟机查找所述地址映射表获得包含所述虚拟地址的虚拟盘序号的表项,并确定该表项中包含的小物理磁盘标识作为目标小物理磁盘标识;

所述虚拟机截取所述小物理磁盘标识的前p位作为目标大物理磁盘标识,向所述目标大物理磁盘标识对应的物理磁盘发送读请求,在所述读请求中包含所述小物理磁盘标识以及所述偏移量,使所述小物理磁盘标识对应的小物理磁盘返回在所述小物理磁盘的起始位置偏移所述偏移量对应物理地址的数据。

在一个可选的实现方式中,所述虚拟机计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量包括:

所述虚拟机截取所述虚拟地址的前r位得到所述虚拟盘序号,截取所述虚拟地址的剩余位得到所述偏移量。

在一个可选的实现方式中,在所述虚拟机被创建之后,所述方法还包括:

若所述虚拟机需要被删除,则所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态,不删除所述目标物理磁盘中包含的各小物理磁盘已经被写入的数据。

在一个可选的实现方式中,在所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态之后,所述方法还包括:

在下一次创建新虚拟机时,所述新虚拟机所需的小物理磁盘以随机方式获取,并且所述获取到的小物理磁盘中少于或等于两个小物理磁盘属于所述目标物理磁盘中包含的小物理磁盘。

二方面本发明实施例还提供了一种虚拟机,应用于包括所述虚拟机、宿主机和n个物理磁盘的分布式数据存储系统;所述n个物理磁盘位于宿主机一侧且每个物理磁盘被分为大小相等的小物理磁盘,每个物理磁盘内的小物理磁盘的序号按照地址从低到高排序;所述n个物理磁盘各自具有大物理磁盘标识,各小物理磁盘具有小物理磁盘标识,所述小物理磁盘标识由所述大物理磁盘标识与所述小物理磁盘的序号组合得到;

所述虚拟机包括:

运行控制单元,用于在虚拟机被构建后启动运行;所述虚拟机的存储空间由目标物理磁盘组成;所述目标物理磁盘组成过程如下:所述小物理磁盘的分配状态,以及所述n个物理磁盘的活跃程度被所述宿主机所监测到;在所述宿主机在接收到虚拟机创建请求后,确定将要创建的虚拟机的存储空间需求;依据所述小物理磁盘的分配状态确定处于未分配状态的小物理磁盘;从处于未分配状态的小物理磁盘中选择m个小物理磁盘作为目标物理磁盘,所述m个小物理磁盘的存储空间大于或等于所述存储空间需求;所述m大于或等于8且为2的指数次方;所述m个小物理磁盘各自位于不同的物理磁盘;所述宿主机响应所述虚拟机创建请求在所述目标物理磁盘中安装虚拟操作系统构建所述虚拟机;

发送单元,用于在运行过程中若有数据存储需求,向所述m个小物理磁盘对应的物理磁盘分别发送活跃度查询请求,在所述活跃度查询请求中携带所述目标物理磁盘中各小物理磁盘的小物理磁盘标识;

接收单元,用于接收所述m个小物理磁盘对应的物理磁盘返回的活跃程度;

处理器单元,用于将需要存储的数据拆分为大于或等于4且小于m个目标数据,按照所述m个小物理磁盘对应的物理磁盘的活跃程度从低到高,将各目标数据分别存储到所述目标物理磁盘中的各小物理磁盘。

在一个可选的实现方式中,所述大物理磁盘标识为p位的二进制字符串,所述小物理磁盘标识为q位的二进制字符串;所述小物理磁盘的序号为位于小磁盘标识的低位部分,每个小物理磁盘的存储空间为r位;

所述处理器单元,还用于在确定需要进行访存操作后,确定所述访存操作指定的虚拟地址;所述目标物理磁盘由其包含的各小物理磁盘按照所述各小物理磁盘所在的大物理磁盘标识从低到高依次排序组成,所述虚拟地址以所述目标物理磁盘的起始地址为起始虚拟地址顺序编号获得;在所述虚拟机中存储有地址映射表,所述地址映射表的表项包含:虚拟盘序号、小物理磁盘标识;计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量;查找所述地址映射表获得包含所述虚拟地址的虚拟盘序号的表项,并确定该表项中包含的小物理磁盘标识作为目标小物理磁盘标识;截取所述小物理磁盘标识的前p位作为目标大物理磁盘标识;

所述发送单元,还用于向所述目标大物理磁盘标识对应的物理磁盘发送读请求,在所述读请求中包含所述小物理磁盘标识以及所述偏移量,使所述小物理磁盘标识对应的小物理磁盘返回在所述小物理磁盘的起始位置偏移所述偏移量对应物理地址的数据。

在一个可选的实现方式中,所述处理器单元,用于计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量包括:

截取所述虚拟地址的前r位得到所述虚拟盘序号,截取所述虚拟地址的剩余位得到所述偏移量。

在一个可选的实现方式中,若所述虚拟机需要被删除,则所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态,不删除所述目标物理磁盘中包含的各小物理磁盘已经被写入的数据。

在一个可选的实现方式中,在所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态之后,在下一次创建新虚拟机时,所述新虚拟机所需的小物理磁盘以随机方式获取,并且所述获取到的小物理磁盘中少于或等于两个小物理磁盘属于所述目标物理磁盘中包含的小物理磁盘。

从以上技术方案可以看出,本发明实施例具有以下优点:特别设定了物理磁盘的标识组成方式,方便后续物理磁盘的查找;另外,虚拟机的物理磁盘分配过程中充分考虑了各物理磁盘的活跃度,使得虚拟机能够分配到较为合适的物理磁盘,相对较为不活跃的磁盘可以减少拥塞;另外,将需要存储的数据进行了拆分,按照物理磁盘的活跃度再次进行数据分配,一方面进一步减少了数据拥塞的可能性,提高数据存储的并行度,另外还能够降低数据被整体存储到同一小物理磁盘导致可能被窃取的可能性,因此可以提高数据存储的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例方法流程示意图;

图2为本发明实施例小物理磁盘标识组成结构示意图;

图3为本发明实施例系统结构示意图;

图4为虚拟机结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供了一种分布式物理磁盘的使用方法,应用于包含n个物理磁盘的分布式系统中的虚拟机,所述n个物理磁盘位于宿主机一侧且每个物理磁盘被分为大小相等的小物理磁盘,每个物理磁盘内的小物理磁盘的序号按照地址从低到高排序;所述n个物理磁盘各自具有大物理磁盘标识,各小物理磁盘具有小物理磁盘标识,所述小物理磁盘标识由所述大物理磁盘标识与所述小物理磁盘的序号组合得到;

小物理磁盘标识的结构请参阅图2所示;

所述虚拟机被构建后启动运行;所述虚拟机的存储空间由目标物理磁盘组成;所述目标物理磁盘组成过程如下:所述小物理磁盘的分配状态,以及所述n个物理磁盘的活跃程度被所述宿主机所监测到;在所述宿主机在接收到虚拟机创建请求后,确定将要创建的虚拟机的存储空间需求;依据所述小物理磁盘的分配状态确定处于未分配状态的小物理磁盘;从处于未分配状态的小物理磁盘中选择m个小物理磁盘作为目标物理磁盘,所述m个小物理磁盘的存储空间大于或等于所述存储空间需求;所述m大于或等于8且为2的指数次方;所述m个小物理磁盘各自位于不同的物理磁盘;所述宿主机响应所述虚拟机创建请求在所述目标物理磁盘中安装虚拟操作系统构建所述虚拟机;

所述虚拟机在运行过程中若有数据存储需求,则首先获得所述目标物理磁盘的标识,向所述目标物理磁盘发送活跃度查询请求,在所述活跃度查询请求中携带所述目标物理磁盘的标识;

所述虚拟机接收所述m个小物理磁盘对应的物理磁盘返回的活跃程度;

所述虚拟机将需要存储的数据拆分为大于或等于4且小于m个目标数据,按照所述m个小物理磁盘对应的物理磁盘的活跃程度从低到高,将各目标数据分别存储到所述目标物理磁盘中的各小物理磁盘。

上述大于或等于4且小于m个目标数据,更具体可以是:大于或等于4且小于或等于m/2个目标数据。

如图1所示,从系统层面上来看的实现过程,包括:

101:宿主机监测小物理磁盘的分配状态,以及所述n个物理磁盘的活跃程度;

活跃程度可以用物理磁盘当前或者综合历史数据统计得到的平均数据吞吐量,或者平均数据吞吐量占对应物理磁盘的数据存储能力的比例。越活跃的物理磁盘其数据存储压力越大,形成拥塞的可能性也将会越大。

102:所述宿主机在接收到虚拟机创建请求后,确定将要创建的虚拟机的存储空间需求;依据所述小物理磁盘的分配状态确定处于未分配状态的小物理磁盘;从处于未分配状态的小物理磁盘中选择m个小物理磁盘作为目标物理磁盘,所述m个小物理磁盘的存储空间大于或等于所述存储空间需求;所述m大于或等于8且为2的指数次方;所述m个小物理磁盘各自位于不同的物理磁盘;

虚拟机创建请求可以是任意设备发出的,假定我们的系统应用于大型公司员工的虚拟机创建,那么可以是管理者发出的。对于不同的虚拟机可能会有不同的存储空间需求,例如:做业务的员工和做软件开发的员工,对存储空间的需求是不一样的。在本实施例中,可以假定每个小物理磁盘是500m,假定需要5000m的存储空间,那么可以分成10个小物理磁盘。这10个小物理磁盘从那些相对较为空闲的物理磁盘中选取。由于不同的虚拟机被使用的可能性是不同的,因此通过对小物理磁盘的选择性分配可以达到第一次均衡。

103:所述宿主机响应所述虚拟机创建请求在所述目标物理磁盘中安装虚拟操作系统构建虚拟机;

在虚拟机被创建以后,虚拟机的操作系统被安装,那么将会成为一个真正的虚拟机。虚拟机会获知自己被分配的目标物理磁盘,以及这些目标物理磁盘所处的位置。

104:所述虚拟机启动并运行,在所述虚拟机运行过程中若有数据存储需求,则首先获得所述目标物理磁盘的标识,向所述目标物理磁盘发送活跃度查询请求,在所述活跃度查询请求中携带所述目标物理磁盘的标识;

基于本发明实施例的实现方案,在虚拟机一侧需要保存所述目标物理磁盘中各小物理磁盘的小物理磁盘分别对应到哪一个物理磁盘;基于此,虚拟机查询活跃度可以不必经由宿主机来查询。

105:所述虚拟机接收所述m个小物理磁盘对应的物理磁盘返回的活跃程度;

106:所述虚拟机将需要存储的数据拆分为大于2且小于或等于m/2个目标数据,按照所述m个小物理磁盘对应的物理磁盘的活跃程度从低到高,将各目标数据分别存储到所述目标物理磁盘中的各小物理磁盘。

本步骤中,设定目标数据的数量,一方面可以保持数据被分的目标数据较多,提高安全性和存储并行度;另一方面考虑到需要存储到那些比较空闲的物理磁盘中,减少出现拥塞的可能性。

在本发明实施例中,特别设定了物理磁盘的标识组成方式,方便后续物理磁盘的查找;另外,虚拟机的物理磁盘分配过程中充分考虑了各物理磁盘的活跃度,使得虚拟机能够分配到较为合适的物理磁盘,相对较为不活跃的磁盘可以减少拥塞;另外,将需要存储的数据进行了拆分,按照物理磁盘的活跃度再次进行数据分配,一方面进一步减少了数据拥塞的可能性,提高数据存储的并行度,另外还能够降低数据被整体存储到同一小物理磁盘导致可能被窃取的可能性,因此可以提高数据存储的安全性。

优选地,如图2所示,所述大物理磁盘标识为p位的二进制字符串,所述小物理磁盘标识为q位的二进制字符串;所述小物理磁盘的序号为位于小磁盘标识的低位部分,每个小物理磁盘的存储空间为r位;所述方法还包括:

所述虚拟机在确定需要进行访存操作后,确定所述访存操作指定的虚拟地址;所述目标物理磁盘由其包含的各小物理磁盘按照所述各小物理磁盘所在的大物理磁盘标识从低到高依次排序组成,所述虚拟地址以所述目标物理磁盘的起始地址为起始虚拟地址顺序编号获得;在所述虚拟机中存储有地址映射表,所述地址映射表的表项包含:虚拟盘序号、小物理磁盘标识;

所述虚拟机计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量;

所述虚拟机查找所述地址映射表获得包含所述虚拟地址的虚拟盘序号的表项,并确定该表项中包含的小物理磁盘标识作为目标小物理磁盘标识;

所述虚拟机截取所述小物理磁盘标识的前p位作为目标大物理磁盘标识,向所述目标大物理磁盘标识对应的物理磁盘发送读请求,在所述读请求中包含所述小物理磁盘标识以及所述偏移量,使所述小物理磁盘标识对应的小物理磁盘返回在所述小物理磁盘的起始位置偏移所述偏移量对应物理地址的数据。

在本实施例中,设定了一个特别的大物理磁盘标识、小物理磁盘标识,这样可以设定一个地址映射表,方便后续迅速查到到对应的物理磁盘。由于在目标物理磁盘中,虚拟机会认为改目标物理磁盘是一个真实的物理磁盘,这样地址应该是目标物理磁盘中是连续的,然而实际上目标物理磁盘中的存储空间位于不同的物理磁盘,因此物理地址实际上是不同的;因此需要对虚拟地址进行转换;虚拟地址的使用是为了在虚拟机中方便应用,例如:软件编程等。虚拟地址是把上述目标物理磁盘看作是一个整体的物理磁盘后获得的地址,因为该虚拟地址并不与实际的物理磁盘地址对应,因此称为虚拟地址。通过本发明实施例方案,可以迅速查到的对应的物理磁盘和对应的物理地址,因此可以快速存储数据,相应地,也可以快速读取数据。

进一步地,鉴于本发明实施例所设定的特殊映射表,本发明实施例可以使用如下方式进行计算:所述虚拟机计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量包括:

所述虚拟机截取所述虚拟地址的前r位得到所述虚拟盘序号,截取所述虚拟地址的剩余位得到所述偏移量。

本发明实施例使用截取的方式得到结果,可以减少大量的逻辑运算,因此可以减少运算量,提高数据存储的效率。

进一步地,本发明实施例还提供了虚拟机删除的方案,如下:在所述虚拟机被创建之后,所述方法还包括:

若所述虚拟机需要被删除,则所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态,不删除所述目标物理磁盘中包含的各小物理磁盘已经被写入的数据。

在本发明实施例中,由于数据存储的方式是将数据拆分了存储,这样安全性较高,在删除虚拟机的时候,可以仅标记小物理磁盘的分配状态,不进行数据删除操作;一方面可以保证数据安全性,另一方面还可以减少物理磁盘的擦写次数,提高物理磁盘的寿命。

本发明实施例还提供了后续再次分配物理磁盘的可选实现方案,如下:在所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态之后,所述方法还包括:

在下一次创建新虚拟机时,所述新虚拟机所需的小物理磁盘以随机方式获取,并且所述获取到的小物理磁盘中少于或等于两个小物理磁盘属于所述目标物理磁盘中包含的小物理磁盘。

采用本实施例方案,可以进一步提高数据安全性。这是基于数据被存储到多个物理磁盘,虽然这些小物理磁盘中的数据并不具有连续性,但是如果这些物理磁盘又被分配到同一虚拟机,鉴于本发明实施例所使用的特殊小物理磁盘组成目标物理磁盘的方案,则有可能被恢复出来;为了避免这种情况的发生,提出了本实施例实现方案。

本发明实施例还提供了一种分布式存储系统,如图3所示,可以一并参阅图1所示,包括:宿主机、虚拟机和n个物理磁盘;所述n个物理磁盘位于宿主机一侧且每个物理磁盘被分为大小相等的小物理磁盘,每个物理磁盘内的小物理磁盘的序号按照地址从低到高排序;所述n个物理磁盘各自具有大物理磁盘标识,各小物理磁盘具有小物理磁盘标识,所述小物理磁盘标识由所述大物理磁盘标识与所述小物理磁盘的序号组合得到,其特征在于,

所述宿主机,用于监测小物理磁盘的分配状态,以及所述n个物理磁盘的活跃程度;在接收到虚拟机创建请求后,确定将要创建的虚拟机的存储空间需求;依据所述小物理磁盘的分配状态确定处于未分配状态的小物理磁盘;从处于未分配状态的小物理磁盘中选择m个小物理磁盘作为目标物理磁盘,所述m个小物理磁盘的存储空间大于或等于所述存储空间需求;所述m大于或等于8且为2的指数次方;所述m个小物理磁盘各自位于不同的物理磁盘;响应所述虚拟机创建请求在所述目标物理磁盘中安装虚拟操作系统构建虚拟机;

所述虚拟机,用于启动并运行,在所述虚拟机运行过程中若有数据存储需求,则首先获得所述目标物理磁盘的标识,向所述目标物理磁盘发送活跃度查询请求,在所述活跃度查询请求中携带所述目标物理磁盘的标识;接收所述m个小物理磁盘对应的物理磁盘返回的活跃程度;将需要存储的数据拆分为大于2且小于或等于m/2个目标数据,按照所述m个小物理磁盘对应的物理磁盘的活跃程度从低到高,将各目标数据分别存储到所述目标物理磁盘中的各小物理磁盘。

小物理磁盘标识的结构请参阅图2所示;

活跃程度可以用物理磁盘当前或者综合历史数据统计得到的平均数据吞吐量,或者平均数据吞吐量占对应物理磁盘的数据存储能力的比例。越活跃的物理磁盘其数据存储压力越大,形成拥塞的可能性也将会越大。

虚拟机创建请求可以是任意设备发出的,假定我们的系统应用于大型公司员工的虚拟机创建,那么可以是管理者发出的。对于不同的虚拟机可能会有不同的存储空间需求,例如:做业务的员工和做软件开发的员工,对存储空间的需求是不一样的。在本实施例中,可以假定每个小物理磁盘是500m,假定需要5000m的存储空间,那么可以分成10个小物理磁盘。这10个小物理磁盘从那些相对较为空闲的物理磁盘中选取。由于不同的虚拟机被使用的可能性是不同的,因此通过对小物理磁盘的选择性分配可以达到第一次均衡。

在虚拟机被创建以后,虚拟机的操作系统被安装,那么将会成为一个真正的虚拟机。虚拟机会获知自己被分配的目标物理磁盘,以及这些目标物理磁盘所处的位置。

本实施例中,设定目标数据的数量,一方面可以保持数据被分的目标数据较多,提高安全性和存储并行度;另一方面考虑到需要存储到那些比较空闲的物理磁盘中,减少出现拥塞的可能性。

在本发明实施例中,特别设定了物理磁盘的标识组成方式,方便后续物理磁盘的查找;另外,虚拟机的物理磁盘分配过程中充分考虑了各物理磁盘的活跃度,使得虚拟机能够分配到较为合适的物理磁盘,相对较为不活跃的磁盘可以减少拥塞;另外,将需要存储的数据进行了拆分,按照物理磁盘的活跃度再次进行数据分配,一方面进一步减少了数据拥塞的可能性,提高数据存储的并行度,另外还能够降低数据被整体存储到同一小物理磁盘导致可能被窃取的可能性,因此可以提高数据存储的安全性。

优选地,如图2所示,所述大物理磁盘标识为p位的二进制字符串,所述小物理磁盘标识为q位的二进制字符串;所述小物理磁盘的序号为位于小磁盘标识的低位部分,每个小物理磁盘的存储空间为r位;

所述虚拟机,还用于在确定需要进行访存操作后,确定所述访存操作指定的虚拟地址;所述目标物理磁盘由其包含的各小物理磁盘按照所述各小物理磁盘所在的大物理磁盘标识从低到高依次排序组成,所述虚拟地址以所述目标物理磁盘的起始地址为起始虚拟地址顺序编号获得;在所述虚拟机中存储有地址映射表,所述地址映射表的表项包含:虚拟盘序号、小物理磁盘标识;计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量;查找所述地址映射表获得包含所述虚拟地址的虚拟盘序号的表项,并确定该表项中包含的小物理磁盘标识作为目标小物理磁盘标识;截取所述小物理磁盘标识的前p位作为目标大物理磁盘标识,向所述目标大物理磁盘标识对应的物理磁盘发送读请求,在所述读请求中包含所述小物理磁盘标识以及所述偏移量,使所述小物理磁盘标识对应的小物理磁盘返回在所述小物理磁盘的起始位置偏移所述偏移量对应物理地址的数据。

在本实施例中,设定了一个特别的大物理磁盘标识、小物理磁盘标识,这样可以设定一个地址映射表,方便后续迅速查到到对应的物理磁盘。由于在目标物理磁盘中,虚拟机会认为改目标物理磁盘是一个真实的物理磁盘,这样地址应该是目标物理磁盘中是连续的,然而实际上目标物理磁盘中的存储空间位于不同的物理磁盘,因此物理地址实际上是不同的;因此需要对虚拟地址进行转换;虚拟地址的使用是为了在虚拟机中方便应用,例如:软件编程等。虚拟地址是把上述目标物理磁盘看作是一个整体的物理磁盘后获得的地址,因为该虚拟地址并不与实际的物理磁盘地址对应,因此称为虚拟地址。通过本发明实施例方案,可以迅速查到的对应的物理磁盘和对应的物理地址,因此可以快速存储数据,相应地,也可以快速读取数据。

进一步地,鉴于本发明实施例所设定的特殊映射表,本发明实施例可以使用如下方式进行计算:所述虚拟机,用于计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量包括:

截取所述虚拟地址的前r位得到所述虚拟盘序号,截取所述虚拟地址的剩余位得到所述偏移量。

本发明实施例使用截取的方式得到结果,可以减少大量的逻辑运算,因此可以减少运算量,提高数据存储的效率。

进一步地,本发明实施例还提供了虚拟机删除的方案,如下:所述宿主机,还用于在所述虚拟机被创建之后,接收虚拟机删除请求,所述虚拟机删除请求用于请求删除所述虚拟机;将所述目标物理磁盘中包含的各小物理磁盘的分配状态设置为未分配状态,不删除所述目标物理磁盘中包含的各小物理磁盘已经被写入的数据。

在本发明实施例中,由于数据存储的方式是将数据拆分了存储,这样安全性较高,在删除虚拟机的时候,可以仅标记小物理磁盘的分配状态,不进行数据删除操作;一方面可以保证数据安全性,另一方面还可以减少物理磁盘的擦写次数,提高物理磁盘的寿命。

本发明实施例还提供了后续再次分配物理磁盘的可选实现方案,如下:所述宿主机,还用于在将所述目标物理磁盘中包含的各小物理磁盘的分配状态设置为未分配状态之后,记录所述目标物理磁盘中包含的各小物理磁盘,在下一次创建新虚拟机时,以随机方式获取所述新虚拟机所需的小物理磁盘,并确定获取到的小物理磁盘中少于或等于两个小物理磁盘属于所述目标物理磁盘中包含的小物理磁盘。

采用本实施例方案,可以进一步提高数据安全性。这是基于数据被存储到多个物理磁盘,虽然这些小物理磁盘中的数据并不具有连续性,但是如果这些物理磁盘又被分配到同一虚拟机,鉴于本发明实施例所使用的特殊小物理磁盘组成目标物理磁盘的方案,则有可能被恢复出来;为了避免这种情况的发生,提出了本实施例实现方案。

如图4所示,本发明实施例还提供了一种虚拟机,应用于包括所述虚拟机、宿主机和n个物理磁盘的分布式数据存储系统;所述n个物理磁盘位于宿主机一侧且每个物理磁盘被分为大小相等的小物理磁盘,每个物理磁盘内的小物理磁盘的序号按照地址从低到高排序;所述n个物理磁盘各自具有大物理磁盘标识,各小物理磁盘具有小物理磁盘标识,所述小物理磁盘标识由所述大物理磁盘标识与所述小物理磁盘的序号组合得到,所述虚拟机包括:

运行控制单元401,用于在虚拟机被构建后启动运行;所述虚拟机的存储空间由目标物理磁盘组成;所述目标物理磁盘组成过程如下:所述小物理磁盘的分配状态,以及所述n个物理磁盘的活跃程度被所述宿主机所监测到;在所述宿主机在接收到虚拟机创建请求后,确定将要创建的虚拟机的存储空间需求;依据所述小物理磁盘的分配状态确定处于未分配状态的小物理磁盘;从处于未分配状态的小物理磁盘中选择m个小物理磁盘作为目标物理磁盘,所述m个小物理磁盘的存储空间大于或等于所述存储空间需求;所述m大于或等于8且为2的指数次方;所述m个小物理磁盘各自位于不同的物理磁盘;所述宿主机响应所述虚拟机创建请求在所述目标物理磁盘中安装虚拟操作系统构建所述虚拟机;

发送单元402,用于在运行过程中若有数据存储需求,向所述m个小物理磁盘对应的物理磁盘分别发送活跃度查询请求,在所述活跃度查询请求中携带所述目标物理磁盘中各小物理磁盘的小物理磁盘标识;

接收单元403,用于接收所述m个小物理磁盘对应的物理磁盘返回的活跃程度;

处理器单元404,用于将需要存储的数据拆分为大于2且小于或等于m/2个目标数据,按照所述m个小物理磁盘对应的物理磁盘的活跃程度从低到高,将各目标数据分别存储到所述目标物理磁盘中的各小物理磁盘。

小物理磁盘标识的结构请参阅图2所示;

活跃程度可以用物理磁盘当前或者综合历史数据统计得到的平均数据吞吐量,或者平均数据吞吐量占对应物理磁盘的数据存储能力的比例。越活跃的物理磁盘其数据存储压力越大,形成拥塞的可能性也将会越大。

虚拟机创建请求可以是任意设备发出的,假定我们的系统应用于大型公司员工的虚拟机创建,那么可以是管理者发出的。对于不同的虚拟机可能会有不同的存储空间需求,例如:做业务的员工和做软件开发的员工,对存储空间的需求是不一样的。在本实施例中,可以假定每个小物理磁盘是500m,假定需要5000m的存储空间,那么可以分成10个小物理磁盘。这10个小物理磁盘从那些相对较为空闲的物理磁盘中选取。由于不同的虚拟机被使用的可能性是不同的,因此通过对小物理磁盘的选择性分配可以达到第一次均衡。

在虚拟机被创建以后,虚拟机的操作系统被安装,那么将会成为一个真正的虚拟机。虚拟机会获知自己被分配的目标物理磁盘,以及这些目标物理磁盘所处的位置。

本实施例中,设定目标数据的数量,一方面可以保持数据被分的目标数据较多,提高安全性和存储并行度;另一方面考虑到需要存储到那些比较空闲的物理磁盘中,减少出现拥塞的可能性。

在本发明实施例中,特别设定了物理磁盘的标识组成方式,方便后续物理磁盘的查找;另外,虚拟机的物理磁盘分配过程中充分考虑了各物理磁盘的活跃度,使得虚拟机能够分配到较为合适的物理磁盘,相对较为不活跃的磁盘可以减少拥塞;另外,将需要存储的数据进行了拆分,按照物理磁盘的活跃度再次进行数据分配,一方面进一步减少了数据拥塞的可能性,提高数据存储的并行度,另外还能够降低数据被整体存储到同一小物理磁盘导致可能被窃取的可能性,因此可以提高数据存储的安全性。

优选地,如图2所示,所述大物理磁盘标识为p位的二进制字符串,所述小物理磁盘标识为q位的二进制字符串;所述小物理磁盘的序号为位于小磁盘标识的低位部分,每个小物理磁盘的存储空间为r位;

所述处理器单元404,还用于在确定需要进行访存操作后,确定所述访存操作指定的虚拟地址;所述目标物理磁盘由其包含的各小物理磁盘按照所述各小物理磁盘所在的大物理磁盘标识从低到高依次排序组成,所述虚拟地址以所述目标物理磁盘的起始地址为起始虚拟地址顺序编号获得;在所述虚拟机中存储有地址映射表,所述地址映射表的表项包含:虚拟盘序号、小物理磁盘标识;计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量;查找所述地址映射表获得包含所述虚拟地址的虚拟盘序号的表项,并确定该表项中包含的小物理磁盘标识作为目标小物理磁盘标识;截取所述小物理磁盘标识的前p位作为目标大物理磁盘标识;

所述发送单元402,还用于向所述目标大物理磁盘标识对应的物理磁盘发送读请求,在所述读请求中包含所述小物理磁盘标识以及所述偏移量,使所述小物理磁盘标识对应的小物理磁盘返回在所述小物理磁盘的起始位置偏移所述偏移量对应物理地址的数据。

在本实施例中,设定了一个特别的大物理磁盘标识、小物理磁盘标识,这样可以设定一个地址映射表,方便后续迅速查到到对应的物理磁盘。由于在目标物理磁盘中,虚拟机会认为改目标物理磁盘是一个真实的物理磁盘,这样地址应该是目标物理磁盘中是连续的,然而实际上目标物理磁盘中的存储空间位于不同的物理磁盘,因此物理地址实际上是不同的;因此需要对虚拟地址进行转换;虚拟地址的使用是为了在虚拟机中方便应用,例如:软件编程等。虚拟地址是把上述目标物理磁盘看作是一个整体的物理磁盘后获得的地址,因为该虚拟地址并不与实际的物理磁盘地址对应,因此称为虚拟地址。通过本发明实施例方案,可以迅速查到的对应的物理磁盘和对应的物理地址,因此可以快速存储数据,相应地,也可以快速读取数据。

进一步地,鉴于本发明实施例所设定的特殊映射表,本发明实施例可以使用如下方式进行计算:所述处理器单元404,用于计算所述虚拟地址与所述r的商取整得到所述虚拟地址的虚拟盘序号,计算所述虚拟地址与所述r的商取余得到偏移量包括:

截取所述虚拟地址的前r位得到所述虚拟盘序号,截取所述虚拟地址的剩余位得到所述偏移量。

本发明实施例使用截取的方式得到结果,可以减少大量的逻辑运算,因此可以减少运算量,提高数据存储的效率。

进一步地,本发明实施例还提供了虚拟机删除的方案,如下:若所述虚拟机需要被删除,则所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态,不删除所述目标物理磁盘中包含的各小物理磁盘已经被写入的数据。

在本发明实施例中,由于数据存储的方式是将数据拆分了存储,这样安全性较高,在删除虚拟机的时候,可以仅标记小物理磁盘的分配状态,不进行数据删除操作;一方面可以保证数据安全性,另一方面还可以减少物理磁盘的擦写次数,提高物理磁盘的寿命。

本发明实施例还提供了后续再次分配物理磁盘的可选实现方案,如下:在所述目标物理磁盘中包含的各小物理磁盘的分配状态被设置为未分配状态之后,在下一次创建新虚拟机时,所述新虚拟机所需的小物理磁盘以随机方式获取,并且所述获取到的小物理磁盘中少于或等于两个小物理磁盘属于所述目标物理磁盘中包含的小物理磁盘。

采用本实施例方案,可以进一步提高数据安全性。这是基于数据被存储到多个物理磁盘,虽然这些小物理磁盘中的数据并不具有连续性,但是如果这些物理磁盘又被分配到同一虚拟机,鉴于本发明实施例所使用的特殊小物理磁盘组成目标物理磁盘的方案,则有可能被恢复出来;为了避免这种情况的发生,提出了本实施例实现方案。

本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1