Ubuntu 22.04でmdadmを使用してRAIDアレイを作成する方法

はじめに

「mdadm」ユーティリティを使用すると、LinuxのソフトウェアRAID機能を利用してストレージアレイを作成および管理することができます。管理者は個々のストレージデバイスを調整し、より高いパフォーマンスや冗長性を持つ論理的なストレージデバイスを作成するために大きな柔軟性があります。

このガイドでは、Ubuntu 22.04 サーバーを使用して設定できるさまざまな RAID 構成を実行します。

前提条件 (Zenjiten)

このガイドに従うためには、以下が必要です。

  • A non-root user with sudo privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide.
  • A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
  • Multiple raw storage devices available on your server. The examples in this tutorial demonstrate how to configure various types of arrays on the server. As such, you will need some drives to configure.
  • Depending on the array type, you will need two to four storage devices. These drives do not need to be formatted prior to following this guide.

Info

情報:仮想プライベートサーバーにおけるRAID構成の非効率性を考慮し、Silicon Cloudドロップレット上でのRAID構成の展開は推奨していません。データセンターのディスク複製の効率により、ベアメタルハードウェア上の構成と比較してRAIDの利点は無視できる程度です。このチュートリアルは従来のRAID構成の参考となることを目指しています。

既存のRAIDデバイスのリセット(任意)

まだ配列を設定していない場合は、このセクションは一時的にスキップすることができます。このガイドでは、さまざまなRAIDレベルを紹介します。デバイスごとに各RAIDレベルを完了していくためには、各セクションの後でストレージデバイスを再利用することが望ましいでしょう。新しいRAIDレベルをテストする前に、ストレージデバイスをリセットするためにこの特定のセクション「既存のRAIDデバイスのリセット」を参照することができます。

Warning

警告: このプロセスにより、配列とその中のデータが完全に破壊されます。正しい配列で操作していることを確認し、配列を破壊する前に保持する必要のあるデータをコピーしてください。

最初に、/proc/mdstat ファイルの中からアクティブな配列を見つける。

  1. cat /proc/mdstat

 

Output

Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

その後、ファイルシステムから配列をアンマウントしてください。

  1. sudo umount /dev/md0

 

今、止めて配列を削除してください。

  1. sudo mdadm –stop /dev/md0

 

以下のコマンドを使って、アレイを構築するために使用されたデバイスを見つけてください。

Warning

警告:/dev/sd*の名前は再起動するたびに変更される可能性があることに注意してください。正しいデバイス上で操作していることを確認するために、毎回確認してください。
  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

 

Output

NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G linux_raid_member disk sdb 100G linux_raid_member disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

デバイスを発見した後、配列を作成するために使用されるスーパーブロックをゼロにする。これにより、RAIDのメタデータが削除され、通常の状態にリセットされます。

  1. sudo mdadm –zero-superblock /dev/sda
  2. sudo mdadm –zero-superblock /dev/sdb

 

「アレイへの持続的な参照も削除することをお勧めします。/etc/fstab ファイルを編集し、アレイへの参照をコメントアウトまたは削除してください。行の先頭にハッシュタグ # を挿入することでコメントアウトできます。nano やお好みのテキストエディタを使用してください。」

  1. sudo nano /etc/fstab

 

/etc/fstabを日本語にネイティブな表現で言い換えると、

「/etc/fstab」

. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

また、/etc/mdadm/mdadm.confファイルから配列の定義をコメントアウトまたは削除してください。

  1. sudo nano /etc/mdadm/mdadm.conf

 

/etc/mdadm/mdadm.confを日本語で言い換えると、「/etc/mdadm/mdadm.conf」です。
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

最後に、initramfsを再度更新して、早期起動プロセスが利用できない配列をオンラインにしようとしないようにしてください。

  1. sudo update-initramfs -u

 

ここからは、ストレージデバイスを個別に再利用するか、異なる配列の要素として使用する準備が整いました。

RAID 0アレイを作成する

RAID 0アレイは、データをチャンクに分割し、利用可能なディスクにストライピングすることで動作します。つまり、各ディスクにはデータの一部が含まれ、情報を取得する際には複数のディスクが参照されます。

  • Requirements: Minimum of 2 storage devices.
  • Primary benefit: Performance in terms of read/write and capacity.
  • Things to keep in mind: Make sure that you have functional backups. A single device failure will destroy all data in the array.

