第16章 RAID の管理

この章では、RAID (Redundant Array of Independent Disks) を説明します。ユーザーが RAID を使用して、複数のドライブにデータを保存できます。また、ドライブに障害が発生した場合にデータ損失を回避するのに役立ちます。

16.1. RAID (Redundant array of independent disks)

RAID の背後にある基本的な概念は、HDDSSDNVMe などの複数のデバイスをアレイに組み合わせて、1 つの大型で高価なドライブでは達成できないパフォーマンスまたは冗長性の目標を達成することです。このデバイスのアレイは、1 つの論理ストレージユニットまたはドライブとしてコンピューターに表示されます。

RAID により、情報を複数のデバイスに分散させることができます。RAID は、ディスクストライピング (RAID レベル 0)、ディスクミラーリング (RAID レベル 1)、および パリティーによるディスクストライピング (RAID レベル 4、5、および 6) などの技術を使用して冗長性を実現し、待ち時間を短縮し、帯域幅を最大化し、ハードディスクのクラッシュからの復旧能力を最大化します。

RAID は、データを一貫して使用するチャンク (通常は 256K または 512k、他の値は受け入れ可能) に分割することで、アレイ内の各デバイスにデータを分散します。各チャンクは、使用している RAID レベルに応じて、RAID アレイのハードドライブに書き込まれます。データが読み込まれると、プロセスは逆に終了し、アレイ内の複数のデバイスが実際には 1 つの大きなドライブであることを確認できます。

システム管理者や大容量のデータを管理しているユーザーは、RAID 技術を使用することでメリットが得られます。RAID をデプロイする主な理由を以下に示します。

  • 速度を高める
  • 1 台の仮想ディスクを使用してストレージ容量を増加する
  • ディスク障害によるデータ損失を最小限に抑える
  • RAID レイアウトおよびレベルオンライン変換

16.2. RAID のタイプ

考えられる RAID アプローチには、ファームウェア RAID、ハードウェア RAID、およびソフトウェア RAID の 3 つがあります。

ファームウェア RAID

ファームウェア RAID (ATARAID とも呼ばれる) とは、ソフトウェア RAID の種類で、ファームウェアベースのメニューを使用して RAID セットを設定できます。このタイプの RAID で使用されるファームウェアは BIOS にもフックされるため、その RAID セットから起動できます。異なるベンダーは、異なるオンディスクメタデータ形式を使用して、RAID セットのメンバーをマークします。Intel Matrix RAID は、ファームウェア RAID システムの一例を示しています。

ハードウェア RAID

ハードウェアベースのアレイは、RAID サブシステムをホストとは別に管理します。ホストに対して RAID アレイごとに複数のデバイスが表示される場合があります。

ハードウェア RAID デバイスは、システムの内部または外部になる場合があります。内部デバイスは、一般的には、RAID タスクをオペレーティングシステムに対して透過的に処理する専用のコントローラーカードで構成されています。外部デバイスは、一般的には SCSI、ファイバーチャネル、iSCSI、InfiniBand などの高速ネットワーク相互接続を介してシステムに接続し、システムへの論理ユニットなどのボリュームを提示します。

RAID コントローラーカードは、オペレーティングシステムへの SCSI コントローラーのように動作し、実際のドライブ通信をすべて処理します。ユーザーがドライブを RAID コントローラーに差し込み (通常の SCSI コントローラーと同様)、RAID コントローラーの設定に追加します。オペレーティングシステムはこの違いを認識できません。

ソフトウェア RAID

ソフトウェア RAID は、カーネルブロックデバイスコード内にさまざまな RAID レベルを実装します。高価ディスクコントローラーカードやホットスワップシャーシなど、最優先的な解決策を提供します。 [1] 必須ではありません。ソフトウェア RAID は、SATASCSINVMe などの Linux カーネルが対応しているブロックストレージでも機能します。現在高速 CPU では、ハイエンドのストレージデバイスを使用する場合以外は、ソフトウェア RAID は通常ハードウェア RAID の規模を上回します。

Linux カーネルには、RAID ソリューションは完全にハードウェアに依存しないようにする 複数のデバイス (MD) ドライバーが含まれています。ソフトウェアベースのアレイのパフォーマンスは、サーバーの CPU パフォーマンスと負荷によって異なります。

