ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で提供されています。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
Oracle LinuxでのソフトウェアRAIDアレイの構築
イントロダクション
冗長アレイの独立ディスクまたはRAIDデバイスは、2つ以上の実ブロックデバイスから作成された仮想デバイスです。この機能により、複数のデバイス(通常はディスクドライブまたはディスクパーティション)を単一のデバイスに組み合わせて、単一のファイルシステムを保持できます。一部のRAIDレベルには冗長性が含まれており、ファイルシステムがなんらかの程度のデバイス障害に耐えられるようにします。
Oracle Linuxカーネルは、マルチデバイス(MD)ドライバを使用して LinuxソフトウェアRAIDをサポートし、ディスクドライブをRAIDデバイスに整理し、さまざまなRAIDレベルを実装できるようにします。
これらのさまざまなRAIDレベルの詳細については、Oracleドキュメントを参照してください。
このチュートリアルでは、MDユーティリティ(mdadm
)と連携してスペアを使用してRAID1デバイスを作成し、ディスク障害に対処します。
目的
- スペアを使用したRAID1デバイスの作成
- 失敗したRAID1デバイスのリカバリ
前提条件
次の構成を持つ任意の Oracle Linux 8システム:
- sudo権限を持つroot以外のユーザー
- LinuxソフトウェアRAIDで使用する追加のブロック・ボリューム
演習環境の設定
ノート: 無料ラボ環境を使用する場合、接続およびその他の使用手順については、Oracle Linux Labの基本を参照してください。
-
まだ接続していない場合は、端末を開き、ssh経由で前述の各インスタンスに接続します。
ssh oracle@<ip_address_of_instance>
-
ブロック・ボリュームが存在することを確認します。
sudo lsblk
フリー・ラボ環境の出力には、既存のファイル・システムの
/dev/sda
と、使用可能なディスク/dev/sdb
、/dev/sdc
および/dev/sdd
が表示されます。
MDユーティリティのインストール
-
システムで使用できない場合は、MDユーティリティをインストールします。
mdadm
がインストールされているかどうかを確認します。sudo dnf list --installed mdadm
インストールされていない場合は、
mdadm
をインストールします。sudo dnf -y install mdadm
ノート: 無料ラボ環境では、MDユーティリティがすでにインストールされています。
RAIDデバイスを作成します。
RAID1は、配列内の各ドライブに同一のデータを書き込むことで、データ冗長性および耐障害性を提供します。1つのドライブが失敗した場合、ミラーはI/Oリクエストに対応できます。ミラーリングは、システムがすべてのディスクに同じ情報を書き込むため、高コストなソリューションです。
RAID1の機能:
- 冗長性が含まれます。
- 0個以上のスペアディスクを持つ2つ以上のディスクを使用します。
- 各ディスクに書き込まれたデータの正確なミラーを維持します。
- ディスク・デバイスのサイズは同じである必要があります。
- 1つのディスクデバイスが別のディスクよりも大きい場合、RAIDデバイスは最小ディスクのサイズになります。
- すべてのデータがそのまま残っている間、最大 n-1個のディスクデバイスを削除または失敗できます。
- システムでクラッシュが発生し、スペア・ディスクが使用可能な場合、RAID1ミラーのリカバリは、障害の検出時に自動的に即時実行されます。
- ミラー・セット内の複数のディスクに同じデータが書き込まれるため、1つのディスクと比較して、書込みパフォーマンスが低下します。
-
RAIDデバイスの作成に使用できるオプションを一覧表示します。
mdadm --help
を使用すると、--create
オプションを使用して、未使用のデバイスから新しい配列を作成することを示します。sudo mdadm --create --help
-
1つのスペア・ディスクを使用してRAID1デバイスを作成します。
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
--create:
: 新しい配列を作成します。--level
: raidレベル--raid-devices
: 配列内のアクティブなデバイスの数--spare-devices
: 初期配列内のスペア(extra)デバイスの数
このコマンドでは、デバイス(配列)の名前は
/dev/md0
で、/dev/sdb
および/dev/sdc
を使用してRAID1デバイスを作成します。デバイス/dev/sdd
は、アクティブなデバイスの障害から回復するためのスペアとして自動的に使用されます。y
と入力し、ENTER
を押して、Continue creating array?
プロンプトを受け入れます。出力例:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd 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 52395008K Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
ファイルシステムの作成
-
RAIDデバイスに ext4ファイルシステムを作成してマウントします。
sudo mkfs.ext4 -F /dev/md0 sudo mkdir /u01 sudo mount /dev/md0 /u01
-
ファイルシステムのディスク使用量を報告します。
df -h
出力例:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/md0 49G 53M 47G 1% /u01
-
/etc/fstabにエントリを追加し、リブート後もマウントポイントを維持します。
echo "/dev/md0 /data01 ext4 defaults 0 0" | sudo tee -a /etc/fstab > /dev/null
RAIDデバイスの確認
-
配列の詳細を取得します。
sudo mdadm --detail /dev/md0
出力例:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Jun 4 20:08:32 2022 Raid Level : raid1 Array Size : 52395008 (49.97 GiB 53.65 GB) Used Dev Size : 52395008 (49.97 GiB 53.65 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Sat Jun 4 20:28:58 2022 State : clean, resyncing Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Consistency Policy : resync Resync Status : 59% complete Name : ol-mdadm-2022-06-04-180415:0 (local to host ol-mdadm-2022-06-04-180415) UUID : f6c35144:66a24ae9:5b96e616:f7252a9f Events : 9 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 2 8 48 - spare /dev/sdd
出力で、
State
は配列がクリーンで再同期していることを示します。resyscは、アレイの初期作成後、または回復後に常に発生します。出力は、再同期が59%完了していることを示しています。 -
カーネルからのリアルタイム情報を確認します。
sudo cat /proc/mdstat
出力例:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdd[2](S) sdc[1] sdb[0] 52395008 blocks super 1.2 [2/2] [UU] [==================>..] resync = 92.2% (48341824/52395008) finish=2.7min speed=24677K/sec unused devices: <none>
RAID構成ファイルの作成
-
(オプション) RAID構成を
/etc/mdadm.conf
に追加します。構成ファイルは、どのデバイスがRAIDデバイスであるか、および特定のデバイスが属するアレイを特定します。この構成ファイルに基づいて、
mdadm
は起動時にアレイをアセンブルできます。sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
出力例:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf ARRAY /dev/md/0 metadata=1.2 UUID=f6c35144:66a24ae9:5b96e616:f7252a9f name=ol-mdadm-2022-06-04-180415:0 spares=1
RAIDデバイスの管理
このオプションは、デバイスの追加、削除、障害など、アレイ内のコンポーネントデバイスを管理するためのものです。
-
RAIDデバイスの管理に使用できるオプションを一覧表示します。
sudo mdadm --manage --help
--add
: 後続のデバイスに移動します。--remove
: 後続の非アクティブなデバイスを削除します。--fail
: 後続のデバイスを障害のあるものとしてマークします。
-
キャッシュされた書込みを永続ストレージに同期します。
これは、すべてのディスクキャッシュがディスクに書き込まれるように、ディスク管理を実行する前に必要です。
sudo sync
-
ディスクに障害のマークを付けます。
sudo mdadm --manage /dev/md0 --fail /dev/sdb
-
配列の詳細を取得します。
sudo mdadm --detail /dev/md0
出力例:
[oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Jun 4 20:08:32 2022 Raid Level : raid1 Array Size : 52395008 (49.97 GiB 53.65 GB) Used Dev Size : 52395008 (49.97 GiB 53.65 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Sat Jun 4 21:34:19 2022 State : clean, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 1 Spare Devices : 1 Consistency Policy : resync Rebuild Status : 1% complete Name : ol-mdadm-2022-06-04-180415:0 (local to host ol-mdadm-2022-06-04-180415) UUID : f6c35144:66a24ae9:5b96e616:f7252a9f Events : 19 Number Major Minor RaidDevice State 2 8 48 0 spare rebuilding /dev/sdd 1 8 32 1 active sync /dev/sdc 0 8 16 - faulty /dev/sdb
アレイは degradedと recoveringとマークされます。出力には、スペア・デバイス
/dev/sdd
が配列を自動的に再構築しているのに対して、/dev/sdb
に障害が発生していることも示されています。 -
障害が発生したディスクを取り外します。
sudo mdadm --manage /dev/md0 --remove /dev/sdb
-
障害が発生したディスクを交換します。
サーバーの障害が発生した物理ディスクを新しいディスクに置き換えます。
ノート: 無料ラボ環境を使用する場合、このステップには何も関係ありません。演習では、既存の
dev/sdb
デバイスを再利用します。 -
以前の linux_raid_member署名を削除します。
署名、メタデータは、RAIDアレイで使用するとディスクに書き込まれ、これらの署名を削除するまでディスクを別のシステムに移動したり、再利用することはできません。
sudo wipefs -a -f /dev/sdb
警告:
wipefs
コマンドは破壊的であり、ターゲットディスク上のパーティションテーブル全体(/dev/sdb
)およびすべての署名を削除します。 -
アレイに新しいスペアを追加します。
sudo mdadm --manage /dev/md0 --add /dev/sdb
-
スペアディスクが存在することを確認します。
sudo mdadm --detail /dev/md0
出力の下部では、「状態」がスペアに設定されているデバイス
/dev/sdb
がリストに表示されます。
詳細情報:
その他の学習リソース
他のラボをdocs.oracle.com/learnで探すか、Oracle Learning YouTubeチャネルでより無料の学習コンテンツにアクセスします。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品のドキュメントは、Oracle Help Centerを参照してください。
Build a Software RAID Array on Oracle Linux
F58427-01
June 2022
Copyright © 2022, Oracle and/or its affiliates.