内容预览:

1. Storage vMotion的迁移方式

2. 影响Storage vMotion效率的因素

3. Storage vMotion的详细流程

企业部署虚拟化后,如果发现存储的性能出现问题,或者需要对存储进行维护时,就需要进行Storage vMotion。

不同于虚拟机的vMotion,Storage vMotion迁移的是虚拟机存储的位置,而不是内存运行位置。

虚拟机在Esxi中是以文件的形式存在,Storage vMotion就是将虚拟机的文件从a存储迁移到B存储,如图所示:

Storage vMotion的源和目的存储可以是VMFS,也可以是NFS,或者2种的混合,唯一的条件是:需要Esxi能同时看到源和目的的存储。下面,我们就Storage vMotion中的流程做出详细的说明。

1. Storage vMotion的迁移方式

1.1. VAAI

VAAI全称vstorage APIs array Integrate,是vMware的一个API接口,部分厂家的存储支持该功能。Storage vMotion在迁移时实际是调用的FSDM/FS3DM的服务,该服务的默认的优先级是Hardware FS3DM>Software FS3DM>FSDM。如果存储支持VAAI,使用的就是Hardware FS3DM,它是从源存储直接拷贝到目标存储,传输走的是存储网络,Kernel级别只进行信令的验证。

VAAI由4个组件组成,此处重点说下Delete Status。该组件的作用是存储自动回收空间,比如你的虚拟机采用的是thin provision模式,当你将该虚拟机删除后,只有存储支持Delete Status时,存储才会自动回收这部分空间,不是所有支持VAAI的存储都支持该模式,可以通过命令进行查看。

1.2. VMFS

当Storage vMotion检测到存储不支持VAAI,并此时的文件系统是VMFS时,则会触发Software FS3DM的迁移,此时所有的数据会通过VMkernel完成迁移。

1.3. NFS

当Storage vMotion检测到存储不支持VAAI,并此时的文件系统是NFS时,则会触发FSDM迁移,由于NFS本身具备文件系统,所以此时的迁移是Application级别。

2. 影响Storage vMotion效率的因素

2.1.调用的服务类型,从迁移的效率来说,Hardware FS3DM>Software FS3DM>FSDM。

2.2.block size,源和目的存储的block size大小一致时效率最高,其次是源存储的block size小于目的存储的block size,最后是源存储的block size大于目的存储的block size。

2.3.文件系统类型,由上面得知,数据迁移可以发生在硬件层面,kernel层面和application层面,所以这就是为什么我们不推荐使用NFS存储或者VMFS和NFS混合存储的原因。

2.4.当然,还有网络带宽,建议至少是千兆网,有条件的话万兆网更好。

3. Storage vMotion的详细流程

无论调用哪种迁移方式,迁移的流程都是一样,以hardware FS3DM为例,虚拟机在迁移时的流程为:

3.1.需要迁移的虚拟机发出Storage vMotion请求

3.2.检测判断调用哪种迁移方式

3.3.将源数据想目标存储迁移,同时为申请迁移的虚拟机开启一个新的进程

3.4.开启mirror driver,该进程的作用是确保数据的一致性。storage vmotion是通过快照实现的,迁移开始时,会为需要迁移的数据做一个快照,将这部分的数据拷贝到目标存储上,在迁移过程中新写入的数据部分是通过mirror driver向源和目标存储同时写入,迁移完成后,mirror driver的写入部分会与拷贝部分的数据合并,确保数据的完整性。

3.5.当迁移全部完成时,会将源存储上的数据和源虚拟机进程删除掉,至此,整个迁移结束

vSphere中Storage vMotion的流程详解的更多相关文章

  1. [nRF51822] 5、 霸屏了——详解nRF51 SDK中的GPIOTE(从GPIO电平变化到产生中断事件的流程详解)

    :由于在大多数情况下GPIO的状态变化都会触发应用程序执行一些动作.为了方便nRF51官方把该流程封装成了GPIOTE,全称:The GPIO Tasks and Events (GPIOTE) . ...

  2. [ 转载 ] Java开发中的23种设计模式详解(转)

    Java开发中的23种设计模式详解(转)   设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类 ...

  3. C++的性能C#的产能?! - .Net Native 系列《二》:.NET Native开发流程详解

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  4. 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

    本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...

  5. Linux启动流程详解【转载】

    在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...

  6. git概念及工作流程详解

    git概念及工作流程详解 既然我们已经把gitlab安装完毕[当然这是非必要条件],我们就可以使用git来管理自己的项目了,前文也多多少少提及到git的基本命令,本文就先简单对比下SVN与git的区别 ...

  7. Lucene系列六:Lucene搜索详解(Lucene搜索流程详解、搜索核心API详解、基本查询详解、QueryParser详解)

    一.搜索流程详解 1. 先看一下Lucene的架构图 由图可知搜索的过程如下: 用户输入搜索的关键字.对关键字进行分词.根据分词结果去索引库里面找到对应的文章id.根据文章id找到对应的文章 2. L ...

  8. JPEG图像压缩算法流程详解

    JPEG图像压缩算法流程详解 JPEG代表Joint Photographic Experts Group(联合图像专家小组).此团队创立于1986年,1992年发布了JPEG的标准而在1994年获得 ...

  9. php中的PDO函数库详解

    PHP中的PDO函数库详解 PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,P ...

随机推荐

  1. 浅谈Java三大特性之继承

    前言 简单用伪代码去介绍一些 父类与子类的构造函数问题 others 前言 类的继承性是面向对象语言的基本特性,多态性前提是继承性.Java 支持继承性和多态性.——Java从小白到大牛 继承:三大特 ...

  2. cmd命令下载maven管理需要的依赖jar包

    首先在maven官网https://mvnrepository.com/  搜索你需要的jar包,找到下面的下载链接,在修改命令,然后cmd下载. cmd命令下载Maven需要jar包 cmd输入下面 ...

  3. WEB - JSONP

    JSON with Padding参考 https://zh.wikipedia.org/wiki/JSONP http://www.runoob.com/json/json-jsonp.html 使 ...

  4. 07 DTFT

    DTFT 连续时间傅里叶变换(CTFT) 连续时间傅里叶变换的定义为: \[ X(j\Omega)=\int_{-\infty}^{\infty}x_a(t)e^{-j\Omega t}dt \] 其 ...

  5. Python 爬取 热词并进行分类数据分析-[云图制作+数据导入]

    日期:2020.01.28 博客期:136 星期二 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入](本期博客) ...

  6. python 静态方法,类方法,类下面的函数区别

    @clssmenthod(类方法) 与 @staticmethod(静态方法) 与类下面的函数的区别: 1.@classmethod修饰的方法def name(cls)需要通过cls参数传递当前类本身 ...

  7. div display 常用属性

    none:元素不被显示. block:元素将显示为块级元素,此元素前后会带有换行符. inline:行内元素(即一个挨着一个,都在同一行按从左至右的顺序显示,不单独占一行). 参考: http://w ...

  8. SPI接口的FLASH

    SPI flash W25Qxx: W25Q系列的spiflash.每页(Page)256B,每16个page为一个sector(扇区=4KB),每16个扇区为一个block(块=64KB) W25Q ...

  9. Django问题 Did you rename .....a ForeignKey

    给新加入的字段添加一个default默认值即可,让字段非空.然后在进行makemigrations,完成操作后删除相关默认值即可.

  10. 一键设置Fluent环境变量小程序

    使用视频教程优酷播放地址: https://v.youku.com/v_show/id_XNDU2MTkwNDg5Mg==.html?spm=a2hzp.8244740.0.0 一键设置环境变量小软件 ...