前書き
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に関するガイドは、始めるのに役立ちます。