若要实现热迁移,那么外部共享存储服务器便是必不可少的,因为必须要保证源ESXi主机和目标ESXi主机都可访问虚拟机文件,所以在热迁移之前必须把虚拟机配置文件都迁移到外部共享存储之上。

说到外部共享就自然想到了openfiler,openfiler是一个免费的NAS/ISCSI的SAN服务器系统,主要用于为LAN主机提供独立存储系统,openfiler提供了包括NFS、SMB、ISCSI、target等多种连接方式,一般通过http的方式管理,它对于希望搭建虚拟化的中小型企业而言,是provisiong阶段最好的工具。

vMotion是所有vSPhere高级功能的基础,可实现热迁移。

vMotion的迁移过程(如果迁移期间出错,虚拟机将恢复原始状态和位置):

  1. 请求vMotion迁移时,vCenter server会验证虚拟机与ESXi主机状态是否稳定;
  2. 此时,源ESXi主机将虚拟机内存克隆到新ESXi主机;
  3. 源ESXi主机将克隆期间发生改变的内存信息记录在内存对应图上(也有人成为心电图);
  4. 当虚拟机内存数据迁移到新ESXi主机后,源ESXi主机会使虚拟机处于静止状态,此时虚拟机无法提供服务(仅仅一两秒钟而已),然后将内存对应图克隆到新ESXi主机。静止状态所需要的时间极为短暂;
  5. 新ESXi再根据内存对应图恢复内存数据,完成后两台ESXi主机对于这台虚拟机的内存就完全一致;
  6. 最后在新ESXi主机运行该虚拟机,并在源ESXi主机中删除内存数据(自动删除,无需操作)

运行vMotion的兼容性要求:

  • 不允许连接只能单台ESXi主机才能识别的设备,如光驱、软驱等。
  • 不允许连接没有物理网络的虚拟交换机。
  • 迁移的虚拟机必须存放在外部共享存储,且所有的ESXi主机均可访问。
  • ESXi主机至少有1块千兆网卡用于vMotion。
  • 如果使用标准交换机,必须确保所有ESXi主机的端口组网络标签一致。
  • 所有ESXi主机使用的CPU供应商必须一致(Intel或AMD)

迁移虚拟机的具体操作过程:

拓扑图如下所示:

vSPhere使用vMotion实现虚拟机热迁移详解

现在在ESXi 01主机上有一台centos 7,ip为192.168.1.6,我们在不中断服务的情况下迁移到ESXi 02。

一、安装openfiler,可以通过 http://www.openfiler.com/ 下载openfiler的ISO镜像。openfiler的安装步骤如下:

1、挂载ISO镜像,开机(建议现在不要连接除系统盘以外的硬盘,要不然就麻烦),出现以下界面按“enter”,等待加载:

vSPhere使用vMotion实现虚拟机热迁移详解

2、单击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

3、选择键盘类型,默认为美国英语。保持默认,点击下一步即可:

vSPhere使用vMotion实现虚拟机热迁移详解

4、提示是否要初始化硬盘,选择“yes”:

vSPhere使用vMotion实现虚拟机热迁移详解

5、在选择磁盘分区时保持默认,单击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

6、单击“yes”:

vSPhere使用vMotion实现虚拟机热迁移详解

7、点击“edit”,编辑网卡信息,设置完网卡信息后单击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

vSPhere使用vMotion实现虚拟机热迁移详解

vSPhere使用vMotion实现虚拟机热迁移详解

8、设置相应的时区后,单击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

9、设置root密码,然后单击“下一步”,直至安装:

vSPhere使用vMotion实现虚拟机热迁移详解

10、安装完成:

vSPhere使用vMotion实现虚拟机热迁移详解

11、至此就完成了,剩下的管理工作通过https即可(现在要把用来存储数据的硬盘挂载上了,并保证系统检测到新挂载的磁盘,openfiler这个系统与Linux操作系统大同小异),管理地址如下所示:

