天天看點

虛拟化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

<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 &amp;</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" &gt;&gt; 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,如需轉載請自行聯系原作者

繼續閱讀