5.6.1 基于共享存储的动态迁移

size:800,1000

如上图所示,有两台设备一台设备名称为"host1" ,ip地址为IP1, 创建有名为"Guest1"的虚拟机;另一台设备名称为 "host2",ip地址为IP2.现在要将设备"host1"上的虚拟机"Guest1"动态迁移到设备"host2"上(这里首先需要保证设备"host1"和设备"host2"之间路由可达,即可以相互ping通),具体操作如下:

1.1. "host1" 设备上的配置

1.关闭防火墙服务

[root]# systemctl stop firewalld  

2.安装nfs和rpcbind软件

Loongnix-Server OS:

[root]# yum install -y nfs-utils rpcbind

Loongnix-Desktop OS:

[root]# apt install -y nfs-kernel-server rpcbind

3.创建目录并设置权限

[root]# mkdir /home/kvm-nfs
[root]# chmod 777 /home/kvm-nfs

4.编辑/etc/exports文件,添加如下语句:

/home/kvm-nfs *(rw,no_root_squash,no_all_squash,sync)

5.使配置生效

$ exportfs -r

6.启动rpcbind服务和nfs服务

Loongnix-Server OS:

[root]# systemctl start rpcbind
[root]# systemctl start nfs
[root]# systemctl status rpcbind
[root]# systemctl status nfs

Loongnix-Desktop OS:

[root]# systemctl start rpcbind
[root]# systemctl start nfs-kernel-server
[root]# systemctl status rpcbind
[root]# systemctl status nfs-kernel-server

7.测试是否配置成功,可以联机

[root]# showmount -e localhost

正常显示

Export list for localhost.localdomain:
/home/kvm-nfs *

8.下载qcow2文件系统至/home/kvm-nfs目录

[root]# cd /home/kvm-fs
[root]# ls 
kvm-test.qcow2
chmod  777  kvm-test.qcow2               #使对端具有读写权限

9.使用virsh新建虚拟机,virtdisk指向/home/kvm-nfs/kvm-test.qcow2

1.2. 虚拟机当前运行情况如下:

[root]#virsh
 virsh # list
 Id   名称       状态
--------------------------
 35   Guest1   running

1.3. "host2"设备上的配置

1.启动rpcbind服务

[root]# systemctl start rpcbind
[root# systemctl status rpcbind

2.创建挂载目录

[root]# mkdir /home/kvm-nfs
[root]# chmod 777 /home/kvm-nfs

3.防火墙设置

$[root]# firewall-cmd --add-port=49152-49215/tcp --permanent
[root]# firewall-cmd --reload

这里配置允许49152-49215的tcp端口

4.将设备"host1"的共享路径挂载到设备"host2"上的/home/kvm-nfs

 [root]# mount -t nfs IP1:/home/kvm-nfs  /home/kvm-nfs

5.检验是否挂载成功,看/home/kvm-fs目录下是否有kvm-test.qcow2文件系统

[root]#  ls /home/kvm-nfs
kvm-test.qcow2

1.4. 迁移

1.迁移 在"host1"设备上输入下面命令进行虚拟机迁移,然后输入设备"host2"的root用户密码

[root]#virsh
 virsh # migrate   kvm-test   qemu+ssh://IP2/system tcp://IP2  --unsafe  --live   --verbose
root@host2's password: 
迁移: [ 91 %]
迁移: [100 %]
  • virsh migrate –live:动态迁移
  • –verbose:显示迁移详情
  • kvm-test:需要迁移的虚拟机
  • qemu+ssh:通过ssh连接到目的物理机上的system实例,具有最大权限来管理远程节点上的虚拟机资源
  • /system: 以root身份进行状态迁移
  • tcp:使用tcp连接
  • IP2:目的物理机IP地址
  • –unsafe:跳过安全检测
  • 注:可以指定身份访问远程主机,如远程主机用户名为kvm,则可以使用 qemu+ssh://kvm@IP2/system,若不添加kvm,默认使用root访问

等到迁移进度达到100%时,查看本地虚拟机,发现"host1"设备上的"Guest1"虚拟机已经不存在了

[root]#virsh
virsh # list
 Id   名称   状态
-------------------

在"host2"设备上查看,结果如下,表明迁移成功.

[root]#virsh
virsh # list
 Id   名称       状态
--------------------------
 31   Guest1   running

2.固化虚拟机配置文件 在"host2"设备上输入以下命令,固化迁移过来的配置数据,并使用配置数据创建虚拟机;否则迁移后"host2"设备上没有虚拟机"Guest1"的配置文件,关闭"Guest1"后,"Guest1"就没有了,命令如下:

[root]# virsh  dumpxml Guest1  > Guest1.xml
[root]# virsh  define Guest1.xml 
定义域 Guest1(从Guest1.xml)
©龙芯开源社区 all right reserved,powered by Gitbook文档更新时间: 2023-05-19 06:36:14

results matching ""

    No results matching ""

    results matching ""

      No results matching ""