mdadm 16 x 8TB Raid 6 を実行している Ubuntu 22.04.3 LTS - LVM を使用せずに個々のディスクをアップグレードしてすぐにスペースを使用することは可能ですか?

mdadm 16 x 8TB Raid 6 を実行している Ubuntu 22.04.3 LTS - LVM を使用せずに個々のディスクをアップグレードしてすぐにスペースを使用することは可能ですか?

背景をもう少し説明します... リアルタイム アレイが 4 つあります (常に実行されていて、使用できます) - 2 つの重要なアレイ (40 TB [使用中 20 TB] と 112 TB [使用中 105 TB]) は、16 x 8 TB Raid6 アレイ (空きストレージ合計 112 TB - ご覧のとおり、バックアップする容量が容量を超えています) にバックアップされています。そのため、ストレージがさらに必要です...

もっと良い解決策は、SuperMicro 24bay JBOD をもう 1 台購入することでしたが、コロナ禍以降、価格が 2 倍になったため、現在はドライブをアップグレードする方が安く済みます。ただし、16 x 16TB Exos ドライブを同時に購入することはできません...ホーム サーバーとしてはかなり高価です。:)

それで、これらすべてをアップグレードする方法を見つけようとしたきっかけは何だったのでしょうか?

昨日、16TB の Exos を 3 台購入しました。バックアップ アレイで次のコマンドを実行しました...

#UPGRADE AN ARRAY *******************************************************
#FIRST ADD SPARES
mdadm /dev/md4 --add /dev/sdan  (a 16TB drive)
mdadm /dev/md4 --add /dev/sdao  (a 16TB drive)

#SECOND REPLACE DISKS (2 at a time)  replace 2 8TB drives with 16TB drives.
mdadm /dev/md4 --replace /dev/sdah /dev/sdai --with /dev/sdan /dev/sdao

質問 #1: LVM は使用していません。ext4 ファイル システムを搭載した通常の mdadm raid6 です。したがって、私の想定は... すべての 8TB ドライブが 16TB にアップグレードされるまで、追加のスペースを使用できないということです... 質問 #1: これは正しいですか?


考えていたのは...別の方法としては...9 x 16TB ドライブを入手したら、新しいアレイを作成し、この 16 x 8TB アレイからすべてを 9 x 16TB アレイに直接コピーできるということです。サイズは同じなので、その後、以前と同じようにアレイを拡張できます...9 つのディスク アレイを入手したら、簡単に追加できます...

mdadm --grow --raid-devices=10 --backup-file=/root/md4_grow.bak /dev/md4

その後...

resize2fs /dev/md4

つまり、mdadm の制限がわからないのです。Synology NAS ではハイブリッド アップグレードが可能で、どのドライブでもすぐにフル活用できることはわかっていますが、ファイルシステムのハイブリッド制御ができないとしても、mdadm のほうが好みです。raid6 の上に LVM を追加できると思いますが、これまで使用したことはありません。現在のアレイを LVM に変換できるかどうか、またはすべてを消去する必要があるかどうかはわかりません。これはバックアップ アレイなので、技術的には破壊できますが、恐ろしいことに、バックアップがもうありません。この新しいアレイを再構築している間にメイン アレイに障害が発生したらどうなるでしょうか。その場合、大量のデータが失われます。

RAID はバックアップではないことはわかっていますが、このバックアップ アレイはほとんどの場合オフになっています。バックアップのときのみオンになり、その後再びオフになります。

非常に重要なデータについては、RAID ではなく 10TB の Exos ドライブにコピーして貼り付け、何かが起こった場合に備えて箱に保管しています。残念ながら、適切にバックアップするにはデータが多すぎるため、そのようにバックアップするものを選択する必要があります。そのため、リアルタイム アレイをバックアップするために必要なサイズに近いのは、私のバックアップ アレイだけです。


仮説的質問2: 最終的に、16 x 8TB IronWolfを16 x 16TB Exosドライブに交換するとします。

resize2fs /dev/md4

そして、mdadm は「16TB のうち 8TB しか使用していません!!!! これを修正しましょう!!!」と認識し、すべてのスペースを埋めるために拡張を続行しますか? それとも、すべてのドライブをアップグレードしたら、他のコマンドを実行する必要がありますか?

growはサイズを指定できると読んだのですが、私は使ったことがありません。growはアレイに別のドライブを追加するときだけ使用しました。たとえば、--raid-devices=9から--raid-devices=10に変更して、

resize2fs /dev/md4

新しく見つけたスペースを取得するには...


私よりも経験豊富なユーザーからの意見は?

(コードをフォーマットしてくれたGeraldに感謝します。私が質問をしてから何年も経ち、そのことを忘れていました)。

関連情報