Lvm
為什麼要調整 PV 的大小而不是添加新的 PV?
當您增加現有塊設備的大小時(例如 /dev/sdc 從 vmware 獲得 20 gigs,現在已增加到 40 gigs),您需要為 LVM 做一些工作以使用該空間。我見過的所有指南(1、2、3)都建議刪除現有分區並在末尾添加額外空間重新創建它,然後執行 pvresize。
pvresize /dev/sdc1
您也可以創建 /dev/sdc2 並執行pvcreate /dev/sdc2
並將其添加到 VG,而不是調整 /dev/sdc1 的大小然後執行。為什麼調整大小比添加新分區更好,或者只是按照它一直以來的方式調整大小,是否存在技術或性能原因?
總結:從純粹的技術角度來看,它並沒有太大的區別,但調整大小更好。一旦您添加了實際方面,添加新分區顯然是贏家。
從嚴格的技術角度來看,新 PV 有一些缺點:
- 您將獲得 LVM 元數據的另一個副本,這會佔用一些磁碟空間。如果經常做 LVM 操作,也會造成寫放大(因為元數據會鏡像到所有 PV)
- 可能有剩餘空間用於對齊
- 略微增加 LVM 元數據(每個副本)的數量,以儲存有關新 PV 的資訊。
- 如果您創建一個跨越兩個 PV 的 LV,則它不是連續的(由於額外的元數據和任何對齊的孔)。因此,例如,如果您使用該 LV 進行大的順序讀/寫,現在那裡有一個搜尋。
從實際的角度來看,對於任何合理數量的 PV,這些都不重要。元數據的額外副本首先很重要,但是有一個 LVM 選項可以保留更少的副本( VG
--metadatacopies
或 PV--metadataignore
)。此外,繼續實際的觀點,刪除和重新創建分區比創建新分區更容易遭受管理錯誤(拼寫錯誤等),因為後者有更好的工具。並且發生的任何管理錯誤都可能對調整大小更具破壞性(因為您的數據位於調整大小的分區上,但新分區上沒有數據)。當您有多個圖層時,情況會更糟;例如,低於 LVM 的 mdraid。根據您的
-e
選擇,超級塊可以位於陣列的末尾 — 當您調整分區大小時會很有趣。我想到了一個例外:如果由於某種原因您無法創建新分區。例如,您可能正在使用 DOS 分區表,並且您已經使用了所有四個主分區(沒有創建擴展分區)。那你別無選擇。