ストレージ関連技術

このページでは、RAIDの各レベルの仕組みと稼働率、NASとSAN(FC、iSCSI、FCoE)の違い、大量データを分散処理するHadoopがわかります。

  • 一言で言うと:
    • ディスクを何台かまとめて速く・安全にする方法(RAID)と、ストレージをサーバにどうつなぐか(DAS、NAS、SAN)の話。

まとめて速く・安全に(RAID)→ データのしまい方(ストレージの種類)→ どうつなぐか(接続形態)→ 大量データの分散処理(Hadoop)

覚え方の軸

  • RAIDは「分ける(ストライピング)」「写す(ミラーリング)」「直す情報を足す(パリティ)」の組合せ:
    • 0=分けるだけ、1=写すだけ、3・4・5=分けてパリティ1つ、6=パリティ2つ
  • RAID3・4・5は「単位」と「パリティの置き方」で区別する:
    • 3はビット・固定、4はブロック・固定、5はブロック・分散
  • 何台壊れても大丈夫か:
    • 0は0台、1・3・4・5は1台、6は2台
  • 稼働率の式は「k台のうち何台動けばよいか」で作る(信頼性計算の直列・並列・2 out of 3 の応用)
  • 接続形態は「どこにつなぐか」:
    • サーバに直接(DAS)、LANに(NAS、ファイル単位)、専用ネットワークに(SAN、ブロック単位)

RAID:ディスクをまとめて速く・安全にする

  • RAID(Redundant Arrays of Independent Disks):
    • 複数の記憶装置をまとめて1つの論理的な装置(ディスクアレイ)として扱い、入出力の高速化や信頼性の向上を実現する技術。実現方法でレベルがある
    • "I"を「Inexpensive(安価な)」とする場合もある(安いディスクを組み合わせる、という意味)
  • 用語
    • ストライピング:
      • データを複数のディスクに分散して置く
    • ミラーリング:
      • 複数のディスクに同じデータを書く
    • パリティ:
      • エラー訂正情報(例:データ1と2の排他的論理和)。1台が壊れても、残りから復元できる
  • 各レベル(ディスク1台の稼働率をRとする)
レベル 中身 長所・短所 稼働率
RAID0 ストライピングだけ 入出力の速度は上がる。1台でも壊れると使えない(信頼性なし) R²(2台)
RAID1 ミラーリング 1台壊れても動く。同じデータを何台にも書くので冗長度(重複度)が高い 2R − R²(2台)
RAID2 RAID0+ハミング符号(エラー訂正符号)用のディスク 遅いうえ、最小でもデータ用2台+訂正用3台の計5台が必要で、導入実績はほとんどない ―
RAID3 RAID0+パリティディスク。ビット単位でストライピング 1台の故障まで復元できる ―
RAID4 RAID0+パリティディスク。ブロック単位でストライピング 読込みは速いが、書込みはパリティディスクにアクセスが集中してあまり速くない 3R² − 2R³(3台)
RAID5 RAID4を改良し、データとパリティを分散。ブロック単位 パリティへのアクセス集中を防いで高速化。1台の故障まで復元できる 3R² − 2R³(3台)
RAID6 通常のパリティに加え、別の計算方法のパリティも足す(2種類) 2台壊れても動く R⁴ + 4R³(1−R) + 6R²(1−R)²(4台)
  • ★RAID3・4・5の区別(試験に出る組合せ)
レベル ストライピング単位 冗長ディスク構成
RAID3 ビット 固定
RAID4 ブロック 固定
RAID5 ブロック 分散
  • エラー訂正符号(ECC:Error Correcting Code):
    • エラーの検出・訂正のため、元のデータに付ける冗長ビット。データ誤りを自動訂正するメモリをECCメモリという
  • RAIDの組合せ
    • RAID01(RAID0+1):
      • ストライピングしたディスク群を1つの単位としてミラーリングする。RAID0の高速性を保ちながら高信頼性を実現
      • 稼働率(4台):
        • (R²)² + 2R²(1 − R²) = 2R² − R⁴
    • RAID10(RAID1+0):
      • ミラーリングしたディスク群を1つの単位としてストライピングする。RAID1の高信頼性を保ちながら高速化
  • 稼働率の例(R=0.9 として検算)
    • RAID0:
      • 0.9² = 0.81(1台より下がる)
    • RAID1:
      • 2×0.9 − 0.81 = 0.99
    • RAID5(3台):
      • 3×0.81 − 2×0.729 = 2.43 − 1.458 = 0.972
    • RAID6(4台):
      • 0.6561 + 0.2916 + 0.0486 = 0.9963
    • RAID01(4台):
      • 2×0.81 − 0.6561 = 0.9639
    • 補足:
      • RAID10(4台)は、ミラー組(0.99)2つの直列なので 0.99² = 0.9801。同じ4台ならRAID10のほうがRAID01より稼働率が高い
  • RAID5の式の意味:
    • 「3台とも正常(R³)」+「2台正常・1台故障(3通り × R²(1−R))」= 3R² − 2R³(後で出てくる 2 out of 3 と同じ形)