Linux ソフトウェア RAID スタックの主な機能:

  • マルチスレッド設計
  • 再構築なしで Linux マシン間でのアレイの移植性
  • アイドルシステムリソースを使用したバックグラウンドのアレイ再構築
  • ホットスワップ可能なドライブのサポート
  • CPU の自動検出は、ストリーミングの SIMD (Single Instruction Multiple Data) サポートの特定 CPU 機能を活用
  • アレイ内のディスク上にある不良セクターの自動修正
  • RAID データの整合性を定期的にチェックしアレイの健全性を確保
  • 重要なイベントで指定された電子メールアドレスに送信された電子メールアラートによるアレイのプロアクティブな監視
  • システムのクラッシュ後にアレイ全体を再同期する代わりに、ディスクのどの部分を再同期する必要があるかをカーネルが正確に把握できるようにすることで、再同期イベントの速度を大幅に向上させる書き込みが集中しているビットマップ

    再同期 は、冗長性を実現するために、既存の RAID のデバイスにデータを同期するプロセスである点に注意してください。

  • チェックポイントを再同期して、再同期中にコンピューターを再起動すると、起動時に再同期が中断したところから再開し、最初からやり直さないようにします。
  • インストール後にアレイのパラメーターを変更する機能は、再形成 と呼ばれます。たとえば、新しいデバイスを追加しても、4 つのディスクの RAID5 アレイを 5 つのディスク RAID5 アレイに増大させることができます。この拡張操作はライブで行うため、新しいアレイで再インストールする必要はありません。
  • 再成形は、RAID アルゴリズム、RAID アレイタイプのサイズ (RAID4、RAID5、RAID6、RAID10 など) の変更に対応しています。
  • テイクオーバーは、RAID0 ~ RAID6 などの RAID レベル変換を対応します。

16.3. RAID レベルとリニアサポート

RAID は、レベル 0、1、4、5、6、10、リニアなどのさまざまな設定に対応します。これらの RAID タイプは以下のように定義されます。

レベル 0

RAID レベル 0 は、多くの場合「ストライプ化」と呼ばれていますが、パフォーマンス指向のストライプ化データマッピング技術です。これは、アレイに書き込まれるデータがストライプに分割され、アレイのメンバーディスク全体に書き込まれることを意味します。これにより低い固有コストで高い I/O パフォーマンスを実現できますが、冗長性は提供されません。

多くの RAID レベル 0 実装は、アレイ内の最小デバイスのサイズまで、メンバーデバイス全体にデータをストライプ化します。つまり、複数のデバイスのサイズが少し異なる場合、それぞれのデバイスは最小ドライブと同じサイズであるかのように処理されます。そのため、レベル 0 アレイの一般的なストレージ容量は、ハードウェア RAID 内の最小メンバーディスクの容量と同じか、アレイ内のディスク数またはパーティション数で乗算したソフトウェア RAID 内の最小メンバーパーティションの容量と同じになります。

レベル 1

レベル 1 は、アレイ内の各メンバーディスクに同一データを書き込むことで冗長性を提供し、各ディスクに対して「mirroring」コピーをそのまま残します。ミラーリングは、データの可用性の単純化と高レベルにより、いまでも人気があります。レベル 1 は 2 つ以上のディスクと連携して、非常に優れたデータ信頼性を提供し、読み取り集中型のアプリケーションに対してパフォーマンスが向上しますが、比較的コストが高くなります。

RAID レベル 1 は、アレイ内のすべてのディスクに同じ情報を書き込むため、コストが高まり、データの信頼性を提供しますが、レベル 5 のようなパリティーベースの RAID レベルよりもはやくなり領域の効率が低くなります。ただし、この領域の非効率性にはパフォーマンス上の利点があります。パリティーベースの RAID レベルは、パリティーを生成するためにかなり多くの CPU 電力を消費しますが、RAID レベル 1 は単に同じデータを、CPU オーバーヘッドが非常に少ない複数の RAID メンバーに同じデータを複数回書き込むだけです。そのため、RAID レベル 1 は、ソフトウェア RAID が使用されているマシンや、マシンの CPU リソースが一貫して RAID アクティビティー以外の操作でアレイ化されます。

レベル 1 アレイのストレージ容量は、ハードウェア RAID 内でミラーリングされている最小サイズのハードディスクの容量と同じか、ソフトウェア RAID 内でミラーリングされている最小のパーティションと同じ容量になります。レベル 1 の冗長性は、すべての RAID タイプの中で最も高いレベルであり、アレイは 1 つのディスクのみで動作できます。

レベル 4

レベル 4 は、1 つのディスクドライブでパリティー連結を使用して、データを保護します。パリティー情報は、アレイ内の残りのメンバーディスクのコンテンツに基づいて計算されます。この情報は、アレイ内のいずれかのディスクに障害が発生した場合にデータの再構築に使用できます。その後、再構築されたデータを使用して、交換前に失敗したディスクに I/O 要求に対応でき、交換後に失敗したディスクを接続します。

専用パリティーディスクは RAID アレイへのすべての書き込みトランザクションに固有のボトルネックを表すため、レベル 4 は、ライトバックキャッシュなどの付随技術なしで、またはシステム管理者がこれを使用してソフトウェア RAID デバイスを意図的に設計する特定の状況で使用されることはほとんどありません。ボトルネック (配列にデータが入力されると、書き込みトランザクションがほとんどまたはまったくない配列など) を念頭に置いてください。RAID レベル 4 にはほとんど使用されないため、Anaconda ではこのオプションとしては使用できません。ただし、実際には必要な場合は、ユーザーが手動で作成できます。

ハードウェア RAID レベル 4 のストレージ容量は、最小メンバーパーティションの容量にパーティションの数を掛けて、-1 を引いたものになります。RAID レベル 4 アレイのパフォーマンスは常に非対称です。つまり、読み込みは書き込みを上回ります。これは、パリティーを生成するときに書き込みが余分な CPU 帯域幅とメインメモリーの帯域幅を消費し、データだけでなくパリティーも書き込むため、実際のデータをディスクに書き込むときに余分なバス帯域幅も消費するためです。読み取りが必要なのは、アレイが劣化状態にない限り、パリティーではなくデータでを読み取るだけです。その結果、通常の動作条件下で同じ量のデータ転送を行う場合は、読み取りによってドライブへのトラフィック、またはコンピュータのバスを経由するトラフィックが少なくなります。

レベル 5

これは RAID の最も一般的なタイプです。RAID レベル 5 は、アレイのすべてのメンバーディスクドライブにパリティーを分散することにより、レベル 4 に固有の書き込みボトルネックを排除します。パリティー計算プロセス自体のみがパフォーマンスのボトルネックです。最新の CPU とソフトウェア RAID では、最近の CPU がパリティーが非常に高速になるため、通常はボトルネックではありません。ただし、ソフトウェア RAID5 アレイに多数のメンバーデバイスがあり、組み合わせたすべてのデバイス間のデータ転送速度が十分であれば、このボトルネックは再生できます。

レベル 4 と同様に、レベル 5 のパフォーマンスは非対称であり、読み取りは書き込みを大幅に上回ります。RAID レベル 5 のストレージ容量は、レベル 4 と同じです。

レベル 6

パフォーマンスではなくデータの冗長性と保存が最重要事項であるが、レベル 1 の領域の非効率性が許容できない場合は、これが RAID の一般的なレベルです。レベル 6 では、複雑なパリティースキームを使用して、アレイ内の 2 つのドライブから失われたドライブから復旧できます。複雑なパリティースキームにより、ソフトウェア RAID デバイスで CPU 幅が大幅に高くなり、書き込みトランザクションの際に増大度が高まります。したがって、レベル 6 はレベル 4 や 5 よりもパフォーマンスにおいて、非常に非対称です。

RAID レベル 6 アレイの合計容量は、RAID レベル 5 および 4 と同様に計算されますが、デバイス数から追加パリティーストレージ領域用に 2 つのデバイス (1 ではなく) を引きます。

レベル 10

この RAID レベルでは、レベル 0 のパフォーマンスとレベル 1 の冗長性を組み合わせます。また、2 を超えるデバイスを持つレベル 1 アレイで領域の一部を軽減するのに役立ちます。レベル 10 では、データごとに 2 つのコピーのみを格納するように設定された 3 ドライブアレイを作成することができます。これにより、全体用のアレイサイズを最小デバイスのみと同じサイズ (3 つのデバイス、レベル 1 アレイなど) ではなく、最小サイズのデバイスが 1.5 倍になります。これにより、CPU プロセスの使用量が RAID レベル 6 のようにパリティーを計算するのを防ぎますが、これは領域効率が悪くなります。

RAID レベル 10 の作成は、インストール時には対応していません。インストール後に手動で作成できます。

リニア RAID

リニア RAID は、より大きな仮想ドライブを作成するドライブのグループ化です。

リニア RAID では、あるメンバードライブからチャンクが順次割り当てられます。最初のドライブが完全に満杯になったときにのみ次のドライブに移動します。これにより、メンバードライブ間の I/O 操作が分割される可能性はないため、パフォーマンスの向上は見られません。リニア RAID は冗長性がなく、信頼性は低下します。あるメンバードライブに障害が発生した場合は、アレイ全体を使用することはできません。容量はすべてのメンバーディスクの合計になります。

16.4. Linux RAID サブシステム

Linux では、以下のサブシステムで RAID を作成します。

16.4.1. Linux ハードウェア RAID のコントローラードライバー

Linux には、ハードウェア RAID コントローラーに固有の RAID サブシステムがありません。特殊な RAID チップセットを使用するため、ハードウェア RAID コントローラーには独自のドライバーが含まれます。これらのドライバーにより、システムは通常のディスクとして RAID セットを検出できるようになります。

16.4.2. mdraid

mdraid サブシステムは Linux 向けのソフトウェア RAID ソリューションとして設計されており、Linux 下のソフトウェア RAID に対する推奨ソリューションです。このサブシステムでは独自のメタデータ形式が使用され、通常はネイティブの MD メタデータと呼ばれます。

mdraid は外部メタデータとして知られる他のメタデータ形式にも対応しています。Red Hat Enterprise Linux 8 は、外部メタデータで mdraid を使用して ISW / IMSM (Intel ファームウェア RAID) セットおよび SNIA DDF にアクセスします。mdraid セットは、mdadm ユーティリティーを使用して設定および制御します。

16.5. ソフトウェア RAID の作成

以下の手順に従って、RAID ( Redundant Arrays of Independent Disks) ディスクを作成します。RAID デバイスは、複数のストレージディスクで構成され、組み合わせてパフォーマンスを向上させます。また、一部の設定では、より高い耐障害性を得ることができます。

RAID デバイスの作成は 1 つのステップで終わり、必要に応じてディスクを追加または削除できます。システムでは、1 つの物理ディスクに 1 つの RAID パーティションが作成できるため、インストールプログラムで使用できるディスク数により、利用できる RAID デバイスのレベルが決定します。たとえば、システムにハードドライブが 2 つある場合は、RAID 10 デバイスを作成することはできません。少なくともディスクが 3 つ必要になるためです。

注記

IBM Z では、ストレージのサブシステムで RAID が透過的に使用されます。ソフトウェア RAID を手動で構成する必要はありません。

前提条件

  • RAID 設定オプションは、インストール用に複数のディスクを選択している場合にのみ表示される。RAID デバイスの作成には少なくともディスクが 2 つ必要になります。
  • マウントポイントを作成している。マウントポイントを設定して、RAID デバイスを設定します。
  • インストール先 画面で カスタム ラジオボタンを選択している。

手順

  1. 手動パーティション設定 画面の左側のペインで、必要なパーティションを選択します。
  2. デバイス セクションの下にある 修正 をクリックします。マウントポイントの設定 ダイアログボックスが開きます。
  3. RAID デバイスに追加するディスクを選択して、選択 をクリックします。
  4. デバイスタイプ ドロップダウンメニューをクリックして、RAID を選択します。
  5. ファイルシステム のドロップダウンメニューをクリックして、目的のファイルシステムタイプを選択します。
  6. RAID レベル ドロップダウンメニューをクリックして、目的の RAID レベルを選択します。
  7. 設定を更新 をクリックして、変更を保存します。
  8. 完了 をクリックして設定を適用し、インストール概要 画面に戻ります。

指定した RAID レベルでさらにディスクが必要な場合は、画面下部にメッセージが表示されます。

Storage システムロールを使用して RAID ボリュームを作成して設定するには、「storage システムロールを使用した RAID ボリュームの設定」 を参照してください。

