web-dev-qa-db-ja.com

lvextendの後にresize2fsを実行する必要があるのはなぜですか?

LVM2パーティションのサイズを変更するには、次の2つのコマンドを実行する必要があります。

# lvextend -L+1G /dev/myvg/homevol
# resize2fs /dev/myvg/homevol

ただし、lvextendを実行すると、変更が既にパーティションに適用されていることがわかります(Gnome Disksを参照)。なぜ私はまだやる必要があるのですかresize2fs

10
Rufus

lvextendコマンド(--resizefsオプションなし)は、LVM側の配置のみを行い、論理ボリュームであるブロックデバイスを拡大します。 LVのファイルシステムタイプ(またはファイルシステムが存在するかどうか)に関係なく、これらの操作は常に同じです。

LVにext2/3/4ファイルシステムが含まれている場合、次のステップは、ファイルシステムのメタデータを更新して、ファイルシステムに利用可能な空き容量があることを認識させ、追加されたスペースを管理するために必要なメタデータ構造を作成/拡張することです。 ext2/3/4ファイルシステムの場合、これには少なくとも次のことが含まれます。

  • 追加されたスペースに新しいiノードを作成する
  • 追加されたスペースのブロックが使用中か空きかをファイルシステムが認識できるように、ブロック割り当てデータ構造を拡張する
  • 前述のデータ構造拡張の邪魔になる場合、一部のデータブロックを移動する可能性があります。

この部分はファイルシステムタイプに固有ですが、ext2/3/4ファイルシステムタイプは類似しているため、単一のresize2fsツールですべてのサイズを変更できます。 XFS、ファイルシステムの場合は、代わりにxfs_growfsツールを使用します。他のファイルシステムには、独自の拡張ツールがある場合があります。また、論理ボリュームにファイルシステムが含まれておらず、「raw」データベースやOracle ASMボリュームなどが含まれている場合は、さらに別の手順を適用する必要があります。

ファイルシステムごとに内部の仕組みが異なるため、ファイルシステムを拡張するための条件はそれぞれ異なります。共通のAPIがファイルシステム拡張用に設計されるまでにはしばらく時間がかかりました。これにより、fsadm resizeコマンドを実装できるようになりました。これは、いくつかのファイルシステムタイプを拡張するための統一された構文を提供します。 lvextend--resizefsオプションは、fsadm resizeコマンドを使用するだけです。

簡単に言えば、lvextendの後に、lvsvgslvdisplayvgdisplayなどのLVMレベルのツールが更新されたサイズを表示します、しかしファイルシステムとその上で動作しているdfのようなツールはまだそれを見ていません。

19
telcoM

LVMレイヤーは、ファイルシステムのコンテナーにすぎません。別にresize2fs-r(または--resizefs)オプションを追加することなく、論理ボリューム内のファイルシステムのサイズを変更するようにlvextendに指示できます。

lvextend -r ...
11
JRFerguson

ファイルシステムと論理ボリュームは異なる抽象概念だからです。ボリュームは、ディスクのチャンク(パーティションなど)です。少なくとも、「仮想」同等のものです。それは単なるブロックデバイスです。ファイルシステムは、その内部(または、必要に応じてその上)に配置され、そのデバイスへのファイル(およびディレクトリなど)間のマッピングを提供するために使用される構造です。 resize2fsがない場合、パーティションは大きくなりますが、ファイルシステムは使用可能なスペースを活用していません。

実際にファイルシステムを作成できます最初はこれはパーティション全体を占有しません。 mke2fsのmanページから:

ファイルシステムのサイズは、fs-sizeで指定されます。 fs-sizeにサフィックスがない場合、-b blocksizeオプションが指定されていない限り、2の累乗のキロバイトとして解釈されます。この場合、fs-sizeはブロックサイズブロ​​ックの数として解釈されます。 fs-sizeの末尾に「k」、「m」、「g」、「t」(大文字または小文字)が付いている場合、2の累乗のキロバイト、メガバイト、ギガバイト、テラバイトなど。fs-sizeを省略した場合、mke2fsはデバイスサイズに基づいてファイルシステムを作成します。

ご覧のとおり、デフォルトではパーティションがいっぱいになっていますが、通常はそれ以外の理由はありませんが、必要に応じて可能です。

lvextendにオプション--resizefs(または-r)がある場合は、ボリュームを拡張した後、別のコマンドを実行する必要なくファイルシステムの拡張を処理します。

4
mattdm

resize2fsは、fs、ファイルシステムを拡張または縮小して、lvextendコマンドによって生成された新しいスペースを使用します。プロセス:

with fs:
        -- shrink --> 1. shrink fs 2. shrink volume
        -- expand --> 1. expand volume, 2. expand fs
0
George Udosen