忍不住再次吐槽,新换的这个编辑器真的不好用,希望能够换回原来,尤其是这个字数的限制,真心不好用
言归正传,http://wangfeng7399.blog.51cto.com/3518031/1414999讲到了怎么使用xm来创建一个虚拟机,本文将通过virt-manager和virt-viewer来再次讲解如何创建Xen的虚拟机,后面将会讲到如何动态添加磁盘和网卡,已经虚拟机如何实现水平迁移
首先补充一下xm管理的常用命令
vm save:将内存中的文件加载到磁盘中
vm restor:将磁盘中的文件加载到内存中
vm pause:暂停一个xen虚拟机
vm unpause:启动一个暂停的虚拟机
vm destroy:强制关闭一个正在运行中的虚拟机,相当于直接拔电源
vm delete:删除一个虚拟机
vm top:查看当前运行中的虚拟机的状态,与top命令近似
vm list:列出当前所有的虚拟机
一、通过virt-manager来创建虚拟机
1.安装,由于RedHat官方提供的virt-manager不能驱动xen,故需要安装centos官方提供的libvirt包
1
2
|
[root@node1 ~] # yum install libvirt -y
[root@node1 ~] # yum install virt-manager -y
|
2.启动
1
2
|
[root@node1 ~] # service libvirtd start
[root@node1 ~] # virt-manager &
|
3.查看原来的安装的系统
可以看到原来安装的centos6可以看到,使用Open便可以打开centos6的界面
4.安装新的虚拟机
半虚拟化状态只能基于网络安装,而全虚拟化可以基于ISO和--pxe安装,
在虚拟机中开启全虚拟化
输入安装书的ip地址,安装树的设置请看前文
设置内存大小和cpu的个数
设置硬盘的大小
一些摘要信息
开始安装,安装过程通前文一样
5.登陆成功
6.通过命令查看
1
2
3
4
5
|
[root@node1 ~] # xm list
Name ID Mem VCPUs State Time(s) Domain-0 0 512 2 r----- 3673.3 centos6 9 512 1 -b---- 49.6 centos6.5 10 512 1 r----- 225.4 |
二、通过virt-install安装虚拟机
1.安装vier-viewer,virt-install依赖以vier-viewer
1
|
[root@node1 ~] # yum install -y virt-viewer
|
2.安装虚拟机,为了便于观察本次还是在vnc中安装,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
创建磁盘,本处使用 dd 创建,也可以在创建虚拟机的时候创建磁盘
[root@node1 ~] # virt-install -n rhel6 -r 512 --vcpus=1 -l http://192.168.1.201/centos6 --disk path=/xen/vm/rhel6.img --network bridge=br0
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...
|
3.开始安装
4.安装完成,登陆成功
5.通过命令行查看
1
2
3
4
5
6
|
[root@node1 ~] # xm list
Name ID Mem VCPUs State Time(s) Domain-0 0 485 2 r----- 4978.6 centos6 9 512 1 -b---- 55.0 centos6.5 11 512 1 -b---- 31.2 rhel6 12 512 1 -b---- 627.6 |
6.通过virt-manager查看
三、动态添加设备
1.动态添加磁盘
1
2
3
4
5
6
7
8
9
10
11
12
13
|
创建硬盘 [root@node1 ~] # qemu-img create -f qcow2 -o size=20G,preallocation="metadata" /xen/vm/test.img
添加到centos6.5中 [root@node1 ~] # xm blcok-attach centos6.5 file://xen/vm/test.img xvdb w
[root@node1 ~] # xm block-list centos6.5
Vdev BE handle state evt-ch ring-ref BE-path 51712 0 0 4 10 8 /local/domain/0/backend/vbd/11/51712 51728 0 0 4 12 857 /local/domain/0/backend/vbd/11/51728 删除设备 [root@node1 ~] # xm block-detach centos6.5 51728
[root@node1 ~] # xm block-list centos6.5
Vdev BE handle state evt-ch ring-ref BE-path 51712 0 0 4 10 8 /local/domain/0/backend/vbd/11/51712
|
2.添加网络设备,与添加磁盘相似
更多命令请查考xm --help
四、虚拟机的动态迁移
当前运行状态
1
2
3
4
5
6
7
|
[root@node1 ~] # xm list
Name ID Mem VCPUs State Time(s) Domain-0 0 493 2 r----- 88.3 centos6 2 512 1 -b---- 0.0 [root@node2 ~] # xm list
Name ID Mem VCPUs State Time(s) Domain-0 0 493 2 r----- 81.4 |
1.修改配置文件,两台机器的配置相同
1
2
3
4
5
6
7
8
9
10
|
[root@node1 ~] # grep xend-relocation /etc/xen/xend-config.sxp |grep -v "#"
(xend-relocation-server yes )
(xend-relocation-port 8002) (xend-relocation-address '' )
(xend-relocation-hosts-allow '' )
[root@node2 ~] # grep xend-relocation /etc/xen/xend-config.sxp |grep -v "#"
(xend-relocation-server yes )
(xend-relocation-port 8002) (xend-relocation-address '' )
(xend-relocation-hosts-allow '' )
|
2.为磁盘映像文件准备共享存储,本处使用的为nfs,也可以基于别的机制做,关于nfs的详细使用,请参照本人博文http://wangfeng7399.blog.51cto.com/3518031/1383400
1
2
3
4
|
[root@node1 ~] # vi /etc/exports
/xen/vm 192.168.1.0 /24 (rw,no_root_squash)
[root@node1 ~] # service nfs restart
[root@node2 ~] # mount -t nfs 192.168.1.201:/xen/vm/ /xen/vm/
|
3.为了确保实验的可用性,我们在虚拟机上创建一个文件,退出虚拟机的命令为ctrl+]
1
|
[root@localhost ~] # echo "wangfeng7399" >> test.txt
|
4.迁移虚拟机
1
|
[root@node1 ~] # xm migrate -l centos6 192.168.1.202
|
5.在迁移的过程中,我们一直对虚拟机做ping操作
可以看到我们的ping操作中间没有断过
6.查看虚拟机运行状态
1
2
3
4
5
6
7
|
[root@node2 ~] # xm list
Name ID Mem VCPUs State Time(s) Domain-0 0 496 2 r----- 72.4 centos6 1 512 1 -b---- 0.0 [root@node1 ~] # xm list
Name ID Mem VCPUs State Time(s) Domain-0 0 493 2 r----- 80.6 |
7.查看我们先前创建的文件
1
2
|
[root@localhost ~] # cat test.txt
wangfeng7399 |
可以看到我们创建的文件也都在,这证明在不间断业务的前提下,对虚拟机做实时动态迁移是成功的,后期的改进方法,如果能够实时监测物理机的状态,在发现物理机出现故障的情况下,能够触发脚本对虚拟机做实时动态迁移将会更加完美!
本文转自wangfeng7399 51CTO博客,原文链接:http://blog.51cto.com/wangfeng7399/1415586,如需转载请自行联系原作者