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

前書き

mdadmユーティリティは、LinuxのソフトウェアRAID機能を使用してストレージアレイを作成および管理するために使用できます。 管理者は、個々のストレージデバイスを調整し、より優れたパフォーマンスまたは冗長性を備えた論理ストレージデバイスを作成する際に、非常に柔軟に対応できます。

このガイドでは、Ubuntu 18.04サーバーを使用してセットアップできるさまざまなRAID構成について説明します。

前提条件

このガイドの手順を完了するには、次のものが必要です。

  • A non-root user with sudo privileges on an Ubuntu 16.04 server:このガイドの手順は、sudoユーザーで完了します。 これらの権限でアカウントを設定する方法については、Ubuntu 18.04 initial server setup guideに従ってください。

  • A basic understanding of RAID terminology and concepts:このガイドでは、RAIDの用語について説明しますが、より完全に理解しておくと非常に役立ちます。 RAIDの詳細と、自分に適したRAIDレベルをよりよく理解するには、introduction to RAID articleをお読みください。

  • Multiple raw storage devices available on your server:サーバー上でさまざまなタイプのアレイを構成する方法を示します。 そのため、構成するにはいくつかのドライブが必要になります。 DigitalOceanを使用している場合は、Block Storage volumesを使用してこの役割を果たすことができます。 配列タイプに応じて、少なくともtwo to four storage devicesが必要になります。 これらのドライブは、このガイドに従う前にフォーマットする必要はありません。

既存のRAIDデバイスのリセット

このガイドでは、さまざまなRAIDレベルを作成する手順を紹介します。 従う場合は、各セクションの後にストレージデバイスを再利用することをお勧めします。 このセクションを参照して、新しいRAIDレベルをテストする前にコンポーネントストレージデバイスをすばやくリセットする方法を学習できます。 まだアレイをセットアップしていない場合は、このセクションをスキップしてください。

[.warning]#Warning:このプロセスは、配列とそれに書き込まれたデータを完全に破壊します。 正しいアレイで操作していること、およびアレイを破棄する前に保持する必要のあるデータをコピーしたことを確認してください。

次のように入力して、/proc/mdstatファイルでアクティブな配列を見つけます。

cat /proc/mdstat
OutputPersonalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdc[1] sdd[0]
      209584128 blocks super 1.2 512k chunks

            unused devices: 

ファイルシステムからアレイをアンマウントします。

sudo umount /dev/md0

次に、次のように入力して、配列を停止して削除します。

sudo mdadm --stop /dev/md0

次のコマンドを使用して、アレイの構築に使用されたデバイスを見つけます。

[.warning]#Warning:/dev/sd*の名前は、再起動するたびに変更される可能性があることに注意してください。 毎回それらをチェックして、正しいデバイスで操作していることを確認してください。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE            TYPE MOUNTPOINT
sda      100G                   disk
sdb      100G                   disk
sdc      100G linux_raid_member disk
sdd      100G linux_raid_member disk
vda       25G                   disk
├─vda1  24.9G ext4              part /
├─vda14    4M                   part
└─vda15  106M vfat              part /boot/efi

アレイの作成に使用されたデバイスを検出したら、スーパーブロックをゼロにしてRAIDメタデータを削除し、それらを通常にリセットします。

sudo mdadm --zero-superblock /dev/sdc
sudo mdadm --zero-superblock /dev/sdd

配列への永続的な参照を削除する必要があります。 /etc/fstabファイルを編集し、配列への参照をコメントアウトまたは削除します。

sudo nano /etc/fstab

/etc/fstab

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

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

sudo nano /etc/mdadm/mdadm.conf

/etc/mdadm/mdadm.conf

. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

最後に、initramfsを再度更新して、初期ブートプロセスが使用できないアレイをオンラインにしようとしないようにします。

sudo update-initramfs -u

この時点で、ストレージデバイスを個別に、または別のアレイのコンポーネントとして再利用する準備ができているはずです。

RAID 0アレイの作成

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

  • 要件:最低2 storage devices

  • 主な利点:パフォーマンス

  • 留意事項:機能的なバックアップがあることを確認してください。 1つのデバイスに障害が発生すると、アレイ内のすべてのデータが破壊されます。

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

