応用情報

応用情報 令和6年度 春期 問2コンピュータシステムに関する問題

問題

応用情報 | 令和6年度 春期 | 分野:テクノロジ系

RAID5の特徴として最も適切なものはどれか。

タップするとすぐ答え合わせ

答え合わせ

正解は C
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

正解は「分散パリティを採用し、1台故障まで復旧可能」です。

RAIDは複数のディスクをまとめて使う仕組みです。代表的なものを見てみましょう:

  • RAID0:ただ分散保存。1台壊れたら全滅。
  • RAID1:完全コピー。1台壊れてももう1台で稼働。容量は半分。
  • RAID5:データを分散しつつ「パリティ(復旧用情報)」も分散。1台壊れても残りで復旧可能。
  • RAID6:パリティを2つ持つ。2台同時故障まで耐える。

RAID5は「容量効率と耐障害性のバランス型」で、業務用ストレージで広く使われます。

覚え方:「5は分散パリティで1台耐える、6はWパリティで2台耐える」。

正解は c「分散パリティを採用し、1台故障まで復旧可能」です。

RAID(Redundant Array of Independent Disks)は複数物理ディスクを論理的に1つに見せる技術で、性能向上・容量増加・冗長化の目的で使われます。主要レベルは以下:

| RAID | 構成 | 耐障害性 | 容量効率 | 用途 |

|---|---|---|---|---|

| RAID0 | ストライピング | 0台 | 100% | 高速読書(耐障害不要) |

| RAID1 | ミラーリング | 1台 | 50% | 重要データの2重化 |

| RAID5 | 分散パリティ | 1台 | (n-1)/n | 汎用業務サーバ |

| RAID6 | ダブルパリティ | 2台 | (n-2)/n | 大規模ストレージ |

| RAID10 | RAID1+0 | n/2台 | 50% | 高性能DB |

RAID5の仕組み:

n台のディスクに対し、データブロックと「パリティブロック(XOR演算結果)」を全台に分散配置します。任意の1台が故障しても、残りのデータブロックとパリティから故障ディスクの内容を復元できます(XORの可逆性)。

例:3台構成(A, B, C)で、データ X, Y を保存するとき:

  • ディスクA: X
  • ディスクB: Y
  • ディスクC: X XOR Y (パリティ)

ディスクAが壊れた場合:X = Y XOR (X XOR Y) で復元。

RAID5の弱点:

  • 書き込みペナルティ:1ブロック書込時に「旧データ読込→新パリティ計算→書込」の4回I/Oが必要(write hole)
  • 再構築時のリスク:1台故障時に他のディスクを全読み込みする必要があり、再構築中に2台目が故障すると全滅。大容量HDDではこのリスクが現実的(URE: Unrecoverable Read Error)
  • これらの理由で、近年は容量が大きいシステムではRAID6が推奨される

他選択肢の解説:

  • a「ストライピングのみ」→ RAID0
  • b「ミラーリング」→ RAID1
  • d「ダブルパリティ」→ RAID6

AP午前ではコンピュータシステム分野で頻出(シラバス「コンピュータシステム・ストレージ」)。

正解は c「分散パリティを採用し、1台故障まで復旧可能」です。

RAIDは1987年のPatterson, Gibson, Katz の論文「A Case for Redundant Arrays of Inexpensive Disks (RAID)」が起源で、エンタープライズストレージの基礎技術として確立しました。本問は基礎ですが、上級者として理解すべきは「RAID5の数学的根拠」「現代でのRAID5の位置づけ」「次世代代替技術」の3点です。

1. RAID5の数学的根拠 — XORパリティの可逆性

パリティ P = D1 ⊕ D2 ⊕ ... ⊕ Dn (⊕はXOR)

任意のDi が失われた場合、残りのD と P からDi を復元:

```

Di = D1 ⊕ ... ⊕ Di-1 ⊕ Di+1 ⊕ ... ⊕ Dn ⊕ P

```

XORは結合的・可換的で、A ⊕ A = 0 という性質から成立します。RAID5 は1次元のXOR符号で、1台故障耐性(minimum distance = 2の符号)に相当します。RAID6はリードソロモン符号またはガロア体上の追加パリティで、2台故障耐性を実現します。

2. RAID5の書き込みペナルティ

「Small Write」(パリティブロックの全データを書き換えない部分更新)では以下4回のI/Oが発生:

1. 旧データブロック読込

2. 旧パリティブロック読込

3. 新パリティ計算(旧データ ⊕ 旧パリティ ⊕ 新データ = 新パリティ)

4. 新データ + 新パリティ書込

