FusionCompute存储虚拟化_TKE_chenf的博客-程序员宝宝_链接克隆一个母卷可以链接多个什么形成多个虚拟机磁盘

技术标签: 云计算  

存储虚拟化相关概念及技术

FC中存储的基本概念

存储资源:存储资源表示物理存储设备,例如IP-SAN、FC -SAN、NAS等
存储设备:存储设备表示存储资源中的管理单元,类似LUN、 FusionStorage存储池、NAS共享目录等
数据存储:数据存储表示虚拟化平台中可管理、操作的存储逻辑单元

FC存储虚拟化架构

在这里插入图片描述
从下往上看,SAN和本地存储等块设备连接到服务器上后,经过设备驱动层和通用块层,对主机呈现一个磁盘设备。
创建文件系统的过程,就是主机对存储设备格式化的过程。对于虚拟化来说,文件系统提供了文件级的抽象操作,虚拟机磁盘就是放在文件系统中的文件。
从上往下看,虚拟机磁盘在使用时,由磁盘驱动挂载给虚拟机,并通过QEMU管理起来。当用户执行读写操作时,前端驱动会截获并转发给QEMU进程,并转换为用户态驱动的读写操作,最后写入磁盘文件中。

VIMS虚拟集群存储文件系统

VIMS是一种高性能的集群文件系统,让多个虚拟机共同访问一个整合的集群式存储池。
VIMS可以跨越多个存储服务器实现虚拟化。(存储热迁移、DRS、HA等可以实现)

VIMS分布式锁

一个VIMS卷同时被多个CNA节点挂载,因此每个CNA节点都可以访问VIMS卷上的文件。为保证多节点读写同一文件的数据一致性,VIMS需要实现分布式文件锁。
大致原理:
例如两个节点同时需要访问VIMS卷上的文件,那么VIMS节点号较小的节点1就会成为master(资源管理者),可以对卷上的文件进行读写。节点2就会放弃去访问,直到master对该卷上的文件访问完毕后,节点2再进行访问。

VIMS心跳

在这里插入图片描述
VIMS存在两种心跳,磁盘心跳和网络心跳
磁盘心跳用于检测主机是否可以正常读写共享存储
网络心跳用于检测主机间网络通信是否正常

FC磁盘技术

存储虚拟化中,我们知道所有的用户存储都是以文件的形式呈现的。
常见的磁盘文件类型
普通磁盘:普通磁盘创建时大小与虚拟磁盘大小相同,并将文件所有位置填0,占用空间较大,置备时间较长。适用于对IOPS要求较高的场景
普通延迟置零磁盘:普通延迟置零卷创建时大小与虚拟磁盘大小相同,但不会进行填0操作,占用空间较大,置备时间较普通卷短。再首次写入前做写0操作。
精简磁盘:精简磁盘创建时大小为0,精简磁盘创建时含少量元数据信息,大小一般为几十K,创建时间均非常短。随着用户写入数据,精简磁盘的大小与实际占用空间将逐步增加。
差分磁盘:基于已有的父盘来创建,存放相对于父盘的差异数据。差分盘不能脱离父盘存在,如果父盘修改,则差分盘失效。

从数据安全性角度看
持久化-持久化磁盘即数据可以永久保存,快照中不包含该磁盘,修改信息会立刻并永久写入磁盘
非持久化-非持久化磁盘即数据不永久保存,当写入数据时,产生一个差分盘用于存放虚拟机运行过程中改写的数据。当虚拟机关机时,将差分盘中的数据删除。

存储虚拟化功能原理

快照

快照-保存虚拟机当前状态信息,包括磁盘内容、内存、寄存器数据。通常用于在执行高危操作之前。
FC支持普通快照、一致性快照(快照创建时会将虚拟机当前未保存的缓存数据先保存,再创建快照)和内存快照(快照创建时会保存虚拟机当前内存中的数据)。

快照原理

创建快照-创建快照会创建一个差分磁盘文件,该磁盘文件与源磁盘文件存放同一目录下。源磁盘文件会转为只读,新写入的数据存放在差分磁盘文件中。

回滚快照-删除差分盘文件中的数据

删除快照-系统会整合源磁盘和差分盘中的数据,形成新的磁盘文件。

链接克隆

多台不同的链接克隆虚拟机共用一个系统母盘,另外为每个虚拟机创建一个差分盘,将每个差分盘挂载给独立的虚拟机使用。通常应用于需要大量发放拥有相同数据的虚拟机,且对性能要求不高的场景。

在这里插入图片描述
链接克隆一个母卷可以链接多个差分卷形成多个虚拟机磁盘。但是对母卷性能要求高。

存储热迁移

FusionSphere当中对虚拟机磁盘提供了冷迁移和热迁移两种方案
冷迁移指在虚拟机关机状态下进行,将磁盘文件从一个存储移动到另外一个存储
热迁移指在业务不中断的情况下,进行磁盘文件的迁移。
热迁移涉及到写时重定向技术:
在目的数据存储端创建一个差分盘。虚拟机在运行过程中产生的业务数据写入到差分盘当中,而原磁盘文件变为只读模式。
同时将源卷当中的数据块以此读出并合并到目的端的差分盘当中
最后去除目的端快照对源卷的依赖,将差分盘修改为动态盘,使它可以独立运行。完成迁移。
在这里插入图片描述

存储资源裸设备映射(RDM)