ソフト破損および、RAID LV の設定時にデータを保護する方法は、「RAID LV での DM 整合性の使用」を参照してください。

16.6. インストール後のソフトウェア RAID の作成

この手順では、mdadm ユーティリティーを使用して、既存のシステムにソフトウェアの RAID (Redundant Array of Independent Disks) を作成する方法を説明します。

前提条件

  • mdadm パッケージがインストールされている。
  • システムに複数のパーティションが存在している。詳細な手順は、「パーティションの作成」 を参照してください。

手順

  1. /dev/sda1 および /dev/sdc1 など、ブロックデバイス 2 つの RAID を作成するには、次のコマンドを使用します。

    # mdadm --create /dev/md0 --level=<level_value> --raid-devices=2 /dev/sda1 /dev/sdc1

    <level_value> を、RAID レベルオプションに置き換えます。詳細は、man ページの mdadm(8) を参照してください。

  2. 必要に応じて、RAID のステータスを確認するには、次のコマンドを実行します。

    # mdadm --detail /dev/md0
  3. 必要に応じて、各 RAID デバイスの詳細情報を確認するには、次のコマンドを実行します。

    # mdadm --examine /dev/sda1 /dev/sdc1
  4. RAID ドライブにファイルシステムを作成するには、次のコマンドを実行します。

    # mkfs -t <file-system-name> /dev/md0

    ここで、<file-system-name> は、ドライブのフォーマットを選択した特定のファイルシステムです。詳細は、man ページの mkfs を参照してください。

  5. RAID ドライブ用にマウントポイントを作成し、そのマウントポイントをマウントするには、次のコマンドを使用します。

    # mkdir /mnt/raid1
    # mount /dev/md0 /mnt/raid1

上記の手順を完了すると、RAID を使用する準備が整います。

16.7. storage システムロールを使用した RAID ボリュームの設定

storage システムロールを使用すると、Red Hat Ansible Automation Platform を使用して RHEL に RAID ボリュームを設定できます。本セクションでは、要件に合わせて RAID ボリュームを設定するために、利用可能なパラメーターを使用して Ansible Playbook を設定する方法を説明します。

前提条件

  • Playbook を実行するシステムに Red Hat Ansible Engine がインストールされている。

    注記

    storage ソリューションをデプロイするシステムに、Red Hat Ansible Automation Platform をインストールする必要はありません。

  • Playbook を実行するシステムに rhel-system-roles パッケージがインストールされている。
  • storage システムロールを使用して、RAID ボリュームをデプロイするシステムの詳細を記録したインベントリーファイルがある。

手順

  1. 以下の内容を含む新しい playbook.yml ファイルを作成します。

    - hosts: all
      vars:
        storage_safe_mode: false
        storage_volumes:
          - name: data
            type: raid
            disks: [sdd, sde, sdf, sdg]
            raid_level: raid0
            raid_chunk_size: 32 KiB
            mount_point: /mnt/data
            state: present
      roles:
        - name: rhel-system-roles.storage
    警告

    特定の状況でデバイス名が変更する場合があります。たとえば、新しいディスクをシステムに追加するときなどです。したがって、データの損失を防ぐために、Playbook で特定のディスク名を使用することは推奨していません。

  2. オプション:Playbook の構文を確認します。

    # ansible-playbook --syntax-check playbook.yml
  3. インベントリーファイルで Playbook を実行します。

    # ansible-playbook -i inventory.file /path/to/file/playbook.yml

関連情報

  • storage システムロールで使用されるパラメーターの詳細は、/usr/share/ansible/roles/rhel-system-roles.storage/README.md ファイルを参照してください。

16.8. RAID の再設定

次のセクションでは、既存の RAID を変更する方法を説明します。これを行うには、以下のいずれかの方法を選択します。

  • RAID 属性の変更 (RAID 再成形 とも呼ばれています)
  • RAID レベルの変換 (RAID テイクオーバー とも呼ばれています)

16.8.1. RAID の再成形

本章では、RAID を再成形する方法を説明します。RAID のサイズを変更する方法のいずれかを選択できます。

  • RAID の拡大 (拡張)。
  • RAID を縮小。

16.8.1.1. RAID のサイズ変更 (拡張)。

