虚拟化Xen的高级应用

简介:

    忍不住再次吐槽,新换的这个编辑器真的不好用,希望能够换回原来,尤其是这个字数的限制,真心不好用

    言归正传,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.查看原来的安装的系统

wKioL1N83RTQYs0sAAEuua1e75E738.jpg

    可以看到原来安装的centos6可以看到,使用Open便可以打开centos6的界面

    4.安装新的虚拟机

wKioL1N83rGi8KkAAAEvD2qqb30987.jpg

    半虚拟化状态只能基于网络安装,而全虚拟化可以基于ISO和--pxe安装,

wKiom1N83t3xloXUAAFGdI8GP0w431.jpg

在虚拟机中开启全虚拟化

wKioL1N832ih77sPAAIsVGzzyOA925.jpg输入安装书的ip地址,安装树的设置请看前文

wKioL1N83rGxuMBwAAEu9ZsG6vI707.jpg

设置内存大小和cpu的个数

wKiom1N83t2i2ZyXAAEA9pBM4RI215.jpg

设置硬盘的大小

wKioL1N83rGQpZgOAAFW7cYKToY929.jpg

一些摘要信息

wKiom1N83t3CMXzHAAEDKW16SHo721.jpg

开始安装,安装过程通前文一样

wKioL1N84HmjP7SwAAG6F_brYL4510.jpg    5.登陆成功

wKioL1N84wijfG5KAALezQMbhZI945.jpg

    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.开始安装

wKiom1N86KjCWUbuAAL0sAlZZLw714.jpg    4.安装完成,登陆成功

wKioL1N87UfgxebdAAHwhgnBpco828.jpg

    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查看

wKiom1N867aRwRgfAAFLrAwbPRY137.jpg

三、动态添加设备   

    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操作

wKiom1N-AxKh0Li6AAN5LgZJMnY353.jpg

    可以看到我们的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,如需转载请自行联系原作者


相关文章
|
Linux 调度 KVM
《云计算架构技术与实践》读书笔记(四):XEN/KVM虚拟化引擎介绍
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/75392862 4.1  XEN/KVM虚拟化引擎 4.1.1  虚拟化架构分类 计算虚拟化技术的实现形式是在系统中加入一个虚拟化层,将下层的资源抽象成另一种形式的资源,供上层使用。
|
5月前
|
存储 监控 安全
【探索嵌入式虚拟化技术与应用】— 虚拟化技术深入浅出自学系列
【探索嵌入式虚拟化技术与应用】— 虚拟化技术深入浅出自学系列
136 2
|
11月前
|
存储 容灾 文件存储
带你读《云存储应用白皮书》之39:1. 基于混合云存储阵列的虚拟化平台搭建
带你读《云存储应用白皮书》之39:1. 基于混合云存储阵列的虚拟化平台搭建
140 0
|
存储 资源调度 Cloud Native
阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
|
安全 虚拟化 Android开发
【Android 插件化】静态分析应用 APK 安装包是否使用了插件化引擎 ( 虚拟化引擎运行特点 | 恶意软件特点 )
【Android 插件化】静态分析应用 APK 安装包是否使用了插件化引擎 ( 虚拟化引擎运行特点 | 恶意软件特点 )
124 0
|
大数据 Linux 虚拟化
彻底释放虚拟化,Docker的应用
什么是Docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
1280 0
|
C# 虚拟化 自然语言处理
WPF中ItemsControl应用虚拟化时找到子元素的方法
原文:WPF中ItemsControl应用虚拟化时找到子元素的方法  wpf的虚拟化技术会使UI的控件只初始化看的到的子元素, 而不是所有子元素都被初始化,这样会提高UI性能。
1849 0