ISCSI

Internet Small Computer System Interface  とは、SCSIプロトコルをTCP/IP上で使用する規格である。ファイバーチャネルよりも安価にストレージエリアネットワーク  を構築出来る。2003年2月11日にIETFによってRFCとして公表された"公式な規格への提案"  であり、SCSI-3標準のトランスポート層に相当する。ギガビット・イーサネットが一般化した現在、iSCSIベースのSANは十分高速・安価となり検討に値するものとなっている。

1. 特徴
-----

データ転送にTCP/IPを使う。ストレージエリアネットワークの基盤であるファイバーチャネルと違い汎用なイーサネットがあればよい。SANのコスト/互換性問題なしにメリットを享受できる。TCP/IPのオーバヘッドによりファイバーチャネルより性能が悪いという批判もある。しかし、TCPオフロードエンジン  のような新技術が影響を緩和する。市場は成長しており、ギガビットイーサネットや10GbEの普及に伴い性能・使いやすさが向上している。ベンダーも オペレーティングシステム、SAN製品、ストレージシステムでiSCSIをサポートしてきている。従来のハードワイヤードのSCSIに比べセキュリティ・可用性・スケーラビリティに優れている。既存のTCP/IP機材を流用できる優れた可搬性は設計開発段階からベンダーの注目を集めた。プロトコルの完成によってベンダーは直ちに製品を提供した。

2. プロトコル階層
----------

下記の5層から構成される。下位から順に、

物理層、リンク層 IEEE802.3 が使われる。これはイーサネットと同様のLANコネクタや物理現象が利用される事を意味する。ファイバーチャネル・オーバー・イーサネットとは異なり10GbEは必須ではなく1GbEでも良い。
IP層 Internet Protocol }}ルーティングを可能にする。
TCP層 Transmission Control Protocol }}セッション保持や確実なパケット到達を実現する。
iSCSI層SCSI層からのSCSIコマンドを受けiSCSI Protocol Data Unit を作成し下位層へ渡す。
SCSI層SCSIコマンドが使われる事を意味する。

3. 記憶装置
-------

ホストはiSCSIイニシエータ  をサポートしている必要がある。ホストはこれを使って遠隔にあるディスクやテープのような対象記憶装置  に接続する。ドライバやアプリケーションから見れば記憶装置はローカルにSCSIで接続されているのと同じに見える。ホストやtargetが複数存在する複雑な環境はストレージエリアネットワークとなる。iSCSIはネットワークアタッチトストレージ  とは異なる事に留意する。イーサネットを使うという点では共通であるが、NASは複数ホストからの同時アクセスを仲裁するためのソフトウェアを内蔵してファイル共有を行う役割でありiSCSIの目的とは異なる。

4. サポート状況
---------

4.1. イニシエータ
-----------

4.1.1. OSのサポート
--------------



4.1.2. ソフトウェア
-------------

Cisco iSCSI ドライバー - 最初期のソフトウェア iSCSI イニシエータのひとつ。HP-UX, AIX, Linux, Solaris, Windows NT 4/2000 をサポート。 最近ではCisco SAN-OS の名称でファイバーチャネルも含めたSAN全般をサポートする体系に組み込まれている。
IBM iSCSI ソフトウェアイニシエータ for AIX - バージョン 5.2  から対応
FreeBSD - バージョン 7.0  から対応
HP HP-UX iSCSI ソフトウェアイニシエータ
Linux
Core-iSCSI - 商用の PyX イニシエータの GPL部分に基づくイニシエータ。Open-iSCSI の開発のために Linux-iSCSI の保守が停止した際にギャップを埋める目的で Linuxカーネル 2.6 向けに復活したプロジェクトである。
Intel-iSCSI  - 概念実証用にインテルからLinux向けにリリースされたiSCSIイニシエータとターゲット。
Linux-iSCSI - Cisco Linux iSCSI ドライバーに基づくイニシエータ。2005年4月現在Linux-iSCSI と Open-iSCSI の開発者は共同で作業して Open-iSCSI の強化に努めている。3.xx シリーズは Linuxカーネル 2.4 をサポート。4.xx シリーズは Linuxカーネル 2.6 から 2.6.9 までをサポート。
Open-iSCSI - 最新のイニシエータであり2.6.11 以降をサポート。この開発のためLinux-iSCSI の開発は停止した。
UNH-iSCSI - ニューハンプシャー大学  によるイニシエータとターゲットの実装。
マイクロソフト iSCSI ソフトウェアイニシエータ for Microsoft Windows - Windows 2000, Windows XP Professional, Windows Server 2003 をサポート。
ノベル iSCSI イニシエータ for NetWare - Netware 6.5 で使用可能。
サン・マイクロシステムズ Solaris iSCSI イニシエータ - Solaris 10 1/06 アップデートで使用可能。