この手順では、RAID を拡大する方法を説明します。拡大する RAID が /dev/md0 であるとします。

前提条件

  • 十分なディスク領域
  • parted パッケージがインストールされている。

手順

  1. RAID パーティションを拡張します。これを行うには、「パーティションのサイズ変更」の指示に従ってください。
  2. パーティションの最大容量まで RAID を拡張するには、次のコマンドを使用します。

    # mdadm --grow --size=max /dev/md0

    特定のサイズを指定するには、(例: --size=524228) で --size パラメーター (kB) を書き込む必要があります。

  3. ファイルシステムのサイズを拡大します。詳細は、「ファイルシステムの管理」を参照してください。

16.8.1.2. RAID のサイズ変更 (縮小)

この手順では、RAID を縮小する方法を説明します。512 MB に縮小する RAID が /dev/md0 であるとします。

前提条件

  • parted パッケージがインストールされている。

手順

  1. ファイルシステムを縮小します。これを行うには、「ファイルシステムの管理」を参照してください。

    重要

    XFS ファイルシステムは縮小に対応していません。

  2. RAID のサイズを 512 MB に減らすには、次のコマンドを使用します。

    # mdadm --grow --size=524228 /dev/md0

    --size パラメーターを kB で書き込んでいなければならないことに注意してください。

  3. パーティションのサイズを、必要なサイズまで縮小します。これを行うには、「パーティションのサイズ変更」を行ってください。

16.8.2. RAID テイクオーバー

本章では、RAID で対応する変換と、この変換を行う手順を説明します。

16.8.2.1. サポート対象の RAID 変換

RAID レベルを別のレベルに変換することが可能です。本セクションでは、対応している RAID 変換の表を紹介します。

 RAID0RAID1RAID4RAID5RAID6RAID10

RAID0

RAID1

RAID4

RAID5

RAID6

RAID10

たとえば、RAID レベル 0 を RAID レベル 4、RAID レベル 5、および RAID レベル 10 に変換できます。

関連情報

  • RAID レベル変換の詳細は、man ページの mdadm を参照してください。

16.8.2.2. RAID レベルへの変換

この手順では、RAID を別の RAID レベルに変換する方法を説明します。RAID の /dev/md0 レベル 0 を RAID レベル 5 に変換し、ディスク /dev/sdd をアレイに追加します。

前提条件

  • 変換するのに十分なディスク。
  • mdadm パッケージがインストールされている。
  • 目的の変換が対応していることを確認してある。これを確認するには、「サポート対象の RAID 変換」 の表を参照してください。

手順

  1. RAID /dev/md0 を RAID レベル 5 に変換するには、次のコマンドを実行します。

    # mdadm --grow --level=5 -n 3 /dev/md0 --force
  2. 新規ディスクをアレイに追加するには、次のコマンドを実行します。

    # mdadm --manage /dev/md0 --add /dev/sdd
  3. 変換したアレイの新規詳細を確認するには、次のコマンドを実行します。

    # mdadm --detail /dev/md0

関連情報

  • RAID レベル変換の詳細は、man ページの mdadm を参照してください。

16.9. インストール後の root ディスクの RAID1 への変換

本セクションでは、Red Hat Enterprise Linux 8 のインストール後に RAID 以外の root ディスクを RAID1 ミラーに変換する方法を説明します。

PowerPC (PPC) アーキテクチャーでは、以下の追加手順を行う必要があります。

前提条件

手順

  1. PowerPC Reference Platform (PReP) 起動パーティションの内容を /dev/sda1 から /dev/sdb1 にコピーします。

    # dd if=/dev/sda1 of=/dev/sdb1
  2. 両方のディスクの最初のパーティションで Prep フラグおよび boot フラグを更新します。

    $ parted /dev/sda set 1 prep on
    $ parted /dev/sda set 1 boot on
    
    $ parted /dev/sdb set 1 prep on
    $ parted /dev/sdb set 1 boot on
注記

PowerPC マシンでは grub2-install /dev/sda コマンドを実行しても動作せず、エラーが返されますが、システムは想定どおりに起動します。

16.10. 高度な RAID デバイスの作成