RDM绕过了Hypervisor,将虚拟机下发的SCSI指令直接透传,使虚拟机可以直接操控物理设备。
适用于需要高性能存储的应用。
兼容SAN存储。
(不支持链接克隆、存储瘦分配、磁盘在线/离线扩容 、存储增量快照 、iCache 、存储热迁移、存储QoS、磁盘备份、虚拟机转为模板等)

存储扩容

FC提供虚拟卷(磁盘)扩容和数据存储扩容
对于磁盘扩容是支持现在状态下扩容的,对于普通的磁盘,会将数据区域进行扩容并做写零操作。对于普通延时置零的盘,会将数据区域扩容并预先占住空间。对于精简的盘,仅做数据区域的扩容。
对数据存储进行扩容有两种实现方式,一种是通过添加另外的物理卷到的数据存储中,另一种是通过对物理卷进行扩容然后再扩容数据存储。

数据存储扩容的原理

在扩容的时候,将新增的存储空间映射到节点的虚拟块设备上,然后完成虚拟块设备的扩容,再将新增的存储空间分段添加到文件系统当中(更新文件系统中的元数据),这样节点数据存储的扩容就完成了。
(由于虚拟块设备的信息都是保存在节点内存中,则当其它节点发现数据存储空间有变化时,则需要更新虚拟块设备信息,完成扩容虚拟块设备)
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/f791473571/article/details/104620928

智能推荐

android_驱动_qcom_【高通SDM660平台】(7) --- Camera onPreview 代码流程_专一的黄先生的博客-程序员宝宝

【高通SDM660平台】Camera onPreview 代码流程一、Camera onPreview 流程1. [ Framework ] Camera.jav...

FFmpeg 视频编码依赖包(x264)编译(iOS)_kangpp的博客-程序员宝宝

在对音频进行编码时,需要编译x264静态库。编译脚本文件在这里1、准备好脚本和x264源码2、执行编译文件 build_x264_iOS.sh命令行执行编译文件,提示我 Out of tree builds are impossible with config.h/x264_config.h in source dir.根据提示百度到的方法是:在x264文件中执行 configure...

我用 PyTorch 复现了 LeNet-5 神经网络(CIFAR10 数据集篇)!_红色石头Will的博客-程序员宝宝

大家好,我是红色石头!在上两篇文章:这可能是神经网络 LeNet-5 最详细的解释了!我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)!详细介绍了卷积神经...

漫话编程丨周末杂谈,随心所欲,放飞自我,哈哈~_漫话编程的博客-程序员宝宝

预警:作者杂谈,随心所欲,放飞自我,哈哈~其实是因为自己做了几个漫小话的新表情(自己画的哦,亲自操刀),第一时间想给大家康康~然后坐在电脑前翻翻之前的文章,诸多感慨。。。就随便想写点什么...

ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名_zhifeng687的博客-程序员宝宝

刚才在网上看到如下,  ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.oracle解析器解析的方式是怎么样的? 能说一说为什么需要把记录条数最少的表作为基础表.我已经测试了 确实 记录条数最少

随便推点

Bug中的中的小问题编程需要注意_weixin_30909575的博客-程序员宝宝

Bug中的中的小问题编程需要注意1. 关于局部变量与全局变量是否同名问题  如果参数传递的是一个数组,且全局变量与参数数据同名,则局部变量作用域中,这两个同名的数据可能会引起冲突。   如下:如果一开始是同名的数组名,在使用这个函数时,函数能够传递来,但是在数组之间复制失败????  改变形参名,后正常!!!    小结:  形参命名为: p_Name   全局变量...

apr apr-util 执行make命令时报错_p312011150的博客-程序员宝宝

关于网友提出的“apr apr-util 执行make命令时报错”问题疑问,本网通过在网上对“apr apr-util 执行make命令时报错”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:问题:apr apr-util 执行make命令时报错描述:解压完apr-util后,执行make报错,如下:[[email protected] apr-util-1.6.0]# makemake[1...

dcc32编译_aitanwu4387的博客-程序员宝宝

DCC32 参数说明它的編譯器參數如下: 选项    描述 Aunit=alias 设置单元别名 B      编译所有单元 CC     编译控制台程序 CG     编译图形界面程序 Ddefines  编译条件符号定义 Epath    可执行文件输出路径 Foffset   查找运行期间错误 GD     生成完整.Map文件 GP     生成.Map文件Public段 GS ...

PCL RANSAC实现点云粗配准(无需特征描述子)_点云侠的博客-程序员宝宝_pcl点云粗配

RANSAC直接实现点云粗配准,无需FPFH、PFH等特征描述子,算法效率较高。

从 MVC 到使用 ASP.NET Core 6.0 的Minimal API_溪源More的博客-程序员宝宝

从 MVC 到使用 ASP.NET Core 6.0 的Minimal APIhttps://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/...

Maven中Junit测试@Test等注解无法识别的解决方案_笔画之的博客-程序员宝宝[email protected]不识别

其实这个问题一般是出在maven的jar包下载不全所导致的解决的方法是:将文件夹里面的东西全部清空,然后在更新一下maven项目。重新下载jar包,就可以识别出@Test等等的注解。但前提你要在maven中配置远程中央仓库,我配置的阿里云的远程仓库注解无法识别的问题一般就可以解决。这个是我在开发中经常遇到的问题,如果是注解、类无法识别的问题,那有可能是maven仓库中jar包下载不全。那...

推荐文章

热门文章

相关标签