JP2009277211A - ストレージシステムでi/oプライオリティを制御する方法及び装置 - Google Patents

ストレージシステムでi/oプライオリティを制御する方法及び装置 Download PDF

Info

Publication number
JP2009277211A
JP2009277211A JP2008311712A JP2008311712A JP2009277211A JP 2009277211 A JP2009277211 A JP 2009277211A JP 2008311712 A JP2008311712 A JP 2008311712A JP 2008311712 A JP2008311712 A JP 2008311712A JP 2009277211 A JP2009277211 A JP 2009277211A
Authority
JP
Japan
Prior art keywords
control unit
port
volume
storage control
virtual
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.)
Pending
Application number
JP2008311712A
Other languages
English (en)
Inventor
Junichi Hara
純一 原
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
Publication of JP2009277211A publication Critical patent/JP2009277211A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/645Fibre channel identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Abstract

【課題】SAN環境で、アプリケーションがサーバ間で移動する場合に、関連するI/Oプライオリティ設定を自動的に制御する。
【解決手段】第1のストレージ制御ユニット上の物理ポートに対して生成された仮想ポートが、同じストレージ制御ユニット内にある又は別のストレージ制御ユニット上にある等の、別の物理ポートに移動されたら、行き先の物理ポートで仮想ポートによるプライオリティの競合を防ぐために、第1の物理ポートとストレージ制御ユニットのプライオリティ設定がチェックされ、仮想ポートと共に他の物理ポートに移動される。同様に、ボリュームグループをストレージ制御ユニット内の別な物理ポート又は異なったストレージ制御ユニットに移動する時には、ボリュームグループに指定されたプライオリティ設定も移動することができる。
【選択図】図4A

Description

0001 本発明は一般的に情報システム、ストレージシステム及びストレージエリアネットワーク(SAN)に関連する。
情報システムでは多数のサーバー(“ホストコンピュータ”とも呼ばれる)を単一のストレージシステム接続にすることがよく行われ得る。これらの多数のサーバーは単一のストレージシステムに頻繁にI/O(入/出力)要求を同時に発行する。これが起こると、一つのサーバーからのI/O要求は他のサーバーからのI/O要求を処理するストレージシステムの能力に容易に影響を与えてしまい、それによって他のサーバーの性能に影響を与えてしまうことになる。
0002 この問題に対処する一つの方法はストレージシステム上の物理インタフェース(例えばチャネルポート)、ストレージデバイス、及びサーバー上の物理インタフェース間でプライオリティ制御を実行することである。例えばサーバー上の物理インタフェース間のプライオリティ制御は、適切なレベルの細かさでプライオリティ付けが可能なので、広く利用されている。従来からサーバー間のプライオリティ制御はサーバー上を走行するオペレーティングシステム(OS)に従って行われてきた。
0004 関連する従来技術にはIdo他によるUS特許7,181,607号“ストレージ制御装置”、及びIto他によるUS特許6,779,083号“ストレージサブシステムの論理ユニットのセキュリティ”が含まれ、それらの全開示内容が本発明に援用される。
米国特許広報7,181,607号 米国特許広報6,779,083号
0002 しかしながら、サーバー上を走行するOS又はアプリケーションが別のサーバーに移行されると、サーバー上の物理インタフェースの識別情報が変わるので、関連するストレージシステムのプライオリティ設定を変更する必要がある。更に、サーバーがI/O要求を発行しようとする仮想ポートがストレージシステム上の一つの物理インタフェースから別の物理インタフェースに移行されると、ストレージシステム上のプライオリティ設定は管理者によって新たな物理インタフェースに手動で転送されなければならない。
0003 最近になって目立ち始めてきた別の問題は、情報施設(例えばデータセンター)でのサーバーによる消費電力量である。この問題に対処するために現在実行されつつある一つのソリューションは仮想マシーンソフトウェアの利用によるサーバー統合である。仮想マシーンソフトウェアは単一の物理サーバー(ホストコンピュータ)上で多重仮想サーバー環境(仮想マシーン又はVM)を提供し、単一のサーバーが多数のOSを同時に走行させるのを可能にし、多数のOSのそれぞれはその上で一つ以上の別々のアプリケーションを走行させることを可能にしている。そのような仮想マシーン環境では、単一のサーバー上の多数のOSがサーバー上で一つの物理インタフェースを共有する状況がしばしば存在する。従ってそのような状況では、多数のOSは同じ物理ポートを使用しているのでどのOSがどのI/O要求の発信元かストレージシステムは区別できないので、多数のOS間のプライオリティ制御は従来の技術を用いては達成することができない。
本発明の典型的な実施例はプライオリティ制御を可能にし及び/又はOS又はアプリケーションの移行及び/又は仮想ポート又はボリュームの移動が生じたときにプライオリティ設定の移動を可能にするための方法、装置及びプログラムを含むコンピュータ読み取り可能媒体を提供する。本発明のこれらやその他の特徴や利点は以下の好適な実施例の詳細な説明に照らして当業者に明白になるであろう。
0050 以下の発明の詳細な説明に於いて開示の一部を構成する付随図面が参照され、そこでは発明が実施される典型的な実施例が、限定するためでなく説明のために示される。図面中ではいくつかの図面に亘って同様な番号は実質的に類似のコンポーネントを表す。更に、詳細な説明は以下に記述され図面で示されるような種々の典型的な実施例を提供するものであるが、本発明はここで説明され示される実施例に限定されるものでなく、当業者に知られているか知られるようになる他の実施例に展開できることに注意願いたい。明細書中で“一つの実施例”や“本実施例”と言及しているのはこの実施例に関連して説明される特定の特徴、構造又は特性が本発明の少なくとも一つの実施例に含まれることを意味し、明細書の種々の箇所でのこれらの語句の出現は必ずしもすべてが同じ実施例に関わるものでない。更に、以下の詳細な説明に於いて本発明の十分な理解を可能にするために数多くの具体的な詳細が説明されている。しかしながら、これらの具体的な詳細は本発明を実施するのに必ずしもすべてが必要なわけではないことが当業者には明らかであろう。他の状況下では、本発明を不必要に分かりにくくしない範囲で公知の構造、材料、回路、プロセス及びインタフェースは詳細には記述されておらず、更に/又はブロックダイアグラム形式で示されることもあり得る。
0051 更に、後続する詳細な説明の或る部分はコンピュータ内のデータビットに関する操作のアルゴリズムや記号表現で表される。これらのアルゴリズム的記述や表現はデータ処理技術分野の当業者が該技術分野の他の当業者に彼らの仕事の本質を最も効果的に伝達するために使用される手段である。アルゴリズムとはここでも、一般的にも、望まれる結末の状態又は結果に導く一連の定義されたステップであると理解される。ステップとは物理量の物理的な操作を必要とするものである。必ずではなくても、通常これらの量は、記憶され、転送され、結合され、比較され、及びそれ以外の操作を行うことができる電気又は磁気信号の形式をとっている。これらの信号を、主に慣用されているという理由から、ビット、値、要素、シンボル、キャラクター、項、数、命令、等と呼ぶことが時には便利なことが分かってきた。しかしながら、これら及び同様な語のすべては適切な物理量に関連すべきであり、これらの量に適用される便宜的なラベルに過ぎないことを念頭に置くべきである。以下の説明で明らかなように、特に断らない限り、説明の全体を通じて“処理する”、“コンピュータで計算する”、“計算する”、“決定する”、“表示する”等の語を利用した説明は、コンピュータシステム、又はコンピュータシステムのレジスター及びメモリー内部の物理(電子)量として表わされるデータを操作して、同様にコンピュータシステムのメモリー又はレジスター又は他のこの種の情報記憶、転送、又は表示装置内の物理量として表される他のデータに変換する他の情報処理デバイス、の作用とプロセスを含み得る、ことは当然のことである。
0052 本発明は更に、ここでの操作を遂行するための装置にも関係する。この装置は要求される目的のために特別に仕立てられるものであっても良いし、一つ以上のコンピュータプログラムによって一つ以上の汎用コンピュータが選択的に起動されるか再構成されるものであっても良い。このようなコンピュータプログラムは光ディスク、磁気ディスク、読み出し専用メモリー(ROM)、ランダムアクセスメモリー(RAM)、半導体デバイス及びドライブ、又は電子情報を記憶するのに適した任意の他のタイプの媒体の如きであって、これらに限定されないコンピュータ読み取り可能なストレージ媒体に記憶されても良い。ここで提供されるアルゴリズムや表示は本来いかなる特定のコンピュータ又は他の装置に結びつくものでない。種々の汎用システムがここでの教示に従うプログラムにより使用可能であるが、望ましい方法ステップを遂行するためにより専用の装置を構築するのが便利な場合もあるかもしれない。これらのシステムの多様な構造は以下に述べられる説明により明らかになるであろう。更に、本発明はいかなる特定のプログラム言語に関連して説明がなされるものでない。種々のプログラム言語がここで説明される本発明の教示を実行するために使用し得ることは当然である。プログラム言語の命令は例えば中央処理装置(CPU)、プロセッサ、又はコントローラ、のような一つ以上の処理デバイスによって実行されよう。
0053 以下により詳細に記述される本発明の典型的な実施例はストレージシステム上で仮想ポートを生成し管理し、更にストレージ制御ユニット内又はそれら間で仮想ポートやボリュームグループを移動するための装置、方法及びコンピュータプログラムを提供する。本発明の典型的な実施例は対応する物理ポートに対して生成された仮想ポート間でプライオリティを制御し、追跡することができるストレージ制御ユニットを実現する。典型的な実施例によれば、第1のストレージ制御ユニット上の第1の物理ポートに対して生成された仮想ポートが、例えば同じストレージ制御ユニット内又は他のストレージ制御ユニット上の、別の物理ポート(すなわち移動先物理ポート)に移動される時に、第1の物理ポートとストレージ制御ユニット上のプライオリティ設定がチェックされ、他の物理ポートに仮想ポートと共に移動される。このことは、仮想ポートのプライオリティ間の競合が行き先の物理ポートで起こらないことを確実にする。
0054 第1の実施例−システム構成
0055 図1は本発明が適用される情報システムの典型的な構成を示す。これらの実施例に於いて、一つ以上のホストコンピュータ160はフロントエンドSAN(ストレージエリアネットワーク)170を経由してストレージ制御ユニット100と交信している。ストレージ制御ユニット100は内部バス109を経由してお互いに接続されたCPU101、メモリー102、NVRAM(不揮発メモリー)103、キャッシュメモリー104、ディスクコントローラ105、LAN(ローカルエリアネットワーク)インタフェースコントローラ108及びSANインタフェースコントローラ107を有する。CPU101はストレージ制御ユニット100の制御を管理する。CPU101はディスクコントローラ105、SANインタフェースコントローラ107、LANインタフェースコントローラ108、等を制御するためにメモリー102に記憶されたマイクロプログラムを実行する。本発明を実現するプログラムのいくつかはメモリー102に記憶された命令を用いてCPU101上で走行することができるが、命令は同時に又は別途に他のコンピュータ読み取り可能媒体上に記憶することもできる。NVRAM103は電源がOFFの場合も管理情報を維持することができる不揮発メモリーである。キャッシュメモリー104はSANインタフェースコントローラ107とディスクコントローラ105の間で交換されるデータを一時的に記憶する役目を果たす。
0056 ディスクコントローラ105はCPU101から受信する命令に従ってディスクドライブ106とデータを交換する。CPU101は、ディスクコントローラ105を経由していわゆるRAID(Redundant Array of Independent Disks)システムに適合するRAIDレベル(例えばRAID0、1又は5)に従う構成のディスクドライブ106を制御しても良い。このようなRAIDシステムに於いては複数のディスクドライブ106は一つのグループ(以後はRAIDグループと呼ぶ)として管理される。一つ以上の論理ボリューム(これも“論理ユニット”又は“LU”と呼ぶ)114が各RAIDグループに形成され、ホスト160がアクセスするための論理ストレージとしての役目を果たす。LUN(Logical Unit Number)と呼ぶ識別子が各論理ボリューム114に指定され、ホストコンピュータが特定のボリューム114を識別するのに用いられる。RAID構成情報は、NVRAM103に記憶されることができ、CPU101がデータ読み出しプロセス又はデータ書き込みプロセスを実行する時に参照され得る。別の方法として他の実施例では、本発明の操作用の装置はディスクコントローラ105とディスクドライブ106は用意せず、それに代わって物理ストレージ容量を提供するために一つ以上の外部ストレージシステム130に頼ることもできる。更に、他の実施例では、一つ以上のストレージ制御ユニット100を用いても良い。
0057 SANインタフェースコントローラ107はフロントエンドSAN170又はバックエンドSAN120に接続されるインタフェースコントローラである。これらのコントローラはFC(Fibre Channel)ネットワークを経由して通信を送受信するように動作する。LANインタフェースコントローラ108はLAN150を経由してサービスプロセッサ140に接続される。LAN150はTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルを用いてデータ送信が行われるイーサネット(R)ネットワークとすることができる。LAN150はサービスプロセッサ140とストレージ制御ユニット100との間の管理及び制御情報を交換するために使用できる。更に或る実施例では、インターネットのようなWAN(広域ネットワーク)がLAN150の代わりに使用されても良い。
0058 ストレージ制御ユニット100に物理容量を追加するために一つ以上の外部ストレージ制御ユニット130がストレージ制御ユニット100に接続され、ストレージ制御ユニット100によって管理されることもできる。外部ストレージ制御ユニット130はストレージ制御ユニット100内に示されるものと同じコンポーネントを持つように構築することができる。しかしながら、通常は外部ストレージ制御ユニット130はストレージ制御ユニット100に含まれるような他のストレージ制御ユニットを管理する機能は持たないであろう。外部ストレージ制御ユニット130はバックエンドSAN120を経由してストレージ制御ユニット100に接続される。別案として、外部ストレージ制御ユニット130はSAN120なしに直接ストレージ制御ユニット100に接続されても良い。
0059 ストレージ制御ユニット100は、外部ストレージ制御ユニット130内の論理ボリューム(又は論理ユニット、LU)を、ホスト160に対して、ストレージ制御ユニット100の内部の論理ボリュームとして見せる、仮想化機能を有することができる。これらの仮想ボリュームは“仮想論理ユニット”又は“VLU”とも呼ばれる。仮想ボリュームがストレージ制御ユニット100上で使用されれば、ホストは特定のボリュームがストレージ制御ユニット100上の論理ボリュームであるか、又は外部ストレージ制御ユニット130上の論理ボリュームに対応する仮想ボリュームであるかを知る必要はない。従って、外部ストレージ制御ユニット130との間でデータを読み書きする時には、ホスト160はストレージ制御ユニット100内の仮想LUにI/O(読み出し又は書き込み)要求を発行する。ストレージ制御ユニット100は受信した要求を外部ストレージ制御ユニット130内の対応する論理ボリュームに向けられる対応するI/O要求(それぞれ読み出し又は書き込みコマンド)に変換する。更に他の実施例では、外部ストレージ制御ユニット130を置かないこともできる。その場合、ストレージ制御ユニット100は、まさに内部ディスクドライブ106を用いて論理ボリュームを提供する。
0060 バックエンドSAN120はストレージ制御ユニット100と外部ストレージ制御ユニット130の間の交信を仲介する、FC−SW(Fibre Channel Switched Fabric)基準に適合した、一つ以上のFCスイッチ180を有することができる。本発明の実施例はフロントエンドSAN170とバックエンドSAN120の両方の役目を果たす一つのSANを配置しても良いし、あるいは図示のように二つの別々のSANを用いても良い。外部ストレージ制御ユニット130が存在しない場合、バックエンドSAN120は必要でない。フロントエンドSAN170も又ホスト160とストレージ制御ユニット100の間の交信を仲介する、FC−SW(Fibre Channel Switched Fabric)基準に適合した、一つ以上のFCスイッチ180を有することができる。或る実施例では、同じ一つ以上のFCスイッチ180をフロントエンドSAN170とバックエンドSAN120の両方に使用することができる。
0061 ホスト160は、例えばパーソナルコンピュータ、ワークステーション、メインフレームコンピュータ、等でよい。ホスト160はデータベースアプリケーション、サーバーアプリケーション、等のアプリケーションプログラムを実行し、ストレージ制御ユニット100に処理結果を書き込み、その中に記憶された情報リソース(即ちデータ)を利用する。図2に示すように、ホスト160は通常CPU201、メモリー202、ストレージデバイス203、FCインタフェースコントローラでよいSANインタフェースコントローラ204、及びイーサネット(R)インタフェースコントローラでよいLANインタフェースコントローラ205から構成することができる。これらのコンポーネントは内部バス206を経由してお互いに接続される。ホスト160はフロントエンドSAN170を経由してSANインタフェースコントローラ204を通してストレージ制御ユニット100に接続される。
0062 同様に図2に示されるように、サービスプロセッサ140はホスト160と同じハードウェアコンポーネントを有することができ、管理操作等を実行するために、LAN150を経由してストレージ制御ユニット100に接続される。例えば、サービスプロセッサ140はストレージ制御ユニット100に関する構成設定及び操作情報取得を実行するために使用することができる。サービスプロセッサ140を使用する管理者はサービスプロセッサ140を通してストレージ制御ユニット100内の論理ボリュームの生成、ホスト160への論理ボリュームの割り付け、ゾーニング、及びLUNマスキング設定を実行することができる。
0063 図27に示すように、FCスイッチ180は通常CPU181、メモリー182、NVRAM183、キャッシュメモリー184、及び複数のFCインタフェースコントローラ185を有することができる。FCスイッチ180が一つ以上のホスト160、一つ以上のストレージ制御ユニット100、及び一つ以上の外部ストレージ制御ユニット130間を仲介できるという条件では、本発明はフロントエンドFCスイッチとバックエンドFCスイッチの両方の役目を果たす一つのFCスイッチで実現することができる。
0064 ソフトウェアモジュール
0065 図3に示すように、これらの典型的な実施例に於いては、本発明を実行する時にストレージ制御ユニット100が使用するいくつかの異なった種類のソフトウェアモジュールが存在する。これらのソフトウェアモジュールは、ストレージ制御ユニット100上のメモリー102又は他のコンピュータ読み取り可能媒体に、ロードされるか又は記憶されることができる。更に、本発明が使用するいくつかの異なった管理テーブルをストレージ制御ユニット100上のNVRAM103又は他のコンピュータ読み取り可能媒体に記憶することができる。モジュールの一つは、ストレージ制御ユニット100内のボリュームグループマッピングテーブル304を用いてストレージ制御ユニット100上のVLUと外部ストレージ制御ユニット130上のLUとの間のマッピングを管理する、ボリュームグループマネージャ301である。ボリュームグループマネージャ301は又どのホストにVLUがエクスポートされるか制御し、決定する。例えば、VLUは以下に更に説明するように、ボリュームグループを形成するために仮想N_ポートに適合させることができ、どの仮想N_ポートを通してVLUがホストにエクスポートされるか決定することによりVLUがボリュームグループマネージャ301によってエクスポートされる。VLUはストレージ制御ユニット100内のボリュームグループマッピングテーブル304を用いて仮想N_ポートが連結している物理N_ポート上のLUにマップされる。
0066 物理パスマネージャ302はストレージ制御ユニット100上に存在する物理N_ポートを管理する。物理パスマネージャは各物理N_ポートがどのホスト160又は外部ストレージ制御ユニット130に到達することができるか制御するために物理ポートを管理し、更に、ストレージ制御ユニット100内の物理パス管理テーブル305を用いて各物理N_ポートの状態を監視する。
0067 I/Oプロセスモジュール303はホスト160からI/O読み出し/書き込み要求を受信し処理する。各I/Oプロセスの開始時にI/Oプロセスモジュール303はプライオリティ管理テーブル306に基づきI/Oプロセスが開始可能か否か判定する。
0068 プライオリティマネージャ304はサービスプロセッサ140を通しての管理者からの命令に従ってプライオリティ管理テーブル306の設定を変更する。ボリュームグループマッピングテーブル304、物理パス管理テーブル305、及びプライオリティ管理テーブル306は以下に更に説明される。
0069 ファイバーチャネルプロトコル
0070 ファイバーチャネルインタフェースを持つデバイスを“ノード”と呼び、インタフェースに対応する物理ターミナルを“ポート”と呼ぶ。一つのノードは一つ以上のポートを持つ。ファイバチャネルシステム全体で同時に参加できるポートの数は最大24ビットのアドレス数即ち2の24乗(16,777,216)である。これらの接続を仲介するファイバーチャネル(FC)スイッチのようなハードウェアを“ファブリック”又は“スイッチングファブリック”と呼ぶ。各ノードの各ポートは“N_ポート”と呼ばれ、FCスイッチ上のポートは“F_ポート”と呼ばれる。この説明に於いては、ホスト160、ストレージ制御ユニット100及び外部ストレージ制御ユニット130を“ノード”と呼び、“N_ポート”は各ノードの各SANインタフェースコントローラ107に対応し、“F_ポート”はFCスイッチ180のFCインタフェースコントローラ185に対応する。このようにして、図1の構成に於いて、フロントエンドFCスイッチ180aと交信するSANインタフェースコントローラ107を“フロントエンド物理ポート”と呼ぶことが出来、バックエンドFCスイッチ180bと交信するSANインタフェースコントローラ107を“バックエンド物理ポート”と呼ぶことが出来る。フロントエンドとバックエンドFCスイッチの両方の役目を果たす唯一のFCスイッチが存在する状況下では、単一のSANインタフェースコントローラ107は、以下に更に説明するように、各物理ポートに割り当てられる多数の仮想ポートの使用によりフロントエンド及びバックエンド物理ポートの両者として動作することができる。更に、単一のFCスイッチと通信するために多数の物理ポートを各ストレージ制御ユニット上に提供することができる。
0071 各ノード及びN_ポートは、ワールドワイドに固有であって、標準化機構であるIEEE(Institute of Electrical and Electronics Engineers, Inc.)によって予め定められたルールに従って指定される識別データを記憶する。この識別データはワールドワイドに固有なので、特定のポートを識別するための主要な識別子として役立つアドレスとして、“WWN”(World Wide Name)と呼ばれる。FCネットワークでのWWNはIPネットワークで用いられるMACアドレスと類似のハードウェアに固定のアドレスである。FCネットワークには2種類のWWNアドレスが存在する。即ち、N_ポート_名及びノード_名であり、それぞれ8バイトのサイズを有する。N_ポート_名は各ポートに固有な値(ハードウェアアドレス)であり、ノード_名は各ノードに固有な値(ハードウェアアドレス)である。本発明の例では、“WWPN”(World Wide Port Name)の語はN_ポート_名を表す。
0072 N_ポートがファブリックに接続される時、N_ポート_IDと呼ばれるファブリック内での固有なIDがファブリックを仲介するFCスイッチによって各N_ポートに指定される。FCスイッチはN_ポート_IDに基づきFCスイッチに接続されるノード間の伝達のルートを決める。ファイバーチャネルプロトコルはN_ポートがその上に追加のWWPNを生成し、各追加のWWPNに指定される追加のN_ポート_IDを持つことを可能にする。これが、“N_ポート_ID仮想化”又は“NPIV”と呼ばれるポート仮想化機能である。追加のWWPNは通常、ファブリック内で固有となるように各デバイス上で自動的に決定される。ハードウェアアドレスとしてのWWPNとダイナミックに生成された追加のアドレスとしてのWWPNとの区別を明確にするために、本説明ではハードウェアアドレスとしてのWWPNに対して“物理WWPN”及び“物理N_ポート”の用語を使用し、物理N_ポート上に追加のアドレスとしてダイナミックに生成されたWWPNに対して“仮想WWPN”及び“仮想N_ポート”の用語を使用することにする。
0073 ファイバーチャネルプロトコルでは、“オーダーセット”と呼ばれる信号レベルの情報と“フレーム”と呼ばれる固定フォーマットの論理情報を使用して、通信が実行される。基本的にI/O要求発信元は一つ以上のフレームを伝送することでI/Oプロセスを起動し、受信側は受信したフレームに応答して動作する。本発明では、フロントエンドFCスイッチ180aが仲介するSAN内ではホスト160が発信元に対応し、ストレージ制御ユニット100が受信側に対応する。一方、バックエンドFCスイッチ180bが仲介するSAN内ではストレージ制御ユニット100が発信元に対応し、外部ストレージ制御ユニット130が受信側に対応する。
0074 図28はフレームの構造を示す。各フレーム2801は、フレームの開始を表わし“SOF”(Start Of Frame)2802と呼ばれる4バイトの識別データ、リンク操作及びフレームの制御を特徴付ける24バイトのフレームヘッダー2803、実際に転送されるオブジェクトであるデータ部分としてのデータフィールド2804、4バイトのCRC(Cyclic Redundancy Code)2805、及びフレームの終了を表す“EOF”(End Of Frame)2806と呼ばれる4バイトの識別データを、有する。データフィールド2804は0から2,112バイトまで可変である。フレームヘッダー2803の構造に関しては、フレームヘッダー2803内のD_ID2808、S_ID2809、SEQ_ID2810、及びSEQ_CNT2811に関してのみ説明しよう。D_ID(行き先ID)2808及びS_ID(ソースID)2809はそれぞれ、フレームを受信するN_ポート及びフレームを送信するN_ポートを識別する3バイトのアドレス識別データであり、送受信されるすべてのフレームに対して有効な値を持っている。ファイバーチャネル基準の標準セットの一つであるFC−PH(Fibre Channel Physical and Signaling Interface)基準は“ファブリックログイン”と呼ばれる初期化手順の間にファブリックがD_ID2808とS_ID2809を割り当てるように要求する。ファブリックログインの詳細な説明は後で行う。SEQ_ID(Sequence ID)2810は各フレームのシーケンスに対して固有な識別子である。ここでシーケンスとは発信元と受信側との間のトランザクションを構成するフレームのグループである。SEQ_CNT(Sequence Count)2811はシーケンス内のフレームの番号である。受信側ではSEQ_ID2810を参照することで属するフレームのシーケンスを識別し、SEQ_CNT2811を参照して各シーケンス内の受信したフレームをソートできる。
0075 物理N_ポートに対するファブリックログイン手順
0076 ファブリックに参入するために、ファブリックに接続されるすべてのN_ポートは初めにファブリックログインを遂行する必要がある。ファブリックログインにより、FCスイッチは各N_ポートにN_ポート_IDを指定し、次いでFCスイッチ上のN_ポートに対するルート情報を決める。物理N_ポートに対して用いられるログイン手順は仮想N_ポートに対して用いられるログイン手順とわずかばかり異なっている。
0077 図29はノード上の物理N_ポート2901とFCスイッチ上のF_ポート2902間の情報交換を示す。通常、このログイン手順は物理N_ポートが最初にFCスイッチ上のF_ポートに物理的に接続される時に行われる。最初に、ステップ2903で示すように、物理N_ポート2901は固定D_ID(0xFFFFFE)2808、固定S_ID(0x000000)2809、及び物理N_ポート2901のN_ポート_名(物理WWPN)及びノード_名を含むFLOGIフレームを送信する。次いで、ステップ2904で、F_ポート2902を有するFCスイッチがFC−PH基準に基づき、物理N_ポート2901のWWPNに対して使用されるN_ポート_IDを決定する。N_ポート_IDを決定後ステップ2905でF_ポート2902を有するFCスイッチはN_ポート_IDに対するルート情報を決定し、ステップ2906で決定したN_ポート_IDを物理N_ポート2901に返送する。N_ポート_IDを受信後ステップ2907で、物理N_ポート2901は受信したN_ポート_IDを自らのN_ポート_IDとみなし、S_ID2809として自らのN_ポート_ID、N_ポート_名(物理WWPN)及びノード_名を持つPLOGIフレームをF_ポート2902に送信する。これに応答して、ステップ2908でF_ポート2902を有するFCスイッチはファブリック内にログオンしている他のすべてのアクセスできるN_ポートのD_ID(N_ポート_ID)、N_ポート_名(物理WWPNと仮想WWPNの両方)及びノード_名のリストを返送する。この手順を通して、N_ポート2901を有する装置はファブリック上の各N_ポートに対しN_ポート_IDとN_ポート_名(即ち物理WWPN及び仮想WWPNの両方)間の対応を得ることができる。
0078 N_ポート_IDの仮想化及び仮想N_ポートに対するファブリックログイン
0079 ファイバーチャネルプロトコルの一部としてN_ポート_IDの仮想化(NPIV)が定義される。この機能は物理N_ポートに、その上に多数の仮想N_ポートが生成されるのを可能にする。各仮想N_ポートに対する仮想WWPNが各N_ポート上で決定され、各仮想WWPNに対するN_ポート_IDを獲得するために各仮想WWPNに対する追加のログイン手順が、図29の手順を使用して既にファブリックにログイン済の物理N_ポートを通してログイン要求を送信することにより遂行される。
0080 図30は仮想N_ポート3001とF_ポート3002を有するFCスイッチ間の情報交換を示す。図30に示される手順は、当該仮想WWPNに連結し、図29に示すファブリックログイン手順が既に実行済の物理N_ポートを経由して遂行される。手順自体は図29で示した物理N_ポートに対するファブリックログイン手順とほとんど同じである。しかしながら、ステップ3003に示すように、N_ポートから送信されるファブリックログイン要求が仮想WWPNに対してであることをF_ポート3002を有するFCスイッチが決定できるように、FLOGI要求の代りにFDISC要求が仮想WWPNに対して使用される。次いでステップ3004で、F_ポート3002を有するFCスイッチはFC−PH基準に基づき仮想N_ポート3001の仮想WWPNに対して使用されるN_ポート_IDを決定する。N_ポート_IDを決定した後ステップ3005で、F_ポート3002を有するFCスイッチはN_ポート_IDに対するルート情報を定め、ステップ3006で仮想N_ポート3001に対して決定したN_ポート_IDを返送する。N_ポート_IDを受信後、ステップ3007で仮想N_ポート3001は受信したN_ポート_IDを自らのN_ポート_IDとみなし、S_ID2809として自らのN_ポート_ID、N_ポート_名(仮想WWPN)及びノード_名を持つPLOGIフレームをF_ポート3002に送信する。これに応答して、ステップ3008で、F_ポート3002を有するFCスイッチは、ファブリックログオン済の他のすべてのアクセスできるN_ポートのD_ID (N_ポート_ID)、N_ポート_名(物理WWPNと仮想WWPNの両方)及びノード_名のリストを返送する。
0081 指定済のN_ポート_IDの再使用
0082 これまでのところ、指定済のN_ポート_IDを再使用し、又はN_ポートによりFCスイッチから特定のN_ポート_IDを要求するためのいかなるプロトコルもファイバーチャネルプロトコルに於いて定義されていない。しかしながらそのような機能を実行する方法がここで、FCネットワーク内のN_ポート_IDをTCP/IPネットワーク内のIPアドレスに対応させることでTCP/IP内の異なったMACアドレスを有する物理ポート間のIPアドレスの移動と同様にモデル化される。TCP/IPではIPアドレスは異なったMACアドレスを有する物理ポート間で移動することができ、その結果IPアドレスは再使用可能になり、IPアドレスが異なったMACアドレスを有する別の物理ポートに移動した場合でも、クライアントホストがクライアントホストの構成を変更せずにIPアドレスを通してエクスポートされたサービスにアクセス可能になる。TCP/IPでは、IPアドレスを別の物理ポートに移動する必要があることをネットワークスイッチに知らせるために、ARPコマンドが使用される。このコマンドに応答して、ネットワークスイッチはIPアドレスに対してルート情報を変更する。
0083 本発明では、TCP/IPネットワークに於けるように、仮想N_ポートは既存のN_ポート_ID、即ち図30で述べた手順等を用いて予め遂行されたファブリックログイン手順により指定されたN_ポート_ID、を使用する要求を発行できるものと仮定する。例として、仮想N_ポートを別の物理N_ポートに移動する必要があることをFCスイッチに知らせるために、FDISCコマンドを使用するものと仮定する。
0084 図31は既存のN_ポート_IDを再使用するため、又はF_ポート3102を有するFCスイッチから仮想N_ポートに対する特定のN_ポート_IDを要求するための、仮想N_ポート3101に於けるファブリックログイン手順の例を示す。ステップ3103で、仮想N_ポートは既存のN_ポート_IDをS_IDフィールド2809にセットしたFDISC要求を送信する。この要求に応答して、ステップ3104で、F_ポート3102を有するFCスイッチはこのN_ポート_IDが別のWWPNに対して使用されているか(即ち既に指定されているか)否かをチェックする。もしN_ポート_IDが既に別のWWPNに指定されている場合は、ステップ3105でF_ポート3102を有するFCスイッチはこの要求を拒否する。一方、要求されたN_ポート_IDが他のWWPNにまだ指定されていないならば、ステップ3106で、F_ポート3102を有するFCスイッチは自らのルート情報内のN_ポート_IDに対してルート情報を変更し、ステップ3107でF_ポート3102を有するFCスイッチは要求が受け入れられたことを知らせるために仮想N_ポート3102に同じN_ポート_IDを返送する。
0085 ノードログイン手順
0086 ファイバーチャネルプロトコルでは、発信元が受信側にフレームの送信を開始する前に、発信元のN_ポートはポートログインと呼ばれる手順を用いて受信側のN_ポートにログインする必要がある。図32は発信元N_ポート3201と受信側N_ポート3202間の情報交換を示す。この手順は物理N_ポートと仮想N_ポートの両者に対して同じである。最初にステップ3203で発信元N_ポート3201は受信側N_ポート3202にPLOGIフレーム3203を送信する。この要求はN_ポート_名(物理WWPN又は仮想WWPN)、ノード_名、S_ID及び発信元N_ポート3201の他の情報を含んでいる。PLOGI要求を受信後、受信側N_ポート3202は要求に含まれる情報を保存する。この要求を承認する時は、受信側N_ポート3202は発信元N_ポート3201に“ACC”3204と呼ばれるフレームを送信する。この要求を拒否する時は、受信側N_ポート3202は発信元N_ポート3201に“LS_RJT”3205と呼ばれるフレームを送信する。発信元N_ポートがPLOGIフレームに応答してACCフレームを含む応答を受信した時は、発信元N_ポート3201はログインが成功したことを知り、受信側N_ポート3202にI/O要求の送信を開始することができる。しかしながら発信元がLS_RJTフレームを受信した時は、発信元N_ポート3201はログインが成立しなかったことを知り、受信側N_ポート3202へのI/O要求の送信が許可されないことを知る。
0087 管理テーブル
0088 図4Aは本発明に従うポート及び論理ボリュームの可能な構成を示す図である。この構成は多くの可能な構成の一つの例であり、本発明の更なる詳細を説明するために使用される。物理WWPNは“WWPN_#”(#は個々のポートに対する番号で置き換えられる)の名前で表わされ、物理WWPNに指定されるN_ポート_IDは“N_ポート_ID_#”の名前で表わされる。仮想WWPNは“WWPN_V#”(#は個々の仮想ポートに対する番号で置き換えられる)の名前で表わされ、仮想WWPNに指定されるN_ポート_IDは“N_ポート_ID_V#”の名前で表わされる。
0089 例えばホスト160上のSANインタフェースコントローラ204(N_ポート)はその物理WWPNとして“WWPN_1”を持ち、そのN_ポート_IDとしてフロントエンドSAN170により指定された“N_ポート_ID_1”を持つ。更に、ストレージ制御ユニット100上のSANインタフェースコントローラ107aはフロントエンドSAN170に接続され、その物理WWPNとして“WWPN_2”を持ち、そのN_ポート_IDとしてフロントエンドSAN170によって指定された“N_ポート_ID_2”を持つ。更に、ストレージ制御ユニット100上のSANインタフェースコントローラ107dはフロントエンドSAN170に接続され、その物理WWPNとして“WWPN_3”を持ち、そのN_ポート_IDとしてフロントエンドSAN170によって指定された“N_ポート_ID_3”を持つ。更に、ストレージ制御ユニット100上のSANインタフェースコントローラ107bはバックエンドSAN120に接続され、その物理WWPNとして“WWPN_5”を持ち、そのN_ポート_IDとしてバックエンドSAN120によって指定された“N_ポート_ID_5”を持つ。更に、ストレージ制御ユニット100上のSANインタフェースコントローラ107eはバックエンドSAN120に接続され、その物理WWPNとして“WWPN_6”を持ち、そのN_ポート_IDとしてバックエンドSAN120によって指定された“N_ポート_ID_6”を持つ。更に、外部ストレージ制御ユニット130上のSANインタフェースコントローラ107cはその物理WWPNとして“WWPN_8”を持ち、そのN_ポート_IDとしてバックエンドSAN120によって指定された“N_ポート_ID_8”を持つ。
0090 更に、ストレージ制御ユニット100の物理ポートに仮想ポートを生成することができる。例えば図示の実施例ではストレージ制御ユニット100は仮想WWPNとして“WWPN_V1”を持ち、フロントエンドSN170によってそのN_ポート_IDとしてこの仮想WWPNに指定された“N_ポート_ID_V1”を持つ。仮想WWPN“WWPN_V1”は現在物理N_ポートWWPN_2に連結している。同様に、“WWPN_V2”は仮想WWPNであり、“N_ポート_ID_V2”がフロントエンドSAN170によりそのN_ポート_IDとしてこの仮想WWPNに指定されている。仮想WWPN“WWPN_V2”も又現在物理N_ポートWWPN_2に連結している。更に、“WWPN_V5”は仮想WWPNであり、“N_ポート_ID_V5”はフロントエンドSAN170によりそのN_ポート_IDとしてこの仮想WWPNに指定されている。仮想WWPN“WWPN_V5”は現在物理N_ポートWWPN_3に連結している。
0091 更に、ボリュームグループ138は論理又は仮想ボリュームのグループとして構成することができる。ボリュームグループ138には特定のグループのボリュームに向けられるI/O操作に適用されるプライオリティ設定を指定することができる。ボリュームグループ138も又連結する仮想ポートを含むことができる。例えばボリュームグループ1 138−1はVLU1、VLU2、及び仮想ポートWWPN_V1、とWWPN_V3を含み、ボリュームグループ2 138−2はVLU3、VLU4、及び仮想ポートWWPN_V2とWWPN_V4を含み、ボリュームグループ3 138−3はLU11、LU12、及び仮想ポートWWPN_V5を含む。ボリュームグループ3はSANインタフェースコントローラ107dに対応する物理ポートWWPN_3を通して通信する。本実施例では論理ボリュームLU11、LU12は図1に示すローカルストレージ媒体106上に生成されるので、グループ3はバックエンドポートWWPN_6へのバックエンド接続を必要としない。
0092 図4Aの例示の構成に示すように、外部ストレージ制御ユニット130はWWPN_8を通して四つの論理ユニット(LU)134(LU1からLU4)をエクスポートする。ストレージ制御ユニット100はLU134を管理し、仮想論理ユニット(VLU)133としてホスト160にエクスポートする。例えば、LU1はVLU1としてホスト160に提供され、LU2はVLU2としてホスト160に提供され、LU3はVLU3としてホスト160に提供され、LU4はVLU4としてホスト160に提供される。こうして、ホスト160は、ストレージ制御ユニット100上に存在する論理ボリュームであるかのように仮想ボリュームVLU1〜VLU4をアクセスして使用でき、一方ストレージ制御ユニット100は外部ストレージ制御ユニット130上のLU1〜LU4により与えられる物理ストレージ容量をそれぞれVLU1〜VLU4の容量として使用する。図示の実施例に於いて、VLU1とVLU2は仮想ポート名WWPN_V1を通してエクスポートされ、仮想ポート名WWPN_V3を用いてLU1とLU2にマップされる。同様にVLU3とVLU4は仮想ポート名WWPN_V2を通してエクスポートされ、仮想ポート名WWPN_V4を用いてLU3とLU4にマップされる。
0093 この構成に従い、例えば、ホスト160上にワールドワイドのポート名WWPN_1を有するN_ポートが外部ストレージ制御ユニット130上のLU1に記憶されたデータにアクセスする時には、ポートWWPN_1は図28に示すフレーム2801のような第1のフレームを持つI/O要求を送信する。第1のフレームはS_ID2809として“N_ポート_ID_1”を持ちD_ID2808として“N_ポート_ID_V1”を持つI/O要求を含む。フレームを受信の後、ストレージ制御ユニット100は外部ストレージ130にS_ID2809として“N_ポート_ID_V3”を持ち、D_ID2808として“N_ポート_ID_8”を持つ第2のフレームを持つ変換されたI/O要求を送信する。第2のフレーム及び関連するI/O要求の受信に応答して、外部ストレージ制御ユニット130は、S_ID2809として“N_ポート_ID_8”を持ち、D_ID2808として“N_ポート_ID_V3”を持つI/O要求への応答を含む第3のフレームを返送する。第3のフレームを受信の後、ストレージ制御ユニット100はS_ID2809として“N_ポート_ID_V1”を持ちD_ID2808として“N_ポート_ID_1”を持つ変換された応答を含む第4のフレームを送信する。
0094 更に、ボリュームグループに対して又は特定の仮想ポートに対してプライオリティを設定できる。例えば、ボリュームグループ1(グループ1) 138−1はボリュームVLU1とVLU2に向けられたI/O操作にグループ2ボリュームVLU3とVLU4に向けられたI/O操作よりも優先するプライオリティを設定することができる。こうして、グループ1 138−1はプライオリティグループと、グループ2 138−2は非プライオリティグループとみなすことができる。プライオリティは管理者によって指定することができ、ホスト160上で走行するアプリケーション又はオペレーティングシステムのプライオリティ、又は他の条件、等の種々の要因に基づいて決定することができる。更に、ボリュームグループに代わって各フロントエンド仮想ポートに対して、プライオリティを設定することができる。例えば、特定の仮想ポートを通してどんなボリューム又は仮想ボリュームがアクセスされるかにかかわらず、WWPN_V1にはプライオリティを指定し、WWPN_V2には、非プライオリティを指定することができる。
0095 或る時点で、例えばボリュームグループ1 138−1を負荷バランス等のために物理ポートWWPN_2を通してのアクセスから物理ポートWWPN_3を通してのアクセスに移動することが望ましい場合がある。この移動の仕掛けが図4Bに示されており、そこではボリュームグループ1 138−1が移動されている。更に、図4Bは仮想ポートWWPN_V1とWWPN_V3がボリュームグループ1の一部として移動されているが、ボリュームを新たな仮想ポート又は物理ポートと連結するため、等でボリュームのみを移動したり、新たなボリューム等と連結するために仮想ポートのみを移動したりすることも可能である。例えば、ボリュームが特定の仮想ポートに連結していない場合には、物理ポート間の負荷バランスのため等でプライオリティを含めて仮想ポートを移動するのが望ましい場合がある。この移動に連動して、ボリュームグループ1 138−1に対して決められていたプライオリティ処理が管理者の介在なしに新たな物理ポートWWPN_3でも維持されることが望まれる。同様に、もしプライオリティがフロントエンド仮想ポートに指定されているならば、そのフロントエンド仮想ポートが別な物理ポートに移動した場合、その特定のフロントエンド仮想ポートに付与済みのプライオリティを維持することも望まれるであろう。以下の記述で、これらのプライオリティ設定を維持する方法、装置及びプログラムが説明される。
0096 ボリュームグループマッピングテーブル
0097 図5はボリュームグループマッピングテーブル304の典型的なデータ構造を示す。図5の値は図4Aに示したシステムの状態を表わす。ボリュームグループ501は論理ボリュームグループ及び仮想N_ポートの任意の名前を示す。ターゲットホストN_ポート502はグループ内の論理ボリュームがエクスポートされるホスト160上のN_ポートのWWPNを示す。エクスポートされるボリューム503はホスト160にエクスポートされるストレージ制御ユニット100内の論理ボリュームの識別子を提供する。外部N_ポート504は各エクスポートされる仮想ボリュームに対応する実際のLUが存在する外部ストレージ制御ユニット130のN_ポートのWWPNを示す。エクスポートされるボリュームがLU11、LU12の場合のようにストレージ制御ユニット100の内部にローカルに生成されるLUに対応する場合にはこのフィールドにはヌル値が設定される。外部ボリューム505はエクスポートされるボリューム503に対応する外部ストレージ制御ユニット130上のLUの識別子を示す。エクスポートされるボリューム503がLU11、LU12の場合のようにストレージ制御ユニット100の内部にローカルに生成されるLUに対応する場合にはこのフィールドにはヌル値が設定される。フロントエンド仮想N_ポート506はエクスポートされるボリューム503をホスト160にエクスポートするために使用される仮想N_ポートのWWPNを示す。フロントエンドN_ポート_ID507はフロントエンド仮想WWPN506に指定されるN_ポート_IDを示す。バックエンド仮想N_ポート508は外部ストレージ制御ユニット130にアクセスするために使用される仮想N_ポートのWWPNを示す。エクスポートされるボリューム503がLU11、LU12の場合のようにストレージ制御ユニット100の内部にローカルに生成されるLUに対応する場合はこのフィールドにはヌル値が設定される。バックエンドN_ポート_ID509はバックエンド仮想WWPN508に指定されるN_ポート_IDを示す。エクスポートされるボリューム503がLU11、LU12の場合のようにストレージ制御ユニット100の内部にローカルに生成されるLUに対応する場合にはこのフィールドにはヌル値が設定される。現在のフロントエンド物理N_ポート510はフロントエンド仮想WWPN506に現在連結している物理N_ポートのWWPNを示し、これはフロントエンド仮想WWPN506に対してN_ポート_IDが取得された物理N_ポートのWWPNである。現在のバックエンド物理N_ポート511はバックエンド仮想WWPN508に現在連結している物理N_ポートのWWPNを示し、これはバックエンド仮想WWPN508に対してN_ポート_IDが取得された物理N_ポートのWWPNである。エクスポートされるボリューム503がLU11、LU12の場合のようにストレージ制御ユニット100の内部にローカルに生成されるLUに対応する場合にはこのフィールドにはヌル値が設定される。
0098 物理パス管理テーブル
0099 図6は物理パス管理テーブル305の典型的なデータ構造を示す。図6の値は図4Aに示すシステムの状態を表す。物理N_ポート601はホスト160又は外部ストレージ制御ユニット130にアクセスするために使用できる物理N_ポートのWWPNを示す。状態602は物理N_ポート601の状態を示す。“OK”エントリーはN_ポートが正しく動作していることを示し、一方“エラー”エントリーは何かの障害でN_ポートが動作していないことを示す。到達可能N_ポート603は物理N_ポート601が到達できるN_ポートのWWPNのリストを示す。この情報は物理N_ポートが図29に関連して前述したファブリックログイン手順を遂行する時に取得できる。
0100 プライオリティ管理テーブル
0101 図7A〜7Bはプライオリティ管理テーブル306の典型的なデータ構造を示す。この実施例ではプライオリティは各ボリュームグループ又は各フロントエンド仮想N_ポートに対して指定することができる。図7Aのプライオリティ管理テーブル306aは各ボリュームグループに対してプライオリティが指定される場合のプライオリティ管理テーブルを示す。ボリュームグループ701aは以降のフィールドの設定が適用されるボリュームグループ名を示す。プライオリティ702はボリュームグループのプライオリティ設定を示す。ボリュームグループがプライオリティであれば、“プライオリティ”がこのフィールドに設定される。それ以外の場合、このフィールドには“非プライオリティ”が設定される。IOPS(毎秒あたりの入/出力)測定値(Ie)703はボリュームグループの実際の性能状態を示す。この値はI/Oプロセスモジュール303によって定期的に測定され更新される。IOPS閾値(It)704は非プライオリティボリュームグループに対するI/O処理を抑制すべきか否か判定するためのIOPS閾値情報を示す。IOPS閾値(It)704は定期的にIOPS測定値(Ie)と比較され、IOPS測定値(Ie)703がIOPS閾値(It)704を超える時には、非プライオリティボリュームグループに対するI/Oプロセスは抑制される。ボリュームグループが“非プライオリティ”の場合、このフィールドにはヌル値が設定される。ターゲットIOPS(Io)705はボリュームグループに対する目標IOPS性能を示す。ボリュームグループが“非プライオリティ”の場合、このフィールドにはヌル値が設定される。遅延設定(St)706は必要時にボリュームグループに対するI/O処理を抑制するために使用される遅延時間量を示す。ボリュームグループが“プライオリティ”の場合、このフィールドにはヌル値が設定される。遅延タイマー(Dt)707は必要時にボリュームグループに対するI/O処理を抑制するために使用される遅延タイマーを示す。ボリュームグループが“プライオリティ”の場合、このフィールドにはヌル値が設定される。IOPSMax(Iu)708はボリュームグループに対するI/O処理を抑制する必要がある時に考慮される最大I/O性能を示す。ボリュームグループが“プライオリティ”の場合、このフィールドにはヌル値が設定される。IOPSMin(IL)709はボリュームグループに対するI/O処理を抑制する必要がある時に考慮される最小I/O性能を示す。ボリュームグループが“プライオリティ”の場合、このフィールドにはヌル値が設定される。従って、IOPS閾値(It)704とターゲットIOPS(Io)705はプライオリティボリュームグループに対してのみ設定され、遅延設定(St)706、遅延タイマー(Dt)707、IOPSMax(Iu)708、及びIOPSMin(IL)709は非プライオリティボリュームグループに対してのみ設定される。
0102 図7Bのプライオリティ管理テーブル306bは、プライオリティが各フロントエンド仮想N_ポートに指定される場合のプライオリティ管理テーブル306の例を示す。プライオリティ管理テーブル306bに於いて、フロントエンド仮想N_ポートエントリー701bはボリュームグループエントリー701aを置き換え、一方プライオリティ管理テーブル306bの他のフィールドは図7Aに関して前述したプライオリティ管理テーブル306aのものと同じである。フロントエンド仮想N_ポート701bは以後のフィールドの設定が適用されるフロントエンド仮想N_ポート名を示す。
0103 I/Oプロセスを開始すべきか否かの判定
0104 図8A〜8BはI/Oプロセスコマンドを開始すべきか否かを判定する典型的なプロセスフローチャートを示す。これらのプロセスは、I/Oコマンドを処理すべきプライオリティを決定するために、ストレージ制御ユニット100が受信するI/Oコマンドの処理を開始する前に、I/Oプロセスモジュール303が実行する。例えば、ホスト160がVLU1〜VLU4 133の一つに向けられたI/Oコマンドを発行すると、コマンドを処理する前にストレージ制御ユニット100は、プライオリティ設定が、コマンドのターゲットであるVLUに関連したボリュームグループ又はフロントエンド仮想ポートに、適用されるか否か判定する。プライオリティ設定がボリュームグループ又はフロントエンド仮想ポートに適用される場合、ストレージ制御ユニット100は、図8A〜8Bに述べられる手順に従って、特定のI/Oコマンドをいつ処理すべきか判定する。図8Aは各ボリュームグループに対してプライオリティが指定されている場合のフローチャートを示し、一方図8Bは各フロントエンド仮想N_ポートに対してプライオリティが指定されている場合のフローチャートを示す。
0105 ステップ801a:I/Oプロセスモジュール303はI/Oコマンドが処理されようとしているボリュームグループがプライオリティグループか否かをチェックする。プライオリティグループであれば、プロセスはステップ807aに進む。そうでない場合はプロセスはステップ802aに進む。
0106 ステップ802a:I/Oプロセスモジュール303はストレージ制御ユニット100上にプライオリティボリュームグループが存在するか否かチェックする。もし存在すれば、プロセスはステップ803aに進む。そうでない場合はプロセスはステップ807aに進む。
0107 ステップ803a:ステップ801a及び802aで見出されたプライオリティボリュームグループのIOPS閾値(It)704及びIOPS測定値(Ie)703をプライオリティ管理テーブル306aから取り込む。
0108 ステップ804a:I/Oプロセスモジュール303はステップ801a及び802aで見出され、IOPS測定値(Ie)703がIOPS閾値(It)704よりも大きいプライオリティボリュームグループが存在するか否かチェックする。もし存在すれば、プロセスはステップ805aに進む。そうでない場合はプロセスはステップ807aに進む。
0109 ステップ805a:I/Oコマンドが処理されようとしているボリュームグループの遅延設定(St)706と遅延タイマー(Dt)707をプライオリティ管理テーブル306aから取り込む。
0110 ステップ806a:I/Oプロセスモジュール303は遅延タイマー(Dt)707が遅延設定(St)706より大きいか否かチェックする。遅延タイマー(Dt)707が遅延設定(St)706よりも大きいならば、プロセスはステップ807aに進む。そうでない場合はプロセスはステップ809aに進む。
0111 ステップ807a:I/Oコマンドが処理されようとしているボリュームグループの遅延タイマー(Dt)707がゼロに初期化される。
0112 ステップ808a:I/Oプロセスモジュール303はI/Oコマンドの処理が開始されるべきことを意味する“I/OコマンドプロセスOK”を返送する。
0113 ステップ809a:I/Oプロセスモジュール303はI/Oコマンドが処理されようとしているボリュームグループの遅延タイマー(Dt)707を更新する。
0114 ステップ810a:プロセスはI/Oコマンドの処理が開始されるべきでないことを意味する“I/OコマンドプロセスNG(不可)”を返送する。
0115 このようにして、Dt(遅延タイマー)はDtがSt(遅延設定)よりも大きくなるまで更新される。DtがStよりも小さい限り、非プライオリティのボリュームグループに対するI/Oコマンドの処理は開始されない。このようにして非プライオリティボリュームグループに対するI/Oコマンドの処理が抑制されるので、非プライオリティボリュームグループに対するI/OプロセスはプライオリティボリュームグループのI/O性能に影響を及ぼすことから免れる。
0116 図8Bは、各フロントエンド仮想N_ポートに対してプライオリティが指定されている場合にI/O処理が開始されるべきか否か判定するための典型的なプロセスフローチャートを示す。
0117 ステップ801b:I/Oプロセスモジュール303はI/Oコマンドが処理されようとしているフロントエンド仮想N_ポートがプライオリティを持つか否かをチェックする。もしフロントエンド仮想N_ポートがプライオリティを持つならば、プロセスはステップ807bに進む。そうでない場合は、プロセスはステップ802bに進む。
0118 ステップ802b:I/Oプロセスモジュール303はストレージ制御ユニット100上にプライオリティフロントエンド仮想N_ポートが存在するかをチェックする。ストレージ制御ユニット100上にプライオリティフロントエンド仮想N_ポートが存在するならば、プロセスはステップ803bに進む。そうでない場合は、プロセスはステップ807bに進む。
0119 ステップ803b:ステップ801b及び802bで見出されたプライオリティフロントエンド仮想N_ポートのIOPS閾値(It)704及びIOPS測定値(Ie)703をプライオリティ管理テーブル306bから取り込む。
0120 ステップ804b:I/Oプロセスモジュール303はステップ801b及び802bで見出され、IOPS測定値(Ie)703がIOPS閾値(It)704よりも大きいプライオリティフロントエンド仮想N_ポートが存在するか否かチェックする。もし存在するならば、プロセスはステップ805bに進む。そうでない場合は、プロセスはステップ807bに進む。
0121 ステップ805b:I/Oコマンドが処理されようとしているフロントエンド仮想N_ポートの遅延設定(St)706と遅延タイマー(Dt)707をプライオリティ管理テーブル306bから取り込む。
0122 ステップ806b:I/Oプロセスモジュール303は遅延タイマー(Dt)707が遅延設定(St)706より大きいか否か判定する。DtがStよりも大きい時、プロセスはステップ807bに進む。そうでない場合は、プロセスはステップ809bに進む。
0123 ステップ807b:I/Oコマンドが処理されようとしているフロントエンド仮想N_ポート の遅延タイマー(Dt)707がゼロに初期化される。
0124 ステップ808b:プロセスはI/Oコマンドの処理が開始されるべきであることを示す“I/OコマンドプロセスOK”を返送する。
0125 ステップ809b:I/Oコマンドが処理されようとしているフロントエンド仮想N_ポートの遅延タイマー(Dt)707が更新される。
0126 ステップ810b:プロセスはI/Oコマンドの処理が開始されるべきでないことを示す“I/OコマンドプロセスNG”を返送する。
0127 Dt(遅延時間)がSt(遅延設定)よりも大きくなるまでDtが更新され、非プライオリティフロントエンド仮想N_ポートへのI/Oコマンドに対するI/OプロセスはDtがStよりも大きくなるまで開始されない。このようにして、非プライオリティフロントエンド仮想N_ポートに対するI/Oプロセスは、非プライオリティフロントエンド仮想N_ポートに向けられるI/Oコマンドに対するI/Oプロセスを抑制することでプライオリティフロントエンド仮想N_ポートのI/O性能に影響を与えることから免れる。
0128 遅延設定を調整するフローチャート
0129 図9Aは、プライオリティボリュームグループのIOPS性能がプライオリティボリュームグループのターゲットIOPS705に最も近づくように、非プライオリティボリュームグループのI/Oプロセスの遅延設定(St)706を調整する典型的なプロセスのフローチャートを示す。このプロセスはI/Oプロセスモジュール303により定期的に実行される。この場合、プライオリティボリュームグループのIOPS閾値(It)704とターゲットIOPS(Io)705、及び非プライオリティボリュームグループのIOPSMax(Iu)708とIOPSMin(IL)709がサービスプロセッサ140を通して管理者によって設定される。プライオリティボリュームグループのI/O処理への影響の程度を正確には知ることができないので、IOPSMax(Iu)708の値は実際の環境に適合する推定値に設定される。
0130 ステップ901a:非プライオリティボリュームグループのIOPSMax値(Iu)708をプライオリティ管理テーブル306aから取り込む。
0131 ステップ902a:遅延設定(St)706がIOPSMax(Iu)708に基づいて計算される。ここで計算される遅延設定を、以後は遅延設定初期値(St0)と呼ぶ。
0132 ステップ903a:現在の遅延設定(St)706について前述した図8Aのフローチャートに従ってI/Oコマンドの処理が或る時間の間実行される。
0133 ステップ904a:プライオリティボリュームグループのIOPS測定値(Ie)703とターゲットIOPS(Io)705をプライオリティ管理テーブル306aから取り込む。
0134 ステップ905a:非プライオリティボリュームグループのIOPS測定値(Ie)703とIOPSMin値(IL)709をプライオリティ管理テーブル306から取り込む。ここで非プライオリティボリュームグループのIOPS測定値703を以後Ie’と呼ぶ。
0135 ステップ906a:I/Oプロセスモジュール303はプライオリティボリュームグループのIOPS測定値(Ie)703とターゲットIOPS(Io)705との間に差があるか否かチェックする。差があれば、プロセスはステップ907aに進む。差がなければ、又は差が無視できるほど十分小さいものと判断されれば、プロセスはステップ903aに戻る。
0136 ステップ907a:I/Oプロセスモジュール303は非プライオリティボリュームグループのIOPS測定値(Ie’)703がIOPSMax(Iu)708とIOPSMin(IL)709の間にあるか否かチェックする。もし間にあればプロセスはステップ908aに進む。そうでない場合、プロセスはステップ903aに戻る。
0137 ステップ908a:遅延設定(St)が式:
St=St0+a(Ie−Io)+b∫t0 t (Ie−Io)dt
に基づいて再設定される。ここで、a、bは係数であり、St0は遅延設定初期値、t0は制御開始時刻、tは現在時刻である。遅延設定(St)の再設定に続いて、プロセスはステップ903aに戻る。
0138 図9BはプライオリティボリュームグループのIOPS性能がプライオリティボリュームグループのターゲットIOPS705に最も良く近づけるように、非プライオリティボリュームグループのI/Oプロセスの遅延設定(St)706を調整することで、IOPSMax(Iu)708未満の非プライオリティボリュームグループに対するI/Oプロセスを抑制するために実行されるプロセスの別な実施例のフローチャートを示す。このプロセスはI/Oプロセスモジュール303により定期的に実行され、図9Aに関して前述したプロセスに代わって使用できる。この場合プライオリティボリュームグループのIOPS閾値(It)704及び非プライオリティボリュームグループのIOPSMax(Iu)708がサービスプロセッサ140を通して管理者によって設定される。ターゲットIOPS(Io)705とIOPSMin(IL)は使用されない。プライオリティボリュームグループのI/O処理への影響の程度を正確には知ることができないので、IOPSMax(Iu)の値は実際の環境に適合する推定値に設定される。
0139 ステップ901b:非プライオリティボリュームグループのIOPSMax値(Iu)708をプライオリティ管理テーブル306から取り込む。
0140 ステップ902b:遅延設定(St)706がIOPSMax(Iu)708に基づいて計算される。ここで計算される遅延設定を、以後は遅延設定初期値(St0)と呼ぶ。
0141 ステップ903b:現在の遅延設定(St)706について前述した図8Aのフローチャートに従ってI/Oコマンドの処理が或る時間の間実行される。
0142 ステップ904b:非プライオリティボリュームグループのIOPS測定値(Ie)703をプライオリティ管理テーブル306から取り込む。非プライオリティボリュームグループのIOPS測定値を以後はIe’と呼ぶ。
0143 ステップ905b:I/Oプロセスモジュール303は非プライオリティボリュームグループに対するIOPS測定値(Ie’)703とIOPSMax(Iu)708との間に差があるか否かチェックする。差があれば、プロセスはステップ906bに進む。差がなければ、又は差が無視できるほど十分小さいと判断されれば、プロセスはステップ903bに戻る。
0144 ステップ906b:遅延設定(St)が式:
St=St0+a(Ie−Io)+b∫t0 t (Ie−Io)dt
に基づいて再設定される。ここでa、bは係数であり、St0は遅延設定初期値、t0は制御開始時刻、tは現在時刻である。遅延設定の再設定に続いて、プロセスはステップ903bに戻る。図9Aと9Bで説明したと同じ方法が、各フロントエンド仮想N_ポートに対してプライオリティが設定される場合にも適用可能である。
0145 第2の実施例
0146 図10は本発明が適用可能な情報システムの別な典型的な構成を示す。ストレージシステム100は、一つ以上のFCスイッチ1080aを含むフロントエンドSAN1070を経由して一つ以上のホストコンピュータ1060と交信しており、更にLAN(ローカルエリアネットワーク)1050経由でサービスプロセッサ1040及びホスト1060とも交信している。ストレージシステム100は多数のストレージ制御ユニット1000、一つ以上のバックエンドFCスイッチ1080bを含むバックエンドSAN1020、及び一つ以上の外部ストレージ制御ユニット1030を含むように構成される。各ストレージ制御ユニット1000はCPU1001、メモリー1002、不揮発ランダムアクセスメモリー(NVRAM)1003、キャッシュメモリー1004、ディスクコントローラ1005、ディスクドライブ1006のような複数のストレージ媒体、多数のSANインタフェースコントローラ1007、LANインタフェースコントローラ1008、及びユニット間ネットワークコントローラ1010を有する。これらのコンポーネントは内部バス1009を経由してお互いが接続されている。更に三つのストレージ制御ユニット1000a〜1000cが示されているが、本発明はストレージ制御ユニットの特定な数に限定されるものでない。
0147 CPU1001はストレージ制御ユニット1000の制御を管理し、一方メモリー1002はCPU1001により実行されるプログラムと命令を記憶する。CPU1001は、ディスクインタフェースコントローラ1005、SANインタフェースコントローラ1007、LANインタフェースコントローラ1008、等を制御するために、メモリー1002に記憶されるマイクロプログラムを実行する。更にCPU1001は多数のストレージ制御ユニット1000a〜1000cが単一のストレージシステムとして機能できるように、ユニット間ネットワークコントローラ1010とユニット間ネットワーク1011を通して他のストレージ制御ユニット1000と管理情報やデータを交換する。本発明を実現するいくつかのプログラムはCPU1001により実行でき、メモリー1002上又は他のコンピュータ読み取り可能媒体上に記憶できる。
0148 第1の実施例に関して前述したように、電源がOFFの場合でも管理情報を保持できる不揮発メモリーとしてNVRAM1003を含めることができる。キャッシュメモリー1004はSANインタフェースコントローラ1007とディスクコントローラ1005間で交換されるデータを一時的に記憶する役目を果たす。ディスクコントローラ1005は、CPU1001からの命令に従って、ディスクドライブ又は他の適切なストレージ媒体1006とデータを交換する。CPU1001はディスクコントローラ1005を介してRAID(Redundant Array of Independent Disks)構成(例えばRAIDレベル0、1又は5)内のディスクドライブ1006を制御する。RAID構成に於いては、多数のディスクドライブ1006は一つのグループ(以後RAIDグループと呼ぶことにする)として管理される。一つ以上の論理ボリューム(即ち論理ユニット、LU)が各RAIDグループ上で論理的に構成され、ホスト1060に対するストレージの役目を果たす。LUN(Logical Unit Number )と呼ばれる識別子が各論理ボリュームに指定される。RAID構成情報はNVRAM1003に記憶され、CPU1001がデータ読み出しプロセス又はデータ書き込みプロセスを実行する時にCPU1001によって参照される。更に、本発明はディスクコントローラ1005及びディスクドライブ1006なしで機能するように構成し、ストレージシステムが使用する物理ストレージは、多数のストレージ制御ユニット1000と交信する一つ以上の外部ストレージシステム1030内に設けることもできるのは言うまでもない。
0149 SANインタフェースコントローラの一つ1007aはフロントエンドSAN1070に、他のSANインタフェースコントローラ1007bはバックエンドSAN1020に光ファイバー又は銅線ケーブル、等を経由して接続される。LANインタフェースコントローラ1008はLAN1050を経由してホスト1060及びサービスプロセッサ1040に接続される。ユニット間コントローラ1010はCPU1001が他のストレージ制御ユニット1000との間でデータを交換し、管理情報をCPU1001と同期させることを可能にする。ストレージ制御ユニット1000は、ユニット間ネットワークコントローラ1010により、ユニット間ネットワーク1011経由で相互に接続されている。ユニット間通信に於いては、PCI−EXPRESS、Infiniband、等の高速接続インタフェースの使用が望ましい。しかしながら、ファイバーチャネル、イーサネット(R)、等の、より慣用されているネットワークインタフェースもこのインタフェースとして使用できる。その場合、ユニット間ネットワークコントローラ1010としてSANインタフェースコントローラ1007又はLANインタフェースコントローラ1008が使用できる。これらの実施例に於いて、ユニット間ネットワーク1011として、フロントエンドFCスイッチ1080a又はバックエンドFCスイッチ1080bが仲介するSAN、又はLAN1050、又は他のネットワーク又は通信リンクが、使用可能である。
0150 フロントエンドSAN1070はホスト1060とストレージ制御ユニット1000間でFC−SW(Fibre Channel Switched Fabric)基準に準拠した通信を立ち上げる。バックエンドSAN1020はストレージ制御ユニット1000と外部ストレージ制御ユニット1030間でFC−SW(Fibre Channel Switched Fabric)基準に準拠した通信を仲介する。一般に、FC−SW基準に従って形成される通信ネットワークはSAN(Storage Area Network)と呼ばれる。本発明の実施例は前述のようにフロントエンドSAN1070とバックエンドSAN1020の両方の役目を果たす一つのSANで実現しても良い。LAN1050はTCP/IPを使用したデータ転送が行われるイーサネット(R)又は他の適切な媒体を使用して構築したローカルエリアネットワークである。更に、或る実施例ではインターネットのようなWAN(Wide Area Network)がLAN1050の代わりに使用できる。
0151 外部ストレージ制御ユニット1030はストレージ制御ユニット1000に接続され、ストレージ制御ユニット1000によって管理される。各外部ストレージ制御ユニット1030はストレージ制御ユニット1000と同じコンポーネントから構成される。しかしながらストレージ制御ユニット1000と異なり、外部ストレージ制御ユニット1030は通常他のストレージ制御ユニットを管理する機能を持たず、ユニット間ネットワークコントローラ1010も必要ない。外部ストレージ制御ユニット1030aで図示したように、外部ストレージ制御ユニット1030のいくつかはバックエンドSAN1020を介してストレージ制御ユニット1000に接続でき、外部ストレージ制御ユニット1030bで図示したように、外部ストレージ制御ユニット1030のいくつかは直接接続1081によりストレージ制御ユニット1000に直結できる。各ストレージ制御ユニット1000は、たとえ実際のストレージ容量は外部ストレージ制御ユニット1030によって管理されても、外部ストレージ制御ユニット1030内に生成された論理ボリューム(又は論理ユニット、LU)を、ストレージ制御ユニット1000の内部に生成された論理ユニットであるとしてホストに提供されるストレージ容量のようにホスト1060から見えるようにすることができる。従って、これらのLUはストレージ制御ユニット1000内に仮想的にのみ存在し、実際には外部ストレージ制御ユニット1030内のLUとして存在するので、仮想LUである。以後はそのような仮想論理ボリュームを“仮想論理ユニット”又は“VLU”と呼ぶことにする。外部ストレージ制御ユニット1030との間でデータを読み出し/書き込むために、ホスト1060はストレージ制御ユニット1000の仮想論理ユニットにI/O(例えば読み出し/書き込み)要求を発行し、ストレージ制御ユニット1000は受信したI/O要求を外部ストレージ制御ユニット1030内の対応する論理ボリュームに送信されるI/O要求に変換する。別の方法では、外部ストレージ制御ユニット1030が存在しないことがあり得る。その場合、ストレージ制御ユニット1000はそれ自体の内部にディスクドライブ1006を用いた論理ボリュームを提供する。
0152 ホスト1060は、例えば任意のパーソナルコンピュータ、ワークステーション、メインフレームコンピュータ、等で良い。ホスト1060はデータベースプログラム等のアプリケーションプログラムを実行し、LUやVLU等のストレージボリュームに保存しておくためにストレージ制御ユニット1000の一つに処理結果を書き込み、保存した情報リソースを利用する。ホスト1060は前述の図2に示すホスト1060と同じ構成を持つことができる。ホスト1060はフロントエンドFCスイッチ1080aが仲介するSAN1070を通してストレージ制御ユニット1000と接続される。
0153 サービスプロセッサ1040は図2に関連して前述したサービスプロセッサ140と同じコンポーネントを持つことができ、LAN1050を経由してストレージ制御ユニット1000に接続される。サービスプロセッサ1040は、例えばストレージ制御ユニット1000に対して構成設定や操作情報取得を実行し、取得した情報を統合する。管理者はサービスプロセッサ1040を通して、ストレージ制御ユニット1000内の論理ボリュームの生成、ホスト1060への論理ボリュームの割り付け、ゾーニング、及びLUNマスキング設定を実行する。本発明を実現するプログラムのいくつかはサービスプロセッサ1040上で走行させることができる。
0154 ソフトウェアモジュール
0155 図11に示すように、これらの実施例では本発明を実行するのに使用できる5種類のソフトウェアモジュールと四つのデータ構造が存在する。ソフトウェアモジュールは各ストレージ制御ユニット1000のメモリー1002にロードされ、データ構造は各ストレージ制御ユニット1000のNVRAM1003に記憶することができる。或いは、ソフトウェアモジュールとデータ構造はストレージシステムの内部又は外部にある他のコンピュータ読み取り可能媒体に記憶することもできる。大部分のソフトウェアモジュールは第1の実施例に関して前述したものと同様である。例えば、ボリュームグループマネージャ1101は第1の実施例のボリュームグループマネージャ301と同じで良く、物理パスマネージャ1102は第1の実施例の物理パスマネージャ302と同じで良く、I/Oプロセスモジュール1103は第1の実施例のI/Oプロセスモジュール303と同じで良い。第2の実施例は、仮想N_ポート、VLU、又は仮想N_ポートとVLUのグループのストレージ制御ユニット1000間での移動に関し、サービスプロセッサ1040が発行する命令を受信するように構成される移動マネージャ1104を有している。移動マネージャ1104がそのような命令を受信すると、移動マネージャ1104は命令された移動を起動する。プライオリティマネージャ1105はサービスプロセッサ1040上の統合プライオリティマネージャからの命令に従ってプライオリティ管理テーブル304上の設定を変更するように構成される。これらの実施例でのデータ構造は四つの管理テーブルを有する。即ち第1の実施例に関して前述したような、ボリュームグループマッピングテーブル304、物理パス管理テーブル305、及びプライオリティ管理テーブル306並びに、以下に説明するユニット性能テーブル1108である。
0156 図12に示すように、サービスプロセッサ1040が使用できる4種類のソフトウェアモジュールと四つのデータ構造がある。例えば、モジュールとデータ構造はメモリー202及び/又はサービスプロセッサ1040のストレージデバイス203、及び/又はサービスプロセッサ1040の内部又は外部にある他のコンピュータ読み取り可能媒体に記憶できる。図示の実施例ではサービスプロセッサ1040のメモリー202は統合ボリュームグループマネージャ1110、統合物理パスマネージャ1111、統合移動マネージャ1112、及び統合プライオリティマネージャ1113を有する。更に、サービスプロセッサ1040のメモリー202及び/又はストレージデバイス203は統合ボリュームグループマッピングテーブル1113、統合物理パス管理テーブル1114、統合プライオリティ管理テーブル1115、及び統合ユニット性能テーブル1116、を含むデータ構造を記憶することもできる。
0157 統合ボリュームグループマネージャ1110は各ストレージ制御ユニット1000からボリュームグループマッピングテーブル304を取得し、サービスプロセッサ1040内の統合ボリュームグループマッピングテーブル1113にそれらを統合する。統合物理パスマネージャ1111は各ストレージ制御ユニット1000から物理パス管理テーブル305を取得し、サービスプロセッサ1040内の統合物理パス管理テーブル1114にそれらを統合する。
0158 統合移動マネージャ1112は管理者がストレージ制御ユニット1000間で仮想N_ポート、VLU、又は仮想N_ポートとVLUのグループの移動を命令した時に、ユニット間ネットワーク1011を移動後に使用するか否か判定する。もし統合移動マネージャ1112が、命令通りの移動後にI/O操作を行うためにユニット間ネットワーク1011を使用する必要があると判定したなら、統合移動マネージャ1112は、ユニット間ネットワーク1011が、移動後にI/O操作を行うために使用する必要がなくなるように、別な移動ターゲットとして別なストレージ制御ユニット1000を管理者に提供する。
0159 統合プライオリティマネージャ1113は各ストレージ制御ユニット1000からプライオリティ管理テーブル1107とユニット性能テーブル1108を取得し、それらを統合プライオリティ管理テーブル1115と統合ユニット性能テーブル1116に統合する。更に、統合プライオリティマネージャ1113は、管理者から受信した命令に従って、各ストレージ制御ユニット1000上のプライオリティマネージャ1105を通してプライオリティ管理テーブル1117の設定を変更する。
0160 図13はこれらの実施例のポートと論理ボリュームの可能な構成例であるが、他にも数多くの構成が可能であることは言うまでもない。図13の構成は本発明を更に詳細に説明するために示すものである。“WWPN_#”(ここでは#は番号で置き換えられる)の名前で表される物理WWPNがフロントエンドSANインタフェースコントローラ1007aに対して与えられ、物理WWPNに対して指定されるN_ポート_IDは“N_ポート_ID_#”の名前で表される。仮想WWPNは“WWPN_V#”の名前で表され、仮想WWPNに指定されるN_ポート_IDは“N_ポート_ID_V#”の名前で表される。例えば、ホスト1060上のSANインタフェースコントローラ(N_ポート)204はフロントエンドSAN1070に接続され、その物理WWPNとしてWWPN_1を持ちフロントエンドSAN1070が指定したN_ポート_ID_1を持つ。ストレージ制御ユニット1000a上のフロントエンドSANインタフェースコントローラ1007aはフロントエンドSAN1070に接続され、その物理WWPNとしてWWPN_2を持ち、フロントエンドSAN1070が指定したN_ポート_ID_2を持つ。同様に、ストレージ制御ユニット1000b上のフロントエンドSANインタフェースコントローラ1007aは物理WWPN_3とN_ポート_ID_3を持ち、ストレージ制御ユニット1000c上のフロントエンドSANインタフェースコントローラ1007aはその物理WWPNとしてWWPN_4及びN_ポート_ID_4を持つ。ストレージ制御ユニット1000a上のバックエンドSANインタフェースコントローラ1007bはその物理WWPNとしてWWPN_5及びバックエンドSAN1020が指定したN_ポート_ID_5を持つ。同様にストレージ制御ユニット1000b上のバックエンドSANインタフェースコントローラ1007bはその物理WWPNとしてWWPN_6及びN_ポート_ID_6を持ち、ストレージ制御ユニット1000c上のバックエンドSANインタフェースコントローラ1007bはその物理WWPNとしてWWPN_7及びN_ポート_ID_7を持つ。外部ストレージ制御ユニット1030aはWWPN_8のWWPNを持ちN_ポート_ID_8が指定され、外部制御ユニット1030b上のSANインタフェースコントローラ1007cはWWPN_9のWWPNを持ちN_ポート_ID_9が指定されている。
0161 更に多数の仮想ポートが生成されている。例えば、ストレージ制御ユニット1000aは仮想WWPNとしてWWPN_V1及びフロントエンドSAN1070が指定したN_ポート_ID_V1を持ち、更に別の仮想WWPNとしてWWPN_V2とN_ポート_ID_V2を持つ。これらの仮想ポートは現在WWPN_2を持つ物理N_ポートに連結している。同様に、制御ユニット1000aは仮想WWPNとしてWWPN_V4とバックエンドSAN1020が指定したN_ポート_ID_V4を持ち、更に別の仮想WWPNとしてWWPN_V3とN_ポート_ID_V3を持つ。これらの仮想ポートは現在WWPN_5を持つ物理N_ポートに連結している。更にストレージ制御ユニット1000bは仮想WWPNとしてWWPN_V5とフロントエンドSAN1070が指定したN_ポート_ID_V5を持つ。この仮想ポートは現在WWPN_3を持つ物理N_ポートに連結している。
0162 図13に示すように、ストレージ制御ユニット1000aは“ユニット_1”という固有のIDを持ち、ストレージ制御ユニット1000bは“ユニット_2”という固有のIDを持ち、ストレージ制御ユニット1000cは“ユニット_3”という固有のIDを持つ。更に、外部ストレージ制御ユニット1030aはWWPN_8を通して四つのLU135(LU1〜LU4)をストレージ制御ユニット1000aにエクスポートしている。ストレージ制御ユニット1000aはこれらのLUを管理し、LU1に対するVLU1、LU2に対するVLU2、LU3に対するVLU3、及びLU4に対するVLU4の様に、仮想LU133としてホスト1060にエクスポートする。更に、VLU1とVLU2はボリュームグループ1 1038−1を構成し、WWPN_V1を通してエクスポートされ、WWPN_V3を用いてLU1とLU2にマップされる。同様に、VLU3とVLU4はボリュームグループ2 1038−2を構成しWWPN_V2を通してエクスポートされ、WWPN_V4を用いてLU3とLU4にマップされる。更に、ストレージ制御ユニット1000b上のボリュームグループ3 1038−3はストレージ制御ユニット1000b上に生成された論理ボリュームLU11、LU12を有する。
0163 例えば、ホスト1060上にWWPN_1を持つN_ポートが外部ストレージ制御ユニット1030a上のLU1に記憶されたデータにアクセスする時には、ホスト1060はS_ID2809としてN_ポート_ID_1を持ち、D_ID2808としてN_ポート_ID_V1を持つI/O要求を含むフレームを送信する。フレームを受信後、ストレージ制御ユニット1000aは、S_IDとしてN_ポート_ID_V3を持ち、D_IDとしてN_ポート_ID_8を持つフレームを含む変換されたI/O要求を送信する。この要求に応答して、外部ストレージ制御ユニット1030aはS_IDとしてN_ポート_ID_8を持ちD_IDとしてN_ポート_ID_V3を持つフレームを含む応答を返送する。外部ストレージ制御ユニット1030aからフレームを受信後、ストレージ制御ユニット1000aはS_IDとしてN_ポート_ID_V1を持ち、D_IDとしてN_ポート_ID_1を持つフレームを含む変換された応答を送信する。
0164 ボリュームグループマッピングテーブル
0165 図14A〜14Bは図13に示す構成に対応するエントリーを持つボリュームグループマッピングテーブル304−1と304−2の例を示す。ボリュームグループマッピングテーブル304−1、304−2のすべてのフィールドは第1の実施例の図5に関して前述したボリュームグループマッピングテーブル304と同じである。図14Aと図14Bの値はそれぞれ図13に示すストレージ制御ユニット1000aと1000b上のボリュームグループの状態を表わす。
0166 物理パス管理テーブル
0167 図15A〜15Cはそれぞれ図13に示す構成に対応する物理パス管理テーブル305−1〜305−3の例を示す。物理パス管理テーブル305−1〜305−3のすべてのフィールドは第1の実施例の図6に関して前述した物理パス管理テーブル305と同じである。図15A、図15B、図15Cの値はそれぞれ図13に示すストレージ制御ユニット1000a、1000b、1000c上の物理パスの状態を表わす。
0168 プライオリティ管理テーブル
0169 図16A〜16B及び17A〜17Bは図13で述べた典型的な構成下でのプライオリティ管理テーブル306の例を示す。プライオリティは各ボリュームグループ又は各フロントエンド仮想N_ポートに従って指定することができる。図16Aのプライオリティ管理テーブル306a−1と図16Bの306a−2は、プライオリティが各ボリュームグループに対して指定される場合のプライオリティ管理テーブルの例である。プライオリティ管理テーブル306a−1、306a−2のすべてのフィールドは第1の実施例のプライオリティ管理テーブル306aと同じである。図16Aは図13に示すストレージ制御ユニット1000a上のボリュームグループ グループ1 1038−1とグループ2 1038−2のプライオリティ管理設定の状態を表わす。図16Bは図13に示すストレージ制御ユニット1000b上のボリュームグループ3 1038−3のプライオリティ管理設定の状態を表わす。
0170 図17Aのプライオリティ管理テーブル306b−1と図17Bの306b−2はプライオリティが各フロントエンド仮想N_ポートに対して指定される場合のプライオリティ管理テーブルの例である。プライオリティ管理テーブル306b−1、306b−2のすべてのフィールドは第1の実施例の図7Bで示したプライオリティ管理テーブル306bと同じである。図17Aは図13に示す構成に於けるストレージ制御ユニット1000a上のフロントエンド仮想N_ポートのプライオリティ管理設定の状態を表わす。図17Bは図13に示す構成に於けるストレージ制御ユニット1000b上のフロントエンド仮想N_ポートのプライオリティ管理設定の状態を表わす。
0171 ユニット性能テーブル
0172 図22A〜22Cはユニット性能テーブル1108の例を示す。図22A、図22B、図22Cはそれぞれ図13に示すストレージ制御ユニット1000a、1000b、1000c上のそれぞれのユニット性能テーブル1108−1、1108−2、1108−3の状態を表わす。ユニット性能テーブルに於いて、最大IOPS(Im)2201は各ストレージ制御ユニットが可能な最大IOPS性能を示す。
0173 サービスプロセッサ上の統合テーブル
0174 前述のように、各ストレージ制御ユニット内の管理テーブルの情報はサービスプロセッサ1040上に統合テーブルを作成するために集めることができる。図18は統合ボリュームグループマッピングテーブル1113の例を示す。大部分のフィールドはボリュームグループマッピングテーブル304と同じであるが、統合ボリュームグループマッピングテーブル1113は、ボリュームグループ501が現在存在するストレージ制御ユニットを示す現在ユニットフィールド1801を有する。例えば、図18に示すように、ボリュームグループ グループ1とグループ2は現在ストレージ制御ユニット“ユニット_1”に存在し、一方ボリュームグループ3は現在ストレージ制御ユニット“ユニット_2”に存在する。
0175 図19は統合物理パス管理テーブル1114の例を示す。大部分のフィールドは図6に関して前述した物理パス管理テーブル305と同じである。しかしながら、統合物理パス管理テーブル1114は、物理N_ポート601が存在するストレージ制御ユニットを示すユニットフィールド1901を有する。
0176 図20は統合プライオリティ管理テーブル1115の例を示す。図20Aはプライオリティが各ボリュームグループに対して指定される場合の統合プライオリティ管理テーブル1115aの例を示す。フィールドの大部分は図7Aに関して前述したプライオリティ管理テーブル306aと同じである。しかしながら、統合プライオリティ管理テーブル1115aは、ボリュームグループ701aが存在するストレージ制御ユニットを示すユニットフィールド2001aを有する。同様に、図20Bはプライオリティが各フロントエンド仮想N_ポートに対して指定される場合の統合プライオリティ管理テーブル1115bの例を示す。フィールドの大分分は図7Bに関して前述したプライオリティ管理テーブル306bと同じである。しかしながら、統合プライオリティ管理テーブル1115bは、フロントエンド仮想N_ポート701bが存在するストレージ制御ユニットを示すユニットフィールド2001bを有する。
0177 図23は統合ユニット性能管理テーブル1116の例を示す。統合ユニット性能管理テーブル1116は、最大IOPS情報が対応するストレージ制御ユニットを示すユニットフィールド2301を有する。
0178 仮想ポート移動
0179 図21はボリュームグループ1をストレージ制御ユニット1000aからストレージ制御ユニット1000bに移動する例を示す。本移動は、ストレージ制御ユニット1000a上の物理ポートWWPN_2からストレージ制御ユニット1000b上の物理ポートWWPN_3に仮想ポートWWPN_V1を再指定し、一方ではストレージ制御ユニット1000a上の物理ポートWWPN_5からストレージ制御ユニット1000b上の物理ポートWWPN_6に仮想ポートWWPN_V3を再指定し、更に第2のストレージ制御ユニット1000bで仮想ボリュームVLU1及びVLU2をマッピングすることを含む。このようにして、この仕掛けでホスト1060から、例えばLU1へのアクセスが、ストレージ制御ユニット1000aの代りにストレージ制御ユニット1000bを通して行われる。別の例では他の目的のためにボリュームグループ全体は移動せずにフロントエンドポートを移動することができる。
0180 一つのストレージ制御ユニット1000から別のストレージ制御ユニット1000への仮想ポート又はボリュームグループの移動の詳細は、Hara他により2007年12月18日に出願のUS特許出願12/000,821号に述べられており、すでに本発明に援用済である。サービスプロセッサ1040上の統合移動マネージャ1112を通しての管理者による命令に応答して、指定されたストレージ制御ユニット1000上の移動マネージャ1104は、指定されたボリュームグループ又はフロントエンド仮想ポートを、指定された行き先のストレージ制御ユニット1000に移動する。これらの実施例に於いて、移動マネージャ1104は移動が実行される時にボリュームグループ又はフロントエンド仮想ポートのプライオリティ情報も移動する。このことは移動されるボリュームグループ又はフロントエンド仮想ポートが行き先のストレージ制御ユニット内で同じプライオリティで処理されることを可能にする。
0181 移動先ストレージ制御ユニットのプライオリティ設定のチェック
0182 移動後に於いて、行き先のストレージ制御ユニットが、移動されるボリュームグループ又はフロントエンド仮想ポートを同じレベルのプライオリティでサポートするのに十分な性能を持たない場合、ターゲットIOPS(Io)704は達成できない。このことは移動対象のボリュームグループ又はフロントエンド仮想ポートの移動前に、行き先のストレージ制御ユニット内に既に存在していた他のプライオリティボリュームグループ又はフロントエンド仮想ポートの性能にも影響を及ぼす可能性がある。従って、統合移動マネージャ1104は行き先のユニットが移動後にすべてのプライオリティボリュームグループ又はフロントエンド仮想ポートをサポートするのに十分な性能を持っているかを移動前にチェックするのが望ましい。
0183 図24は管理者が移動を指定した時に、行き先のストレージ制御ユニットが移動をサポートするのに十分な性能を持つか否かをチェックするための典型的なプロセスのフローチャートを示す。図24は各ボリュームグループに対してプライオリティが指定されている場合に実行されるプロセスを示し、これによりフロントエンド仮想N_ポートに対するプロセスも同様であることが理解されよう。このプロセスはサービスプロセッサ1040上の統合移動マネージャ1112により、又はストレージ制御ユニット1000の一つの上の移動マネージャ1104の一つにより実行することができる。
0184 ステップ2401a:プロセスは指定されたボリュームグループがプライオリティ設定を持つか否かチェックする。もし持っていればプロセスはステップ2402aに進む。そうでない場合は、プロセスはステップ2415aに進む。
0185 ステップ2402a:プロセスは指定された行き先のストレージ制御ユニットにプライオリティボリュームグループが存在するか否かチェックする。もし存在するならプロセスはステップ2403aに進む。そうでない場合は、プロセスはステップ2415aに進む。
0186 ステップ2403a:プロセスは指定されたボリュームグループと指定された行き先ユニットのすべてのプライオリティボリュームグループについて、統合プライオリティ管理テーブル1115aから、ターゲットIOPS(Io)705を取得する。
0187 ステップ2404a:プロセスは統合ユニット性能管理テーブル1116から指定された行き先ユニットの最大IOPS(Im)2201を取得する。
0188 ステップ2405a:ステップ2403aで取得したターゲットIOPS(Io)のすべての合計を計算してステップ2404aで取得した最大IOPS(Im)2201と比較する。もし合計が最大IOPS(Im)2201よりも小さいならば、プロセスはステップ2415aに進む。そうでない場合はプロセスはステップ2406aに進む。
0189 ステップ2406a:プロセスは現在のストレージ制御ユニット(指定されたボリュームグループが既に存在するユニット)及び指定された行き先のストレージ制御ユニット以外のストレージ制御ユニットの最大IOPS(Im)2201を取得する。
0190 ステップ2407a:ステップ2406aで取り込んだ他のユニットについて、指定された行き先のストレージ制御ユニットよりも大きな最大IOPS(Im)値2201を持つユニットが存在するか否かチェックが行われる。もし存在するならばプロセスはステップ2408aに進む。そうでない場合は、プロセスはステップ2413aに進む。
0191 ステップ2408a:プロセスはステップ2407aの条件を満たすストレージ制御ユニットが、移動が指定されたボリュームグループと同じホスト1060及び同じ外部ストレージ制御ユニットへの動作パスを持つか否かチェックする。もし持つならば、プロセスはステップ2409aに進む。そうでない場合は、プロセスはステップ2413aに進む。
0192 ステップ2409a:プロセスはステップ2408aの条件を満たすストレージ制御ユニットですべてのプライオリティボリュームグループのターゲットIOPS(Io)705を取得する。
0193 ステップ2410a:指定されたボリュームグループとステップ2408aの条件を満たすストレージ制御ユニットのプライオリティボリュームグループのターゲットIOPS(Io)705の合計を計算し、最大IOPS(Im)2201と比較する。この計算と比較はステップ2408aの条件を満たす各ユニットに対して行われる。もしターゲットIOPS(Io)705の合計よりも大きな最大IOPS(Im)を持ついくつかのユニットが存在するならば、プロセスはステップ2411aに進む。そうでない場合は、プロセスはステップ2413aに進む。
0194 ステップ2411a:ステップ2410aの条件を満たすストレージ制御ユニットを代わりの行き先のストレージ制御ユニットとして管理者に示す。
0195 ステップ2412a:代わりのストレージ制御ユニットへの移動がOKか否かに関して管理者に対してチェックがなされる。もしOKの場合は、管理者は代わりのストレージ制御ユニットの一つを選択するように求められ、プロセスはステップ2416aに進む。そうでない場合はプロセスはステップ2413aに進む。
0196 ステップ2413a:命令された移動が実行されたなら、行き先のストレージ制御ユニットがすべてのプライオリティボリュームグループをサポートするのには十分な性能を持っていないという警告が管理者に示される。
0197 ステップ2414a:プロセスは管理者が指定されたストレージ制御ユニットへの移動を依然として実行することを望んでいるか否かチェックする。もしそうであれば、プロセスはステップ2415aに進む。そうでない場合はプロセスはステップ2417aに進む。
0198 ステップ2415a:指定された行き先ユニットへの指定されたボリュームグループの移動を実行することが決定される。
0199 ステップ2416a:別の行き先ユニットへの指定されたボリュームグループの移動を実行することが決定される。
0200 ステップ2417a:移動を中止する。
0201 前述と同じ方法が各ボリュームグループに対してではなく各フロントエンド仮想N_ポートに対してプライオリティが設定された場合にも適用できる。
0202 移動後のプライオリティ管理テーブルと統合プライオリティ管理テーブル
0203 図25A、図25Bと図26はそれぞれ、図21に示すようにユニット_1上のグループ1がユニット_2に移動した後の、プライオリティ管理テーブル306a−1、306a−2及び統合プライオリティ管理テーブル1115−1の例を示す。これらの例は各ボリュームグループに対してプライオリティが設定された場合を示しており、仮想N_ポートに対するテーブルについても前述のように同様になる。例えば、図25Aはグループ1はもはやユニット_1上にないことを示し、図25Bはグループ1は今やユニット_2上にあり、プライオリティ設定を持つことを示す。統合プライオリティ管理テーブル1115−1は同様の条件を示す。
0204 前述から本発明の実施例はストレージシステムとストレージエリアネットワーク(SAN)で使用でき、特に仮想ポートを持ち及び/又は多数のストレージ制御ユニットから構成されるストレージシステムで使用できることが理解されるであろう。本発明の実施例は仮想マシーンソフトウェアがコンピュータシステムに於いて使用される時に、各ホストによる通常のプライオリティ制御では各仮想マシーンによるプライオリティ制御を実現できないといった問題を克服できる。このようにして本発明の実施例の下では、ホストコンピュータとストレージシステム間の接続が変更される時には、ストレージシステムのプライオリティ制御も変更される。本発明の実施例に従うストレージ制御ユニットは各ボリュームグループ又は各仮想ポートに従ってプライオリティ制御を実現し、ボリュームグループ又は仮想ポートの移動が生じた時にはプライオリティ設定も移動する。例えば、その開示内容を本発明に援用する、US特許出願11/826,717号に述べるように、仮想マシーンに対して各ボリュームグループ又は各仮想ポートを指定し、本発明の実施例で述べた方法と装置を使用することにより、仮想マシーンが一つのホストコンピュータから他に移動される時でさえ、各仮想マシーンに従うプライオリティ制御を達成することができる。更に、ホストコンピュータとストレージ制御ユニット間の接続を新たなストレージ制御ユニットに変更する必要がある場合、本発明の実施例はプライオリティ設定を新たなストレージ制御ユニットに引き継ぐことを可能にする。
0205 当然、図1、4、10、13、21に示すシステム構成は本発明が実行可能な情報システムの全く典型的なものであり、本発明は特定のハードウェア構成に限定されない。本発明を実行するコンピュータとストレージシステムは、前述の発明を実行するために使われるモジュール、プログラム、及びデータ構造を記憶し、読み出すことができる周知のI/Oデバイス(例えばCD及びDVDドライブ、フロッピー(R)ディスクドライブ、ハードドライブ、等)を持つこともできる。これらのモジュール、プログラム及びデータ構造はそのようなコンピュータ読み取り可能媒体上でコード化できる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読み取り可能媒体とは無関係にコンピュータ読み取り可能媒体上に記憶することができる。システムのコンポーネントはディジタルデータ通信の任意の形態又は媒体、例えば通信ネットワークによって相互接続できる。通信ネットワークの例として、ローカルエリアネットワーク、広域ネットワーク、例えばインターネット、無線ネットワーク、ストレージエリアネットワーク、等がある。
0206 説明の中で本発明の徹底した理解を可能にするための説明の目的で数多くの詳細が述べられている。しかしながら、これらの具体的な詳細のすべてが必ずしも本発明を実施するために必要とされるわけではないことが当業者には明らかであろう。本発明は通常フローチャート、フローダイアグラム、構造ダイアグラム、又はブロックダイアグラムとして描かれるプロセスとして記述できることに注意願いたい。フローチャートは順序的なプロセスとして操作を記述できるが、多くの操作は並行して或いは同時に遂行できる。更に、操作の順序は再編成可能である。
0207 この分野では公知の通り、前述の操作はハードウェア、ソフトウェア、又はソフトウェアとハードウェアの或る結合により遂行可能である。本発明の実施例の種々の態様が回路や論理デバイス(ハードウェア)を用いて実行可能であるが、一方マシーン読み取り可能媒体上に記憶され、もしプロセッサにより実行されるならば本発明の実施例を実行する方法をプロセッサに遂行させることになる命令(ソフトウェア)を用いる他の態様も実行可能である。更に本発明の或る実施例は専らハードウェアで遂行できるのに対し、他の実施例は専らソフトウェアで遂行できる。更に、記述された種々の機能は単一のユニット内で遂行できるし、或いは任意の数の方法で多数のコンポーネントに亘って展開することもできる。ソフトウェアにより遂行される場合、その方法はコンピュータ読み取り可能媒体に記憶される命令に基づいて汎用コンピュータのようなプロセッサにより実行することができる。もし望まれるならば、命令は圧縮した及び/又は暗号化したフォーマットで媒体上に記憶できる。
0208 前述から、本発明はボリュームグループ及び仮想ポートに対してプライオリティ設定を管理し制御するための方法、装置及びコンピュータ読み取り可能媒体上に記憶されるプログラムを提供することが明らかであろう。更に、この明細書では特定の実施例が示され、説明されてきたが、同じ目的を達成すると見込まれる任意の仕掛けが開示された特定の実施例に置き換えることができることを当業者は理解する。この開示は本発明の任意であらゆる改案や変形をもカバーするものと意図されており、以下の請求項で用いられる表現は発明を明細書に開示した特定の実施例に限定して解釈されるべきでないことは言うまでもない。もっと正確に言えば、本発明の範囲は、このような請求項が権利を持つ同等物の全範囲とともに以下の請求項によって完全に決定されるべきであり、請求項解釈の確立した原則に従って解釈されるべきである。
本発明が適用される方法と装置のハードウェア構成の例を示す。 ホストとサービスプロセッサのハードウェア構成の例を示す。 ストレージ制御ユニット上の典型的なソフトウェアモジュール構成を示す。 第1の実施例の説明に使用する典型的なポート及びボリューム構成を示す。 第1の実施例のボリュームグループの移動後の説明に使用する典型的なポート及びボリューム構成を示す。 ボリュームグループマッピングテーブルの典型的なデータ構造を示す。 物理パス管理テーブルの典型的なデータ構造を示す。 ボリュームグループに従うプライオリティ管理テーブルの典型的なデータ構造を示す。 フロントエンド仮想N_ポートに従うプライオリティ管理テーブルの典型的なデータ構造を示す。 ボリュームグループ及びフロントエンドN_ポートに従ってI/Oプロセスを開始すべきか否かを判定する典型的なプロセスのフローチャートを示す。 ボリュームグループ及びフロントエンドN_ポートに従ってI/Oプロセスを開始すべきか否かを判定する典型的なプロセスのフローチャートを示す。 I/Oプロセスを制御するために設定を調整する典型的なプロセスのフローチャートを示す。 I/Oプロセスを制御するために設定を調整する典型的なプロセスのフローチャートを示す。 第2の実施例の典型的なシステム構成を示す。 ストレージコントローラ上の典型的なソフトウェアモジュール構成を示す。 サービスプロセッサ上の典型的なソフトウェアモジュール構成を示す。 説明用の典型的なポートとボリューム構成を示す。 ユニット_1のボリュームグループマッピングテーブルの例を示す。 ユニット_2のボリュームグループマッピングテーブルの例を示す。 ユニット_1の物理パス管理テーブルの例を示す。 ユニット_2の物理パス管理テーブルの例を示す。 ユニット_3の物理パス管理テーブルの例を示す。 ユニット_1のプライオリティ管理テーブル(ボリュームグループによる)の例を示す。 ユニット_2のプライオリティ管理テーブル(ボリュームグループによる)の例を示す。 フロントエンド仮想N_ポートに従うユニット_1のプライオリティ管理テーブルの例を示す。 フロントエンド仮想N_ポートに従うユニット_2のプライオリティ管理テーブルの例を示す。 統合ボリュームグループマッピングテーブルの典型的なデータ構造を示す。 統合物理パス管理テーブルの典型的なデータ構造を示す。 統合プライオリティ管理テーブル(ボリュームグループによる)の典型的なデータ構造を示す。 統合プライオリティ管理テーブル(仮想N_ポートによる)の典型的なデータ構造を示す。 ボリュームグループの移動の例を示す。 ユニット_1のユニット性能管理テーブルの典型的なデータ構造を示す。 ユニット_2のユニット性能管理テーブルの典型的なデータ構造を示す。 ユニット_3のユニット性能管理テーブルの典型的なデータ構造を示す。 統合ユニット性能管理テーブルの典型的なデータ構造を示す。 移動時に行き先ユニットのプライオリティ設定をチェックする典型的なフローチャートを示す。 ユニット_1のプライオリティ管理テーブル(ボリュームグループによる)の典型的なデータ構造を示す。 移動後のユニット_2のプライオリティ管理テーブル(ボリュームグループによる)の典型的なデータ構造を示す。 移動後の統合プライオリティ管理テーブル(ボリュームグループによる)の典型的なデータ構造を示す。 FCスイッチの典型的なハードウェア構成を示す。 フレームの典型的なデータ構造を示す。 物理N_ポートに対するファブリックログイン手順を示す。 仮想N_ポートに対するファブリックログイン手順を示す。 既存のN_ポート_IDを再使用するため、又は要求者がN_ポート_IDを指定するための、仮想N_ポートに対する典型的なファブリックログイン手順を示す。 発信元から受信側へのポートログインを示す。

