Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RAID

 RAID

以下動画のテキストです
https://youtu.be/xkUt6DMlLfk

Satoru Takeuchi

July 25, 2022
Tweet

More Decks by Satoru Takeuchi

Other Decks in Technology

Transcript

  1. RAIDとは • Redundant Array of Independent Diskの略 • データ冗長化手法のひとつ ◦

    複数のディスクを束ねて一つの仮想的なディスクに見せる ◦ 仮想的なディスク上のデータは冗長性されている ◦ 物理的なディスクが壊れてもデータが失われず、かつ、運用継続可能 仮想的なディスク ディスク ディスク ディスク … 使う 束ねる
  2. RAID1 • 同じデータを2台以上のディスクに書き込む • n-1台の破壊に耐えられる • ユーザから見える容量は総容量の1/nになる 仮想的なディスク ディスク0 ディスク1

    仮想的なディスク ディスク0 ディスク1 データA データA 仮想的なディスク ディスク0 ディスク1 故障 データAを書く ディスク0だけ読み 書きすれば 運用継続可能 2台構成のRAID1 データを書く ディスク故障後
  3. リビルド • 壊れたディスクの交換後に実行 • 交換したディスクにデータを埋めて冗長度を戻す 仮想的なディスク ディスク0 ディスク1 故障 ディスク故障後

    (ディスク0も壊れたら データを失う) 仮想的なディスク ディスク0 ディスク2 故障したディスクの交換 リビルド データ 仮想的なディスク ディスク0 ディスク2 データ データ データ コピー
  4. すごい機能 • ホットスワップ ◦ 電源を切らなくてもディスク交換できる ◦ OSが対応していたらディスク故障後に電源を切らずに交換 →リビルドできる ◦ RAIDじゃなくても便利

    • ホットスペア(ホットスタンバイ) ◦ RAIDアレイに組み込まない予備のディスクを用意しておく ◦ ディスクが壊れたら自動的に予備ディスクを使ってリビルド
  5. 実現方式 • ハードウェアRAID ◦ RAID用の専用ハードウェアを使う ◦ たとえばディスクを複数台接続できる PCIカード(RAIDカード)として実現 ◦ RAID用の処理はカード上のコントローラが担当。

    CPUは使わない ◦ 操作はファームウェアやベンダ提供コマンドで実施 • ソフトウェアRAID ◦ RAID用の処理はソフトウェアが担当 ◦ Linuxではmdraidがよく使われる(mdadmコマンドで操作) • fake RAID ◦ ハードウェア機能だが、ほとんどの処理は CPUが行う ◦ fake RAIDを指してソフトウェア RAIDと呼ぶことがある
  6. 📒 RAIDつらい話 • ディスクが同時に複数個壊れる ◦ →RAIDに組み込むディスクの型番や製造時期を変えたりする • RAIDコントローラが壊れる ◦ →コントローラの二重化

    (お高い) • RAIDコントローラがバグってて変な動きをする ◦ ファームウェアアップデート ◦ ベンダを変える ◦ ソフトウェアRAIDにする(オープンソースだと自分でなんとかできることもあるかも ) • ディスクを積んでたマシンが爆発した ◦ RAIDでは救えません。バックアップや分散ストレージを使ってね • write hole ◦ 話が長くなるのでまた後日
  7. まとめ • RAIDはデータ冗長化手法の一つ ◦ 複数台のディスクを束ねて仮想的な一台のディスクとして見せる ◦ 仮想的なディスク上のデータは冗長性されている ◦ 物理的なディスクが壊れてもデータが失われず、かつ、運用継続可能 •

    様々なレベルがある ◦ よく使われるのはRAID1,10,5,6 • 実現方法もいろいろ : ハードウェア、ソフトウェア、両方 • いいところだけではなくて、いろいろつらいところもある