xen實現虛擬化(二)

本文將介紹virt-manager、virt-install等工具在xen的半虛擬化平臺上安裝虛擬機,及xen的一些高級應用
vim


1、virt-manager安裝Guest虛擬機windows


   

# 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

  點擊新建centos

  wKiom1OBULmTwNiDAAFhvX11zmU018.jpg

  想要使用上圖中的本地安裝介質安裝,須要確保可以實現硬件輔助的全虛擬化,以下圖所示bash

  wKioL1OBURPyrJKnAAGfe5UO_OQ407.jpg


  繼續安裝操做系統服務器

  

  

wKioL1OBUZXzs8wuAAIKC4cMAU0711.jpg

 等待系統安裝完畢,一個虛擬機的操做系統安裝實現,接下來咱們返回控制檯網絡

 wKiom1OBUl2Sn5tYAAEXXn1SRSU384.jpg 

 virt-manager控制檯,不僅僅能夠新建虛擬機並安裝系統,同時提供了對虛擬機的多種管理操做dom

 咱們能夠在該界面對虛擬機實現輕鬆的配置與管理ssh


2、virt-install 安裝Guest虛擬機socket


    virt-install屬於純命令行工具,上述的virt-manager的圖形界面安裝也是調用了virt-installide


    默認安裝了virt-manager就會安裝上virt-install工具


   一、安裝程序包

     

    #yum  -y install virt-install virt-viewer


   二、設置磁盤鏡像文件

   

    # mkdir -pv  /xen/vm4 
    # qemu-img create -f qcow2 -o size=12G,preallocation=metadata /xen/vm4/centos6.qcow2

   三、安裝Guest虛擬機

     

     

    #  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控制檯進行管理,再也不重述


3、磁盤熱插拔


一、鏈接入虛擬機管理後臺

    

    # cd  /etc/xen 
    # create -c centos6 
    
    查看當前系統磁盤


     wKioL1OBV02y2WnYAAKY5RaeA8c801.jpg

二、再次建立一個磁盤鏡像文件


  

  # cd  /xen/vm1
  # qemu-img create -f qcow2 -o size=2G test.qcow2


三、使用xm block-attach在特定域名的虛擬機上熱插一塊磁盤


  

   

  # xm  block-attach centos6  xvdb w
  
  # xm block-list centos6

   wKioL1OBWCeBLLcTAADZFZjOjNc106.jpg

   在運行的虛擬機上查看磁盤狀況

   wKiom1OBWLPx1OUhAAPd6K02Kiw887.jpg

 在機器運行的狀況下,我麼恩已經將xvdb這塊磁盤添加上去了


四、拆除磁盤使用block-detach

  

 # 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


4、網卡熱插拔

   一、連入虛擬機控制檯

    

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

   二、添加一塊網卡,在xen hypervisor上操做  

    # xm network-attach 直接能夠查看幫助
    # xm network-attach centos6 bridge=br0
    # xm  network-list centos6 查看

    wKioL1OBWcPClR5DAACyt_aD9rI560.jpg

     虛擬機系統查看網卡狀況

     

      wKiom1OBWj-wtBkaAARh6Vz_lY8848.jpg


三、拆除網卡

  

  # xm network-detach  centos6 1 (1爲網卡ID號,xm network-list便可得到,上圖有)
  # xm network-list

   wKioL1OBWobBGMcJAACFlc03G9A787.jpg

   查看網卡狀況

 

 wKioL1OBWsijXpicAAL5uzy3l6Y382.jpg  網卡eth1已經拆除


5、xm top工具的使用

   xm top工具能夠動態的偵聽當前全部的虛擬機的資源活動狀態

   wKioL1OBWy_g7Pm5AADuz0VVM78571.jpg

6、xm 工具實現虛擬機的狀態保留


  一、狀態保留

 # xm  list 
  Name                                        ID   Mem VCPUs    State   Time(s)
  Domain-0                                    0  1024     2     r-----   1096.0
 centos6                                      7   512     1     -b----     40.2

  

# xm save  centos6 /tmp/centos6.save 將當前的虛擬機狀態保存
# xm  list
  Name                                        ID   Mem VCPUs     State   Time(s)
  Domain-0                                     0  1024     2     r-----   1096.0

  二、狀態恢復

  

# 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

 

7、數據實時轉移

   實驗環境

   172.16.13.3 節點

   172.16.13.8 節點

   上述兩個節點配置的xen環境相同(xen的版本相同、磁盤鏡像文件相同、橋設備配置相同),關於xen的安裝配置,虛擬機的建立及操做系統的安裝請參考個人一篇關於xen的博客


  一、172.16.13.3服務器配置狀況

   

 # 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共享,將磁盤鏡像文件共享

   

 # vim /etc/exports
  /xen/vm1    192.168.1.0(rw,no_root_squash)
 # service nfs start

  查看當前虛擬機運行狀態

  

 # xm  list 
 Name                                        ID   Mem VCPUs      State   Time(s)
 Domain-0                                     0  1024     2     r-----   1054.2
 centos6                                      7   512     1     -b----     35.5


二、172.16.13.8服務器配置

  1)建立磁盤鏡像文件目錄

 # mkdir -pv  /xen/vm1

  2)建立橋設備,保證兩臺機器的橋設備相同

  

 # 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)掛載共享文件,保證兩臺機器的磁盤鏡像文件相同

  

 # mount -t nfs 172.16.13.3:/xen/vm1 /xen/vm1 
 # cd  /xen/vm1 
 # ls 
  centos6.qcow2

 4)修改xen數據遷移的配置文件

  

 # 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)查看當前虛擬機實例運行狀況

 

 # xm  list
 Name                                        ID  Mem   VCPUs      State   Time(s)
 Domain-0                                     0  1024     2       r-----   1054.2

 一切準備就緒,接下來咱們進行xen的數據遷移


 三、172.16.13.3服務器上的虛擬機實例配置ip地址,並ping探測連通性

  

 # cd /etc/xen
 # xm create -c centos6
  進入虛擬後臺更改ip地址
 # ifconfig eth0 172.16.13.100

  客戶端ping測試

  wKiom1OBYYHyhn5lAANUaxJYeXk494.jpg


  數據遷移

  

 # xm  migrate -l centos6  172.16.13.8 將當前主機虛擬機實例遷移到172.16.13.8服務器上

四、咱們去172.16.13.8服務器查看數據遷移狀況

   查看運行的虛擬機實例

# 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數據的動態實時遷移



PS:數據遷移的配置過程當中,咱們使用了nfs共享,同時咱們也可使用iscsi磁盤共享存儲,固然高可用文件系統爲最佳選擇!

相關文章
相關標籤/搜索