JP4484597B2 - ストレージ装置及びストレージ装置の排他制御方法 - Google Patents

ストレージ装置及びストレージ装置の排他制御方法 Download PDF

Info

Publication number
JP4484597B2
JP4484597B2 JP2004189600A JP2004189600A JP4484597B2 JP 4484597 B2 JP4484597 B2 JP 4484597B2 JP 2004189600 A JP2004189600 A JP 2004189600A JP 2004189600 A JP2004189600 A JP 2004189600A JP 4484597 B2 JP4484597 B2 JP 4484597B2
Authority
JP
Japan
Prior art keywords
management table
information
iscsi
identification information
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004189600A
Other languages
English (en)
Other versions
JP2006011932A (ja
Inventor
芳夫 光岡
直樹 二渡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004189600A priority Critical patent/JP4484597B2/ja
Publication of JP2006011932A publication Critical patent/JP2006011932A/ja
Application granted granted Critical
Publication of JP4484597B2 publication Critical patent/JP4484597B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ装置及びストレージ装置の排他制御方法に関し、特に、それぞれ異なる種類のプロトコルを用いて論理ボリュームへのアクセスが可能なストレージ装置及びストレージ装置の排他制御方法に関する。
ストレージ装置は、例えば、ハードディスクドライブや半導体メモリ装置等の記憶デバイスをアレイ状に配設して構成される。ストレージ装置は、例えば、RAID1やRAID5等のようなRAID(Redundant Array of Independent Inexpensive Disks)に基づく論理的な記憶領域を提供する。この論理的な記憶領域は、論理ボリューム(LU:Logical Unit)とも呼ばれる。
ホストコンピュータは、ストレージ装置の通信ポートを介して論理ボリュームにアクセスし、データの読み書き(I/O)を行う。ホストコンピュータは、データの整合性等を維持するために、論理ボリュームをリザーブして、排他的に論理ボリュームを使用する場合がある。論理ボリュームの使用を終えた場合、ホストコンピュータは、リザーブ状態を解除する。
ここで、特定のホストコンピュータのみを特定の論理ボリュームにアクセス可能とさせる技術としては、LUN(Logical Unit Number)セキュリティが知られてる(特許文献1,特許文献2)。この技術では、各ホストコンピュータ(ホストバスアダプタ)に設定されたWWN(World Wide Name)とLUNとを対応付けて管理する。そして、ホストコンピュータがアクセスを要求した場合に、そのWWNと所望のLUNとが対応付けられているか否かを検査し、対応付けられている場合には、アクセスを許可する。
特開2001−265655号公報 特願平10−333839号公報
ところで、ストレージ装置としては、前記文献に記載されているように、ファイバチャネルプロトコルと呼ばれるシリアルSCSI(Small Computer System Interface)を利用するSAN(Storage Area Network)が知られている。SANは、ホストコンピュータへの依存度を低下させ、複数のホストコンピュータがネットワークを介してストレージを共有するために開発された共有ストレージである。SANでは、光ファイバやメタルケーブルを介して、ブロック単位で多量のデータ転送を行うことができる。
一方、汎用のコンピュータ通信の分野では、IP(Internet Protocol )ネットワークを介して、データ転送を行う技術が発展している。このような汎用のデータ通信では、例えば、インターネット等として知られているように、TCP/IP(Transmission Control Protocol/Internet Protocol)パケットを用いて、複数のノード間でデータを転送する。
汎用のインターネット技術を用いても、データ転送を行うことはできるが、SANのようなブロックレベルの転送を行うことはできない。しかし、近年では、インターネット技術を利用して、遠隔のノード間でブロックレベルの転送を可能とするiSCSI_SANが提案されている。iSCSI(Internet SCSI)では、SCSIコマンドやデータをTCP/IPパケットに包み込み、このパケットをIPネットワークを介して転送させる。このiSCSIに対し、従来のSANは、ファイバチャネルSAN(FC_SAN)とも呼ばれる。iSCSIの登場は、IPネットワークへのストレージの直接接続を可能とし、ルータやスイッチ等の既存のIPネットワーク製品の有効利用を可能とする。
ここで、FC_SANとiSCSI_SANとは、それぞれプロトコルが相違するため、例えば、論理ボリュームの排他制御を行う場合のホストコンピュータ(イニシエータ)の特定方法が問題となる。各通信プロトコルは、それぞれホストコンピュータの識別方法が異なるためである。
もしも、単純に、ファイバチャネルプロトコルとiSCSIとを併存させる場合は、ファイバチャネルプロトコル用のホストコンピュータ識別処理とiSCSI用のホストコンピュータ識別処理とをそれぞれ独立させて構築することになる。しかし、ストレージ装置は、年々大容量化・高性能化が進んでおり、数千個の論理ボリュームを備え、かつ、数百台のホストコンピュータと接続可能なものも珍しくはない。従って、各通信プロトコル用にそれぞれ排他制御システムを構築すると、必要なデータサイズが膨大となり、ストレージ装置のメモリ資源を圧迫する。
本発明は、上記の問題点に鑑みてなされたもので、その一つの目的は、異なるプロトコルに共通して、上位装置と論理ボリュームとの対応関係を管理することができるストレージ装置及びストレージ装置の排他制御方法を提供することにある。本発明の一つの目的は、必要なデータサイズを小さくして、異種プロトコルに共通する論理ボリュームの排他制御を実現できるようにしたストレージ装置及びストレージ装置の排他制御方法を提供することにある。本発明のさらなる目的は、後述する実施の形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明のストレージ装置は、複数の異なるプロトコルで共通に使用されるためのアクセス管理情報を備えている。即ち、本発明のストレージ装置は、第1プロトコルに基づいて、少なくとも一つ以上の第1上位装置の通信ポートとの間のデータ授受を制御する第1上位インターフェース制御部と、第2プロトコルに基づいて、少なくとも一つ以上の第2上位装置の通信ポートとの間のデータ授受を制御する第2上位インターフェース制御部と、少なくとも一つ以上の記憶デバイスとのデータ授受を制御する下位インターフェース制御部と、第1,第2上位インターフェース制御部及び下位インターフェース制御部により共用されるメモリ部と、記憶デバイス上に設けられた少なくとも一つ以上の論理ボリュームと、第1,第2上位装置の各通信ポートと論理ボリュームとを対応付けて構成されるアクセス管理情報を記憶するアクセス管理情報記憶部と、アクセス管理情報を参照することにより、第1,第2上位装置から論理ボリュームに対するアクセス要求の実行可否を制御するアクセス制御部と、を備える。
ここで、第1プロトコルと第2プロトコルとは、共通のコマンド体系を有し、互いに関連性のあるプロトコルとして構成することができる。その一つの例として、例えば、第1プロトコルはファイバチャネルプロトコルであり、第2プロトコルはiSCSI(Internet SCSI)プロトコルである。
アクセス管理情報は、それぞれ異なる第1,第2プロトコルに基づいてデータ転送を行う第1,第2上位装置の各通信ポートと、論理ボリュームとを対応付けることにより構成される。そして、アクセス制御部は、各プロトコルに共通のアクセス管理情報を参照し、上位装置からのアクセス要求を許可するか否かを制御する。これにより、各プロトコル毎にそれぞれ個別にアクセス管理用の情報を備える場合に比べて、必要なデータサイズを小さくすることができ、またアクセス管理の構造を簡素化することができる。
アクセス管理情報は、論理ボリュームを識別するボリューム識別情報と第1上位装置の通信ポートを識別する第1ポート識別情報とを対応付けた第1管理情報と、第2上位装置の通信ポートを識別する第2ポート識別情報を記憶する第2管理情報とを、関連付けることにより構成することができる。
ここで、例えば、第1ポート識別情報と外形的には共通のデータ構造を備えた疑似第1ポート識別情報を第1管理情報に記憶させることにより、第1管理情報と第2管理情報とを対応付けてもよい。例えば、疑似第1ポート識別情報は、無効な第1ポート識別情報として取り扱われるように、第1ポート識別情報の生成規則とは別の規則に基づいて生成することができる。仮に、第1ポート識別情報をWWN、第2ポート識別情報をiSCSI_NAMEとすると、第1管理情報から第2管理情報に誘導するために、第2管理情報に関連づけられるWWNは、疑似WWNとする。
疑似WWNは、WWNと外形上のデータ構造(例えばデータサイズ等)のみが共通し、実体は相違する情報である。例えば、正規の規則に従うWWNは、上位4バイト及び下位4バイトの合わせて合計8バイトの中に、有意なビットがセットされる。これに対し、疑似WWNでは、例えば、上位4バイトにヌルデータをセットする。疑似WWNの下位4バイトには、例えば、第2管理情報におけるiSCSI_NAMEの登録位置(エントリ位置、エントリ番号)をセットする。疑似WWNは、WWN解釈上無効なものとして取り扱われる。無効なWWNの場合に、アクセス制御部が第2管理情報を参照するように構成すれば、第1プロトコルに関する第1管理情報の仕組みをそのまま利用し、若干の構成を加えるだけで第2プロトコルによるアクセス管理を行うことができる。
本発明に従うストレージ装置及びストレージ装置の排他制御方法を構成する各機能、手段、ステップの全部または一部は、コンピュータプログラムから構成可能である。このコンピュータプログラムは、例えば、ハードディスクや半導体メモリまたは光ディスク等の記憶媒体に固定して流通することができる。あるいは、このコンピュータプログラムは、インターネット等の通信ネットワークを介して配信することもできる。
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態では、詳細はさらに後述するが、第1プロトコルに基づいて、少なくとも一つ以上の第1上位装置の通信ポートとの間のデータ授受を制御する第1上位インターフェース制御部と、第2プロトコルに基づいて、少なくとも一つ以上の第2上位装置の通信ポートとの間のデータ授受を制御する第2上位インターフェース制御部と、少なくとも一つ以上の記憶デバイスとのデータ授受を制御する下位インターフェース制御部と、第1,第2上位インターフェース制御部及び下位インターフェース制御部により共用されるメモリ部と、記憶デバイス上に設けられた少なくとも一つ以上の論理ボリュームと、を備えたストレージ装置を用いる。
そして、このストレージ装置では、第1,第2上位装置の各通信ポートと論理ボリュームとを対応付けて構成される共通のアクセス管理情報を保持するステップと、保持された共通のアクセス管理情報を参照することにより、第1,第2上位装置から論理ボリュームへのアクセス要求の実行可否を判断するステップと、アクセス要求の実行が許可された場合は、アクセス要求の内容に応じた処理を実行するステップと、を実行することにより、異種プロトコル間で共通する論理ボリュームの排他制御を実現する。
図1は、本実施形態の全体概念を示す説明図である。このストレージシステムは、複数のホストコンピュータ(以下、「ホスト」)1A,1Bと、これら各ホスト1A,1Bにより利用されるストレージ装置3とを備えている。ホスト1Aは、複数の通信ポート1C(ホストバスアダプタ)を備えており、ネットワーク2A(FC_SAN)を介して、ストレージ装置3と接続されている。ホスト1Bは、複数の通信ポート1D(ネットワークカード)を備えており、ネットワーク2B(iSCSI_SAN)を介して、ストレージ装置3と接続されている。以下、通信ポートを「ポート」と略記する。
ストレージ装置3は、ファイバチャネルプロトコルに基づいて、ホスト1Aの複数のポート1Cとの間のデータ授受をそれぞれ制御するチャネルアダプタ(以下、「CHA」)4Aと、iSCSIに基づいて、ホスト1Bの複数のポート1Dとの間のデータ授受をそれぞれ制御するCHA4Bと、各ディスクドライブ8とのデータ授受をそれぞれ制御する複数のディスクアダプタ(以下、「DKA」)7と、各CHA4A,4B及び各DKA7により共用される共有メモリ5及びキャッシュメモリ6と、各ディスクドライブ8の記憶領域上に設定された複数の論理ボリューム(以下、「LU」)9A,9Bとを備えている。CHA4Aは、各ポート1Cに対応する複数のポート4A1を備え、CHA4Bは、各ポート1Dに対応する複数のポート4B1を備えている。
なお、図示を省略しているが、各ホスト1A,1B間は、例えば、LAN(Local Area Network)、WAN(Wide Area Netwrok)、インターネット等の通信ネットワークを介して双方向のデータ通信可能に接続することができる。
共有メモリ5には、論理ボリューム9A,9Bへのアクセス管理を行うためのテーブル5A,5B及び5Cがそれぞれ予め記憶されている。テーブル5Aには、例えば、LUNやLU番号等のような各LU9A,9Bをそれぞれ識別するための情報が記憶されており、テーブル5Bには、例えば、WWN等のような各ポート1C,1Dをそれぞれ識別するための情報が記憶されている。
ここで、各ポート1Cは、FC_SANを利用して通信を行うため、WWNにより一意に特定することができる。これに対し、各ポート1Dは、iSCSI_SANを利用して通信を行うため、WWNを用いて特定することができない。
そこで、本実施形態では、iSCSI_NAMEを採用する。iSCSI_NAMEは、世界中で一意に特定できる情報であり、iSCSIノードの設置場所に依存せず、その全生涯にわたって不変の情報である。iSCSI_NAMEには、2種類のものが規定されている。その一つは、IQNと呼ばれるもので、IPドメイン名を使用したiSCSI Qualified Nameである。他の一つは、EUIと呼ばれるもので、IEEE(the Institute of Electrical and Electronic Engineers )の64ビットExtended Unique Identifierを使用したIEEE EUI-64 Formatを使用する。いずれの場合も世界で一意、生涯不変の名称であり、テキストフォーマットで記述される。
しかし、WWNのデータサイズとiSCSI_NAMEのデータサイズとは相違する。WWNが8バイトであるのに対し、iSCSI_NAMEは、その規格上の最大サイズが223バイトとなっている。テーブル5Bのデータ登録サイズをiSCSI_NAMEに合わせて223バイトとすることも考えられる。しかし、この場合は、テーブル5Bのサイズが大きくなり、また、無駄な領域も増加する。何故なら、このストレージシステムでは、FC_SANとiSCSI_SANとが混在しており、全てのノード(イニシエータ)がiSCSI_NAMEを有しているわけではないためである。また、テーブル5Bの構造変化は、FC_SANに対応する他の各部(テーブルやプログラム)の変更を引き起こすため、コストも増大する。
そこで、本実施形態では、FC_SANに対応して構築された既存の枠組みをできるだけ変化させることなく利用すべく、新たなテーブル5Cを導入し、このテーブル5Cとテーブル5Bとを対応付ける。
つまり、WWNを管理するテーブル5B内に、テーブル5Cへのポインタを含め、iSCSI_NAMEはテーブル5Cで管理する。テーブル5Bに登録されるテーブル5Cへのポインタは、WWNのような形態で記述されるが、WWNの生成規則に準拠していないため、有効なWWNとして扱われることはない。従って、FC_SAN用のCHA4Aがテーブル5Bを参照した場合に、テーブル5Cへのポインタとしての疑似WWNを誤って解釈するおそれはない。一方、iSCSI_SAN用のCHA4Bは、テーブル5Bを参照して無効な疑似WWNを発見すると、この疑似WWNに誘導されてテーブル5Cを参照し、目的とするiSCSI_NAMEを検出する。
このようにして、ストレージ装置3は、それぞれ異なるプロトコルに従うホスト1A,1Bからの論理ボリューム9A,9Bに対するアクセスを制御することができる。従って、例えば、ホスト1Aは一方の論理ボリューム9Aを排他的に使用可能であり、ホスト1Bは他方の論理ボリューム9Bを排他的に使用可能である。これに限らず、後述の実施例からも明らかなように、各ホスト1A,1Bが一つまたは複数の論理ボリュームを共有することもできる。
以上のように、本実施形態では、FC_SAN用に構築された既存のアクセス管理システムをそのまま利用し、比較的低コストかつ簡素な構成で、iSCSI用のアクセス管理まで拡張することができる。以下、本実施形態の詳細をさらに説明する。
図2は、ストレージシステムの全体構成の概略を示すブロック図である。このシステムは、後述のように、複数のホスト10A,10Bと、少なくとも一つ以上のストレージ装置100とを備えている。
各ホスト10A,10Bは、例えば、サーバ、パーソナルコンピュータ、ワークステーション等として実現されるものである。各ホスト10A,10Bは、図外に位置する複数のクライアント端末と図示せぬ通信ネットワークを介して接続されており、各クライアント端末に情報処理サービスを提供する。
ホスト10Aは、例えば、アプリケーションプログラム(以下、「アプリケーション」)群11Aと、パス管理プログラム12Aと、複数のホストバスアダプタ(以下、「HBA」)13Aとを備えて構成することができる。同様に、ホスト10Bも、アプリケーション群11Bと、パス管理プログラム12Bと、複数のHBA13Bとを備えて構成可能である。
アプリケーション群11A,11Bは、例えば、各種のデータベースソフトウェア等のような、ストレージ装置3の記憶するデータを利用する情報処理プログラムである。パス管理プログラム12A,12Bは、例えば、各HBA13A,13Bを流れるデータ量を制御したり(ロードバランス機能)、各HBA13A,13Bのいずれかに障害が発生した場合に通信ルートを切り換える(フェイルオーバ機能)。即ち、パス管理プログラム12A,12Bは、通信パスを制御する。
HBA13Aは、ファイバチャネルプロトコルに基づいたデータ転送を行うものであり、HBA13Bは、iSCSIに基づいたデータ転送を行うものである。HBA13Bは、後述のように、SCSIコマンドやデータをTCP/IPパケットに包み込んだり、TCP/IPからSCSIコマンドを取り出したりする。このように、HBA13Bは、HBA13Aに比べて、その処理負荷が大きいため、TCP/IPのプロトコル処理を専門に行うTCP/IPオフロードエンジン(TOE)を搭載するのが好ましい。なお、図中では、FC_SANに参加するホスト10AとiSCSI_SANに参加するホスト10Bとを、それぞれ1台ずつ示しているが、これに限らず、各ホスト10A,10Bをそれぞれ複数ずつ設けることができる。
ホスト10Aとストレージ装置100とを接続するネットワークCN2Aは、FC_SANとして構成される。ホスト10Bとストレージ装置100とを接続するネットワークCN2Bは、iSCSI_SANとして構成される。iSCSI_SANでは、IPネットワークを利用してブロックレベルのデータ転送を行う。
ストレージ装置100は、それぞれ後述するように、少なくとも一つ以上のファイバチャネル用CHA(以下、「CHF」)110Aと、少なくとも一つ以上のiSCSI用CHA(以下、「CHI」)110Bと、複数のDKA120と、ディスクドライブ130と、キャッシュメモリ140と、共有メモリ150と、スイッチ部160と、サービスプロセッサ(以下、「SVP」)170とを備えている。
CHF110Aは、ホスト10Aとの間のデータ転送を制御するもので、複数のポート111Aを備えている。ストレージ装置100には、複数のCHF110Aを設けることができる。同様に、CHI110Bは、ホスト10Bとの間のデータ転送を制御するもので、複数のポート111Bを備えている。ストレージ装置100には、複数のCHI110Bを設けることができる。CHF110A,CHI110Bの詳細はさらに後述するが、両者は、外部ネットワークCN2A,CN2Bに関するプロトコル処理の点で相違するだけであり、ストレージ装置100内での処理は共通する。
各DKA120は、各ディスクドライブ130との間のデータ通信をそれぞれ制御するものである。各DKA120と各ディスクドライブ130とは、例えば、SAN等の通信ネットワークCN3を介して接続されており、ファイバチャネルプロトコルに従ってブロック単位のデータ転送を行う。CHF110A,CHI110Bも同様であるが、各DKA120は、例えば、プロセッサやメモリ等が実装されたプリント基板と、メモリに格納された制御プログラム(いずれも不図示)とをそれぞれ備えており、これらのハードウェアとソフトウェアとの協働作業によって、それぞれ所定の機能を実現する。
各ディスクドライブ130は、例えば、ハードディスクドライブ(HDD)、半導体メモリ装置、光ディスク装置、光磁気ディスク装置等として実現可能である。記憶方式の異なるディスクドライブを混在させてもよい。各ディスクドライブ130は、物理的な記憶デバイスである。RAID構成等によっても相違するが、例えば、4個1組のディスクドライブ130でRAIDグループ131が構築され、このRAIDグループ131上に、仮想的な記憶領域であるLU132A,132Bを設定することができる。
なお、ストレージ装置100の有する記憶資源が、全てストレージ装置100内に存在している必要性は必ずしもない。ストレージ装置100は、例えば、ストレージ装置100の外部に存在する記憶資源のLUNを自己のLUNやLUにマッピングすることにより、外部記憶資源をあたかも自己の記憶資源であるかのように取り込むことができる。
キャッシュメモリ140は、例えば、ユーザデータ等を記憶するものである。キャッシュメモリ140は、例えば、揮発または不揮発のメモリから構成される。ホスト10A,10Bから書き込まれたデータ(ライトデータ)や、各ホスト10A,10Bに読み出されたデータ(リードデータ)は、キャッシュメモリ140を介して、受け渡されるようになっている。
共有メモリ(または制御メモリ)150は、例えば、揮発または不揮発のメモリから構成される。共有メモリ150には、例えば、制御情報や管理情報T等が記憶される。共有メモリ150及びキャッシュメモリ140は、それぞれ複数個設けることができる。また、同一のメモリ基板にキャッシュメモリ140と共有メモリ150とを混在させて実装することもできる。あるいは、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。
スイッチ部160は、各CHF110A,CHI110Bと、各DKA120と、キャッシュメモリ140と、共有メモリ150とをそれぞれ相互に接続する。スイッチ部160は、例えば、超高速クロスバスイッチ等として構成可能である。
SVP170は、例えば、LAN等の内部ネットワークCN4を介して、各CHF110A,CHI110B及び各DKA120とそれぞれ接続可能である。これに限らず、SVP160をCHF110AまたはCHI110Bのいずれか一方または双方にのみ接続し、CHF110AまたはCHI110Bのいずれかを介して、内部の状態を示す情報を収集するように構成してもよい。SVP170は、例えば、LAN等の通信ネットワークを介して、複数の管理端末(いずれも不図示)に接続可能であり、ストレージ装置100内で収集した各種の情報を、生のままで、あるいは統計的に処理した上で、外部の管理端末に提供することができる。
図3は、CHI110Bの概略構成を示すブロック図である。CHI110Bは、例えば、iSCSIポート制御部111B(図2中では、単に「ポート」として述べた)と、チャネルプロセッサ(以下、「CHP」)112と、ローカルメモリ113と、マイクロプログラムアダプタ(以下、「MPA」)114と、データ転送アダプタ(以下、「DTA」)115とを備えて構成することができる。なお、図中では、一つのiSCSIポートに関連する構成のみを示しているが、実際には複数のポートを備えることができる。
iSCSIポート制御部111Bは、外部のネットワークCN2Bで使用される外部プロトコルとしてのTCP/IPと、ストレージ装置100の内部でデータ転送に使用される内部プロトコルとしてのファイバチャネルプロトコルとの変換処理を担当する。
CHP112は、CHI110Bの全体的な制御を行うもので、例えば、リードコマンドやライトコマンド等のSCSIコマンドを処理する。iSCSIポート制御部111BによりTCP/IPパケット内から取り出されたSCSIコマンドは、CHP112からMPA114を介して、共有メモリ150に記憶される。DKA120は、共有メモリ150を随時参照しており、未処理のコマンドを発見すると、そのコマンドを処理する。DKA120による処理結果は、共有メモリ150からMPA114を介して、CHP112に報告される。
iSCSIポート制御部111BによりTCP/IPパケットから取り出されたライトデータは、CHP112からDTA115を介して、キャッシュメモリ140に記憶される。また、DKA120によりディスクドライブ130から読み出されたリードデータは、キャッシュメモリ140に記憶される。このリードデータは、キャッシュメモリ140からDTA115を介して、CHP112に読み込まれる。
ローカルメモリ113は、例えば、不揮発メモリから構成される。ローカルメモリ113には、iSCSIポート制御部111BまたはCHP112により使用される管理情報や制御情報が格納されている。幾つかを紹介すると、例えば、ローカルメモリ113には、インデックステーブルT1Bと、KEYテーブルT2Bと、iSCSI_NAMEテーブルT3Bと、リソーステーブルT4B等を記憶させることができる。ここで、インデックステーブルT1Bは、後述するインデックステーブルT1の一部がコピーされたものである。同様に、KEYテーブルT2BはKEYテーブルT2の、iSCSI_NAMEテーブルT3BはiSCSI_NAMEテーブルT3の、それぞれ必要な一部をコピーしたものである。
即ち、共有メモリ150に記憶されたテーブルT1〜T3等のうち、そのCHI110Bで使用する可能性のあるデータのみがローカルメモリ113にコピーされる。ローカルメモリ113内のコピーデータは、適当なタイミングで更新される。なお、リソーステーブルT4Bは、HBA13Bに割り当てられたリソースを管理するテーブルである。
図4は、CHF110Aの概略構成を示すブロック図である。図3で述べたと同様に、図中では、一つのポートに関連する構成に注目して説明するが、実際には複数のポートを備えることができる。
CHF110Aは、FCポート制御部111Aと、CHP112と、ローカルメモリ113と、MPA114と、DTA115とを備えている。CHF110AとCHI110Bとを比較すると、CHF110Aでは、iSCSIポート制御部111Bに代えて、FCポート制御部111Aが設けられている。FCポート制御部111Aは、ファイバチャネルプロトコルを制御する。CHF110Aのローカルメモリ113には、CHI110Bのそれとほぼ同様に、インデックステーブルT1Aと、KEYテーブルT2Aと、WWNテーブルT3Aと、リソーステーブルT4Aとがそれぞれ記憶されている。ここで、各テーブルT1A,T2A及びT4Aは、上述した各テーブルT1B,T2B及びT4Bと同様のため、説明を省略する。
WWNテーブルT3Aは、iSCSI_NAMEテーブルT3の一部ではなく、各CHF110Aが各FCイニシエータのWWNを管理するために用いるテーブルである。WWNテーブルT3Aは、例えば、WWNとS_IDとLUN等を対応付けることにより構成することができる。これ以外の構造で生成することもできる。
次に、ファイバチャネル及びiSCSIの両プロトコルについて簡単に説明する。まず、図5は、ファイバチャネルのレイヤ構成を示す説明図である。ファイバチャネルは、下から順番に、FC−0層、FC−1層、FC−2層、FC−4層から構成される。なお、FC−3層は、共通サービスを規定する層であるが、まだ標準化されていない。
FC−0層は、光ファイバケーブル、メタルケーブル、コネクタ等の物理メディアや、伝送速度、距離及び信号処理等を規定する。
FC−1層は、8B/10B符号化方式として知られているように、データの符号化/復号化等を規定する。
FC−2層は、最小の伝送単位であるフレームの組立とフロー制御、データ伝送手順等を規定する。フロー制御は、例えば、クラス1,2,3,4,5,6,F等に分類されたサービスクラスによって規定される。比較的よく使用されるのは、クラス2,クラス3,,クラスFである。幾つかのクラスについて簡単に説明する。
クラス1は、2つのポート間で物理帯域を全て使用可能なサービスであり、他のクラスに比べて、データ転送量が最大となる。クラス2では、2つのポートが物理帯域を占有することなくデータ伝送を行う。クラス2で接続された2つのポートのいずれか一方に対し、別のポートがクラス2で接続可能である。クラス2では、フレーム単位でデータの受信確認及び内容確認(ACK)を行う。
これに対し、クラス3では、クラス2とは異なり、フレームの受信は確認するが、内容の確認までは行わない。クラス3では、送信エラーの処理は、上位層(FC−4)に委ねられる。原理上、クラス3は、クラス2に比べると通信品質が低下する。しかし、ファイバチャネルでは、FC−1層において8B/10B符号化方式を採用し、ビットエラーレート(BER)を低く抑えているため、実用上の問題はない。クラス3では、ACKフレームによる確認を省略する分だけ、クラス2よりも高速なデータ伝送を実現できる。
クラスFは、ファブリックトポロジの制御用データを伝送するために使用される。ファブリックスイッチ(FCスイッチ)同士をEポート(Expansion Port)を介して接続する場合、Eポート間のデータ伝送は、クラスFに従う。
FC−3層は、ネームサービスやマルチキャスト等のファブリックサービスを規定する層である。
FC−4層は、FCP(Fibre Channel Protocol)やIP、FICON(Fibre Connect)等の上位プロトコルへのマッピングを担当する層である。
図5に示すように、ファブリックトポロジの場合、ホストとストレージ装置との間に、ファブリックスイッチが介在し、各Nポート(Node Port)は、FC−0層でそれぞれ接続される。各FC−0層は独立しているため、一方が光ファイバケーブル、他方がメタルケーブルであってもデータ転送を行うことができる。
図6は、データ構造を示す説明図である。一連の仕事を行う複数のフレーム210から一つのシーケンス200が構成される。図示を省略するが、一群のシーケンス200により、一つのエクスチェンジが構成される。例えば、ストレージ装置100から一連のデータを読み出す一つのリードオペレーションは、一つのエクスチェンジに相当する。
フレーム210は、ファイバチャネルの最小伝送単位である。一つのフレーム210は、フレーム開始を示すSOF(Start of Frame)211と、ヘッダ212と、データフィールド213と、CRC(Cyclic Redundancy Check)214と、フレーム終了を示すEOF(End of Frame)215とから構成される。ここで、SOFは4バイト、ヘッダは24バイト、データフィールド213は可変長であるが最大値は2112バイト、CRCは4バイト、EOFも4バイトである。
ヘッダ212には、例えば、相手先アドレスであるD_ID(Destination_ID)212Aと、発信元アドレスであるS_ID(Source_ID)212Bと、F_CTL(Frame Control)212Cと、SEQ_ID(Sequence_ID)212Dと、SEQ_CNT(Sequence_Count)212E等が含められる。この他、エクスチェンジID等もヘッダ212に含まれるが省略する。
図7は、iSCSIのレイヤ構造を示す説明図である。下から順番に、物理層及びデータリンク層、IP層、TCP層、iSCSI層、SCSI層、SCSIアプリケーション層を積み上げて構成される。
IP層では、IPアドレスを指定したデータ転送が行われ、TCP層ではTCPポート番号を指定したデータ転送が行われる。iSCSI層では、iSCSI_NAMEを指定したデータ転送が行われ、SCSI層では、LU番号やLBA(Logical Block Address)を指定したデータ転送が行われる。iSCSI層は、SCSI層とTCP層との間に位置し、SCSIコマンド及びSCSIレスポンスをiSCSI_PDUと呼ばれるカプセルに収め、TCPコネクションによりデータを転送させるものである。
図8は、iSCSIで使用されるデータ構造を示す説明図である。ホストのSCSIアプリケーション層からSCSI層を介して出力されるコマンドは、図8に示すように、コマンド及びデータ(またはコマンドのみ)を含んだコマンドフレーム340である。コマンドフレーム340は、例えば、ライトコマンドまたはリードコマンド等のオペレーションコードが先頭バイトに含まれる6バイトのコマンドフレームである。
このコマンドフレーム340が、iSCSI層に到達すると、iSCSI層は、SCSIコマンドフレームをiSCSI_PDU(Protocol Data Unit)330に変換する。このPDU330がTCP層を通過すると、TCPパケット320に変換され、さらに、このTCPパケット320は、IP層を通過することにより、IPパケット310となる。そして、MAC(Media Access Control)アドレスが付加されて、可変長のMACフレーム300が完成する。データフィールドには、1500バイトのデータを格納可能である。
SCSIコマンドフレーム340は、例えば、ベーシックヘッダセグメント341と、アディショナルヘッダセグメント342と、データセグメント343とを含む。そして、ベーシックヘッダセグメント341には、例えば、オペレーションコード341Aと、データセグメント長341Bと、LUN番号341Cと、イニシエータタスクタグ341Dと、オペレーションコード仕様フィールド341Eとを含めることができる。
図示したプロトコル構成の下では、物理層及びデータリンク層同士、IP層同士、TCP層同士、iSCSI層同士、SCSI層同士、及びSCSIアプリケーション層同士が順にセッションすることにより、ホストから出力されたI/O要求を、ストレージ装置100は処理することができる。
例えば、物理層及びデータリンク層同士のセッションでは、ARP(Address Resolution Protocol)要求とそれに対するARP応答が行われることにより、互いのMACアドレスをそれぞれ取得する。IP層同士のセッションでは、ping要求とそれに対するping応答が行われることにより、互いに、相手(IPアドレス)が存在するかの確認が行われる。
TCP層同士のセッションでは、シーケンス番号を同期させるための3つのパケットが交換される。iSCSI層同士のセッションでは、ログイン要求とそれに対するログイン応答がやり取りされるログインフェーズによって、iSCSIの接続が確立される(例えば、IPアドレス、ログイン要求元ホストのiSCSI_NAME及びTCPポート番号が使用される)。SCSI層同士のセッションでは、例えば、リードコマンドやライトコマンド等のSCSIコマンドがホストからストレージ装置100へ送信される。SCSIアプリケーション層同士のセッションでは、ライトデータがホストからストレージ装置100に送信され、または、リードデータがストレージ装置100からホストへ送信される。
次に、図9〜図15を参照して、論理ボリュームへのアクセス制御(排他制御)を実現するための各テーブルの構造を説明する。
図9には、インデックステーブルT1と、KEYテーブルT2と、iSCSI_NAMEテーブルT3とがそれぞれ示されている。インデックステーブルT1は、例えば、各LUN番号毎に、そのLUNにアクセス可能なHBAが制限されているかを管理する。「1」がセットされている場合は、そのLUNには特定のHBA(イニシエータ)のみがアクセス可能であることを示す。
ここで、各LUN番号毎に、複数列のフラグビットが設けられている。各列の位置は、KEYテーブルT2のエントリ位置に対応する。つまり、インデックステーブルT1の最も左端のビット列は、KEYテーブルT2の一番上のエントリに対応し、以下同様に、インデックステーブルT1のビット列を右に進むに連れて、対応するKEYテーブルT2のエントリ位置が下がっていく。
従って、LUN番号にフラグが立った場合(「1」にセットされた場合)、そのフラグの位置が、KEYテーブルT2の対応エントリを直接的に示す。このようにして、インデックステーブルT1とKEYテーブルT2とは、相互に関連付けられる。
KEYテーブルT2には、そのLUの予約(排他的使用)に用いるキー情報(図中の「KEY1」等)と、そのLUを排他的に使用するHBAを特定するためのWWNとが対応付けられている。
ここで、そのLUにアクセスするHBAがファイバチャネルに従うHBA13Aである場合は、そのLUに対応するエントリ位置に、そのHBA13Aが有するWWNとキー情報とが登録される。一方、そのLUにアクセスするHBAがiSCSIに従うHBA13Bである場合は、そのLUに対応するエントリ位置に、そのHBA13Bに間接的に対応付けられる疑似WWN及びキー情報が登録される。図9に示す例では、WWN1及びWWN4が、疑似WWNである。
疑似WWNとは、WWNと外形上の構造は等しく8バイトのデータサイズを備えるが、正規のWWN生成規則に準拠しない無効な値にセットされている、WWN風の情報であると定義することができる。具体的には、例えば、上位4バイトにヌルデータをセットすることにより、WWNに似せた情報を得ている。疑似WWNの下位4バイトには、iSCSI_NAMEテーブルT3におけるエントリ位置がセットされる。即ち、図示の例では、疑似WWN1の下位4バイトには、iSCSI_NAMET3の1番目のエントリ位置を示す値がセットされる。同様に、疑似WWN4の下位4バイトには、iSCSI_NAMEテーブルT3の4番目のエントリ位置を示す値がセットされる。ここで、KEYテーブルT2とiSCSI_NAMEテーブルT3とを比較すると明らかなように、各テーブルT2,T3のエントリ位置は、それぞれ対応している。つまり、KEYテーブルT2の1番上のエントリ位置にセットされた疑似WWN1に対応するiSCSI_NAMEは、iSCSI_NAMEテーブルT3の一番上のエントリ位置に登録されている。同様に、KEYテーブルT2の上から4番目のエントリ位置にセットされた疑似WWN4に対応するiSCSI_NAMEは、iSCSI_NAMEテーブルT3の4番目のエントリ位置にセットされている。このように、KEYテーブルT2とiSCSI_NAMEテーブルT3とのエントリ位置を対応付けることにより、両テーブルT2,T3を相互に関連付けている。
インデックステーブルT1及びKEYテーブルT2は、FC_SANにおいてLUのアクセスを制御するために設けられたものである。本実施例では、FC_SAN及びiSCSI_SANの両方に対応させるべく、iSCSI_NAMEテーブルT3を導入し、このiSCSI_NAMEテーブルT3をKEYテーブルT2に関連付けている。これにより、FC_SAN用のアクセス制御構成を実質的に変化させることなく、iSCSI_SANに対応可能である。
図10(a)は、リソーステーブルT4を示す。リソーステーブルT4は、例えば、リソース管理番号と、そのリソースを使用するイニシエータとを対応付けることにより、構成される。なお、図中では、イニシエータとしてiSCSI_NAMEを示すが、FC_SANの場合はWWNを用いる。
図10(b)は、LUNとLUとの対応付けを管理するテーブルを示す。このLUN-LUテーブルT5は、例えば、LUN番号とLU番号とを対応付けることにより、構成することができる。各LUは、ストレージ装置100側のリソースLU(または「LDEV」とも呼ぶ)である。各LUは、基本的に、LUNと一対一で対応する。なお、複数のLUを連結して仮想的なLUを構築することもできる。
図11は、アクセス態様を管理するためのテーブルである。図11(a)は、FC_SAN用のアクセス種別管理テーブルT6Aを示す。このテーブルT6Aは、例えば、各イニシエータを特定するWWN毎に、それぞれのイニシエータに許されているアクセス種別が対応付けられている。アクセス種別としては、例えば、リード/ライト共に可能、リードのみ等を挙げることができる。同様に、図11(b)は、iSCSI_SAN用のアクセス種別管理テーブルT6Bを示す。このテーブルT6Bでは、WWNに代えて、iSCSI_NAMEが使用される。
図12は、LUの状態を管理するための制御情報(LDCB)の構成テーブルT7を示している。LDCB(T7)は、例えば、連続番号と、ポート番号と、LUN番号と、LU番号と、リザーブ状態を示すフラグと、リザーブが設定されているパス情報と、パーシステントリザーブ状態を示すフラグと、パーシステントリザーブが設定されているパス情報と、ACA(Automatic Contingent Allegiance)状態を示すフラグと、ACA状態となっているパスの情報と、UA(Unit Attention)状態を示すフラグと、をそれぞれ対応付けて構成することができる。
ここで、ACA状態とは、例えば、あるアクセスパスに障害が発生した場合にそのアクセスパスを使用禁止にするために設定される状態である。ACA状態は、ACA状態を設定したホストからの解除コマンドにより解除可能である。UA状態とは、例えば、ストレージ装置100の起動直後等に設定される状態である。
パーシステントリザーブ状態とは、予め設定された複数のアクセスパスを介して、一つまたは複数のLUをリザーブする状態である。通常のリザーブ状態では、一つのアクセスパスのみから所定のLUにアクセス可能である。パーシステントリザーブ状態では、複数のアクセスパスのそれぞれから所定のLUにアクセスすることができる。例えば、ホスト10A,10Bは、それぞれが有する複数のHBA13A,13Bの全部または一部をパーシステントグループとして使用可能である。グループを構成するHBAは、それぞれ異なるパスを介して、共通のLUにアクセスすることができる。これにより、ホスト内でのフェイルオーバやロードバランスを実現できる。なお、パーシステントリザーブの設定(PGRコマンドの発行)は、パス管理プログラム12A,12Bが実行する。
このように、パーシステントリザーブを設定した場合、そのLUは、所定の複数のイニシエータグループにより共用可能となる。パーシステントリザーブを設定するコマンドを、ここでは、パーシステントグループリザーブコマンド(PGRコマンド)と呼ぶ。LDCB中のパーシステントリザーブに関する領域をPGR領域400と呼ぶ。
図13は、iSCSI_SAN用のPGR領域400のデータ構造を示す説明図である。PGR領域400は、4バイトの幅を有し、例えば、ジェネレーションカウンタ410と、レーザべーションキー420と、タイプコード431と、APTPLビット432と、CHIビット433と、予備フィールド434と、スリープフラグ440と、予備フィールド450と、絶対ポート番号461と、エントリ番号462と、ACA開放フラグ470とを含むことができる。
ここで、CHIビット433は、iSCSI_SANに対応するために、従来予備フィールドであったものに新たに設けられた情報である。CHIビット433に、「1」がセットされた場合(オンの場合)、フィールド461及び462には、図15に示すLDCB用iSCSI_NAMEテーブルT8への参照位置を表す情報が格納されていることを示す。CHIビット433がオフ状態の場合、フィールド450,461及び462には、通常通りのWWNがセットされていることを示す。
先に図14を参照する。図14は、FC_SAN用のPGR領域400を示す。図13と図14とを比較すると明らかなように、FC_SAN用のPGR領域とiSCSI_SAN用のPGR領域とでは、以下の3点で異なる。第1の相違点は、FC_SAN用PGR領域では、CHIビット433がオフ状態にセットされる。第2の相違点は、FC_SAN用PGR領域では、図13中の予備フィールド450にWWNの上位4バイトがセットされる。第3の相違点は、FC_SAN用PGR領域では、図13中の絶対ポート番号461及びエントリ番号462に代えて、WWNの下位4バイトがセットされる。
換言すれば、図14に示す構造が通常の姿であり、本実施例では、iSCSI_SANに対応すべく、使われていなかったフィールドにCHIビット433を新設すると共に、WWNの上位4バイトを予備フィールドとして4バイトのヌルデータをセットし、さらに、WWNの下位4バイトを利用して、LDCB用iSCSI_NAMEテーブルT8へのポインタ情報(2バイトの絶対ポート番号及び2バイトのエントリ番号)を格納している。
CHI110BがPGR領域に情報をセットする場合、WWNの上位4バイトにはヌルデータがセットされる。従って、このPGR領域をCHF110Aが参照した場合、無効なWWNであると認識される。
図15は、LDCB用iSCSI_NAMEテーブルT8を示す。このテーブルT8は、例えば、各絶対ポート番号毎に、そのポートに属す可能性のあるiSCSI_NAMEが全て対応付けられている。従って、絶対ポート番号とそのポート番号におけるエントリ位置とを指定するだけで、テーブルT8のどこを参照すればよいかが理解できる。例えば、パーシステントリザーブを設定するHBA13Bが、絶対ポート番号1を利用するiSCSI_NAME[2]である場合は、絶対ポート番号として「1」を、エントリ番号として「3」を、それぞれのフィールド461,462にセットすることにより、PGR領域400とテーブルT8とを関連付けることができる。
なお、上述した各テーブルT1〜T8等は、共有メモリ150に記憶される。そして、各テーブルT1〜T8等のうち、各CHF110A,各CHI110Bがそれぞれ必要とする所定範囲のデータが、各CHF110A,各CHI110Bのローカルメモリ113にそれぞれコピーされる。
図16〜図19に基づいて、本システムの動作を説明する。図16は、CHI110Bによって、パーシステントリザーブの設定・変更・削除を行う場合の処理を示すフローチャートである。この処理は、主としてCHI110BのCHP112により実行される。
ホスト10Bのパス管理プログラム12Bは、パーシステントグループを構成するHBAと、目的とするLU(LUN)及び使用予定のキー情報とをそれぞれ指定して、PGRコマンドを発行する。既に述べたように、LUNとLUとは対応付けられているので、LUNを指定することは、そのLUNに関連付けられたLUの指定を意味する。CHI110Bは、PGRコマンドを受信すると(S11)、指定されたLUN番号を検索キーとしてインデックステーブルT1を参照する(S12)。
CHI110Bは、指定されたLUNについて、PGRが設定済であることを示すフラグビットがセットされているか否かを判定する(S13)。目的のLUNにフラグがセットされている場合(S13:YES)、CHI110Bは、そのフラグの設定位置に基づいて、KEYテーブルT2の該当箇所を参照し、設定済のキー情報(図中、「KEY」)を取得する(S14)。さらに、CHI110Bは、KEYテーブルT2に登録されている疑似WWNのエントリ位置に基づいて、iSCSI_NAMEテーブルT3を参照し、設定済のiSCSI_NAMEを取得する(S15)。
CHI110Bは、PGRコマンドの発行元ホストから指定されたキー情報とコマンド発行元を特定するiSCSI_NAMEとの組合せが、KEYテーブルT2に登録済のキー情報及びiSCSI_NAMEテーブルT3に登録済のiSCSI_NAMEの組合せに一致するか否かを判定する(S17)。
キー情報及びiSCSI_NAMEの組合せが一致する場合(S17:YES)、CHI110Bは、PGR対象として指定されたLUNについて、インデックステーブルT1にフラグをセットする(S18)。また、CHI110Bは、インデックステーブルT1におけるフラグのセット位置に対応するエントリ位置で、KEYテーブルT2に、ホストから指定されたキー情報を登録する(S19)。また、CHI110Bは、疑似WWNを生成し、これをキー情報に対応付けて、KEYテーブルT2に登録する(S19)。疑似WWNの下位4バイトは、iSCSI_NAMEテーブルT3の参照位置を示す。CHI110Bは、iSCSI_NAMEテーブルの所定の位置に、PGRコマンド発行元を一意に特定するiSCSI_NAMEを登録する(S21)。
一方、前記S13において、指定されたLUNについてインデックステーブルT1にフラグがセットされていないと判定された場合(S13:NO)、S14〜S16をスキップし、S18に移る。また、前記S17において、キー情報及びiSCSI_NAMEの組合せが不一致の場合(S17:NO)、CHI110Bは、PGRコマンドの実行不能をコマンド発行元のホストに通知する(S22)。
図17は、CHF110Aによって、パーシステントリザーブの設定・変更・削除を行う場合の処理を示すフローチャートである。この処理は、主としてCHA110AのCHP112により実行される。
このフローチャート中、S31〜S34,S36〜S39,S41,S42は、上述した図16中のS11〜S14,S16〜S19,S21,S22にそれぞれ対応し、実質的に同一の処理を行う。
但し、S36では、キー情報及びiSCSI_NAMEの組合せに代えて、キー情報及びWWNの組合せが比較される。図17のフローチャートでは、iSCSI_NAMEテーブルT3を扱うステップS25,S40にそれぞれ対応するステップが省略されている。
つまり、本実施例では、FC_SANとiSCSI_SANとの両方で、共通のPGR処理を可能とするが、このために新たに追加されたiSCSI_NAMEテーブルT3は、専らCHI110Bのみに使用され、基本的に、CHF110Aは参照する必要がない。従って、CHF110Aの制御論理を実質的に変化させることなく、iSCSIに対応可能となる。
もしも先に、CHI110Bが同一のLUNに対してPGRを設定していた場合、KEYテーブルT2には疑似WWNが登録されるが、この疑似WWNは上位4バイトにヌルデータがセットされている無効な値である。従って、PGRコマンドの発行元ホストのWWNと疑似WWNとを比較すれば、必ず不一致となる。
なお、パーシステントリザーブを解除する場合は、リリースコマンドを発行する。リリースコマンドが発行された場合、図16,図17で述べたように、キー情報及びiSCSI_NAMEの組合せ、または、キー情報及びWWNの組合せが一致するか否かが判定され、一致する場合は、所定のテーブルからPGRに関する部分が消去される。具体的には、iSCSIの場合、各テーブルT1〜T3,T7(PGR領域400)から、PGRセットフラグ(T1)、キー情報及び疑似WWN(T2)、iSCSI_NAME(T3)、CHIビット,絶対ポート番号及びエントリ番号(PGR領域400)がそれぞれ消去される。これに対し、ファイバチャネルの場合は、各テーブルT1,T2,T7(PGR領域400)から、PGRセットフラグ(T1)、キー情報及びWWN(T3)、WWN(PGR領域400)がそれぞれ消去される。
PGRが設定されたLUに対するアクセス要求の可否は、図16,図17で述べたと同様に、キー情報及びiSCSI_NAMEの組合せ、または、キー情報及びWWNの組合せが一致するか否かが判定され、一致する場合にのみ、アクセスが許可される。そして、リードオンリー等のアクセス種別と照らし合わせて、そのLUへのアクセスが処理される。
図18は、CHI110Bにより実行されるアクセス処理のフローチャートである。図18中のS51〜S57は、図16中のS11〜S17にそれぞれ対応するので説明を省略する。
キー情報及びiSCSI_NAMEの組合せが一致すると判定された場合(S57:YES)、CHI110Bは、アクセス種別管理テーブルT6Bを参照し(S58)、要求されたコマンドの処理が許可されているか否かを判定する(S59)。許可されたコマンドの場合(S59:YES)、CHI110Bは、コマンドに応じた処理を実行させ、コマンド処理の完了を応答する(S60)。
これに対し、許可されていないコマンドの場合(S59:NO)、または、キー情報及びiSCSI_NAMEの組合せが登録済のそれらと一致しない場合(S57:NO)、要求されたコマンドを処理不能である旨ホストに通知する(S61)。
図19は、CHF110Aで実行されるアクセス処理のフローチャートである。このフローチャート中、S71〜S74,S76〜S81は、図18中のS51〜S54,S56〜S61にそれぞれ対応するので、説明を省略する。図19に示す処理では、S55に相当するステップが不要なので廃止されており、また、キー情報及びWWNの組合せが判定される(S76)。
本実施例は上述のように構成したので、以下の効果を奏する。本実施例では、それぞれ使用するプロトコルの異なるホスト10A,10Bの各HBA13A,13BとLUを特定するLUN番号とを対応付けて、アクセス管理情報T1〜T3を生成し、このアクセス管理情報T1〜T3を参照することにより、各HBA13A,13Bが所望のLUにアクセス可能か否かを判別するアクセス制御部(CHP112により実行されるマイクロプログラム)を設けるため、FC用の既存のシステムを大幅に変化させることなく、iSCSIにも対応することができる。
本実施例では、疑似第1ポート識別情報である疑似WWNが、無効なWWNとして取り扱われるように、WWNの正規の生成規則とは別の規則に基づくユニークな値として生成し、KEYテーブルT2に登録する。従って、CHF110Aは、コマンド発行元のWWNとテーブルT2に登録されている疑似WWNとを比較する際に、必ず両者が不一致であると判定する。これにより、CHF110Aの制御論理を実質的に変化させることなく、iSCSIに対応することができる。
図20,図21に基づき、第1実施例の変形例としての第2実施例を説明する。この実施例では、KEYテーブルT2やLDCB(T7)に登録された情報に基づいて、FCイニシエータであるかiSCSIイニシエータであるかを判別する。
例えば、図20に示すように、CHF110AまたはCHI110Bのいずれかまたは双方(以下、「CHF等」)は、KEYテーブルT2を参照してWWNを取得し(S91)、このWWNが有効な値であるか否かを判定する(S92)。CHF等は、有効なWWNの場合(S92:YES)にFCであると判定し(S93)、無効なWWNの場合(S92:NO)にiSCSIであると判定する(S94)。
また、例えば、図21のフローチャートに示すように、CHF等は、LDCBを参照してCHIビットを取得し(S101)、CHIビットがオン状態にセットされているか否かを判定する(S102)。CHF等は、CHIビットがオンの場合(S102:YES)にiSCSIであると判定し(S103)、CHIビットがオフの場合(S102:NO)にFCであると判定する(S104)。
このように、KEYテーブルT2やLDCB(T7)に、iSCSIであるか否かを示すための判別情報を含ませておくことにより、イニシエータの種類を判別できる。
図22,図23は、各ホスト10A,10Bによりクラスタシステムを構成する場合の実施例を示す。
図22のブロック図に示すように、各ホスト10A,10Bのパス管理プログラム12A,12Bには、それぞれクラスタ制御部14A,14B(以下、特に区別しない場合は「クラスタ制御部14」)が設けられている。これら各クラスタ制御部14により、各ホスト10A,10B間では互いに相手先を監視するハートビート通信が行われる。また、各ホスト10A,10Bは、それぞれ複数のHBAを介して、共通のLU132に接続されている。
図23は、異種プロトコルに基づくホストを跨ってフェイルオーバを実行する場合の概略フローチャートである。まず、クラスタ制御部14は、ファイルオーバを実行するか否かを監視し、フェイルオーバの実行時期が到来したか否かを判定する(S111)。
例えば、相手先ノードとのハートビート通信が所定時間以上途絶えた場合、または、相手先ノードからファイルオーバの実行が明示的に要求された場合(計画的な停止)に、フェイルオーバが実行される。
フェイルオーバ先のクラスタ制御部は、相手先ノード(フェイルオーバ元ノード)のネットワーク設定情報を継承し(S112)、相手先ノードに成りかわる。また、クラスタ制御部14は、共有ボリューム132の使用権を確保し(S113)、そのボリューム132を排他的に使用する(S114)。そして、ファイルオーバ先ノード(10Aまたは10Bのいずれか)は、情報処理サービスの提供を再開する(S115)。
この本実施例によれば、各ホスト10A,10B内における各HBA間でのフェイルオーバに加えて、異なる種類のプロトコルを利用するホストへのフェイルオーバも実現可能である。
図24に基づいて第4実施例を説明する。先の実施例では、ホスト間を跨るフェイルオーバについて説明した。これに対し、本実施例では、同一ホスト内に、互いに異なる種類のプロトコルに基づくHBAを設け、これら異種プロトコルをサポートするHBA間で、フェイルオーバを実行する場合を説明する。
図24は、ストレージシステムの全体構成を示す概略ブロック図である。一方のホスト10Aの各HBA13Aのうち、第1HBA〜第3HBAはFC_SANに接続されており、第4HBAはiSCSI_SANに接続されている。他方のホスト10Bも略同様に、各HBA13Bのうち、第2HBA〜第4HBAはiSCSI_SANに接続されており、第1HBAはFC_SANに接続されている。なお、どのHBAをいずれのSANに接続するかは、任意である。また、各ホスト10A,10B内にそれぞれ一つずつ異なる種類のHBAを装着する例を示したが、同一ホスト内にFC用HBAとiSCSI用HBAとをそれぞれ複数ずつ設けることもできる。
図示のように、パス管理プログラム12Aは、クラスタ制御部15Aとパス制御部16Aとを備えている。同様に、パス管理プログラム12Bは、クラスタ制御部15Bとパス制御部16Bとを備えている。各パス管理プログラム12A,12Bは、例えば、自己の管理下にあるパスのいずれかに障害や過負荷状態が発生した場合等に、データ転送に使用するパス(HBA)を切り換える。このパス切換は、パス制御部16A,16Bにより実行される。
例えば、ホスト10Aが、第1HBAからFC_SANを介して、ストレージ装置100とデータを送受信していた場合に、このパスに何らかの障害等が発生したとする。この場合、ホスト10Aのパス管理プログラム12Aは、第2〜第4HBAのいずれかまたは複数のパスに切り換えることができる。例えば、パスが第1HBAから第4HBAに切り換えられた場合、ホスト10Aとストレージ装置100とは、FC_SANに代えて、iSCSI_SAN経由でデータ転送を行うことになる。ホスト10Bの場合も同様である。
ホスト間を跨るフェイルオーバでは、上述のようにハートビート通信の断絶に基づいて実施可能であるが、同一ホスト内でのパス間フェイルオーバの場合は、パス管理プログラム12A,12BがSCSI層での応答を確認することにより、障害等の発生を検出することができ、パス切換を実施可能である。ホスト−ストレージ間のプロトコルがFCまたはiSCSIいずれの場合であっても、ホスト10A,10BにはそれぞれSCSIバスとして認識されるためである。
このように、同一ホスト内に異種プロトコルに基づくイニシエータを混在させ、手動または自動で、これら異種プロトコルに基づくイニシエータ間でのフェイルオーバを実行させることができる。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
本発明の実施形態の全体概念を示す説明図である。 ストレージシステムの全体構成を示すブロック図である。 iSCSI用チャネルアダプタの概略構成を示すブロック図である。 ファイバチャネル用チャネルアダプタの概略構成を示すブロック図である。 ファイバチャネルのレイヤ構造を示す説明図である。 ファイバチャネルのフレーム構造を示す説明図である。 iSCSIのレイヤ構造を示す説明図である。 iSCSIのフレーム構造を示す説明図である。 LUをリザーブするイニシエータを検出するための管理テーブルを示し、(a)はインデックステーブル、(b)はKEYテーブル、(c)はiSCSI_NAMEテーブルの、構成例をそれぞれ示す説明図である。 (a)はリソーステーブルを、(b)はLUN−LU対応管理テーブルの、構成例をそれぞれ示す説明図である。 (a)はファイバチャネルイニシエータのアクセス種別管理テーブルを、(b)はiSCSIイニシエータのアクセス種別管理テーブルを、それぞれ示す説明図である。 LDCBの構成例を示す説明図である。 iSCSIイニシエータにより、パーシステントリザーブが設定された場合のLDCBの様子を示す説明図である。 ファイバチャネルイニシエータにより、パーシステントリザーブが設定された場合のLDCBの様子を示す説明図である。 LDCB用iSCSI_NAMEテーブルを示す説明図である。 iSCSIイニシエータにより、パーシステントリザーブを設定等する場合のフローチャートである。 ファイバチャネルイニシエータにより、 パーシステントリザーブを設定等する場合のフローチャートである。 iSCSIイニシエータによるアクセス処理を示すフローチャートである。 ファイバチャネルイニシエータによるアクセス処理を示すフローチャートである。 ファイバチャネルとiSCSIとを判別するフローチャートである。 ファイバチャネルとiSCSIとを判別する別のフローチャートである。 異なる種類のイニシエータでクラスタシステムを構築するストレージシステムの全体構成図である。 フェイルオーバ処理の概略を示すフローチャートである。 同一ホスト内で異種類のプロトコルに基づくパスを切換可能なストレージシステムの全体構成図である。
符号の説明
1A,1B…ホスト、1C,1D…ポート、2A…FC_SAN、2B…iSCSI_SAN、3…ストレージ装置、4A,4B…チャネルアダプタ、4A1,4B1…ポート、5…共有メモリ、5A,5B,5C…テーブル、6…キャッシュメモリ、7…ディスクアダプタ、8…ディスクドライブ、9A,9B…論理ボリューム、10A,10B…ホスト、11A,11B…アプリケーション群、12A,12B…パス管理プログラム、13A,13B…ホストバスアダプタ、14A,14B,15A,15B…クラスタ制御部、16A,16B…パス制御部、100…ストレージ装置、111A,111B…ポート(ポート制御部)、112…チャネルプロセッサ、113…ローカルメモリ、114…マイクロプログラムアダプタ、115…データ転送アダプタ、120…ディスクアダプタ、130…ディスクドライブ、131…RAIDグループ、132,132A,132B…論理ボリューム、140…キャッシュメモリ、150…共有メモリ、160…スイッチ部、T1…インデックステーブル、T2…KEYテーブル、T3…iSCSI_NAMEテーブル、T4…リソーステーブル、T5…LUN−LU対応管理テーブル、T6A,T6B…アクセス種別管理テーブル、T7…LDCB、400…PGR領域、T8…LDCB用iSCSI_NAMEテーブル

Claims (2)

  1. 第1プロトコルに基づいて、少なくとも一つ以上の第1上位装置の通信ポートとの間のデータ授受を制御する第1上位インターフェース制御部と、
    第2プロトコルに基づいて、少なくとも一つ以上の第2上位装置の通信ポートとの間のデータ授受を制御する第2上位インターフェース制御部と、
    少なくとも一つ以上の記憶デバイスとのデータ授受を制御する下位インターフェース制御部と、
    前記第1,第2上位インターフェース制御部及び前記下位インターフェース制御部により共用されるメモリ部と、
    前記記憶デバイス上に設けられた少なくとも一つ以上の論理ボリュームと、
    前記第1,第2上位装置の前記各通信ポートと前記論理ボリュームとを対応付けて構成されるアクセス管理情報を記憶するアクセス管理情報記憶部と、
    前記アクセス管理情報を参照することにより、前記第1,第2上位装置から前記論理ボリュームに対するアクセス要求の実行可否を制御するアクセス制御部と、
    を備え、
    前記アクセス管理情報は、第1管理テーブルと、この第1管理テーブルに対応付けられる第2管理テーブルと、この第2管理テーブルに対応付けられる第3管理テーブルとを備えて構成され、
    前記第1管理テーブルは、前記論理ボリュームを識別するボリューム識別情報と前記第2管理テーブルの参照位置とを示す情報を対応付けて記憶し、
    前記第2管理テーブルは、前記第1上位装置の前記通信ポートを識別する第1ポート識別情報と排他制御用のキー情報とを対応付けて記憶し、
    前記第3管理テーブルは、前記第2上位装置の前記通信ポートを識別する第2ポート識別情報を記憶し、
    前記第2管理テーブルにおける前記第1ポート識別情報の登録順序に合わせて、前記第2ポート識別情報を前記第3管理テーブルに登録し、
    前記第2管理テーブルには、前記第3管理テーブルの参照位置を示す情報が無効な第1ポート識別情報として取り扱われる形態で含まれている請求項1に記載のストレージ装置。
  2. 前記アクセス管理情報は、上位層側アクセス管理情報と、下位層側アクセス管理情報とを備えており、
    前記上位層アクセス管理情報は、第1管理テーブルと、この第1管理テーブルに対応付けられる第2管理テーブルと、この第2管理テーブルに対応付けられる第3管理テーブルとを備えて構成され、
    前記第1管理テーブルは、前記論理ボリュームを識別するボリューム識別情報と前記第2管理テーブルの参照位置とを示す情報を対応付けて記憶し、
    前記第2管理テーブルは、前記第1上位装置の前記通信ポートを識別する第1ポート識別情報と排他制御用のキー情報とを対応付けて記憶し、
    前記第3管理テーブルは、前記第2上位装置の前記通信ポートを識別する第2ポート識別情報を記憶し、
    前記第2管理テーブルにおける前記第1ポート識別情報の登録順序に合わせて、前前記第2ポート識別情報を前記第3管理テーブルに登録し、
    かつ、前記第3管理テーブルを参照する場合には、前記第3管理テーブルの参照位置を示す情報を、無効な第1ポート識別情報として取り扱われる形態で前記第2管理テーブルに記憶させ、
    前記下位層アクセス管理情報は、第4管理テーブルと、この第4管理テーブルに対応付けられる第5管理テーブルとを備えて構成され、
    前記第4管理テーブルは、前記第5管理テーブルを参照すべきか否かを指定する参照判別情報と、前記第1ポート識別情報または前記第5管理テーブルの参照位置を示す情報のいずれか一つとを対応付けて構成され、
    前記第5管理テーブルは、前記第1,第2上位インターフェース制御部の各通信ポート毎に、該各通信ポートを利用しうる前記第1,第2上位装置の前記第1ポート識別情報または前記第2ポート識別情報のいずれか一方を対応付けて構成されている、
    請求項1に記載のストレージ装置。
JP2004189600A 2004-06-28 2004-06-28 ストレージ装置及びストレージ装置の排他制御方法 Expired - Fee Related JP4484597B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004189600A JP4484597B2 (ja) 2004-06-28 2004-06-28 ストレージ装置及びストレージ装置の排他制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004189600A JP4484597B2 (ja) 2004-06-28 2004-06-28 ストレージ装置及びストレージ装置の排他制御方法

Publications (2)

Publication Number Publication Date
JP2006011932A JP2006011932A (ja) 2006-01-12
JP4484597B2 true JP4484597B2 (ja) 2010-06-16

Family

ID=35779117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004189600A Expired - Fee Related JP4484597B2 (ja) 2004-06-28 2004-06-28 ストレージ装置及びストレージ装置の排他制御方法

Country Status (1)

Country Link
JP (1) JP4484597B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4857055B2 (ja) * 2006-09-08 2012-01-18 株式会社日立製作所 記憶システム及びその制御方法並びに記憶制御装置
JP4869123B2 (ja) * 2007-03-28 2012-02-08 株式会社日立製作所 ストレージシステム
JP5067206B2 (ja) * 2008-03-05 2012-11-07 日本電気株式会社 Jbod装置、コンピュータシステム及びアクセス制御方法
US7991860B2 (en) * 2008-04-07 2011-08-02 Hitachi, Ltd. Method and apparatus for HBA migration
EP2344947B1 (en) * 2009-02-17 2012-07-04 Hitachi, Ltd. Storage controller and method of controlling storage controller
WO2010150321A1 (en) * 2009-06-26 2010-12-29 Hitachi, Ltd. Storage system and controlling methods for the same
CN103384875B (zh) 2011-06-30 2016-02-17 株式会社日立制作所 计算机系统和访问限制方法
US9064106B2 (en) * 2012-04-25 2015-06-23 Hitachi, Ltd. Method and apparatus to keep consistency of ACLs among a meta data server and data servers
WO2016139749A1 (ja) * 2015-03-03 2016-09-09 株式会社日立製作所 計算機システム、及び、記憶制御方法
US10789253B2 (en) 2016-04-27 2020-09-29 Hitachi, Ltd. Computing system and server
US20230177173A1 (en) 2021-12-05 2023-06-08 PUFsecurity Corporation Electronic device and method for performing permission management of storage device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265655A (ja) * 2000-01-14 2001-09-28 Hitachi Ltd 記憶サブシステムのセキュリティシステム
JP2003303053A (ja) * 2002-04-11 2003-10-24 Nec Corp ディスクアレイ装置及びこれによるデータ処理方法
JP2003345658A (ja) * 2002-05-29 2003-12-05 Hitachi Ltd ストレージ集中管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3228182B2 (ja) * 1997-05-29 2001-11-12 株式会社日立製作所 記憶システム及び記憶システムへのアクセス方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265655A (ja) * 2000-01-14 2001-09-28 Hitachi Ltd 記憶サブシステムのセキュリティシステム
JP2003303053A (ja) * 2002-04-11 2003-10-24 Nec Corp ディスクアレイ装置及びこれによるデータ処理方法
JP2003345658A (ja) * 2002-05-29 2003-12-05 Hitachi Ltd ストレージ集中管理方法

Also Published As

Publication number Publication date
JP2006011932A (ja) 2006-01-12

Similar Documents

Publication Publication Date Title
US7302541B2 (en) System and method for switching access paths during data migration
JP4859471B2 (ja) ストレージシステム及びストレージコントローラ
JP4500057B2 (ja) データ移行方法
US7912814B2 (en) Data migration in storage system
JP5132720B2 (ja) 記憶装置システム
US7334029B2 (en) Data migration method
US7603507B2 (en) Storage system and method of storage system path control
US7472240B2 (en) Storage system with plural control device affiliations
US7131027B2 (en) Method and apparatus for disk array based I/O routing and multi-layered external storage linkage
JP4252301B2 (ja) 記憶システム及びそのデータバックアップ方法
JP3993773B2 (ja) ストレージサブシステム、記憶制御装置及びデータコピー方法
WO2013118195A1 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
JP4297747B2 (ja) ストレージ装置
US20070118676A1 (en) System, method and apparatus for multiple-protocol-accessible OSD storage subsystem
KR20040083484A (ko) 저장장치 지역 네트워크 이내의 저장장치 가상화 구현을위한 방법 및 장치
JP2007280089A (ja) 容量拡張ボリュームの移行方法
KR20110025052A (ko) 다중 경로화 제공 방법, 시스템 및 컴퓨터 판독 가능한 매체
US20070079098A1 (en) Automatic allocation of volumes in storage area networks
JP2005267327A (ja) ストレージシステム
JP2007179156A (ja) 記憶制御装置及び方法
JP2006113895A (ja) ストレージ装置の導入方法、プログラム並びに管理計算機
JP2007087059A (ja) 記憶制御システム
JP4484597B2 (ja) ストレージ装置及びストレージ装置の排他制御方法
JP2002318725A (ja) ディスクアレイシステム
JP2003091449A (ja) ストレージシステムおよびストレージシステムの管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070420

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100323

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100323

R150 Certificate of patent or registration of utility model

Ref document number: 4484597

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140402

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees