一种实现逻辑卷元数据备份存储的方法技术

技术编号:10527987 阅读:143 留言:0更新日期:2014-10-09 12:49
本发明专利技术公开了一种实现逻辑卷元数据备份存储的方法,通过在磁盘首尾各存放一份元数据,当磁盘首位置的元数据被破坏后可以从磁盘末尾读取元数据的备份,反之亦然。本发明专利技术通过在磁盘首尾存放两份元数据信息提高了元数据的容错能力,当一份元数据被异常破坏时可以使用另一份正常加载,然后完成逻辑卷的激活等操作。

【技术实现步骤摘要】

本专利技术涉及计算机系统及通信领域,具体涉及一种实现逻辑卷元数据备份存储的 方法。 技术背景 在存储系统中为提高磁盘空间管理的便利和有效性,通常采用逻辑卷的方式对存 储空间进行管理,即通常情况下,在磁盘上创建物理卷(Phisical Volume),然后将物理卷 组成存储池,在存储池上划分逻辑卷(Logical Volume),基于逻辑卷可以实现卷空间扩容 等高级功能。为了描述存储池的组成及逻辑卷的划分,需要在磁盘上记录其元数据信息,当 系统启动时根据磁盘上的逻辑卷元数据信息将各个卷进行激活。 通常的卷管理器实现方式,只在磁盘起始位置存放一份逻辑卷元数据信息,如果 磁盘起始的元数据信息被异常破坏,会导致逻辑卷无法被正常扫描和激活,为了提高逻辑 卷元数据的容错能力,通常采用元数据备份的方式。
技术实现思路
本专利技术要解决的技术问题是:提供。 本专利技术所采用的技术方案为: ,通过在磁盘首尾各存放一份元数据,当磁盘 首位置的元数据被破坏后可以从磁盘末尾读取元数据的备份,反之亦然。 所述元数据在磁盘上的具体布局方式如下: 1) 首先在磁盘的起始的第二个扇区存放卷标描述信息和物理卷描述信息,用于表示此 硬盘已被卷管理器所使用,并记录物理卷的UUID ; 2) 在磁盘起始4KB位置处,开始存放逻辑卷元数据及其描述信息,元数据区默认占用 1024个扇区,其中第一个扇区存放mda_header结构用于对随后的元数据进行描述; 3) 当启用元数据的备份时,在磁盘末尾存放一份元数据的镜像; 4) 当磁盘开始位置的label_header被破坏时,可以根据默认的元数据区大小计算出 磁盘末尾位置的lable_head er结构,用以判断磁盘是否被卷管理器使用,并根据随后的 pv_header结构计算出磁盘首尾两个元数据区的位置; 当磁盘开始的mda_header结构被破坏时,同样从磁盘末尾备份的mda_header读取最 近一个版本元数据的偏移位置,然后读取实际的逻辑卷元数据将卷激活。 所述卷标描述信息的定义如下: struct label_header { int8_t id[8] ; // id 字段存储了 LABELONE 字符串 uint64_t sector_xl; //当前结构所在的扇区,默认为1,即起始第二个扇区 uint32_t crc_xl; // 校验字段 uint32_t offset_xl; //后面pv_header结构相对此扇区起始的偏移 int8_t type [8] ; // 类型信息 }〇 所述卷标信息随后存放的是物理卷描述信息,其定义如下: struct pv_header { int8_t pv_uuid[ID_LEN] ; //使用随机数生成的UUID,唯一标示一个物理卷 uint64_t device_size_xl; //物理卷大小,以字节为单位 struct disk_locn disk_areas_xl [0] ; //描述了数据区及元数据区的位置 }〇 其中,pv_header结构中的disk_areas_xl成员是一个结构体数组,具体描述了各 个数据区和元数据区在磁盘上的位置。如果使用元数据备份功能,则需要在磁盘首尾各存 放一份元数据,其相对磁盘起始位置的偏移和元数据区长度均在此结构洪描述。 所述mda_header结构的定义如下: struct mda_header { uint32_t checksum_xl; //元数据区描述符的校验值 int8_t magic[16] ; //用于标识元数据区的字符串 uint32_t version; //元数据版本信息 uint64_t start; //元数据区在磁盘上的起始偏移字节 uint64_t size; //元数据区大小 struct raw_locn raw_locns [0] ; //用于描述最近一个版本的元数据所在磁盘位置 }〇 在所述mda_header结构之后的下一个扇区存放实际的逻辑卷元数据。 所述逻辑卷元数据采用可读文本的方式描述,且在元数据区内循环存放,当元数 据区写满时回绕到元数据区开始位置。 本专利技术的有益效果为:本专利技术通过在磁盘首尾存放两份元数据信息提高了元数据 的容错能力,当一份元数据被异常破坏时可以使用另一份正常加载,然后完成逻辑卷的激 活等操作。 【附图说明】 图1为未使用元数据备份的磁盘布局示意图; 图2为本专利技术使用元数据备份的磁盘布局示意图。 【具体实施方式】 下面参照附图,通过【具体实施方式】对本专利技术进一步说明: ,通过在磁盘首尾各存放一份元数据,当磁盘 首位置的元数据被破坏后可以从磁盘末尾读取元数据的备份,反之亦然。 所述元数据在磁盘上的具体布局方式如下: 1) 首先在磁盘的起始的第二个扇区存放卷标描述信息和物理卷描述信息,用于表示此 硬盘已被卷管理器所使用,并记录物理卷的UUID ; 2) 在磁盘起始4KB位置处,开始存放逻辑卷元数据及其描述信息,元数据区默认占用 1024个扇区,其中第一个扇区存放mda_header结构用于对随后的元数据进行描述; 3)当启用元数据的备份时,在磁盘末尾存放一份元数据的镜像; 假设逻辑卷元数据区的大小为1024扇区,则磁盘末尾4KB+512KB的区域用于存放备份 数据,其中备份区域的第二个扇区用于存放label_header和pv_header结构,用于记录卷 管理表识和物理卷标识。备份区域的4K偏移处一个扇区内存放mda_head er,注意此扇区 内存在两个mda_header结构,第一个用于记录磁盘末尾的元数据存储位置,第二个用于记 录磁盘开头的元数据位置,并与磁盘开头的两个mda_header结构对称存放。具体布局方式 如图2所示。 4)当磁盘开始位置的label_header被破坏时,可以根据默认的元数据区大小计 算出磁盘末尾位置的lable_head er结构,用以判断磁盘是否被卷管理器使用,并根据随后 的pv_header结构计算出磁盘首尾两个元数据区的位置; 当磁盘开始的mda_header结构被破坏时,同样从磁盘末尾备份的mda_header读取最 近一个版本元数据的偏移位置,然后读取实际的逻辑卷元数据将卷激活。 所述卷标描述信息的定义如下: struct label_header { int8_t id[8] ; // id 字段存储了 LABELONE 字符串 uint64_t sector_xl; //当前结构所在的扇区,默认为1,即起始第二个扇区 uint32_t crc_xl; // 校验字段 uint32_t offset_xl; //后面pv_header结构相对此扇区起始的偏移 int8_t type [8] ; // 类型信息 }〇 所述卷标信息随后存放的是物理卷描述信息,其定义如下: struct pv_header { int8_t pv_uuid[ID_LEN] ; //使用随机数生成的UUID,唯一标示一个物理卷 uint64_t device_size_xl; //物理卷大小,以字节为单位 st本文档来自技高网...

【技术保护点】
一种实现逻辑卷元数据备份存储的方法,其特征在于:在磁盘首尾各存放一份元数据。

【技术特征摘要】
1. 一种实现逻辑卷元数据备份存储的方法,其特征在于:在磁盘首尾各存放一份元数 据。2. 根据权利要求1所述的一种实现逻辑卷元数据备份存储的方法,其特征在于,所述 元数据在磁盘上的具体布局方式如下: 1) 首先在磁盘的起始的第二个扇区存放卷标描述信息和物理卷描述信息,用于表示此 硬盘已被卷管理器所使用,并记录物理卷的UUID ; 2) 在磁盘起始4KB位置处,开始存放逻辑卷元数据及其描述信息,元数据区默认占用 1024个扇区,其中第一个扇区存放mda_header结构用于对随后的元数据进行描述; 3) 当启用元数据的备份时,在磁盘末尾存放一份元数据的镜像; 4) 当磁盘开始位置的label_header被破坏时,根据默认的元数据区大小计算出磁 盘末尾位置的lable_header结构,用以判断磁盘是否被卷管理器使用,并根据随后的pv_ header结构计算出磁盘首尾两个元数据区的位置; 当磁盘开始的mda_header结构被破坏时,从磁盘末尾备份的mda_header读取最近一 个版本元数据的偏移位置,然后读取实际的逻辑卷元数据将卷激活。3. 根据权利要求1或2所述的一种实现逻辑卷元数据备份存储的方法,其特征在于,所 述卷标描述信息的定义如下: struct label_header { int8_t id[8] ; // id 字段存储了 LABELONE 字符串 uint64_t sector_xl; //当前结构所在的扇区,默认为1,即起始第二个扇区 uint32_t crc_xl; // 校验字段 uint32_t offset_xl; //后面pv_header结构相对此扇区起始的偏移 int8_t...

【专利技术属性】
技术研发人员:张会健
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1