Centos

KVM/libvirt 主機和來賓之間共享的 LVM 卷組:這是一個壞主意嗎?

  • November 12, 2010

我剛剛建構了一個全新的基於 KVM/libvirt 的虛擬機主機,包含 4 個 SATA II 硬碟,執行 CentOS 5.5 x86_64。

我決定將虛擬機磁碟創建為作為 libvirt 儲存池管理的 LVM 卷組中的邏輯卷,而不是將磁碟創建為 qcow 映像的通常做法。

我無法決定是應該在 VM 主機的捲組還是在專用卷組中創建虛擬機邏輯卷。

我應該選擇哪種方法,為什麼?


方法一:使用VM主機的捲組

執行:

  • md0包含/boot文件系統的小型 RAID1
  • 大 RAID10md1佔用剩餘空間,其中包含一個 LVM 卷組vghostvghost包含 VM 主機的根文件系統和交換分區
  • vghost根據需要創建虛擬機磁碟作為邏輯卷

優點:

  • vghost如果虛擬機主機的根文件系統空間不足,我可以相對輕鬆地分配更多空間
  • 系統已經啟動並執行(但重新開始也沒什麼大不了的)

缺點:

儘管這種方法似乎行得通,但我無法擺脫這在某種程度上是個壞主意的感覺。我覺得:

  • 這可能以某種方式存在安全風險
  • 在將來的某個時候,我可能會發現設置有一些限制,並希望我使用一個專門的組
  • 系統(CentOS、libvirt 等)可能並非真正設計為這樣使用,因此在某些時候我可能會意外損壞/失去 VM 主機的文件和/或文件系統

方法二:使用專用卷組

執行:

  • md0md1方法 1相同,只是要md1足夠大以容納 VM 主機(例如 5 到 10GB)
  • 大RAID10md2佔用剩餘空間。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。

引用自:https://serverfault.com/questions/200728