首页 / 专利库 / 软件 / 操作系统 / 内核 / 一种存储区域网络虚拟化管理方法

一种存储区域网络虚拟化管理方法

阅读:698发布:2024-02-29

专利汇可以提供一种存储区域网络虚拟化管理方法专利检索,专利查询,专利分析的服务。并且本 发明 公开一种存储区域网络虚拟化管理方法,其特征在于,该系统包括有,各种类型的前端主机、元数据 服务器 、存储设备、光纤交换机,所述各种类型的前端主机,即 应用服务器 ,它的虚拟化代理模 块 实现虚拟的逻辑卷到实际的物理盘的转换以及从下述元数据服务器读取相应虚拟卷的元数据。本发明适用于多种平台的存储区域网络存储网络系统的存储资源虚拟化的方法,实现物理上分散存储资源逻辑上的共享以及统一管理,向前端主机提供虚拟卷,本发明的重点在于元数据服务器的设计以及虚拟化元数据的表示方法和元数据服务器和虚拟化代理之间的通信模式。,下面是一种存储区域网络虚拟化管理方法专利的具体信息内容。

1.一种存储区域网络虚拟化管理方法,其特征在于,该系统包括有,各种类型的前端主机、元数据服务器、存储设备、光纤交换机,所述各种类型的前端主机,即应用服务器,它的虚拟化代理模实现虚拟的逻辑卷到实际的物理盘的转换以及从下述元数据服务器读取相应虚拟卷的元数据,所述元数据服务器,它有一台或多台,它按照TCP/IP协议经以太网与上述各前端主机相连, 它把存储区域网络中不同公司、不同介质的存储资源统一构建成物理卷即虚拟卷、存储池和逻辑卷,并为上述各前端主机提供虚拟卷,实现存储资源的管理和配置,所述存储设备,它的头部保存着元数据,每个存储设备有一个唯一的通用标识,用全局唯一 标识表示,所述光纤交换机,它通过光纤总线适配器即人,与上述各前端主机和元数据服务器相连, 同时也通过光纤接口与上述存储设备相连。
2.根据权利要求1所述的一种存储区域网络虚拟化管理方法,所述存储区域网络虚拟化管理方法依次含有以下步骤:
步骤1:构造软件模块
虚拟化代理即agent模块,它是各前端主机上文件系统/数据库层和底层驱动之间的一个层,也算内核模块,负责逻辑地址到物理地址的映射,它通过配置的通信接口和上述元数据服务器的通信接口以控制流的形式通信,从上述元数据服务器获取虚拟卷的配置信息并把虚拟卷呈现给上层文件系统/数据库;当文件系统/数据库发出对虚拟卷的I/O操作时,它截取该 I/O操作,把逻辑地址映射成物理地址,形成数据流后,再把I/O操作发送到底层驱动器
元数据服务器的软件,它运行在Linux系统上,由一组用户空间程序组成,它包括以下模块:
管理接口,它给管理员提供执行管理命令的界面,其中含有创建存储池、虚拟卷,授予一个前端主机对虚拟卷的使用权限的命令,另外它也给管理员提供所需的虚拟卷和存储池的配置信息,它是通过下述元数据管理模块提供的API实现的;
主机接口,它负责和上述各前端主机上的通信接口按照TCP/IP协议来通信,当前端主机启动要求载入元数据服务器内虚拟卷的元数据,或者当虚拟存储的配置发生改变时,元数据服务器通过通信接口把元数据的信息通知虚拟代理模块,该模块也通过主机接口向下述监控模块报告自身状态和对虚拟卷的使用情况;
元数据管理模块,它执行对元数据的操作任务,它把多个物理卷组织成存储池,管理物理卷上的剩余空间,根据虚拟卷的映射方式生成虚拟卷的元数据,再把元数据的信息记录在物理卷上,它还有一组供其他模块调用的API,所述的元数据使用段组织,它含有:逻辑起始扇区、扇区数目、目标段类型和目标段描述符,所述的目标段对应逻辑卷上的一段连续扇区;所述目标段类型分为线性和条带两种,一个完整的虚拟卷元数据由虚拟卷头、段头和若干段组成,
监控模块,它实时监控所述管理系统的各个组成部分的状态信息并通知元数据管理模,同时还监控各类故障并采取适当的恢复措施;
步骤2:初始化虚拟化代理模块
上述元数据管理服务器把虚拟化代理所需的所有存储设备的全局唯一标识通过创建物理卷命令的方式发送给虚拟化代理模块,该代理模块再扫描存储区域网络中的所有存储设备,通过读取设备指定位置的全局唯一标识信息来定位它所需的存储设备,并建立全局唯一标识和内核中表示设备的设备号的对应关系,保存在一个表中以备后查,完成存储设备注册,主机启动后,该代理模块给元数据服务器发回主机唯一的主机标识和验证码,并写入本地文件中;
步骤3:元数据服务器根据管理员的命令把所需的虚拟卷即逻辑卷分配给主机使用;
步骤3.1:元数据服务器根据管理员的命令把主机所需的物理卷的全局唯一标识信息发送给虚拟化代理模块;
步骤3.2:虚拟化代理模块根据步骤3.1提供的全局唯一标识请求扫描磁盘,找到对应的物理卷,在内核中建立相应的物理卷的列表,并向元数据服务器发送应答;
步骤3.3:元数据服务器把分配给主机的逻辑卷的元数据信息发送给虚拟化代理模块,该代理模块根据所述元数据信息在内核中构造出虚拟设备,并给元数据服务器发出应答;
步骤3.4:主机使用步骤3.3提供的相应的虚拟设备,并使用从元数据服务器得到的元数 据对发往逻辑卷的I/O命令重新定向;
步骤4:在多台前端主机使用虚拟设备时,若配置的操作需要在线改变该虚拟卷即逻辑卷的元数据时,按以下步骤执行:
步骤4.1:元数据服务器根据元数据来确定使用这个虚拟卷的前端主机,向这些前端主机的虚拟化代理模块发送加该虚拟卷的请求;
步骤4.2:相应的虚拟化代理模块收到步骤4.1所述的加锁请求后,把所有I/O命令队列 中已经被重新定向但还未完成的I/O命令发往底层存储设备执行,所有后续的对该虚拟卷的 I/O命令被推迟执行,并且不再重新定向;并向元数据服务器发送应答;
步骤4.3:元数据服务器在收到所有的加锁虚拟卷的成功响应后,它的元数据管理模块按需生成新的元数据,再向拥有该虚拟卷使用权限的前端主机发送重置虚拟卷的请求;
步骤4.4:虚拟化代理模块收到步骤4.3所述的请求后,把虚拟卷的旧的元数据替换为新的元数据;
步骤4.5:元数据服务器在收到所有的重置虚拟卷的成功响应后,向虚拟化代理模块发送解锁请求;
步骤4.6:虚拟化代理模块把所有被推迟的I/O命令用新的元数据重新定向并执行。

