本文將介紹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管理界面
點擊新建centos
想要使用上圖中的本地安裝介質安裝,須要確保可以實現硬件輔助的全虛擬化,以下圖所示bash
繼續安裝操做系統服務器
等待系統安裝完畢,一個虛擬機的操做系統安裝實現,接下來咱們返回控制檯網絡
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...
待系統安裝完畢後,登陸虛擬機系統
此時咱們能夠經過ssh鏈接虛擬機進行管理
咱們同時也能夠在virt-manager控制檯進行管理,再也不重述
3、磁盤熱插拔
一、鏈接入虛擬機管理後臺
# cd /etc/xen # create -c centos6 查看當前系統磁盤
二、再次建立一個磁盤鏡像文件
# 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
在運行的虛擬機上查看磁盤狀況
在機器運行的狀況下,我麼恩已經將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
虛擬機上查看磁盤狀況
在機器運行的狀況下已經成功拆除磁盤xvdb
4、網卡熱插拔
一、連入虛擬機控制檯
# cd /etc/xen/ # create -c centos6
二、添加一塊網卡,在xen hypervisor上操做
# xm network-attach 直接能夠查看幫助 # xm network-attach centos6 bridge=br0 # xm network-list centos6 查看
虛擬機系統查看網卡狀況
三、拆除網卡
# xm network-detach centos6 1 (1爲網卡ID號,xm network-list便可得到,上圖有) # xm network-list
查看網卡狀況
網卡eth1已經拆除
5、xm top工具的使用
xm top工具能夠動態的偵聽當前全部的虛擬機的資源活動狀態
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測試
數據遷移
# 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地址
而此時的客戶端ping狀況
網絡連通性良好,通常來說在數據的遷移過程當中會出現1-4個數據包的丟失,並不影響業務的正常運行,所以能夠視爲xen數據的動態實時遷移
PS:數據遷移的配置過程當中,咱們使用了nfs共享,同時咱們也可使用iscsi磁盤共享存儲,固然高可用文件系統爲最佳選擇!