一种存储空间接管和数据迁移的方法和系统
技术领域
本发明涉及数据迁移及管理,特别是一种虚拟存储网络中含有数据的存储空间接管和数据迁移的方法和系统。
背景技术
经济的快速增长、企业的持续发展使得企业的信息数据存储量迅速增大。面对着激烈的市场竞争,任何数据丢失和运营中断的情况都是企业所不能容忍的。存储区域网络(Storage Area Network,SAN)就是在存储行业力图解决数据的大规模增长和数据管理的成本这两个重要问题应运而生的。
同时,在传统的开放系统环境中,每一台主机系统拥有自己的存储资源,每个系统管理员需要针对每一种系统来控制存储资源的分配、使用和管理。此外,每一台服务器还拥有一个单独配置和管理的文件系统,并且每一台服务器都需要预留出足够的存储空间。由于各应用系统的数据增长速度与系统设计相差较大和存储冗余量的要求,造成存储系统的资源严重浪费,根据权威调查公司统计,传统存储用户的存储使用率只有20%~25%(基于存储实际存储量,非硬件存储量)。
传统的SAN通常由两部分组成:存储系统和一个逻辑上独立的网络。
SAN将通道技术和网络技术引入存储环境中,提供了一种新型的网络存储解决方案,能够同时满足吞吐率,可用性,可靠性,可扩展性和可管理性等方面的要求,实现了存储系统的高速共享,并使服务器和存储设备之间的连接方式发生了根本性变革。SAN能够实现更灵活、更完善的业务连续性与灾难恢复规划。通过避开直连环境的地理限制,SAN不仅能够远程复制一个存储子系统,还能够复制整个数据中心。SAN的高可用性并不仅仅意味着系统永远处于运行状态,还意味着可以按需提供带宽。
但是传统的SAN具有一定的局限性,在SAN磁盘阵列中,数据复制操作局限于在存储内部进行或在同类磁盘之间进行,对于异构的存储没有很好的支持,为解决上述问题,出现了虚拟化的SAN环境。
虚拟化的SAN环境中,SAN存储虚拟化管理引擎作为整个SAN网络的控制器,将整个SAN中的各种存储设备整合成一个巨大的存储池,充分利用存储资源并按需分配存储空间、提高性能和实现数据保护等功能。
虚拟化存储技术是一种在逻辑上实现对存储资源便捷管理的有效手段。虚拟化存储技术实现了存储资源对用户的透明性,可以将不同地点、不同厂商的存储设备等异构存储资源进行有机整合,形成统一管理、监控和使用的公用存储池。利用虚拟化存储技术,可以以非常简单的方式随时方便地获取和使用,而不用关心存储的提供者和它们各自的特性。通过采用虚拟化技术,用户将可以彻底摆脱存储设备的复杂性,如存储设备的容量、异构性等,实现对存储资源的有效规划及管理。通过虚拟化存储技术的实现我们可以非常方便、统一的形式使用存储资源,就像我们日常生活中的电力一样,无须关心它的提供者及提供方式。
然而,发明人在实现本发明实施例的过程中发现,现有的虚拟SAN系统至少存在如下的问题:
由于虚拟化头的信息写入会破坏磁盘里原有的数据,因此传统SAN环境下的存储设备不能直接纳入虚拟SAN系统中,所以在由传统SAN系统向虚拟SAN系统升级的过程中,或者需要破坏传统SAN环境下的存储设备中的数据,这是无法容忍的,或者先备份数据,然后将传统SAN环境下的存储设备纳入虚拟SAN系统后,重新拷贝数据,但这样在数据备份过程中也可能出错,同时操作极为不便。
发明内容
本发明的目的是提供一种存储空间接管和数据迁移的方法和系统,实现不破坏传统SAN系统中的数据的情况下,将传统SAN系统中的存储设备快速纳入虚拟化的统一存储管理中。
为了实现上述目的,本发明实施例提供了一种存储空间接管和数据迁移的系统,其特征在于,包括IO子系统、虚拟SCSI端口驱动模块和一虚拟存储控制器,所述虚拟存储控制器包括第一存储设备管理模块、IO控制模块、第二存储设备管理模块,所述虚拟存储控制器还包括:
第二存储设备管理模块,用于为待迁移的第二物理存储设备集合中的每一个第二物理存储设备建立一一对应的第二虚拟存储设备,并记录第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系;
所述虚拟SCSI端口驱动模块用于将第二存储设备管理模块建立的第二虚拟存储设备对象通过IO子系统返回给客户端,供客户端访问;
所述IO控制子模块用于在从IO子系统接收到来自客户端,且数据块地址是第二虚拟存储设备的第二逻辑地址的第二数据访问指令后,根据第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系,将第二逻辑地址转换为第二物理存储设备的第二物理地址后进行数据访问操作。
上述的存储空间接管和数据迁移系统,其中,
所述第一存储设备管理模块用于根据第一物理存储设备集合中的多个第一物理存储设备创建并管理虚拟存储池,并记录虚拟存储池的逻辑地址与第一物理存储设备的物理地址之间的对应关系;
所述虚拟SCSI端口驱动模块还用于将所述虚拟存储池通过所述IO子系统返回给客户端,供客户端访问;
所述IO控制模块还用于在从IO子系统接收到来自客户端,且数据块地址是虚拟存储池的第一逻辑地址的第一数据访问指令后,根据虚拟存储池的逻辑地址与第一物理存储设备的物理地址之间的对应关系,将第一逻辑地址转换为第一物理存储设备的第一物理地址后进行数据访问操作。
上述的存储空间接管和数据迁移系统,其中,所述第二存储设备管理模块具体包括:
第一指令接收单元,用于接收迁移指令;
解析单元,用于解析所述迁移指令,获取所述第二物理存储设备集合的信息;
虚拟设备构建单元,用于根据第二物理存储设备集合的信息为所述第二物理存储设备集合中的每一个第二物理存储设备建立一一对应的第二虚拟存储设备;
记录单元,用于记录第二物理存储设备和第二虚拟存储设备之间的第一对应关系以及第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的第二对应关系。
上述的存储空间接管和数据迁移系统,其中,所述第二存储设备管理模块还包括:
获取单元,用于获取待迁移的第三物理存储设备的设备标识;
管理单元,用于在根据设备标识判断出所述第三物理存储设备属于自己管理,且所述第三物理存储设备对应的虚拟存储设备不存在时,为第三物理存储设备建立对应的第三虚拟存储设备,否则结束添加过程。
为了实现上述目的,本发明实施例还提供了一种存储空间的接管和数据迁移的方法,包括:
存储空间接管和数据迁移系统为待迁移的第二物理存储设备集合中的每一个第二物理存储设备建立一一对应的第二虚拟存储设备,并记录第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系;
存储空间接管和数据迁移系统将第二存储设备管理模块建立的第二虚拟存储设备对象通过IO子系统返回给客户端,供客户端访问;
存储空间接管和数据迁移系统在从IO子系统接收到来自客户端,且数据块地址是第二虚拟存储设备的第二逻辑地址的第二数据访问指令后,根据第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系,将第二逻辑地址转换为第二物理存储设备的第二物理地址后进行数据访问操作。
上述的方法,其中,还包括:
存储空间接管和数据迁移系统获取待迁移的第三物理存储设备的设备标识;
存储空间接管和数据迁移系统在根据设备标识判断出所述第三物理存储设备属于自己管理,且所述第三物理存储设备对应的虚拟存储设备不存在时,为第三物理存储设备建立对应的第三虚拟存储设备,否则结束添加过程。
本发明实施例具有以下的有益效果:
本发明实施例的存储空间的接管和数据迁移的方法和系统中,在企业从传统SAN环境升级为虚拟SAN环境时,对于传统SAN环境中第二物理存储设备集合,由数据迁移与管理的系统为每一个第二物理存储设备建立一一对应的第二虚拟存储设备,然后将第二存储设备管理模块建立的第二虚拟存储设备对象通过IO子系统返回给客户端,供客户端访问,在客户端访问第二虚拟存储设备对象时,直接根据对应关系即可对实际的物理存储设备进行访问,因此具有以下有益效果:
1、由于不需要将实际物理设备纳入到虚拟存储池的范畴,因此不需要虚拟化头的信息,因此不会对数据造成损坏;
2、实现简单,只需要将由数据迁移与管理的系统为每一个第二物理存储设备建立一一对应的第二虚拟存储设备,在客户端访问第二虚拟存储设备对象时,直接根据对应关系即可对实际的物理存储设备进行访问即可。
3、资源的节省,对于传统存储区域网络服务器下的物理存储设备通过上述过程即可纳入数据迁移与管理的系统的管理,节省了企业硬件设备的购买成本。
附图说明
图1为本发明实施例的存储空间接管和数据迁移系统的结构示意图;
图2为本发明实施例的存储空间接管和数据迁移的方法的流程示意图;
图3为本发明实施例的存储空间接管和数据迁移系统的第二存储设备管理模块的结构示意图;
图4为本发明实施例中添加新的物理存储设备的流程示意图;
图5为本发明实施例中数据读写操作处理的流程示意图。
具体实施方式
本发明实施例的存储空间接管和数据迁移的方法和系统中,为待迁移到虚拟SAN系统下的硬件存储设备集合中的每一硬件设备建立对应的虚拟硬件设备,并向操作系统注册虚拟存储介质的设备对象。
本发明实施例的存储空间接管和数据迁移的系统如图1所示,包括IO子系统、虚拟SCSI端口驱动模块和一虚拟存储控制器,该虚拟存储控制器包括如下3个部分:第一存储设备管理模块、IO控制模块、第二存储设备管理模块,其中:
IO子系统、虚拟SCSI端口驱动模块、第一存储设备管理模块和IO控制模块构成常规的虚拟存储区域网络服务器,简单说明如下:
第一存储设备管理模块,用于根据第一物理存储设备集合中的多个第一物理存储设备(可以为异构存储设备)创建并管理一虚拟存储池,并记录虚拟存储池的逻辑地址与第一物理存储设备的物理地址之间的对应关系;
虚拟SCSI端口驱动模块,是向操作系统提供标准SCSI端口的设备驱动模块。虚拟SCSI端口驱动模块启动时,向操作系统注册为SCSI端口设备,用于在接收到操作系统下达的存储设备扫描指令时,向虚拟存储控制器中的第一存储设备管理模块发出询问请求,将得到的第一虚拟存储介质设备对象(虚拟存储池)通过IO子系统返回给客户端,供客户端访问。
IO控制模块,用于从IO子系统接收到来自客户端,且数据块地址是虚拟存储池的第一逻辑地址的第一数据访问指令后,根据虚拟存储池的逻辑地址与第一物理存储设备的物理地址之间的对应关系,将第一逻辑地址转换为第一物理存储设备的第一物理地址后进行数据访问操作,并在完成数据访问后返回指令完成信息。
IO子系统、虚拟SCSI端口驱动模块、第一存储设备管理模块和IO控制模块利用上述描述的功能构成虚拟存储区域网络系统,也就是虚拟SAN环境。
由于上述的常规的虚拟存储区域网络系统属于现有技术的范畴,在此不作进一步详细的描述。
而IO子系统、虚拟SCSI端口驱动模块、第二存储设备管理模块和IO控制模块之间相互配合,则可把物理存储设备从传统SAN环境纳入到虚拟SAN环境中,说明如下,其中:
第二存储设备管理模块,用于为待迁移的第二物理存储设备集合中的每一个第二物理存储设备建立一一对应的第二虚拟存储设备,并记录第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系;
所述第二物理存储设备集合原本属于传统SAN环境下的第二存储区域网络系统。
虚拟SCSI端口驱动模块还用于在接收到操作系统下达的存储设备扫描指令时,向虚拟存储控制器中的第二存储设备管理模块发出询问请求,并将第二存储设备管理模块建立的第二虚拟存储设备对象通过IO子系统返回给客户端,供客户端访问。
IO控制子模块还用于在从IO子系统接收到来自客户端,且数据块地址是第二虚拟存储设备的第二逻辑地址的第二数据访问指令后,根据第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系,将第二逻辑地址转换为第二物理存储设备的第二物理地址后进行数据访问操作,并在完成数据访问后返回指令完成信息。
上述的第一物理存储设备集合和第二物理存储设备集合中的存储设备在虚拟存储控制器模块的管理和分配下,分别以虚拟存储池和虚拟存储卷的形式,提供给用户读写数据。第一物理存储设备集合和第二物理存储设备集合中的存储设备可以是本地磁盘、网络共享磁盘或存储局域网环境下的网络连接磁盘。
本发明实施例的存储空间接管和数据迁移的方法如图2所示,包括:
步骤21,存储空间接管和数据迁移系统获取待迁移到数据迁移与管理的系统中的第二物理存储设备集合的信息,并为所述第二物理存储设备集合中的每一个第二物理存储设备建立一一对应的第二虚拟存储设备,并记录第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系;所述第二物理存储设备集合原本属于第二存储区域网络系统;
步骤22,存储空间接管和数据迁移系统在接收到操作系统下达的存储设备扫描指令时,将所述第二虚拟存储设备对象返回给操作系统,供客户端访问;
步骤23,存储空间接管和数据迁移系统接收到数据块地址是第二虚拟存储设备的第二逻辑地址的第二数据访问指令后,根据第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系,将第二逻辑地址转换为第二物理存储设备的第二物理地址后进行数据访问操作,并在完成数据访问后返回指令完成信息。
其中该访问指令包括:指令类型(读/写)、虚拟存储设备的逻辑地址和长度(block)。
下面对各个模块和步骤进行进一步详细的说明。
如图3所示,所述第二存储设备管理模块具体包括:
第一指令接收单元,用于接收迁移指令;
解析单元,用于解析所述迁移指令,获取待迁移到数据迁移与管理的系统中的第二物理存储设备集合的信息,如存储设备的数量,每一个存储设备的设备标识、容量、序列号等;
虚拟设备构建单元,用于根据第二物理存储设备集合的信息为所述第二物理存储设备集合中的每一个第二物理存储设备建立一一对应的第二虚拟存储设备;
记录单元,用于记录第二物理存储设备和第二虚拟存储设备之间的第一对应关系以及第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的第二对应关系。
在步骤21中,当用户需要将传统SAN环境下的存储设备迁移到虚拟SAN环境下时,发送一迁移指令,指定待迁移的存储设备集合(由同类存储设备构成),数据迁移与管理的系统在得到该指令后,根据指令即可得到第二物理存储设备集合的一些信息,并根据这些信息为所述第二物理存储设备集合中的每一个第二物理存储设备建立一一对应的第二虚拟存储设备后,记录存储设备之间的对应关系以及地址之间对应关系,供后续使用。
在本发明的具体实施例中,在存储空间接管和数据迁移系统发现新的待迁移到数据迁移与管理的系统中的第三物理存储设备时,有可能该第三物理存储设备是原来的第二物理存储设备中的一个(如掉电、网络中断等原因造成第二物理存储设备无法服务),为了避免建立重复的虚拟存储设备,在本发明的具体实施例中通过如下步骤进行处理,
存储空间接管和数据迁移系统中的获取单元获取待迁移的第三物理存储设备的设备标识,并由管理单元在根据设备标识判断出所述第三物理存储设备属于自己管理,且所述第三物理存储设备对应的虚拟存储设备不存在时,为第三物理存储设备建立对应的第三虚拟存储设备,否则结束添加过程,其详细处理过程如图4所示,包括:
步骤401,第二存储设备管理模块在接收到虚拟SCSI端口驱动模块发出的询问请求,进入步骤402;
虚拟SCSI端口驱动模块启动后,向操作系统注册为SCSI端口设备。在操作系统发出扫描SCSI端口指令时,虚拟SCSI端口驱动模块接收到所述指令,进一步向虚拟存储控制器中的第二存储设备管理模块发出询问请求。
步骤402,第二存储设备管理模块与服务器端操作系统交互,获取待迁移到数据迁移与管理的系统中的第三物理存储设备的设备标识,进入步骤403;
步骤403,第二存储设备管理模块根据设备标识判断所述第三物理存储设备是否属于自己管理,如果是,进入步骤404,否则进入步骤407;
步骤404,第二存储设备管理模块判断所述第三物理存储设备对应的虚拟存储设备是否已经存在,如果是,进入步骤406,否则进入步骤405;
步骤405,第二存储设备管理模块为第三物理存储设备建立对应的第三虚拟存储设备,进入步骤406;
步骤406,结束添加过程。
通过上述的处理过程,不会为同一物理存储设备建立多个虚拟存储设备,避免了服务出错。
如图5所示,为本发明实施例中,数据访问操作的具体流程图,包括:
步骤501,IO控制子模块通过IO子系统接收来自客户端,且数据块地址是第二虚拟存储设备的第二逻辑地址的第二数据访问指令;
步骤502,IO控制子模块根据第二虚拟存储设备的逻辑地址与第二物理存储设备的物理地址之间的对应关系,将第二逻辑地址转换为第二物理地址;
步骤503,IO控制子模块对所述第二物理地址指示的存储单元执行访问操作;
步骤504,访问操作完成后,通过IO子系统向客户端返回访问操作结果。
本发明实施例的存储空间接管和数据迁移系统和方法中,在企业从传统SAN环境升级为虚拟SAN环境时,对于传统SAN环境中第二物理存储设备集合,由数据迁移与管理的系统为每一个第二物理存储设备建立一一对应的第二虚拟存储设备,然后将第二存储设备管理模块建立的第二虚拟存储设备对象通过IO子系统返回给客户端,供客户端访问,在客户端访问第二虚拟存储设备对象时,直接根据对应关系即可对实际的物理存储设备进行访问,因此具有以下有益效果:
1、由于不需要将实际物理设备纳入到虚拟存储池的范畴,因此不需要虚拟化头的信息,因此不会对数据造成损坏;
2、实现简单,只需要将由数据迁移与管理的系统为每一个第二物理存储设备建立一一对应的第二虚拟存储设备,在客户端访问第二虚拟存储设备对象时,直接根据对应关系即可对实际的物理存储设备进行访问即可。
3、资源的节省,对于传统存储区域网络服务器下的物理存储设备通过上述过程即可纳入数据迁移与管理的系统的管理,节省了企业硬件设备的购买成本。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。