4.1.3. ハードウエア
-------------

iSCSIホストバスアダプタ  はそれ自身にiSCSIプロトコルを実装している。OSからはSCSI HBAに見える。TOE NICを持つものやiSCSI専用処理をオフロード出来るものもある。遠隔のtargetディスクからOSをブートするために、NVRAMを搭載しているものもある。以下のベンダーが主に開発している。

アダプテック
インテル
Alacritech
Qlogic
Brocade 

4.2. ターゲット
----------

ディスク製品が主である。テープドライブやテープライブラリにも需要があるが、今のところサポートしている製品は限られている。代わりに並列パラレルSCSIやファイバーチャネルを持つ装置にテープとiSCSIターゲットソフトウェアを搭載した製品がある。ターゲットは仮想化できる可能性がある。仮想テープライブラリ  のように外から見えるターゲットの種別とは全く関係なく、内部の構造を自由に実装できる。仮想ターゲットでも装置筐体内で専用コントローラやソフトウェアを使う事で、iSCSIターゲットとして見せかける事が出来る。

4.2.1. ソフトウェア
-------------

Windows
[1]
[2]
Linux
[3] - Linux open source iSCSI target, kernel ≥2.6.37
[4] - オープンソースの iSCSIターゲット実装
[5] - iSCSIターゲットの仮想テープドライブ
[6]
[7]
[8]
Solaris
Solaris 10 ではshareiscsi。ただしユーザランド実装なので遅い。
Solaris 11、OpenSolarisではCOMSTAR。ZFSと連携し、高機能で高速。
NetBSD 用ターゲットの [ftp://ftp.netbsd.org/pub/NetBSD/misc/agc/HOWTO-iSCSI-target.txt HOWTO]
NetWare 6.5 には iSCSIターゲットのパッケージが含まれている。
POSIX
[9]
TrueNAS

5. 関連項目
-------

Small Computer System Interface 
Fibre Channel Over IP 
Fibre Channel Over Ethernet 
:en:RDMA over Converged Ethernet 
ATA over Ethernet 

6. 外部リンク
--------

[10]

6.1. RFC
--------

3720}} - Internet Small Computer Systems Interface 
3721}} - Internet Small Computer Systems Interface  Naming and Discovery
3722}} - String Profile for Internet Small Computer Systems Interface  Names
3723}} - Securing Block Storage Protocols over IP
3347}} - Small Computer Systems Interface protocol over the Internet  Requirements and Design Considerations
3783}} - Small Computer Systems Interface  Command Ordering Considerations with iSCSI
3980}} - T11 Network Address Authority  Naming Format for iSCSI Node Names
4018}} - Finding Internet Small Computer Systems Interface  Targets and Name Servers by Using Service Location Protocol version 2 
4173}} - Bootstrapping Clients using the Internet Small Computer System Interface  Protocol
4544}} - Definitions of Managed Objects for Internet Small Computer System Interface 
4850}} - Declarative Public Extension Key for Internet Small Computer Systems Interface  Node Architecture
4939}} - Definitions of Managed Objects for iSNS 
5048}} - Internet Small Computer System Interface  Corrections and Clarifications
5047}} - DA: Datamover Architecture for the Internet Small Computer System Interface 
5046}} - Internet Small Computer System Interface  Extensions for Remote Direct Memory Access 
7143}} - Internet Small Computer System Interface  Protocol 
7144}} - Internet Small Computer System Interface  SCSI Features Update
7145}} - Internet Small Computer System Interface  Extensions for the Remote Direct Memory Access  Specification
7146}} - Securing Block Storage Protocols over IP: 3723}} Requirements Update for IPsec v3
7147}} - Definitions of Managed Objects for the Internet Small Computer System Interface 

7. 脚注
-----