华为FusionSphere 6.5.0虚拟化套件存储虚拟化技术白皮书目录1简介/Introduction (3)2解决方案/Solution (4)2.1 FusionSphere 存储虚拟化解决方案 (4)2.1.1架构描述 (4)2.1.2特点描述 (5)2.2存储虚拟化的磁盘文件解决方案 (6)2.2.1厚置备磁盘技术 (6)2.2.2厚置备延时置零磁盘技术 (6)2.2.3精简置备磁盘技术 (6)2.2.4差分磁盘技术 (7)2.3存储虚拟化的业务管理解决方案 (7)2.3.1磁盘文件的写时重定向技术 (7)2.3.2磁盘文件的存储热迁移 (8)2.3.3磁盘文件高级业务 (8)2.4存储虚拟化的数据存储扩容解决方案 (9)2.4.1功能设计原理 (9)2.5存储虚拟化的数据存储修复解决方案 (10)2.5.1功能设计原理 (10)1 简介/Introduction存储设备的能力、接口协议等差异性很大,存储虚拟化技术可以将不同存储设备进行格式化,将各种存储资源转化为统一管理的数据存储资源,可以用来存储虚拟机磁盘、虚拟机配置信息、快照等信息。
用户对存储的管理更加同质化。
虚拟机磁盘、快照等内存均以文件的形式存放在数据存储上,所有业务操作均可以转化成对文件的操作,操作更加直观、便捷。
基于存储虚拟化平台提供的众多存储业务,可以提高存储利用率,更好的可靠性、可维护性、可以带来更好的业务体验和用户价值。
华为提供基于主机的存储虚拟化功能,用户不需要再关注存储设备的类型和能力。
存储虚拟化可以将存储设备进行抽象,以逻辑资源的方式呈现,统一提供全面的存储服务。
可以在不同的存储形态,设备类型之间提供统一的功能。
2 解决方案/Solution2.1 FusionSphere 存储虚拟化解决方案FusionSphere存储虚拟化平台能够屏蔽存储设备差异,统一封装为文件级操作接口,并在虚拟化层提供了丰富的存储业务功能。
2.1.1 架构描述FusionSphere提出如下存储虚拟化架构:图2-1存储虚拟化平台架构图FusionSphere存储虚拟化平台主要由文件系统、磁盘驱动和磁盘工具组成。
SAN设备和本地磁盘等块设备连接到服务器上后,经过设备驱动层和通用块层后,对主机呈现一个磁盘设备。
文件系统建立在主机能够访问的存储设备上,创建文件系统的过程就是主机对存储设备执行格式化,在存储设备上写入文件系统的元数据和inode信息,建立文件到裸设备块的映射,并负责裸设备块的管理,包括空间分配和释放。
对于虚拟化来说,文件系统屏蔽了块层的操作,提供了文件级的抽象操作。
虚拟机磁盘就是放在文件系统中的文件。
虚拟机磁盘在使用时,需要由磁盘驱动挂载给虚拟机,并通过QEMU管理起来,用户虚拟机的所有读写IO都会由前端驱动截获,转发给QEMU进程,并转换为用户态驱动的读写操作,最终写入磁盘文件中。
虚拟机磁盘中包含了属性信息和数据区域,磁盘工具提供了一系列对虚拟机磁盘的操作,可以解析磁盘文件的文件头,读取或修改磁盘的属性信息,创建磁盘的数据区等操作。
2.1.2 特点描述FusionSphere 存储虚拟化技术定位于构建针对电信业务环境的高竞争力的虚拟化平台,通过对开源kvm进行安全加固、功能扩展、性能优化和可靠性保障,具备如下特点:●存储设备兼容性对于不同的存储设备,包括IPSAN、FCSAN、NAS、本地磁盘。
可以做到以文件系统进行屏蔽,统一提供文件级别的业务操作。
●丰富的功能提供了包括精简置备磁盘、增量快照、存储冷热迁移、链接克隆虚拟机、虚拟机磁盘扩容等众多功能。
●业务能力同质化业务是在虚拟化层进行,基于各种存储设备可以提供相同的能力,对存储设备无特殊要求。
2.2 存储虚拟化的磁盘文件解决方案在存储虚拟化中,所有用户存储都是以文件形式呈现,虚拟机磁盘、快照、虚拟机配置都对应一个独立的文件,常见的磁盘文件分为厚置备磁盘、厚置备延时置零磁盘、精简置备磁盘、差分磁盘这几种技术。
2.2.1 厚置备磁盘技术厚置备磁盘创建时大小与虚拟磁盘大小相同,并将文件所有位置填0,占用空间较大,置备时间较长。
该磁盘用于FusionSphere系统中的普通磁盘。
普通磁盘使用厚置备磁盘技术,创建时会进行全空间分配和置零操作,能够提供最好的性能体验和数据安全性。
适用于对IOPS要求较高的场景。
该磁盘创建所需时间会比创建其他类型的磁盘长。
2.2.2 厚置备延时置零磁盘技术厚置备延迟置零卷创建时大小与虚拟磁盘大小相同,但不会进行填0操作,占用空间较大,置备时间较厚置备卷短。
该磁盘用于FusionSphere系统中的普通延迟置零磁盘,可以提高存储设备的利用率。
普通延迟置零磁盘创建很快,创建时进行全空间分配,但未进行全置零动作,性能较普通磁盘有所下降。
适用于对发放速度要求高,但对IOPS要求不高的场景。
2.2.3 精简置备磁盘技术精简置备卷创建时大小为0,精简置备卷创建时含少量元数据信息,大小一般为几十K,创建时间均非常短。
随着用户写入数据,精简置备卷的大小与实际占用空间将逐步增加。
该磁盘用于FusionSphere系统中的精简磁盘,可以提高存储设备的利用率。
精简磁盘使用动态磁盘技术,可以节省存储空间。
该磁盘在创建时不进行空间分配,而是在用户IO写入磁盘文件时才进行空间动态分配,性能较普通磁盘有所下降。
适用于用户对存储需求不明确,或是规划的容量比实际使用的容量多的场景。
2.2.4 差分磁盘技术差分磁盘必须基于一个已有的父磁盘来创建,它只记录相对于父磁盘的差异数据,包括数据的增改,差分磁盘不能脱离父磁盘而存在,如果父磁盘进行了修改,则差分磁盘的数据将不再可用。
对差分磁盘进行读操作,会首先读取差分磁盘中的数据区域,如果不存在,则表示该数据区域未被修改,则通过文件头的索引找到父磁盘,在对该区域进行读取。
对差分磁盘进行写操作时,则直接写在差分磁盘上。
差分磁盘的结构和动态磁盘完全一致,文件头中会记录父磁盘的路径,数据区只记录和父磁盘差异数据,大小也会随着数据的写入而自动增长。
该磁盘用于FusionSphere系统中的快照、非持久化磁盘、链接克隆等功能,起到保护源盘不再被修改,并可以跟踪虚拟机磁盘差异数据的作用。
差分磁盘的大部分应用需要结合下一章的写时重定向技术使用。
2.3 存储虚拟化的业务管理解决方案2.3.1 磁盘文件的写时重定向技术FusionSphere的存储虚拟化具备写时重定向技术(Redirect on Write),能够在虚拟机磁盘文件被修改时,可以不修改原磁盘文件,而是将修改区域记录在另一个差分磁盘中,将差分磁盘的父磁盘指向原磁盘文件,使得虚拟机在从差分磁盘文件中读取数据时,能够自动从原磁盘文件中获得需要的数据。
写时重定向技术可以应用于快照、链接克隆、非持久化磁盘等特性。
快照特性:虚拟机可以将当前状态保存在快照文件中,包括磁盘内容、内存和寄存器数据。
用户可以通过恢复快照多次回到这一状态,虚拟机用户在执行一些重大、高危操作前,例如系统补丁,升级,破坏性测试前执行快照,可以用于故障时的快速还原。
链接克隆:链接克隆虚拟机可以基于同一个虚拟机模板,快速发放多个类似的虚拟机。
通过对虚拟机模板的系统卷创建多个差分磁盘,将每个差分磁盘挂载给独立的虚拟机。
应用于需要大量发放拥有相同或类似数据的虚拟机,且对性能要求不高。
链接克隆加速:在链接克隆场景下,将若干链接克隆虚拟机的共同模板中的热点数据放在主机内存中,达到快速读取的目的,能够极大提升虚拟机的启动和运行速度。
非持久化磁盘:处于保护磁盘数据的目的,在启动虚拟机时,对这种非持久化磁盘先创建差分磁盘,在虚拟机运行过程中,将有更改的数据全部写入差分磁盘,在虚拟机关机后,将差分磁盘删除,达到还原磁盘的目的。
应用于公共计算机、计算机数据自动还原的场景。
2.3.2 磁盘文件的存储热迁移FusionSphere提供了虚拟机磁盘的冷迁移和热迁移,冷迁移是在虚拟机关机时候,将其磁盘文件从一个存储移动到另一个存储,热迁移可以在不中断业务的前提下,将虚拟机磁盘从一个存储迁移至另一个存储。
热迁移的技术原理如下:1.热迁移首先使用写时重定向,将虚拟机数据写入目的存储的一个差异磁盘,这样,原磁盘文件就变成只读的。
2.将源卷的所有的数据块依次读取出来并合并到目标端的差异磁盘中,等数据合并完成后,目的端的差分磁盘就拥有虚拟磁盘的所有最新数据。
3.去除目的端快照对源卷的依赖,将差分磁盘修改为动态磁盘,这样,目的端磁盘文件可以独立运行。
2.3.3 磁盘文件高级业务FusionSphere提供了虚拟机磁盘的高级业务,可以在提供磁盘文件的扩容功能,技术原理如下:磁盘扩容:在离线或在线状态下支持对磁盘的容量扩充,对于厚置备磁盘,会将数据区域进行扩充,并进行写零。
对于厚置备延时置零磁盘,会将数据区域进行扩容,并进行空间预占。
对于精简磁盘,仅对数据区域进行扩容。
2.4 存储虚拟化的数据存储扩容解决方案2.4.1 功能设计原理数据存储扩容使得一个数据存储可以管理多个物理LUN空间,当需要扩容数据存储时,可以通过添加另外的物理LUN至数据存储或者对物理LUN进行扩容再扩容数据存储,从而实现对数据存储灵活地进行空间扩容,有效提高数据存储扩展性。
当需要扩容时,先在主节点上将新增的存储空间以线性映射的方式追加至虚拟块设备末尾,完成虚拟块设备的扩容后,再将新增的存储空间分成数段逐渐增加至文件系统(更新文件系统中的元数据),主节点完成数据存储的扩容。
由于虚拟块设备的信息都是保存在节点内存中,则当其它节点发现数据存储空间有变化时,则需要更新虚拟块设备信息,完成扩容虚拟块设备。
如下图所示:2.5 存储虚拟化的数据存储修复解决方案2.5.1 功能设计原理数据存储修复支持在数据存储故障时进行修复。
数据存储故障时,为防止数据存储遭到进一步的破坏,系统侧会拒绝掉大部分的业务操作,只允许管理员进行关闭虚拟机和解关联数据存储操作,同时会上报告警,并允许管理员进行修复操作。
数据存储在修复过程中,无须关闭虚拟机,在整个修复过程中系统会将虚拟机进行挂起,然后再进行修复操作。
由于数据存储只读主要发生在磁盘元数据被破坏的场景,所以在修复过程中会优先采用文件系统的自修复能力进行修复,如果修复不成功会采用最近一次成功备份的元数据进行修复,此时会将数据存储的元数据恢复到备份时刻点,可能造成部分虚拟机无法恢复。
针对数据存储中较为重要的数据,FusionSphere 提供另外一种只读挂载方式,在这种方式下管理员可以先将数据拷贝到其他存储介质中,然后再对数据存储进行修复。
LUN1LUN2 LUN3A’ DM node A node Bnode CB’ DM C’ DMVIMS DM 即为DeviceMapper 虚拟块设备。