開始するには、使用するrawディスクの識別子を見つけます。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

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

配列を作成する

これらのコンポーネントを使用してRAID0アレイを作成するには、それらをmdadm --createコマンドに渡します。 作成するデバイス名(この場合は/dev/md0)、RAIDレベル、およびデバイスの数を指定する必要があります。

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

/proc/mdstatファイルをチェックすることにより、RAIDが正常に作成されたことを確認できます。

cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdb[1] sda[0]
      209584128 blocks super 1.2 512k chunks

            unused devices: 

強調表示された行でわかるように、/dev/md0デバイスは、/dev/sdaおよび/dev/sdbデバイスを使用してRAID0構成で作成されています。

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

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

sudo mkfs.ext4 -F /dev/md0

マウントポイントを作成して、新しいファイルシステムを接続します。

sudo mkdir -p /mnt/md0

次のように入力して、ファイルシステムをマウントできます。

sudo mount /dev/md0 /mnt/md0

次のように入力して、新しいスペースが使用可能かどうかを確認します。

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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ファイルを調整する必要があります。 次のように入力して、アクティブな配列を自動的にスキャンし、ファイルを追加できます。

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

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

sudo update-initramfs -u

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

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

これで、RAID 0アレイがブートごとに自動的に組み立てられ、マウントされます。

RAID 1アレイの作成

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

  • 要件:最低2 storage devices

  • 主な利点:冗長性

  • 留意事項:データのコピーが2つ保持されるため、使用可能なディスク領域は半分になります

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

開始するには、使用するrawディスクの識別子を見つけます。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

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

配列を作成する

これらのコンポーネントを使用してRAID1アレイを作成するには、それらをmdadm --createコマンドに渡します。 作成するデバイス名(この場合は/dev/md0)、RAIDレベル、およびデバイスの数を指定する必要があります。

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

使用しているコンポーネントデバイスがbootフラグが有効になっているパーティションでない場合、次の警告が表示される可能性があります。 続行するには、yと入力しても安全です。

Outputmdadm: 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ファイルをチェックすることにより、ミラーリングの進行状況を監視できます。