インストール完了後には作成できないアレイにオペレーティングシステムをインストールする場合があります。通常、/boot または root ファイルシステムのアレイは複雑な RAID デバイスに設定されます。このような場合は、Anaconda インストーラーで対応していないアレイオプションの使用が必要になる場合があります。これを回避するには、以下の手順を行います。

手順

  1. インストールディスクを挿入します。
  2. 最初の起動時に、インストール または アップグレード の代わりに レスキューモード を選択します。システムが レスキューモード で完全に起動すると、コマンドラインターミナルが表示されます。
  3. このターミナルで parted を使用し、目的のハードドライブに RAID パーティションを作成します。次に mdadm を使用して、使用できるすべての設定およびオプションを使用して、このパーティションから RAID アレイを手動で作成します。詳細は、man parted および man mdadm を参照してください。
  4. アレイを作成したら、必要に応じてアレイにファイルシステムを作成することもできます。
  5. コンピューターを再起動して、インストール または 更新 を選択して通常通りにインストールします。Anaconda インストーラーはシステム内のディスクを検索するため、既存の RAID デバイスが見つかります。
  6. システムのディスクの使い方を求められたら、カスタムレイアウト を選択して 次へ をクリックします。デバイス一覧に、既存の MD RAID デバイスが表示されます。
  7. RAID デバイスを選択し、編集 をクリックしてそのマウントポイントと (必要に応じて) 使用するファイルシステムのタイプを設定し、完了 をクリックします。Anaconda は、この既存の RAID デバイスにインストールを実行し、レスキューモード で作成したときに選択したカスタムオプションを保持します。
注記

インストーラーの制限された レスキューモード には man ページは含まれません。man mdadm および man md の両方には、カスタムの RAID アレイ作成に役立つ情報が含まれています。回避策全体にわたって必要になる場合があります。このため、man ページが含まれるマシンにアクセスできるようにしておくか、そのページを開いて、レスキューモード で起動してからカスタムアレイを作成しておくと便利です。

16.11. RAID の監視

このモジュールでは、mdadm ツールを使用して RAID 監視オプションを設定する方法を説明します。

前提条件

  • mdadm パッケージがインストールされている。
  • メールサービスが設定されている。

手順

  1. アレイのモニタリング用の設定ファイルを作成するには、詳細をスキャンし、結果を /etc/mdadm.conf ファイルに転送する必要があります。これを実行するには、次のコマンドを使用します。

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

    ARRAY および MAILADDR は必須の変数であることに注意してください。

  2. 設定ファイル /etc/mdadm.conf を任意のテキストエディターで開きます。
  3. 通知用のメールアドレスを使用して MAILADDR 変数を追加します。たとえば、次の行を追加します。

    MAILADDR <example@example.com>

    example@example.com は、アレイの監視からアラートを受信するメールアドレスです。

  4. /etc/mdadm.conf ファイルに変更を保存して、閉じます。

上記の手順を完了すると、監視システムは通知をメールアドレスに送信します。

関連情報

  • 詳細は、man ページの mdadm.conf 5 を参照してください。

16.12. RAID のメンテナンス

本セクションでは、RAID メンテナンスに関するさまざまな手順を説明します。

16.12.1. RAID で障害の発生したディスクの置き換え

この手順では、RAID (Redundant Array of Independent Disks) で障害のあるディスクを置き換える方法を説明します。ここでは、/dev/md0 RAID レベル 10 があるとします。このシナリオでは、/dev/sdg ディスクに問題があるため、新しいディスク /dev/sdh に置き換える必要があります。

前提条件

  • 追加のスペアディスク。
  • mdadm パッケージがインストールされている。
  • アレイ内のディスクに障害が発生していることの通知。アレイの監視を設定する場合は、「RAID の監視」 を参照してください。

