在 LVM 精簡池中為管理 VM 保留可用空間

在 LVM 精簡池中為管理 VM 保留可用空間

我的目標是LVM 精簡配置的預設配置,該配置足夠靈活,可以為一個管理VM LV (VolA) 與用戶LV(VolU1、VolU2、VolU3 ...)保留安全裕度,即使不同的管理員(在單獨的安裝上)在各自的管理虛擬機器中使用不同數量的磁碟空間。

例如,一名管理員可能在 System1 的 VolA 中使用 4GB,但另一名管理員可能在 System2 的 VolA 中使用 50GB。這意味著第一個管理員無法接受 50GB 的固定大小磁碟區(反之亦然),因此需要將 VolA 與其他「使用者」VM 磁碟區一起放入精簡池中以實現靈活性。無法為這些系統手動自訂安裝。

更多要求:

  • 管理虛擬機器是儲存主機,從精簡池運行
  • 用戶虛擬機器佔用同一個池
  • 超額供應;所有 LV 虛擬大小 = 實體磁碟大小。

當使用者缺乏經驗、使用者虛擬機器中的錯誤或 DoS 嘗試導致分配所有剩餘可用空間為其使用者磁碟區(VolU1、VolU2 等)保留 VolA 沒有可用空間,且管理 VM 無法啟動或正常運作。

解決方案/故障保護應該盡可能自動和被動。理想的解決方案可能是為所有使用者 LV 設定 LVM 屬性,允許它們僅在 時分配空間poolFree < N,而 VolA 沒有這樣的限制。但我一直無法在 Linux LVM 中找到這樣的功能,需要建議。


經過一些研究後,似乎解決方案可能涉及使用設定來dmeventd在達到閾值時執行命令(例如“暫停所有虛擬機器”)。我在網路上找到的一個較新的手冊頁dmeventd說,這可以透過dmeventd/thin_commandlvm.conf 中的設定實現;看來這個功能是在 2017 年 5 月添加的,所以我必須找到一個向後移植。

另一種選擇可能是將以下規則新增至 rsyslog.conf 中:

:msg, contains, "some dmeventd message"  ^my_pause_vm_script

答案1

如果您想防止使用者過度分配與您的管理主機相同的精簡池,那麼您可能需要對此分配採取不同的方法。

您可以將管理工作負載分離到單獨的精簡池中。如果您過度分配,那麼為池提供更具彈性可分配的後備存儲以處理臨時過度分配通常是一個好方法。一個簡單的好方法是為您的池保留一些較大且較慢的 LUN 作為廉價的「緊急」PV。

我知道 LVM 可以使用它自己的配置來進行緊急擴展,但我是在火腿三明治上寫的,它幾乎無法擺脫自己的方式,所以我稍後必須找到該文件。

相關內容