内容预览:

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. redhat 7.6 流量监控命令、软件(3)nethogs 监控进程实时流量

    1.解压nethogs tar -zxvpf nethogs_0.8.5.orig.tar.gz 2.直接make,这里报错,提示pcap.h,安装libpcap就可以了 3.如果已经安装,还是报错, ...

  2. sql server alter column identity

    上网找 alter column identity 语句,将表中的一个字段调整成自动新增.发现没有. 跟踪了一下sql server 执行这一动作的语句,发现是新建了新表,将字段修改成自动新增,然后将 ...

  3. Vue系列(六)之常用指令v-model

    v-model 基本使用 修饰符 .trim .number .lazy 前面讲到的插值,其实都是单向绑定,数据变-->视图变.有些元素可以与用户交互,比如input,select等,那么我们希 ...

  4. Python 爬取 热词并进行分类数据分析-[热词关系图+报告生成]

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

  5. 2.2 logistic回归

    logistic回归,是一个学习算法,用在监督学习问题中, 输出标签y是0或者1的时候,这是一个二元分类问题, 给定一个输入x,一张图,你希望识别出这是不是猫图, 需要一个算法,可以给出一个预测值,我 ...

  6. 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed

    解密加密源码 using System; using System.Security.Cryptography; using System.Text; namespace Wechat { publi ...

  7. PAT T1012 Greedy Snake

    直接暴力枚举,注意每次深搜完状态的还原~ #include<bits/stdc++.h> using namespace std; ; int visit[maxn][maxn]; int ...

  8. 15 JavaScript弹窗(警告框alert、确认框confirm、提示框Promt)

    警告框:window.alert().通常用于确认用户可以得到某些信息 <body> <script type="text/javascript" charset ...

  9. c数据结构链式存储

    #include "stdafx.h" #include "stdio.h" #include "string.h" #include &q ...

  10. C++查找指定路径下的特定类型的文件

    转载:https://www.cnblogs.com/tinaluo/p/6824674.html 例子:找到C盘中所有后缀为exe的文件(不包括文件夹下的exe文件) #include<std ...