说明书全文

一种存储区域网络虚拟化管理方法

技术领域

[0001] 本发明涉及一种存储区域网络虚拟化管理方法。

背景技术

[0002] 存储虚拟化是指将具体的存储设备同服务器操作系统分隔开来,为存储用户提供统一的存储池和逻辑卷的一种技术。存储区域网络中的存储虚拟化管理是充分发挥存储区域网络潜能的一项关键技术。传统的基于主机的虚拟化管理方法采用对称式结构,机群中的任何一个 节点都可以进行虚拟化管理的操作,靠节点间的通信维护元数据的一致性,这增加了主机的负担并限制了系统的可扩展性。另外,由于采用了对称式结构,该方法不支持前端主机具有不同操作系统异构存储区域网络环境。
[0003] 本发明提出了一种新的存储虚拟化管理方法,有效的解决了上述问题。

发明内容

[0004] 为解决上述现有的缺点,本发明的主要目的在于提供一种实用的存储区域网络虚拟化管理方法,适用于多种平台的存储区域网络存储网络系统的存储资源虚拟化的方法,实现物理上分散存储资源逻辑上的共享以及统一管理,向前端主机提供虚拟卷,本发明的重点在于元数据服务器的设计以及虚拟化元数据的表示方法和元数据服务器和虚拟化代理之间的通信模式。
[0005] 为达成以上所述的目的,本发明的一种存储区域网络虚拟化管理方法采取如下技术方案:一种存储区域网络虚拟化管理方法,其特征在于,该系统包括有,各种类型的前端主机、元数据服务器、存储设备、光纤交换机,所述各种类型的前端主机,即应用服务器,它的虚拟化代理模实现虚拟的逻辑卷到实际的物理盘的转换以及从下述元数据服务器读取相应虚拟卷的元数据,所述元数据服务器,它有一台或多台,它按照TCP/IP协议经以太网与上述各前端主机相连, 它把存储区域网络中不同公司、不同介质的存储资源统一构建成物理卷即虚拟卷、存储池和逻辑卷,并为上述各前端主机提供虚拟卷,实现存储资源的管理和配置,所述存储设备,它的头部保存着元数据,每个存储设备有一个唯一的通用标识,用全局唯一 标识表示,所述光纤交换机,它通过光纤总线适配器即人,与上述各前端主机和元数据服务器相连, 同时也通过光纤接口与上述存储设备相连。
[0006] 所述存储区域网络虚拟化管理方法依次含有以下步骤:步骤1:构造软件模块
虚拟化代理即agent模块,它是各前端主机上文件系统/数据库层和底层驱动之间的一个层,也算内核模块,负责逻辑地址到物理地址的映射,它通过配置的通信接口和上述元数据服务器的通信接口以控制流的形式通信,从上述元数据服务器获取虚拟卷的配置信息并把虚拟卷呈现给上层文件系统/数据库;当文件系统/数据库发出对虚拟卷的I/O操作时,它截取该 I/O操作,把逻辑地址映射成物理地址,形成数据流后,再把I/O操作发送到底层驱动器
元数据服务器的软件,它运行在Linux系统上,由一组用户空间程序组成,它包括以下模块:
管理接口,它给管理员提供执行管理命令的界面,其中含有创建存储池、虚拟卷,授予一个前端主机对虚拟卷的使用权限的命令,另外它也给管理员提供所需的虚拟卷和存储池的配置信息,它是通过下述元数据管理模块提供的API实现的;
主机接口,它负责和上述各前端主机上的通信接口按照TCP/IP协议来通信,当前端主机启动要求载入元数据服务器内虚拟卷的元数据,或者当虚拟存储的配置发生改变时,元数据服务器通过通信接口把元数据的信息通知虚拟代理模块,该模块也通过主机接口向下述监控模块报告自身状态和对虚拟卷的使用情况;
元数据管理模块,它执行对元数据的操作任务,它把多个物理卷组织成存储池,管理物理卷上的剩余空间,根据虚拟卷的映射方式生成虚拟卷的元数据,再把元数据的信息记录在物理卷上,它还有一组供其他模块调用的API,所述的元数据使用段组织,它含有:逻辑起始扇区、扇区数目、目标段类型和目标段描述符,所述的目标段对应逻辑卷上的一段连续扇区;所述目标段类型分为线性和条带两种,一个完整的虚拟卷元数据由虚拟卷头、段头和若干段组成,
监控模块,它实时监控所述管理系统的各个组成部分的状态信息并通知元数据管理模,同时还监控各类故障并采取适当的恢复措施;
步骤2:初始化虚拟化代理模块
上述元数据管理服务器把虚拟化代理所需的所有存储设备的全局唯一标识通过创建物理卷命令的方式发送给虚拟化代理模块,该代理模块再扫描存储区域网络中的所有存储设备,通过读取设备指定位置的全局唯一标识信息来定位它所需的存储设备,并建立全局唯一标识和内核中表示设备的设备号的对应关系,保存在一个表中以备后查,完成存储设备注册,主机启动后,该代理模块给元数据服务器发回主机唯一的主机标识和验证码,并写入本地文件中;
步骤3:元数据服务器根据管理员的命令把所需的虚拟卷即逻辑卷分配给主机使用;
步骤3.1:元数据服务器根据管理员的命令把主机所需的物理卷的全局唯一标识信息发送给虚拟化代理模块;
步骤3.2:虚拟化代理模块根据步骤3.1提供的全局唯一标识请求扫描磁盘,找到对应的物理卷,在内核中建立相应的物理卷的列表,并向元数据服务器发送应答;
步骤3.3:元数据服务器把分配给主机的逻辑卷的元数据信息发送给虚拟化代理模块,该代理模块根据所述元数据信息在内核中构造出虚拟设备,并给元数据服务器发出应答;
步骤3.4:主机使用步骤3.3提供的相应的虚拟设备,并使用从元数据服务器得到的元数 据对发往逻辑卷的I/O命令重新定向;
步骤4:在多台前端主机使用虚拟设备时,若配置的操作需要在线改变该虚拟卷即逻辑卷的元数据时,按以下步骤执行:
步骤4.1:元数据服务器根据元数据来确定使用这个虚拟卷的前端主机,向这些前端主机的虚拟化代理模块发送加该虚拟卷的请求;
步骤4.2:相应的虚拟化代理模块收到步骤4.1所述的加锁请求后,把所有I/O命令队列 中已经被重新定向但还未完成的I/O命令发往底层存储设备执行,所有后续的对该虚拟卷的 I/O命令被推迟执行,并且不再重新定向;并向元数据服务器发送应答;
步骤4.3:元数据服务器在收到所有的加锁虚拟卷的成功响应后,它的元数据管理模块按需生成新的元数据,再向拥有该虚拟卷使用权限的前端主机发送重置虚拟卷的请求;
步骤4.4:虚拟化代理模块收到步骤4.3所述的请求后,把虚拟卷的旧的元数据替换为新的元数据;
步骤4.5:元数据服务器在收到所有的重置虚拟卷的成功响应后,向虚拟化代理模块发送解锁请求;
步骤4.6:虚拟化代理模块把所有被推迟的I/O命令用新的元数据重新定向并执行。
[0007] 采用如上技术方案的本发明,具有如下有益效果:本发明适用于多种平台的存储区域网络存储网络系统的存储资源虚拟化的方法,实现物理上分散存储资源逻辑上的共享以及统一管理,向前端主机提供虚拟卷,本发明的重点在于元数据服务器的设计以及虚拟化元数据的表示方法和元数据服务器和虚拟化代理之间的通信模式。
附图说明
[0008] 图1.存储虚拟化管理系统的硬件结构图。
[0009] 图2.存储虚拟化管理系统的软件结构图。
[0010] 图3.元数据服务器的软件结构。
[0011] 图4.虚拟卷元数据结构。
[0012] 图5.在线改变元数据的过程示意图。
[0013] 图6.Linux平台下虚拟化代理的实现层次以及模块关系图。
[0014] 图7.平台下虚拟化代理的实现层次以及模块关系图。
[0015] 图8.对物理盘和逻辑卷访问的吞吐率比较。
[0016] 图9.对物理盘和逻辑卷访问的响应时间比较。
[0017] 图10.本发明的程序流程框图