Claims (20)

  1. ネットワークとの通信のための第1の物理ポートを有し、該ネットワーク経由で第1のコンピュータと交信する第一のストレージ制御ユニットと、
    前記第1のストレージ制御ユニット上に生成され、前記第1のコンピュータにデータストレージリソースとして提供され、前記第1の物理ポートを通してアクセスされ、第1のプライオリティ設定が指定された第1のストレージボリュームと、から構成され、
    前記第1のストレージ制御ユニット内又は第2のストレージ制御ユニット内のいずれかにある第2の物理ポートを通して前記第1のボリュームがアクセスされるように前記第1のボリュームが移動される時には、前記第1のプライオリティ設定は、前記第1のボリュームと共に移動され、該第2の物理ポートにて受信する前記第1のボリュームをターゲットとする前記第1のコンピュータから受信する入/出力(I/O)操作に適用される、ことを特徴とするストレージシステム。
  2. 前記第1のストレージ制御ユニット上に生成される複数の前記第1のストレージボリュームが存在し、該複数の第1のストレージボリュームは第1のボリュームグループを形成し、前記第1のストレージボリュームに指定された前記プライオリティ設定が該第1のボリュームグループに指定され、
    前記第1のボリュームの移動は前記第1のボリュームグループと前記第1のプライオリティ設定の移動を含む、ことを特徴とする請求項1によるストレージシステム。
  3. 前記第1のボリュームは前記第1のストレージ制御ユニット上に生成される第1の仮想ボリュームとして構成され、該第1の仮想ボリュームは前記第1のストレージ制御ユニットと交信する外部ストレージシステム上の論理ボリュームにマッピングされ、それにより該外部ストレージシステムが前記第1の仮想ボリュームにストレージ容量を提供する、ことを特徴とする請求項1によるストレージシステム。
  4. 前記第1のボリュームに連結される第1の仮想ポートを更に有し、前記第1のコンピュータは該第1の仮想ポートを経由して前記第1のボリュームにアクセスし、
    前記第1の仮想ポートと前記第1の仮想ボリュームは第1のボリュームグループに含まれ、前記第1のプライオリティ設定は該第1のボリュームグループに指定される、ことを特徴とする請求項1によるストレージシステム。
  5. 前記第1のボリュームの前記移動が前記第1のボリュームと前記第1の仮想ポートを含む前記ボリュームグループの移動を含む時、前記第1のボリュームの移動に続いて前記第1の仮想ポートが前記第2の物理ポートに連結される、ことを特徴とする請求項4によるストレージシステム。
  6. 前記第2の物理ポートは前記第1のストレージ制御ユニット内に存在し、
    第2のボリュームをターゲットとして前記第1のストレージ制御ユニットにてI/O操作を受信したら、前記第1のストレージ制御ユニットは該第2のボリュームがプライオリティ設定を持つか否か判定するように構成され、
    前記第2のボリュームがプライオリティ設定を持たずに更に前記第1のボリュームの毎秒あたりのI/O操作の測定値が閾値よりも小さい時には、前記第1のストレージ制御ユニットは前記第2のボリュームをターゲットとする前記I/O操作を遅延させるように構成される、ことを特徴とする請求項1によるストレージシステム。
  7. 前記第2の物理ポートは第2のストレージ制御ユニット内に存在し、
    前記第1及び第2のストレージ制御ユニットと交信する第2のコンピュータを更に有し、
    前記第1のボリュームの移動を実行するのに先立って、前記第2のストレージ制御ユニットに第2のボリュームに指定された第2のプライオリティ設定が存在する時には、前記第2のコンピュータは、前記第2のストレージ制御ユニットにて得られる性能の全体量が前記第1のボリュームに対して指定された性能と該第2のボリュームに対して指定された性能の和を満たすのに十分であるか否かを判定するように構成される、ことを特徴とする請求項1によるストレージシステム。
  8. 前記性能の全体量、前記第1のボリュームに対して指定される前記性能及び前記第2のボリュームに対して指定される前記性能は、毎秒あたりのI/O操作量に従って測定される、ことを特徴とする請求項7によるストレージシステム。
  9. 前記第2のストレージ制御ユニットにて得られる性能の前記全体量が前記第1のボリュームに対して指定された前記性能と前記第2のボリュームに対して指定された前記性能の和を満たすのに十分でない時には、前記第2のコンピュータは前記第1のボリュームの移動を受け付ける、代わりのストレージ制御ユニットを特定するように構成される、ことを特徴とする請求項7によるストレージシステム。
  10. ネットワーク経由で第1のコンピュータと交信し、該ネットワークとの通信のための第1の物理ポートを有する、第1のストレージ制御ユニットと、
    前記第1の物理ポートに対応して生成され、第1のプライオリティ設定が指定された第1の仮想ポートと、から構成され、
    第2の仮想ポートをターゲットとして前記第1のストレージ制御ユニットにて入/出力(I/O)操作を受信したら、前記第1のストレージ制御ユニットは、該第2の仮想ポートがプライオリティ設定を持つか否かを判定するように構成され、
    前記第2の仮想ポートがプライオリティ設定を持たずに更に前記第1の仮想ポートの性能の測定値が閾値よりも小さい時には、前記第1のストレージ制御ユニットは前記第2の仮想ポートをターゲットとする前記I/O操作を遅延させるように構成される、ことを特徴とするストレージシステム。
  11. 前記第1のストレージ制御ユニット上に生成され、前記第1のストレージ制御ユニットと交信する外部ストレージシステム上の論理ボリュームにマッピングされる第1の仮想ボリュームを更に有し、それにより該外部ストレージシステムがストレージ容量を該仮想ボリュームに提供し、
    前記第1の仮想ポートと前記第1の仮想ボリュームはボリュームグループを形成し、前記第1のプライオリティ設定は該ボリュームグループに指定され、
    前記第1の仮想ポートの移動は前記第1のボリュームと前記第1の仮想ポートを含む前記ボリュームグループの移動を含む、ことを特徴とする請求項10によるストレージシステム。
  12. 前記第1の仮想ポートを第2の物理ポートに連結して、前記第1の仮想ポートを前記第1のストレージ制御ユニット内又は第2のストレージ制御ユニット内のいずれかにある該第2の物理ポートに移動する時には、前記第1のプライオリティ設定は前記第1の仮想ポートと共に移動され、前記第2の物理ポートにて受信され前記第1の仮想ポートに向けられた通信に適用されるように構成される、ことを特徴とする請求項10によるストレージシステム。
  13. 前記第2の物理ポートは第2のストレージ制御ユニット内に存在し、
    前記第1のストレージ制御ユニット及び前記第2のストレージ制御ユニットと交信する第2のコンピュータを更に有し、
    前記第1の仮想ポートの移動の実行の前に、前記第2のストレージ制御ユニットにて第3の仮想ポートに指定された第2のプライオリティ設定が存在する時には、前記第2のコンピュータは前記第2のストレージ制御ユニットにて得られる性能の全体量が前記第1の仮想ポートに対して指定された性能と該第3の仮想ポートに対して指定された性能の和を満たすのに十分であるか否か判定する、ように構成される、ことを特徴とする請求項12によるストレージシステム。
  14. 前記性能の全体量、前記第1の仮想ポートに対して指定される前記性能及び前記第3の仮想ポートに対して指定される前記性能は、毎秒あたりのI/O操作量に従って測定される、ことを特徴とする請求項13によるストレージシステム。
  15. 前記第2のストレージ制御ユニットにて得られる前記性能の全体量が前記第1の仮想ポートに対して指定された前記性能と前記第3の仮想ポートに対して指定された前記性能の和を満たすのに十分でない時には、前記第2のコンピュータは前記第1の仮想ポートの移動を受け付ける、代わりのストレージ制御ユニットを特定するように構成される、ことを特徴とする請求項13によるストレージシステム。
  16. 第1のストレージ制御ユニット上に複数の第1のストレージボリュームを生成し、該第1のストレージボリュームが第1のボリュームグループ内に含まれるようにするステップと、
    入/出力(I/O)操作の処理でのプライオリティを決定するために前記第1のボリュームグループに第1のプライオリティ設定を指定するステップと、
    第2のボリュームグループをターゲットとする前記第1のストレージ制御ユニットにてI/O操作を受信するステップと、
    前記第2のボリュームグループがプライオリティ設定を持つか否かを判定するステップと、
    前記第2のボリュームグループがプライオリティ設定を持たずに更に前記第1のボリュームグループの性能の測定値が閾値より小さい時には、前記第2のボリュームグループをターゲットとする前記I/O操作を遅延させるステップ、とから成る、ことを特徴とするストレージシステムの操作方法。
  17. 前記複数の第1のボリュームを前記第1のストレージ制御ユニット上に生成される複数の第1の仮想ボリュームとして構成し、該第1の仮想ボリュームの各々は前記第1のストレージ制御ユニットと交信する外部ストレージシステム上の論理ボリュームにマッピングされ、そのことにより該外部ストレージシステムは前記複数の第1の仮想ボリュームに対してストレージ容量を提供するステップを更に含む、ことを特徴とする請求項16による方法。
  18. 第1の物理ポートを通して前記第1のボリュームグループにアクセスするステップと、
    前記複数の第1のボリュームを含む前記第1のボリュームグループを前記第1の物理ポートから前記第1のストレージ制御ユニット又は第2のストレージ制御ユニット内のいずれかにある第2の物理ポートに移動するステップ、を更に含み、
    移動の後には、前記第1のボリュームグループは前記第2の物理ポートを経由してアクセスされ、
    前記第1のプライオリティ設定は前記第1のボリュームグループと共に移動され、前記第2の物理ポートにて受信され前記第1のボリュームグループに向けられた通信に適用される、ことを特徴とする請求項16による方法。
  19. 前記第1のストレージ制御ユニットと交信する第2のストレージ制御ユニット内に前記第2の物理ポートを提供するステップと、
    前記第1のボリュームグループの移動の実行前に、前記第2のストレージ制御ユニットに第3のボリュームグループに指定された第2のプライオリティ設定が存在する時には、前記第2のストレージ制御ユニットにて得られる性能の全体量が前記第1のボリュームグループに対して指定された性能と該第3のボリュームグループに対して指定された性能の和を満たすのに十分であるか否かを判定するステップを更に含む、ことを特徴とする請求項18による方法。
  20. 前記第2のストレージ制御ユニットで得られる前記性能の全体量が前記第1のボリュームグループに対して指定された前記性能と前記第3のボリュームグループに対して指定された前記性能の和を満たすのに十分でない時には、前記第1のボリュームグループの移動を受け付ける、代わりのストレージ制御ユニットを特定するステップを更に含む、ことを特徴とする請求項19による方法。
