KVM/libvirt 主機和來賓之間共享的 LVM 卷組:這是一個壞主意嗎?
我剛剛建構了一個全新的基於 KVM/libvirt 的虛擬機主機,包含 4 個 SATA II 硬碟,執行 CentOS 5.5 x86_64。
我決定將虛擬機磁碟創建為作為 libvirt 儲存池管理的 LVM 卷組中的邏輯卷,而不是將磁碟創建為 qcow 映像的通常做法。
我無法決定是應該在 VM 主機的捲組還是在專用卷組中創建虛擬機邏輯卷。
我應該選擇哪種方法,為什麼?
方法一:使用VM主機的捲組
執行:
md0
包含/boot
文件系統的小型 RAID1- 大 RAID10
md1
佔用剩餘空間,其中包含一個 LVM 卷組vghost
。vghost
包含 VM 主機的根文件系統和交換分區vghost
根據需要創建虛擬機磁碟作為邏輯卷優點:
vghost
如果虛擬機主機的根文件系統空間不足,我可以相對輕鬆地分配更多空間- 系統已經啟動並執行(但重新開始也沒什麼大不了的)
缺點:
儘管這種方法似乎行得通,但我無法擺脫這在某種程度上是個壞主意的感覺。我覺得:
- 這可能以某種方式存在安全風險
- 在將來的某個時候,我可能會發現設置有一些限制,並希望我使用一個專門的組
- 系統(CentOS、libvirt 等)可能並非真正設計為這樣使用,因此在某些時候我可能會意外損壞/失去 VM 主機的文件和/或文件系統
方法二:使用專用卷組
執行:
md0
與md1
方法 1相同,只是要md1
足夠大以容納 VM 主機(例如 5 到 10GB)- 大RAID10
md2
佔用剩餘空間。md2
包含一個 LVM 卷組vgvms
,其邏輯卷僅供虛擬機使用優點:
- 我可以修補而
vgvms
不必擔心破壞主機作業系統- 這似乎是一個更優雅和安全的解決方案
缺點:
- 如果 VM 主機的文件系統空間不足,我將不得不將其文件系統的一部分(例如 /usr 或 /var)移動到
vgvms
,這看起來不太好。- 我必須重新安裝主機作業系統(如前所述,我真的不介意這樣做)
更新#1:
我擔心方法2中VM主機磁碟空間不足的一個原因是因為我不知道VM主機是否足夠強大以執行虛擬機中的所有服務,即。我可能必須將部分/所有服務從虛擬機遷移到主機作業系統。
VM主機硬體規格:
- Phenom II 955 X4 黑版處理器(3.2GHz,4核CPU)
- 2x4GB 金士頓 PC3-10600 DDR3 記憶體
- 技嘉GA-880GM-USB3主機板
- 4x WD Caviar RE3 500GB SATA II 硬碟(7200rpm)
- Antec BP500U Basiq 500W ATX電源
- CoolerMaster CM 690 機箱
更新#2:
在方法 1 中我覺得系統可能沒有設計為將主機 VG 用作 libvirt 儲存池的一個原因是我在 virt-manager 中註意到的一些行為:
- 添加後,它抱怨它無法啟動VG(顯然,因為主機作業系統已經啟動了它)
- 刪除後,它拒絕這樣做,因為它無法停用 VG(顯然,因為主機作業系統仍在使用根和交換 LV)
深思熟慮的問題!
我會選擇方法 2,但這更多是個人喜好。對我來說,方法 2 的缺點並不是什麼大問題。我沒有看到主機作業系統超過其 5-10GB 分區,除非你開始在上面安裝額外的東西,你真的不應該這樣做。為了簡單和安全起見,主機作業系統確實應該是最低限度的安裝,除了管理所需的最低限度(例如 sshd)之外不執行任何東西。
IMO,方法 1 的缺點也不是真正的問題。我認為不會有任何額外的安全風險,因為如果有根虛擬機能夠以某種方式突破其分區並感染/損壞其他分區,那麼將主機作業系統放在單獨的 VG 上可能不會有任何區別。其他兩個缺點不是我可以從直接經驗中得出的結論,但我的直覺告訴我,CentOS、LVM 和 libvirt 足夠靈活和健壯,不用擔心它們。
編輯 - 對更新 1 的響應
如今,虛擬化對性能的影響非常低,尤其是使用內置支持它的處理器,所以我認為將服務從客戶虛擬機轉移到主機作業系統是不值得的。通過在“裸機”上執行,您**可能會獲得 10% 的速度提升,但您將失去擁有小型、緊湊、安全的主機作業系統的好處,並可能影響整個伺服器的穩定性。**不值得,海事組織。
鑑於此,我仍然傾向於方法 2。
對更新 2 的響應
似乎 libvirt 假設儲存佈局的特定方式是支持方法 2 的另一點。我的建議是:使用方法 2。