发明名称 基于元数据服务器的存储虚拟化管理方法
摘要 基于元数据服务器的存储虚拟化管理方法属于存储区域网络虚拟化领域,其特征在于:各前端主机上的虚拟化代理模块实现虚拟的逻辑卷到实际的物理卷的转换;一台或多台元数据服务器通过全局唯一标识符把不同存储设备组成物理卷,并由此构建存储池,用反映存储设备参数的元数据构建虚拟卷;用管理模块实现对元数据的操作;通过以太网建立虚拟化代理模块和管理模块的通信联络,并由此向虚拟化代理模块提供所需的元数据信息,该代理模块结合先前收到的所需物理卷的全局唯一标识符信息在内核中构造出相应的虚拟设备。它可以完成各种虚拟化功能,并且对管理系统的吞吐率和响应时间的影响可忽略不计。
申请公布号 CN1664793A 申请公布日期 2005.09.07
申请号 CN200510011409.4 申请日期 2005.03.11
申请人 清华大学 发明人 舒继武;薛巍;肖达;郑纬民
分类号 G06F12/08;H04L12/00 主分类号 G06F12/08
代理机构 代理人
主权项 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命令用新的元数据重新定向并执行。
地址 100084北京市北京100084-82信箱