最近搞了個機器。想搞成同時支持openvz和kvm虛擬化技術的host。從原理上講認為問題不大,因為兩者分別是不同層面的虛擬化技術,一個是硬件級別虛擬化,一個是cgroup水平的進程級虛擬化(對這塊了解不深,說錯勿怪)。所以還是可能同時安裝的。
搜了下方案,果然有個proxmox的發行版是解決這個需求的。看了下文檔,集成了一堆面板啥的,東西越多bug就越多。還是自己diy一個。
由于openvz是需要打過patch的內核運行,而kvm則需要kvm和kvm_intel內核模塊的加載(amd的就是kvm_amd)。所以難點就是這個的兼容。其他用戶態的進程如果有沖突啥的都好解決。
首先選用debian7(我喜歡debian),發現需要用openvz的源,源里使用的openvz內核是2.6.32。而debian7的內核目前是3.2。風險比較大。從源里拖了openvz內核deb包下來看,發現居然32位的內核不帶kvm模塊,而64位的才有。哭了。不知道他們咋搞的。于是64位系統搞起。結果發現kvm_intel加載不進去。報input/output err。用-f強制加載后報簽名被拒絕。估計編譯的時候哪里錯了,雖然有內核源碼和.config,不過還是不自己編譯了,太折騰。
還是用debian6。debian6的官方源里已經包含openvz了。內核版本也是2.6,32系列。跟debian6默認內核版本相同。這個感覺靠譜。裝上重啟進入openvz內核。modprobe加載kvm內核模塊。ok,成功了。
下一步就是進程和網絡上的調整了。都不是大問題。
結論是:openvz目前還是建議用debian6官方源里的包。兼容性好。