vSphere基础物理架构中存储是一个非常关键的部分,没有好的存储,虚拟化也就没有存在的必要。且它能够决定其系统性能的高低和如vMotion等高级功能能否实现。

使用vMotion实现虚拟机热迁移,必须要了解的知识点:

ESXi存储: ESXi提供主机级别的存储器虚拟化,分为本地存储和外部共享存储。他们主要用于存储虚拟机文件,比如常见的vmdk、vmx和nvram文件,虚拟机系统内的文件则存放在虚拟磁盘vmdk上。

本地存储 :不需要通过网络即可进行通信的内部磁盘或外部磁盘,包括SCSI、IDE、SATA、USB和SAS等存储系统 ;不支持在多ESXi主机之间共享 。
外部共享存储: 是ESXi主机通过网络连接的外部存储磁盘或阵列,包括:
SAN(存储区域网络):部署较复杂,但是性能强大;
iSCSI(网络附加存储):将存储附加在现有的网络上,部署简单,但是性能较差;
NFS(网络存储协议)
等存储协议,可以由多个ESXi主机共享。

Openfiler是一个免费的NAS/ISCSI的SAN服务器系统,主要用于为LAN主机提供对立存储系统。openfiler提供了包括nfs、smb、iscsi、target等多种连接方式,一般通过http的方式进行管理。如果要访问openfiler上的数据,可以通过iscsi initiator、共享文件夹以及挂载等方式实现。对于希望搭建虚拟化的中小型企业而言,是Provision阶段最好的工具。

vMotion是所有vshpere高级功能的基础,可实现热迁移,即将虚拟机在不关闭电源的情况下从一台esxi主机实时迁移到另一台esxi主机,从而可以更加方便的维护、减少故障等。

vMotion的迁移过程(如果迁移期间出错,虚拟机将恢复到原始状态和位置)如下:
①请求vmotion迁移时,vcenter server会验证虚拟机与esxi主机状态是否稳定;
②此时,源esxi主机将虚拟机内存克隆到新的esxi主机;
③源esxi主机将克隆期间发生改变的内存信息记录在位图(memory bitmap)上;
④当虚拟机内存数据迁移到新esxi主机后,源esxi主机会使虚拟机处于静止状态,此时虚拟机无法提供服务,然后再将memory bitmap克隆到新的esxi主机。禁止状态所需要的时间极为短暂
⑤新esxi再根据memory bitmap恢复内存数据,完成后两台esxi主机对于这台虚拟机的内存就完全一致;
⑥最后在新esxi主机运行该虚拟机,并在源esxi主机中删除内存数据。
运行vmotion的兼容性要求如下:
①不允许连接只能单台esxi主机才能识别的设备如光驱、软盘;
②不允许连接没有物理网络的虚拟交换机;
③迁移的虚拟机必须存放在外部共享存储,并且所有esxi主机均可访问;
④esxi主机至少1块千兆网卡用于vmotion;
⑤如果标准交换使用机,必须确保所有esxi主机的端口组网络标签一致;
⑥所有esxi主机使用的cpu供应商必须一致(Intel或AMD)。

实验环境如下:
vSphere使用vMotion实现虚拟机热迁移

首先安装Openfiler
安装openfiler,可以通过http://www.openfiler.com/ 官网下载openfiler的ISO镜像,也可以通过
链接:https://pan.baidu.com/s/1KFVDIbk1tRE-9EbfAGRJpw
提取码:lyz6

来获取Openfiler系统镜像。
安装过程:
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
默认用户名是root,密码在安装过程中会提示设置,Openfiler本身就是一个相当完整的Linux操作系统,大部分命令跟Linux相同。
安装完成!

Openfiler系统配置ISCSI
当Openfiler系统安装并重启完成后,系统将所有后续的配置过程都是通过Web方式配置完成的。
vSphere使用vMotion实现虚拟机热迁移
用户名为Openfiler,密码为password
vSphere使用vMotion实现虚拟机热迁移
看到系统的各种初始化信息。
接下来:
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
显示系统挂载的硬盘信息
vSphere使用vMotion实现虚拟机热迁移
进入磁盘编辑页面,可以看到已经分配的磁盘分区信息
vSphere使用vMotion实现虚拟机热迁移
创建卷组
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
创建ISCSI卷
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
启动相应的服务
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
Openfiler 配置完毕!

创建所需的端口组
关于创建端口组的详细步骤可以参考博文:https://blog.51cto.com/14157628/2409254
想要实现vMotion只有一个用于vMotion的端口组还不够,还需要再创建一个ISCSI端口组,用于连接共享存储。
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vMotion端口组已创建完成!
按照同样的方式创建爱你一个iSCSI端口组
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
另一台ESXi主机也创建相同的网络端口组(名称必须一样)

连接共享存储
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
另一台ESXi主机上也是同样的配置!

创建新的共享存储
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
没有截图的保持默认即可!

vMotion迁移虚拟机
在导航栏单击“vCenter”→“主机和群集”就可以看到有一台 虚拟机
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
完成后虚拟机的磁盘文件就已经迁移到共享存储中。
为了更好地观察到vMotion的效果,先将虚拟机电源打开,通过ping命令测试与虚拟机的连通性(一直ping)
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
vSphere使用vMotion实现虚拟机热迁移
迁移过程中会出现延迟、丢包等现象,但不会断开连接,迁移完成后就恢复正常
vSphere使用vMotion实现虚拟机热迁移
vMotion热迁移操作完成!