专利名称:一种非同质存储设备的虚拟化系统及方法
技术领域:
本发明涉及信息存储领域,特别涉及一种非同质存储设备的虚拟化系统及方法。
背景技术:
随着信息技术的发展,计算机系统所附属的存储设备越来越多,如何有效地管理使用这些存储设备是一个问题。
针对该问题,现有技术中提出了逻辑卷、RAID等虚拟化技术,其实质就是要将多个存储设备构建成一个统一的虚拟存储设备提供给计算机系统使用,完成存储空间的管理和I/O的映射工作,并根据具体的策略将I/O请求转发到下层存储设备,从而达到并发访问、统一管理。这些技术一般用于海量、集中存储环境,主要的存储介质是磁盘和磁带。而对于客户端环境(终端)而言,存储介质的类型更为丰富,如软盘、硬盘、光盘、USB移动硬盘、FLASH记忆棒、由高速专用网络和高速设备支持的网络硬盘、通过广域网络连接的网络硬盘等。
对于各种不同类型的存储设备,不同存储设备具有不同的特性,例如不同存储设备中数据保存的时间是不同的,内存虚盘访问速度很快,但只要关机或掉电,所存储的数据就全部丢失,其他存储设备可以长时间地保存数据;不同存储设备的访问方式不同,本地磁盘是通过本地的总线访问,而网络存储设备是通过网络访问的;不同存储设备的读写速度是不同的,硬盘的读写速度比较快,而软盘、USB移动硬盘相对就比较慢;不同存储设备的可用性是不同的,网络硬盘,受网络带宽的影响很大,读写速度相对不如本地存储设备稳定,甚至如果网络中断,网络存储设备就无法使用;不同存储设备的容量是不同的,本地存储设备的容量是很有限的,而网络硬盘却可以提供海量存储能力。
但在现有的虚拟化技术中,只能对同质的物理存储设备作虚拟化的操作,若客户端环境同时有多个非同质存储设备,则无法实现对非同质存储设备的虚拟化,不能充分发挥和利用设备的特点。因此如何充分利用不同存储介质的特性来构建虚拟存储设备,以提高计算机系统的可用性、可靠性,优化整体性能是一个亟待解决的问题。
发明内容
本发明的目的是克服现有技术无法将多个非同质的物理存储设备虚拟化为一个统一的虚拟存储设备的缺陷,从而提供一种可将非同质的物理存储设备虚拟化为一个虚拟存储设备的虚拟化方法。
本发明的另一个目的是提供一种对非同质的物理存储设备进行优化配置,发挥不同存储设备特点的虚拟化系统。
为了实现上述目的,本发明提供了一种非同质存储设备的虚拟化系统,包括虚拟存储设备1、操作接口模块5、控制层11以及物理存储设备,所述的物理存储设备间为非同质的物理存储设备,所述的控制层11包括控制查询模块6、映射策略模块7、存储设备物理特性管理模块8、设备间数据同步迁移模块9和I/O处理模块12;其中,所述的虚拟存储设备1与所述的控制层11连接,所述的控制层11则与所述的非同质的物理存储设备分别连接,所述的操作接口模块5连接到所述的控制层11以及各个非同质的物理存储设备上;所述的控制查询模块6分别与映射策略模块7、存储设备物理特性管理模块8、设备间数据同步迁移模块9和I/O处理模块12连接;所述的映射策略模块7还与存储设备物理特性管理模块8、I/O处理模块12连接;所述的设备间数据同步迁移模块9还与I/O处理模块12连接。
上述技术方案中,所述的映射策略模块7通过控制查询模块6获取用户指定的I/O映射策略,结合存储设备物理存储特性管理模块8描述的信息,确定适合虚拟存储设备1的I/O映射策略。
上述技术方案中,所述的存储设备物理特性管理模块8在虚拟存储设备1的构建过程中查询所述的非同质的物理存储设备的物理特性。
上述技术方案中,所述的非同质的物理存储设备是内存虚盘或软盘或普通的本地连接磁盘或USB移动硬盘或Flash存储盘或通过局域网连接的网络存储设备或者通过广域网连接的网络存储设备。
本发明还提供了一种非同质存储设备的虚拟化方法,包括以下步骤步骤10)、对要加入虚拟化系统的非同质的物理存储设备进行注册,输入非同质的物理存储设备的名称和虚拟化系统所要采用的虚拟化策略;所述的虚拟化策略包括I/O映射策略;步骤20)、构建虚拟存储设备,将所述的加入到虚拟化系统中的非同质的物理存储设备的容量大小、存储设备类型信息注册到该虚拟存储设备中,并用一个超级块表示所述虚拟存储设备的信息,把超级块保存到加入到虚拟化系统中的各个非同质的物理存储设备上;步骤30)、识别并记录虚拟化系统中的各个非同质物理存储设备的物理特性;步骤40)、根据步骤10)中用户配置的虚拟化策略中的I/O映射策略和步骤30)中得到的各非同质物理存储设备的物理特性,制定出所述虚拟存储设备中的具体I/O映射策略;步骤50)、虚拟化系统构建完成,供计算机系统使用;步骤60)、利用虚拟存储设备,实现对数据的读取和存储;步骤70)、虚拟存储设备完成对数据的读写操作后,在所述的物理存储设备中实现对数据的同步和迁移;步骤80)、当虚拟存储设备使用完毕后,删除该虚拟存储设备。
上述技术方案中,在所述的步骤20)中,所述的超级块包括虚拟存储设备的标识、设备号、采用的虚拟化映射策略、子存储设备个数、虚拟存储设备更新时间、正常工作的存储设备、失效的存储设备、各个成员存储设备的信息、当前数据同步和迁移的状态。
上述技术方案中,在所述的步骤30)中,所述的物理特性包括存储设备是持久存储或是临时存储、存储设备的读写响应速度、存储设备的可用性和可靠性、存储设备的容量。
上述技术方案中,在所述的步骤60)中,所述的对数据进行读取和存储包括步骤60-1)、接收I/O读写请求;步骤60-2)、根据I/O映射策略和各个存储设备的物理特性,对I/O读写请求做重映射;步骤60-3)、将I/O读写请求转发到指定的物理存储设备;步骤60-4)、读写操作完成,返回步骤60-1),接收下一个请求。
上述技术方案中,在所述的步骤70)中,所述的对数据的同步和迁移包括步骤70-1)、接收对数据的同步或迁移请求,该请求中包括同步和迁移数据的源存储设备和目标存储设备,要迁移或者同步的数据在这两个设备中的起始地址和数量,最大数据同步或者迁移的速率;步骤70-2)、确保当前的正常I/O操作暂停,如果当前有正常I/O操作,则等待其完成再开始本次数据同步和迁移周期;步骤70-3)、在一个数据操作周期内,进行数据的读写同步或者迁移操作,当本次数据操作周期完成,则等待下一次操作开始后继续数据同步或者迁移的I/O操作;步骤70-4)、在进行数据同步和迁移的过程中,根据最近一段时间传输的数据总量,计算出当前的数据同步或者迁移速率,如果超过预定的上限,则本次数据操作结束,等待下次操作周期开始后再进行数据同步操作;步骤70-5)、在数据同步和迁移的过程中,通过位图确认本次同步或者迁移操作对应数据块是否处于同步和最新状态,如果该数据块同步且最新,则对该数据块的操作取消,继续进行其他数据块的处理步骤70-6)、在完成指定的数据同步和迁移请求任务后,更新相应存储设备的数据状态,完成数据的同步和迁移操作。
上述技术方案中,在所述的步骤80)中,所述的删除虚拟存储设备包括步骤80-1)、用户下达删除虚拟存储设备的命令,;步骤80-2)、停止虚拟存储设备中的所有I/O操作以及数据同步或者迁移的I/O操作,等待当前的I/O操作完成;步骤80-3)、删除写入到各个非同质的物理存储设备中的超级块,使得在计算机系统重启后不会因为超级块的存在而重新构建虚拟存储设备;步骤80-4)、在计算机系统中注销虚拟存储设备的信息,完成删除过程。
本发明的优点在于1、在虚拟存储设备创建的时候,对各个组成虚拟存储设备的具体存储设备的物理特性进行了区分,并对这些属性进行了优先级的划定,实现了对非同质设备的物理特性的管理;2、做I/O映射处理时考虑每个具体存储设备的物理特性,使得虚拟存储设备的整体性能得到优化;3、能够有效提高计算机系统数据的一致性和可靠性。
图1为本发明的非同质存储设备的虚拟化系统的结构图;图2为本发明的非同质存储设备的虚拟化系统中的控制层的结构图;图3为本发明的非同质存储设备的虚拟化方法的流程图。
图面说明1 虚拟存储设备 2 第一物理存储设备3第二物理存储设备4 第三物理存储设备 5 操作接口模块6控制查询模块7 映射策略模块 8 存储设备物理特性管理模块9 设备间数据同步迁移模块11 控制层12 I/O处理模块具体实施方式
下面结合附图和具体实施方式
对本发明作进一步的说明。
在本实施例中,如图1所示,本发明的非同质存储设备虚拟化系统包括虚拟存储设备1、第一物理存储设备2、第二物理存储设备3、第三物理存储设备4、操作接口模块5、和控制层11。其中,虚拟存储设备1与控制层11连接,控制层11则分别与第一物理存储设备2、第二物理存储设备3、第三物理存储设备4连接,操作接口模块5则分别连接到控制层11、第一物理存储设备2、第二物理存储设备3和第三物理存储设备4上。
上述的虚拟存储设备1是一个提供给用户的计算机系统使用的存储设备,在该设备中不存储任何数据,所有的数据都存储在第一物理存储设备2、第二物理存储设备3、第三物理存储设备4上。应当说明的是,在本实施例中,为了说明的方便,设置了三个物理存储设备,但在实际使用中,物理存储设备的个数不受限制,而各个物理存储设备的类型也可以有所不同,它们可以是非同质的存储设备,例如,所述的第一物理存储设备2、第二物理存储设备3、第三物理存储设备4可以是内存虚盘、软盘、普通的本地连接磁盘、USB移动硬盘、Flash存储盘、通过局域网连接的网络存储设备或者通过广域网连接的网络存储设备中的一种。
操作接口模块5主要是向用户和计算机系统提供管理操作接口,解析配置文件和用户命令,将这些命令转发给控制层相应功能模块完成所需操作。通过它可以注册物理存储设备,创建或删除虚拟存储设备,向指定虚拟存储设备中添加新的物理存储设备或者从中移除某个物理存储设备,查询当前虚拟存储设备以及各个成员存储设备的状态。
在控制层11中,包括控制查询模块6、映射策略模块7、存储设备物理特性管理模块8、设备间数据同步迁移模块9、I/O处理模块12。
其中,控制查询模块6参与对虚拟存储设备1的构建和删除,并负责系统的状态监控和成员存储设备的判断。该模块的具体工作包括1)、对物理存储设备的I/O操作情况进行统计,监控各个成员存储设备的状态是否可用。系统设定一个I/O操作超时值,如果I/O处理模块12发现对某个下层存储设备(即前面所提到的物理存储设备)的I/O请求超时,则通知控制查询模块6标记该存储设备为失效状态,这样控制层11就不再将I/O请求转发给该失效的存储设备。控制查询模块6还可根据单位时间内读写I/O的次数计算当前存储设备的负载请求,以0~20的整数来区分不同的负载,值越大表示当前I/O负载越重。
2)、控制后备物理存储设备的使用。当某个物理设备失效后,如果该设备有同类型的后备物理设备,则由本模块决定是否将该后备物理设备顶替失效的物理设备,控制查询模块6完成该决策的依据可以是显示的命令,也可以是配置文件中预先指定的策略。
3)、监控控制数据同步和迁移情况。控制查询模块6从设备间数据同步迁移模块9获取数据同步和迁移的信息,这些信息具体包括数据同步和迁移完成的百分比、同步和迁移操作的源存储设备和目标存储设备。当有物理存储设备失效时,如果该失效设备在以后恢复后需要对数据进行同步,则本模块命令数据同步和迁移模块6在位图中记录没有同步的数据块。当该存储设备恢复时,如果有需要,则由本模块命令数据同步和迁移模块发起数据的同步操作。
4)、当虚拟存储设备所在的计算机系统重启动或者失效恢复时,在重新构建虚拟存储设备的过程中,本模块还要负责对虚拟存储设备的成员物理存储设备进行验证,以确保它的合法性和数据的一致性。具体方法是检查每个存储设备的超级块中数字签名信息和创建时间是否一致,如果存在不一致状态,则通知计算机系统存在错误,报告虚拟存储设备构建失败或者采用降级的方式使用。
控制查询模块6向外提供的虚拟存储设备状态信息包括虚拟存储设备1的I/O情况、逻辑容量、当前采用的映射策略、有效存储设备、失效的存储设备、后备存储设备;构成虚拟存储设备的每个物理存储设备名、I/O情况、物理特性、物理空间使用率、数据状态(是否最新、一致);当前数据同步或迁移操作完成的百分比、同步或迁移操作的源物理存储设备和目标物理存储设备名。
映射策略模块7在虚拟存储设备构建的过程中,通过控制查询模块6获取用户指定的I/O映射策略,结合存储设备物理存储特性管理模块8描述的信息确定适合虚拟存储设备1的I/O映射策略,该策略决定I/O处理模块12处理I/O请求时该将I/O请求发送到哪一个物理存储设备。其基本原则是在结合每个负载的情况下考虑存储设备的物理特性差异,使得虚拟存储设备取得最高的可用性、可靠性和整体性能。比如当计算机系统从虚拟存储设备1所读取得数据存在于两个以上的存储设备时,则从读写响应速度快的物理存储设备上读取;当写入数据时,也确保先写入读写性能好的存储设备,再由数据同步和迁移模块9完成数据的同步或者迁移工作;当写入的数据需要持久保存时,则将该数据尽量保存到可靠性高的持久存储设备中。
存储设备物理特性管理模块8在虚拟存储设备1的构建过程中进行各个子存储设备物理特性的初始化工作,为映射策略模块7提供指定本虚拟存储设备具体I/O映射策略提供依据。
设备间数据同步迁移模块9主要负责维护不同存储设备数据的一致性、完整性和正确性,数据的同步和迁移过程是周期性地进行,通过模块中的一个定时器周期地触发该操作,使得虚拟存储设备1在其他时间可以继续处理正常的I/O流程。
I/O处理模块12根据映射策略模块7确定的I/O映射策略完成I/O的处理。
下面结合本发明的非同质存储设备的虚拟化系统对该系统的构建方法和工作流程进行说明。
步骤10、注册物理存储设备,输入存储设备名和虚拟化策略。由于在本发明的虚拟化系统中,物理存储设备具有各种不同的类型,因此,需要对物理存储设备进行注册以区分各种物理存储设备。在注册时,一般只需要输入存储设备名和所选用的虚拟化策略,然后再由后续操作识别该存储设备的容量大小、存储特性等,但也可以在注册的过程中指定存储设备的特性。物理存储设备的注册一般通过配置文件由操作接口模块5自动完成,也可由用户通过操作接口模块5所提供的命令行工具手工完成。其中,虚拟化策略包括I/O映射策略以及相关的一些管理配置工作。虚拟化策略的核心是I/O映射策略,I/O映射策略主要用于解决具体的I/O怎么转发,怎么处理的问题。I/O映射策略决定了物理存储设备在I/O映射中的相互关系,例如在一个存储设备互作镜像的I/O策略中,需要确定哪个存储设备是主设备,在实现一个设备作为另一个设备的缓存的I/O映射策略下,需要确定哪个存储设备被用作缓存进行使用。
在注册过程中,操作接口模块5会通过控制查询模块6检查所要注册的物理存储设备在本计算机系统中是否被其他的虚拟存储设备所使用或者正处于BUSY状态,如果是,则该存储设备不能够进行注册。
步骤20、注册物理存储设备的具体信息,并构建虚拟存储设备。操作接口模块5对收到的注册命令进行解析,并将解析后的相关信息转发给控制查询模块6。控制查询模块6扫描所要注册的物理存储设备,获得各个物理存储设备的容量大小、物理存储设备的类型等信息,然后为虚拟存储设备随机生成一个独一无二的数字签名用于标识该虚拟存储设备,并为构建的虚拟存储设备维护一个成员存储设备列表(DEVICE_LIST),在该列表中记录了成员存储设备(即所注册的物理存储设备)的信息,包括容量大小、存储设备类型、加入虚拟存储设备的时间、物理存储特性等。控制查询模块6同时生成一个超级块(Super Block)以保存虚拟存储设备的相关信息,该超级块所保存的信息包括虚拟存储设备的标识、设备号、采用的虚拟化映射策略、子存储设备个数、虚拟存储设备更新时间、正常工作的存储设备、失效的存储设备、各个成员存储设备的信息、当前数据同步和迁移的状态。所得到的超级块(Super Block)由控制查询模块6写入到组成虚拟存储设备的每个物理存储设备的尾部预定的偏移位置(即系统所设定的元数据区域),标示该物理存储设备已经被用于构建虚拟存储设备。
步骤30、识别并记录各物理存储设备的物理特性。存储设备物理特性管理模块8在识别物理存储设备的物理特性时,主要关注如下特性a)持久或是临时存储;b)读写响应速度;c)设备的可用性和可靠性;d)容量。
在本发明的系统中,还规定了如表1中的默认规则
表1在构建虚拟存储设备时,存储设备物理特性管理模块8可以根据设备的类型按照表1中的规则来确定各个物理存储设备的几种物理特性的权值,也可以由注册时指定的各个物理特性的权值进行确定。一般来说,物理特性的权值越小,则性能越好,可靠性越高。存储设备物理特性管理模块8将确定的各个存储设备物理特性的权值保存在DEVICE_LIST的物理特性域中,以供使用中查询。
步骤40、映射策略模块7根据步骤10中用户配置的虚拟化策略中的I/O映射策略和步骤30中得到的各物理存储设备的物理特性,制定出本虚拟存储设备中具体I/O映射策略。例如,两个物理存储设备相互作镜像,专业的术语叫raid1,就是一种具体的I/O映射策略,其实质就是在虚拟设备上写入一份数据,按照这个I/O映射策略后,中间的控制层需要将这一份数据在这两个物理存储设备都写一份,相互作镜像或者说备份。
映射策略模块7通过控制查询模块6获取用户指定的基本I/O映射策略,比如该基本I/O策略可以是实现两块非同质物理存储设备之间的数据镜像的IO映射策略,然后结合存储设备物理特性管理模块8中各物理存储设备的物理特性确定一个优化的I/O映射策略。当映射策略模块7确定本虚拟存储设备采用的I/O映射策略后,在使用虚拟存储设备时,根据所得到的具体I/O映射策略,结合I/O处理模块完成I/O请求的处理。
步骤50、虚拟存储设备构建完成,提供给计算机系统使用。
在确定组成虚拟存储设备的物理存储设备,以及虚拟存储设备中所采用的I/O映射策略后,由控制查询模块6通知计算机系统当前的虚拟存储设备可以正常使用,至此完成虚拟存储设备的创建过程。
步骤60、利用虚拟存储设备,实现对数据的读取和存储。计算机系统使用虚拟存储设备主要是存储和读取数据,当计算机系统的I/O请求发送到由本发明构建的虚拟存储设备后,控制层接管响应的I/O请求,由它的I/O处理模块12进行处理,I/O处理模块12根据映射策略模块7描述的映射策略,将I/O转发到相应的物理存储设备。当物理存储设备处理完I/O请求后,将结果返回给控制层,然后控制层再转发给计算机系统完成I/O请求的处理。
如果计算机系统需要查询虚拟存储设备的当前信息,则可以通过操作接口模块5提供的命令进行查询,控制查询模块6接收到查询命令后将计算机系统所需要的信息通过操作接口模块5返回给计算机系统完成信息的查询。
下面假设I/O映射策略为数据镜像,对数据处理的过程进行说明。
读数据步骤61、计算机系统向虚拟存储设备1的设备接口发送读数据请求,虚拟存储设备1接收到该读数据请求后,由I/O处理模块12对该读数据请求进行处理;步骤62、当I/O处理模块12接收读数据请求时,通知映射策略模块7当前有一个IO请求需要处理。映射策略模块7先通过控制查询模块6查询每个成员存储设备的数据状态,找出所有拥有请求所需数据并且数据处于最新状态的设备,然后再获取这些设备表示当前负载的整数值,再将这些信息返回到映射策略模块7中进行处理。
步骤63、映射策略模块7收到控制查询模块6发来的信息后,再向存储设备物理特性管理模块8查询该信息中包含的每个物理存储设备的读响应速度特性,获得相应的表示权值,并结合表示这些物理存储设备负载的值,按照两者所占权重比例算出平均值,映射策略模块7从这些设备中选出平均值最小的物理存储设备,然后将该物理存储设备返回给I/O处理模块12。
步骤64、I/O处理模块12确保存储设备物理特性管理模块8返回的存储设备没有进行数据同步和迁移操作,否则,等待本次同步或迁移操作完成,当存储设备上没有进行数据同步和迁移操作时,通知I/O处理模块12将读数据请求转发到映射策略模块7返回的存储设备上读取数据。
步骤65、I/O处理模块12将读取的数据返回给计算机系统完成本次读数据请求。
写数据步骤66、计算机系统向虚拟存储设备1的设备接口发送写数据请求,虚拟存储设备1接收到数据写请求后,由I/O处理模块12对该I/O请求进行处理;步骤67、I/O处理模块12通过映射策略模块7检查当前I/O映射策略中是否允许异步写操作,如果不允许,则转入步骤610继续处理,如果允许,映射策略模块7则通过控制查询模块6查询每个可用的成员存储设备的状态,获取这些设备表示当前负载的整数值,再由控制查询模块6将这些信息返回到映射策略模块7进行处理;步骤68映射策略模块7收到控制查询模块6发来的信息后,再向存储设备物理特性管理模块8查询每个存储设备的写响应速度特性,获得相应表示权值,再结合表示这些存储设备负载的值,按照两者所占权重比例算出平均值,物理特性管理模块从这些设备中选出平均值最小的存储设备,然后将该存储设备返回给I/O处理模块12;步骤69、完成写数据操作,其具体实现如下。
步骤69-1、I/O处理模块12将写数据请求转发到映射策略模块7返回的存储设备上完成数据写入,但转发之前需要确保该存储设备没有进行数据同步或者迁移操作,否则,等待本次同步和迁移周期完成再进行后面的处理;同时通知控制查询模块6记录只有该存储设备写入了本次数据,其他的存储设备处于不同步状态,并且让数据同步和迁移模块9在位图中标识该写请求对应的数据块内容处于不同步状态,为以后数据同步使用;步骤69-2、写请求完成后,I/O处理模块12通知计算机系统本次写操作完成,结束本次写操作。对其他存储设备的写由数据同步和迁移模块9的同步过程完成,使得最终的数据达到一致。
步骤610、完成同步写操作。
步骤610-1、I/O处理模块12通过控制查询模块6查询出当前正常工作的存储设备,I/O处理模块12将写请求为这些存储设备每一个复制一份并转发到这些存储设备上。但转发之前也需要确保这些存储设备没有数据同步或者迁移操作正在发生,若有则等待本次同步和迁移周期完成再进行后面的处理。
步骤610-2当分发到这些存储设备的写请求都完成后,I/O处理模块12通知计算机系统本次写请求处理完成,然后通知数据同步与迁移模块将虚拟存储设备中所对应的数据块的位图表示为同步状态。
步骤70、虚拟存储设备完成对数据的读写操作后,还需要在物理存储设备中实现对数据的同步和迁移。其具体实现如下;步骤71、设备间数据同步迁移模块9接收到控制查询模块6发送的同步或者迁移数据请求后开始同步或者迁移操作,该请求包括同步和迁移数据的源存储设备和目标存储设备,要迁移或者同步的数据在这两个设备中的起始地址和数量,最大数据同步或者迁移的速率。
步骤72、设备间数据同步迁移模块9在开始进行数据I/O操作之前需要确保当前的正常I/O操作暂停,如果当前有正常I/O操作,则等待其完成再开始本次数据同步和迁移周期。
步骤73、设备间数据同步迁移模块9开始本次数据操作周期,根据控制查询模块6发来的请求信息进行数据的读写同步或者迁移操作,当本次数据操作周期完成则等待下一次操作开始后继续数据同步或者迁移的I/O操作,下次周期由定时器触发。
步骤74、设备间数据同步迁移模块9在进行数据同步和迁移的过程中,根据最近一段时间传输的数据总量算出当前的数据同步或者迁移速率,如果超过预定的上限,则本次数据操作结束等待下次操作周期开始后再进行数据同步操作。
步骤75、设备间数据同步迁移模块9在数据同步和迁移的过程中,通过本模块的位图信息减少数据操作数量。模块在发出读写I/O请求之前会先通过位图确认本次同步或者迁移操作对应数据块是处于同步和最新状态,如果该数据块同步且最新,则对该数据块的操作取消,继续进行其他数据块的处理。
步骤76、设备间数据同步迁移模块9在完成指定的数据同步和迁移请求任务后,通知控制查询模块6更新相应存储设备的数据状态,至此完成数据的同步和迁移操作。
步骤80、当本发明的虚拟存储设备使用完毕后,删除该虚拟存储设备,其具体实现如下。
步骤81、用户通过操作接口模块5下达删除虚拟存储设备1的命令,命令经过解析后转发给控制层中的控制查询模块6;
步骤82、控制查询模块6停止对虚拟存储设备1的所有I/O操作以及数据同步或者迁移的I/O操作,等待当前的I/O操作完成;步骤83、删除写入到各个物理存储设备中的超级块(Super Block),使得在计算机系统重启后不会因为超级块的存在而重新构建虚拟存储设备;步骤84、从计算机系统中注销该虚拟存储设备的相关信息,完成删除过程。
下面举一个具体的实例,来说明本发明的非同质存储设备的虚拟化系统,以及相关的方法。
在一个虚拟化系统中,有两个物理存储设备,分别是一个闪存存储设备a和一个磁盘b,虚拟化策略为构建简单的数据镜像。
虚拟存储设备构建用户输入命令或者通过配置文件将这两个存储设备在计算机系统中的名字、使用镜像作为映射策略等信息通过系统操作接口模块提供的命令输入,控制层根据解析后的命令对这两个物理存储设备和虚拟存储设备的基本信息进行初始化,并保存到这两个物理存储设备的元数据区。然后存储设备物理特性管理模块识别并记录这两个物理存储设备的物理特性,根据默认规则的设定,系统可以知道闪存存储设备a比磁盘设备b具有更快的响应速度,但是可靠性比之较低。映射策略模块根据设定的两个存储设备作镜像的映射策略,和当前设备a、b的物理属性制定本虚拟存储设备的具体I/O映射策略。因为设备a具体更高的读写响应速度,而设备b具有更高的可靠性,所以在具体I/O映射策略中,虚拟存储设备在进行读写时优先从设备a中进行,而通过设备间同步和迁移模块最终保证数据被同步到磁盘设备b中,实现镜像功能。
I/O处理过程同步读写操作写操作时,需要确保闪存存储设备a和磁盘设备b都完成后才通知本次对虚拟存储设备的操作完成。
读数据时,因为数据写入的时候是同步操作,所以在闪存存储设备a上一定有所需要的数据,在读取时结合当前设备a、b的负载情况(负载由上文控制查询模块中所描述的负载值表示),系统控制层优先将数据请求转发到设备a中去完成虚拟存储设备的读操作。
异步读写操作写操作时,控制层只要将写请求转发到设备a,等待设备a完成后即返回表示虚拟存储设备写操作完成,而不用考虑设备b的完成情况。因为设备a和设备b之间是要构建实现镜像功能的虚拟存储设备,他们必须保存一致的数据。在异步写操作时本实例中设备b的数据一致性由设备间数据同步迁移模块负责,如果当前没有将数据写入到设备b,则由设备间数据同步迁移模块在系统负载比较轻的时候将数据从设备a同步到设备b中,以确保虚拟存储设备镜像功能的实现。
读数据时,控制层优先考虑将数据读请求转发到设备a中进行读取,如果设备a的负载很重,则通过同步位图检查在磁盘设备b上是否有所需数据,如果有且设备b的负载较低,则直接将请求转发到磁盘设备中完成虚拟存储设备的读数据操作,否则仍然转发请求到设备a中去完成虚拟存储设备的本次读数据操作。
虚拟存储设备的删除该过程比较简单,用户通过操作接口模块提供的控制命令下达删除虚拟存储设备的命令,控制层接收到解析后的命令后,首先禁止接收计算机系统新发送来的I/O请求,然后检查设备a和设备b上是否有正在进行I/O操作,如果有则等待这些操作完成后再进行其后的操作。当确保组成虚拟存储设备的这两个物理存储设备a和b没有正在进行的I/O操作后,控制层将这两个存储设备的元数据区中记录的信息删除,最后通知计算机系统删除该虚拟存储设备所注册的信息完成该虚拟存储设备的删除工作。
权利要求
1.一种非同质存储设备的虚拟化系统,包括虚拟存储设备(1)、操作接口模块(5)、控制层(11)以及物理存储设备,其特征在于,所述的物理存储设备间为非同质的物理存储设备,所述的控制层(11)包括控制查询模块(6)、映射策略模块(7)、存储设备物理特性管理模块(8)、设备间数据同步迁移模块(9)和I/O处理模块(12);其中,所述的虚拟存储设备(1)与所述的控制层(11)连接,所述的控制层(11)则与所述的非同质的物理存储设备分别连接,所述的操作接口模块(5)连接到所述的控制层(11)以及各个非同质的物理存储设备上;所述的控制查询模块(6)分别与映射策略模块(7)、存储设备物理特性管理模块(8)、设备间数据同步迁移模块(9)和I/O处理模块(12)连接;所述的映射策略模块(7)还与存储设备物理特性管理模块(8)、I/O处理模块(12)连接;所述的设备间数据同步迁移模块(9)还与I/O处理模块(12)连接。
2.根据权利要求1所述的非同质存储设备的虚拟化系统,其特征在于,所述的映射策略模块(7)通过控制查询模块(6)获取用户指定的I/O映射策略,结合存储设备物理存储特性管理模块(8)描述的信息,确定适合虚拟存储设备(1)的I/O映射策略。
3.根据权利要求1所述的非同质存储设备的虚拟化系统,其特征在于,所述的存储设备物理特性管理模块(8)在虚拟存储设备(1)的构建过程中查询所述的非同质的物理存储设备的物理特性。
4.根据权利要求1所述的非同质存储设备的虚拟化系统,其特征在于,所述的非同质的物理存储设备是内存虚盘或软盘或普通的本地连接磁盘或USB移动硬盘或Flash存储盘或通过局域网连接的网络存储设备或者通过广域网连接的网络存储设备。
5.一种非同质存储设备的虚拟化方法,包括以下步骤步骤10)、对要加入虚拟化系统的非同质的物理存储设备进行注册,输入非同质的物理存储设备的名称和虚拟化系统所要采用的虚拟化策略;所述的虚拟化策略包括I/O映射策略;步骤20)、构建虚拟存储设备,将所述的加入到虚拟化系统中的非同质的物理存储设备的容量大小、存储设备类型信息注册到该虚拟存储设备中,并用一个超级块表示所述虚拟存储设备的信息,把超级块保存到加入到虚拟化系统中的各个非同质的物理存储设备上;步骤30)、识别并记录虚拟化系统中的各个非同质物理存储设备的物理特性;步骤40)、根据步骤10)中用户配置的虚拟化策略中的I/O映射策略和步骤30)中得到的各非同质物理存储设备的物理特性,制定出所述虚拟存储设备中的具体I/O映射策略;步骤50)、虚拟化系统构建完成,供计算机系统使用;步骤60)、利用虚拟存储设备,实现对数据的读取和存储;步骤70)、虚拟存储设备完成对数据的读写操作后,在所述的物理存储设备中实现对数据的同步和迁移;步骤80)、当虚拟存储设备使用完毕后,删除该虚拟存储设备。
6.根据权利要求5所述的非同质存储设备的虚拟化方法,其特征在于,在所述的步骤20)中,所述的超级块包括虚拟存储设备的标识、设备号、采用的虚拟化映射策略、子存储设备个数、虚拟存储设备更新时间、正常工作的存储设备、失效的存储设备、各个成员存储设备的信息、当前数据同步和迁移的状态。
7.根据权利要求5所述的非同质存储设备的虚拟化方法,其特征在于,在所述的步骤30)中,所述的物理特性包括存储设备是持久存储或是临时存储、存储设备的读写响应速度、存储设备的可用性和可靠性、存储设备的容量。
8.根据权利要求5所述的非同质存储设备的虚拟化方法,其特征在于,在所述的步骤60)中,所述的对数据进行读取和存储包括步骤60-1)、接收I/O读写请求;步骤60-2)、根据I/O映射策略和各个存储设备的物理特性,对I/O读写请求做重映射;步骤60-3)、将I/O读写请求转发到指定的物理存储设备;步骤60-4)、读写操作完成,返回步骤60-1),接收下一个请求。
9.根据权利要求5所述的非同质存储设备的虚拟化方法,其特征在于,在所述的步骤70)中,所述的对数据的同步和迁移包括步骤70-1)、接收对数据的同步或迁移请求,该请求中包括同步和迁移数据的源存储设备和目标存储设备,要迁移或者同步的数据在这两个设备中的起始地址和数量,最大数据同步或者迁移的速率;步骤70-2)、确保当前的正常I/O操作暂停,如果当前有正常I/O操作,则等待其完成再开始本次数据同步和迁移周期;步骤70-3)、在一个数据操作周期内,进行数据的读写同步或者迁移操作,当本次数据操作周期完成,则等待下一次操作开始后继续数据同步或者迁移的I/O操作;步骤70-4)、在进行数据同步和迁移的过程中,根据最近一段时间传输的数据总量,计算出当前的数据同步或者迁移速率,如果超过预定的上限,则本次数据操作结束,等待下次操作周期开始后再进行数据同步操作;步骤70-5)、在数据同步和迁移的过程中,通过位图确认本次同步或者迁移操作对应数据块是否处于同步和最新状态,如果该数据块同步且最新,则对该数据块的操作取消,继续进行其他数据块的处理。步骤70-6)、在完成指定的数据同步和迁移请求任务后,更新相应存储设备的数据状态,完成数据的同步和迁移操作。
10.根据权利要求5所述的非同质存储设备的虚拟化方法,其特征在于,在所述的步骤80)中,所述的删除虚拟存储设备包括步骤80-1)、用户下达删除虚拟存储设备的命令,;步骤80-2)、停止虚拟存储设备中的所有I/O操作以及数据同步或者迁移的I/O操作,等待当前的I/O操作完成;步骤80-3)、删除写入到各个非同质的物理存储设备中的超级块,使得在计算机系统重启后不会因为超级块的存在而重新构建虚拟存储设备;步骤80-4)、在计算机系统中注销虚拟存储设备的信息,完成删除过程。
全文摘要
本发明公开了一种非同质存储设备的虚拟化系统,包括虚拟存储设备、操作接口模块、控制层以及非同质的物理存储设备,控制层还包括控制查询模块、映射策略模块、存储设备物理特性管理模块、设备间数据同步迁移模块和I/O处理模块。本发明还公开了一种非同质存储设备的虚拟化方法。本发明在虚拟存储设备创建时,对各个组成虚拟存储设备的具体存储设备的物理特性进行了区分,并对这些属性进行了优先级的划定,实现了对非同质设备的物理特性的管理;做I/O映射处理时考虑每个具体存储设备的物理特性,使得虚拟存储设备的整体性能得到优化;本发明还能够有效提高计算机系统数据的一致性和可靠性。
文档编号G06F3/06GK1945521SQ20061011375
公开日2007年4月11日 申请日期2006年10月13日 优先权日2006年10月13日
发明者尹洋, 张建刚, 冯硕, 马一力, 许鲁 申请人:中国科学院计算技术研究所