Centos
如何計算 Linux 物理捲和卷組元數據成本?
我正在嘗試使用 kickstart 文件安裝 CentOS 7.4 系統並收到以下錯誤:“新 lv 太大,無法放入可用空間”
有一條額外的消息表明需要 752.85MiB。
以下是 kickstart 文件的相關部分:
part pv.00 --size=77824 --asprimary volgroup vg00 pv.00 logvol / --fstype=ext4 --name=lv_root --vgname=vg00 --size=40960 logvol /tmp --fstype=ext4 --name=lv_tmp --vgname=vg00 --size=16384 --fsoptions="nodev,noexec,nosuid" logvol /var --fstype=ext4 --name=lv_var --vgname=vg00 --size=16384 --fsoptions="nodev,nosuid" logvol swap --name=lv_swap --vgname=vg00 --size=4096
如您所見,邏輯卷的總大小等於物理卷的大小:40960 + 16384 + 16384 + 4096 = 77824
很明顯,有一些成本或元數據佔用了物理卷或卷組的一部分,但不清楚如何計算。
我花了一上午的時間在Google上搜尋,找不到任何資訊,即使在 RedHat 的高級 LVM 配置指南中也是如此。
出於這個答案的目的,假設 –grow 不是一個選項,我需要知道確切的計算(在這個之後會有另一個物理卷需要增長,所以這個需要是固定大小)。
- 預設情況下,LVM2 元數據為每個物理卷 1 MiB。您可以
pvs -o +pe_start
準確地找出有效負載的開始位置。- 卷組和邏輯卷沒有元數據成本;只有物理卷攜帶元數據。
- 同樣預設情況下,LVM 使用 4 MiB 的物理範圍。
最終結果是,如果出於審美原因您想
pvdisplay
展示“not usable 0
”,那麼您必須:
- 要麼使每個物理捲成為 4 MiB + 1 MiB 的倍數,
- 或者,您使用
-s 1m
, 創建卷組以具有 1 MiB 的物理範圍。資料來源:
- 根據此送出,數據區域的預設對齊方式(反映在有效負載區域的起始扇區中
pvs -o +pe_start
)為 1 MiB 。這實際上是一個可配置的參數,請參閱手冊頁;它當然可以在物理卷創建時對每個物理捲進行控制。lvm.conf
- 預設物理範圍大小記錄在手冊頁中
vgcreate
:-s , –physicalextentsize PhysicalExtentSize [
bBsSkKmMgGtTpPeE
]設置此卷組的物理卷上的物理盤區大小。大小後綴(
k
千字節到t
兆字節)是可選的,如果沒有後綴,則預設為兆字節。對於 LVM2 格式,該值必須至少為 1 個扇區(其中扇區大小是目前在 VG 中使用的 PV 的最大扇區大小)或 8KiB 對於 LVM1 格式,並且必須是 2 的冪。預設值為 4 MiB。