モチベーション
- AWS SAA の「AWS Storage Gateway」に関する勉強中にiSCSIプロトコルが出てきたので、調べてみた
iSCSIプロトコルとは
SCSIプロトコル
- Small Computer Systems Interfaceの略
- コンピュータがストレージデバイスにアクセスするための通信規約
- サーバー ↔ ローカルのストレージ
iSCSIプロトコル
- Internet Small Computer Systems Interface)
- SCSIコマンドをTCP/IPプロトコルに乗せて送信し、ネットワーク経由でストレージにアクセス
- サーバー ↔ ネットワーク上のストレージ
iSCSIプロトコルの構成要素
- イニシエーター(Initiator)
- ストレージにアクセスするクライアント側のデバイス(例: サーバー)
- ソフトウェアイニシエーターとハードウェアイニシエーターが存在
- ターゲット(Target)
- ストレージデバイスやストレージサーバー
- ネットワーク
- TCP/IPネットワーク(LANやWAN)
iSCSI の仕組み
- イニシエーターがターゲットに接続リクエスト
- 認証(CHAPなど)を通じてセッションを確立
- イニシエーターは、TCP/IPを介してターゲットにSCSIコマンドを送信
- ターゲットは、ストレージデバイス上のデータを読み書きし、イニシエーターに応答
- OSから見ると、iSCSIで接続されたストレージはローカルディスクと同じように認識される
iSCSIの特徴
iSCSI の特徴
- 通信がTCP/IPネットワークに依存しているため、ネットワークの遅延や帯域幅不足がパフォーマンスに影響する
- ソフトウェアイニシエーターを利用すると、CPUに負荷がかかる
- ネットワークを介して通信するため、盗聴や不正アクセスのリスクがある。→解決策: CHAP認証、IPsec、専用ネットワーク(VLAN)の使用
iSCSIとNFSの違い
項目 | iSCSI | NFS |
---|---|---|
ストレージタイプ | ブロックストレージ | ファイルストレージ |
操作単位 | ブロック単位 | ファイル単位 |
ファイルシステム管理 | クライアント側が管理 | サーバー側が管理 |
用途 | データベース、仮想化環境、高速アクセスが必要なアプリケーション | ファイル共有、バックアップ、アーカイブ用途 |
クライアントからの同時アクセス | 複数クライアントからの直接利用には不向き(特殊な構成が必要) | 複数クライアントからの同時アクセスが簡単 |
通信プロトコル | TCP/IP | TCP/IP または UDP |
パフォーマンス | 高パフォーマンス(低レイテンシ、高スループット) | 高負荷時にパフォーマンスが低下しやすい |
設定の複雑さ | 比較的複雑(iSCSIターゲットやイニシエーターの設定が必要) | 比較的簡単(NFSサーバーの設定とクライアントのマウントのみ) |
コスト | 専用のソリューションが必要な場合は高コスト | 低コスト(特にオープンソースのNFSを利用する場合) |
参考
- chatgptの回答を元に作成