GPTパーティションを使用したmdadm RAIDの実装

GPTパーティションを使用したmdadm RAIDの実装

私の現在のアイデアはmdadm

具体的には、ドライブは小型のフォームファクタサーバーであるDell T20のSATAベースの1TB HDDです。

オペレーティングシステムはGNU/Linux Debian8.6(後でアップグレード:提示緊張バスター)

私の場合、2TBのディスク容量と2TBのパリティが作成されます。


また、GPTパーティションテーブルで使用したいと思います。動作させるには、端末を介してのみ実行すると仮定し、正確にどうすればよいかわかりません。

私はRAIDアレイを作成したことがないので、進行方法を案内してもらえますか?


メモ:

  • この配列は一意のデータにのみ使用されます。起動やオペレーティングシステムはありません。

  • このアレイの目的のため、RAID-6を選択しました。アレイは2つのドライブ障害に耐えることができなければなりません。私のハードウェアはドライブが4つに制限されているので、私が知っているRAID-6に代わるものはありません。 (RAID-6の速度低下がいくらひどくても、このアレイでは問題になりません。)

答え1

この回答では、すべてのアレイメンバー(ドライブ)のすべてのデータが削除されることを明確にしてください。だからまずバックアップしてください!


端末を開いてrootsu);あなたが持っているならsudo有効にすると、次のこともできますsudo -iman sudoすべてのオプションについて):

sudo -i

まず、以前にドライブにデータとファイルシステムがあった場合は、ドライブを消去する必要があります。sdi、、、、4人のメンバーがいるとしsdjます。このプロセスに関する視覚的なフィードバックを得るにはsdksdlpvパイプビューア)ここで使用されます:

pv < /dev/zero > /dev/sdi
pv < /dev/zero > /dev/sdj
pv < /dev/zero > /dev/sdk
pv < /dev/zero > /dev/sdl

または、何も残っていないことを確認するには、すべてのドライブでGPartedを使用して、ファイルシステムが存在するパーティションと存在しないパーティションがあることを確認してから消去するだけで十分です。しかし、私は個人的に上記の方法を好む。すべてのドライブをゼロ化する方法関連する場合は、これを実行する前にすべてのパーティションをアンマウントする必要があることに注意してください。次の単一ライナーで実行できます。

umount /dev/sdi?; wipefs --all --force /dev/sdi?; wipefs --all --force /dev/sdi
umount /dev/sdj?; wipefs --all --force /dev/sdj?; wipefs --all --force /dev/sdj
umount /dev/sdk?; wipefs --all --force /dev/sdk?; wipefs --all --force /dev/sdk
umount /dev/sdl?; wipefs --all --force /dev/sdl?; wipefs --all --force /dev/sdl

その後、GPT(GUIDパーティションテーブル)を使用してすべてのドライブを初期化し、すべてのドライブをパーティション化する必要がありますが、GPartedを使用すると不要なプロセスでファイルシステムが作成されるため、次のものを使用しないでくださいgdisk

gdisk /dev/sdi
gdisk /dev/sdj
gdisk /dev/sdk
gdisk /dev/sdl

すべての場合に以下を使用します。

o Enter
y Enter決定を確認するための新しい空のGUIDパーティションテーブル(GPT)の場合、新しいパーティションの場合は最初の
n Enterパーティションのデフォルト値
Enter最初のセクタのデフォルト値Linux RAIDタイプの場合は、変更を入力して決定を確認します。
Enter
Enter
fd00 Enter
w Enter
y Enter


これでドライブを確認できます。

mdadm --examine /dev/sdi /dev/sdj /dev/sdk /dev/sdl

次のように話す必要があります。

(type ee)

その場合は、パーティションを確認します。

mdadm --examine /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

次のように話す必要があります。

No md superblock detected

その場合は、RAID6アレイを作成できます。

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

配列が完全に作成されるまで待つ必要があります。これは簡単に行うことができますwatch

watch cat /proc/mdstat

