lvextend が指定された量よりも少ないスペースを割り当てるのはなぜですか?

lvextend が指定された量よりも少ないスペースを割り当てるのはなぜですか?

ボリュームを拡張しようとしています/dev/vol1。これを と呼びます。次のように呼び出すと、初期ボリューム サイズが 500 MB であることがわかります。

df --block-size=M /dev/vol1

さらに 100MB 拡張するには、次のように呼び出します。

lvextend -L+100M /dev/vol1
resize2fs /dev/vol1

しかし、サイズをもう一度確認すると

df --block-size=M /dev/vol1

595 が返されましたが、これは 95 MB しか増加していないことを示しています。この矛盾の原因は何でしょうか? 1 MB が 1024 KB ではなく 1000 KB であることに関係していると思いますが、どこに問題があるのか​​よくわかりません。

答え1

LVM ユーティリティのサイズを指定する場合、大文字は 10 進単位 (K=1000、M=1000000 など) を示し、小文字は 2 進単位 (k=1024、m=1048576 など) を示します。これは、、およびpvsマニュアルvgsページに記載されてlvsいますが、サイズ引数を取るその他のコマンドのマニュアル ページには記載されていません。ボリュームを 100,000,000 バイト ≈ 95MiB 拡張しました。

答え2

論理ボリュームの実際の詳細を確認するには、 lvscanまたはlvdisplayまたは を使用してみてください。lvs

df -hM = 1,048,576 バイトのレポート。

df -HM = 1,000,000 バイトのレポート。

関連情報