LinuxでRAID HDDアレイを構成する方法

Linuxコンピューターでもっと効率的に使用したい予備のハードディスクドライブがあるでしょうか?RAIDは、構成方法に応じてパフォーマンスを向上させたり、冗長性を追加したりできます。複数のディスクの世界にさっと飛び込んでみましょう。

RAID 101

安価な(または独立した)ディスクの冗長アレイ(RAID)は、システムに利益をもたらすために連携して機能するドライブのコレクションです。これらのメリットは、パフォーマンス、冗長性、その両方である場合があります。よく見かける構成は、RAID 0、RAID 1、RAID 5、RAID 6、RAID 10です。以下にそれらをまとめました。

他にも構成はありますが、これらは最も一般的です。

どのRAIDレベルを使用するかを問わず、RAIDはバックアップソリューションではありません

迅速に復旧してデータを守る別のレイヤーを提供するのに役立つ場合もありますが、実際のバックアップに取って代わるものではありません。RAIDは、高可用性が必須の場合に最適なユースケースです。RAIDに関するガイドで詳しく説明しています。

RAID 0:重要でないストレージ

RAID 0は、データを複数のドライブにストライピングして動作します。RAID 0には少なくとも2つのドライブが必要ですが、理論的には好きなだけ追加できます。コンピューターは複数のドライブに同時に書き込みを行うため、パフォーマンスが向上します。

異なるサイズのドライブを使用することもできます。ただし、アレイはアレイ内の最小のドライブに制限されます。100GBのドライブと250GBのドライブをRAID 0アレイでストライピングした場合、アレイの合計スペースは200GBになります。これは各ディスクから100GBです。

RAID 0は、単一のディスクでは提供できないより高い読み取りおよび書き込み速度を必要とする重要でないストレージに最適です。RAID 0はフォールトトレラントではありません。

アレイ内のドライブのいずれかが故障すると、そのアレイ内のすべてのデータが失われます。警告しました。

RAID 1:HDDをミラーリングする

RAID 1は単純なミラーです。1つのドライブで発生したことは、他のドライブでも発生します。RAID 1にはパフォーマンス上の利点は何もありませんが、各ドライブにデータの正確なレプリカがあるため、RAID 1には冗長性の利点があります。アレイ内の1つのドライブが稼働している限り、データはそのままです。

アレイの最大サイズは、アレイ内の最小ドライブのサイズと同じになります。100GBのドライブと250GBのドライブをRAID 1アレイに入れた場合、アレイの合計スペースは100GBになります。このコストの影響を念頭に置いておく必要があります。

RAID 5および6:パフォーマンスと冗長性

RAID 5と6は、パフォーマンスと冗長性の両方を提供します。データは、パリティ情報とともにドライブにストライピングされます。RAID 5は、RAID 6が2つを使用しているパリティの合計1ドライブ分を使用します。パリティデータを使用すると、コンピューターは他のデータブロックの1つのデータを再計算して、データが使用できなくなった場合に備えることができます。つまり、RAID 5は1つのドライブの損失に耐えることができ、RAID 6は1つの時点で2つのドライブの故障に耐えることができます。

記憶域の観点から、これはRAID 5と6がそれぞれ1ドライブと2ドライブを除いた合計ドライブサイズと等しくなることを意味します。したがって、それぞれ100GBの容量を持つ4つのドライブがある場合、RAID 5のアレイサイズは300GBになり、RAID 6では200GBになります。

RAID 5には少なくとも3つのドライブが必要で、RAID 6には4つのドライブが必要です。ハードドライブのサイズを混在して使用できますが、アレイはすべてのディスクをアレイ内の最小ドライブのサイズと見なします。ドライブが故障するという不幸な事態が発生した場合でも、アレイは引き続き動作し、すべてのデータにアクセスできます。この時点で、故障したドライブを交換してアレイを再構築する必要があります。

アレイがデグレードされた状態では、通常のよりも速度が遅くなり、アレイが再構築されるまで使用しないことをお勧めします。

RAID 10:ストライピングとミラーリング

RAID 10は、基本的にRAID 1 + 0です。これらはレベルの組み合わせです。これを実現するには、ディスクのペアが必要です。データは2つのディスクにストライピングされ、その後別のディスクのセットにミラーリングされます。RAID 0のパフォーマンスの利点と、RAID 1の冗長性が得られます。

LinuxでRAIDを構成する

この冗長性のすべてを構成することは、ハードウェアまたはソフトウェアレベルのいずれかで行うことができます。ハードウェアフレーバーには、一般にサーバーグレードのハードウェアで見つかるRAIDコントローラーが必要です。幸い、LinuxにはRAIDのソフトウェアバージョンがあります。原則は同じですが、RAIDコントローラーとは対照的に、オーバーヘッドはCPUにあることに注意してください。