JP2008311712A 2008-05-15 2008-12-08 ストレージシステムでi/oプライオリティを制御する方法及び装置 Pending JP2009277211A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/153,209 US8032730B2 (en) 2008-05-15 2008-05-15 Method and apparatus for I/O priority control in storage systems

Publications (1)

Publication Number Publication Date
JP2009277211A true JP2009277211A (ja) 2009-11-26

Family

ID=40957641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008311712A Pending JP2009277211A (ja) 2008-05-15 2008-12-08 ストレージシステムでi/oプライオリティを制御する方法及び装置

Country Status (3)

Country Link
US (1) US8032730B2 (ja)
EP (1) EP2120138A3 (ja)
JP (1) JP2009277211A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514584A (ja) * 2009-12-16 2013-04-25 シマンテック コーポレーション 仮想環境におけるストレージの可視性
JP2013527942A (ja) * 2010-07-16 2013-07-04 株式会社日立製作所 記憶制御装置、又は複数の当該記憶制御装置を有する記憶システム
JP2014209364A (ja) * 2014-06-18 2014-11-06 株式会社日立製作所 記憶制御装置、又は複数の当該記憶制御装置を有する記憶システム
JP2014215666A (ja) * 2013-04-23 2014-11-17 富士通株式会社 制御システム,制御装置及び制御プログラム
JP2015115630A (ja) * 2013-12-09 2015-06-22 株式会社日立製作所 計算機システム、アドレス管理装置およびエッジノード

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8111696B2 (en) * 2008-10-14 2012-02-07 Emulex Design & Manufacturing Corporation Method to improve the performance of a computer network
US8848575B2 (en) * 2009-02-23 2014-09-30 Brocade Communications Systems, Inc. High availability and multipathing for fibre channel over ethernet
JP5446040B2 (ja) * 2009-09-28 2014-03-19 日本電気株式会社 コンピュータシステム、及び仮想マシンのマイグレーション方法
US8958429B2 (en) * 2010-12-22 2015-02-17 Juniper Networks, Inc. Methods and apparatus for redundancy associated with a fibre channel over ethernet network
US9491240B2 (en) * 2014-06-27 2016-11-08 International Business Machines Corporation Maintenance of a fabric priority during synchronous copy operations
US9614910B2 (en) 2014-06-27 2017-04-04 International Business Machines Corporation Maintenance of a fabric priority among operations in related fibre channel exchanges
US9736241B2 (en) 2014-06-27 2017-08-15 International Business Machines Corporation Maintenance of a fabric priority among operations within a fibre channel exchange
US10897506B2 (en) * 2014-07-02 2021-01-19 Hewlett Packard Enterprise Development Lp Managing port connections
US9942132B2 (en) 2015-08-18 2018-04-10 International Business Machines Corporation Assigning communication paths among computing devices utilizing a multi-path communication protocol
US10019202B2 (en) 2016-01-11 2018-07-10 International Business Machines Corporation Autonomic configuration of storage systems for virtualization
US10496577B2 (en) 2017-02-09 2019-12-03 Hewlett Packard Enterprise Development Lp Distribution of master device tasks among bus queues
KR102536546B1 (ko) 2017-06-29 2023-05-30 애플 인크. 센서들 및 햅틱들을 갖는 핑거 장착형 디바이스
US10831409B2 (en) * 2017-11-16 2020-11-10 International Business Machines Corporation Volume reconfiguration for virtual machines
US10795438B2 (en) 2018-04-05 2020-10-06 Apple Inc. Electronic finger devices with charging and storage systems
US10733131B1 (en) 2019-02-01 2020-08-04 Hewlett Packard Enterprise Development Lp Target port set selection for a connection path based on comparison of respective loads
US11755107B1 (en) 2019-09-23 2023-09-12 Apple Inc. Finger devices with proximity sensors
US11005924B1 (en) * 2020-04-01 2021-05-11 Netapp, Inc. Disparity of quality of service (QoS) settings of volumes across a cluster
US11140219B1 (en) 2020-04-07 2021-10-05 Netapp, Inc. Quality of service (QoS) setting recommendations for volumes across a cluster
US11709554B1 (en) 2020-09-14 2023-07-25 Apple Inc. Finger devices with adjustable housing structures
US11287886B1 (en) 2020-09-15 2022-03-29 Apple Inc. Systems for calibrating finger devices
US11693563B2 (en) 2021-04-22 2023-07-04 Netapp, Inc. Automated tuning of a quality of service setting for a distributed storage system based on internal monitoring
US11922043B2 (en) * 2021-06-08 2024-03-05 EMC IP Holding Company LLC Data migration between storage systems
CN113485644A (zh) * 2021-07-05 2021-10-08 深圳市杉岩数据技术有限公司 一种io数据存储方法和服务器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000072538A (ja) * 1998-08-25 2000-03-07 Murata Mfg Co Ltd チタン酸バリウム系セラミックの製造方法
JP2002108567A (ja) * 2000-09-28 2002-04-12 Hitachi Ltd 記憶制御装置
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
US20030220991A1 (en) * 2002-05-21 2003-11-27 Kenichi Soejima Storage configuration changing apparatus and method thereof
US20040054866A1 (en) * 1998-06-29 2004-03-18 Blumenau Steven M. Mapping of hosts to logical storage units and data storage ports in a data processing system
JP2005323245A (ja) * 2004-05-11 2005-11-17 Hitachi Ltd 仮想ストレージの通信品質制御装置
JP2007072538A (ja) * 2005-09-05 2007-03-22 Hitachi Ltd ストレージ仮想化装置のデバイス制御引継ぎ方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4651230B2 (ja) 2001-07-13 2011-03-16 株式会社日立製作所 記憶システム及び論理ユニットへのアクセス制御方法
WO2001090902A1 (en) * 2000-05-23 2001-11-29 Sangate Systems, Inc. Method and apparatus for data replication using scsi over tcp/ip
JP2001337790A (ja) * 2000-05-24 2001-12-07 Hitachi Ltd 記憶システム及びその階層管理制御方法
JP2006134204A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd リモートコピーシステムおよびその制御方法
JP2006178811A (ja) 2004-12-24 2006-07-06 Hitachi Ltd ストレージシステム及びストレージシステムのパス制御方法
US7200704B2 (en) 2005-04-07 2007-04-03 International Business Machines Corporation Virtualization of an I/O adapter port using enablement and activation functions
JP5057656B2 (ja) * 2005-05-24 2012-10-24 株式会社日立製作所 ストレージシステム及びストレージシステムの運用方法
JP4776307B2 (ja) * 2005-08-31 2011-09-21 株式会社日立製作所 ストレージシステム、データ転送方法及びプログラム
US7987326B2 (en) * 2007-05-21 2011-07-26 International Business Machines Corporation Performing backup operations for a volume group of volumes
US8210708B2 (en) 2008-11-18 2012-07-03 Smart Candle, Llc Induction rechargeable electronic candle system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054866A1 (en) * 1998-06-29 2004-03-18 Blumenau Steven M. Mapping of hosts to logical storage units and data storage ports in a data processing system
JP2000072538A (ja) * 1998-08-25 2000-03-07 Murata Mfg Co Ltd チタン酸バリウム系セラミックの製造方法
JP2002108567A (ja) * 2000-09-28 2002-04-12 Hitachi Ltd 記憶制御装置
US7181607B2 (en) * 2000-09-28 2007-02-20 Hitachi, Ltd. Storage control apparatus
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
US20030220991A1 (en) * 2002-05-21 2003-11-27 Kenichi Soejima Storage configuration changing apparatus and method thereof
JP2003337721A (ja) * 2002-05-21 2003-11-28 Hitachi Ltd ストレージ構成自動変更装置及び方法
JP2005323245A (ja) * 2004-05-11 2005-11-17 Hitachi Ltd 仮想ストレージの通信品質制御装置
JP2007072538A (ja) * 2005-09-05 2007-03-22 Hitachi Ltd ストレージ仮想化装置のデバイス制御引継ぎ方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514584A (ja) * 2009-12-16 2013-04-25 シマンテック コーポレーション 仮想環境におけるストレージの可視性
JP2013527942A (ja) * 2010-07-16 2013-07-04 株式会社日立製作所 記憶制御装置、又は複数の当該記憶制御装置を有する記憶システム
US8756392B2 (en) 2010-07-16 2014-06-17 Hitachi, Ltd. Storage control apparatus and storage system comprising multiple storage control apparatuses
JP2014215666A (ja) * 2013-04-23 2014-11-17 富士通株式会社 制御システム,制御装置及び制御プログラム
JP2015115630A (ja) * 2013-12-09 2015-06-22 株式会社日立製作所 計算機システム、アドレス管理装置およびエッジノード
JP2014209364A (ja) * 2014-06-18 2014-11-06 株式会社日立製作所 記憶制御装置、又は複数の当該記憶制御装置を有する記憶システム