コンポーネントデバイスの特定

最初に、使用する生ディスクの識別子を見つけてください。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

 

Output

NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

この例では、ファイルシステムのない2つのディスクがあります。それぞれのサイズは100Gです。これらのデバイスは、このセッションでの /dev/sda および /dev/sdb の識別子が割り当てられ、配列を構築するための生のコンポーネントとして使用されます。

配列の作成

これらのコンポーネントを使用してRAID 0アレイを作成するには、mdadm –createコマンドに渡します。作成するデバイス名、RAIDレベル、およびデバイスの数を指定する必要があります。このコマンドの例では、デバイス名を/dev/md0として、アレイを構築する2つのディスクを含めます。

  1. sudo mdadm –create –verbose /dev/md0 –level=0 –raid-devices=2 /dev/sda /dev/sdb

 

/proc/mdstatファイルを確認して、RAIDが正常に作成されたことを確認してください。

  1. cat /proc/mdstat

 

Output

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

この出力結果によれば、/dev/md0 デバイスは RAID 0 構成で /dev/sda と /dev/sdb デバイスを使用して作成されました。

ファイルシステムの作成とマウント

次に、配列上にファイルシステムを作成してください。 (Tsugi ni, haisūjō ni fairushisutemu o sakusei shite kudasai.)

  1. sudo mkfs.ext4 -F /dev/md0

 

その後、新しいファイルシステムを接続するためのマウントポイントを作成してください。

  1. sudo mkdir -p /mnt/md0

 

次のコマンドを使用してファイルシステムをマウントすることができます。

  1. sudo mount /dev/md0 /mnt/md0

 

その後、新しいスペースが利用可能かどうかを確認してください。

  1. df -h -x devtmpfs -x tmpfs

 

Output

Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 196G 61M 186G 1% /mnt/md0

新しいファイルシステムは現在マウントされ、アクセス可能です。

配列レイアウトを保存する

起動時に自動的に配列が再構築されるようにするためには、/etc/mdadm/mdadm.confファイルを調整する必要があります。アクティブな配列を自動的にスキャンし、次の内容をファイルに追記することができます。

  1. sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf

 

その後、初期RAMファイルシステムであるinitramfsを更新して、アレイが早期のブートプロセス中に利用可能になるようにします。

  1. sudo update-initramfs -u

 

ブート時に自動的にマウントするため、新しいファイルシステムのマウントオプションを/etc/fstabファイルに追加してください。

  1. echo ‘/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0’ | sudo tee -a /etc/fstab

 

RAID 0アレイは、自動的に各ブート時に組み立ててマウントされます。

あなたは今、RAIDのセットアップが完了しました。別のRAIDを試したい場合は、このチュートリアルの最初のリセット手順に従い、新しいRAIDアレイタイプの作成を進めてください。

RAID 1アレイを作成する

RAID 1アレイタイプは、利用可能なすべてのディスクにデータをミラーリングすることで実装されています。RAID 1アレイの各ディスクはデータの完全なコピーを取得し、デバイスの故障時に冗長性を提供します。

  • Requirements: Minimum of 2 storage devices.
  • Primary benefit: Redundancy between two storage devices.
  • Things to keep in mind: Since two copies of the data are maintained, only half of the disk space will be usable.

コンポーネントデバイスの特定

最初に、使用する生のディスクの識別子を見つけてください。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

 

Output

NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

この例では、ファイルシステムのない2つのディスクがあります。それぞれのサイズは100Gです。これらのデバイスは、このセッションで/ dev / sdaと/ dev / sdbの識別子が付けられ、配列を構築するための生のコンポーネントとして使用されます。

配列の作成

これらのコンポーネントを使用してRAID 1アレイを作成するには、mdadm –createコマンドに渡します。作成するデバイス名、RAIDレベル、およびデバイスの数を指定する必要があります。このコマンドの例では、デバイス名を/dev/md0とし、アレイを構築するディスクを含めます。

  1. sudo mdadm –create –verbose /dev/md0 –level=1 –raid-devices=2 /dev/sda /dev/sdb

 

