web-dev-qa-db-ja.com

コマンドラインによるRAID 0アレイ上のパーティションのサイズ変更

サーバーをセットアップするときに、サーバーを現在の用途に使用することを意図していなかったため、ルート(/)がディスクスペースを使い果たし、/ homeには大量のデータがあふれています。

Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                10157944   9600344     45656 100% /
/dev/root             10157944   9600344     45656 100% /
/dev                   8183468         8   8183460   1% /dev
none                   1636756       252   1636504   1% /run
none                      5120         0      5120   0% /run/lock
none                   8183772         0   8183772   0% /run/shm
/dev/md3             211225328  17996836 182583336   9% /home

学んだ教訓! (次回はもっと余裕を...)

ディスクとその現在のサイズ、およびRAIDアレイを示すpartedの出力は次のとおりです。

Model: ATA INTEL SSDSA2CW12 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      2097kB  10.5GB  10.5GB  primary  ext4            boot, raid
 2      10.5GB  11.0GB  535MB   primary  linux-swap(v1)
 3      11.0GB  120GB   109GB   primary                  raid


Model: ATA INTEL SSDSA2CW12 (scsi)
Disk /dev/sdb: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      2097kB  10.5GB  10.5GB  primary  ext4            raid
 2      10.5GB  11.0GB  535MB   primary  linux-swap(v1)
 3      11.0GB  120GB   109GB   primary                  raid


Model: Linux Software RAID Array (md)
Disk /dev/md3: 218GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  218GB  218GB  ext4


Model: Linux Software RAID Array (md)
Disk /dev/md1: 10.5GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  10.5GB  10.5GB  ext4

/ homeパーティションを40GB縮小し、/パーティションを40GB増やします。 Resizeコマンドを使用したとき、Partedは私に言った:

"WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release."

e2fsprogsを調べると、ext2ツールであることがわかります。これは、ディスクがEXT4であると考えると、恐ろしいことになります。

パーティションのサイズを変更する安全な方法はありますか?私は直接アクセスせずにSSHでサーバーから600マイル離れた場所で作業しています。

前もって感謝します

5
Laice

Ext2、ext3、ext4は同じファイルシステムの進化形です。実際、新しい機能がアクティブ化されていないext4ファイルシステムはext3ファイルシステムであり、新しい機能がアクティブ化されていないext3ファイルシステムはext2ファイルシステムです。そのため、ext3とext4に個別のプログラムセットはありません。同じツールセットであるe2fsprogsであり、ext3とext4に対応するために徐々に拡張されています。

resize2fs ( "ext2/ext3/ext4 file system resizer")の制限は、マウントされていない間のみファイルシステムを縮小できることです。したがって、/homeを縮小したい場合は、最初にアンマウントする必要があります。マウントされたファイルシステムを拡大できますが、これは/にとっては問題になりません。

より大きな問題は、RAID-0アレイのサイズ変更です。 RAIDアレイを管理する1つのツールは、 mdadm です。私の知る限り、RAID-0アレイのサイズを変更することはできません。

私の知る限り、メンテナンス中に/home/からすべてのデータをコピーする場合を除き、この構成に固執しています。 (/homeからデータのみをコピーし、そのスペースに侵入するより大きなルートパーティションを作成することで逃げることができます。)/homeの現在の内容を格納するために、ディスクの先頭にあるパーティション化されていないスペースを使用できます。これはそれほど難しくありませんが、エラーが発生しやすいです。これは、物理的なアクセスなしで試みることではありません(ルートパーティションをシャッフルしているときにブートローダーを台無しにするのは特に簡単です)。ツールに慣れていないため、ブートCDを挿入するだけで簡単に修正できる小さな間違いを犯す可能性が高くなります。

私の推奨事項は、誰かがそのサーバーに物理的に参加できるようになるまで、/の大きなチャンクを/homeに移動し、シンボリックリンクを作成することです。

将来的には、md-RAIDのRAID-0を使用せず、代わりにLVMストリッピングを使用することをお勧めします。 LVMボリュームはサイズを変更でき、ストリップされたボリュームも変更できます。 LVMは わずかに遅い ですが、管理が容易です(現在の問題が示しているように)。ミラーリング(RAID-1)およびその他のRAIDモードにはRAIDを使用します。

また、その5%のパフォーマンス向上のためにRAID-0に固執することにした場合、単一のRAID-0アレイがあればもっと簡単だったでしょう。

6
Gilles