私の現在のアイデアは、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人のメンバーがいるとします:sdi
、sdj
、sdk
、sdl
。このプロセスを視覚的にフィードバックするために、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
入力 あなたの決定を確認するために
今すぐドライブを調べることができます:
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