cat /proc/mdstat
OutputPersonalities : [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: 

最初に強調表示されている行でわかるように、/dev/md0デバイスは、/dev/sdaおよび/dev/sdbデバイスを使用してRAID1構成で作成されています。 2番目に強調表示された行は、ミラーリングの進行状況を示しています。 このプロセスが完了するまでガイドを続行できます。

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

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

sudo mkfs.ext4 -F /dev/md0

マウントポイントを作成して、新しいファイルシステムを接続します。

sudo mkdir -p /mnt/md0

次のように入力して、ファイルシステムをマウントできます。

sudo mount /dev/md0 /mnt/md0

次のように入力して、新しいスペースが使用可能かどうかを確認します。

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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ファイルを調整する必要があります。 次のように入力して、アクティブな配列を自動的にスキャンし、ファイルを追加できます。

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

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

sudo update-initramfs -u

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

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

これで、RAID 1アレイが各ブートで自動的に組み立てられ、マウントされます。

RAID 5アレイの作成

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

  • 要件:最低3 storage devices

  • 主な利点:より多くの使用可能な容量による冗長性。

  • 留意事項:パリティ情報は配信されますが、1つのディスクに相当する容量がパリティに使用されます。 RAID 5は、劣化状態の場合、パフォーマンスが非常に低下する可能性があります。

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

開始するには、使用するrawディスクの識別子を見つけます。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

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

配列を作成する

これらのコンポーネントを使用してRAID5アレイを作成するには、それらをmdadm --createコマンドに渡します。 作成するデバイス名(この場合は/dev/md0)、RAIDレベル、およびデバイスの数を指定する必要があります。

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

mdadmツールはアレイの構成を開始します(パフォーマンス上の理由から、実際にはリカバリプロセスを使用してアレイを構築します)。 これを完了するにはしばらく時間がかかりますが、この時間中に配列を使用できます。 /proc/mdstatファイルをチェックすることにより、ミラーリングの進行状況を監視できます。

cat /proc/mdstat
OutputPersonalities : [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/2] [UU_]
      [===>.................]  recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/sec

unused devices: 

最初に強調表示されている行でわかるように、/dev/md0デバイスは、/dev/sda/dev/sdb、および/dev/sdcデバイスを使用してRAID5構成で作成されています。 2番目に強調表示された行は、ビルドの進行状況を示しています。

[.warning]#Warning:mdadmがRAID 5アレイを構築する方法により、アレイがまだ構築されている間に、アレイ内のスペアの数が不正確に報告されます。 これは、/etc/mdadm/mdadm.confファイルを更新する前に、配列のアセンブルが完了するのを待つ必要があることを意味します。 アレイの構築中に構成ファイルを更新すると、システムはアレイの状態に関する誤った情報を持ち、起動時に正しい名前で自動的にアセンブルできなくなります。

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

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

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

sudo mkfs.ext4 -F /dev/md0

マウントポイントを作成して、新しいファイルシステムを接続します。

sudo mkdir -p /mnt/md0

次のように入力して、ファイルシステムをマウントできます。

sudo mount /dev/md0 /mnt/md0

次のように入力して、新しいスペースが使用可能かどうかを確認します。

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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ファイルを調整する必要があります。

As mentioned above, before you adjust the configuration, check again to make sure the array has finished assembling.アレイが構築される前にこの手順を完了すると、システムが再起動時にアレイを正しく組み立てることができなくなります。

cat /proc/mdstat
OutputPersonalities : [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: 

上記の出力は、再構築が完了したことを示しています。 これで、次のように入力して、アクティブな配列を自動的にスキャンし、ファイルを追加できます。

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

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

sudo update-initramfs -u

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

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

RAID 5アレイは、ブートごとに自動的に組み立てられ、マウントされるはずです。

RAID 6アレイの作成

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

  • 要件:最低4 storage devices

  • 主な利点:使用可能な容量が増える二重の冗長性。

  • 留意事項:パリティ情報は配信されますが、パリティには2つのディスクの容量が使用されます。 RAID 6は、劣化状態の場合、パフォーマンスが非常に低下する可能性があります。

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

開始するには、使用するrawディスクの識別子を見つけます。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

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

配列を作成する

これらのコンポーネントを使用してRAID6アレイを作成するには、それらをmdadm --createコマンドに渡します。 作成するデバイス名(この場合は/dev/md0)、RAIDレベル、およびデバイスの数を指定する必要があります。

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

mdadmツールはアレイの構成を開始します(パフォーマンス上の理由から、実際にはリカバリプロセスを使用してアレイを構築します)。 これを完了するにはしばらく時間がかかりますが、この時間中に配列を使用できます。 /proc/mdstatファイルをチェックすることにより、ミラーリングの進行状況を監視できます。

cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [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: 

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

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

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

sudo mkfs.ext4 -F /dev/md0

マウントポイントを作成して、新しいファイルシステムを接続します。

sudo mkdir -p /mnt/md0

次のように入力して、ファイルシステムをマウントできます。

sudo mount /dev/md0 /mnt/md0

次のように入力して、新しいスペースが使用可能かどうかを確認します。

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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ファイルを調整する必要があります。 次のように入力して、アクティブな配列を自動的にスキャンし、ファイルを追加できます。

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

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

sudo update-initramfs -u

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

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

RAID 6アレイは、ブートごとに自動的に組み立てられ、マウントされるはずです。

複雑なRAID 10アレイの作成

RAID 10アレイタイプは、従来、RAID 1アレイのセットで構成されるストライプ化されたRAID 0アレイを作成することで実装されています。 このネストされた配列タイプは、冗長性と高いパフォーマンスの両方を提供しますが、大量のディスクスペースを犠牲にします。 mdadmユーティリティには独自のRAID 10タイプがあり、柔軟性が向上した同じタイプの利点を提供します。 これは、配列をネストすることによって作成されたnotですが、同じ特性と保証の多くを備えています。 ここでは、mdadm RAID10を使用します。

  • 要件:最低3 storage devices

  • 主な利点:パフォーマンスと冗長性

  • 留意事項:アレイの容量削減量は、保持することを選択したデータコピーの数によって定義されます。 mdadmスタイルのRAID10で保存されるコピーの数は構成可能です。

デフォルトでは、各データブロックの2つのコピーが「ニア」レイアウトと呼ばれるものに保存されます。 各データブロックの格納方法を決定する可能なレイアウトは次のとおりです。

  • near:デフォルトの配置。 ストライピング時に各チャンクのコピーが連続して書き込まれます。つまり、データブロックのコピーは複数のディスクの同じ部分に書き込まれます。

  • far:最初と後続のコピーは、アレイ内のストレージデバイスのさまざまな部分に書き込まれます。 たとえば、最初のチャンクはディスクの先頭近くに書き込まれ、2番目のチャンクは別のディスクの途中まで書き込まれます。 これにより、書き込みパフォーマンスを犠牲にして、従来の回転ディスクの読み取りパフォーマンスをいくらか向上させることができます。

  • offset:各ストライプがコピーされ、1つのドライブによってオフセットされます。 これは、コピーが互いにオフセットされているが、ディスク上で互いに近接していることを意味します。 これにより、一部のワークロード中の過剰なシークを最小限に抑えることができます。

これらのレイアウトの詳細については、このmanページの「RAID10」セクションを確認してください。

man 4 md

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

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

開始するには、使用するrawディスクの識別子を見つけます。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

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

配列を作成する

これらのコンポーネントを使用してRAID10アレイを作成するには、それらをmdadm --createコマンドに渡します。 作成するデバイス名(この場合は/dev/md0)、RAIDレベル、およびデバイスの数を指定する必要があります。

レイアウトとコピー番号を指定しないことで、ニアレイアウトを使用して2つのコピーを設定できます。

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

別のレイアウトを使用する場合、またはコピー数を変更する場合は、レイアウトとコピー識別子を取得する--layout=オプションを使用する必要があります。 レイアウトは、ニアの場合はn、ファーの場合はf、オフセットの場合はoです。 保存するコピーの数は、その後に追加されます。

たとえば、オフセットレイアウトに3つのコピーを持つ配列を作成するには、コマンドは次のようになります。

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

mdadmツールはアレイの構成を開始します(パフォーマンス上の理由から、実際にはリカバリプロセスを使用してアレイを構築します)。 これを完了するにはしばらく時間がかかりますが、この時間中に配列を使用できます。 /proc/mdstatファイルをチェックすることにより、ミラーリングの進行状況を監視できます。

cat /proc/mdstat
OutputPersonalities : [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: 

最初に強調表示されている行でわかるように、/dev/md0デバイスは、/dev/sda/dev/sdb/dev/sdc、および/dev/sddを使用してRAID10構成で作成されています。デバイス。 2番目の強調表示された領域は、この例で使用されたレイアウトを示しています(近い構成で2つのコピー)。 3番目に強調表示された領域は、ビルドの進行状況を示しています。 このプロセスが完了するまでガイドを続行できます。

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

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

sudo mkfs.ext4 -F /dev/md0

マウントポイントを作成して、新しいファイルシステムを接続します。

sudo mkdir -p /mnt/md0

次のように入力して、ファイルシステムをマウントできます。

sudo mount /dev/md0 /mnt/md0

次のように入力して、新しいスペースが使用可能かどうかを確認します。

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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ファイルを調整する必要があります。 次のように入力して、アクティブな配列を自動的にスキャンし、ファイルを追加できます。

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

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

sudo update-initramfs -u

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

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

RAID 10アレイは、ブートごとに自動的に組み立てられ、マウントされるはずです。

結論

このガイドでは、LinuxのmdadmソフトウェアRAIDユーティリティを使用してさまざまなタイプのアレイを作成する方法を示しました。 RAIDアレイは、複数のディスクを個別に使用するよりも魅力的な冗長性とパフォーマンスの向上を提供します。

環境に必要なアレイのタイプを決定し、デバイスを作成したら、mdadmを使用して日常の管理を実行する方法を学習する必要があります。 how to manage RAID arrays with mdadm on Ubuntu 16.04に関するガイドは、始めるのに役立ちます。

Related