XFSでLinuxソフトウェアRAID 5を簡単に拡張できます。ベストプラクティス?


13

Ubuntuマシンを、Samba共有を使用するWindows / Linux / Macクライアントのファイルサーバーとして使用します。データを前後に移動することなく、ハードドライブを追加するだけで簡単に拡張できる必要があります。

これが私がこれまでやってきた方法です。4台目のハードドライブを追加しました。今、これがどのように行われるべきであるかを知ってうれしいでしょうか?私が間違っているのは何ですか?

最初の3ドライブアレイの作成

3つの空のドライブから始めました:/ dev / sdb、/ dev / sdc、および/ dev / sdd。

最初に、すべてのドライブに空のパーティションを作成しました。

$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

3つのディスクすべてに空のRAIDパーティションが作成されたら、RAID5アレイを作成しました。

$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

これでRAID5アレイが作成され、すでに構築されています。時間がかかりますが、新しい物理LVM2ボリュームの作成に進むことができます。

$ pvcreate /dev/md0

それでは、新しいボリュームグループを作成しましょう。

$ vgcreate vd_raid /dev/md0

次に、そのボリュームグループ内に新しい論理ボリュームを作成する必要があります。まず、作成されたボリュームグループの正確なサイズを把握する必要があります。

$ vgdisplay vg_raid

サイズは、物理エクステントの「合計PE」を示す行から確認できます。それが509であると想像してみましょう。すべての利用可能なスペースを取る新しい論理ボリュームを作成します。

$ lvcreate -l 509 vg_raid -n lv_raid

最後に、その論理ボリュームの上にファイルシステムを作成できます。

$ mkfs.xfs /dev/mapper/vg_raid-lv_raid

新しく作成したRAIDアレイを使用するには、ディレクトリを作成してマウントする必要があります。

$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid

これで使用する準備が整いました。ただし、再起動後に自動的にマウントするには、RAIDジオメトリをmdadmの構成ファイルに保存する必要があります。

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

次に、RAIDアレイを自動的にマウントする/ etc / fstabに次の行を追加します。

/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1

これで、RAIDアレイを使用する準備が整い、起動するたびに/ raidディレクトリに自動的にマウントされます。

アレイに新しいドライブを追加する

今、新しいドライブ/ dev / sdeがあり、データを失うことなく以前に作成したアレイに追加したいと想像してください。

最初に、新しいドライブを他のすべてのドライブと同様にパーティション化する必要があります。

$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

次に、RAIDアレイに追加する必要があります。

$ mdadm --add /dev/md0 /dev/sde1

現在、RAID5アレイには4つのドライブが含まれていますが、現在使用されているドライブは3つだけです。4つのドライブすべてを含むようにアレイを拡張する必要があります。

$ mdadm --grow /dev/md0 --raid-devices=4

次に、物理LVM2ボリュームを拡張する必要があります。

$ pvresize /dev/md0

これで、物理ボリュームはデフォルトでサイズ変更され、RAIDアレイで使用可能なすべてのスペースがカバーされます。物理エクステントで新しいサイズを見つける必要があります。

$ vgdisplay vg_raid

新しいサイズが764になったと想像してみましょう(「Total PE」から確認できます)。次に、論理ボリュームを展開してこれをカバーします。

$ lvextend /dev/mapper/vg_raid-lv_raid -l 764

次に、XFSファイルシステムを展開します。これは、ファイルシステムがオンラインでマウントされている間に行う必要があります。

$ xfs_grow /raid

デフォルトでは、利用可能なすべてのスペースをカバーするように拡張されています。最後に、アレイに新しいディスクが含まれるようになったため、RAIDアレイのジオメトリを更新する必要があります。最初に/etc/mdadm/mdadm.confから追加された行を削除してから、新しい行を追加します。

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

3
ディスクにパーティションを置かないでください。必要ありません-カーネル内RAID自動検出(パーティションタイプfd)は非推奨です。
ジェームズ

したがって、fdiskでタイプ「fd」パーティションを作成する代わりに、/ dev / md0配列を/ dev / sdb、/ dev / sdcおよび/ dev / sddデバイスに直接作成する必要がありますか?
Taskinen

1
すべてのディスクが同じサイズであるとは聞いていないので、新しいテラバイトのディスクを購入した場合、まったく同じサイズではないかもしれません。それはいくつかの問題をもたらしますか?
Taskinen

回答:


5

あなたはそれを正しく持っていると思います。RAID 5の拡張に関する警告を理解し、注意してくださいman 8 mdadm

個人的に、LVMボリュームを拡大する場合、既存のRAIDアレイを拡大することはありません。別のRAIDアレイを作成し、そこから新しいphysvolを作成して、同じボリュームグループに追加します。これははるかに安全な操作であり(新しいディスクセット全体でRAID5アレイ全体を書き換える必要はありません)、アレイのサイズを抑えます。


同意します。vgextendはあなたの友達です。
ダンアンドレッタ

1
一般的に理解していますが、上記の3つのディスクアレイを4つのディスクアレイに成長させたい状況についてはどうでしょうか。4番目のディスクだけから新しいRAIDアレイを作成することはできません。
Taskinen

1
ストレージサーバーのディスクアレイを一度に1ディスクずつ拡張することはありません。同じサイズのディスクを使用する必要があるため、3つのディスクアレイから4つのディスクアレイに移行しても、ストレージは50%しか増えません。
カミルKisiel

1
同意した。スペースが不足する頃には、より大きなディスクドライブの価格が下がります。大きなドライブの新しいセットで2番目のRAIDアレイを構築し、古いデータをそこにpvmoveし、pvmoveが完了したら古いセットをデコミッションします。これはすべて、pvmoveの影響を受ける論理ボリューム内のファイルシステムがアクティブに使用されている間に実行できます。
flabdablet
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.