本文将介绍virt-manager、virt-install等工具在xen的半虚拟化平台上安装虚拟机,及xen的一些高级应用
一、virt-manager安装Guest虚拟机
1
2
3
4
5
|
# yum -y install virt-manager libvirt virt-viewer
注意:我使用的为centos官方提供的libvirt,版本为:0.10.2.8
# service xend start
# service libvirtd start
# virt-manager & 打开virt-manager管理界面
|
点击新建
想要使用上图中的本地安装介质安装,需要确保能够实现硬件辅助的全虚拟化,如下图所示
继续安装操作系统
等待系统安装完毕,一个虚拟机的操作系统安装实现,接下来我们返回控制台
virt-manager控制台,不单单可以新建虚拟机并安装系统,同时提供了对虚拟机的多种管理操作
我们可以在该界面对虚拟机实现轻松的配置与管理
二、virt-install 安装Guest虚拟机
virt-install属于纯命令行工具,上述的virt-manager的图形界面安装也是调用了virt-install
默认安装了virt-manager就会安装上virt-install工具
1、安装程序包
1
|
#yum -y install virt-install virt-viewer
|
2、设置磁盘镜像文件
1
2
|
# mkdir -pv /xen/vm4
# qemu-img create -f qcow2 -o size=12G,preallocation=metadata /xen/vm4/centos6.qcow2
|
3、安装Guest虚拟机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# virt-install -n "centos6.4" -r 512 --vcpus=2 -l http://172.16.0.1/cobbler/ks_mirror/rhel-6.4-i386/ --disk path=/xen/vm4/centos6.qcow2 --network bridge=br0 --force
virt-
install
命令解析:
-n NAME, --name=NAME
//
虚拟机的名称
-r MEMORY, --
ram
=MEMORY
//
虚拟机的内存
--vcpus=VCPUS
//cpu
的个数,格式如下
--vcpus 5
--vcpus 5,maxcpus=10
--vcpus sockets=2,cores=4,threads=2
-c CDROM, --cdrom=CDROM
//
通过光驱安装
-l LOCATION, --location=LOCATION
//
通过网路安装
--pxe
//
通过pxe安装,只能在全虚拟化时使用
--os-
type
=DISTRO_TYPE
//
发行版类型
--os-variant=DISTRO_VARIANT
//
发行版本,如“rhel6”“windows2003”等
--disk=DISKOPTS
//
磁盘映像,格式如下.
--disk path=
/my/existing/disk
--disk path=
/my/new/disk
,size=5 (
in
gigabytes)
--disk vol=poolname:volname,device=cdrom,bus=scsi,...
-w NETWORK, --network=NETWORK
//
网络类型,格式如下
--network bridge=mybr0
--network network=my_libvirt_virtual_net
--network network=mynet,model=virtio,mac=00:11...
|
待系统安装完毕后,登录虚拟机系统
此时我们可以通过ssh连接虚拟机进行管理
我们同时也可以在virt-manager控制台进行管理,不再重述
三、磁盘热插拔
1、连接入虚拟机管理后台
1
2
|
# cd /etc/xen
# create -c centos6
|
查看当前系统磁盘
2、再次创建一个磁盘镜像文件
1
2
|
# cd /xen/vm1
# qemu-img create -f qcow2 -o size=2G test.qcow2
|
3、使用xm block-attach在特定域名的虚拟机上热插一块磁盘
1
2
3
|
# xm block-attach centos6 xvdb w
# xm block-list centos6
|
在运行的虚拟机上查看磁盘情况
在机器运行的情况下,我么恩已经将xvdb这块磁盘添加上去了
4、拆除磁盘使用block-detach
1
2
3
4
5
6
7
|
# xm block-list centos6
Vdev BE handle state evt-ch ring-ref BE-path
51712 0 0 4 13 8
/local/domain/0/backend/vbd/11/51712
51728 0 0 4 15 872
/local/domain/0/backend/vbd/11/51728
# xm block-detach centos6 51728 (51728是设备ID号)
# xm block-list centos6
51712 0 0 4 13 8
/local/domain/0/backend/vbd/11/51712
|
虚拟机上查看磁盘情况
机器运行的情况下已经成功拆除磁盘xvdb
四、网卡热插拔
1、连入虚拟机控制台
1
2
|
# cd /etc/xen/
# create -c centos6
|
2、添加一块网卡,在xen hypervisor上操作
1
2
3
|
# xm network-attach 直接可以查看帮助
# xm network-attach centos6 bridge=br0
# xm network-list centos6 查看
|
虚拟机系统查看网卡情况
3、拆除网卡
1
2
|
# xm network-detach centos6 1 (1为网卡ID号,xm network-list即可获得,上图有)
# xm network-list
|
查看网卡情况
eth1已经拆除
五、xm top工具的使用
xm top工具可以动态的侦听当前所有的虚拟机的资源活动状态
六、xm 工具实现虚拟机的状态保留
1、状态保留
1
2
3
4
|
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 1096.0
centos6 7 512 1 -b---- 40.2
|
1
2
3
4
|
# xm save centos6 /tmp/centos6.save 将当前的虚拟机状态保存
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 1096.0
|
2、状态恢复
1
2
3
4
5
|
# xm restore /tmp/cento6.save -----恢复状态
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 1096.0
centos6 7 512 1 -b---- 40.2
|
七、数据实时转移
实验环境
172.16.13.3 节点
172.16.13.8 节点
上述两个节点配置的xen环境相同(xen的版本相同、磁盘镜像文件相同、桥设备配置相同),关于xen的安装配置,虚拟机的创建及操作系统的安装请参考我的一篇关于xen的博客
1、172.16.13.3服务器配置情况
1
2
3
4
5
6
7
8
9
10
|
# cat /etc/xen/centos6
#kernel="/root/vmlinuz" ---注释该行
#ramdisk="/root/initrd.img" ---注释该行
bootloader=
"/usr/bin/pygrub"
memory=512
name=
"centos6"
disk=[
'file:/xen/vm1/centos6.qcow2,xvda,w'
]
vif=[
'bridge=br0'
]
# scp /etc/xen/centos6 172.16.13.8:/etc/xen/ ---将虚拟机实例配置文件发送给另一台服务器保证两台服务器虚拟机实例相同
|
开启nfs共享,将磁盘镜像文件共享
1
2
3
|
# vim /etc/exports
/xen/vm1
192.168.1.0(rw,no_root_squash)
# service nfs start
|
查看当前虚拟机运行状态
1
2
3
4
|
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 1054.2
centos6 7 512 1 -b---- 35.5
|
2、172.16.13.8服务器配置
1)创建磁盘镜像文件目录
1
|
# mkdir -pv /xen/vm1
|
2)创建桥设备,保证两台机器的桥设备相同
1
2
3
4
5
6
|
# brctl addbr br0
# ifconfig eth0 0 up
# brctl addif br0 eth0
# ifconfig br0 172.16.13.8/16 up
# route add default gw 172.16.0.1
# brctl stp br0 on
|
3)挂载共享文件,保证两台机器的磁盘镜像文件相同
1
2
3
4
|
# mount -t nfs 172.16.13.3:/xen/vm1 /xen/vm1
# cd /xen/vm1
# ls
centos6.qcow2
|
4)修改xen数据迁移的配置文件
1
2
3
4
5
6
|
# vim /etc/xen/xend-config.sxp 开启如下四项
(xend-relocation-server
yes
)
(xend-relocation-port 8002)
(xend-relocation-address
''
)
(xend-relocation-hosts-allow
''
)
# scp /etc/xen/xend-config.sxp 172.16.13.2:/etc/xen/ 保证两个服务器的配置文件相同
|
5)查看当前虚拟机实例运行情况
1
2
3
|
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 1054.2
|
一切准备就绪,接下来我们进行xen的数据迁移
3、172.16.13.3服务器上的虚拟机实例配置ip地址,并ping探测连通性
1
2
3
4
|
# cd /etc/xen
# xm create -c centos6
进入虚拟后台更改ip地址
# ifconfig eth0 172.16.13.100
|
客户端ping测试
数据迁移
1
|
# xm migrate -l centos6 172.16.13.8 将当前主机虚拟机实例迁移到172.16.13.8服务器上
|
4、我们去172.16.13.8服务器查看数据迁移情况
查看运行的虚拟机实例
1
2
3
4
5
|
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 969.0
centos6 2 512 1 -b---- 13.6
虚拟机centos6已经运行,
|
查看ip地址
而此时的客户端ping情况
网络连通性良好,一般来讲在数据的迁移过程中会出现1-4个数据包的丢失,并不影响业务的正常运行,因此可以视为xen数据的动态实时迁移
本文转自灬落魄灬 51CTO博客,原文链接:http://blog.51cto.com/smoke520/1835174,如需转载请自行联系原作者