キックスタートファイルを使用してCentOS7.4システムをインストールしようとしていますが、次のエラーが発生しました:「新しいlvが大きすぎて空き領域に収まりません」
752.85MiBが必要であるという追加のメッセージがあります。
キックスタートファイルの関連部分は次のとおりです。
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
明らかに、物理ボリュームまたはボリュームグループの一部を占めるオーバーヘッドまたはメタデータがありますが、それがどのように計算されているかは不明です。
私は午前中ずっとこれをグーグルで検索しましたが、RedHatの高度なLVM構成ガイドでも情報を見つけることができませんでした。
この答えの目的のために、--growはオプションではなく、正確な計算を知る必要があると仮定します(このボリュームの後に、拡張する必要がある別の物理ボリュームがあるため、これは固定サイズである必要があります)。
デフォルトでは、LVM2メタデータは物理ボリュームあたり1MiBです。 pvs -o +pe_start
を使用して、ペイロードの開始位置を正確に確認します。
ボリュームグループと論理ボリュームにはメタデータのオーバーヘッドがありません。物理ボリュームのみがメタデータを保持します。
また、デフォルトでは、LVMは4 MiBの物理エクステントを使用します。
最終的な結果は、審美的な理由でpvdisplay
に「not usable 0
」を表示させたい場合は、次のことを行う必要があります。
各物理ボリュームを4MiB + 1MiBの倍数にします。
または、-s 1m
を使用してボリュームグループを作成し、物理エクステントを1MiBにします。
出典:
データ領域のデフォルトの配置(ペイロード領域pvs -o +pe_start
の開始セクターに反映)は、 このコミット に従って1MiBです。これは実際には設定可能なパラメータです。 lvm.conf
のマニュアルページを参照してください。もちろん、物理ボリュームの作成時に物理ボリュームごとに制御できます。
デフォルトの物理エクステントサイズは、 vgcreate
のマニュアルページに記載されています。
-s、-physicalextentsizePhysicalExtentSize [
bBsSkKmMgGtTpPeE
]
このボリュームグループの物理ボリュームの物理エクステントサイズを設定します。サイズのサフィックス(キロバイトの場合はk
からテラバイトの場合はt
まで)はオプションであり、サフィックスが存在しない場合はメガバイトがデフォルトです。値は、LVM2フォーマットの場合は少なくとも1セクター(セクターサイズはVGで現在使用されているPVの最大セクターサイズです)またはLVM1フォーマットの場合は8KiBでなければならず、2の累乗でなければなりません。デフォルトは4 MiBです。
コマンド dmsetup table
は、PV内のLVの開始位置を示します。古いシステムのPVの場合、最小オフセットは384です。
start cmd: # dmsetup table | grep '\b384$'
storage-images: 0 62914560 linear 9:9 384
linux0-home: 0 2097152 linear 9:0 384
ただし、新しいシステムではオフセットは大きくなります。
linuxbackup-rootfs: 0 18874368 linear 9:1 2048
これはおそらく、LVMのバージョン(またはディストリビューション固有の構成)に応じて、最初の384または2048セクターがPVおよびVGメタデータ用に予約されていることを意味します。 PVの最後にメタデータがある場合もあります(強制した場合)。
関連する値を知りたい場合は、VGを作成して、使用されている値を確認するだけです。しかし、あなたの目的のためには、より大きな値で計算するだけで十分かもしれません。