もし、使用しているコンポーネントデバイスがブートフラグが有効になっていないパーティションである場合、おそらく以下の警告が表示されます。yで返答して継続しても安全です。

Output

mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store ‘/boot’ on this device please ensure that your boot-loader understands md/v1.x metadata, or use –metadata=0.90 mdadm: size set to 104792064K Continue creating array? y

mdadmツールはドライブのミラーリングを開始します。完了までには時間がかかるかもしれませんが、この間にはアレイを使用することができます。ミラーリングの進捗状況は、/proc/mdstatファイルを確認することで監視できます。

  1. cat /proc/mdstat

 

Output

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 104792064 blocks super 1.2 [2/2] [UU] [====>…………….] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec unused devices: <none>

最初の強調された行では、/dev/sdaと/dev/sdbデバイスを使用して、RAID 1の設定で/dev/md0デバイスが作成されました。2番目の強調された行では、ミラーリングの進行状況が明らかになります。このプロセスが完了するまで、次のステップに進むことができます。

ファイルシステムの作成とマウント

次に、アレイ上にファイルシステムを作成してください。

  1. sudo mkfs.ext4 -F /dev/md0

 

その後、新しいファイルシステムを取り付けるためのマウントポイントを作成してください。

  1. sudo mkdir -p /mnt/md0

 

次を実行することで、ファイルシステムをマウントすることができます。

  1. sudo mount /dev/md0 /mnt/md0

 

新しくスペースが利用可能か確認してください。

  1. df -h -x devtmpfs -x tmpfs

 

Output

Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 99G 60M 94G 1% /mnt/md0

新しいファイルシステムはマウントされ、アクセス可能です。

配列のレイアウトの保存

ブート時に配列が自動的に再構築されるようにするには、/etc/mdadm/mdadm.conf ファイルを調整する必要があります。アクティブな配列を自動的にスキャンし、次の内容でファイルに追記することができます。

  1. sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf

 

その後、初期化RAMファイルシステムまたはinitramfsを更新することで、配列は早期の起動プロセス中に利用可能になります。

  1. sudo update-initramfs -u

 

ブート時に自動的にマウントするために、新しいファイルシステムのマウントオプションを/etc/fstabファイルに追加してください。

  1. echo ‘/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0’ | sudo tee -a /etc/fstab

 

あなたのRAID 1アレイは今後、起動するごとに自動的に組み込まれ、マウントされます。

RAIDの設定が完了しました。もし別のRAIDを試してみたい場合は、新しいRAIDアレイタイプの作成を進めるために、このチュートリアルの最初のリセット手順に従ってください。

RAID 5アレイを作成する

RAID 5アレイタイプは、利用可能なデバイスにデータをストリップ化して実装されます。各ストライプの一部として計算されるのはパリティブロックです。デバイスが故障した場合、パリティブロックと残りのブロックを使用して不足しているデータを計算することができます。パリティブロックを受信するデバイスは、各デバイスがバランスの取れたパリティ情報を持つように回転させられます。

  • Requirements: Minimum of 3 storage devices.
  • Primary benefit: Redundancy with more usable capacity.
  • Things to keep in mind: While the parity information is distributed, one disk’s worth of capacity will be used for parity. RAID 5 can suffer from very poor performance when in a degraded state.

コンポーネントデバイスの識別

はじめに、使用する生ディスクの識別子を見つけてください。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

 

Output

NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

このセッションでは、ファイルシステムのない3つのディスクがあります。各ディスクは100Gの大きさです。これらのデバイスは、/dev/sda、/dev/sdb、/dev/sdc の識別子が与えられ、アレイを構築するための生のコンポーネントとして使用されます。

配列の作成

これらのコンポーネントを使用してRAID 5アレイを作成するために、mdadm –createコマンドにそれらを渡します。作成したいデバイス名、RAIDレベル、およびデバイスの数を指定する必要があります。このコマンドの例では、デバイス名を/dev/md0とし、アレイを構築するディスクを含めます。

  1. sudo mdadm –create –verbose /dev/md0 –level=5 –raid-devices=3 /dev/sda /dev/sdb /dev/sdc

 

mdadmツールは、配列の構成を開始します。パフォーマンスのために、回復プロセスを使用して配列を構築します。これには時間がかかる場合がありますが、配列はこの間に使用できます。ミラーリングの進行状況は、/proc/mdstatファイルをチェックすることで監視することができます。

  1. cat /proc/mdstat

 

