GNU/Linux >> Linux の 問題 >  >> Linux

Gptパーティショニングを使用したMdadmRAIDの実装?

私の現在のアイデアは、mdadmを使用して、4つのメンバードライブを備えた1つのソフトウェアアレイ、クラスRAID-6を作成することです。 。

具体的には、ドライブは、小型サーバーDellT20のSATA上の1TBHDDになります。

オペレーティングシステムはGNU/Linux Debian 8.6(後でアップグレード:Jessie⟶Stretch⟶Buster)

これにより、私の場合は2TBのディスクスペースと2TBのパリティが作成されます。

また、GPTパーティションテーブルでそれを使用したいのですが、それが機能するためには、これを純粋にターミナル上で実行したいと仮定して、具体的にどのように進めるかがわかりません。

RAIDアレイを作成したことがないので、どのように進めればよいか教えていただけますか?

注:

  • この配列は、唯一のデータにのみ機能します。起動やOSはありません。

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

承認された回答:

この回答では、すべてのアレイメンバー(ドライブ)ですべてのデータが破棄されることを明確にして、最初にバックアップしてください!

ターミナルを開き、rootになります (su ); sudoがある場合 有効にすると、たとえばsudo -iを実行することもできます; man sudoを参照してください すべてのオプションについて):

sudo -i

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

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

次に、すべてのドライブをGUIDパーティションテーブル(GPT)で初期化し、すべてのドライブをパーティション分割する必要がありますが、GPartedではこれを行わないでください。プロセスでファイルシステムが作成されるため、必要ありません。 gdiskを使用する 代わりに:

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

すべての場合において、以下を使用してください:

o 入力 新しい空のGUIDパーティションテーブル(GPT)の場合
y 入力 決定を確認するために
n 入力 新しいパーティションの場合
入力 最初のパーティションのデフォルトの場合
Enter 最初のセクターのデフォルトの場合
Enter 最後のセクターのデフォルトの場合
fd00 入力 LinuxRAIDタイプの場合
w 入力 変更を書き込む
y 入力 あなたの決定を確認するために

関連:ロジックアナライザとしての汎用CPUは、専用のFPGA実装よりも優れていますか?

今すぐドライブを調べることができます:

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のため、コマンドは避ける方がよい 配列が大きい場合はかなりの時間がかかるため、「 lazyinit」という名前が付けられています。 「したがって、これは避けることをお勧めします:

mkfs.ext4 /dev/md0

代わりに、完全なインスタント初期化を強制する必要があります(0%はroot用に予約されています) データ配列であるため):

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

これらのオプションを指定することにより、iノードとジャーナルは作成時にすぐに初期化され、より大きなアレイに役立ちます。

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

どちらの方法でも、ファイルシステムを初期化する場合は、初期化が完了した後でマウントする必要があります。

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

mkdir -p /mnt/raid6

そして、それをマウントするだけです:

mount /dev/md0 /mnt/raid6

基本的に完了しているので、GPartedを再度使用して、linux-raidが表示されているかどうかをすばやく確認できます。 ファイルシステムとraid すべてのドライブにフラグを立てます。

含まれている場合は、GPTパーティションを使用してRAID6アレイを適切に作成し、ファイルをコピーできるようになりました。

mdのUUIDを確認する ファイルシステムには次のものがあります:

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

Linux
  1. 障害のあるRAID6ドライブをmdadmに置き換える

  2. デスクトップインストーラーを使用してRAID1でUbuntu14.04をどのようにTonstallしますか?

  3. 既存のIntelRapidStorageアレイ用にMdadmを構成しますか?

  1. 15 の例を含む究極の Bash Array チュートリアル

  2. RedHat / CentOS :mdadm によるソフトウェア RAID の管理

  3. ソフトウェア RAID アレイ (mdadm) で故障したミラー ディスクを交換する

  1. RAID1 は Linux mdadm でパフォーマンスを向上させますか?

  2. btrfs によるパーティショニングと subvol 戦略

  3. 少ないディスクで mdadm RAID5 アレイを再構築する