COMPUTER ARCHITECTURE / STORAGE NETWORK / FIBRE CHANNEL
ストレージの仕組みを体系解説|ブロック・SAN・FC・RAID・ハミング符号
公開日:2026-10-14
動画、会計データ、データベース。大量の情報を扱うサーバーは、どのように高速なストレージと接続しているのでしょうか。外付けディスクのイメージから始めて、SANとファイバチャネルの仕組みを一つずつ図で確認します。
身近な用途 → ブロックとファイルの違い → DAS・NAS・SAN → ファイバチャネル → ケーブルと構成 → SCSI・FCP → FCの階層 → 識別とアクセス制御 → iSCSI比較 → 操作ラボ
まずは英語名と略語を日本語の意味につなげます
SANやSCSIのような略語は、読み方だけで覚えようとすると混乱しやすいです。最初に英語の正式名称・カタカナの読み方・何をするものかをセットで確認しましょう。
SAN(サン)
Storage Area Network(ストレージ・エリア・ネットワーク)
サーバーとストレージ装置を接続する専用のネットワークです。一般にブロック単位でデータを提供します。
NAS(ナス)
Network Attached Storage(ネットワーク・アタッチド・ストレージ)
ネットワーク越しにファイルを共有する装置や方式です。
DAS(ダス)
Direct Attached Storage(ダイレクト・アタッチド・ストレージ)
USB接続の外付けSSDなど、コンピューターへ直接接続するストレージです。
SCSI(スカジー)
Small Computer System Interface(スモール・コンピューター・システム・インターフェース)
ストレージへ読み書きなどを指示するためのコマンド体系・インターフェースの系統です。
FC(エフシー)
Fibre Channel(ファイバチャネル)
主にストレージ接続に使われる高速なシリアル通信技術です。光だけでなく銅線も使えます。
FCP(エフシーピー)
Fibre Channel Protocol(ファイバチャネル・プロトコル)
SCSIコマンドをFC上で運ぶためのプロトコルです。
iSCSI(アイスカジー)
Internet Small Computer System Interface
SCSIコマンドをTCP/IPネットワーク上で運ぶ仕組みです。
LBA(エルビーエー)
Logical Block Addressing(ロジカル・ブロック・アドレッシング)
ディスク上の論理的なブロックへ番号を付けて指定する仕組みです。
HBA(エイチビーエー)
Host Bus Adapter(ホスト・バス・アダプター)
サーバーをストレージ接続ネットワークへつなぐアダプターです。
LUN(ラン/エルユーエヌ)
Logical Unit Number(ロジカル・ユニット・ナンバー)
ストレージ装置が提供する論理ユニットを識別する番号です。
WWN(ダブリューダブリューエヌ)
World Wide Name(ワールド・ワイド・ネーム)
FC機器のポートやノードなどを識別する名前です。
NVMe(エヌブイエムイー)
Non-Volatile Memory Express(ノンボラタイル・メモリー・エクスプレス)
SSDなどの不揮発性メモリ向けに設計された高速なアクセス規格です。
01|まずは身近な例:パソコンの外付けSSDから考えます
写真を保存するとき、家庭ではUSBでSSDをつないだり、家庭内ネットワークのNASへ保存したりします。企業のデータベースや仮想マシンでは、多数のサーバーが大容量ストレージを高い信頼性で利用する場面があります。
そのような環境では、サーバーとストレージの間に専用の接続基盤を用意する設計が使われます。ファイバチャネル(Fibre Channel、FC)は、こうしたストレージ接続で広く利用されてきた高速な転送技術です。
図で見る|『ブロック』とは小さな番号付き区画です
例えば写真を1枚保存しても、SSDの中には写真と同じ形の箱があるわけではありません。ストレージは、OSから見ると一定サイズで区切られた番号付きの領域の集まりです。これを論理ブロックと呼びます。
青色の A0〜A3 は同じ写真のデータの一部です。説明のため小さい4区画へ分けていますが、実際のブロックサイズや配置は環境によって異なります。OSのファイルシステムが「写真のどの部分がどのブロックにあるか」を管理するため、利用者は1枚の写真として開けます。
例えば1ブロックが4KiBだとすると、12KiBのデータ部分は最低でも3ブロック分に相当します。ただし、ファイルシステムの管理領域や実際の割り付け単位まで含めると、単純な割り算だけでは保存サイズは決まりません。
ファイルを開くときはOSのファイルシステムがブロックの位置を管理しています。SANはその一段下で、サーバーに「ブロックを読み書きできるディスク」のようなものを提供します。
NASでは共有先のファイルを指定し、SANではサーバー側のファイルシステムが指定する論理ブロックを転送します。ここでは違いが分かるよう構造を簡略化しています。
02|まず『ファイル』と『ブロック』の違いを整理します
普段は「報告書.pdfを開く」のようにファイル名で操作します。一方、OSはディスクを読み書きするとき、論理ブロックアドレス(LBA)で指定された領域にアクセスします。
ブロックストレージは、OSからディスク装置のように見えます。NASのファイル共有とは、利用者に提供する抽象化の段階が異なります。
FC SANは一般的に、このブロック単位のアクセスをサーバーへ提供するために使われます。
03|DAS・NAS・SANは何が違うのですか
| 方式 | 接続・アクセスの考え方 | 具体的なイメージ |
|---|---|---|
| DAS | サーバーへストレージを直接接続します | 内蔵SSD、直結SAS装置など |
| NAS | ネットワーク越しにファイルを共有します | SMB・NFSによる共有フォルダー |
| SAN | 専用または分離された接続基盤からブロック装置を提供します | FC SAN、iSCSI SANなど |
DASは一例です。直結ストレージにもさまざまな実装があります。
NASはネットワーク経由でファイルを共有する構成として理解すると整理しやすいです。
SANにはFC以外にiSCSIなどの方式もあります。
04|ファイバチャネルの仕組みと役割
FCは、サーバー側のHBA(Host Bus Adapter)、FCスイッチ、ストレージのポートを結ぶ高速なシリアル通信技術です。ストレージ用途ではSCSIコマンドをFC上に載せるFCP(Fibre Channel Protocol)が広く使われます。
FCは一般的なTCP/IP通信と同じものではありません。IPネットワークとの連携技術はありますが、FC自体をTCP/IPの上位プロトコルとして定義する説明は不適切です。
05|光ケーブルと電気ケーブル、何が違いますか
FCの物理接続には、対応した光ファイバーや銅線の伝送媒体を使います。光は長距離接続や電磁ノイズへの耐性が必要な環境で選ばれます。一方、短距離の配線では銅線のダイレクトアタッチケーブルなどが使われる場合があります。
| 媒体 | 特徴 | 注意点 |
|---|---|---|
| 光ファイバー | 光信号で伝送します。距離や光トランシーバーの種類に応じた構成が必要です | 対応する規格、モジュール、ファイバー種別を確認します |
| 銅線 | 電気信号で伝送します。短距離接続に向く製品があります | 距離、ポート仕様、ケーブル規格に制約があります |
06|接続方法はスイッチ型だけではありません
FCにはポイントツーポイント、スイッチドファブリック、調停ループ(FC-AL)といった接続トポロジーがあります。現在のSANで代表的なのはスイッチドファブリックですが、FCの定義がそれだけに限定されているわけではありません。
線は論理的な接続関係を示す概念図です。実際の物理配線や障害対策構成は環境によって異なります。
線は論理的な接続関係を示す概念図です。実際の物理配線や障害対策構成は環境によって異なります。
線は論理的な接続関係を示す概念図です。実際の物理配線や障害対策構成は環境によって異なります。
SCSI
何を読み書きするか
READ / WRITEなどのコマンド
FCP
どうFCへ載せるか
SCSIコマンドをFCで運びます
FC
どこを通って運ぶか
HBA → FCスイッチ → ストレージ
SCSIは命令の考え方、FCPはFCへ載せるプロトコル、FCは通信基盤です。名前が似ていても同じ層の技術ではありません。
07|SCSI・SAS・FCPをまとめて整理します
SCSIはストレージ操作のコマンド体系としての意味と、昔のパラレルSCSI接続方式の意味で使われることがあります。両者を分けることが重要です。FCPは、SCSIコマンドをFCの通信上で運ぶための仕組みです。FCの物理層がパラレルSCSIになるわけではありません。
| 用語 | 主な役割 | 区別するポイント |
|---|---|---|
| SCSIコマンド | READ / WRITEなどのストレージ操作 | 物理ケーブルの名前ではありません |
| パラレルSCSI | 従来の並列信号による接続方式 | FCの物理層ではありません |
| SAS | Serial Attached SCSI。シリアル接続方式です | FCとは別の接続技術です |
| FCP | FC上でSCSIコマンドを運びます | FCとSCSIをつなぐ上位マッピングです |
| iSCSI | TCP/IP上でSCSIコマンドを運びます | FC SANとは異なる転送基盤です |
データが利用者の手元へ届くまでには、ホストやストレージ内部でさらに多くの処理が行われます。
08|FCの階層はどのように分かれますか
FCはFC-0からFC-4までの機能層で整理されます。TCP/IPの階層をそのまま置き換えたものではありませんが、どの層が物理伝送を扱い、どの層が上位プロトコルとの橋渡しをするかを分けると理解しやすくなります。
| 階層 | 役割の概略 | 具体例 |
|---|---|---|
| FC-0 | 物理媒体・電気光学的な伝送 | 光ファイバー、対応する銅線接続 |
| FC-1 | 信号の符号化など | ライン符号化 |
| FC-2 | フレーム・シーケンス・フロー制御など | FCフレームの転送 |
| FC-3 | 共通サービスに関係する階層 | 共通サービスの概念 |
| FC-4 | 上位プロトコルとのマッピング | FCPによるSCSIコマンド転送 |
09|WWN・LUN・ゾーニングは何のために必要ですか
複数のサーバーとストレージが同じSANに接続されると、「どの機器が、どの記憶領域を見られるのか」を管理する必要があります。WWNはFC機器やポートの識別に利用される名前です。ゾーニングは主にFCファブリック側で相互に通信できるポートを制御します。LUNマスキングはストレージ側でホストに公開する論理ユニットを制御します。
ゾーニングとLUNマスキングは役割の異なるアクセス制御です。設定だけで完全なセキュリティが保証されるわけではありません。
10|冗長化とマルチパスは何を守りますか
本番のストレージ接続では、HBA、スイッチ、ケーブル、ストレージ側のポートが故障してもサービスを継続できることが重要です。そのため、異なる経路を用意するマルチパス接続が使われます。
概念図としてまとめています。実構成では独立した配線・スイッチ・電源など、単一障害点の削減も検討します。
マルチパスソフトウェアは、利用できる経路を把握し、障害が起きたときの切替えや経路選択を支援します。冗長化は単にケーブルを2本に増やすことではありません。
11|FC SANとiSCSI SANはどこが違いますか
| 比較項目 | FC SAN | iSCSI SAN |
|---|---|---|
| 運ぶコマンド | 一般にSCSI | SCSI |
| 転送基盤 | FCのフレーム・ファブリック | TCP/IPネットワーク |
| 代表的な接続機器 | FC HBA、FCスイッチ | NIC、Ethernetスイッチ |
| よく検討する点 | 専用接続の運用、対応機器 | IPネットワークの設計、帯域・遅延・分離 |
両者は対立する考え方ではなく、サーバーへブロックストレージを提供するための異なる選択肢です。どちらが必ず高速か・安価かは、製品と環境によって変わります。
12|NVMeとNVMe over Fabricsは何が違うのですか
NVMeは、主にSSDに向けて設計されたコマンド体系です。NVMe over Fabrics(NVMe-oF)は、NVMeのコマンドをネットワークを通じて利用するための仕組みです。NVMe/FCはその転送方式の一つで、FCファブリック上でNVMeを利用します。
13|仕組みを短い擬似コードで確認します
以下は実際のFC制御ソフトウェアではなく、サーバーがストレージへ要求を送るときに考えるべき段階を表した学習用の擬似コードです。
const request = { operation: "READ", lun: 2, lba: 4096 };
// 1. 対象となる論理ボリュームを確認します。
// 2. ホストが利用できる経路を選択します。
// 3. FCPならSCSIコマンドをFCフレームで運びます。
// 4. ストレージが該当するブロックを読み出します。
// 5. 完了応答とデータがホストに戻ります。14|操作ラボ:接続方式と通信経路を切り替えます
下のラボでは、DAS・NAS・FC SAN・iSCSI SANを切り替え、サーバーからストレージへどの経路でアクセスするかを確認できます。FC SANを選ぶと、ポイントツーポイントとファブリックの構成、光と銅線の媒体、ゾーニング、2系統の冗長化を操作できます。
INTERACTIVE STORAGE LAB
サーバーとストレージをつなぐラボ
データの届け方を切り替え、機器の役割と障害発生時の通信可否を確認します。実機のFCフレームや認証機構を再現するものではなく、構成理解を目的としたモデルです。
現在の接続図
媒体:光信号。SCSIコマンドはFCPでFC上を流れます。
現在の通信判定:到達できます(サーバーA→ストレージ1、B→ストレージ2だけを許可する学習用ルールです)
要求ログ
「読み出し要求を送信」を押すと結果が表示されます。
試してみましょう
① FC SANでA→1が到達できることを確認します。② ゾーニングを有効にしたままA→2へ切り替えます。③ Fabric Aを故障させ、冗長化の有無で結果を比べます。④ 光/銅線を切り替えてもFCという通信方式自体が変わらないことを確認します。
15|似た言葉を取り違えないための整理
| 間違えやすい組合せ | 正しい考え方 | 覚えるイメージ |
|---|---|---|
| FCと光ケーブル | FCは伝送規格であり、媒体は光だけに限りません | 仕組みとケーブルは別です |
| FCとTCP/IP | FCはTCP/IPの上位層として誕生した規格ではありません | FCとIPは転送基盤が異なります |
| FCとパラレルSCSI | FCPはSCSIコマンドをFC上に載せますが、FCの物理層がパラレルSCSIになるわけではありません | コマンドと物理配線は別です |
| SANとNAS | SANはブロック提供、NASはファイル共有が代表的です | ディスクを見せるか、ファイルを見せるかです |
16|まとめ:どの技術がどの役割かを押さえます
大容量ストレージへの接続を考えるときは、ファイルかブロックか、どのネットワーク基盤で運ぶか、どの機器を通るか、どのようにアクセスを制御するかの4点を整理すると理解しやすくなります。
ファイバチャネルはSANで使用される高速なシリアル転送技術であり、光ファイバーにも対応する銅線にも利用可能な方式があります。スイッチ型だけに限定されず、FCPでSCSIコマンドを運ぶこともできます。これらを一つのシステムとして説明できれば、関連技術の理解も進みます。
17|RAIDの前に、SSDを「区画の並び」として考えます
利用者が開く写真は1つのファイルに見えます。しかしストレージへアクセスするとき、OSやファイルシステムはデータを小さな単位に分け、論理ブロックアドレス(LBA:Logical Block Address)を使って管理します。ブロックは倉庫の棚番号が付いた小さな区画のようなものです。
実際のSSD内部では論理アドレスを物理フラッシュ位置へ変換するFTLなども動作します。ブロックとフラッシュの消去ブロックは同じ意味ではありません。
18|RAIDはなぜ複数のディスクをまとめるのですか
RAID(Redundant Array of Independent Disks、レイド)は、複数の記憶装置を組み合わせ、性能や可用性などを高める技術です。例えば1台の故障で業務が止まらないようにする目的で使います。なおRAIDはバックアップの代わりではありません。誤削除・ランサムウェア・火災などには別の対策が必要です。
図は概念的な構成です。RAIDはOSのソフトウェアや専用コントローラーなどで構成できます。
| 方式 | 書き込み方のイメージ | 主な特徴 |
|---|---|---|
| RAID 0 | ブロックを複数台へ分散します | 速度向上を狙えますが冗長性はありません |
| RAID 1 | 同じデータを別のディスクへ複製します | ミラーリングにより単一障害への耐性を持てます |
| RAID 5 | データと分散パリティを記録します | 通常、1台までの故障を許容します |
| RAID 6 | 2種類の冗長情報を分散して記録します | 通常、2台までの故障を許容します |
| RAID 10 | ミラーリングした組をストライピングします | 性能と冗長性を両立します。耐障害数は故障した組の位置によります |
19|図解:RAID 0・1・5はブロックをどう配置しますか
ここではA・B・C・Dをそれぞれ別のデータブロックとして考えます。RAID 0は分散、RAID 1は複製、RAID 5はデータとパリティを分散配置することが違いです。
Disk 1
Disk 2
片方のディスクが壊れると、データの一部が失われます。
Disk 1
Disk 2
両方へ同じデータを書き込みます。
Disk 1
Disk 2
Disk 3
パリティの担当ディスクを固定せず、分散させます。
RAID 5の図ではP0は最初のデータ組のパリティ、P1は次の組のパリティです。パリティの位置とデータの配置は実装やレイアウトにより異なります。図は各方式の仕組みを理解するための簡略図です。
20|XORで故障したブロックを復元する仕組み
RAID 5のパリティは、データブロックの各ビットをXOR(排他的論理和)で計算するのが基本です。XORは、同じビット同士なら0、異なるビット同士なら1になります。
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
ディスクA: 1
ディスクB: 0
パリティP = A XOR B = 1
もしディスクAを失っても
A = B XOR P = 0 XOR 1 = 1
※実際にはブロックの各ビットで計算します。21|パリティビットとハミング符号は何が違うのですか
どちらも「データが壊れる可能性」への対策ですが、役割が違います。単純なパリティビットは偶数・奇数の整合性を検査するもので、1ビットの誤りを検出できますが、一般には壊れた位置を決定できません。一方、ハミング符号(Hamming code、ハミングコード)は複数の検査ビットによって誤り位置を特定できるようにした符号です。
RAIDは複数ディスクのデータ消失への備え、ECCはメモリや転送データなどのビット誤りへの備えとして使われます。
| 技術 | 何を守るか | できることと限界 |
|---|---|---|
| 単一パリティビット | 小さなビット列 | 奇数個のビット反転を検出できますが、位置を特定できません |
| ハミング(7,4) | 4ビットデータ+3検査ビット | 通常、1ビットの誤り訂正ができます。ただし2ビット誤りを安全に訂正することはできません |
| 拡張ハミング(SECDED) | 追加の全体パリティ付き符号 | 1ビット訂正・2ビット検出の性質を持ちます |
| RAID 5 | 複数ディスク上のブロック | 通常、ディスク1台の喪失からデータを再構築できます |
22|ハミング(7,4)をビットで計算してみます
7ビットの位置を1〜7とし、位置1・2・4をパリティ、位置3・5・6・7をデータとして使います。偶数パリティの場合、位置1の検査は1,3,5,7、位置2の検査は2,3,6,7、位置4の検査は4,5,6,7を対象とします。
位置: 1 2 3 4 5 6 7
役割: P P D P D D D
データ: ? ? 1 ? 0 1 1
P1 = D3 XOR D5 XOR D7 = 1 XOR 0 XOR 1 = 0
P2 = D3 XOR D6 XOR D7 = 1 XOR 1 XOR 1 = 1
P4 = D5 XOR D6 XOR D7 = 0 XOR 1 XOR 1 = 0
符号語: 0 1 1 0 0 1 1 → 0110011ここで位置6のビットが1から0に反転すると、受信側では検査P2とP4が不一致となり、P1は一致します。検査結果の値は2+4=6なので、「6番目のビットが壊れた」と判断して1ビットを反転させます。これをシンドロームによる位置特定といいます。
23|CRC・チェックサム・ECC・RAIDを整理します
データを守る方法は一つではありません。転送中のビット誤りを見つけたいのか、1ビットを直したいのか、ディスクが故障しても読み出したいのかによって技術を選びます。
| 技術 | 英語と読み方 | 主な使いどころ |
|---|---|---|
| CRC | Cyclic Redundancy Check(シーアールシー) | 転送・保存されたデータの誤り検出 |
| ECC | Error-Correcting Code(イーシーシー) | データ誤りの検出・訂正(訂正能力は符号に依存) |
| RAID | Redundant Array of Independent Disks(レイド) | 複数装置の構成で可用性や性能を高める |
| バックアップ | Backup(バックアップ) | 誤削除や災害等に備えて別コピーを保持する |
各対策は相互の代替ではありません。目的と障害モデルを分けて設計します。
24|ストレージ整合性ラボ:RAIDとハミング符号を操作します
RAIDタブでは複数ディスクに保存するブロックとXORパリティを確認できます。ハミングタブでは4ビットから7ビットの符号語を作り、任意の1ビットを反転させたときのシンドロームを調べられます。
STORAGE INTEGRITY LAB
冗長化と誤り訂正を試してみましょう
4ビットのブロックAとBからパリティPを作ります。ディスク1台が失われた場合に、残り2台のビットをXORして復元する仕組みです。
ディスクA
故障
ディスクB
0110
パリティP
1101
A を失っても、残りのブロックのXORで 1011 と復元できます。
25|全体像:どの層にどの技術が入りますか
FC・SCSI・RAID・ECCは別々の層・役割を持ちます。すべての構成にすべての技術が必須という意味ではありません。
ファイバチャネル(FC)はストレージへ要求を運ぶ技術、SCSIは読み書きのコマンド体系、ファイルシステムはファイルとブロックの対応付け、RAIDは複数ディスクの配置・冗長化、ECCはビット列の検出・訂正です。この区別が理解の土台になります。