如何在 CentOS 6 上設置嵌套式虛擬
1. 引言
在某些情況下,你或許會想先測試或確認一套虛擬化設置,然後才把它推行在實物上。這時候的話,最理想的做法就是把你的監督器主機設置成虛擬機器,然後在當中運行虛擬機器。這個在擬擬機器內運行虛擬機器的做法名為嵌套式虛擬。
嵌套式虛擬是一個可透過內核參數來啟用的功能。很可惜,現有的 CentOS 內核暫時並未支援此參數。
2. 開始之先
你可以透過檢查 /sys/module/kvm_intel/parameters/nested 這個檔案來確定你的系統是否支援 nested 這個參數。
在一台預設的 CentOS 6 系統上此檔案並不存在。有幸地,我們擁有 xen-c6 計劃(http://dev.centos.org/centos/6/xen-c6/ ),它提供了一個支援 nested 參數的內核!
3. 第 1 步:把 xen-c6 軟件庫加進你的系統
- su -
- cd /etc/yum.repos.d
- yum repolist
- [選擇性] vi xen-c6.repo :修改為 enabled=0 令軟件庫不會被預設成啟用的
4. 第 2 步:安裝新的內核
- su -
- yum --enablerepo xen-c6 install kernel kernel-firmware
- vi /boot/grub/grub.conf :在 kernel 那一行的末端加上 kvm-intel.nested=1
- 重新開機
- 確定能正常運作:cat /sys/module/kvm_intel/parameters/nested 會輸出 Y
5. 第 3 步:設置監督器的虛擬機器
若要設置生效,我們的虛擬機器內的虛擬處理器必須擁有 vmx 這個旗標。
我會在這篇教學文檔內採用 virt-manager。當然,你可以利用 XML 檔及 virsh 來取得同一效果。
- virt-manager
開啟監督器虛擬機器,進到 Details(內容)> Processor(處理器)
- 展開 Configuration(設定)
- 按 Copy host CPU configuration(複製主機處理器設定)按鈕
- 展開 CPU Features(處理器功能)
- 確保 vmx 功能已設定為 require(必須的)
- 按 Apply(應用)
啟動監督器虛擬機器,然後你會發現 libvirtd 正在虛擬機器內運行!
(來源: http://technotes.nocoffee.nl )
Translation of revision 2