Centos

如何計算 Linux 物理捲和卷組元數據成本?

  • August 22, 2020

我正在嘗試使用 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。

引用自:https://unix.stackexchange.com/questions/410288