Output

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [>………………..] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec unused devices: <none>

最初にハイライトされた行では、/dev/md0 デバイスが、/dev/sda、/dev/sdb、/dev/sdc のデバイスを使用して RAID 5 構成で作成されました。2番目にハイライトされた行は、ビルドの進捗を表示しています。

Warning

警告: mdadmがRAID 5アレイを構築する方法により、アレイがまだ構築中の場合、アレイ内のスペアの数は間違って報告されます。したがって、/etc/mdadm/mdadm.confファイルを更新する前に、アレイの組み立てが完了するのを待たなければなりません。アレイがまだ構築中の状態で設定ファイルを更新すると、システムはアレイの状態について誤った情報を持ち、ブート時に正しい名前で自動的に組み立てることができなくなります。

このプロセスが完了するまで、ガイドを続けることができます。

ファイルシステムの作成とマウント

次に、配列上にファイルシステムを作成してください。

  1. sudo mkfs.ext4 -F /dev/md0

 

新しいファイルシステムを取り付けるためのマウントポイントを作成してください。

  1. sudo mkdir -p /mnt/md0

 

以下の方法でファイルシステムをマウントすることができます。

  1. sudo mount /dev/md0 /mnt/md0

 

新しいスペースが利用可能かどうか確認してください。

  1. df -h -x devtmpfs -x tmpfs

 

Output

Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新しいファイルシステムはマウントされ、アクセス可能です。

配列のレイアウトを保存する。

ブート時に配列が自動的に再構築されるようにするには、/etc/mdadm/mdadm.conf ファイルを調整する必要があります。

Warning

警告: 前述のように、構成を調整する前に、再度確認して配列が組み立てられたことを確認してください。配列が構築される前に以下の手順を完了することで、再起動時に正しく配列が組み立てられないように防ぎます。

/proc/mdstat ファイルを確認することで、ミラーリングの進捗状況を監視することができます。

  1. cat /proc/mdstat

 

Output

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>

この出力は、リビルドが完了したことを示しています。これで、アクティブな配列を自動的にスキャンし、ファイルを追加することができます。

  1. sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf

 

その後、初期RAMファイルシステムであるinitramfsを更新することで、アレイを早期のブートプロセス中に利用できるようにします。

  1. sudo update-initramfs -u

 

ブート時の自動マウントのために、新しいファイルシステムのマウントオプションを/etc/fstabファイルに追加してください。

  1. echo ‘/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0’ | sudo tee -a /etc/fstab

 

あなたのRAID 5アレイは、今後自動的に組み立てられてマウントされます。

あなたは今、RAIDの設定が完了しました。もし別のRAIDを試したい場合は、新しいRAIDアレイタイプを作成するために、このチュートリアルの最初の指示に従ってリセット手順を進めてください。

RAID 6アレイを作成する

RAID 6アレイタイプは、利用可能なデバイス全体にデータをストライピングして実装されます。各ストライプの2つのコンポーネントは、パリティブロックが計算されます。もしデバイスのうち1つか2つが故障した場合、パリティブロックと残りのブロックを使用して欠落したデータを計算することができます。パリティブロックを受け取るデバイスは、各デバイスがバランスの取れた量のパリティ情報を持つようにローテーションされます。これはRAID 5アレイに似ていますが、2つのドライブの故障にも耐えることができます。

  • Requirements: Minimum of 4 storage devices.
  • Primary benefit: Double redundancy with more usable capacity.
  • Things to keep in mind: While the parity information is distributed, two disks worth of capacity will be used for parity. RAID 6 can suffer from very poor performance when in a degraded state.

コンポーネントデバイスの特定

最初に、使用する生ディスクの識別子を見つけてください。 (Saisho ni, shiyō suru namadisuku no shikibetsu-shi o mitsukete kudasai.)

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

 

Output

NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

この例では、ファイルシステムのないサイズが100Gのディスクが4つあります。これらのデバイスは、このセッションで/dev/sda、/dev/sdb、/dev/sdc、および/dev/sddの識別子を付けられ、アレイを構築するための生のコンポーネントとして使用されます。

配列を作成する

これらのコンポーネントを使用してRAID 6アレイを作成するには、mdadm –createコマンドにそれらを渡します。作成するデバイス名、RAIDレベル、およびデバイスの数を指定する必要があります。次のコマンドの例では、デバイスを/dev/md0と名付け、アレイを構築するディスクを含めます。

  1. sudo mdadm –create –verbose /dev/md0 –level=6 –raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

 

mdadmツールは配列の設定を開始します。パフォーマンスのために、リカバリプロセスを使用して配列を構築します。完了するまでには時間がかかるかもしれませんが、この時間中も配列を使用できます。進行状況は/proc/mdstatファイルを確認することで監視できます。

  1. cat /proc/mdstat

 

Output

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] [>………………..] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec unused devices: <none>

最初の強調表示された行では、/dev/md0 デバイスが RAID 6 構成で /dev/sda、/dev/sdb、/dev/sdc、/dev/sdd デバイスを使用して作成されました。2番目の強調表示された行はビルドの進捗状況を示しています。このプロセスが完了するまで、ガイドを続けることができます。

ファイルシステムの作成とマウント

次に、アレイにファイルシステムを作成します。

  1. sudo mkfs.ext4 -F /dev/md0

 

新しいファイルシステムを接続するためのマウントポイントを作成してください。

  1. sudo mkdir -p /mnt/md0

 

以下の方法でファイルシステムをマウントできます。

  1. sudo mount /dev/md0 /mnt/md0

 

新しいスペースが利用可能かどうかを確認してください。 (Atarashii supēsu ga riyō kanō ka dōka o kakunin shite kudasai.)

  1. df -h -x devtmpfs -x tmpfs

 

Output

Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新しいファイルシステムがマウントされ、アクセスできるようになりました。

配列のレイアウトを保存する。

起動時に配列が自動的に再組み立てされるようにするには、/etc/mdadm/mdadm.conf ファイルを調整する必要があります。アクティブな配列を自動的にスキャンし、ファイルに追加するには、次のように入力してください:

  1. sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf

 

その後、初期RAMファイルシステム(initramfs)を更新することで、配列が早期の起動プロセス中に利用可能になります。

  1. sudo update-initramfs -u

 

起動時に自動マウントするために、新しいファイルシステムのマウントオプションを「/etc/fstab」ファイルに追加してください。

  1. echo ‘/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0’ | sudo tee -a /etc/fstab

 

あなたのRAID 6アレイは、今後は自動的に組み立ててブートごとにマウントされます。

あなたは今、RAIDの設定が完了しました。もし別のRAIDを試したい場合は、新しいRAIDアレイタイプを作成するために、このチュートリアルの最初にあるリセット手順に従ってください。

複雑なRAID 10アレイを作成する

RAID 10は、通常、RAID 1のセットから構成されるストライプ化されたRAID 0の配列を作成することで実装されます。このネストした配列タイプは冗長性と高いパフォーマンスを提供しますが、多くのディスク容量が必要です。mdadmユーティリティには、柔軟性が向上した同じ種類の利点を提供する専用のRAID 10タイプがあります。このタイプは配列をネストすることなく作成されますが、同様の特性と保証があります。ここでは、mdadm RAID 10を使用します。

  • Requirements: Minimum of 3 storage devices.
  • Primary benefit: Performance and redundancy.
  • Things to keep in mind: The amount of capacity reduction for the array is defined by the number of data copies you choose to keep. The number of copies that are stored with mdadm style RAID 10 is configurable.

デフォルトでは、各データブロックの2つのコピーが近接配置と呼ばれる方法で保存されます。データブロックが保存される可能なレイアウトは次のようになります。

  • near: The default arrangement. Copies of each chunk are written consecutively when striping, meaning that the copies of the data blocks will be written around the same part of multiple disks.
  • far: The first and subsequent copies are written to different parts of the storage devices in the array. For instance, the first chunk might be written near the beginning of a disk, while the second chunk would be written halfway down on a different disk. This can give some read performance gains for traditional spinning disks at the expense of write performance.
  • offset: Each stripe is copied, and offset by one drive. This means that the copies are offset from one another, but still close together on the disk. This helps minimize excessive seeking during some workloads.

このmanページのRAID10セクションを参照して、これらのレイアウトに関して詳細を知ることができます。

  1. man 4 md

 

