Linux での RAID 5 (分散パリティを使用したストライピング) の作成 - パート 4
RAID 5 では、データは分散パリティを使用して複数のドライブにまたがってストリップされます。分散パリティによるストライピングは、パリティ情報を分割し、データを複数のディスクにストライプ化することを意味し、優れたデータ冗長性が得られます。
RAID レベルの場合、少なくとも 3 台以上のハードドライブが必要です。 RAID 5 は、コスト効率が高く、パフォーマンスと冗長性を提供する大規模な実稼働環境で使用されています。
パリティとは何ですか?
パリティは、データ ストレージ内のエラーを検出する最も簡単な一般的な方法です。パリティは各ディスクに情報を保存します。4 つのディスクがあるとします。4 つのディスクでは、1 つのディスク領域がパリティ情報を保存するためにすべてのディスクに分割されます。いずれかのディスクに障害が発生した場合でも、障害が発生したディスクを交換した後、パリティ情報から再構築することでデータを取得できます。
RAID 5 の長所と短所
- より良いパフォーマンスを提供します
- 冗長性と耐障害性をサポートします。
- ホットスペアオプションをサポートします。
- パリティ情報を使用するために 1 つのディスク容量が失われます。
- 単一のディスクに障害が発生してもデータは失われません。故障したディスクを交換した後、パリティから再構築できます。
- 読み取りが高速になるため、トランザクション指向の環境に適しています。
- パリティのオーバーヘッドにより書き込みが遅くなります。
- 再構築には長い時間がかかります。
要件
Raid 5 を作成するには少なくとも 3 台のハード ドライブが必要ですが、マルチ ポートを備えた専用のハードウェア RAID コントローラがある場合にのみ、さらにディスクを追加できます。ここでは、ソフトウェア RAID と「mdadm」パッケージを使用して RAID を作成しています。
mdadm は、Linux で RAID デバイスを構成および管理できるようにするパッケージです。デフォルトでは、RAID に使用できる構成ファイルはありません。RAID セットアップを作成して構成した後、mdadm.conf という別のファイルに構成ファイルを保存する必要があります。
次に進む前に、Linux の RAID の基本を理解するために次の記事に目を通すことをお勧めします。
- Linux における RAID の基本概念 – パート 1
- Linux での RAID 0 (ストライプ) の作成 – パート 2
- Linux での RAID 1 (ミラーリング) のセットアップ – パート 3
私のサーバーのセットアップ
Operating System : CentOS 6.5 Final
IP Address : 192.168.0.227
Hostname : rd5.tecmintlocal.com
Disk 1 [20GB] : /dev/sdb
Disk 2 [20GB] : /dev/sdc
Disk 3 [20GB] : /dev/sdd
この記事は、9 つのチュートリアル RAID シリーズのパート 4 です。ここでは、3 つの 20GB ディスクを使用して Linux システムまたはサーバーに分散パリティを備えたソフトウェアRAID 5 をセットアップします。 /dev/sdb、/dev/sdc、および /dev/sdd という名前です。
ステップ 1: mdadm のインストールとドライブの確認
1. 前述したように、この RAID セットアップには CentOS 6.5 Final リリースを使用していますが、Linux ベースのディストリビューションの RAID セットアップでも同じ手順に従うことができます。
# lsb_release -a
ifconfig | grep inet
2. RAID シリーズをフォローしている場合は、「mdadm」パッケージがすでにインストールされていると想定します。インストールされていない場合は、Linux に応じて次のコマンドを使用します。パッケージをインストールするためのディストリビューション。
# yum install mdadm [on RedHat systems]
apt-get install mdadm [on Debain systems]
3. 「mdadm」パッケージのインストール後、「fdisk」コマンドを使用してシステムに追加した 3 つの 20GB ディスクのリストを表示します。
# fdisk -l | grep sd
4. 次に、次のコマンドを使用して、接続されている 3 つのドライブに既存の RAID ブロックがないかどうかを調べます。
# mdadm -E /dev/sd[b-d]
mdadm --examine /dev/sdb /dev/sdc /dev/sdd
注: 上の画像から、スーパー ブロックがまだ検出されていないことがわかります。したがって、3 つのドライブすべてに RAID が定義されていません。今すぐ作成を始めましょう。
ステップ 2: RAID 用にディスクをパーティション分割する
5. まず第一に、ディスク (/dev/sdb、/dev/sdc、および /) をパーティション分割する必要があります。 dev/sdd)をRAIDに追加する前に、次のステップに進む前に、「fdisk」コマンドを使用してパーティションを定義しましょう。
# fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
/dev/sdb パーティションを作成する
以下の手順に従って、/dev/sdb ドライブにパーティションを作成してください。
- 新しいパーティションを作成するには、「n」を押します。
- 次に、プライマリ パーティションとして「P」を選択します。ここではまだパーティションが定義されていないため、[プライマリ] を選択しています。
- 次に、最初のパーティションとして「1」を選択します。デフォルトでは1になります。
- ここでシリンダー サイズについては、RAID にはパーティション全体が必要なので、指定したサイズを選択する必要はありません。Enter キーを 2 回押してデフォルトのフル サイズを選択するだけです。
- 次に「p」を押して、作成したパーティションを印刷します。
- タイプを変更します。利用可能なすべてのタイプを知る必要がある場合は、「L」を押します。
- ここでは、タイプが RAID であるため、「fd」を選択しています。
- 次に「p」を押して、定義されたパーティションを印刷します。
- 次に、再度「p」を使用して、行った変更を出力します。
- 変更を書き込むには「w」を使用します。
注: sdc および sdd ドライブのパーティションを作成するには、上記の手順に従う必要があります。
/dev/sdc パーティションを作成する
次に、スクリーンショットに示されている手順に従って、sdc ドライブと sdd ドライブをパーティション分割します。または、上記の手順に従うこともできます。
# fdisk /dev/sdc
/dev/sdd パーティションを作成する
# fdisk /dev/sdd
6. パーティションを作成した後、sdb、sdc、sdd の 3 つのドライブすべてに変更がないか確認します。
# mdadm --examine /dev/sdb /dev/sdc /dev/sdd
or
mdadm -E /dev/sd[b-d]
注: 上の写真では。タイプは fd、つまり RAID であることを示しています。
7. 次に、新しく作成したパーティション内の RAID ブロックを確認します。スーパー ブロックが検出されない場合は、これらのドライブ上に新しい RAID 5 セットアップを作成する作業に進むことができます。
ステップ 3: md デバイス md0 の作成
8. ここで、RAID デバイス 'md0' (つまり、/dev/md0) を作成し、新しく作成されたすべてのパーティション (sdb1、sdb1、 sdc1、および sdd1) 以下のコマンドを使用します。
# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
or
mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1
9. RAID デバイスを作成した後、 mdstat 出力から RAID、含まれるデバイス、RAID レベルを確認して確認します。
# cat /proc/mdstat
現在のビルドプロセスを監視したい場合は、「watch」コマンドを使用できます。watch コマンドで「cat /proc/mdstat」を通過するだけです。 1 秒ごとに画面を更新します。
# watch -n1 cat /proc/mdstat
10. RAID の作成後、次のコマンドを使用して RAID デバイスを確認します。
# mdadm -E /dev/sd[b-d]1
注: 上記のコマンドの出力は、3 つのドライブすべての情報を出力するため、少し長くなります。
11. 次に、RAID レベルに含めたデバイスが実行中であり、再同期が開始されていることを前提として、RAID アレイを検証します。
# mdadm --detail /dev/md0
ステップ 4: md0 のファイル システムを作成する
12. マウントする前に、ext4 を使用して「md0」デバイスのファイル システムを作成します。
# mkfs.ext4 /dev/md0
13. 次に、「/mnt」の下にディレクトリを作成し、作成したファイルシステムを /mnt/raid5 の下にマウントし、マウント ポイントの下のファイルを確認します。 lost+found ディレクトリが表示されます。
# mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5/
ls -l /mnt/raid5/
14. マウント ポイント /mnt/raid5 の下にいくつかのファイルを作成し、いずれかのファイルにテキストを追加して内容を確認します。
# touch /mnt/raid5/raid5_tecmint_{1..5}
ls -l /mnt/raid5/
echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1
cat /mnt/raid5/raid5_tecmint_1
cat /proc/mdstat
15. fstab にエントリを追加する必要があります。追加しないと、システムの再起動後にマウント ポイントが表示されません。エントリを追加するには、fstab ファイルを編集し、以下に示すように次の行を追加する必要があります。マウントポイントは環境により異なります。
# vim /etc/fstab
/dev/md0 /mnt/raid5 ext4 defaults 0 0
16. 次に、「mount -av」コマンドを実行して、fstab エントリにエラーがあるかどうかを確認します。
# mount -av
ステップ 5: Raid 5 構成を保存する
17. 要件セクションで前述したように、デフォルトでは RAID には構成ファイルがありません。手動で保存する必要があります。この手順に従わない場合、RAID デバイスは md0 に存在せず、別の乱数に存在します。
したがって、システムを再起動する前に設定を保存する必要があります。設定が保存されると、システムの再起動中にカーネルにロードされ、RAID もロードされます。
# mdadm --detail --scan --verbose >> /etc/mdadm.conf
注: 設定を保存すると、md0 デバイスの RAID レベルが安定した状態に保たれます。
ステップ 6: スペアドライブの追加
18. スペア ドライブを追加すると何になりますか?スペア ドライブがあると非常に便利です。アレイ内のいずれかのディスクに障害が発生した場合、このスペア ドライブがアクティブになり、プロセスが再構築され、他のディスクからデータが同期されるため、ここで冗長性が確認できます。
スペア ドライブを追加し、RAID 5 フォールト トレランスをチェックする方法の詳細については、次の記事の#ステップ 6 と # ステップ 7 を参照してください。
- スペアドライブをRAID 5セットアップに追加
結論
この記事では、3 つのディスクを使用して RAID 5 をセットアップする方法について説明しました。今後の記事では、RAID 5 でディスクに障害が発生した場合のトラブルシューティング方法と、回復のためにディスクを交換する方法について説明します。