手順

  1. どのディスクが失敗しているかを確認してください。これを行うには、次のコマンドを実行します。

    # journalctl -k -f

    ディスクに障害が発生したことを示すメッセージが表示されます。

    md/raid:md0: Disk failure on sdg, disabling device.
    md/raid:md0: Operation continuing on 5 devices.
  2. キーボードの Ctrl+C を押して、journalctl プログラムを終了します。
  3. 新しいディスクをアレイに追加します。これを行うには、次のコマンドを実行します。

    # mdadm --manage /dev/md0 --add /dev/sdh
  4. 障害の発生したディスクに faulty のマークを付けます。これを行うには、次のコマンドを実行します。

    # mdadm --manage /dev/md0 --fail /dev/sdg
  5. 次のコマンドを実行して、障害の発生したディスクが正しくマスクされたかどうかを確認します。

    # mdadm --detail /dev/md0

    最後のコマンド出力の最後に、以下のような RAID ディスクに関する情報が表示されます。/dev/sdg ディスクには faulty があります。

        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
           4       8       80        4      active sync   /dev/sdf
           6       8      112        5      active sync   /dev/sdh
    
           5       8       96        -      faulty   /dev/sdg
  6. 最後に、アレイから障害の発生したディスクを削除します。これを行うには、次のコマンドを実行します。

    # mdadm --manage /dev/md0 --remove /dev/sdg
  7. 次のコマンドを実行して RAID の詳細を確認します。

    # mdadm --detail /dev/md0

    最後のコマンドの出力の最後に、以下のような RAID ディスクに関する情報が表示されます。

        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
           4       8       80        4      active sync   /dev/sdf
           6       8      112        5      active sync   /dev/sdh

上記の手順を完了すると、新しいディスク /dev/sdh で RAID /dev/md0 が実行されます。

16.12.2. アレイ内の破損したディスクの置き換え

この手順では、RAID (Redundant Array of Independent Disks) で破損したディスクを置き換える方法を説明します。ここでは、/dev/md0 RAID レベル 6 があるとします。このシナリオでは、/dev/sdb ディスクにハードウェアの問題があり、使用されなくなりました。新しいディスク /dev/sdi に置き換える必要があります。

前提条件

  • 代替となる新規ディスク。
  • mdadm パッケージがインストールされている。

手順

  1. 次のコマンドを使用してログメッセージを確認します。

    # journalctl -k -f

    ディスクに障害が発生したことを示すメッセージが表示されます。

    md/raid:md0: Disk failure on sdb, disabling device.
    md/raid:md0: Operation continuing on 5 devices.
  2. キーボードの Ctrl+C を押して、journalctl プログラムを終了します。
  3. 新規ディスクをスペアとしてアレイに追加します。これを行うには、次のコマンドを実行します。

    # mdadm --manage /dev/md0 --add /dev/sdi
  4. 破損したディスクに faulty のマークを付けます。これを行うには、次のコマンドを実行します。

    # mdadm --manage /dev/md0 --fail /dev/sdb
  5. 障害の発生したディスクをアレイから削除します。これを行うには、次のコマンドを実行します。

    # mdadm --manage /dev/md0 --remove /dev/sdb
  6. 次のコマンドを使用して、アレイのステータスを確認します。

    # mdadm --detail /dev/md0

    最後のコマンドの出力の最後に、以下のような RAID ディスクに関する情報が表示されます。

        Number   Major   Minor   RaidDevice State
           7       8      128        0      active sync   /dev/sdi
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
           4       8       80        4      active sync   /dev/sdf
           6       8      112        5      active sync   /dev/sdh

上記の手順を完了すると、新しいディスク /dev/sdi で RAID /dev/md0 が実行されます。

16.12.3. RAID ディスクの再同期

この手順では、RAID アレイでディスクを再同期する方法を説明します。ここでは、/dev/md0 RAID があるとします。

前提条件

  • mdadm パッケージがインストールされている。

手順

  1. 障害の発生したディスク動作のアレイを確認するには、次のコマンドを実行します。

    # echo check > /sys/block/md0/md/sync_action

    このアクションはアレイを確認し、結果を /sys/block/md0/md/sync_action ファイルに書き込みます。

  2. /sys/block/md0/md/sync_action ファイルを、選択したテキストエディターで開き、ディスク同期の失敗に関するメッセージがあるかどうかを確認します。
  3. アレイ内のディスクを再同期するには、次のコマンドを実行します。

    # echo repair > /sys/block/md0/md/sync_action

    このアクションは、アレイ内のディスクを再同期し、結果を /sys/block/md0/md/sync_action ファイルに書き込みます。

  4. 同期の進捗を表示するには、次のコマンドを実行します。

    # cat /proc/mdstat


[1] ホットスワップシャーシを使用すると、システムの電源を切らずにハードドライブを削除できます。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。