安装KVM以及配置热迁移环境



Ubuntu14.04配置KVM/Libvirt虚拟化环境

  1. 在每台物理机上安装KVM以及其它依赖包

    sudo apt-get install qemu-kvm libvirt-bin bridge-utils

    sudo apt-get install qemu-system

    sudo apt-get install virt-manager

  2. 重启libvirt服务

    sudo service libvirt-bin restart

  3. 启动virt-manager并创建虚拟机,shell命令为:

    virt-manager

        启动后界面如下:

                                     

NFS服务安装配置

服务端

1)选择一台配置了虚拟化环境的物理机作为nfs服务端,安装nfs server

sudo apt-get install nfs-kernel-server nfs-common

2)设置nfs共享目录/var/lib/libvirt/images,这个目录是libvirt默认存放镜像的地方,可以更改。最好将目录/var/lib/libvirt/images设置权限为777,否则客户端可能没有访问权限(如果对安全性要求较高,可进一步考虑)。

sudo chmod 777 /var/lib/libvirt/images

sudo vi/etc/exports

在文件末尾添加行:

/var/lib/libvirt/images guestHostIp(rw, sync)

其中 guestHostIp是客户端地址,也可以用通配符表示一个地址段,如192.168.1.*

 3)重启nfs server

sudo service nfs-kernel-server restart

 

客户端

  1. 安装nfs client

    sudo apt-get install nfs-common

2)查看nfs server上共享的目录,假设192.168.xx.xx为服务端ip地址

showmount -e 192.168.xx.xx

正常的话应该输出:

/var/lib/libvirt/images guestHostIp(rw, sync)

3)执行挂载


sudo mount -t nfs192.168.xx.xx:/var/lib/libvirt/images /var/lib/libvirt/images


4)修改/etc/fstab文件,设置开机自动挂载,在文件末尾添加一行

sudo vi /etc/fstab

        192.168.xx.xx:/var/lib/libvirt/images  /var/lib/libvirt/images nfs defaults 0 0

5)测试

        在客户端的/var/lib/libvirt/images目录创建一个文件a,看看在服务端是否发现这个文件a,如果有则配置成功。

客户端:

cd /var/lib/libvirt/images

touch a

服务端:

ls /var/lib/libvirt/images

       

配置使用libvirt进行热迁移

1)修改文件/etc/libvirt/libvirtd.conf,将相应表项改为如下所示:

listen_tls = 0

listen_tcp = 1

auth_tcp = “none”

2)修改文件Edit/etc/init/libvirt-bin.conf

env libvirtd_opts="-d -l"

3)修改文件/etc/default/libvirt-bin

          #options passed to libvirtd, add "-l" to listen on tcp
           libvirtd_opts="-d-l"

4)重启libvirt

sudo service libvirt-bin restart

5)执行热迁移,使用virsh命令,或者使用下面的Python脚本。在shell命令中,假设192.168.137.138为目的物理机的IP

sudo virsh migrate --live vm1 qemu+tcp://192.168.137.138/system 

  Python脚本,第一个参数为源物理机,第二个参数为目的物理机,第三个参数为虚拟机名字,注意要修改红色的用户名部分。

import sys

import libvirt

 

source = sys.argv[1]

dest = sys.argv[2]

vm = sys.argv[3]

 

conn_sour = libvirt.open('qemu+tcp://username@'+source+'/system')

conn_dest = libvirt.open('qemu+tcp://username@'+dest+'/system')

 

#search vm

vm_domain = conn_sour.lookupByName(vm)

  

#the meaning of parameters :(self._o, dconn__o, flags,dname, uri, bandwidth)

#connection of source PM, whether live migration, vmname, uri, bandwidth

print vm_domain.migrate(conn_dest,True,vm,None,0)


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值