具体实施方式

[0018] 为了进一步说明本发明,下面结合附图进一步进行说明:如图1所示,本发明的一种存储区域网络虚拟化管理方法主要由元数据服务器和各前端主机即应用服务器上的虚拟化代理软件组成。元数据服务器主要负责将存储区域网络中不同公司、不同介质的存储资源统一构建成存储池,并为各应用服务器按需提供虚拟卷。并且负责存储资源的管理和配置,提供容量扩展,数据迁移等髙级功能。各应用服务器上的虚拟化代理主要实现虚拟的逻辑盘到实际物理盘的地址转换,以及从元数据服务器读取相应虚拟卷的元数据。为了消除一台元数据服务器带来的单点故障,可以由两台或多台元数据服务器形成集群。存储虚拟化管理系统的硬件结构如图1所示。
[0019] 前端主机和元数据服务器都通过光纤总线适配器连接到光纤网络存储区域网络上,存储设备也通过光纤接口连接到存储区域网络上。元数据服务器和前端主机之间通过以太网连接。元数据服务器上的元数据管理模块完成对元数据的操作,虚拟化代理上的地址映射模块完成逻辑地址到物理地址的映射。前端主机和元数据服务器上的通信模块通过TCP/IP进行通信。存储虚拟化管理系统的软件结构如图2所示。
[0020] 元数据的处理由元数据服务器专负责,它“看到”真实的物理存储,并在其上建立物理卷、存储池和逻辑卷。元数据保存在存储设备的头部,元数据服务器启动时通过扫描存储设备得到元数据并把它们保存在内存中,同时在元数据发生改变时负责维护它们的一致性。 前端主机上的虚拟化代理是文件系统7数据库层和底层驱动之间的一个层,它负责逻辑地址到物理地址的映射。虚拟化代理通过配置接口和元数据服务器通信,从元数据服务器获取虚拟卷的配置信息并把虚拟卷呈现给上层的文件系统或数据库。当文件系统或数据库发出对虚拟 卷的I/O操作时,虚拟化代理截获该I/O操作,把逻辑地址翻译成物理地址,然后把I/O操作发送到底层驱动。
[0021] 所有对存储资源的管理,以及虚拟卷的配置和分配都在元数据服务器上进行操作。各应用服务器不涉及任何元数据的操作,保存在存储设备上的元数据对它们来说是不可见的,它们只能从元数据服务器得到和自己相关的虚拟卷的元数据,实现了单点管理,提高了安全性。在本系统中,数据流和控制流(元数据流)是分离的。这样一来,在数据通路上基本无数据读写延迟,最大限度的利用了光纤网络的带宽,性能较好。另外,虚拟化代理在HBA驱动的 上层实现,具有和底层硬件无关的特点,可以支持不同厂商的HBA卡。
[0022] 元数据服务器负责管理整个虚拟存储系统,包括连接到存储区域网络上的存储设备和前端主机。元数据服务器的软件运行在Linux系统上,由一组用户空间程序组成,包括4个模块:管理接口,通信接口,元数据管理模块和监控模块,模块间的关系如图3所示。
[0023] 管理接口给管理员提供执行管理命令的界面,这些命令包括创建存储池、虚拟卷,授予一个前端主机对虚拟卷的使用权限等,另外,它也提供给用户管理所需的虚拟卷和存储池的配置信息。它通过调用元数据管理模块提供的API完成这些功能。
[0024] 主机接口负责和前端主机上的虚拟化代理通过TCP/IP进行通信。当前端主机启动需要载入它的虚拟卷的元数据或虚拟存储的配置发生改变(例如虚拟卷的在线扩容或有新的物理卷加入存储池)时,元数据服务器通过通信接口把元数据的信息通知虚拟化代理。虚拟化代理也通过主机接口向监控模块报告自身状态和对虚拟卷的使用情况。
[0025] 元数据管理模块完成真正的对元数据操作的任务,是元数据服务器的核心模块。它把多个物理卷组织成存储池,管理物理卷上的剩余空间,根据逻辑卷的映射方式生成逻辑卷的元数据。它还负责把元数据的信息记录在物理卷上以及一致性的维护。它提供一组API供其他模块调用。
[0026] 监控模块完成系统状态监控功能,它实时的获取系统的各个组成部分的状态信息,这些组成部分包括存储设备、光纤交换机、光纤链路等等。当系统的配置发生改变,例如有新的存储设备加入到系统中或有存储设备移出时,监控模块能够发现该事件并通知元数据管理模块改变存储池的配置。另外,当系统的某部分发生故障时,如光纤链路出错、磁盘介质出错等,监控模块发现这些故障并釆取适当的恢复措施。
[0027] 理论上,元数据服务器可寻址存储区域网络网络中的所有存储设备。但是,如果存储设备需要加入由元数据服务器维护的存储池,进而提供给各服务器使用,则需要注册该设备,并进行相应的初始化处理。元数据服务器通过创建物理卷命令完成存储设备的注册。该命令在存储设备的某个固定位置写入作为存储设备唯一标识的全局唯一标识符,即全局唯一标识符,并把存储设备头部一定大小的空间预留为存放元数据使用。
[0028] 虚拟存储管理釆用全局唯一标识符作为存储设备在元数据服务器和虚拟化代理之间的统一标识。全局唯一标识符是一个32字节的随机字符串序列,在元数据服务器和虚拟化代理间传送的信息中,物理设备是以全局唯一标识符表示的。在一个存储设备被创建为物理卷的过程中,全局唯一标识符由元数据服务器生成并写在物理设备的指定位置。在虚拟化代理的初始化过程中,元数据服务器把该虚拟化代理所需的所有存储设备的全局唯一标识符发送给虚拟化代理。虚拟化代理扫描存储区域网络中的所有存储设备,通过读取设备指定位置的全局唯一标识符信息来定位它所需的存储设备,并建立全局唯一标识符和内核中表示设备的设备号的对应关系,保存在一个表中,以备以后查找。这种方法的优点在于,通过把标识符写在设备上,保证了设备的定位与设备的连接方式和连接位置无关,当存储设备的连接位置发生改变时(从一个端口移到另一个端口),虚拟化代理仍能正确的定位该设备,提高了存储系统的灵活性。
[0029] 各应用服务器的虚拟化代理加载时,不可直接从硬盘上读取元数据,需向元数据服务器发包获取属于自己的元数据信息。元数据服务器将该虚拟化代理的元数据表返回该虚拟化代理,虚拟化代理据此来填充其内核结构。一般来说,元数据服务器映射给虚拟化代理的元数据是以虚拟卷为单位。
[0030] 元数据服务器传给虚拟化代理的每个虚拟卷的元数据是使用段来组织。一个段将虚拟卷的一段连续扇区对应到一个目标段,一个目标段是一个(线性)或多个(条分)存储设备上的一段连续的扇区。每个段的组织如下:(逻辑起始扇区,扇区数目,目标段类型,目标段描述符)
目标段类型有两种:线性(linear)和条分(striped)。每个后面都带有各自的目标段描述符,其组织格式如下:
线性:
(目标设备标识,起始扇区)
比如:linear /dev/ada 0
条分:
(条分数,条带大小,目标设备1,起始扇区1,目标设备2,起始扇区2,……)比如:striped 2 32 /dev/ada 0/dev/sdb 0将按照如下原则映射第一个16K大小的逻辑块(chunk):
LV chunk 1-> sda,chunk 1
LV chunk 2-> sda,chunk 1
LV chunk 3-> sda,chunk 2
LV chunk 4-> sda,chunk 2
综合起来,一个可能的虚拟卷的元数据表如下:
0 1028160 linear/dev/sda 0
1028160 3903762 1106 inear/dev/ada 0
上述的虚拟卷元数据表是将sda和sdb线性的连接起来。或者 0 2056320 striped 2
32/dev/sda 0 /dev/sdb 0
2056320 2875602 linear/dev/sdb 1028160
上述的虚拟卷元数据表是将逻辑块0-2056320条分映射到磁盘sda和磁盘sdb上,条带大小为16K。而逻辑块2056320-2875602则是线性映射到磁盘sdb从1028160扇区开始的819282个扇区。
[0031] 元数据服务器发送给虚拟化代理的一个虚拟卷的元数据的完整结构见图4。
[0032] 其中,虚拟卷头包含虚拟卷的有关信息,如卷大小,读写权限等;段头指明了其后所接的段的数目;每个段的格式如前所述。
[0033] 这种分段表示方法和映射表表示方法(把虚拟卷分为若干固定大小的块,每个块对应一个存储设备上相同大小的块〕相比,大大减少了表示一个虚拟卷所需的元数据的长度,缩短了元数据在元数据服务器上存储以及在网络上传输的时间。
[0034] 元数据服务器和虚拟化代理通过各自的通信接口通过以太网进行通信。通信以会话为基本单位,一个完整会话由两个部分组成:1.请求:由通信模型的一端向另外一端发送一个请求包,包头+数据(如果有)。
[0035] 2.应答:在另外一端受到请求的时候,就执行这个请求,并返回一个包头+数据(如果有)的执行结果。
[0036] 如果在规定的时间内没有应答的化,就认为通信失败,不再等待,认为这个通信过程失败。
[0037] 所有的通信的请求都是如RQST_XXXX表示,所有的通信的应答都是如RESP_XXXX表示。主要的请求类型包括:RQST _LOGIN 主机登陆到元数据服务器
RQST _LOGOUT 主机从元数据服务器退出
RQST _SETPV 设置主机所需的物理卷
RQST _SETLV 设置主机的虚拟卷的元数据
RQST _RESETLV 重新设置虚拟卷的元数据
RQST _LOCKLV 锁定虚拟卷
RQST _UNLOCKLV 解锁虚拟卷
一台主机要加入虚拟化存储系统中,需要向元数据服务器注册。主机启动后,虚拟化代 理自动发送注册包给元数据服务器返回给主机一个唯一的主机标识,即Host ID,和一个验证码,即host key虚拟化代理可将该标识存入本地文件。以后的所有该主机和元数据服务器交互,都以主机标识来区分主机。
[0038] 主机完成注册后,元数据服务器就可以根据管理员的命令把逻辑卷分配给主机使用。元数据服务器首先向虚拟化代理发送AETPV请求包,把主机所用到的物理卷的全局唯一标识符信息发送给虚拟化代理。虚拟化代理根据此请求扫描磁盘,找到对应的物理卷,在内核中建立所有物理卷的列表,并向元数据服务器发送响应包。然后元数据服务器向虚拟化代理发送SETLV请求包,把分配给主机的虚拟卷的元数据信息发送给虚拟化代理。虚拟化代理根据元数据信息在内核中构造出相应的虚拟设备,并给元数据服务器发送SETLV响应包。之后,主机就可以对该虚拟设备进行使用了。在使用过程中,虚拟化代理利用从元数据服务器 得到的元数据对发往虚拟卷的I/O命令重定向,除非虚拟卷的元数据发生改变,否则虚拟化代理不需要与元数据服务器通信。
[0039] 在存储区域网络的多前端主机共享存储环境中,一个虚拟卷可能分配给多个前端主机使用。为了满足不间断服务的需求,当配置操作需要改变该虚拟卷的元数据(即虚拟卷和物理卷的映射关系,如虚拟卷扩容)时,不能中断前端主机提供的服务。因此该过程中必须对前端主机对虚拟卷的访问进行控制,以确保数据的一致性。虚拟化管理系统釆用一种锁机制保证虚拟卷的元数据发生改变时数据的一致性。元数据服务器可以向前端主机的虚拟化代理发出对虚拟卷的加锁和解锁请求。虚拟化代理收到对一个虚拟卷的加锁请求后,把所有I/O命令队列中已经被重定向但还没有完成的I/O命令被发往底层存储设备执行,所有后续的对虚拟卷的I/O命令被推迟执行,并且不被重定向。虚拟化代理收到对一个虚拟卷的解锁请求后,把所有被推迟的的I/O命令用新的元数据重定向,并重新放入I/O命令队列中等待执行。
[0040] 在线改变虚拟卷元数据的过程如图5所示。首先元数据服务器会根据元数据确定这个虚拟卷已经分配给哪些前端主机使用,然后向这些前端主机的虚拟化代理发送加锁该虚拟卷的请求,虚拟化代理收到该请求后执行加锁操作并向元数据服务器发回响应。元数据服务器在 收到所有的加锁虚拟卷的成功响应之后,它的元数据管理模块按照需要生成新的元数据,再向拥有该虚拟卷使用权限的前端主机发送重置虚拟卷的请求,虚拟化代理收到请求后把虚拟卷旧的元数据替换为新的元数据。最后,元数据服务器在收到所有的重置虚拟卷的成功响应之后,向虚拟化代理发送解锁虚拟卷请求,虚拟化代理把所有被推迟的的I/O命令用新的元数据重定向并执行。
[0041] 由于只有当所有虚拟化代理的相应虚拟卷的旧元数据都替换为新元数据后,元数据服务器才会发送解锁请求,所以可以避免不同虚拟化代理使用不同元数据对虚拟卷进行访问造成数据不一致的情况。另外,当这个过程中的某个环节产生错误时,元数据服务器用一种回滚的方式恢复到命令执行前的状态保证元数据的一致性。
[0042] 各服务器上的虚拟化代理主要实现虚拟卷到实际物理盘的地址转换,以及从元数据服务器读取响应虚拟卷的元数据,并动态将虚拟卷一些状态信息返回给元数据服务器。虚拟化代理主要支持Linux和Windows平台。Linux和Windows平台平台下的虚拟化代理的实现层次以及模块关系见图6、图7。
[0043] Linux和Windows平台下的虚拟化代理都由两部分组成:用户态的通信模块和内核态的 地址映射模块。通信模块从元数据服务器得到虚拟卷的元数据信息,并将这些信息导入内核模块。内核模块是文件系统层和块设备驱动层之间的一个层次,负责根据虚拟卷的元数据进行地址映射。元数据信息被导入之后,除非元数据发生改变,虚拟化代理不再需要与元数据服务器进行通信,可以独立访问存储设备,最大限度的降低了对系统性能的影响。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