データの保管形式によるストレージの種類

種類 中身 関連
ファイルストレージ 最も一般的。中をディレクトリやフォルダで階層化し、ファイル単位で保存 DAS、NAS
ブロックストレージ 階層化せず、ブロックという単位で保存 FC、iSCSI、FCoEで作るSAN
オブジェクトストレージ オブジェクトという単位で扱う。階層構造はなく、オブジェクトどうしはフラット。非構造型データに向き、大容量で拡張性がある ―

ストレージの接続形態:どうつなぐか

  • DAS(Direct Attached Storage):
    • 従来型。ストレージをサーバに直接つなぐ
  • NAS(Network Attached Storage):
    • LANに直接つなぐストレージ。ファイル共有に特化したOSやネットワークインタフェースを持つ(ファイルサーバ専用機)
    • 長所:
      • 従来のファイルサーバより高速。NFSやCIFSなどのファイル共有プロトコルに対応しているので、異なるOS間でもファイルを共有できる
    • 短所:
      • LAN上をストレージのデータが流れるので、帯域を圧迫する
    • RAID構成の場合もある
  • NFS:
    • 主にUNIX系OSで使うファイル共有システム
  • CIFS(Common Internet File System):
    • Windows系OSのファイル共有で使うSMBを拡張し、Windows以外でも使えるようにしたもの。TCP/IPでファイル共有を行う
    • 注意(最新情報):
      • CIFSはSMBの古い版(SMB 1.0系)の呼び方で、現在のWindowsでは標準で無効。今はSMB 2・3が主流。試験では上の理解でよい
  • SAN(Storage Area Network):
    • サーバとストレージを、普通のLANとは別の高速ネットワークでつないだストレージ専用ネットワーク
    • 長所:
      • ストレージが統合されているので、各サーバの要求に柔軟に対応できる。専用ネットワークなので高速で信頼性が高い
    • アクセス(データ転送)はブロック単位
  • SANの作り方
種類 中身 ポイント
FC-SAN ファイバチャネル(FC)で作る。FCはSCSI-3のサブセットで、ギガビット級の転送能力を持つ 従来の主流。FCは電気ケーブルでも光ファイバでも作れる
IP-SAN iSCSIを使う。SCSIコマンドをカプセル化してTCP/IPで送受信する FC-SANより安く作れるが、TCP/IPを使うので処理のオーバヘッドが大きい
FCoE Fibre Channel over Ethernet。TCP/IPを使わずに、FCフレームを直接イーサネットで送る。LAN環境とFC-SAN環境を統合する技術 iSCSIよりオーバヘッドが少ない。既存のEthernetではなく、高信頼・高性能な拡張Ethernetを使う
  • プロトコルの重なり方
    • iSCSI:
      • SCSI → iSCSI → TCP → IP → Ethernet(IPネットワーク上でSCSIコマンドが使える)
    • FCoE:
      • FCP → FCoE → Ethernet(FCを使わずにサーバとストレージをつなげる)
    • FCP:
      • ファイバチャネルプロトコル

Hadoop

  • Hadoop:
    • 大規模データを複数のサーバで分散処理するためのミドルウェア(ソフトウェアライブラリ)。扱うデータはペタバイト(PB)級(1PB = 2⁵⁰ ≒ 10¹⁵ バイト)
  • HDFS(Hadoop Distributed File System):
    • 複数のサーバに分散したデータを論理的にまとめた、大規模な分散ファイルシステム
  • MapReduce:
    • 複数のサーバで分散処理を実行するフレームワーク。分散並列処理を実現する

混同しやすいペア

  • ストライピング(分けて速く、RAID0)/ミラーリング(写して安全、RAID1)
  • RAID3(ビット・固定)/RAID4(ブロック・固定)/RAID5(ブロック・分散)
  • RAID5(パリティ1つ、1台まで)/RAID6(パリティ2つ、2台まで)
  • RAID01(ストライピングしてからミラー)/RAID10(ミラーしてからストライピング)
  • NAS(LANにつなぐ、ファイル単位、帯域を圧迫)/SAN(専用ネットワーク、ブロック単位)
  • iSCSI(TCP/IPに載せる、安いがオーバヘッド大)/FCoE(TCP/IPを使わずイーサネットに直接、オーバヘッド小)
  • ファイルストレージ(階層あり)/ブロックストレージ(ブロック単位、SAN)/オブジェクトストレージ(フラット、非構造型データ)
  • HDFS(分散ファイルシステム)/MapReduce(分散処理のフレームワーク)

← 04 システム構成要素の目次に戻る

タイトルとURLをコピーしました