Part.3 ファイバ・チャネルとは?
特集の前半では、SANの概要と構成要素について見てきましたが、本章からは技術仕様の部分に注目していきます。現在、このSANの中核となっている技術がファイバ・チャネルです。ファイバ・チャネルとは、一体どのような技術なのでしょうか。また、IPプロトコルやイーサネットとどのような違いがあるのでしょうか。そういった部分を中心に説明していきたいと思います。
ファイバ・チャネルのメリット
ファイバ・チャネル技術は、ANSI T11委員会(The American National Standards Institute T11 technical committee)において標準化されている、高速デジタル・データ伝送に関する標準です。
ファイバ・チャネルはSCSIプロトコルの弱点を補う技術です。ストレージ装置のインターフェイスとしては、現在はSCSI接続によるDASが主流ですが、SCSIはブロック・データの伝送に適している半面、以下のような欠点があります。
- 接続できるデバイス数に制限がある
- 速度に限界がある
- 接続できる距離に限界がある
また、ネットワーク接続ではTCP/IP、イーサネットを使用することが多いですが、これらは長距離接続が行える半面、以下のような欠点があります。
- オーバーヘッドが大きい
- ブロック・データの伝送に適していない
ファイバ・チャネルは、この2つの技術の長所を融合するとともにそれぞれの欠点を補い、大容量のデータ転送を効率よく行うことを可能にしています。
ファイバ・チャネルの5つのレイヤ
ファイバ・チャネルでは、図5のようにFC-0からFC-4までの5つのレイヤがあります。各層の役割は以下のとおりです。
FC-0
FC-0はケーブルやコネクタなどの物理メディアや伝送速度、距離、信号処理などについて規定しているレイヤです。現在の標準では、4Gbits/sまでの物理層が定義されています。
FC-1
FC-1ではデータの符号化/復号化について規定しています。ファイバ・チャネルで使用されている符号化方式は、8B/10B符号化と呼ばれています。
まず、なぜ符号化が必要なのかについて説明しておきましょう。2進数で「00000000」のデータを符号化せずそのままケーブルで伝送したとすると、0が連続するため、受け手にはどこがデータの切れ目なのか分からなくなります。そこで、通常は符号化という処理を施して対応します。8B/10B符号化は、8ビットのデータを10ビットのデータに符号化する技術です。この技術は、ギガビット・イーサネットにも使用されています。規格では、このレイヤのビット・エラー・レート(BER)は非常に低く抑えられており、上位レイヤにおけるエラー回復処理を削減することができます。
FC-2
このレイヤはファイバ・チャネルの最小伝送単位であるフレームの組み立てとフロー制御、データ伝送手順などを規定しています。フレームの中身の詳細については後述します。
フロー制御は「サービス・クラス(Class of Service)」によって規定されるため、ここでサービス・クラスの説明をしましょう。サービス・クラスはデータの伝送に使うメカニズムを指定します。ファイバ・チャネルで規定されているサービス・クラスには、クラス「1」「2」「3」「4」「6」「F」の規定がありますが、ファイバ・チャネルを使ったSANでよく使用されるのはクラス「2」「3」「F」です。
クラス2とクラス3はともにデータの転送を制御する仕組みです。クラス2はTCPプロトコルのように、フレーム単位でデータの配信確認要求を行いますが、クラス3ではUDPプロトコルのように、データの配信確認要求は行いません。これだけを見ると、クラス3では通信品質が低くなるように思われるかもしれませんが、ファイバ・チャネルでは上記のとおり、FC-1層において非常に低いビット・エラー・レートが規定されているため、FC-2層ではそれほど厳密なデータ配信確認は必要ではありません。データ・アクセスには配信効率が必要となるということからも、実際にはクラス3での通信が主流となっています。クラスFはファブリック制御用のデータ転送を制御します。
SANの用語でよく登場する「ファブリック」とは?
SANの世界では、「ファブリック」という言葉がよく使われます。このファブリックとは、「ファイバ・チャネル・スイッチ同士が相互接続されたネットワーク」のことです。また正確には、スイッチが1台の場合でもファブリックと呼びます。ファブリックを構成する1台もしくは複数のスイッチは、以下のようなサービスを提供/共有することができます。
ネーム・サービス
直接接続されているデバイスの情報をデータベースに保存し、各ファイバ・チャネル・スイッチ間で共有します。この情報を保存/照会する機能を提供するファイバ・チャネル・スイッチは「ネーム・サーバ」と呼ばれます。これにより、どのファイバ・チャネル・スイッチに接続されたデバイスも、ファブリックに接続されている任意のデバイスの情報を入手することが可能になります。
状態変更通知
デバイスの追加/削除など、ファブリックのトポロジに変更があった際、状態変更通知(RSCN:Remote State Change Notification)と呼ばれるフレームを、事前登録を行ったデバイスに対して送信します。RSCNを受け取ったデバイスは、ネーム・サーバに問い合わせることによって、どのデバイスに変更が生じたのかを知ることができます。
タイム・サービス
デバイス同士が時間の同期を取れるようにします。
FC-3
サービス層といわれ、ネーム・サービスやマルチキャストなどの、ファブリック・サービスを規定するレイヤです。
FC-4
FC-4は、FC-3までのデータ伝送のメカニズムを上位プロトコルにマッピングするレイヤです。現在ファイバ・チャネルの上位プロトコルとしてよく活用されているのは、ファイバ・チャネル・プロトコル(FCP)というSCSI-3の拡張プロトコルです。これ以外では、IPやFICONなどが使用されています。また、Virtual Interface(VI)もファイバ・チャネル上に載せることが可能です。
TCP/IP、イーサネットとの違い
次に、ファイバ・チャネルとTCP/IP、イーサネットの違いについて見ていきましょう。まず、TCP/IPとイーサネットをOSI参照モデル7階層に対応させたものが図6です。TCP/IPとイーサネットでは、OSI7階層における第2層(データリンク層)までをハードウェアで処理し、それより上位層の処理はソフトウェア、すなわちサーバのCPUで行います。
一方、ファイバ・チャネルとOSI参照モデル7階層を厳密に対応させることはできませんが、図7のように対応付けることはできるでしょう。ファイバ・チャネルでは、OSI参照モデル7階層における第5層(セッション層)までを規定する形になりますが、そのすべてをハードウェア、具体的にはHBAとファイバ・チャネル・スイッチで処理します。これにより、サーバCPUのリソースを使用することなく、大容量・高速なデータ伝送を行うことができます。
IPやイーサネットに「MACアドレス」や「IPアドレス」があるように、ファイバ・チャネルにも「World Wide Name(WWN)」と「動的ネイティブ・アドレス(ポート・アドレス)」というものがあります(図8)。
WWNは、ファイバ・チャネル・スイッチやHBAといったハードに固定的に割り当てられた64bits(8bytes)のアドレスで、変更することはできません。従って、MACアドレスに似たものと考えていいでしょう。このWWNは、各ベンダが固有に割り当て可能な部分と、ベンダを識別するためにIEEE(Institute of Electrical and Electronics Engineers)から割り当てられた部分、それにデバイスごとに固有の値という3つの部分から構成されます。この値を使用して、「ゾーン」というセキュリティ・グループを構成できます。一方、動的ネイティブ・アドレス(ポート・アドレス)は8bitsまたは24bitsの長さがあり、FC-ALやファブリックにログインする際に自動的に割り当てられます。ファブリックに接続可能なデバイスは24bitsのアドレス空間をサポートし、ループに接続されるデバイスは8bitsのアドレス空間を使用します。
IPはパケット単位でデータを伝送しますが、ファイバ・チャネルでデータを伝送する最小単位は「フレーム」です。フレームは可変長で最大2148bytesの長さを持ち、1フレーム当たり2112bytesまでのデータを送信することができます。フレームの最初と最後には、SOF(Start Of Frame)オーダード・セットと、EOF(End Of Frame)オーダード・セットがそれぞれ挿入されます。複数のフレームが集まって、コネクションの確立やデータの送信などといった1つのコマンドの単位となっているものが、「シーケンス」です。シーケンスが複数集まって1つのトランザクションになります。このトランザクションの単位を「エクスチェンジ」といいます。トランザクションは、データの読み込みや書き込みといった、データI/Oの単位です(図9)。
あるデバイスがファブリックに接続して対象となるデバイスと通信するためには、いくつかの手続きを踏む必要があります。ここでは、それらの手続きの流れを説明していきます(図10)。
IPネットワークでは、静的にIPアドレスを割り振ったり、DHCPによって動的にアドレスを割り当てることもできますが、ファイバ・チャネルの場合は、大抵動的にアドレスを割り当てることになります。この割り当て手順を「ファブリック・ログイン」といい、「FLOGI」と表します。FLOGIの後、各デバイスはサポートするサービス・クラスなどをネーム・サーバに登録します。上記で説明したとおり、一般的にはネーム・サーバの機能はファイバ・チャネル・スイッチに含まれています。この手順を「N_Portログイン」といい、「PLOGI」と表します。さらにターゲットのデバイスに対してもPLOGIを行うことによって、FC-2レイヤの通信を確立します。
この後、FC-4レイヤで「プロセス・ログイン(PRLI)」を行います。これは、FC-4レイヤでのパラメータの受け渡しで、上位プロトコルに依存します。PRLI完了後、実際の通信を行うことが可能になります。大抵の場合は、これら一連の手順はすべて自動的に行われるため、ユーザーが特に処理の内容を意識する必要はありません。
以上、見てきたように、ファイバ・チャネルとTCP/IP、イーサネットの間には多くの点で違いがあります。従って、データ特性の違いによって、必要に応じて使い分けることが重要です。次章では、ケース別にSANの導入事例を紹介していきましょう。SANをどのような用途に用いると効果が高いのかが見えてくるはずです。
Copyright © ITmedia, Inc. All Rights Reserved.