Also Published As

Publication number Publication date
US20090287898A1 (en) 2009-11-19
EP2120138A2 (en) 2009-11-18
US8032730B2 (en) 2011-10-04
EP2120138A3 (en) 2011-01-19

Similar Documents

Publication Publication Date Title
JP2009277211A (ja) ストレージシステムでi/oプライオリティを制御する方法及び装置
US7849265B2 (en) Avoiding use of an inter-unit network in a storage system having multiple storage control units
US10880235B2 (en) Remote shared server peripherals over an ethernet network for resource virtualization
US8732339B2 (en) NPIV at storage devices
US8429446B2 (en) Method and apparatus for managing virtual ports on storage systems
US8898346B1 (en) Method and system for configuring network devices
EP2112589B1 (en) Method and apparatus for HBA migration
JP4859471B2 (ja) ストレージシステム及びストレージコントローラ
JP4620776B2 (ja) ネットワークに付属する物理的なポートの仮想インスタンスを管理するための方法およびシステム
JP4372553B2 (ja) 仮想エンクロージャを通してストレージエリアネットワーク内のストレージの仮想化を実現する方法および装置
TWI439867B (zh) 動態實體及虛擬多重路徑輸入/輸出
US20050010688A1 (en) Management device for name of virtual port
US8055736B2 (en) Maintaining storage area network (‘SAN’) access rights during migration of operating systems
US20160224479A1 (en) Computer system, and computer system control method
US10229085B2 (en) Fibre channel hardware card port assignment and management method for port names
US20160216895A1 (en) Method and Apparatus for Providing Virtual Machine Information to a Network Interface
US11700214B1 (en) Network interface and buffer control method thereof
US9164947B1 (en) Method and system for inserting cookies in I/O commands

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100903

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100903

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121012

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130402