\r\n\r\n
予備のドライブを持っていて、Linuxコンピュータをより効率的に使いたい?RAIDは、設定次第で、パフォーマンスを向上させたり、冗長性を持たせたりすることができます。早速、マルチディスクの世界に足を踏み入れてみましょう。
安価な(または単体の)RAID(Redundant Array of Disks)は、システムに利益をもたらすために協力し合うドライブのグループです。これらの利点は、性能、冗長性、またはその両方である。一般的な構成は、RAID0、RAID1、RAID5、RAID6、RAID10です。 以下に、これらをまとめます。
その他の構成もありますが、最も一般的な構成です。
どのRAIDレベルを使用するかにかかわらず、RAIDはバックアップソリューションではありません。
バックアップの迅速な立ち上げとデータ保護のためのもう一つのレイヤーを提供することはできますが、実際のバックアップの代わりにはなりません。 RAIDは高可用性が必要な場合に有効なユースケースです。レイドガイドでさらに詳しく解説しています。
RAID 0は複数のドライブにデータをストライピングして動作します。 RAID 0は少なくとも2台のドライブを必要としますが、理論的にはいくつでもドライブを追加することが可能です。これにより、コンピュータが複数のドライブに対して同時に書き込み操作を行うため、パフォーマンスが向上します。
また、異なるサイズのドライブを使用することも可能です。ただし、アレイ内の最小のドライブに制限されます。RAID 0アレイに100GBのドライブと250GBのストライプドライブがある場合、アレイの総スペースは200GBになります。ディスクあたり100GBです。
RAID 0 は、1 台のディスクで提供できるよりも高速な読み取りと書き込みを必要とする非重要なストレージに最適です。 RAID 0 はフォールトトレラントではありません。
アレイのいずれかのドライブが故障した場合、そのアレイのすべてのデータを失うことになります。
raid1は単純なミラーです。一方のドライブで起こったことは、もう一方のドライブでも起こります。RAID 1 には性能上の利点はありませんが、各ドライブにデータの正確なコピーがあるため、RAID 1 には冗長性という利点があります。アレイの1台のドライブがアクティブである限り、データは無傷のままです。
アレイの最大サイズは、アレイ内の最小ドライブのサイズと同じになります。RAID1アレイのドライブが100GBで、ドライブが250GBの場合、アレイの総スペースは100GBになります。このコスト的な意味を念頭に置いておく必要があります。
RAID 5とRAID 6は、パフォーマンスと冗長性を提供します。RAID5では片方のドライブのパリティ値を使用し、RAID6では両方のドライブのパリティ値を使用します。パリティデータを使うことで、万が一、別のブロックのデータが使えなくなっても、コンピュータが再計算してくれる。つまり、RAID 5は片方のドライブを失う可能性がありますが、RAID 6はある時点で両方のドライブが故障しても生き残る可能性があります。
ストレージで言えば、RAID5とRAID6は、総ドライブサイズから1ドライブと2ドライブを除いたサイズになるということです。つまり、それぞれ100GBのドライブが4台ある場合、RAID 5のアレイサイズは300GB、RAID 6のアレイサイズは200GBとなります。
RAID5では3台以上、RAID6では4台以上のドライブが必要です。ドライブサイズを混在させることは可能ですが、アレイはすべてのディスクをアレイの最小のドライブのサイズとして扱います。残念ながら、ドライブが故障しても、アレイは稼働し、すべてのデータにアクセスすることができます。この時点で、死んだドライブを交換し、アレイを再構築する必要があります。
デグレード状態では、アレイの動作が通常より遅くなるため、アレイを再構築する前に使用するのは得策ではありません。
RAID 10は基本的にRAID 1+0であり、これらのレベルを組み合わせたものである。これを実現するためには、ディスクのペアが必要です。データは2台のディスクにストライピングされ、その後、別のディスクにミラーリングされる。RAID 0とRAID 1の冗長性により、パフォーマンスの優位性を得ることができます。
これらの冗長化機能はすべて、ハードウェアまたはソフトウェアレベルで設定することができます。ハードウェアのスタイルでは、通常サーバーレベルのハードウェアに搭載されているRAIDコントローラーが必要です。幸いなことに、Linuxにはソフトウェア版のRAIDが存在します。原理は同じですが、オーバーヘッドはRAIDコントローラではなく、CPUにかかることを忘れないでください。
ターミナルウィンドウといくつかのドライブといくつかのOKでraid5の構成をナビゲートしてみましょう。準備ができたら、お気に入りのシェルが入ったターミナルウィンドウを開き、次のように入力します。
sudo apt install mdadm
この例では、簡単のために1GBのドライブを3台使用します(実際はもっと大きいでしょう)。以下のターミナルコマンドを使用して、どのディスクが接続されているかを確認します。
sudo fdisk -l
出力から、sdaがブートドライブとして使用され、sdb、sdd、sdcがシステムに接続されたところであることが確認できます。
次に、これらのディスクをパーティション分割する必要があります。従兄弟の卒業写真をバックアップして、これらのドライブに入れないようにしてください。これは破壊的な処理です。ターミナルで、次のように入力します。
sudo fdisk /dev/sdb
そして、次のような入力で回答する必要があります。
残りの2つのドライブ、/dev/sdcと/dev/sddについても全く同じ手順を実行します。ここで、先ほど行った変更をOSに伝える必要があります。
sudo partprobe /dev/sdb
以下の手順に従ってください。
sudo partprobe /dev/sdc
sudo partprobe /dev/sdd
では、パーティションテーブルを簡単に見てみましょう。
fdisk -l
見事だ! ドライブとそのパーティションが襲撃される準備ができたぞ。
RAID5で設定する場合は、実行します。
mdadm -C /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
文法を詳しく見てみる
と入力することで、RAIDの詳細を見ることができる。
sudo mdadm --detail /dev/md0
最後のステップは、アレイ用のファイルシステムを作成し、実際に使用できるようにマウントすることです。アレイをフォーマットし、アクセス可能な場所を指定するには、次のように入力します。
sudo mkfs.ext4 /dev/md0
sudo mkdir /data
新規に作成したアレイのマウントには2つのオプションがあります。1つ目は一時的なもので、コンピュータを起動するたびにマウントする必要があります。または、再起動するたびにマウントされるように、恒久的にマウントすることもできます。一時的にマウントするには、次のように入力します。
マウント /dev/md0 /data/
ストレージを永続化する場合は、/etc/fstab ファイルを編集して、以下の行を追加することを確認する必要があります。
sudo nano /etc/fstab
ファイルを保存して閉じた後、ローディングテーブルをリフレッシュして
sudo mount -a
そして、入力することでインストールされたデバイスを表示することができるのです。
df -h
おめでとうございます。これでRAIDアレイの作成、フォーマット、マウントに成功しました。他のディレクトリと同じように利用し、利益を得ることができるようになりました。
冗長性の利点について述べたことを思い出してください。じゃあ、ドライブが壊れたらどうするんだ?mdadmでは、mdadm-rスイッチで、障害が発生したドライブを削除することができます。マザーボードがホットスワップドライブに対応していて、ドライブを**交換できることを祈ります。
上記のfdiskコマンドに従って、新しいドライブをセットアップしてください。mdadm-aスイッチを使用して、新しいドライブをアレイに追加するだけです。これでアレイの再構築が開始されます。RAID5なので、ドライブが使用できないときでも、すべてのデータが残っているはずです。
上の表は、RAID が有益と思われる使用例をいくつか挙げています。もし、このようなビジネス上の必要性があるのであれば、ハードウェアRAIDコントローラやFreeNASなど、よりニーズに合ったオプションを検討するとよいでしょう。
もし、あなたがコスト効率の良い方法で、性能を向上させたり、ホームの冗長性を高める方法を探しているなら、mdadmは貴重な候補になるかもしれません。
現在RAIDを使用しているか、ハードディスクをどれくらいの頻度でチェックしているか、データ消失の怖い話はないか?