夏红燕
摘要:根据信息网存储容灾系统体系结构和数据容灾模型需求,研究现有容灾技术应用模式和问题,总结所面临的数据容灾关键技术难点。在此基础上,基于存储虚拟化关键技术,研究改进网络层带内存储虚拟化的工作机制,通过构造智能虚拟化模型,构建实现一种具有一定实用性和可用性的多级和分布式数据容灾机制。
关键词:数据容灾;存储虚拟化;智能虚拟化模型;分布式数据容灾
中图分类号:TP393 文献标识码: A 文章编号:1009-3044(2018)12-0036-04
Abstract: According to the system architecture of disaster tolerance for information network, the thesis analyzes four model requirements of data disaster tolerance in system construction, studies the current application modes and corresponding problems, and then summarizes two key technical difficulties of data disaster tolerance for multi-level sites and distributed sites. Based on the key technology of Storage Virtualization, the thesis proposes the improved working mechanism of the in-band storage virtualization in the network layer, and then implements a sort of practical and applicable data disaster tolerance mechanism for multi-level sites and distributed sites by constructing the Intelligent Storage Virtualization model.
Key words: data disaster tolerance; storage virtualization; intelligent storage virtualization model; distributed data disaster tolerance
隨着大型存储系统的广泛应用,对存储虚拟化(Storage Virtualization)的需求也日益强烈[1,2]。存储虚拟化是为了对不同体系结构存储子系统、以及异构存储设备实现统一的管理,从而为上层应用提供单一视图的存储资源。正是由于具备统一管理的特性,存储虚拟化技术成为各容灾厂商和研究机构争相研究开发的重点,因为统一管理就意味着能够取得存储资源,包括物理和逻辑的控制权,而控制权正是容灾应用的关键所在。文章主要基于存储虚拟化研究,通过构造智能虚拟化模型来实现满足某信息网存储容灾需求的多级和分布式数据容灾机制。
1存储虚拟化技术概述
SNIA(Storage Network Industry Association,全球网络存储工业协会)对存储虚拟化[2]的定义是:1)从应用程序、计算机服务器或者普通网络资源中提取、隐藏或者分离存储系统或者服务的内部功能的行为,其目的是使应用程序和网络与存储或者数据的管理相互独立。2)存储服务或者设备的虚拟化应用,其目的是集中、隐藏复杂性或者为低级存储资源添加新功能。
依据SNIA的观点,从实现的对象来看,可以创建于数据块级、磁盘、磁带、磁带驱动器和磁带库级、文件系统级、以及文件/记录级等虚拟化;从实现的层次来看,可以位于主机/服务器端、网络架构中以及存储设备/子系统里;从技术实现的方法来看,包括带内虚拟化和带外虚拟化两种。
根据存储虚拟化在存储系统体系结构中实现的层次,如图1所示,存储虚拟化可以划分为三类:基于主机层的虚拟化、基于存储层的虚拟化和基于网络层的虚拟化[3~5]。
这三种虚拟化方式各有特点,其中以基于主机层的虚拟化实现最为简单,但应用范围较窄;基于存储层的虚拟化则缺乏统一的业界标准;基于网络层的虚拟化是目前拥有了基于通用标准[6](即FAIS,Fabric Application Interface Standard,光纤架构应用界面标准)的API倡议或API项目的虚拟化技术。三种技术详细对比如表1所示。
文章重点对基于网络层的虚拟化技术进行研究分析。
2网络层带内存储虚拟化
在网络层带内存储虚拟化方式下,由于数据和控制信息共用一条通道传输,相对带外方式而言实现较容易。
2.1 工作机制
网络层带内存储虚拟化从技术实现上可以划分为两个层面[6,7]:一个是对物理存储空间的管理,它描述了底层物理数据块在虚拟存储空间中的组织;另一个是对虚拟存储空间的管理,它描述了虚拟数据卷中数据块的组织。抽象数据结构[8]可以清晰地描述物理存储空间和虚拟存储空间之间的关系。下面以例子的形式说明网络层带内存储虚拟化的工作机制。
如图2所示,假设对一块容量为100MB的物理数据卷PDL(Physical Data LUN)进行虚拟化管理,其中用于索引物理数据块PDB(Physical Data Block)的物理块索引PBI(Physical Block Index)为1MB,虚拟化管理通过创建一个虚拟头文件VH(Virtual Header)与PBI建立映射关系,实现虚拟数据卷VDL(Virtual Data LUN)与实际物理数据卷PDL的对应,其中虚拟头文件VH 2MB大小的存储容量取自原有100MB的物理数据卷PDL,剩余98MB用来供上层文件系统存储业务数据。另外,通过存储虚拟化的管理,虚拟头文件VH取得了物理数据块PDB的控制权,能够实现多路控制:一方面可分配给上层文件系统用来数据存储;另一方面也可附加镜像、复制等模块用来实现数据容灾。
2.2 分布式数据容灾应用分析
基于存储虚拟化的分布式数据容灾实现原理如图3所示,首先由源站点根据目标站点数量采用循环再分配的方式创建多重虚拟头文件VVHS1~VVHSn;然后由目标站点将容灾卷VDLD1~VDLDn分配给源站点,在源站点创建虚拟头文件VVHS1~VVHSn后,分别与本地数据卷采用复制技术建立容灾关系,从而实现了源站点内小于等于98MB数据卷VDLS至各目标站点内100MB容灾卷VDLD1~VDLDn的分布式容灾保护。
由图3可知,该实现方式首先带来与多级数据容灾相同的问题,即当源站点发生灾难后,各目标站点无法直接从本地存储空间中将容灾的业务数据读取出来,而是需要重新开设源站点并进行虚拟化操作来获取容灾数据,从而大大增加了系统的复杂度和恢复风险;其次,为了与各站点建立复制关系,源站点数据卷需要进行多次虚拟化操作来创建相应的虚拟头文件,这就需要数据卷在初始化时就创建好多重虚拟头文件,从而大大降低了系统的灵活度,因此基于存储虚拟化的分布式数据容灾存在一定的局限性,实用性和可用性不强。
3分布式数据容灾机制设计与实现
基于智能虚拟化的分布式数据容灾实现原理如图4所示,首先由源站点根据目标站点数量n采用循环再分配方式为数据卷VDLS创建多重虚拟头文件VVHS1~VVHSn,存储容量均取自专用的虚拟头文件存储池VHSPS;然后由各目标站点将容灾卷VDLD1~VDLDn分配给源站点,在源站点通过智能虚拟化从专用虚拟头文件存储池VHSPS中创建虚拟头文件VVHS1~VVHSn后,分别与本地数据卷采用复制技术建立容灾关系,从而实现了源站点内100MB数据卷VDLS至各目标站点内100MB容灾卷VDLD1~VDLDn的分布式容灾保护。
具体基于智能虚拟化的分布式数据容灾在某信息网存储容灾系统建立中的应用模式如图5所示,各站点部署网络层带内存储虚拟化管理系统,通过对容灾卷的智能虚拟化管理,采用异步复制技术构建分布式数据容灾机制,有效解决现有容灾技术分布式应用的各种问题:
(1)对于管理复杂问题,通过部署虚拟化管理系统来统一实现本地、点对点、多级和分布式等容灾需求,简化了系统的复杂度,使得维护人员仅需掌握单一的操作规程,因此不存在管理复杂问题;
(2)对于应用局限问题,通过虚拟化管理的多路控制,源二级容灾备份中心可以根据容灾需要循环创建虚拟头文件,数量不受任何限制,可以任意增加或者删减,因此也不存在应用局限问题。
4分布式数据容灾优化
由于各二级容灾备份中心之间进行容灾数据的完整复制,对于数据量大而且机密性高的分布式容灾应用来说,既增加了存储空间占用率,又带来了数据安全性隐患。针对这个问题,文章重点研究(n,m)数据分散算法,通过构造数据分散模型进行容灾数据的片段拆分容灾和片段整合恢复,片段数据将有效减少存储空间占用率,同时片段数据的不可用也增强了数据的安全性,从而实现分布式数据容灾机制的优化。文章采用高效的前向纠错码RS编码技术来实现(n,m)数据分散算法。
4.1 算法实现
基于RS编码技术的(n,m)数据分散算法实现原理如图6所示,将需要分布式容灾的数据卷D以数据块为单位等分为容量大小为m的片断数据(假设数据卷容量大小N为|D|,则片断数据份数N为N/m),与IDA编码不同,RS编码通过(n-m)[×]m阶线性独立的范德蒙德矩阵计算每份片断数据的校验数据,然后与原始数据按照类似于RAID 6校验数据左对齐方式共同构成n份片断数据,其容量大小为N。
基于RS编码的(n,m)数据分散算法描述如下:
首先,与IDA编码类似,设数据卷D=[b1],[b2],…,[bN]由一串数据块组成,其中数据块[bi]可以看作一个整数,且[bi∈][0,…,B],取最小的大于B的素数p作为该数据卷中字符运算的模,则D可以看作是经过模p运算的数组成的集合,也就是有限域[Ζp]中的数组成的集合。
4.2 仿真对比
本文使用Matlab语言编写程序来进行(n,m)数据分散算法的软件仿真,并通过将RS编码与IDA编码比较,为算法的编码方式选择提供科学依据。
4.2.1 数据拆分
基于两种编码技术的(n,m)数据分散算法仿真程序分别对同一个容量大小为1MB的文件进行数据拆分,固定m为3,n从5依次增加到15,该实验重复10次取平均值(以下实验类同),获得两种编码技术数据拆分的时间开销如图7所示。分析可知,随着n的增加,IDA和RS编码时间开销均线性增加,说明两种编码方式的计算复杂度都是线性的,在n相同的情况下,RS编码比IDA编码多耗时5ms左右,说明RS编码效率高于IDA编码。
4.2.2 数据整合
对上述第二种数据拆分实验进行对应的数据整合实验,随机丢弃2份片段数据后对剩余m份片段数据进行整合,通过测试获得两种编码技术数据整合的时间开销如图8所示。分析可知,在n、m和故障片段数据相同的情况下,兩种编码的译码时间开销基本相同,但是随着n和m的增加,RS编码的译码效率略高于IDA编码。
5 结束语
存储虚拟化作为存储容灾系统建立的基础,是当前各容灾厂商和研究机构争相研究开发的热点,其通过对存储资源统一管理实现多路控制的技术原理,可以用来构建多级和分布式数据容灾机制。文章提出基于存储虚拟化关键技术实现分布式数据容灾的设计思路,重点研究网络层带内存储虚拟化技术的工作机制和应用模式,分析出该模式在实际应用中存在的局限性,在此基础上,利用网络层带内存储虚拟化技术,通过改进虚拟化管理的数据组织关系来构建智能虚拟化模型,并通过智能虚拟化管理构建实现了分布式数据容灾机制。
参考文献:
[1] 韩德志.云环境下的数据存储安全问题探析[J].通信学报,2011,32(9A):153-157.
[2] Chen Jincui, Jiang Liqun. Role-based access control model of cloud computing[C]. 2011 International Conference on Energy Systems and Electrical Power, ESEP 2011. Singapore: Elsevier Ltd, Langford Lane, 2011: 1056-1061.
[3] 全球网络存储工业协会.网络存储双语词典[M].北京:中国科学技术出版社,2004(15):207,217,223.
[4] Dally W J, Towles B P. Principles and Practices of Interconnection Networks[J]. Macromolecular Materials & Engineering, 2014, 299(6): 707-721.
[5] 胡国忠,刘雪芹,王国成.分布式HSS容灾组网分析[J]. 通信电源技术,2016,33(02):138-139.
[6] 付江,程永新.基于天基信息基础设施的数据容灾设想[J].通信技术,2016,49(11):1503-1508.
[7] 冀鸣,朱江,曹雄,等.基于云计算的存储虚拟化技术研究[J].网络安全技术与应用,2017(03):84-86.
[8] 朱康林.分布式虚拟化存储在公安专科类学校中的应用[J]. 计算机科学,2016,43(6A):571-576.