xen实现虚拟化(二)

简介:

本文将介绍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管理界面


wKioL1OBT7-xMc5tAAEAg6UlZdU824.jpg


点击新建


wKiom1OBULmTwNiDAAFhvX11zmU018.jpg


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


wKioL1OBURPyrJKnAAGfe5UO_OQ407.jpg


继续安装操作系统


wKioL1OBUZXzs8wuAAIKC4cMAU0711.jpg


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


wKiom1OBUl2Sn5tYAAEXXn1SRSU384.jpg


 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...


wKiom1OBVRPQ3VexAAKfHkeWJ1o971.jpg


wKioL1OBVPfCGBZJAADCUZy27zw185.jpg


wKiom1OBVTCiNaWOAACx2SXqe4k637.jpg


待系统安装完毕后,登录虚拟机系统


wKiom1OBVfjzztKAAAMvSBD7oXs078.jpg


此时我们可以通过ssh连接虚拟机进行管理


wKioL1OBVhPBOcZpAAE89f7lC9c627.jpg


wKioL1OBVnGg4_dpAAI39gk1q2c354.jpg


我们同时也可以在virt-manager控制台进行管理,不再重述



三、磁盘热插拔


1、连接入虚拟机管理后台

1
2
     # cd  /etc/xen 
     # create -c centos6

     

    查看当前系统磁盘


wKioL1OBV02y2WnYAAKY5RaeA8c801.jpg


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


wKioL1OBWCeBLLcTAADZFZjOjNc106.jpg


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


wKiom1OBWLPx1OUhAAPd6K02Kiw887.jpg


在机器运行的情况下,我么恩已经将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


虚拟机上查看磁盘情况


wKiom1OBWTyDdVXYAAJ6zTXFtRw961.jpg


机器运行的情况下已经成功拆除磁盘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 查看


wKioL1OBWcPClR5DAACyt_aD9rI560.jpg


虚拟机系统查看网卡情况

wKiom1OBWj-wtBkaAARh6Vz_lY8848.jpg


3、拆除网卡


1
2
   # xm network-detach  centos6 1 (1为网卡ID号,xm network-list即可获得,上图有)
   # xm network-list


wKioL1OBWobBGMcJAACFlc03G9A787.jpg


  查看网卡情况


wKioL1OBWsijXpicAAL5uzy3l6Y382.jpg


eth1已经拆除


五、xm top工具的使用


   xm top工具可以动态的侦听当前所有的虚拟机的资源活动状态


wKioL1OBWy_g7Pm5AADuz0VVM78571.jpg


六、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测试


wKiom1OBYYHyhn5lAANUaxJYeXk494.jpg

 

数据迁移


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地址


   wKiom1OBYl_iISplAAH4xdgi53Y432.jpg

  

  而此时的客户端ping情况


  wKiom1OBYqWDSMYvAAOmhYU9QwM280.jpg


  网络连通性良好,一般来讲在数据的迁移过程中会出现1-4个数据包的丢失,并不影响业务的正常运行,因此可以视为xen数据的动态实时迁移




      本文转自灬落魄灬  51CTO博客,原文链接:http://blog.51cto.com/smoke520/1835174,如需转载请自行联系原作者




相关文章
|
Linux 调度 KVM
《云计算架构技术与实践》读书笔记(四):XEN/KVM虚拟化引擎介绍
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/75392862 4.1  XEN/KVM虚拟化引擎 4.1.1  虚拟化架构分类 计算虚拟化技术的实现形式是在系统中加入一个虚拟化层,将下层的资源抽象成另一种形式的资源,供上层使用。
|
存储 资源调度 Cloud Native
阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
|
安全 前端开发 Linux
|
KVM 虚拟化 数据安全/隐私保护