ターミナルウィンドウ、いくつかのドライブ、そして決意だけでRAID 5構成を実行してみましょう。準備ができたら、お気に入りのシェルでターミナルウィンドウを開き、次のように入力します。

sudo apt install mdadm

ドライブを準備する

わかりやすいように、例では3つの1GBドライブを使用します(実際にはこれらはより大きくなります)。ターミナルコマンドを使用して、システムに接続されているディスクを確認します。

sudo fdisk -l

出力から、sdaをブートドライブとして、sdb、sdd、sdcをシステムに接続したばかりであることがわかります。

次に、これらのディスクをパーティション分割する必要があります。これは破壊的なプロセスであるため、いとこの卒業写真のバックアップを作成し、これらのドライブに保存しないようにしてください。ターミナルで次のように入力します。

sudo fdisk /dev/sdb

次に、次の入力を回答する必要があります。

  1. n:新しいパーティションを追加します
  2. p:パーティションをディスク上のプライマリパーティションにします
  3. 1:この番号をパーティションに割り当てます
  4. t:パーティションの種類を変更します
  5. fd:これはRAIDパーティションの種類です
  6. w:変更を保存して終了します

残りの2つのドライブ、つまり/dev/sdc/dev/sddに対してまったく同じ手順を実行します。次に、オペレーティングシステムに変更を通知する必要があります。

sudo partprobe /dev/sdb

これに従います。

sudo partprobe /dev/sdc
sudo partprobe /dev/sdd

RAID 5のセットアップ

ここで、パーティションテーブルを簡単に見てみましょう。もう一度実行します。

fdisk -l

素晴らしい!ドライブとそのパーティションはRAID化の準備が整いました!

それらをRAID 5でセットアップするには、次を実行します。

mdadm -C /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

構文を詳しく見てみましょう。

  • mdadm:使用しているツール
  • C:これはRAIDアレイを作成するためのスイッチです
  • /dev/md0:アレイがプールされる場所
  • レベル:必要なRAIDレベル
  • raid-device:デバイスの数とその場所

次を入力することでRAIDの詳細を見ることができます。

sudo mdadm --detail /dev/md0

最後のステップは、アレイのファイルシステムを作成し、実際に使用できるようにマウントすることです。アレイをフォーマットし、アクセスできる場所を割り当てるには、次のように入力します。

sudo mkfs.ext4 /dev/md0
sudo mkdir /data

アレイのマウント

新しく作成したアレイをマウントするには2つのオプションがあります。1つは一時的にマウントするもので、コンピュータを起動するたびにマウントする必要があります。または、再起動のたびにマウントされるように永続的にマウントすることもできます。一時的にマウントするには、次のように入力します。

mount /dev/md0 /data/

ストレージを永続化することを好む場合は、/etc/fstabファイルの編集が必要で、以下の図のように行を追加する必要があります。

sudo nano /etc/fstab

ファイルを保存して閉じた後、マウントテーブルを更新します。

sudo mount -a

次に、次のように入力してマウントされたデバイスを表示できます。

df -h

おめでとうございます!RAIDアレイを正常に作成し、フォーマットしてマウントしました。これで、他のディレクトリと同様にそのディレクトリを使用し、利点を得ることができます。

RAIDのトラブルシューティング

私たちが話した冗長性の利点を覚えていますか?ドライブが故障したらどうなるでしょうか?mdadmを使用すると、mdadm -rスイッチで障害のあるドライブを取り外すことができます。うまくいけば、マザーボードはドライブのホットスワップをサポートしており、交換ドライブを差し込むことができます。

上記のfdiskコマンドに従って、新しいドライブをセットアップできます。mdadm -aスイッチを使用して、新しいドライブをアレイに追加するだけです。アレイは今すぐ再構築を開始します。これがRAID 5であるため、データはすべてそこにあり、ドライブが使用できない間も利用できます。

RAIDは必要ですか?

上の表には、RAIDが役立つ可能性のある使用例がいくつか示されています。この要件を推進するビジネスニーズがある場合は、ハードウェアRAIDコントローラーやFreeNASなどのオプションを調べて、ニーズに合ったものを選択することをお勧めします。

自宅用に追加のパフォーマンスを引き出したり、冗長性の別のレイヤーを提供したりする費用対効果の高い方法を探している場合は、mdadmが適任候補となる場合があります。

現在RAIDを使用していますか?どのくらいの頻度でハードドライブを使用しますか?データ消失の恐ろしい話はありますか?