本文将介绍virt-manager、virt-install等工具在xen的半虚拟化平台上安装虚拟机,及xen的一些高级应用
一、virt-manager安装Guest虚拟机
1
2
3
4
5
|
注意:我使用的为centos官方提供的libvirt,版本为:0.10.2.8
|

点击新建

想要使用上图中的本地安装介质安装,需要确保能够实现硬件辅助的全虚拟化,如下图所示

继续安装操作系统

等待系统安装完毕,一个虚拟机的操作系统安装实现,接下来我们返回控制台

virt-manager控制台,不单单可以新建虚拟机并安装系统,同时提供了对虚拟机的多种管理操作
我们可以在该界面对虚拟机实现轻松的配置与管理
二、virt-install 安装Guest虚拟机
virt-install属于纯命令行工具,上述的virt-manager的图形界面安装也是调用了virt-install
默认安装了virt-manager就会安装上virt-install工具
1、安装程序包
2、设置磁盘镜像文件
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 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、连接入虚拟机管理后台
查看当前系统磁盘

2、再次创建一个磁盘镜像文件
3、使用xm block-attach在特定域名的虚拟机上热插一块磁盘

在运行的虚拟机上查看磁盘情况

在机器运行的情况下,我么恩已经将xvdb这块磁盘添加上去了
4、拆除磁盘使用block-detach
1
2
3
4
5
6
7
|
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
51712 0 0 4 13 8 /local/domain/0/backend/vbd/11/51712
|
虚拟机上查看磁盘情况

机器运行的情况下已经成功拆除磁盘xvdb
四、网卡热插拔
1、连入虚拟机控制台
2、添加一块网卡,在xen hypervisor上操作

虚拟机系统查看网卡情况

3、拆除网卡

查看网卡情况

eth1已经拆除
五、xm top工具的使用
xm top工具可以动态的侦听当前所有的虚拟机的资源活动状态

六、xm 工具实现虚拟机的状态保留
1、状态保留
1
2
3
4
|
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
|
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 1096.0
|
2、状态恢复
1
2
3
4
5
|
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
|
bootloader= "/usr/bin/pygrub"
memory=512
name= "centos6"
disk=[ 'file:/xen/vm1/centos6.qcow2,xvda,w' ]
vif=[ 'bridge=br0' ]
|
开启nfs共享,将磁盘镜像文件共享
1
2
3
|
/xen/vm1 192.168.1.0(rw,no_root_squash)
|
查看当前虚拟机运行状态
1
2
3
4
|
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)创建磁盘镜像文件目录
2)创建桥设备,保证两台机器的桥设备相同
3)挂载共享文件,保证两台机器的磁盘镜像文件相同
4)修改xen数据迁移的配置文件
1
2
3
4
5
6
|
(xend-relocation-server yes )
(xend-relocation-port 8002)
(xend-relocation-address '' )
(xend-relocation-hosts-allow '' )
|
5)查看当前虚拟机实例运行情况
1
2
3
|
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 2 r----- 1054.2
|
一切准备就绪,接下来我们进行xen的数据迁移
3、172.16.13.3服务器上的虚拟机实例配置ip地址,并ping探测连通性
客户端ping测试

数据迁移
4、我们去172.16.13.8服务器查看数据迁移情况
查看运行的虚拟机实例
1
2
3
4
5
|
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,如需转载请自行联系原作者