XenServer 使用筆記


XenServer 模擬千兆網卡

這兩天用 XenServer 安裝 VM,其中一台 VM 是用作無盤測試的 Linux Server,不在主流發行版之列,無奈 XenServer 日前對非主流的 Linux 支持不是很給力,默認模擬的兩張網上為 Realtek Semiconductor. Co. RTL 8139/8139C,但 VM Linux Server 對這個支持又不好,折騰了半天,VM 中沒有 NIC(Network Interface Cards)

晚上在這里找到了解決方案:http://www.netservers.co.uk/articles/open-source-howtos/citrix_e1000_gigabit

XenServer 不允許用戶選擇 VM 使用的網上類型,而默認模擬給 VM 用的網上是 RTL 8139 百兆級網上,XenServer 使用 QEMU 模擬客戶機的設備,其中有個隱藏的功能是模擬千兆網卡,可以解決非主流 Linux 發行版不能半虛擬化(paravirtualization)的性能瓶頸(bottleneck),當然,也能解決我遇到的問題,原文對此問題的解決方式如下:

 

1. 在 XenServer 中執行如下命令:

# mv /usr/lib/xen/bin/qemu-dm /usr/lib/xen/bin/qemu-dm.orig

2. 在 XenServer 中編輯新的 /usr/lib/xen/bin/qemu-dm 如下:

1 #!/bin/bash
2 oldstring=$@
3 newstring=${oldstring//rtl8139/e1000}
4 exec /usr/lib/xen/bin/qemu-dm.orig $newstring

3. 將新的 qemu-dm 設置為可執行並禁止更改:

# chmod 755 /usr/lib/xen/bin/qemu-dm
# chattr +i /usr/lib/xen/bin/qemu-dm

注意,chattr 命令使 qemu-dm 不能被更改,這樣在升級時可以會失敗,解決辦法是在升級前執行 chattr -i /usr/lib/xen/bin/qemu-dm

 

XenServer 中綁定多張網卡

個人感覺 XenServer 6.2 中的 xeconsole 人性化做的還行,但功能的豐富程度尚可提高,因為里面的網絡管理居然沒提供網上綁定功能。

找了些資料發現,XenServer 在 bash 中綁定網卡的做法如下:

 1 root@xxx # xe pif-list        # 列出物理網卡  2 uuid(RO)               : UUID0  3 device(RO)             : eth0
 4 currently-attached(RO) : true
 5 VLAN(RO)               : -1
 6 network-uuid(RO)       : N_UUID0
 7 
 8 uuid(RO)               : UUID1  9 device(RO)             : eth1
10 currently-attached(RO) : true
11 VLAN(RO)               : -1
12 network-uuid(RO)       : N_UUID1
13 root@xxx # xe network-create name-lable="bond0+1"   # 創建名為 bond0+1 的網卡 14 uuuuuuuu-uuuu-uuuu-uuuu-uuuuuuuuuuuu                # 新建網卡的 UUID_bond 15 root@xxx # xe bond-create network-uuid=UUID_bond pif-uuids=UUID0,UUID1 [mode=<balance-slb|active-backup>] 16 root@xxx # xe network-list                          # 列出網卡,查看綁定是否生效

上述的 mode=balance-slb|active-backup 是 XenServer 支持的兩各綁定模式。這兩個模式是關於負載均衡和失效保護的。balance-slb 為負載均衡模式(Server Load Balance),即兩塊網卡都工作,active-backup 是失效保護模式的冗余功能,即綁定的兩塊網卡一主一備份。默認是 balance-slb 模式。

實際上網上綁定可以有 7 種模式,以后有機會可以去了解。

 

設置虛擬機自啟動

在XenServer的較早前版本(6.0以前)中,啟動XenServer時,可以選擇自動啟動在其中安裝的虛擬機。這個功能在XenServer 6.0中被Citrix取消了,原因是會干擾到XenServer的HA(高可用性)和Failover(故障轉移)功能的兼容性。但是,如果只運行一個XenServer,這個功能還是非常好的。

在XenServer 6.0中,自動啟動虛擬機仍然是可以辦到的。這需要在“Pool Level”上開啟自啟動功能,並且,在需要自啟動的虛擬機上使用命令行進行設置。

1 獲取 Pool 的 UUID

root@server# xe pool-list
uuid ( RO)        : POOL-UUID
name-label ( RW)  : TestPool
name-description ( RW):
master ( RO)      : 74fc086b-8c89-4918-b69e-369fcb19847d
default-SR ( RW)  : bebb142a-d986-acac-d4f4-636de937d28b

2 設置 Pool 的自啟動

root@server# xe pool-param-set uuid=POOL-UUID other-config:auto_poweron=true

3 獲取需要設置為自啟動的虛擬機的 UUID(以名稱為“W2K08”的虛擬機為例)

root@server# xe vm-list name-label="W2K08" 
uuid ( RO)        : VM-UUID
name-label ( RW)  : W2K08
power-state ( RO) : running

如果要得到簡介的結果(即只希望輸出UUD),可以使用如下命令:

root@server# xe vm-list name-label="W2K08" params=uuid --minimal

4 設置虛擬機的自啟動

root@server# xe vm-param-set uuid=VM-UUID other-config:auto_poweron=true

 

2015-05-30 append:

本地補丁上傳執行

# xe patch-upload ...
# xe patch-list
# xe patch-apply uuid=... host-uuid=...

 

使用本地 ISO 作為 Storage Repository (SR)

# xe sr-create type=iso name-label="local isos" device-config:location=/folder-to-isos device-config:legacy_mode=true content-type=iso  # mount iso locally first

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM