忍不住再次吐槽,新換的這個編輯器真的不好用,希望能夠換回原來,尤其是這個字數的限制,真心不好用
言歸正傳,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
<code>[root@node1 ~]</code><code># yum install libvirt -y</code>
<code>[root@node1 ~]</code><code># yum install virt-manager -y</code>
2.啟動
<code>[root@node1 ~]</code><code># service libvirtd start</code>
<code>[root@node1 ~]</code><code># virt-manager &</code>
3.檢視原來的安裝的系統
可以看到原來安裝的centos6可以看到,使用Open便可以打開centos6的界面
4.安裝新的虛拟機
半虛拟化狀态隻能基于網絡安裝,而全虛拟化可以基于ISO和--pxe安裝,
在虛拟機中開啟全虛拟化
輸入安裝書的ip位址,安裝樹的設定請看前文
設定記憶體大小和cpu的個數
設定硬碟的大小
一些摘要資訊
開始安裝,安裝過程通前文一樣
5.登陸成功
6.通過指令檢視
3
4
5
<code>[root@node1 ~]</code><code># xm list</code>
<code>Name ID Mem VCPUs State Time(s)</code>
<code>Domain-0 0 512 2 r----- 3673.3</code>
<code>centos6 9 512 1 -b---- 49.6</code>
<code>centos6.5 10 512 1 r----- 225.4</code>
二、通過virt-install安裝虛拟機
1.安裝vier-viewer,virt-install依賴以vier-viewer
<code>[root@node1 ~]</code><code># yum install -y virt-viewer</code>
2.安裝虛拟機,為了便于觀察本次還是在vnc中安裝,
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code> </code><code>建立磁盤,本處使用</code><code>dd</code><code>建立,也可以在建立虛拟機的時候建立磁盤</code>
<code> </code><code>[root@node1 ~]</code><code># virt-install -n rhel6 -r 512 --vcpus=1 -l http://192.168.1.201/centos6 --disk path=/xen/vm/rhel6.img --network bridge=br0</code>
<code> </code><code>virt-</code><code>install</code><code>指令解釋:</code>
<code> </code><code>-n NAME, --name=NAME </code><code>//</code><code>虛拟機的名稱</code>
<code> </code><code>-r MEMORY, --</code><code>ram</code><code>=MEMORY </code><code>//</code><code>虛拟機的記憶體</code>
<code> </code><code>--vcpus=VCPUS </code><code>//cpu</code><code>的個數,格式如下</code>
<code> </code><code>--vcpus 5</code>
<code> </code><code>--vcpus 5,maxcpus=10</code>
<code> </code><code>--vcpus sockets=2,cores=4,threads=2</code>
<code> </code><code>-c CDROM, --cdrom=CDROM </code><code>//</code><code>通過光驅安裝</code>
<code> </code><code>-l LOCATION, --location=LOCATION </code><code>//</code><code>通過網路安裝</code>
<code> </code><code>--pxe </code><code>//</code><code>通過pxe安裝,隻能在全虛拟化時使用</code>
<code> </code><code>--os-</code><code>type</code><code>=DISTRO_TYPE </code><code>//</code><code>發行版類型</code>
<code> </code><code>--os-variant=DISTRO_VARIANT </code><code>//</code><code>發行版本,如“rhel6”“windows2003”等</code>
<code> </code><code>--disk=DISKOPTS </code><code>//</code><code>磁盤映像,格式如下.</code>
<code> </code><code>--disk path=</code><code>/my/existing/disk</code>
<code> </code><code>--disk path=</code><code>/my/new/disk</code><code>,size=5 (</code><code>in</code> <code>gigabytes)</code>
<code> </code><code>--disk vol=poolname:volname,device=cdrom,bus=scsi,...</code>
<code> </code><code>-w NETWORK, --network=NETWORK </code><code>//</code><code>網絡類型,格式如下</code>
<code> </code><code>--network bridge=mybr0</code>
<code> </code><code>--network network=my_libvirt_virtual_net</code>
<code> </code><code>--network network=mynet,model=virtio,mac=00:11...</code>
3.開始安裝
4.安裝完成,登陸成功
5.通過指令行檢視
<code>Domain-0 0 485 2 r----- 4978.6</code>
<code>centos6 9 512 1 -b---- 55.0</code>
<code>centos6.5 11 512 1 -b---- 31.2</code>
<code>rhel6 12 512 1 -b---- 627.6</code>
6.通過virt-manager檢視
三、動态添加裝置
1.動态添加磁盤
<code>建立硬碟</code>
<code>[root@node1 ~]</code><code># qemu-img create -f qcow2 -o size=20G,preallocation="metadata" /xen/vm/test.img</code>
<code>添加到centos6.5中</code>
<code>[root@node1 ~]</code><code># xm blcok-attach centos6.5 file://xen/vm/test.img xvdb w</code>
<code>[root@node1 ~]</code><code># xm block-list centos6.5</code>
<code>Vdev BE handle state evt-ch ring-ref BE-path</code>
<code>51712 0 0 4 10 8 </code><code>/local/domain/0/backend/vbd/11/51712</code>
<code>51728 0 0 4 12 857 </code><code>/local/domain/0/backend/vbd/11/51728</code>
<code>删除裝置</code>
<code>[root@node1 ~]</code><code># xm block-detach centos6.5 51728</code>
<code>51712 0 0 4 10 8 </code><code>/local/domain/0/backend/vbd/11/51712</code>
2.添加網絡裝置,與添加磁盤相似
更多指令請查考xm --help
四、虛拟機的動态遷移
目前運作狀态
<code>Domain-0 0 493 2 r----- 88.3</code>
<code>centos6 2 512 1 -b---- 0.0</code>
<code>[root@node2 ~]</code><code># xm list</code>
<code>Domain-0 0 493 2 r----- 81.4</code>
1.修改配置檔案,兩台機器的配置相同
<code>[root@node1 ~]</code><code># grep xend-relocation /etc/xen/xend-config.sxp |grep -v "#"</code>
<code>(xend-relocation-server </code><code>yes</code><code>)</code>
<code>(xend-relocation-port 8002)</code>
<code>(xend-relocation-address </code><code>''</code><code>)</code>
<code>(xend-relocation-hosts-allow </code><code>''</code><code>)</code>
<code>[root@node2 ~]</code><code># grep xend-relocation /etc/xen/xend-config.sxp |grep -v "#"</code>
2.為磁盤映像檔案準備共享存儲,本處使用的為nfs,也可以基于别的機制做,關于nfs的詳細使用,請參照本人博文http://wangfeng7399.blog.51cto.com/3518031/1383400
<code>[root@node1 ~]</code><code># vi /etc/exports </code>
<code>/xen/vm</code> <code>192.168.1.0</code><code>/24</code><code>(rw,no_root_squash)</code>
<code>[root@node1 ~]</code><code># service nfs restart</code>
<code>[root@node2 ~]</code><code># mount -t nfs 192.168.1.201:/xen/vm/ /xen/vm/</code>
3.為了確定實驗的可用性,我們在虛拟機上建立一個檔案,退出虛拟機的指令為ctrl+]
<code>[root@localhost ~]</code><code># echo "wangfeng7399" >> test.txt</code>
4.遷移虛拟機
<code>[root@node1 ~]</code><code># xm migrate -l centos6 192.168.1.202</code>
5.在遷移的過程中,我們一直對虛拟機做ping操作
可以看到我們的ping操作中間沒有斷過
6.檢視虛拟機運作狀态
<code>Domain-0 0 496 2 r----- 72.4</code>
<code>centos6 1 512 1 -b---- 0.0</code>
<code>Domain-0 0 493 2 r----- 80.6</code>
7.檢視我們先前建立的檔案
<code>[root@localhost ~]</code><code># cat test.txt </code>
<code>wangfeng7399</code>
可以看到我們建立的檔案也都在,這證明在不間斷業務的前提下,對虛拟機做實時動态遷移是成功的,後期的改進方法,如果能夠實時監測實體機的狀态,在發現實體機出現故障的情況下,能夠觸發腳本對虛拟機做實時動态遷移将會更加完美!
本文轉自wangfeng7399 51CTO部落格,原文連結:http://blog.51cto.com/wangfeng7399/1415586,如需轉載請自行聯系原作者