アレイを作成したら、その詳細を確認する必要があります。

mdadm --detail /dev/md0

次のように話す必要があります。

          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

ext4次に、次のようにアレイにファイルシステムを作成します。隠されたext4lazyinit大きな配列の場合は時間がかかるため、コマンドを使用しないことをお勧めします。したがって、名前は「遅延初期化だから、次のことを避けることをお勧めします。

mkfs.ext4 /dev/md0

代わりに、完全な即時初期化を強制する必要があります(rootデータ配列なので、0%保持)。

mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

これらのオプションを指定すると、生成中にinodeとログがすぐに初期化されるため、大規模な配列に役立ちます。

ショートカットを選択し、ext4「より良い回避コマンド」を使用してファイルシステムを作成することを選択した場合は、すべてのinodeを初期化するのにかなりの時間がかかることに注意してください。完了するまでまたはをext4lazyinit使用して確認できます。iotopnmon

ファイルシステムの初期化のためにどの方法を選択しても、初期化が完了したらマウントする必要があります。


これで、このRAID6アレイ用のいくつかのディレクトリを作成します。

mkdir -p /mnt/raid6

簡単にインストールしてください。

mount /dev/md0 /mnt/raid6

これでデフォルトで完了したので、GPartedを再利用して、すべてのドライブのファイルlinux-raidシステムとフラグが表示されていることをすばやく確認できます。raid

その場合は、GPTパーティションを持つRAID6アレイを正しく作成し、ここにファイルをコピーできます。

ファイルシステムのUUIDを表示しますmd

blkid /dev/md0

UUIDをクリップボードにコピーします。

fstabこれで、お気に入りのテキストエディタで編集する必要があります。nano、しかしsudoeditおそらく以下を使用する方が良いでしょう:

nano /etc/fstab

アイテムを追加します。

UUID=<the UUID you have in the clipboard>    /mnt/raid6    ext4    defaults    0 0

defaults私は個人的にフラグセットを使用することをお勧めしません。ただ行があまり複雑ではないことを願っています。

UPSバックアップデータRAIDが代わりに使用するマウントフラグは次のとおりですdefaults。 nofail,nosuid,nodev,noexec,nouser,noatime,auto,async,rw,data=journal,errors=remount-ro


保存したら正しいことを確認できます。

mount -av | grep raid6

次のように話す必要があります。

already mounted

その場合は、アレイ構成を保存します。mdまだデバイスを作成していない場合は、単に次のことができます。

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

アレイがすでに存在する場合は、構成ファイルにリダイレクトせずに前のコマンドを実行します。

mdadm --detail --scan

新しいアレイを設定ファイルに手動で追加します。

最後に更新することを忘れないでくださいinitramfs。そうしないと、新しい配列は自動的に次のように読み取り専用に組み込まれます/dev/md127

update-initramfs -u -k all

計画どおりにすべての操作を行ったことを確認し、その場合は再起動できます。

reboot

答え2

2 x 4パーティションの代わりに4つのRAWブロックデバイスにRAIDアレイを作成する場合、これはすべてのRAIDリカバリ操作をデバイス全体で実行する必要があり、その逆も同様です。

たとえば、ディスクが後半に最終的にI / Oエラーを受け取り始めると予想され、アレイがパーティションにある場合、これは1つのアレイだけがそれを認識し、もう1つのアレイは引き続きエラーを認識します。ダメージが半分に広がるまで。これにより、一時的な柔軟性を提供したり、I / O速度の低下を防ぐことができます。

一方、介入を開始すると物理ディスク全体を取り出して交換する必要があるため、ある時点では両方のアレイの性能が低下するしかありません。さらに、SSDではディスク全体のエラーがますます一般化しているため、とにかくこれらのイベントによって両方のアレイが影響を受ける可能性があります。

一般的なパーティショニングおよび mdadm ドキュメントで見つからない手続き的な詳細については、あまり言葉がありません。

関連情報