web-dev-qa-db-ja.com

lvm2論理ボリュームとファイルシステムのサイズ変更:正確なサイズ?

イントラネットサーバーには、100.00 GiBパーティション/ dev/sda5があり、lvm2の物理ボリュームとして使用しています。

  • これは、私のボリュームグループvg01内の唯一の物理ボリュームです。
  • vg01には現在、完全な100.00 GiBを使用する1つの論理ボリュームlv01が含まれています。実際には、丸めのために99.99 GiBです(ここから問題が発生します)。
  • lv01には、スペース全体を使用するext3ファイルシステムが含まれています。

Lv01を約97GiBに減らしたいので、約でlv02を作成できます。 3 GiB(lvmスナップショットを取得するために必要です)。

私がこれまでにしたこと:

e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G

これはうまくいきました。しかし今、私は走らなければなりません

lvreduce --size ? /dev/mapper/vg01-lv01

そして、どのexact値を指定する必要があるのか​​わかりません。 lvreduceのマニュアルページは、結果のサイズがファイルシステムより小さくてはならないことを明示的に警告しています。また、必要以上に大きくしたくありません。しかし今、私は異なる数を持っています:

  • Resize2fsで97Gを指定しました。
  • df -hによると、96Gです。
  • dfによると、1001159361Kブロックです。
  • lvdisplayは(もちろん)論理ボリュームに対して99.99 GiBを報告します。

lvreduceには何を指定する必要がありますか?

編集:

現在受け入れられている回答は、優れた回避策を提供します。ただし、そのようなものをソリッドスクリプトなどに統合するために、私は通常、代わりに正確な測定値を使用することを好みます。または、サイズ変更手順全体を1つのステップで実行する信頼性の高い(!)スクリプトまたはツールがすでにあるのでしょうか。

10
Chris Lercher

私の経験では、LVMとresize2fsは「97G」の意味について同じ考えを持っているので、両方の場所で同じサイズを指定することは問題ないはずです。しかし、私は偏執的であり、可能な限り、質問のコメントでlarsksによって提案された戦略を常に使用し、必要なサイズより1 GB小さくサイズ変更し、必要なサイズにlvresizeを実行してから、resize2fsを再実行します(サイズ)LV全体を埋めるために拡張して戻します。

5
womble

これは、-resizefsオプションを使用してlvreduce/lvresizeを実行するのが最適だと思います。

   -r, --resizefs
          Resize underlying filesystem together with the logical volume using fsadm(8).

確かに、それはあなたを助けません、しかしそれは将来かもしれません。

14
mjk