LinuxでのRAID5(分散パリティを使用したストライピング)の作成-パート4


RAID 5では、分散パリティを使用して複数のドライブにまたがるデータストリップ。分散パリティを使用したストライピングは、パリティ情報とストライプデータを複数のディスクに分割することを意味します。これにより、データの冗長性が向上します。

RAIDレベルの場合、少なくとも3台以上のハードドライブが必要です。 RAID 5は、費用効果が高く、パフォーマンスと冗長性を提供する大規模な本番環境で使用されています。

パリティは、データストレージのエラーを検出する最も簡単な一般的な方法です。パリティは各ディスクに情報を格納します。たとえば、4つのディスクがあるとすると、4つのディスクでは、パリティ情報を格納するために1つのディスクスペースがすべてのディスクに分割されます。それでもディスクのいずれかに障害が発生した場合は、障害が発生したディスクを交換した後、パリティ情報から再構築することでデータを取得できます。

  1. Gives better performance
  2. Support Redundancy and Fault tolerance.
  3. Support hot spare options.
  4. Will loose a single disk capacity for using parity information.
  5. No data loss if a single disk fails. We can rebuilt from parity after replacing the failed disk.
  6. Suits for transaction oriented environment as the reading will be faster.
  7. Due to parity overhead, writing will be slow.
  8. Rebuild takes long time.

RAID 5を作成するには、最低3台のハードドライブが必要ですが、マルチポートを備えた専用のハードウェアRAIDコントローラーがある場合にのみ、ディスクを追加できます。ここでは、ソフトウェアRAIDと「mdadm」パッケージを使用してRAIDを作成しています。

mdadmは、LinuxでRAIDデバイスを構成および管理できるようにするパッケージです。デフォルトでは、RAIDに使用できる構成ファイルはありません。RAIDセットアップを作成して構成した後、mdadm.confという別のファイルに構成ファイルを保存する必要があります。

先に進む前に、LinuxでのRAIDの基本を理解するために、次の記事を読むことをお勧めします。

  1. Basic Concepts of RAID in Linux – Part 1
  2. Creating RAID 0 (Stripe) in Linux – Part 2
  3. Setting up RAID 1 (Mirroring) in Linux – Part 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です。ここでは、/ dev/sdb、/ dev/sdc、および/ dev /という名前の3つの20GBディスクを使用して、Linuxシステムまたはサーバーで分散パリティを備えたソフトウェアRAID5をセットアップします。 SD D。

ステップ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.何よりもまず、RAIDに追加する前にディスク(/ dev/sdb、/ dev/sdc、/ dev/sdd)をパーティション分割する必要があるため、に転送する前に、「fdisk」コマンドを使用してパーティションを定義しましょう。次のステップ。

# fdisk /dev/sdb
# fdisk /dev/sdc
# fdisk /dev/sdd

/ dev/sdbドライブにパーティションを作成するには、以下の手順に従ってください。

  1. Press ‘n‘ for creating new partition.
  2. Then choose ‘P‘ for Primary partition. Here we are choosing Primary because there is no partitions defined yet.
  3. Then choose ‘1‘ to be the first partition. By default it will be 1.
  4. Here for cylinder size we don’t have to choose the specified size because we need the whole partition for RAID so just Press Enter two times to choose the default full size.
  5. Next press ‘p‘ to print the created partition.
  6. Change the Type, If we need to know the every available types Press ‘L‘.
  7. Here, we are selecting ‘fd‘ as my type is RAID.
  8. Next press ‘p‘ to print the defined partition.
  9. Then again use ‘p‘ to print the changes what we have made.
  10. Use ‘w‘ to write the changes.

注:sdcおよびsddドライブのパーティションも作成するには、上記の手順に従う必要があります。

次に、スクリーンショットに示されている手順に従ってsdcドライブとsddドライブを分割します。または、上記の手順に従うこともできます。

# fdisk /dev/sdc
# fdisk /dev/sdd

6.パーティションを作成した後、3つのドライブsdb、sdc、およびsddすべてに変更がないか確認します。

# mdadm --examine /dev/sdb /dev/sdc /dev/sdd

or

# mdadm -E /dev/sd[b-c]

注:上の写真では。タイプがfd、つまりRAIDの場合を示します。

7.次に、新しく作成されたパーティションのRAIDブロックを確認します。スーパーブロックが検出されない場合は、先に進んでこれらのドライブに新しいRAID5セットアップを作成できます。

ステップ3:mdデバイスmd0を作成する

8.次に、RAIDデバイス「md0」(つまり、/ dev/md0)を作成し、以下のコマンドを使用して、新しく作成されたすべてのパーティション(sdb1、sdc1、およびsdd1)にRAIDレベルを含めます。

# 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」コマンドを使用できます。1秒ごとに画面を更新するwatchコマンドで「cat/proc/mdstat」を通過するだけです。

# 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:RAID5構成を保存する

17.要件のセクションで前述したように、デフォルトではRAIDには構成ファイルがありません。手動で保存する必要があります。この手順に従わない場合、RAIDデバイスはmd0に含まれず、他の乱数になります。

したがって、システムを再起動する前に構成を保存する必要があります。構成が保存されると、システムの再起動時にカーネルにロードされ、RAIDもロードされます。

# mdadm --detail --scan --verbose >> /etc/mdadm.conf

注:構成を保存すると、md0デバイスのRAIDレベルが安定します。

ステップ6:スペアドライブを追加する

18.スペアドライブを追加する用途は何ですか?スペアドライブがある場合に非常に便利です。アレイ内のディスクのいずれかに障害が発生すると、このスペアドライブがアクティブになり、プロセスが再構築され、他のディスクからのデータが同期されるため、ここで冗長性を確認できます。

スペアドライブを追加してRAID5のフォールトトレランスを確認する方法の詳細については、次の記事の#Step6と#Step7をお読みください。

  1. Add Spare Drive to Raid 5 Setup

結論

ここで、この記事では、3つのディスクを使用してRAID5をセットアップする方法を見てきました。今後の記事の後半で、RAID 5でディスクに障害が発生した場合のトラブルシューティング方法と、リカバリのために交換する方法について説明します。