これがRAID5の致命的弱点で、書込負荷が高いワークロードでは性能が著しく低下します。対策として:

  • NVRAM書込キャッシュ:書込を一旦バッテリーバックアップRAMに集約し、まとめてストライプ全体を書く
  • ログ構造化(Log-Structured RAID):常に新しいストライプに書込み、空きストライプ化を遅延処理
  • SSDの利用:書込ペナルティの絶対値は変わらないが、IOPSの絶対量で吸収

3. URE(Unrecoverable Read Error)と再構築リスク

エンタープライズHDDのURE率は典型的に 10⁻¹⁵ bit / 読込bit。これは「112TB読込ごとに1回エラー」を意味します。20TB HDD 6台のRAID5(実効100TB)が1台故障し再構築する際、残り5台 × 20TB = 100TB を全読込する必要があります。期待値で1回以上のURE が発生し、再構築失敗の確率が無視できない大きさになります。

これがHDD容量増大とともに「RAID5 is dead」(Robin Harris, 2007)と言われた所以で、4TB超の大容量HDDではRAID6またはRAID10が推奨されるようになりました。

4. 現代の代替技術 — ZFS / Btrfs / Ceph

伝統的RAIDは「ブロックレベルの冗長化」ですが、現代では「ファイルシステム統合型」や「分散ストレージ」が主流になっています:

  • ZFS RAID-Z / RAID-Z2 / RAID-Z3:RAID5/6/三重パリティのファイルシステム統合版。チェックサム照合、コピーオンライト、書込ホール回避。
  • Btrfs RAID5/6:ZFS同様の機能だがRAID5/6は長年stableでなかった(kernel 6.x で改善中)。
  • Ceph CRUSH:オブジェクトストレージ上での分散冗長化。Erasure Coding でRAID6相当の効率を分散で実現。
  • AWS EBS / GCP Persistent Disk:基盤側で冗長化されておりユーザはRAID不要。
  • Google Colossus / Facebook Tectonic:自前分散FSでEC(消去符号)採用、RAID概念を超越。

5. Erasure Coding と RAID の関係

Erasure Coding は RAID の数学的一般化で、リードソロモン符号などにより k+m 構成(kブロックのデータに対しm個のパリティ)で任意の m 個までの故障耐性を実現します。RAID5 は k=n-1, m=1, RAID6 は k=n-2, m=2 に相当します。

クラウドストレージ(AWS S3, Google Cloud Storage)は内部的に Erasure Coding(典型的に Reed-Solomon (10, 4) や (16, 4))を採用し、地理的分散レプリケーションと組み合わせて11ナイン(99.999999999%)の耐久性を実現しています。

6. SSDとRAID

SSDはHDDと異なる故障パターン(書込寿命)を持ち、以下の考慮が必要:

  • 均等摩耗(Wear Leveling):SSDアレイで全ドライブが同時期に寿命を迎えるリスク
  • 書込増幅(Write Amplification):RAID5の書込ペナルティとSSDの書込増幅が重なり寿命短縮
  • NVMe over Fabric:SSDネイティブの分散プロトコル。RAIDよりオブジェクトストレージへ移行傾向

7. RAID選定のフローチャート

```

データ容量と耐障害性要件は?

├─ 単一ディスクで十分 → RAIDなし

├─ 高速性最優先(耐障害不要) → RAID0

├─ 重要データの単純2重化 → RAID1

├─ DB等で高IOPSが必要 → RAID10

├─ 容量効率と冗長化バランス(4TB以下)→ RAID5

├─ 大容量(4TB超)または重要データ → RAID6

└─ クラウド・分散環境 → Erasure Coding

```

8. AP午後問題での出題

AP午後では「RAID構成と必要ディスク数の計算」「データロスト確率の見積り」「再構築時間と運用影響」が問われます。RAID5/6 の容量効率 (n-1)/n, (n-2)/n、ストライプサイズと性能の関係を計算式で答えられるよう習熟しておきましょう。

実務的示唆:

  • オンプレ環境で20TB未満なら RAID6 + バックアップ で十分
  • 100TB超ならクラウドの Erasure Coding 採用ストレージ
  • 「RAID はバックアップではない」原則:論理破壊(ランサムウェア・人為ミス)にはRAIDは無力

RAID5は「分散パリティで1台耐える」が基礎、「なぜ大容量で危険か」「現代の代替は何か」まで語れて上級レベルです。

この問題の根拠出典:IPA(情報処理推進機構)公式 応用情報技術者試験(AP) 令和6年度 春期 問2
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 応用情報技術者試験(AP) 令和6年度 春期 問2/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。