kvm虚拟机的静态迁移与动态迁移

kvm的搭建,请参考以前的文章:https://blog.csdn.net/Bilise/article/details/104660754
kvm的常用命令:https://blog.csdn.net/Bilise/article/details/104686639

静态迁移

kvm1主机IP:192.168.100.64
kvm2主机IP:192.168.100.60

一、静态迁移(需将kvm虚拟机关机)
1、查看kvm虚拟机的储存位置

[root@kvm1 newdisk]# virsh domblklist centos7.0 
Target     Source
------------------------------------------------
vda        /home/newdisk/centos7.0.qcow2
hda        -

2、迁移目标虚拟机的配置文件

[root@kvm1 newdisk]# virsh dumpxml [目标虚拟机名] > /data/centos7.xml //后为导出目标路径与命名配置文件

3、将需要迁移的虚拟机的配置文件和磁盘文件转移到另一台主机上(目标机子需要有足够的磁盘空间)

在另一台机子上创建一个放kvm虚拟机和配置文件的目录
[root@kvm2 ~]# mkdir /home/newdisk/kvm
在所需迁移的机子上执行
 scp [导出的kvm虚拟机配置路径][目标用户]@[目标ip]:[所创的放kvm虚拟机目录]
 例:
[root@kvm1 ~]# scp /data/centos7.xml root@192.168.100.60:/home/newdisk/kvm
root@192.168.100.60's password: 
centos7.xml                                                          100% 6324     1.8MB/s   00:00 



 scp [kvm虚拟机存放路径] [目标用户]@[目标ip]:[所创的放kvm虚拟机目录]

4、修改一下/home/newdisk/kvm/Centos7.xml文件中的的路径
5、定义启动虚拟机
virsh dumpxml [虚拟机名] > [虚拟机名].xml
virsh define [虚拟机名].xml

在迁移目标的机子上执行

[root@kvm2 ~]# virsh dumpxml centos7.0 > /home/newdisk/centos7.xml
[root@kvm2 ~]# vish defind /data/newdisk/centos7.xml

动态迁移

一、配置nfs服务端

1、安装服务:

[root@kvm1 ~]# yum install nfs-utils rpcbind

安装完后查看nfsnobody用户在不在:

[root@kvm1 ~]id nfsnobody

2、启动NFS相关服务:

(1)启动rpc服务:

[root@kvm1 ~]# systemctl start rpcbind
[root@kvm1 ~]# systemctl enable rpcbind

(2)查看rpc端口:

[root@kvm1 ~]# netstat -tnulp|grep rpc

(3)查看端口映射情况:

[root@kvm1 ~]# rpcinfo -p localhost

(4)启动nfs服务:

[root@kvm1 ~]## systemctl start nfs
[root@kvm1 ~]## systemctl enable nfs

3、挂载新磁盘到/data/nfs目录
(1)添加一块新磁盘
(2)分区格式化后挂载:

[root@kvm1 ~]## mkfs.ext4 /dev/sdc 
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 

设置开机自动挂载

[root@kvm1 ~]## vi /etc/fstab
/dev/sdc      /data/nfs   ext4    defaults        0 0

手动挂载全部预设磁盘(否则需重启才能自动挂载)

[root@kvm1 ~]# mount -a

(3)配置共享目录/data/nfs

[root@kvm1 ~]# vi /etc/exports
/data/nfs   *(rw,sync,insecure,no_root_squash)

[root@kvm1 ~]# exportfs -rv        //生效配置
exporting *:/data/nfs
[root@kvm1 ~]# showmount -e localhost       //检查共享目录
Export list for localhost:
/data/nfs *

4、配置nfs客户端
1.安装客户端:

[root@kvm2 ~]# yum install nfs-utils rpcbind 

2.检查能否访问到nfs服务端:

[root@kvm1 ~]# showmount -e 192.168.100.64
Export list for 192.168.100.64:
/data/nfs *
如出现以下反馈结果
[root@kvm1 ~]# showmount -e 192.168.100.64
clnt_create: RPC: Program not registered

解决方法:
[root@kvm1 ~]# rpc.mountd
[root@kvm1 ~]# showmount -e
Export list for raid:
/data/nfs *

3.客户端上挂载nfs共享目录:

[root@kvm2 ~]# mkdir /data/nfs
[root@kvm2 ~]# mount  -t nfs 192.168.100.64:/data/nfs /data/nfs

4.将虚拟磁盘拷贝到/data/nfs目录:

[root@kvm1 ~]# cp -rf /home/newdisk/centos7.0.qcow2 /data/nfs

5.做个软连接保证虚拟磁盘存储位置与主节点一致:


[root@kvm2 ~]# ln -s /data/nfs/centos7.0.qcow2 /home/newdisk

[root@kvm2 ~]# ll /home/newdisk/
total 20
lrwxrwxrwx  1 root root    25 Mar  6 22:06 centos7.0.qcow2 -> /data/nfs/centos7.0.qcow2
drwxr-xr-x. 2 root root  4096 Mar  6 02:06 kvm
drwx------  2 root root 16384 Mar  3 16:00 lost+found

6.在源主机上执行命令 ssh或者tcp只要其中一种可以与目标主机进行连接就行

[root@kvm1 ~]# virsh -c qemu+ssh://root@192.168.100.60/system list --all

7.开始热迁移(在源主机上执行命令)
首先查看kvm虚拟机状态:
在kvm主机上执行:

[root@kvm1 ~]# virsh migrate --live --persistent --verbose test2 qemu+tcp://192.168.100.60/system --unsafe
如果出现以下情况
[root@raid ~]# virsh migrate --live --persistent --verbose centos7.0 qemu+tcp://192.168.100.60/system --unsafe
error: unsupported configuration: Unable to find security driver for model selinux
解决方法:
关闭selinux并重启系统

–verbose指要迁移的主机
–unsafe 跳过安全检测
qemu+tcp 就是使用tcp进行对远程libvirtd进行连接访问,需要修改文件vi /etc/sysconfig/libvirtd,用来启用tcp的端口

# vi /etc/sysconfig/libvirtd
LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"

修改文件vi /etc/libvirt/libvirtd.conf来实现

# vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "none"

重启libvirtd服务生效:

# systemctl restart libvirtd

定义虚拟机配置文件

[root@kvm2 ~]# virsh dumpxml test2 > /etc/libvirt/qemu/test2.xml
[root@kvm2 ~]# virsh define /etc/libvirt/qemu/test2.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值