CN1664793A - 基于元数据服务器的存储虚拟化管理方法 - Google Patents

基于元数据服务器的存储虚拟化管理方法 Download PDF

Info

Publication number
CN1664793A
CN1664793A CN2005100114094A CN200510011409A CN1664793A CN 1664793 A CN1664793 A CN 1664793A CN 2005100114094 A CN2005100114094 A CN 2005100114094A CN 200510011409 A CN200510011409 A CN 200510011409A CN 1664793 A CN1664793 A CN 1664793A
Authority
CN
China
Prior art keywords
virtual
metadata
data server
meta data
volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2005100114094A
Other languages
English (en)
Other versions
CN1304961C (zh
Inventor
舒继武
薛巍
肖达
郑纬民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2005100114094A priority Critical patent/CN1304961C/zh
Publication of CN1664793A publication Critical patent/CN1664793A/zh
Application granted granted Critical
Publication of CN1304961C publication Critical patent/CN1304961C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

基于元数据服务器的存储虚拟化管理方法属于存储区域网络虚拟化领域,其特征在于:各前端主机上的虚拟化代理模块实现虚拟的逻辑卷到实际的物理卷的转换;一台或多台元数据服务器通过全局唯一标识符把不同存储设备组成物理卷,并由此构建存储池,用反映存储设备参数的元数据构建虚拟卷;用管理模块实现对元数据的操作;通过以太网建立虚拟化代理模块和管理模块的通信联络,并由此向虚拟化代理模块提供所需的元数据信息,该代理模块结合先前收到的所需物理卷的全局唯一标识符信息在内核中构造出相应的虚拟设备。它可以完成各种虚拟化功能,并且对管理系统的吞吐率和响应时间的影响可忽略不计。

Description

基于元数据服务器的存储虚拟化管理方法
技术领域
基于元数据服务器的存储虚拟化管理方法属于存储管理领域,尤其涉及其中的存储区域网络(存储区域网络)虚拟化管理领域。
背景技术
存储虚拟化是指将具体的存储设备同服务器操作系统分隔开来,为存储用户提供统一的存储池和逻辑卷的一种技术。存储区域网络中的存储虚拟化管理是充分发挥存储区域网络潜能的一项关键技术。传统的基于主机的虚拟化管理方法采用对称式结构,机群中的任何一个节点都可以进行虚拟化管理的操作,靠节点间的通信维护元数据的一致性,这增加了主机的负担并限制了系统的可扩展性。另外,由于采用了对称式结构,该方法不支持前端主机具有不同操作系统异构存储区域网络环境。
本发明提出了一种新的存储虚拟化管理方法,有效的解决了上述问题。
发明内容
本发明的目的在于提供一种适用于多种平台的存储区域网络存储网络系统的存储资源虚拟化的方法,实现物理上分散存储资源逻辑上的共享以及统一管理,向前端主机提供虚拟卷(LV)。本发明的重点在于元数据服务器的设计以及虚拟化元数据的表示方法和元数据服务器和虚拟化代理之间的通信模式。
本发明的特征在于:它是在由以下设备构成的虚拟化管理系统中实现的,该系统含有:
各种类型的前端主机,即应用服务器,它的虚拟化代理模块实现虚拟的逻辑卷到实际的物理盘的转换以及从下述元数据服务器读取相应虚拟卷的元数据;
元数据服务器,它有一台或多台,它按照TCP/IP协议经以太网与上述各前端主机相连,它把存储区域网络中不同公司、不同介质的存储资源统一构建成物理卷即虚拟卷、存储池和逻辑卷,并为上述各前端主机提供虚拟卷,实现存储资源的管理和配置;
存储设备,它的头部保存着元数据,每个存储设备有一个唯一的通用标识,用全局唯一标识符表示;
光纤交换机,它通过光纤总线适配器即HBA,与上述各前端主机和元数据服务器相连,同时也通过光纤接口与上述存储设备相连,
所述的基于元数据服务器的存储虚拟化管理方法依次含有以下步骤:
步骤1:构造软件模块
虚拟化代理即虚拟化代理模块,它是各前端主机上文件系统/数据库层和底层驱动之间的一个层,也算内核模块,负责逻辑地址到物理地址的映射,它通过配置的通信接口和上述元数据服务器的通信接口以控制流的形式通信,从上述元数据服务器获取虚拟卷的配置信息并把虚拟卷呈现给上层文件系统/数据库;当文件系统/数据库发出对虚拟卷的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命令用新的元数据重新定向并执行。
本发明的优点如下:
(1)存储虚拟化管理中元数据管理和地址映射功能分离,分别由元数据服务器和虚拟化代理(虚拟化代理)完成,提高了系统的可扩展性,并支持前端主机的异构平台。
(2)所有的元数据管理都由元数据服务器统一完成,虚拟化代理通过和元数据服务器通信获得所需的元数据信息,实现了单点管理,降低了管理复杂性,提高了系统的可控性和安全性。
(3)使用对虚拟卷加锁和解锁的方法解决了动态改变被多个主机共享的虚拟卷的元数据的问题。
(4)虚拟化代理在得到元数据之后不再需要与元数据服务器交互,可以独立访问存储设备,最大限度的降低了对系统性能的影响。
本发明在清华大学计算机系高性能计算技术研究所进行了测试。结果表明,基于元数据服务器的存储虚拟化管理方法可以完成各种虚拟化功能,并且给存储系统带来的损失可以不计。
对存储虚拟化管理系统的测试分别从IO吞吐率,平均反应时间两方面进行。通过有无管理系统两种情况下两个指标的比较确定存储虚拟化管理系统带来的额外延迟。测试环境由1台元数据服务器、4台前端主机、1台光纤交换机和5块光纤磁盘组成。元数据服务器采用32位Intel Xeon 2.4GHZ双CPU服务器,内存1GB,操作系统为Linux,内核版本为2.4.26。光纤磁盘为Seagate公司的ST3146807FC。前端主机和元数据服务器通过Emulex公司2GB带宽的光纤通道卡Emulex LP982连接到光纤交换机上。我们采用intel公司的iometer作为测试工具,测试了4台前端主机以4KB数据块顺序读操作的吞吐率,另外还测试了一台Linux服务器以不同的数据块大小对物理盘和逻辑卷进行顺序读操作的响应时间。测试结果见图8、图9。
图8显示了吞吐率的比较,图9显示了响应时间的比较。从结果我们可以看出,虚拟化层对系统的吞吐率和响应时间的影响可以忽略不计。
附图说明
图1.存储虚拟化管理系统的硬件结构图。
图2.存储虚拟化管理系统的软件结构图。
图3.元数据服务器的软件结构。
图4.虚拟卷元数据结构。
图5.在线改变元数据的过程示意图。
图6.Linux平台下虚拟化代理的实现层次以及模块关系图。
图7.Windows平台下虚拟化代理的实现层次以及模块关系图。
图8.对物理盘和逻辑卷访问的吞吐率比较。
图9.对物理盘和逻辑卷访问的响应时间比较。
图10.本发明的程序流程框图。
具体实施方式
虚拟化管理系统主要由元数据服务器和各前端主机即应用服务器上的虚拟化代理软件组成。元数据服务器主要负责将存储区域网络中不同公司、不同介质的存储资源统一构建成存储池,并为各应用服务器按需提供虚拟卷。并且负责存储资源的管理和配置,提供容量扩展,数据迁移等高级功能。各应用服务器上的虚拟化代理主要实现虚拟的逻辑盘到实际物理盘的地址转换,以及从元数据服务器读取相应虚拟卷的元数据。为了消除一台元数据服务器带来的单点故障,可以由两台或多台元数据服务器形成集群。存储虚拟化管理系统的硬件结构如图1所示。
前端主机和元数据服务器都通过光纤总线适配器连接到光纤网络存储区域网络上,存储设备也通过光纤接口连接到存储区域网络上。元数据服务器和前端主机之间通过以太网连接。元数据服务器上的元数据管理模块完成对元数据的操作,虚拟化代理上的地址映射模块完成逻辑地址到物理地址的映射。前端主机和元数据服务器上的通信模块通过TCP/IP进行通信。存储虚拟化管理系统的软件结构如图2所示。
元数据的处理由元数据服务器专门负责,它“看到”真实的物理存储,并在其上建立物理卷、存储池和逻辑卷。元数据保存在存储设备的头部,元数据服务器启动时通过扫描存储设备得到元数据并把它们保存在内存中,同时在元数据发生改变时负责维护它们的一致性。前端主机上的虚拟化代理是文件系统/数据库层和底层驱动之间的一个层,它负责逻辑地址到物理地址的映射。虚拟化代理通过配置接口和元数据服务器通信,从元数据服务器获取虚拟卷的配置信息并把虚拟卷呈现给上层的文件系统或数据库。当文件系统或数据库发出对虚拟卷的I/O操作时,虚拟化代理截获该I/O操作,把逻辑地址翻译成物理地址,然后把I/O操作发送到底层驱动。
所有对存储资源的管理,以及虚拟卷的配置和分配都在元数据服务器上进行操作。各应用服务器不涉及任何元数据的操作,保存在存储设备上的元数据对它们来说是不可见的,它们只能从元数据服务器得到和自己相关的虚拟卷的元数据,实现了单点管理,提高了安全性。在本系统中,数据流和控制流(元数据流)是分离的。这样一来,在数据通路上基本无数据读写延迟,最大限度的利用了光纤网络的带宽,性能较好。另外,虚拟化代理在HBA驱动的上层实现,具有和底层硬件无关的特点,可以支持不同厂商的HBA卡。
元数据服务器负责管理整个虚拟存储系统,包括连接到存储区域网络上的存储设备和前端主机。元数据服务器的软件运行在Linux系统上,由一组用户空间程序组成,包括4个模块:管理接口,通信接口,元数据管理模块和监控模块,模块间的关系如图3所示。
管理接口给管理员提供执行管理命令的界面,这些命令包括创建存储池、虚拟卷,授予一个前端主机对虚拟卷的使用权限等,另外,它也提供给用户管理所需的虚拟卷和存储池的配置信息。它通过调用元数据管理模块提供的API完成这些功能。
主机接口负责和前端主机上的虚拟化代理通过TCP/IP进行通信。当前端主机启动需要载入它的虚拟卷的元数据或虚拟存储的配置发生改变(例如虚拟卷的在线扩容或有新的物理卷加入存储池)时,元数据服务器通过通信接口把元数据的信息通知虚拟化代理。虚拟化代理也通过主机接口向监控模块报告自身状态和对虚拟卷的使用情况。
元数据管理模块完成真正的对元数据操作的任务,是元数据服务器的核心模块。它把多个物理卷组织成存储池,管理物理卷上的剩余空间,根据逻辑卷的映射方式生成逻辑卷的元数据。它还负责把元数据的信息记录在物理卷上以及一致性的维护。它提供一组API供其他模块调用。
监控模块完成系统状态监控功能,它实时的获取系统的各个组成部分的状态信息,这些组成部分包括存储设备、光纤交换机、光纤链路等等。当系统的配置发生改变,例如有新的存储设备加入到系统中或有存储设备移出时,监控模块能够发现该事件并通知元数据管理模块改变存储池的配置。另外,当系统的某部分发生故障时,如光纤链路出错、磁盘介质出错等,监控模块发现这些故障并采取适当的恢复措施。
理论上,元数据服务器可寻址存储区域网络网络中的所有存储设备。但是,如果存储设备需要加入由元数据服务器维护的存储池,进而提供给各服务器使用,则需要注册该设备,并进行相应的初始化处理。元数据服务器通过创建物理卷命令完成存储设备的注册。该命令在存储设备的某个固定位置写入作为存储设备唯一标识的全局唯一标识符,即全局唯一标识符,并把存储设备头部一定大小的空间预留为存放元数据使用。
虚拟存储管理采用全局唯一标识符作为存储设备在元数据服务器和虚拟化代理之间的统一标识。全局唯一标识符是一个32字节的随机字符串序列,在元数据服务器和虚拟化代理间传送的信息中,物理设备是以全局唯一标识符表示的。在一个存储设备被创建为物理卷的过程中,全局唯一标识符由元数据服务器生成并写在物理设备的指定位置。在虚拟化代理的初始化过程中,元数据服务器把该虚拟化代理所需的所有存储设备的全局唯一标识符发送给虚拟化代理。虚拟化代理扫描存储区域网络中的所有存储设备,通过读取设备指定位置的全局唯一标识符信息来定位它所需的存储设备,并建立全局唯一标识符和内核中表示设备的设备号的对应关系,保存在一个表中,以备以后查找。这种方法的优点在于,通过把标识符写在设备上,保证了设备的定位与设备的连接方式和连接位置无关,当存储设备的连接位置发生改变时(从一个端口移到另一个端口),虚拟化代理仍能正确的定位该设备,提高了存储系统的灵活性。
各应用服务器的虚拟化代理加载时,不可直接从硬盘上读取元数据,需向元数据服务器发包获取属于自己的元数据信息。元数据服务器将该虚拟化代理的元数据表返回该虚拟化代理,虚拟化代理据此来填充其内核结构。一般来说,元数据服务器映射给虚拟化代理的元数据是以虚拟卷为单位。
元数据服务器传给虚拟化代理的每个虚拟卷的元数据是使用段(segment)来组织。一个段将虚拟卷的一段连续扇区对应到一个目标段,一个目标段是一个(线性)或多个(条分)存储设备上的一段连续的扇区。每个段的组织如下:
(逻辑起始扇区,扇区数目,目标段类型,目标段描述符)
目标段类型有两种:线性(linear)和条分(striped)。每个后面都带有各自的目标段描述符,其组织格式如下:
线性:
(目标设备标识,起始扇区)
比如:linear/dev/sda 0
条分:
(条分数,条带大小,目标设备1,起始扇区1,目标设备2,起始扇区2,……)
比如:striped 2 32/dev/sda 0/dev/sdb 0将按照如下原则映射第一个16K大小的逻辑块(chunk):
LV chunk 1→sda,chunk 1
LV chunk 2→sdb,chunk 1
LV chunk 3→sda,chunk 2
LV chunk 4→sdb,chunk 2
综合起来,一个可能的虚拟卷的元数据表如下:
0 1028 160 linear/dev/sda 0
1028160 3903762 linear/dev/sdb 0
上述的虚拟卷元数据表是将sdb和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个扇区。
元数据服务器发送给虚拟化代理的一个虚拟卷的元数据的完整结构见图4。
其中,虚拟卷头包含虚拟卷的有关信息,如卷大小,读写权限等;段头指明了其后所接的段的数目;每个段的格式如前所述。
这种分段表示方法和映射表表示方法(把虚拟卷分为若干固定大小的块,每个块对应一个存储设备上相同大小的块)相比,大大减少了表示一个虚拟卷所需的元数据的长度,缩短了元数据在元数据服务器上存储以及在网络上传输的时间。
元数据服务器和虚拟化代理通过各自的通信接口通过以太网进行通信。通信以会话为基本单位,一个完整会话由两个部分组成:
1.请求:由通信模型的一端向另外一端发送一个请求包,包头+数据(如果有)
2.应答:在另外一端受到请求的时候,就执行这个请求,并返回一个包头+数据(如果有)的执行结果
如果在规定的时间内没有应答的化,就认为通信失败,不再等待,认为这个通信过程失败。
所有的通信的请求都是如RQST_XXXXX表示,所有的通信的应答都是如RESP_XXXXX表示。主要的请求类型包括:
RQST_LOGIN             主机登陆到元数据服务器
RQST_LOGOUT        主机从元数据服务器退出
RQST_SETPV             设置主机所需的物理卷
RQST_SETLV             设置主机的虚拟卷的元数据
RQST_RESETLV       重新设置虚拟卷的元数据
RQST_LOCKLV        锁定虚拟卷
RQST_UNLOCKLV      解锁虚拟卷
一台主机要加入虚拟化存储系统中,需要向元数据服务器注册。主机启动后,虚拟化代理自动发送注册包给元数据服务器返回给主机一个唯一的主机标识,即Host ID,和一个验证码,即host key。虚拟化代理可将该标识存入本地文件。以后的所有该主机和元数据服务器交互,都以主机标识来区分主机。
主机完成注册后,元数据服务器就可以根据管理员的命令把逻辑卷分配给主机使用。元数据服务器首先向虚拟化代理发送SETPV请求包,把主机所用到的物理卷的全局唯一标识符信息发送给虚拟化代理。虚拟化代理根据此请求扫描磁盘,找到对应的物理卷,在内核中建立所有物理卷的列表,并向元数据服务器发送SETPV响应包。然后元数据服务器向虚拟化代理发送SETLV请求包,把分配给主机的虚拟卷的元数据信息发送给虚拟化代理。虚拟化代理根据元数据信息在内核中构造出相应的虚拟设备,并给元数据服务器发送SETLV响应包。之后,主机就可以对该虚拟设备进行使用了。在使用过程中,虚拟化代理利用从元数据服务器得到的元数据对发往虚拟卷的I/O命令重定向,除非虚拟卷的元数据发生改变,否则虚拟化代理不需要与元数据服务器通信。
在存储区域网络的多前端主机共享存储环境中,一个虚拟卷可能分配给多个前端主机使用。为了满足不间断服务的需求,当配置操作需要改变该虚拟卷的元数据(即虚拟卷和物理卷的映射关系,如虚拟卷扩容)时,不能中断前端主机提供的服务。因此该过程中必须对前端主机对虚拟卷的访问进行控制,以确保数据的一致性。虚拟化管理系统采用一种锁机制保证虚拟卷的元数据发生改变时数据的一致性。元数据服务器可以向前端主机的虚拟化代理发出对虚拟卷的加锁和解锁请求。虚拟化代理收到对一个虚拟卷的加锁请求后,把所有I/O命令队列中已经被重定向但还没有完成的I/O命令被发往底层存储设备执行,所有后续的对虚拟卷的I/O命令被推迟执行,并且不被重定向。虚拟化代理收到对一个虚拟卷的解锁请求后,把所有被推迟的的I/O命令用新的元数据重定向,并重新放入I/O命令队列中等待执行。
在线改变虚拟卷元数据的过程如图5所示。首先元数据服务器会根据元数据确定这个虚拟卷已经分配给哪些前端主机使用,然后向这些前端主机的虚拟化代理发送加锁该虚拟卷的请求,虚拟化代理收到该请求后执行加锁操作并向元数据服务器发回响应。元数据服务器在收到所有的加锁虚拟卷的成功响应之后,它的元数据管理模块按照需要生成新的元数据,再向拥有该虚拟卷使用权限的前端主机发送重置虚拟卷的请求,虚拟化代理收到请求后把虚拟卷旧的元数据替换为新的元数据。最后,元数据服务器在收到所有的重置虚拟卷的成功响应之后,向虚拟化代理发送解锁虚拟卷请求,虚拟化代理把所有被推迟的的I/O命令用新的元数据重定向并执行。
由于只有当所有虚拟化代理的相应虚拟卷的旧元数据都替换为新元数据后,元数据服务器才会发送解锁请求,所以可以避免不同虚拟化代理使用不同元数据对虚拟卷进行访问造成数据不一致的情况。另外,当这个过程中的某个环节产生错误时,元数据服务器用一种回滚的方式恢复到命令执行前的状态保证元数据的一致性。
各服务器上的虚拟化代理主要实现虚拟卷到实际物理盘的地址转换,以及从元数据服务器读取响应虚拟卷的元数据,并动态将虚拟卷一些状态信息返回给元数据服务器。虚拟化代理主要支持Linux和Windows平台。Linux和Windows平台下的虚拟化代理的实现层次以及模块关系见图6、图7。
Linux和Windows平台下的虚拟化代理都由两部分组成:用户态的通信模块和内核态的地址映射模块。通信模块从元数据服务器得到虚拟卷的元数据信息,并将这些信息导入内核模块。内核模块是文件系统层和块设备驱动层之间的一个层次,负责根据虚拟卷的元数据进行地址映射。元数据信息被导入之后,除非元数据发生改变,虚拟化代理不再需要与元数据服务器进行通信,可以独立访问存储设备,最大限度的降低了对系统性能的影响。

Claims (1)

1.基于元数据服务器的存储虚拟化管理方法,其特征在于,它是在由以下设备构成的虚拟化管理系统中实现的,该系统含有:
各种类型的前端主机,即应用服务器,它的虚拟化代理模块实现虚拟的逻辑卷到实际的物理盘的转换以及从下述元数据服务器读取相应虚拟卷的元数据;
元数据服务器,它有一台或多台,它按照TCP/IP协议经以太网与上述各前端主机相连,它把存储区域网络中不同公司、不同介质的存储资源统一构建成物理卷即虚拟卷、存储池和逻辑卷,并为上述各前端主机提供虚拟卷,实现存储资源的管理和配置;
存储设备,它的头部保存着元数据,每个存储设备有一个唯一的通用标识,用全局唯一标识表示;
光纤交换机,它通过光纤总线适配器即HBA,与上述各前端主机和元数据服务器相连,同时也通过光纤接口与上述存储设备相连,
所述的基于元数据服务器的存储虚拟化管理方法依次含有以下步骤:
步骤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命令用新的元数据重新定向并执行。
CNB2005100114094A 2005-03-11 2005-03-11 基于元数据服务器的存储虚拟化管理方法 Expired - Fee Related CN1304961C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100114094A CN1304961C (zh) 2005-03-11 2005-03-11 基于元数据服务器的存储虚拟化管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100114094A CN1304961C (zh) 2005-03-11 2005-03-11 基于元数据服务器的存储虚拟化管理方法

Publications (2)

Publication Number Publication Date
CN1664793A true CN1664793A (zh) 2005-09-07
CN1304961C CN1304961C (zh) 2007-03-14

Family

ID=35035895

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100114094A Expired - Fee Related CN1304961C (zh) 2005-03-11 2005-03-11 基于元数据服务器的存储虚拟化管理方法

Country Status (1)

Country Link
CN (1) CN1304961C (zh)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007143882A1 (en) * 2006-06-09 2007-12-21 Fast Dragon International Holdings Limited N^n data management, access, storage, transfer, exchange and retrieval system (data master)
CN100405295C (zh) * 2005-04-05 2008-07-23 国际商业机器公司 用于提供原地执行功能的系统和方法
CN101086717B (zh) * 2006-06-05 2010-06-02 国际商业机器公司 存储瞬态信息的系统和方法
CN101788889A (zh) * 2010-03-03 2010-07-28 浪潮(北京)电子信息产业有限公司 一种存储虚拟化系统及方法
WO2010148794A1 (zh) * 2009-12-11 2010-12-29 中兴通讯股份有限公司 一种云存储系统和方法
CN101953206A (zh) * 2008-02-22 2011-01-19 佳能株式会社 通信设备、通信设备的控制方法、计算机程序和存储介质
CN101582092B (zh) * 2009-06-12 2011-04-20 中兴通讯股份有限公司 一种实现保存内存中的数据的方法及装置
CN101118558B (zh) * 2007-07-10 2011-05-25 青岛海信移动通信技术股份有限公司 资源文件的转换方法及装置
CN101681238B (zh) * 2007-04-30 2011-06-15 惠普发展公司,有限责任合伙企业 用于网络附连存储设备的存储扩展单元的系统和方法
CN101520794B (zh) * 2008-02-26 2011-06-22 巴比禄股份有限公司 用于管理数据的方法和设备
CN102118442A (zh) * 2011-02-21 2011-07-06 清华大学 一种访问Web资源的方法及装置
CN102143228A (zh) * 2011-03-30 2011-08-03 浪潮(北京)电子信息产业有限公司 一种云存储系统、云客户端及实现存储区域网络服务的方法
CN101272332B (zh) * 2007-03-07 2011-09-07 株式会社东芝 具有未使用物理区域自主管理功能的存储装置
CN102202087A (zh) * 2011-04-25 2011-09-28 中兴通讯股份有限公司 一种标识存储设备的方法及系统
CN1984118B (zh) * 2005-12-13 2012-05-30 汤姆森许可贸易公司 用于组织网络中的节点的方法和设备
CN101556529B (zh) * 2008-04-07 2012-07-18 株式会社日立制作所 具有多个存储系统模块的存储系统
CN101621537B (zh) * 2009-07-24 2012-09-05 北京航空航天大学 一种低成本高光谱海量数据并行处理系统
US8484204B2 (en) 2008-08-28 2013-07-09 Microsoft Corporation Dynamic metadata
CN103209219A (zh) * 2013-04-23 2013-07-17 深圳市京华科讯科技有限公司 一种分布式集群文件系统
CN103902354A (zh) * 2014-04-11 2014-07-02 浪潮电子信息产业股份有限公司 一种虚拟化应用中快速初始化磁盘的方法
CN103984638A (zh) * 2013-02-12 2014-08-13 Lsi股份有限公司 链接的可缩放的存储设备
WO2014170791A3 (en) * 2013-04-16 2015-02-26 International Business Machines Corporation Logical region allocation with immediate availability
CN104636077A (zh) * 2013-11-15 2015-05-20 中国电信股份有限公司 用于虚拟机的网络块设备存储系统与方法
US9104597B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Destaging cache data using a distributed freezer
US9104332B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
US9298398B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Fine-grained control of data placement
US9298617B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Parallel destaging with replicated cache pinning
WO2016050112A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 一种数据存储方法、存储装置及存储系统
US9329938B2 (en) 2013-04-16 2016-05-03 International Business Machines Corporation Essential metadata replication
US9619404B2 (en) 2013-04-16 2017-04-11 International Business Machines Corporation Backup cache with immediate availability
CN106919346A (zh) * 2017-02-21 2017-07-04 无锡华云数据技术服务有限公司 一种基于clvm的共享存储虚拟化实现方法
CN107122123A (zh) * 2016-02-24 2017-09-01 湖南百里目科技有限责任公司 一种新型存储虚拟化网关直通模式方法
CN107154848A (zh) * 2017-03-10 2017-09-12 深圳市盾盘科技有限公司 一种基于cpk认证的数据加密与存储方法及装置
CN107291402A (zh) * 2017-07-05 2017-10-24 长沙开雅电子科技有限公司 一种存储虚拟化新型透传实现方法
CN107888689A (zh) * 2017-11-16 2018-04-06 无锡地铁集团有限公司 基于共享存储的加锁资源配置方法
CN108351752A (zh) * 2015-11-06 2018-07-31 微软技术许可有限责任公司 存储虚拟化卸载
CN110300960A (zh) * 2017-02-28 2019-10-01 株式会社日立制作所 信息系统、管理程序和信息系统的程序更换方法
CN111259010A (zh) * 2020-01-14 2020-06-09 北京智睿博信息技术有限公司 一种存储区域网络设备关联配置信息的管理方法及系统
CN112241365A (zh) * 2020-07-24 2021-01-19 国家计算机网络与信息安全管理中心 一种面向Namenode的高效元数据构建和RPC性能提升的方法和装置
CN112968965A (zh) * 2021-02-25 2021-06-15 网宿科技股份有限公司 Nfv网络节点的元数据服务方法、服务器及存储介质
WO2022002010A1 (zh) * 2020-07-02 2022-01-06 华为技术有限公司 使用中间设备对数据处理的方法、计算机系统、及中间设备
CN116360696A (zh) * 2023-03-31 2023-06-30 北京志凌海纳科技有限公司 分布式块存储系统、介质及其电子设备
WO2023193682A1 (en) * 2022-04-05 2023-10-12 International Business Machines Corporation Local arrangement of remote deployment

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965184B2 (en) 2015-10-19 2018-05-08 International Business Machines Corporation Multiple storage subpools of a virtual storage pool in a multiple processor environment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839812B2 (en) * 2001-12-21 2005-01-04 Intel Corporation Method and system to cache metadata
US7412433B2 (en) * 2002-11-19 2008-08-12 International Business Machines Corporation Hierarchical storage management using dynamic tables of contents and sets of tables of contents
CN1254748C (zh) * 2003-10-31 2006-05-03 清华大学 存储区域网络中分布式虚拟化存储的方法

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100405295C (zh) * 2005-04-05 2008-07-23 国际商业机器公司 用于提供原地执行功能的系统和方法
CN1984118B (zh) * 2005-12-13 2012-05-30 汤姆森许可贸易公司 用于组织网络中的节点的方法和设备
CN101086717B (zh) * 2006-06-05 2010-06-02 国际商业机器公司 存储瞬态信息的系统和方法
WO2007143882A1 (en) * 2006-06-09 2007-12-21 Fast Dragon International Holdings Limited N^n data management, access, storage, transfer, exchange and retrieval system (data master)
CN101272332B (zh) * 2007-03-07 2011-09-07 株式会社东芝 具有未使用物理区域自主管理功能的存储装置
CN101681238B (zh) * 2007-04-30 2011-06-15 惠普发展公司,有限责任合伙企业 用于网络附连存储设备的存储扩展单元的系统和方法
CN101118558B (zh) * 2007-07-10 2011-05-25 青岛海信移动通信技术股份有限公司 资源文件的转换方法及装置
CN101953206B (zh) * 2008-02-22 2015-10-21 佳能株式会社 通信设备和通信设备的控制方法
CN101953206A (zh) * 2008-02-22 2011-01-19 佳能株式会社 通信设备、通信设备的控制方法、计算机程序和存储介质
CN101520794B (zh) * 2008-02-26 2011-06-22 巴比禄股份有限公司 用于管理数据的方法和设备
CN101556529B (zh) * 2008-04-07 2012-07-18 株式会社日立制作所 具有多个存储系统模块的存储系统
US8484204B2 (en) 2008-08-28 2013-07-09 Microsoft Corporation Dynamic metadata
CN102132267B (zh) * 2008-08-28 2013-12-18 微软公司 动态元数据
CN101582092B (zh) * 2009-06-12 2011-04-20 中兴通讯股份有限公司 一种实现保存内存中的数据的方法及装置
CN101621537B (zh) * 2009-07-24 2012-09-05 北京航空航天大学 一种低成本高光谱海量数据并行处理系统
CN101753617B (zh) * 2009-12-11 2013-05-08 中兴通讯股份有限公司 一种云存储系统和方法
WO2010148794A1 (zh) * 2009-12-11 2010-12-29 中兴通讯股份有限公司 一种云存储系统和方法
CN101788889A (zh) * 2010-03-03 2010-07-28 浪潮(北京)电子信息产业有限公司 一种存储虚拟化系统及方法
CN102118442A (zh) * 2011-02-21 2011-07-06 清华大学 一种访问Web资源的方法及装置
CN102143228A (zh) * 2011-03-30 2011-08-03 浪潮(北京)电子信息产业有限公司 一种云存储系统、云客户端及实现存储区域网络服务的方法
CN102202087A (zh) * 2011-04-25 2011-09-28 中兴通讯股份有限公司 一种标识存储设备的方法及系统
CN102202087B (zh) * 2011-04-25 2015-04-01 中兴通讯股份有限公司 一种标识存储设备的方法及系统
US9281992B2 (en) 2011-04-25 2016-03-08 Zte Corporation Method and system for identifying storage device
CN103984638A (zh) * 2013-02-12 2014-08-13 Lsi股份有限公司 链接的可缩放的存储设备
US9298398B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Fine-grained control of data placement
US9547446B2 (en) 2013-04-16 2017-01-17 International Business Machines Corporation Fine-grained control of data placement
US9104597B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Destaging cache data using a distributed freezer
US9104332B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
WO2014170791A3 (en) * 2013-04-16 2015-02-26 International Business Machines Corporation Logical region allocation with immediate availability
US9740416B2 (en) 2013-04-16 2017-08-22 International Business Machines Corporation Essential metadata replication
US9619404B2 (en) 2013-04-16 2017-04-11 International Business Machines Corporation Backup cache with immediate availability
US9298617B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Parallel destaging with replicated cache pinning
US9600192B2 (en) 2013-04-16 2017-03-21 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
US9329938B2 (en) 2013-04-16 2016-05-03 International Business Machines Corporation Essential metadata replication
US9417964B2 (en) 2013-04-16 2016-08-16 International Business Machines Corporation Destaging cache data using a distributed freezer
US9423981B2 (en) 2013-04-16 2016-08-23 International Business Machines Corporation Logical region allocation with immediate availability
US9535840B2 (en) 2013-04-16 2017-01-03 International Business Machines Corporation Parallel destaging with replicated cache pinning
US9575675B2 (en) 2013-04-16 2017-02-21 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
CN103209219A (zh) * 2013-04-23 2013-07-17 深圳市京华科讯科技有限公司 一种分布式集群文件系统
CN104636077B (zh) * 2013-11-15 2017-10-10 中国电信股份有限公司 用于虚拟机的网络块设备存储系统与方法
CN104636077A (zh) * 2013-11-15 2015-05-20 中国电信股份有限公司 用于虚拟机的网络块设备存储系统与方法
CN103902354A (zh) * 2014-04-11 2014-07-02 浪潮电子信息产业股份有限公司 一种虚拟化应用中快速初始化磁盘的方法
WO2016050112A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 一种数据存储方法、存储装置及存储系统
CN108351752A (zh) * 2015-11-06 2018-07-31 微软技术许可有限责任公司 存储虚拟化卸载
CN107122123A (zh) * 2016-02-24 2017-09-01 湖南百里目科技有限责任公司 一种新型存储虚拟化网关直通模式方法
CN106919346A (zh) * 2017-02-21 2017-07-04 无锡华云数据技术服务有限公司 一种基于clvm的共享存储虚拟化实现方法
CN106919346B (zh) * 2017-02-21 2019-01-22 无锡华云数据技术服务有限公司 一种基于clvm的共享存储虚拟化实现方法
CN110300960A (zh) * 2017-02-28 2019-10-01 株式会社日立制作所 信息系统、管理程序和信息系统的程序更换方法
CN110300960B (zh) * 2017-02-28 2023-04-04 株式会社日立制作所 信息系统、管理程序和信息系统的程序更换方法
CN107154848A (zh) * 2017-03-10 2017-09-12 深圳市盾盘科技有限公司 一种基于cpk认证的数据加密与存储方法及装置
CN107291402A (zh) * 2017-07-05 2017-10-24 长沙开雅电子科技有限公司 一种存储虚拟化新型透传实现方法
CN107888689A (zh) * 2017-11-16 2018-04-06 无锡地铁集团有限公司 基于共享存储的加锁资源配置方法
CN107888689B (zh) * 2017-11-16 2019-04-30 无锡地铁集团有限公司 基于共享存储的加锁资源配置方法
CN111259010A (zh) * 2020-01-14 2020-06-09 北京智睿博信息技术有限公司 一种存储区域网络设备关联配置信息的管理方法及系统
WO2022002010A1 (zh) * 2020-07-02 2022-01-06 华为技术有限公司 使用中间设备对数据处理的方法、计算机系统、及中间设备
CN112241365A (zh) * 2020-07-24 2021-01-19 国家计算机网络与信息安全管理中心 一种面向Namenode的高效元数据构建和RPC性能提升的方法和装置
CN112968965A (zh) * 2021-02-25 2021-06-15 网宿科技股份有限公司 Nfv网络节点的元数据服务方法、服务器及存储介质
WO2023193682A1 (en) * 2022-04-05 2023-10-12 International Business Machines Corporation Local arrangement of remote deployment
US11943115B2 (en) 2022-04-05 2024-03-26 International Business Machines Corporation Locally debugging remote deployment of microservices
CN116360696A (zh) * 2023-03-31 2023-06-30 北京志凌海纳科技有限公司 分布式块存储系统、介质及其电子设备
CN116360696B (zh) * 2023-03-31 2024-01-23 北京志凌海纳科技有限公司 分布式块存储系统、介质及其电子设备

Also Published As

Publication number Publication date
CN1304961C (zh) 2007-03-14

Similar Documents

Publication Publication Date Title
CN1304961C (zh) 基于元数据服务器的存储虚拟化管理方法
US7877545B2 (en) Online restriping technique for distributed network based virtualization
CN104603739B (zh) 对并行存储的块级访问
US9251234B1 (en) Providing snapshots of virtual storage devices
US8631150B2 (en) Method and apparatus for in-band management of storage devices
US8706837B2 (en) System and method for managing switch and information handling system SAS protocol communication
CN1324450C (zh) 存储系统和存储控制装置及存储控制装置的控制方法
JP2019153297A (ja) Fpgaベースの加速のための新たなssd基本構造
CN102523264B (zh) 面向虚拟机的usb设备远程共享方法和系统
CN100340981C (zh) 通过网络管理和传送虚拟磁盘至网络工作站的装置与方法
CN1655129A (zh) Windows平台下动态管理存储资源的通用方法
US20060272015A1 (en) Virtual devices and virtual bus tunnels, modules and methods
US20020049825A1 (en) Architecture for providing block-level storage access over a computer network
JP2017091546A (ja) 多重モード動作のための多重パーティションを含む格納装置、及びその動作方法
CN107170474A (zh) 可扩展存储盒、计算机实施方法以及计算机可读存储装置
CN1766851A (zh) 用于数据存储区管理的系统及方法
CN1350674A (zh) 用来实现共用磁盘阵列管理功能的方法和系统
CN1694081A (zh) San系统中虚拟化智能控制器的实现方法
CN1818890A (zh) 用于实现卸载发起方功能的方法和系统
CN101059791A (zh) 虚拟通用串行总线设备系统及其数据传输方法
CN107924289A (zh) 计算机系统和访问控制方法
CN103870202A (zh) 一种块设备的分布式存储方法和系统
CN1448827A (zh) 存储系统中检验数据的方法及设备
CN1896960A (zh) 一种快照系统及方法
CN101212490A (zh) 储存装置控制器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070314

Termination date: 20110311