iSCSI

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

Internet Small Computer System Interface (iSCSI) は、2003年2月11日にIETFによってRFC (request for comment) として公表された公式な規格への提案 (Proposed standard) であり、SCSIプロトコルをTCP/IPネットワーク上で使用する規格である。iSCSIはSCSI-3で規定されるフレームワークではトランスポート層に相当する。トランスポート層には他に並列(パラレル)SCSIやファイバーチャネルがある。

ギガビット・イーサネットが一般化した現在、企業内で iSCSI を受け入れる環境は急速に整った。iSCSIベースのストレージエリアネットワーク (SAN) の構築は、ファイバーチャネルによる SAN よりも安価で検討に値するものとなっている。

機能[編集]

iSCSIプロトコルはそのデータ転送のためにTCP/IPを使う。ほとんどの SAN の基盤であるファイバーチャネルなどの他のネットワークストレージプロトコルと違って、iSCSIは単純でどこにでもあるイーサネットインタフェース(または他のTCP/IPが使用可能なネットワーク)があればよい。このことは、ファイバーチャネルによる SAN につきもののコストと非互換問題を味わうことなくストレージの集中化を低価格で可能とする。

iSCSIに批判的な人々は、クライアントとストレージ間の通信にTCP/IPを使うことでプロトコルのオーバヘッドが生じ、ファイバーチャネルより性能が悪くなると予測している。しかし、TCPオフロードエンジン (TOE) のような新技術がオーバヘッドを減らす助けとなる。 最初の iSCSI はソフトウェアスタックとして実装される。iSCSI市場は着実に成長しており、性能と使い易さは多くの組織がギガビットや10ギガビットのネットワークを採用するとともに向上していく。同時に製造業者は iSCSIサポートをオペレーティングシステムや SAN製品やストレージシステムに組み込んでいく。

iSCSIは他のトランスポート層と異なり、二つの下位トランスポート層を持つ。一つはiSCSIプロトコルであり、このプロトコルはSCSIパケットのエンキャプシュレーション、ターゲットカタログ情報の交換、認証を行う。さらに下位のレイヤーはTCPプロトコルであり、セッションの保持、確実なパケット到達性とより下位のプロトコルIPによってルーティングが可能になっている。従来のハードワイヤードのSCSIトランスポート層に比べ、セキュリティ、可用性、スケーラビリティに極めて優れており、また汎用のTCP/IP対応機材を全く変更しないでそのまま流用できる優れた可搬性は、iSCSIプロトコルが設計開発段階にあった時点でベンダーの注目を集め、またプロトコルの完成によって直ちにベンダーはプロトコル改訂に参加していたエンジニアが設計開発を進めていた実装を提供した。

記憶装置[編集]

記憶装置の観点では、ホストシステムのiSCSIイニシエータ (Small Computer System Interface 参照) を使ってIPネットワーク上の遠隔にあるディスクテープのような対象装置 (target) に接続してブロックI/Oを行うことになる。クラスドライバとアプリケーション・ソフトウェアから見れば記憶装置はローカルにSCSIで接続されているのと同じに見える。ホストや対象装置 (target) が複数存在するようなもっと複雑な環境はストレージエリアネットワーク (SAN) と呼ばれる。

iSCSI記憶装置はネットワークアタッチトストレージ (NAS) とは異なる。NASは複数ホストからの同時アクセス要求を仲裁処理するためのサーバ・ソフトウェアを内蔵している。複数のホストから1つのデバイスに同時にアクセスするのを許すことは全てのSCSIデバイスに共通の困難なタスクである。ホスト同士の通信なしでは、他のホストがどういう状態で何をしようとしているかは分からない。この条件では、データが壊れたり、競合状態が生じたりする。ディスク装置の領域ではクラスター・ソフトウェアがこの問題を解決する。

実製品でのサポート状況[編集]

イニシエータ[編集]

OSによるサポート[編集]

OS名 リリース時期 バージョン
AIX 2002年10月 AIX 5.2
Windows 2003年6月 2000, XP Pro, 2003, Vista,2008,7,2008 R2
NetWare 2003年8月 NetWare 6.5
HP-UX 2003年10月 HP 11i v1, HP 11i v2
Solaris 2005年2月 Solaris 10
Linuxカーネル 2005年6月 2.6.12
NetBSD 2007年12月 4.0
FreeBSD 2008年2月 7.0
VMware ESX Server 2006年6月 3.0.0

イニシエータの実装[編集]

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

iSCSIホストバスアダプタ (HBA) はアダプタ自身にiSCSIプロトコルを実装したものである。オペレーティングシステムからは SCSI HBA と見えるように振舞う。iSCSI HBA にはTOE NICを持っているものもあり、さらに iSCSI としての処理もオフロードするものもある。ブート可能なiSCSIターゲットを設定するため、NVRAM を使って OSのドライバシステムに対して SCSI HBA であるかのうように見せかける。

以下のベンダーが iSCSI HBA を開発している。

ターゲット[編集]

産業界の関心は主にiSCSIディスクターゲットの開発に置かれているが、テープや媒体チェンジャも同様に需要がある。今のところ部品レベルでiSCSIをサポートした製品(ドライブ)は存在しない。代わりに並列パラレルSCSIやファイバーチャネル・インターフェイスを持つ装置を iSCSIターゲットソフトウェアを搭載した外部ブリッジ装置に接続したり、装置内部にそのような機能を格納したものがある。

また、ディスクおよびテープ・ターゲットは仮想化できる可能性がある。実際の物理デバイスを表すのではなく、エミュレートされた仮想的なデバイスを表現するのである。仮想テープライブラリ (VTL) のように外から見えるターゲットの種別とは全く関係なく内部の実装を行うことができる。VTL では仮想テープに書き込もうとしたデータは内部のディスク装置に書き込まれる。実際の物理デバイスと同様、仮想ターゲットも iSCSIターゲットソフトウェアを使うか、装置筐体内のコントローラでターゲットとして表現される。

ソフトウェアによる仮想ターゲット[編集]

関連項目[編集]

外部リンク[編集]

RFC[編集]

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