このマンページはオンラインでも見つけることができます。

コンポーネントデバイスの識別

始めるには、使用する生ディスクの識別子を見つけてください。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

 

Output

NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

この例では、ファイルシステムのない4つのディスクがあります。それぞれのサイズは100Gです。このセッションでは、これらのデバイスには/dev/sda、/dev/sdb、/dev/sdc、および /dev/sdd の識別子が与えられ、配列を構築するための生のコンポーネントとして使用されます。

配列の作成

これらのコンポーネントでRAID 10アレイを作成するには、それらをmdadm –createコマンドに渡します。作成したいデバイス名、RAIDレベル、およびデバイスの数を指定する必要があります。以下のコマンド例では、デバイスの名前を/dev/md0として、アレイを構築するディスクを含めます。

「レイアウトやコピーの数を指定せずに、近いレイアウトを使用して2つのコピーを設定することができます。」

  1. sudo mdadm –create –verbose /dev/md0 –level=10 –raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

 

異なるレイアウトを使用したり、コピーの数を変更したい場合は、–layout=オプションを使用する必要があります。このオプションは、レイアウトとコピーの識別子を取ることができます。レイアウトには、n(近距離用)、f(遠距離用)、o(オフセット用)があります。保存するコピーの数はその後に追加されます。

たとえば、オフセットレイアウトで3つのコピーを持つ配列を作成する場合、以下のコマンドを含めます。

  1. sudo mdadm –create –verbose /dev/md0 –level=10 –layout=o3 –raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

 

mdadmツールはアレイの構成を開始します。パフォーマンスのために、リカバリプロセスを使用してアレイを構築します。完了するまでには時間がかかる場合がありますが、この時間中にアレイを使用することができます。ミラーリングの進行状況は、/proc/mdstatファイルをチェックすることでモニタリングすることができます。

  1. cat /proc/mdstat

 

Output

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>……………..] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: <none>

最初のハイライトされた行では、/dev/md0デバイスが/dev/sda、/dev/sdb、/dev/sdc、/dev/sddデバイスを使用してRAID 10構成で作成されました。2つ目のハイライトされた箇所はこの例で使用されたレイアウトを示しています(近い構成で2つのコピー)。3つ目のハイライトされた箇所はビルドの進捗状況を示しています。このプロセスが完了する間も、操作ガイドを続けることができます。

ファイルシステムの作成とマウント

次に、配列にファイルシステムを作成してください。

  1. sudo mkfs.ext4 -F /dev/md0

 

新しいファイルシステムを接続するためにマウントポイントを作成してください。

  1. sudo mkdir -p /mnt/md0

 

以下の手順でファイルシステムをマウントすることができます。

  1. sudo mount /dev/md0 /mnt/md0

 

新しいスペースが利用可能かどうかを確認してください。

  1. df -h -x devtmpfs -x tmpfs

 

Output

Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新しいファイルシステムはマウントされ、アクセスできます。

配列のレイアウトの保存

起動時に自動的に配列が再結成されるようにするためには、/etc/mdadm/mdadm.conf ファイルを調整する必要があります。以下のコマンドを実行することで、アクティブな配列を自動的にスキャンし、ファイルに追記できます。

  1. sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf

 

その後、初期RAMファイルシステム(initramfs)を更新して、アレイが早期のブートプロセス中に利用可能になるようにします。

  1. sudo update-initramfs -u

 

起動時に自動的にマウントするため、新しいファイルシステムのマウントオプションを/etc/fstabファイルに追加してください。

  1. echo ‘/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0’ | sudo tee -a /etc/fstab

 

あなたのRAID 10アレイは、今後はブート時に自動的に組み立てられ、マウントされます。

結論

このガイドでは、LinuxのmdadmソフトウェアRAIDユーティリティを使用してさまざまなタイプの配列を作成する方法を学びました。RAID配列は、個別の複数のディスクを使用する場合に比べて冗長性とパフォーマンスの向上が期待できます。

環境に必要な配列のタイプを決定し、デバイスを作成したら、mdadmを使用して日常の管理方法を学ぶことができます。Ubuntuでmdadmを使用してRAID配列を管理する方法についてのガイドが役立ちます。

コメントを残す 0

Your email address will not be published. Required fields are marked *