vSPhere使用vMotion实现虚拟机热迁移详解

二、openfiler系统配置iSCSI

1、登录存储服务器管理页面:

vSPhere使用vMotion实现虚拟机热迁移详解

2、使用系统初始默认的用户名和密码进行登录,默认用户名为:openfiler;密码为:password。系统初始用户名和密码可以在第一次登陆后进行重新设置:

vSPhere使用vMotion实现虚拟机热迁移详解

3、登录后的界面如下,显示了当前系统的各种初始化配置信息:

vSPhere使用vMotion实现虚拟机热迁移详解

4、在系统菜单“system”下,可以检查当前系统的ip地址等网络信息设置情况,如果想要重新设置网络信息,可以单击“configure”链接对系统网络进行重新配置,如下所示:

vSPhere使用vMotion实现虚拟机热迁移详解

5、在系统菜单“system”下的“Network Access configuration”区域,配置允许访问openfiler系统的安全访问控制列表,只有加入openfiler的访问控制列表中的网络或主机地址,才允许访问openfiler系统所提供的虚拟存储服务。在网络访问控制列表中,既可以添加网段,也可以添加单个主机地址,如下:

vSPhere使用vMotion实现虚拟机热迁移详解

6、接下来需要做的,和在Linux系统中创建LVM卷原理一样,先创建物理卷,再创建卷组,最后创建lvm,首先按照下图所示,创建物理卷:

vSPhere使用vMotion实现虚拟机热迁移详解

7、进入磁盘编辑页面后,往下拉,可以看到已经分配的磁盘分区信息,按照下图的默认选项,单击“create”,完成创建物理卷:

vSPhere使用vMotion实现虚拟机热迁移详解

8、按照下图,进入创建卷组的界面:

vSPhere使用vMotion实现虚拟机热迁移详解

9、按照下图所示,把刚才做的物理卷组成卷组:

vSPhere使用vMotion实现虚拟机热迁移详解

10、点击添加lvm卷:

vSPhere使用vMotion实现虚拟机热迁移详解

11、进入添加volume页面后,下拉网页,如下所示:

vSPhere使用vMotion实现虚拟机热迁移详解

12、开启iscis target server服务,如下所示:

vSPhere使用vMotion实现虚拟机热迁移详解

13、开启iscis target server服务后,选择“volumes”菜单,单击“ISCSI Targets”,如下所示:

vSPhere使用vMotion实现虚拟机热迁移详解

14、单击“ADD”,添加一个ISCSI target:
vSPhere使用vMotion实现虚拟机热迁移详解

15、单击“LUN Mapping”,保持默认,单击“Map”:

vSPhere使用vMotion实现虚拟机热迁移详解

16、单击“Network ACL”标签,将Access 设置为“Allow” ,然后单击“update”,后面“CHAP Authentication”标签可以添加访问此target的用户,为可选项,这里就不添加了:

vSPhere使用vMotion实现虚拟机热迁移详解

至此,存储服务器就设置完毕了,现在连接到vCenter服务器来配置:

三、登录vCenter服务器,创建所需端口组:

1、创建VMKernel端口组,首先创建用来通行vMotion流量的端口组:

vSPhere使用vMotion实现虚拟机热迁移详解

2、根据向导创建vMotion端口组:

vSPhere使用vMotion实现虚拟机热迁移详解

3、vSPhere使用vMotion实现虚拟机热迁移详解

4、vSPhere使用vMotion实现虚拟机热迁移详解

5、vSPhere使用vMotion实现虚拟机热迁移详解

6、设置静态IP地址,点击“下一步”,直至完成:

vSPhere使用vMotion实现虚拟机热迁移详解

7、创建完vMotion端口组后,再继续添加用来连接存储服务器的端口组iscsi:

vSPhere使用vMotion实现虚拟机热迁移详解

8、vSPhere使用vMotion实现虚拟机热迁移详解

9、选择“新建标准交换机”,点击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

10、添加物理网卡:

vSPhere使用vMotion实现虚拟机热迁移详解

11、vSPhere使用vMotion实现虚拟机热迁移详解

12、vSPhere使用vMotion实现虚拟机热迁移详解

13、vSPhere使用vMotion实现虚拟机热迁移详解

14、按照下图所示,连接共享存储:

vSPhere使用vMotion实现虚拟机热迁移详解

15、点击“是”:

vSPhere使用vMotion实现虚拟机热迁移详解

16、vSPhere使用vMotion实现虚拟机热迁移详解

17、绑定端口组:

vSPhere使用vMotion实现虚拟机热迁移详解

18、vSPhere使用vMotion实现虚拟机热迁移详解

19、vSPhere使用vMotion实现虚拟机热迁移详解

20、vSPhere使用vMotion实现虚拟机热迁移详解

21、输入ISCSI主机的ip地址,并点击“确定”:

vSPhere使用vMotion实现虚拟机热迁移详解

22、继续重新扫描:

vSPhere使用vMotion实现虚拟机热迁移详解

23、单击“设备”,可以看到已经连接到了openfiler存储服务器:

vSPhere使用vMotion实现虚拟机热迁移详解

24、至此,已经准备工作已经快完成了,现在需要在另一台ESXi主机上进行1~23的步骤,创建vMotion和ISCSI端口组,并且连接openfiler存储服务器。(需要注意的是vMotion和ISCSI端口组的网络标签必须一致,也可以说,除了IP地址外,其余的配置必须一样。)

等两台主机都连接到ISCSI存储服务器后,可以在任意一台ESXi主机进行以下操作:

1、
vSPhere使用vMotion实现虚拟机热迁移详解
2、

vSPhere使用vMotion实现虚拟机热迁移详解

3、保持默认,单击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

4、vSPhere使用vMotion实现虚拟机热迁移详解

5、保持默认,单击“下一步”:
vSPhere使用vMotion实现虚拟机热迁移详解

6、对存储的使用空间进行分配,实际项目中可能各有不同,这里保持默认,单击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

7、点击“完成”:

vSPhere使用vMotion实现虚拟机热迁移详解

8、可以看到已连接的共享存储了,而且另一台ESXi主机也会自动连接(在之前的配置没有问题的前提下):
vSPhere使用vMotion实现虚拟机热迁移详解
vSPhere使用vMotion实现虚拟机热迁移详解

至此,准备工作就完全做好了,还有一个需要注意的是,要进行迁移的虚拟机,不可以挂载光盘,因为,目标主机并不能访问挂载的光盘镜像,所以还需要一步设置,如下:
vSPhere使用vMotion实现虚拟机热迁移详解

vSPhere使用vMotion实现虚拟机热迁移详解

开始迁移:
若想看看虚拟机在迁移过程中是否有终端服务,可以使用ping命令进行死亡ping,会发现过程中会有几个包延迟,或丢几个包,这些都是无关痛痒的:

1、vSPhere使用vMotion实现虚拟机热迁移详解

2、
vSPhere使用vMotion实现虚拟机热迁移详解
3、

vSPhere使用vMotion实现虚拟机热迁移详解

4、选择ISCSI存储服务器后单击“下一步”:

vSPhere使用vMotion实现虚拟机热迁移详解

5、vSPhere使用vMotion实现虚拟机热迁移详解

6、确认无误后,单击“完成”,开始虚拟机的迁移:

vSPhere使用vMotion实现虚拟机热迁移详解

7、使用ping 命令,加上-t选项进行死亡ping,观察虚拟机状态:

vSPhere使用vMotion实现虚拟机热迁移详解

迁移中,开始有延迟和丢包现象:

vSPhere使用vMotion实现虚拟机热迁移详解

等待进度条完成,虚拟机迁移便成功了:

vSPhere使用vMotion实现虚拟机热迁移详解

一篇博客写了将近四个小时,希望所有努力终有回报吧!洗洗睡觉去................