JP5489601B2 - 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム - Google Patents

物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム Download PDF

Info

Publication number
JP5489601B2
JP5489601B2 JP2009197241A JP2009197241A JP5489601B2 JP 5489601 B2 JP5489601 B2 JP 5489601B2 JP 2009197241 A JP2009197241 A JP 2009197241A JP 2009197241 A JP2009197241 A JP 2009197241A JP 5489601 B2 JP5489601 B2 JP 5489601B2
Authority
JP
Japan
Prior art keywords
virtual
hba
physical
client
module
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.)
Active
Application number
JP2009197241A
Other languages
English (en)
Other versions
JP2010113707A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010113707A publication Critical patent/JP2010113707A/ja
Application granted granted Critical
Publication of JP5489601B2 publication Critical patent/JP5489601B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、一般には、コンピューティング装置及び情報記憶装置に関し、更に詳しく言えば、コンピューティング装置及び情報記憶装置の動的な物理及び仮想マルチパス入出力(I/O)に関する。
通常のタイプのコンピューティング装置は、デスクトップ・コンピュータ及びサーバ装置である。情報記憶に関して、益々一般的な技術はストレージ・エリア・ネットワーキング、又は、単にストレージ・エリア・ネットワーク(SAN)と呼ばれている。SAN技術は、ディスク・アレイおよび光学的記憶装置アレイのような遠隔のコンピュータ記憶装置を、その記憶装置を共用するコンピューティング装置及びオペレーティング・システムにとってその記憶装置がローカル接続された装置のように見えるような方法で、サーバ及び他のコンピューティング装置に接続することを含む。
多くの場合、ファイバ・チャネル・スイッチは、サーバ及び他のコンピューティング装置をSANに接続する。一般的なファイバ・チャネルSANでは、入出力コントローラ(IOC)又はホスト・バス・アダプタ(HBA)が、ファイバ・チャネル・リンクを介してファイバ・チャネル・スイッチ又はジャスト・ア・バンチ・オブ・ディスク(Just a Bench Of Disk - JBOD)に接続されたNポートを含む。初期化時に、ホスト・オペレーティング・システム(OS)のドライバはファイバ・チャネル・シーケンスを初期化し、Nポートに対するワールド・ワイド・ポート・ネーム(World-Wide Port Name - WWPN)を含むファブリック・ログイン・コマンド(FabricLogin command - FLOGI)をファイバ・チャネル・スイッチへHBAに送らせる。ファイバ・チャネル・スイッチは、Nポートに対するWWPNに関連したファイバ・チャネル・アドレス又は仮想識別子(仮想ID)を含むFLOGI応答をNポートに返送する。
ドライバは、それがHBAを介してファイバ・チャネル・スイッチとコミュニケートし、そのファブリックにおけるすべての装置のアドレスのリストを得るディスカバリ機能も遂行する。その場合、ディスカバリ機能は、すべてのアドレスにゴー・アウト(goout)すること、そのアドレスに関連した装置にログインすること、及びその装置がファイバ・チャネル/スモール・コンピュータ・システム・インターフェース(SCSI)ターゲットであるかどうか決定することを含む。その装置がファイバ・チャネル/SCSIターゲットである場合、ディスカバリ機能はそのターゲットとHBAとの間の接続を確立する。さらに、物理ファイバ・チャネル・リンクがSCSIバスとしてOSにエクスポートされ、その後、ディスカバされたFC/SCSI装置に関連した遠隔のポートが、一般的なSCSI態様でSCSIバス上にターゲットとして現われる。
一般的なファイバ・チャネルSANは、単一のファイバ・チャネル・リンク上のNポートに1つのWWPN及びファイバ・チャネル・アドレスしか割り当てることができないので、制限される。言い換えれば、通常のコンピューティング・モデルは、OSが明示的にファイバ・チャネル・ポートを所有するよう、1つのコンピューティング装置当たり単一のOSを意図している。従って、ファイバ・チャネル・ポートに基づいて、ゾーニング及び選択的記憶装置表示/論理ユニット番号(LUN)マスキングようなシステム管理ツールが定義された。
しかし、ファイバ・チャネルSAN技術は、NポートID仮想化(NPIV)を含むように拡張された。NPIVは、物理ファイバ・チャネル・ポートを仮想化するための標準化された方法である。NPIVは、ファイバ接続されたNポートが多数のファイバ・チャネル・アドレスを要求することを可能にする。各アドレスがファイバ・チャネル・ファブリック上に一意的エンティティとして現われる。NPIVを利用すると、ファイバ・チャネル・スイッチによって認識し得る多数のWWPN及びファイバ・チャネル・アドレスを、単一の物理ファイバ・チャネル・リンク及びNポートに割り当てることが可能である。従って、物理ファイバ・チャネル・ポートがファブリックに対する多数のエンティティとして現われるのを可能にすることは、通常のコンピューティング・モデルを拡張又は拡大する。
技術者は、コンピューティング装置の物理プロセッサとSANとの間に多数の物理パスを作成することによってSANの耐障害性及び性能を改善した。多数の物理パスは、一般に、多数のバス、多数のコントローラ、多数のスイッチ、及び多数のブリッジ装置のような装置を介してI/Oパスを作成することに関与する。多数のパスを作成する技術は、一般に、マルチパスI/Oと呼ばれる。マルチパスI/Oの既存の具現化方法は、専用のファイバ・チャネル・ホスト・バス・アダプタ、スイッチ・ポート、ケーブル、及び他の物理資源要素のような専用の物理資源を使用する。
以下は、添付の図面に示された実施例の詳細な説明である。その説明は、実施例の種々の側面を明瞭に伝える程度に詳細なものである。しかし、提示された詳細の趣旨は、実施例の予想される変更を制限することを意図していない。一方、その真意は、「特許請求に範囲」によって定義されるような種々の実施例に関するすべての修正案、均等物、及び代替案をカバーすることである。下記の詳細な説明は、そのような実施例を当業者にとって明瞭にすることを目的とする。
本発明の目的は、物理及び仮想マルチパスI/Oを動的に管理する方法、装置、システム、及びコンピュータ・プログラムを提供することにある。
種々の実施例は、少なくとも2つのHBAを有する1つ又はそれ以上のサーバのような1つ又はそれ以上のコンピューティング装置を含む。HBAの少なくとも1つは、そのHBAを使って複数の仮想クライアントとストレージ・エリア・ネットワークの1つ又はそれ以上の記憶装置との間でデータを転送するという仮想I/Oサーバに関連する。実施例は、HBA又はそのHBAに結合された装置の故障に関してHBAを監視するというような、HBAの可用性を監視し得る。HBAの1つの使用不可を検出するとき、実施例は、その使用不可のHBAに関連したI/Oパスから代替のHBAに動的に切り替わり得る。
或る実施例は、第1の物理HBAを介して仮想クライアントがストレージ・ネットワークにおける1つの記憶装置とその仮想クライアントとの間でデータを転送することを可能にすること、仮想I/Oサーバが第2の物理HBAを介してその記憶装置とその仮想I/Oサーバとの間でのデータを転送することを可能にすること、及び仮想I/Oサーバおよび第2の物理なHBAを介して仮想クライアントがその記憶装置とその仮想クライアントとの間でデータを転送することを動的に可能にすることを含む方法を含む。
更なる実施例は、仮想クライアント・モジュールに、第1の物理HBA及び仮想I/Oサーバ・モジュールを介してネットワークへデータを転送させて、第2の物理HBAを介してそのネットワークへデータを転送させる、装置を含む。その実施例は、更に、仮想クライアント・モジュールを仮想I/Oサーバ・モジュールに結合するための仮想マシン・モニタを有する。これらの実施例の仮想I/Oサーバは、仮想クライアントが第2の物理HBAを仮想HBAとしてアクセスすることを可能にするように構成され得る。更に、仮想クライアント・モジュール、仮想I/Oサーバ、又は仮想マシン・モニタは、仮想クライアント・モジュールが第2の物理HBAを介してネットワークへデータを転送することを動的に可能にするように構成され得る。
更なる実施例は、第1のファイバ・チャネルHBAを介してSANへデータを転送する仮想クライアント・モジュールと、第2のファイバ・チャネルHBAを介してSANにデータを転送する仮想I/Oサーバ・モジュールと、仮想I/Oサーバ・モジュールに仮想クライアント・モジュールを結合する仮想マシン・モニタとを有するシステムを含む。そのシステムの実施例の仮想I/Oサーバは、仮想クライアント・モジュールが第2のファイバ・チャネルHBAを仮想ファイバ・チャネルHBAとしてアクセスすることを可能にする。そのシステムの実施例は、仮想クライアント・モジュールが、第2のファイバ・チャネルHBAの故障時に、第1のファイバ・チャネルHBAを介してSANへデータを転送することを動的に可能にするために、その仮想クライアント・モジュールのマルチパスI/Oモジュールを更に含む。
更なる実施例は、命令を含むコンピュータ可読記憶媒体を備えたコンピュータ使用可能媒体を含むコンピュータ・プログラム製品を更に含み、その命令は、それが少なくとも1つのプロセッサによって実行されるとき、第1の物理HBAを介して記憶装置のネットワークへデータを転送し、第2の物理HBAを介してそのネットワークへデータを転送する。命令は、仮想HBAとして構成された第2の物理HBAと共に、複数の仮想クライアントのための第2の物理HBAを介してネットワークへデータを転送し得る。命令は、更に、複数の仮想クライアントの1つが、第1の物理HBA及び第2の物理HBAの1つの故障時に、第1の物理HBA及び第2の物理HBAの1つを介してネットワークをアクセスすることを動的に可能にし得る。
種々の実施例の諸側面は、下記の詳細な説明を読めば、及び同じ参照番号が同様の素子を指す添付図面を参照すれば、明らかになるであろう。
2つのプロセッサ、仮想マシン・モニタ、ディスプレイ、及び種々の入出力装置を含み、物理及び仮想マルチパスI/Oの動的管理を遂行し得るシステムの実施例を示すブロック図である。
仮想クライアントに直接接続された物理ファイバ・チャネル・カードと仮想I/Oサーバを介して接続された1個以上のファイバ・チャネル・カードとの間のマルチパスI/Oを動的に管理し得る方法を示すブロック図である。
仮想I/Oパスと物理I/Oパスの間のマルチパスI/Oを動的に管理し得る装置の一実施例を示すブロック図である。
1つの実施例が仮想クライアント、仮想I/Oサーバ、仮想マシン・モニタをロードする方法及び使用不可のHBAから使用可能なHBAに切り替わる方法を示すフローチャートである。
物理及び仮想マルチパスI/Oを動的に管理する方法を示すフローチャートである。
以下は、添付図面に示された新規な実施例の詳細な説明である。実施例は主題を明瞭に伝えるように詳細なものである。しかし、提示された詳細の程度は、記載された実施例の予期される変更を制限することを意図するものではない。むしろ、「特許請求の範囲」及び「発明を実施するための形態」の項は、「特許請求の範囲」によって定義されるような教示事項の主旨及び範囲内にあるすべての修正案、均等物、及び代替案をカバーするためのものである。以下の詳細な説明は、そのような実施例を当業者にとって理解可能にすることを目的とする。
以下の記載の多くにおいて、用語「サーバ」を使用して多数の実施例が考察される。用語「コンピューティング装置」も使用される。それでも、これらの用語の使用は、当業者に対する説明を目的とするものである。本明細書における教示は、一般に、SANを含むネットワークに結合された多数のタイプのコンピューティング装置と共に使用され得る。
次に図面に説明を転じると、図1は、2つのプロセッサ140及び150、メモリ・コントローラ・ハブ(MCH)116、メモリ104、及びI/Oコントローラ・ハブ(ICH)120を備えたシステム100を示す。多くの実施例において、システム100はサーバを含み得る。他の実施例では、システム100は、メインフレーム・コンピュータもしくはメインフレーム・コンピュータ・システムの一部、デスクトップ・コンピュータ、又はノートブック型コンピュータのような種々のタイプのコンピューティング装置を含み得る。
プロセッサ140及び150は、コア142、143、152、及び153のような多くのコアを有し、それらのコアは、プロセッサ140及び150のキャッシュ・メモリ素子と結合されてもよい。例えば、プロセッサ150は、内部プロセッサ・キャッシュ・メモリと結合されたコア152及び153を有する。プロセッサの数及びコアの数は実施例によって変わり得る。例えば、システム100は2つのプロセッサ140及び150を持ち得るが、別の実施例では、1個、4個、8個、又は他の幾つかの数のような他の数のプロセッサを持ち得る。プロセッサのコアの数も、1個のコア、4個のコア、5個のコア、又は他の数のコアように種々の実施例において変わり得る。
図1に示されるように、システム100は、仮想クライアント(V.C.)110のようなメモリ104の1つ又はそれ以上の仮想クライアントにおいて、アプリケーション(APPS)111のような多くのアプリケーションを実行し得る。例えば、システム100は、コンピューティング・ボードのような大型のサーバ・システムの一部又はラックマウント・サーバにおけるブレード・サーバを含み得る。プロセッサ140及び150は、システム100のユーザによって実行されるプログラム及びアプリケーション111のための動作命令を実行し得る。アプリケーション111は、例えば、ネットワーク・メール・プログラム、並びに、ワード処理アプリケーション及びコンピュータ支援設計(CAD)アプリケーションのようないくつかの生産性向上アプリケーションを含み得る。
プロセッサ140及び150は、MCH116と対話することによってメモリ104における命令を実行し得る。メモリ104を含むタイプのメモリ装置は、種々の実施例において変わり得る。或る実施例では、メモリ104は、4個の4ギガバイト(GB)のダイナミック・ランダム・アクセス・メモリ(DRAM)スティックのような揮発性メモリ素子を含み得る。或る実施例は、少量または多量のメモリを含み得る。例えば、或る実施例は128GBのRAMを含み得るが、他の実施例は、512GBのようなもっと多くのメモリを含み得る。別の実施例では、メモリ104は不揮発性メモリを含み得る。例えば、或る実施例では、メモリ104は、64GBのフラッシュ・メモリ・モジュールのようなフラッシュ・メモリ・モジュールを含み得る。
更に図1に示されるように、システム100は、仮想クライアント110及び仮想I/Oサーバ(VIOS)108のような1つ又はそれ以上の仮想マシンを管理するハイパーバイザのような仮想マシン・モニタ(VMM)114を備え得る。言い換えれば、仮想マシン・モニタ114は、多数のオペレーティング・システムがシステム100において同時に稼動することを可能にし得る。図1の実施例では、仮想マシン・モニタ114は、いずれのオペレーティング・システムからも独立した、メモリ104にロードされたアプリケーションを含み得る。
種々の実施例において、仮想マシン・モニタ114は種々の形式で存在し得る。例えば、1つの実施例では、仮想マシン・モニタ114は、プロセッサ140又はプロセッサ150に結合されたファームウェアを含み得る。他の実施例では、仮想マシン・モニタ114は、オペレーティング・システムの一部としてロードされた、又はオペレーティング・システムの後にロードされたソフトウェア・アプリケーションを含み得る。即ち、仮想マシン・モニタ114は、オペレーティング・システムによって実行されるアプリケーションを含み得る。或る実施例は独立した仮想マシン・モニタを持たないことがある。その場合、オペレーティング・システムは、仮想マシン・モニタ又はハイパーバイザの機能を遂行し得る。仮想マシンの数は、実施例によっても変わり得る。
仮想クライアント110及び仮想I/Oサーバ108は、それぞれ、自立型動作環境を形成するソフトウェア・プログラムの集合体を含み得る。仮想クライアント110及び仮想I/Oサーバ108は仮想マシン・モニタ114から独立して、しかしそれと関連して動作し得る。例えば、仮想I/Oサーバ108は、仮想クライアント110及び他の仮想クライアントが種々の物理I/Oハードウェア素子と対話することを可能にするように仮想マシン・モニタ114と関連して作動し得る。
ICH120は、プロセッサ140及び150がキーボード、スキャナ及びデータ記憶装置のような外部周辺装置と対話することを可能にし得る。プロセッサ140及び150によって実行されているプログラム及びアプリケーションは外部周辺装置と対話し得る。例えば、プロセッサ140及び150は、例えば、アドバンスト・グラフィックス・ポート(AGP)ビデオ・カードに結合されたディスプレイ160を介してユーザに情報を提示し得る。そのタイプのコンソール又はディスプレイ装置は、例えば、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)スクリーン、又は薄膜トランジスタ・フラット・パネル・モニタであってもよい。
ディスプレイ160は、ユーザが画面を見てアプリケーション111と対話することを可能にし得る。例えば、ディスプレイ160は、ユーザがアプリケーション111のCADプログラムを実行すること、及びファイバ・チャネル・アダプタ170を介してシステム100に結合されたストレージ・エリア・ネットワークへの図面情報を格納することを可能にし得る。システム100の別の実施例は、多数のファイバ・チャネル・アダプタ170を含み得る。更に、或る実施例では、ユーザまたはシステム管理者は、ディスプレイ160を使って仮想マシン・モニタ114、仮想I/Oサーバ108、及び仮想クライアント110の構成情報を見て変更し得る。例えば、システム管理者は、仮想マシン・モニタ114が多数の仮想マシンを管理するために必要なパーティション情報を設定し得る。
種々の実施例において、ICH120は、プロセッサ140及び150が1つ又はそれ以上のファイバ・チャネル装置を介してストレージ・エリア・ネットワークの記憶装置にデータを格納すること、及びその記憶装置からデータを検索することを可能にし得る。例えば、システム100は、ファイバ・チャネル・アダプタ170に結合されたSANスイッチを介してアプリケーション111がSANにデータを格納することを可能にし得る。仮想クライアント110は、専用の記憶装置がファイバ・チャネル・アダプタ170に取り付けられるように構成されてもよい。SANスイッチのようなファイバ・チャネル・アダプタ170に結合された素子の故障の場合、それにもかかわらず、仮想クライアント110は、仮想I/Oサーバ108、仮想マシン・モニタ114、及び、ICH120を介して別のファイバ・チャネル・アダプタに結合された別のSANスイッチのような代替の記憶装置、を介して情報を格納及び/又は検索し得る。
別の実施例では、ICH120は、プロセッサに140及び150が、1つ又はそれ以上のユニバーサル・シリアル・バス(USB)から、ペリフェラル・コンポーネント・インターコネクト(PCI)コントローラ162及びUSBアダプタ164に結合されたUSB装置を介して、データを格納及び検索することを可能にし得る。1つの実施例では、仮想クライアント110は、仮想I/Oサーバ108、仮想マシン・モニタ114、及びUSBアダプタ164に結合された一次USBハード・ドライブを介して情報を格納及び/又は検索するように構成され得る。一次USBハード・ドライブの素子の故障の場合、それにもかかわらず、仮想クライアント110は、USBアダプタ164又は二次USBアダプタに結合された専用の二次USBハード・ドライブを介して情報を格納及び/又は検索し得る。
プロセッサ140及び150は、更に、PCIコントローラ162及び通信アダプタ166を介してデータを送り及び受け取り得る。通信アダプタ166は、例えば、ネットワーク・インターフェース・カード(NIC)を含み得る。システム100は、1つ又はそれ以上の実行アプリケーション111が仮想クライアント110とインターネット・スモール・コンピュータ・システムス・インターフェース(iSCSI)SANのハード・ディスクとの間でデータを転送することを可能にし得る。例えば、システム100は、いくつかの仮想クライアントが1つ又はそれ以上の論理パーティション(LPAR)に置かれるようにし得る。仮想クライアント110は1つの論理パーティションに存在し得るし、仮想I/Oサーバ108は別の論理パーティションに存在し得る。システム100は、仮想クライアント110が、通信アダプタ166を使用して、関連するNICを介して一次iSCSIハード・ディスクとコミュニケートすること、並びにその一次iSCSIハード・ディスクへ/一次iSCSIハード・ディスクから情報を転送することを可能にし得る。システム100の実施例は、一次iSCSIハード・ディスクの故障又はメンテナンスの場合、又はiSCSIハード・ディスク及び通信アダプタ166の間の相互接続ネットワーク装置の故障又はメンテナンスの場合、仮想クライアント110が、仮想I/Oサーバ108に結合された二次通信アダプタ及び二次NICとを使って二次iSCSIハード・ディスクへ/二次iSCSIハード・ディスクから情報を転送することを可能にし得る。
別の実施例は、通信アダプタ166のために種々の技術を様々に使用し得る。例えば、1つの実施例は仮想光ファイバ・バスを利用し得るし、一方、別の実施例は通信アダプタ166のための高速リンク(HSL)光学的接続を使用し得る。
USBアダプタ164及び通信アダプタ166に加えて、ICH120は、システム100のアプリケーション111が、アドバンスト・テクノロジ・アタッチメント(ATA)ハード・ドライブのようなATA装置、ディジタル・バーサタイル・ディスク(DVD)ドライブ、及びCDリード・オンリ・メモリ(ROM)ドライブ128のようコンパクト・ディスク(CD)ドライブと対話することも可能にし得る。図1に示されるように、システム100はSATAハード・ドライブ130のようなシリアルATA(SATA)ドライブも持ち得る。SATAハード・ドライブ130は、例えば、種々のパーティションに対する多数のオペレーティング・システム、装置ドライバ、及びシステム100の仮想クライアントのためのアプリケーション・ソフトウェアを格納するために使用されてもよい。例えば、SATAハード・ドライブ130は、AIX(商標)、Linux(商標)、Macintosh(商標)OS X、Windows(商標)、又はシステム100が1つ又はそれ以上のLPARにロードする他のオペレーティング・システムを格納し得る。
種々の実施例において、ICH120は、仮想マシン・モニタ114によって管理されたパーティションにおけるアプリケーションが不揮発性メモリ118に情報を格納及び検索すること、並びにアプリケーション特有の集積回路(ASIC)124と対話することを可能にし得る。例えば、不揮発性メモリ118は、或る実施例ではフラッシュ・メモリを含み得るが、他の実施例ではプログラマブル・リード・オンリ・メモリ(PROM)又は他のタイプのメモリを含み得る。不揮発性メモリは、例えば、仮想クライアントが使用のために構成される特定の物理及び仮想ファイバ・チャネル・アダプタのような一次及び二次仮想/物理I/Oパスを格納するために使用されてもよい。ICH120は、仮想マシン・モニタ114によって管理されたパーティションにおけるアプリケーションが、SCSIアダプタ132に結合されたSCSI装置を使用してデータを格納及び検索することも可能にし得る。
別の実施例は、例えば、サウンド・カード、スキャナ、及びプリンタのような図1に示されてない種々のタイプのハードウェアを有するシステム100において物理及び仮想マルチパスI/Oを管理し得る。例えば、システム100は、スキャナからデータを転送して、ファイバ・チャネル・アダプタ170に結合されたSANスイッチを介して接続しているSANネットワークにそのデータを格納し、SANスイッチに関する問題に遭遇し、仮想I/Oサーバ108を介して、SANネットワークに結合された別のSANスイッチにフェイルオーバすることを可能にするというプロセスにあることがある。逆に、別の実施例では、システム100は、図1に示された実施例に関して説明したすべての要素を含むとは限らないことがある。例えば、システム100の或る実施例は、SCSIアダプタ132、PCIコントローラ162、USBアダプタ164、CD-ROMドライブ128、及びASIC124の1つ又はそれ以上を含まないことがある。
次に図2に説明を転じて、システム又は装置200が物理及び仮想マルチパスI/Oを動的に管理する方法に関して更に詳しい説明を行う。図2は、実施例が、SAN270に接続された物理及び仮想ファイバ・チャネルに対するI/Oを動的に管理する方法を示す。例えば、仮想マシン・モニタ250及びプロセッサ262は、それぞれ、図1における仮想マシン・モニタ114、プロセッサ140及び150のような装置又はシステムの要素を構成し得る。
仮想マシン・モニタ250は、ハードウェア層266の1つ又はそれ以上の要素が多数の論理パーティションに分けられ且つパーティション間の分離を保証することを可能にし得る。例えば、仮想マシン・モニタ250は、装置200が動作しているときにはいつも動作し、プロセッサ262の共用の物理プロセッサに仮想マシン・クライアント及び仮想I/Oサーバの論理パーティション・ワークロードをディスパッチし得る。図2は、2つの仮想クライアント、即ち、Linuxクライアント230、及びAIXクライアント235を示す。なお、各クライアントは独立した論理パーティションにある。仮想マシン・モニタ250は、パーティション・セキュリティを強化し得るし、仮想I/Oサーバ(VIOS)210のための仮想SCSI及び仮想イーサネット機能を可能にするパーティション間のコミュニケーションを行い得る。
仮想マシン・モニタ250は、物理ハードウェア資源を使用してハードウェア層266の物理ハードウェア資源と論理パーティションとの間に抽象層を提供し得る。仮想マシン・モニタ250は、物理プロセッサ262への仮想プロセッサのディスパッチを制御し、仮想プロセッサ・コンテキストの切り替え時にプロセッサ状態情報を保存/復元し、ハードウェアI/O割り込み及びパーティションに対する管理機構を制御し得る。更に、仮想マシン・モニタ250は、装置200の論理パーティションに対するリモート・ダイレクト・メモリ・アクセス(RDMA)サービスを提供し得る。例えば、仮想マシン・モニタ250は、パーティションのアプリケーション・メモリ間のデータをパーティションに対するオペレーティング・システムのデータ・バッファにコピーすることを必要とせずに、メモリ・モジュール264におけるメモリのセクションを含み得る仮想層205のクライアントからI/Oスロット252及び256並びにファイバ・チャネル・カード254及び258へ、データが直接に移動することを可能にし得る。
装置200は仮想層205に示された2つの仮想マシン・クライアント、即ち、Linuxクライアント230及びAIXクライアント235を含む。例えば、Linuxクライアント230は1つのLPARに存在し得るし、一方、AIXRクライアント235は別のLPARに存在し得る。装置200のLPARは、マイクロプロセッサ資源、メモリ資源、及びI/O資源の論理的なグループ化又はパーティション化とも呼び得る。
資源の量は種々の実施例において変わり得るし、装置内の資源必要度及び資源利用度に従って、単一の実施例においてさえ変わり得る。例えば、装置200がプロセッサ資源を物理プロセッサの単一のプールからLPARに割り付けるように、1つ又はそれ以上のLPARが、マイクロ・パーティションと代替的に呼ばれる共用のプロセッサ・パーティションを含み得る。実施例によっては、装置200がマイクロ・パーティションを割り付けるプロセッサ容量の大きさは、例えば、物理プロセッサの10パーセント(10%)から物理共用プロセッサ・プールの全容量までの範囲で変わり得る。多くの実施例では、仮想I/Oサーバ210又はAIXクライアント235のような各仮想マシンは、専用プロセッサ・パーティション又はマイクロ・パーティションのいずれかにおいて実行され得る。
図2が示すように、装置は、I/Oスロット252、256、及び280のような多数のI/Oスロットを持ち得る。1つ以上のI/Oスロット252、256、及び280は、例えば、8GbのPCIeホスト・バス・アダプタI/Oスロットを含み得る。図2は、3つのI/Oスロットしか持たない装置200だけを示すが、別の実施例は、もっと少ない又はもっと多いI/Oスロットを持ち得る。例えば、或る実施例は8個、16個、32個、又はもっと多くのI/Oスロットを含み得る。装置200の各I/Oスロットはファイバ・チャネル・インターフェース・カードを有する。I/Oスロット252はファイバ・チャネル・カード254に結合され、一方、I/Oスロット256及び280は、それぞれ、ファイバ・チャネル・カード258及び282に接続される。
実施例によっては、仮想I/Oサーバは、装置又はホスト・システムを他のネットワーク及び記憶装置に接続するために、1つまたはそれ以上のファイバ・チャネル・カード、ホスト・コントローラ、ホスト・アダプタ、及びホスト・バス・アダプタ(HBA)を使用し得る。上記の説明で使用されたカード及びアダプタという用語は、SCSI、ファイバ・チャネル、及びeSATA装置を接続するための装置を指し得る。更に、ホスト・システムをIDE、イーサネット、FireWire、USB、及び他のシステムに接続する装置を指すために、当業者は、多くの場合、そのような用語を「ホスト・アダプタ」として使用し得る。更に、或る実施例は、イーサネットHBAがハードウェアのiSCSI専用TCP Offload Engineを含み得るという点でイーサネットNICとは異なるイーサネットHBAのような要素を、iSCSIの導入に伴って使用し得る。別の実施例は、物理及び仮想マルチパスI/Oを動的に管理するとき、ネットワーク及び記憶装置の接続のために1つ又はそれ以上の種々のタイプの各装置を使用し得る。
装置200の管理者は、I/Oスロット280及びファイバ・チャネル(FC)・カード282をAIXクライアント235に対して専用にし、AIXクライアント235及び/または仮想マシン・モニタ250を構成し得る。例えば、仮想マシン・モニタは、AIXクライアント235だけがI/Oスロット280及びファイバ・チャネル・カード282を介してSANスイッチ290とコミュニケートすることを可能にするように構成され、Linuxクライアント230のような他の仮想クライアントがI/Oスロット280及びファイバ・チャネル・カード282をアクセスしないように又はそれらを使用しないようにし得る。
多くの実施例において、仮想I/Oサーバ210のような仮想I/Oサーバは、仮想SCSIターゲット及び共用のイーサネット機能をLinuxクライアント230及びAIXクライアント235に与えて、Linuxクライアント230及びAIXクライアント235がSCSI装置及びイーサネット・アダプタを共用することを可能にする。例えば、装置200の管理者は、ファイバ・チャネル・カード254を備えたI/Oスロット252及びファイバ・チャネル・カード258を備えたI/Oスロット256を仮想I/Oサーバ210の専用にするように仮想I/Oサーバ210及び/または仮想マシン・モニタ250を構成し得る。図2に示された態様で構成された仮想I/Oサーバ210は、SAN270の物理記憶資源の仮想化を可能にし得る。装置200のクライアント・パーティションは、仮想I/Oサーバ210によってクライアント・パーティションに仮想化記憶装置として表わされたSAN270の物理記憶装置をアクセスし得る。言い換えれば、装置200は、Linuxクライアント230及びAIXクライアント235のようなクライアント・パーティションが標準SCSI準拠の論理装置(LUN)として仮想SCSI装置をアクセスすることを可能にし得る。
NPIVを仮想I/Oサーバ210のアダプタ共用機能と結合すると、装置200は、ファイバ・チャネル・カード254及び258のような物理ファイバ・チャネル・ホスト・バス・アダプタが、Linuxクライアント230及びAIXクライアント235のようなシステムを操作する多数のゲスト又はクライアントの間で共用されることを可能にする。言い換えれば、装置200は、ファイバ・チャネル・カード254及び258のためのNPIVを実装して、各LPARが専用のWWPNを備えた仮想ファイバ・チャネルHBAを持つことを可能にする。各仮想ファイバ・チャネルHBAは、専用の物理HBAのSANアイデンティティに匹敵し得る一意的なSANアイデンティティを持ち得る。
装置200は、物理及び仮想マルチパスI/Oを動的に管理するためにNPIVを使用して、共用資源の余剰化を可能にし得る。装置200は、動的な物理及び仮想マルチパスI/Oを使用して、LPARから記憶装置への多数のパスを設けることによりデータ使用可能度を改善し得る。例えば、図2に示された装置200の実施例は、仮想I/Oサーバ210からSAN270への2つの異なるパスを提供する。例えば、ファイバ・チャネル・カード254が故障した場合、仮想I/Oサーバ210は、それにもかかわらず、I/Oスロット256、ファイバ・チャネル・カード258、及びSANスイッチ260を介してSAN270にデータを送り続け得る。
更に、仮想I/Oサーバ210は、I/Oスロット252及び256の両方のパスにI/Oワークロードを分散又は平衡化するようにそれらのパスを活性化して、装置200の性能を改善し得る。例えば、仮想I/Oサーバ210からSAN270へのデータ転送は、I/Oスロット256及びファイバ・チャネル・カード258だけを使用すると、平均7.5Gb/sに制限される。しかし、仮想クライアント・アクセスI/Oスロット252がある場合、仮想I/Oサーバ210は、I/Oスロット252及び256を操作することによって、平均15のGb/sに転送速度を増加させ得る。
装置200は、AIXクライアント235及びLinuxクライアント230が物理I/O及び仮想I/Oの両方をサポートすることを可能にし、一方、物理及び仮想I/Oは、装置200が動的な物理及び仮想マルチパスI/Oを実装することを可能にする。言い換えれば、物理及び仮想マルチパスI/Oを動的に管理することによって、装置200はLPARから記憶装置に物理パス及び仮想パスの両方を作成し得る。例えば、物理パスは専用のファイバ・チャネル・アダプタを含み得る。図2において、AIXクライアント235からの物理パスは、物理ファイバ・チャネルHBAドライバ244から仮想マシン・モニタ250を介してI/Oスロット280及びファイバ・チャネル・カード282、SANスイッチ290、及びSAN270へのパスを含み得る。AIXクライアント235からの仮想パスは、NPIVアダプタ・ドライバ242から仮想マシン・モニタ250を通ってNPIVアダプタ・ドライバ225へのパス、物理ファイバ・チャネルHBAドライバ215へのパス、仮想マシン・モニタ250を通ってI/Oスロット252及びファイバ・チャネル・カード254へのパス、SANスイッチ260及びSAN270へのパスを含み得る。
物理及び仮想マルチパスI/Oの動的管理のため、初期化中に、物理ファイバ・チャネルHBAドライバ215はファイバ・チャネル初期化シーケンスを開始し、ファイバ・チャネル・カード254に、ファイバ・チャネル・カードのNポートに対するワールド・ワイド・ポート名(WWPN)を含むファブリック・ログイン・コマンド(FLOGI)をSANスイッチ260へ送らせる。SANスイッチ260は、Nポートに対するWWPNに関連したFCアドレスを含むFLOGI応答をファイバ・チャネル・カード254のNポートに戻し得る。
物理ファイバ・チャネルHBAドライバ215は、その物理ファイバ・チャネルHBAドライバ215がファイバ・チャネル・カード254を介してSANスイッチ260と交信し、SANスイッチ260に関連したファブリックにおけるすべての装置のアドレスのリストを得るというディスカバリ機能も遂行し得る。そこで、物理ファイバ・チャネルHBAドライバ215は、すべてのアドレスを照会し、アドレスの各々に関連した装置の各々にログインし、その装置がファイバ・チャネル/SCSIターゲットであるかどうかを決定し得る。その装置がファイバ・チャネル/SCSIターゲットである場合、物理ファイバ・チャネルHBAドライバ215はそのターゲットとファイバ・チャネル・カード254との間の接続を確立し得る。更に、物理ファイバ・チャネルHBAドライバ215は、ファイバ・チャネル・カード254とSANスイッチ260との間の各関連した物理ファイバ・チャネル・リンクを仮想層205の仮想クライアントへのSCSIバスとして表わし、その後、ディスカバされたファイバ・チャネル/SCSI装置に関連した遠隔のポートがSCSIバス上にターゲットとして現われ得る。
装置200は、ファイバ・チャネル・カード254のNポートが多数のファイバ・チャネル・アドレスを要求することを可能にするためにNPIVを使用し得る。例えば、物理ファイバ・チャネルHBAドライバ215は、AIXクライアント235に対するファイバ・チャネル・アドレス及びLinuxクライアント230に対する第2のファイバ・チャネル・アドレスを要求し得る。各アドレスは、ファイバ・チャネル・ファブリックのための一意的なエンティティのように見えるかもしれない。言い換えれば、NPIVを利用することによって、SANスイッチ260によって認識可能な多数のWWPN及びファイバ・チャネル・アドレスが、単一の物理FCリンク及びNポートに割り当てられ得る。更に、仮想I/Oサーバ210及びAIXクライアント235は、それぞれ、NPIVアダプタ・ドライバ225及びNPIVアダプタ・ドライバ242のような仮想装置ドライバを含み得る。なお、仮想装置ドライバはNPIVをサポートすることができる。
多数のWWPN及びファイバ・チャネル・アドレスを単一の物理Nポートに割り当てることは、装置200が、独立したオペレーティング・システムを用いて多数の仮想クライアントを実行することを可能にし得る。ファイバ・チャネル・カード254のポートを単一の仮想クライアントに対して専用化する代わりに、各仮想クライアントの各オペレーティング・システムは、1つ又はそれ以上の一意的且つ専用のファイバ・チャネル・アドレスを、各ファイバ・チャネル・アドレスに対する関連した固有のWWPNと共に固有に有することが可能である。NPIVを使用して、装置200は、ファイバ・チャネル・カード258のような他のファイバ・チャネル・カードのNポートが多数のファイバ・チャネル・アドレスを要求することも可能にし得る。
装置200は、少ない物理資源を利用することによって動的な物理及び仮想マルチパスI/Oを、I/O余剰度を増加させるために使用し得る。例えば、AIXクライアント235が余剰のI/Oに対する2つの専用物理I/Oスロットを要求する代わりに、AIXクライアント235は1つの物理I/Oスロット及び関連のHBAを使用し得るが、VIOS210に関連した仮想HBAにフェイルオーバ・パスを提供する。更に詳細な例が、動的な物理及び仮想マルチパスI/Oのこの概念を説明する助けになるであろう。
図2に示されるように、装置200は、物理ファイバ・チャネルHBAドライバ244と結合されたファイバ・チャネル・カード282を含む単一の専用物理ファイバ・チャネルHBAと共に構成されたAIXクライアント235を有し得る。ファイバ・チャネル・カード282及び物理ファイバ・チャネルHBAドライバ244は、AIXクライアント235がSAN270にデータを格納するために及びSAN270からデータを検索するために使用する一次I/Oチャネルを構成し得る。
AIXクライアント235は、NPIVアダプタ・ドライバ242及びNPIVアダプタ・ドライバ243を含む2つの仮想ファイバ・チャネルHBAによっても構成される。例えば、AIXクライアント235と仮想I/Oサーバ210との間の1つの仮想ファイバ・チャネルI/Oパスは、NPIVアダプタ・ドライバ242とNPIVアダプタ・ドライバ225との間の仮想マシン・モニタ250によって提供される仮想パスを含み得る。第2の仮想ファイバ・チャネルI/Oパスは、NPIVアダプタ・ドライバ243とNPIVアダプタ・ドライバ223との間の仮想マシン・モニタ250によって提供される仮想パスを含み得る。
NPIVアダプタ・ドライバ225は、物理ファイバ・チャネルHBAドライバ215と結合して、仮想I/Oサーバ210がI/Oスロット252、ファイバ・チャネル・カード254、及びSANスイッチ260を介して装置200とSAN270との間でデータを転送することを可能にする。NPIVアダプタ・ドライバ223は、物理ファイバ・チャネルHBAドライバ220と結合して、I/Oスロット256、ファイバ・チャネル・カード258及びSANスイッチ260を介して装置200とSAN270との間でデータを転送することを可能にする。NPIVアダプタ・ドライバ225及び223、物理ファイバ・チャネルHBAドライバ215及び220、並びにファイバ・チャネル・カード254及び258は、AIXクライアント235がSAN270にデータを格納するために及びSAN270からデータを検索するために使用する二次及び三次のI/Oチャネルを含み得る。
マルチパスI/Oモジュール240は、種々の物理ファイバ・チャネルHBAと、AIXクライアント235が使用するように構成される仮想ファイバ・チャネルHBA I/Oデータ・パスとを識別し得る。更に、マルチパスI/O(MPIO)モジュール240は、個々の物理及び仮想I/Oデータ・パスの故障を動的に検出し、AIXクライアント235が代替のI/Oデータ・パスに対して動的にフェイルオーバすることを可能にし得る。例えば、或る動作モード中、AIXクライアント235は、物理ファイバ・チャネルHBAドライバ244によって表わされた一次I/Oチャネルを使用してAIXクライアント235とSAN270との間でデータを転送し得る。
ハードウェア問題に遭遇したSANスイッチ290のような故障又はメンテナンスの場合、マルチパスI/Oモジュール240は、物理ファイバ・チャネルHBAドライバ244に関連した故障を検出し、AIXクライアント235のための一次I/Oチャネルを、物理ファイバ・チャネルHBAドライバ244からNPIVアダプタ・ドライバ242に関連した二次I/Oチャネルに、切り替え得る。更に、二次I/Oチャネルの故障の場合、マルチパスI/Oモジュール240はその障害を検出し、AIXクライアント235のための現在アクティブなI/Oチャネルを、NPIVアダプタ・ドライバ242からNPIVアダプタ・ドライバ244に関連した三次I/Oチャネルに切り替え得る。
単一の専用物理ファイバ・チャネルHBAを一次I/Oチャネルとして有し、2つの仮想ファイバ・チャネルHBAを二次及び三次フェイルオーバI/Oチャネル又はパスとして有する実施例を説明したが、別の実施例は、異なるタイプの一次HBA及び変化する数のフェイルオーバHBAによって構成されてもよい。例えば、別の実施例は、単一の仮想ファイバ・チャネルHBAを一次I/Oチャネル及び関連のデータ・パスとして有し、iSCSI記憶装置に結合された単一の物理イーサネットHBAを二次I/Oチャネル及び関連のデータ・パスとして有し得る。
動的な物理及び仮想マルチパスI/Oの援助で、装置200は、クライアントに関連したI/Oを混乱させることなく、AIXクライアント235又はLinuxクライアント230を1つの物理サーバから別の物理サーバに動的に移動させ得る。パーティションの移動は、クライアント・パーティションが実行しているすべてのもの、即ち、すべてのホスティングされたアプリケーションを含み得る。種々のサーバ間で論理パーティションを移動させることは、仮想クライアントによって提供されるサービスに対して混乱なく、サーバ・ハードウェアに関する計画されたメンテナンスを可能にし得る。例えば、システム管理者は、パーティションによって提供されるサービスへの割り込みを行うことなく、使用頻度の高い論理パーティションをより大型のマシンへ移動させ得る。それとは別に、システム管理者は、ワークロード要求に依存して、より多くの利用可能な処理能力を有するサーバにパーティションを移動させ得るし、或いはユーザに対する特殊なレベルのサービスを維持するためにサーバ・ハードウェアの利用を調節し得る。
更に特殊な例は、動的な物理及び仮想マルチパスI/Oが論理パーティションの再配置を可能にし得る方法を更に詳しく説明する。仮想マシン・モニタ250は、AIXクライアント235及びLinuxクライアント230のような種々の論理パーティションの間で処理能力を分散するように構成され得る。例えば、AIXクライアント235は、2個の処理装置及び2個の仮想プロセッサを割り当てられ、一方、Linuxクライアント230も2個の処理装置及び2個の仮想プロセッサを割り当てられ得る。更にこの例では、AIXクライアント235及びLinuxクライアント230は共に同じサーバ上に存在し得るし、その場合、サーバは合計4個の物理プロセッサを有する。
AIXクライアント235に対するの需要又は総合負荷は時間の経過と共に増加し得る。例えば、AIXクライアント235に関連した1つのプロセッサは極度に負荷を課せられ、そのプロセッサの実行能力に関して多大の命令を実行することになる。システム管理者が現サーバ上のAIXクライアント235にとって利用可能なコンピューティング能力の量を増加させることができない場合、例えば、Linuxクライアント230が分け与えるべき如何なる余分な処理能力も持たない場合、システム管理者は、AIXクライアント235の論理パーティションを、多くの利用可能な処理能力を有する別のサーバに移動又は移行することを必要とすることがある。
AIXクライアント235を別のサーバに移行する場合、システム管理者は、装置200に、宛先サーバ又はターゲット・サーバにおいて既存のAIXクライアント235のコピーを作らせ得る。一旦コピーが作成されると、装置200はソース・イメージを非活性化し、宛先イメージ又はターゲット・イメージを活性化し、ソース・サーバのメモリからその非活性化されたイメージを除去し得る。AIXクライアント235の移行に際して、専用の物理HBAは、その再配置中、利用不可能になり得る。例えば、I/Oスロット280及びファイバ・チャネル・カード282はソース・サーバ内にあるので、ターゲット・サーバの新たに作成された論理パーティションにおけるAIXクライアント235は、I/Oスロット280及びファイバ・チャネル・カード282から物理的に分離され得る。
マルチパスI/Oモジュール240は、物理ファイバ・チャネルHBAドライバ244を介してファイバ・チャネル・カード282の使用不可を検出し得る。その検出の際、マルチパスI/Oモジュール240は、NPIVアダプタ・ドライバ244又はNPIVアダプタ・ドライバ243によって提供される仮想I/Oパスの1つにAIXクライアント235を動的に切り替わらせ又はフェイルオーバさせ得る。その後、フェイルオーバ・パスを利用している間、システム管理者は、ターゲット・サーバに対するハードウェア管理コンソール(HMC)にログインしてAIXクライアント235を再構成し、専用のI/Oスロット280及びファイバ・チャネル・カード282をターゲット・サーバの別のI/Oスロット及びHBAと置換し得る。
図3は、物理及び仮想マルチパスI/Oの動的な管理を行ない得る装置300の一実施例を示す。装置300の1つ又はそれ以上の要素が、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方の組み合わせの形であってもよい。例えば、図3に示された実施例では、装置300のメモリ310におけるモジュールは、1つ又はそれ以上のプロセッサによって実行されるアプリケーションのソフトウェア命令を含み得る。言い換えれば、装置300は、ネットワーク370に結合されたコンピューティング装置の要素を含み得る。
別の実施例では、装置300の1つ又はそれ以上のモジュールがハードウェアのみのモジュールを含み得る。例えば、仮想I/Oサーバ330は、図3に示されたものとは異なる配列でコンピューティング装置のプロセッサと結合された集積回路チップの一部を含み得る。そのような実施例では、仮想I/Oサーバ330は、仮想マシン・モニタ340と関連して作動して、メモリ310における仮想クライアントが物理HBA350及び物理HBA360のようなI/O装置をアクセスすることを可能にし得る。
更に別の実施例では、装置300の1つ又はそれ以上のモジュールがハードウェア・モジュール及びソフトウェア・モジュールの組み合わせを含み得る。例えば、仮想マシン・モニタ340は、仮想クライアント及びメモリ内の論理パーティションの監視及び管理を行うファームウェア及び独立型の処理回路を含み、クライアント及びパーティションがI/Oハードウェアをアクセスすることを可能にし得る。
1つ又はそれ以上の実施例において、仮想マシン・モニタ340は、動的な資源共用を可能にするソフトウェア又はファームウェアにおけるコードの薄膜層を含み得る。図3に示された実施例では、仮想マシン・モニタ340は仮想化を可能にし、仮想資源と呼ばれる実資源の代用物を作成し得る。例えば、仮想マシン・モニタ340は、単一の物理システム内に多数の仮想システムを作成することを可能にし得る。2つの仮想システムが、例えば、仮想クライアント320及び仮想I/Oサーバ330を含み得る。仮想マシン・モニタ340は、物理HBA350及び物理HBA360の仮想代用物を作成し、仮想クライアント320及び仮想I/Oサーバ330が独立態様で仮想代用物と対話することを可能にして、実物理資源に対して行われる同時アクセスの競合を防止し得る。
仮想クライアント320は、メモリ310の論理パーティションに格納された、仮想デスクトップとも呼ばれるデスクトップ・コンピュータのイメージを含み得る。例えば、仮想クライアント320は、オペレーティング・システムのイメージ及びそのオペレーティング・システムと互換性のある多くのアプリケーションのイメージを含み得る。更に特殊な例として、仮想クライアント320は、AIX、Windows、Unix、又は、CADプログラム、メール・サーバ・プログラム、及びデータベース・プログラムを実行する他のいくつかのオペレーティング・システム、を含み得る。
仮想I/Oサーバ330は、論理パーティション内にも設置されるソフトウェアを含み得る。仮想I/Oサーバ330は仮想マシン・モニタ340に関連して作動し、物理HBA350及び物理HBA360のような物理I/O資源を、仮想クライアント320のようなメモリ310における種々の仮想クライアントの間で共用すること可能にし得る。例えば、多くの実施例において、仮想I/Oサーバ330は、仮想SCSIターゲット及び共用のイーサネット・アダプタ機能を装置300内のクライアント論理パーティションに提供して、クライアント論理パーティションがSCSI装置及びイーサネット・アダプタを共用することを可能にし得る。
物理HBA350及び物理HBA360は、1つ又はそれ以上の種々の異なるアダプタを含み得る。多くの実施例において、それらのHBAは、ファイバ・チャネル・ネットワークを介してSCSIコマンドを搬送するためにファイバ・チャネル・プロトコル(FCP)を使って交信するファイバ・チャネルHBAを含み得る。或る実施例では、HBAは、インターネットSCSI互換性(iSCSI)HBAを含み得る。そのiSCSI HBAは、IPネットワークを介してSCSIコマンドの交換を可能にするためにTCP/IPを使用し得る。言い換えれば、iSCSI HBAは、SANを作成するために広域ネットワーク上にローカル記憶装置バスをエミュレートし得る。ファイバ・チャネル及びiSCSI HBAはまさにひと組の例である。別の実施例は、1つまたはそれ以上の他のタイプのHBAも使用し得る。
ネットワーク370は、多数のネットワーク装置及び1つまたはそれ以上の記憶装置を含み得る。例えば、ネットワーク370は、ほんのわずかな例として、多くのiSCSIディスク、iSCSIテープ・ドライブ、iSCSI光学的記憶装置、ファイバ・チャネルRAID、ファイバ・チャネル・ディスク、ファイバ・チャネル・テープ・ドライブ、ファイバ・チャネル光学的ドライブ、及び/又はiSCSI RAID記憶装置を相互接続する、ルータ、ハブ、スイッチ、ケーブルの配列を含み得る。ネットワーク370は、記憶装置をローカルに接続されたものとして見せるようにその記憶装置を接続及び表示し得る。ネットワーク370は、サーバとネットワーク370の記憶装置との間のコミュニケーションのために1つ又はそれ以上の低レベルのプロトコルを使用し得る。例えば、別の実施例は、イーサネット上のATA、ファイバ・チャネル上のFICONマッピング、イーサネット上のファイバ・チャネル、ハイパSCSI、RDMAのためのiSCSI拡張(iSCSI Extensions for RDMA - iSER)、iFCP、及び/又はiSCSIのようなプロトコルを使用し得る。
装置300が仮想クライアント320のオペレーティング・システム及びアプリケーションを実行している間、仮想マシン・モニタ340は、仮想クライアント320が専用の物理HBA350を介してネットワーク370の1つ又はそれ以上の記憶装置に情報を送ること及びその記憶装置から情報を受け取ることを可能にし得る。即ち、仮想マシン・モニタ340は、他のすべての仮想クライアントが物理HBA350を利用しないようにし得る。
仮想マシン・モニタ340は、仮想I/Oサーバ330が、物理HBA360を介してネットワーク370の1つ又はそれ以上の記憶装置に情報を送ること及びその記憶装置から情報を受け取ることも可能にし得る。仮想I/Oサーバ330は、装置300の多くの仮想クライアントがネットワーク370に及びネットワーク370からデータを転送することを可能にし得る。
操作中、物理HBA350は、ハードウェア問題に遭遇して仮想クライアント320からネットワーク370への専用物理パスを使用不可にすることがある。しかし、仮想クライアント320は、故障又は使用不可を検出して一次物理パスから1つ又はそれ以上の仮想パスに切り替わるように構成され得る。装置300の実施例では、仮想クライアント320は、動的にフェイルオーバし得る、即ち、仮想I/Oサーバ330及び物理HBA360によって提供されるネットワーク370のための仮想パスに切り替わり得る。利用不可能なパスから代替の利用可能なパスへの動的な切り替えは、装置300のサービスの実働時間及び信頼性を増加させ得る。
別の配置又は構成では、仮想クライアント320は、仮想I/Oサーバ330及び物理HBA360を介した仮想パスを一次パスとして使用し得る。装置300の他の仮想クライアントからの搬送渋滞の結果のように仮想パスが使用不可になるときには常に、仮想クライアント320は物理HBA350にフェイルオーバし、データをネットワーク370の記憶装置と交換し続け得る。
上記の実施例では、仮想クライアント320が、一次I/Oパスの使用不可を決定して二次I/Oパスに切り替わった。多くの実施例では、そのような決定及び切り替えは、マルチI/Oパス・モジュールのような仮想クライアント320のモジュールによって行なわれ得る。別の実施例では、使用不可の決定及び/又は切り替えは、装置300の別の要素によって行なわれ得る。例えば、少なくとも1つの別の実施例では、仮想マシン・モニタ340が、ネットワーク370への一次、二次、及び代替I/Oパスに関係する情報によって構成されてもよい。言い換えれば、仮想マシン・モニタ340は、通常、物理HBA350を介した仮想クライアント320のためのI/Oトランザクションを経路指定し得る。仮想マシン・モニタ340が物理HBA350に関連したエラーを検出すべきものである場合、仮想マシン・モニタ340は、仮想I/Oサーバ330及び物理HBA360を介したI/Oトランザクションを自動的に再経路指定することができるであろう。
装置300の実施例におけるモジュールの数は変わり得る。或る実施例は、図3に示されたモジュールよりも少ないモジュールを持ち得る。例えば、1つの実施例は、開示された機能及び/又は仮想I/Oサーバ330によって遂行された機能を、仮想マシン・モニタ340の機能と単一のモジュール内に統合し得る。即ち、別の実施例は、種々の仮想クライアントからI/O要求を受け取ってその要求を適切なI/Oハードウェア資源へ経路指定することができる仮想マシン・モニタを持ち得る。
更なる実施例は、図3に示されたものよりも多くのモジュール又は要素を含み得る。例えば、別の実施例は、1つまたはそれ以上のマルチI/Oパス・モジュール、2つまたはそれ以上の仮想I/Oサーバ、及び更なる物理HBAを含み得る。更に、多くの別の実施例では、メモリ310は多数のメモリ・モジュールを含み得る。例えば、メモリ310は、サーバ・システムにおける多数のサーバに分散され得る。そのシステムのいくつかのサーバは、1つ又はそれ以上の仮想クライアント及び/または仮想I/Oサーバを含み得る。仮想マシン・モニタ340は、単一のサーバ又は多数のサーバに存在し得る。
図4は、システムが物理及び仮想マルチパスI/Oの動的な管理を遂行する方法を示すプロセスのフローチャート400である。例えば、1つまたはそれ以上の実施例は、I/O要求を仮想クライアントから物理HBAに直接に経路指定するか又は、仮想I/Oサーバを介して物理HBAに間接的に経路指定する命令を含むコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品として具現化され得る。それとは別に、フローチャート400のプロセスは、図1に示されたASIC124のようなASICの状態マシンのようなハードウェアにおいても具現化され得る。例えば、ASIC124は、物理及び仮想マルチパスI/O資源の多数のパスを動的に管理するために、システム100の他のハードウェアと関連して作動する動的な物理及び仮想マルチパスI/Oモジュールを含み得る。
図4に示されるように、プロセスは、仮想マシン・モニタを初期化すること、1つまたはそれ以上の仮想I/Oサーバをロードすること、及びHBAに対する識別番号を要求することを含み得る(要素410)。例えば、装置200は、仮想マシン・モニタ250をメモリ・モジュール264にロードし、仮想マシン・モニタ250を初期化し、仮想I/Oサーバ210をメモリ・モジュール264にロードし、SANスイッチ260および290からのファイバ・チャネル・カード254、258、及び282に対するNPIV及びWWPN番号を要求し得る。
次に装置200は、1つまたはそれ以上の仮想クライアントをロードし、専用のHBAを関連付けるか又は割り当て、そして、ロードされたモジュールの構成に基づいて仮想HBAを割り当て得る(要素420)。例えば、装置200は、Linuxクライアント230及びAIXクライアント235をメモリ・モジュール264の論理パーティションにロードし、ファイバ・チャネル・カード282を物理ファイバ・チャネルHBAドライバ244に対して専用化し、ファイバ・チャネル・カード254及び258を、それぞれ、NPIVアダプタ・ドライバ225及び223を介してAIXクライアント235に割り当て得る。しかる後、装置200は、Linuxクライアント230及びAIXクライアント235のオペレーティング・システムの実行並びにそれぞれの論理パーティションにロードされた種々のアプリケーションの実行を開始し得る(要素430)。
装置200がAIXクライアント235を実行するとき、マルチパスのI/Oモジュール240は、物理ファイバ・チャネルHBAドライバ244とNPIVアダプタ・ドライバ243との間でI/O負荷を分散させるように構成され得る(要素440)。操作中、マルチパスI/Oモジュール240は、ファイバ・チャネル・カード258、物理ファイバ・チャネルHBAドライバ220、NPIVアダプタ・ドライバ223、及びNPIVアダプタ・ドライバ244に影響を与えるSANスイッチ260の故障を検出し(要素450)、NPIVアダプタ・ドライバ242、NPIVアダプタ・ドライバ225、物理ファイバ・チャネルHBAドライバ215、及びファイバ・チャネル・カード254によって定義された仮想I/Oパス、に切り替わり得る(要素470)。
技術者が、ファイバ・チャネル・カード258に関連したSANスイッチ260の問題を改善した後、マルチパスI/Oモジュール240は、ファイバ・チャネル・カード258の仮想パスがオンラインに戻るか又は開始するということを検出し(要素460)、新たに使用可能であるファイバ・チャネル・カード258がAIXクライアント235に対する二次パスになるように構成されるということを検出し(要素480)、NPIVアダプタ・ドライバ243、NPIVアダプタ・ドライバ223、物理ファイバ・チャネルHBAドライバ220及びファイバ・チャネル・カード258によって定義された仮想I/Oパスに戻るように切り替わり得る(要素490)。
図4のフローチャート400は1つのプロセスだけを示す。別の実施例は、フローチャート400の無数の変更を具現化し得る。例えば、ファイバ・チャネル・カード258に関連した単一故障を検出することに加えて、マルチパスI/Oモジュール240は、SANスイッチ260の故障が、ファイバ・チャネル・カード254に関連する故障を生じさせたということを検出し、NPIVアダプタ・ドライバ242に関連したフェイルオーバ仮想I/Oパスを使用不可にし得る(要素450)。従って、マルチパスI/Oモジュール240は、仮想I/Oサーバ210の別の仮想ポートのためのものであった次の使用可能な仮想I/Oパスに、又は別の仮想I/Oサーバに関連した異なる物理ファイバ・チャネル・カードのための異なる仮想ポートに、切り替わるように構成されてもよい(要素470)。
図5は、物理及び仮想マルチパスI/Oを動的に管理するための方法のフローチャート500を示す。例えば、図2に示された装置200の別の実施例は、仮想I/Oサーバ210に結合されたファイバ・チャネル・カード又はHBAに関連した1つの仮想I/Oパス、及び異なる仮想I/Oサーバに結合されたiSCSIHBAに関連した別の仮想I/Oパスを持ち得る。言い換えれば、装置200の別の実施例は、2つの仮想I/Oサーバ、即ち、ファイバ・チャネルHBAと連結されたもの及びSCSI HBAと連結されたものを持ち得る。
装置200の別の実施例が作動するとき、仮想マシン・モニタ250は、AIXクライアント235がSAN270の1つ又はそれ以上の記憶装置の間で、iSCSI HBAによって定義された仮想I/Oパスを介してデータを転送することを可能にし得る(要素510)。更に装置200が作動するとき、仮想マシン・モニタ250は、装置200のLinuxクライアント230及び他の仮想クライアントが仮想I/Oサーバ210を介してSAN270へ及びSAN270からデータを転送することを可能にし得る(要素520)。
装置200の操作中、マルチパスI/Oモジュール240は、HBA、ネットワーク・スイッチ、又はファイバ・チャネル・カード282に結合されたストレージ・エリア・ネットワークの記憶装置によって報告されたすべてのエラーの監視ようなAIXクライアント235に関連した物理及び仮想I/Oデータ・パスのステータス、仮想I/Oサーバ210に結合されたファイバ・チャネルHBAのステータス、及び別の仮想I/Oサーバに結合されたiSCSIHBAのステータスを監視し得る(要素530)。例えば、iSCSIカード又はHBAに結合された記憶装置は、AIXクライアント235の試みられたI/Oトランザクションに関連したI/Oエラーを返送することがある。エラー又は故障の検出に応答して(要素540)、マルチパスI/Oモジュール240は、故障したiSCSIHBA及び仮想I/Oサーバに関連した仮想データ・パスを二次仮想I/Oサーバ及びファイバ・チャネルHBAに切り替え得る(要素550)。
フローチャート500の実施例は、マルチパスI/Oモジュール240をファイバ・チャネルHBAに関連した仮想データ・パスから、代替のHBAとして構成された専用の物理HBAに切り替えさせることによって継続し得る(要素560)。マルチパスI/Oモジュール240は、iSCSI HBA及びファイバ・チャネルHBAのようなAIXクライアント235のために構成された物理及び仮想I/Oデータ・パスのステータスをモニタし続け得る。以前に故障した装置がオンラインに戻る場合及び/又は戻るとき、マルチパスI/Oモジュール240は使用可能性の変化を検出し、AIXクライアント235のための関連したI/Oデータ・パスを新たに利用可能になったHBAに切り替え得る。例えば、以前にI/Oエラーを返送されたiSCSI HBAに結合された記憶装置は、その装置が通常の動作を再開したという信号を送り得るし、その際、マルチパスI/Oモジュール240は、代替の専用の物理HBAから、iSCSI HBAに関連した仮想I/Oパスに切り替わり得る(要素570)。
別の実施例は、図1〜図5に関連して説明したシステム、方法、及び装置を具現化するためのコンピュータ・プログラムとして実施される。実施例は、ハードウェア要素及びソフトウェア要素の両方を含み得る。1つの実施例は、ソフトウェアにおいて具現化され得るし、ファームウェア、駐在のソフトウェア、マイクロコード等を含み得るがそれらに限定されない。
更に、実施例は、コンピュータ又は任意の命令実行システムによって、又はそれらに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセスし得るコンピュータ・プログラムの形式を取り得る。種々の実施例を説明するために、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置、又はデバイスによって、又はそれらに関連して使用するためのプログラムを内蔵し、格納し、伝達し、伝播し、又は搬送し得る任意の装置であってもよい。
その媒体は、電子的、磁気的、光学的、電磁気的、赤外線、又は半導体システム(もしくは装置もしくはデバイス)媒体であってもよい。コンピュータ可読媒体の例は、半導体メモリもしくはソリッド・ステート・メモリ、磁気テープ、取り外し可能なフロッピ・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、固定磁気ディスク、及び光ディスクを含む。光ディスクの現用の例は、コンパクト・ディスク−リード・オンリ・メモリ(CD-ROM)、コンパクト・ディスク読取り/書込み(CD−R/W)、またはDVDを含む。
プログラム・コードを格納及び/又は実行するに適したデータ処理システムは、システムバスを介してメモリ素子に直接又は間接的に結合された少なくとも1つのプロセッサを含み得る。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、及び、実行中にプログラム・コードが大容量記憶装置から検索される回数を減らすために少なくとも幾つかのプログラム・コードの一時的記憶装置を提供するキャッシュ・メモリを含み得る。入出力装置、即ち、I/O装置(キーボード、ディスプレイ、ポインティング装置等を含むが、それらに限定されない)は、直接に又は介在するI/Oコントローラを介してシステムに結合され得る。
この開示の利益を受ける当業者は、この開示が物理及び仮想マルチパスI/Oの動的な管理を意図するということを実感するであろう。詳細な説明及び図面において示された実施例の形式は、単に例として解されるべきである。「特許請求の範囲」は、開示された実施例の変形をすべて包含するように広く解釈されることを意図している。
本発明及びその利点の幾つかを幾つかの実施例に関して詳細に説明したが、「特許請求の範囲」によって定義される本発明の主旨及び範囲から逸脱することなく、様々な変形、代用及び変更を行い得るということは当業者には明らかであろう。特定の実施例は多くの目的を達成し得るが、「特許請求の範囲」の記載の範囲内にあるすべての実施例がすべての目的を達成するとは限らない。更に、本発明の範囲は、本明細書に記載されたプロセス、マシン、製造物、合成物、手段、方法、及びステップの特定の実施例に限定されるようには意図されない。本発明の開示から当業者には容易に明らかであるように、本明細書に開示された対応する実施例と実質的に同じ機能を遂行し、或いは実質的に同じ結果を達成する現存の又は今後開発されるべきプロセス、マシン、製造物、合成物、手段、方法、又はステップが利用され得る。従って、「特許請求の範囲に」の記載は、そのようなプロセス、マシン、製造物、合成物、手段、方法、又はステップをそれらの範囲内に含むことを意図する。

Claims (18)

  1. 第1の論理パーティション(LPAR)に存在する仮想クライアントが第1の物理ホスト・バス・アダプタ(HBA)を介してストレージ・ネットワーク及び前記仮想クライアントの間でデータを転送することを可能にするステップと、
    第2のLPARに存在する仮想I/Oサーバが第2の物理HBAを介して前記ストレージ・ネットワーク及び前記仮想I/Oサーバの間でデータを転送することを可能にするステップと、
    仮想マシン・モニタが前記第1のLPAR及び前記第2のLPARの間でパーティション間通信を提供することを可能にするステップと、
    前記仮想クライアントが、前記パーティション間通信を経由して前記仮想I/Oサーバにアクセスし、前記仮想I/Oサーバ及び前記第2の物理HBAを介して前記ストレージ・ネットワークにアクセスすることにより、前記ストレージ・ネットワーク及び前記仮想クライアントの間でデータを転送することを動的に可能にするステップと
    を含む方法。
  2. 前記仮想I/Oサーバが前記第2の物理HBAを介して前記ストレージ・ネットワーク及び第2の仮想クライアントの間でデータを転送することを可能にするステップを更に含む、請求項1に記載の方法。
  3. 複数の仮想クライアントに対する、前記第2の物理HBAのための複数の仮想識別子アドレスを得るステップを更に含む、請求項2に記載の方法。
  4. 前記仮想クライアントが前記第2の物理HBAを介してデータを転送することを可能にするために、前記第1のHBAに関連した故障を検出するステップを更に含む、請求項3に記載の方法。
  5. 前記第1のHBAが前記仮想クライアントにとって使用不可になることに応答して、前記仮想I/Oサーバ及び前記第2の物理HBAを介して前記ストレージ・ネットワーク及び前記仮想クライアントの間でデータを転送することをマルチパスI/Oモジュールを介して決定するステップを更に含む、請求項1に記載の方法。
  6. 前記第2の物理HBAが前記仮想クライアントにとって使用不可になることに応答して、前記仮想クライアントが前記仮想I/Oサーバ及び第3の物理HBAを介して前記ストレージ・ネットワーク及び前記仮想クライアントの間でデータを転送することを動的に可能にするステップを更に含み、
    前記第1の物理HBA、前記第2の物理HBA、及び第3の物理HBAのうちの第1の1つがファイバ・チャネルHBAを含み、前記第1の物理HBA、前記第2の物理HBA、及び第3の物理HBAのうちの第2の1つがiSCSI HBAを含む、前記請求項1に記載の方法。
  7. 第1の論理パーティション(LPAR)に存在し、第1の物理ホスト・バス・アダプタ(HBA)を介してネットワークにデータを転送するための仮想クライアント・モジュールと、
    第2のLPARに存在し、第2の物理HBAを介して前記ネットワークにデータを転送するための仮想I/Oサーバ・モジュールと、
    前記仮想クライアント・モジュールを前記仮想I/Oサーバ・モジュールに結合するための仮想マシン・モニタと
    を含み、
    前記仮想マシン・モニタは、前記第1のLPAR及び前記第2のLPARの間でパーティション間通信を提供するように構成され、前記仮想クライアント・モジュール、前記仮想I/Oサーバ・モジュール及び前記仮想マシン・モニタの少なくとも1つは、前記仮想クライアント・モジュールが、前記パーティション間通信を経由して前記仮想I/Oサーバ・モジュールにアクセスし、前記仮想I/Oサーバ・モジュール及び前記第2の物理HBAを介して前記ネットワークにアクセスすることにより、前記ネットワークにデータを転送することを動的に可能にするように構成される、装置。
  8. 前記第1の物理HBA及び前記第2の物理HBAの使用不可を検出するように構成されたマルチパスI/Oモジュールを更に含む、請求項7に記載の装置。
  9. 前記仮想クライアント・モジュールは前記マルチパスI/Oモジュールを含み、前記マルチパスI/Oモジュールは前記検出された使用可に基づいて前記第1の物理HBA及び前記第2の物理HBAの間で選択するように構成される、請求項8に記載の装置。
  10. 前記マルチパスI/Oモジュールは、前記第1の物理HBA及び前記第2の物理HBAの間で前記仮想クライアント・モジュールのI/Oワークロードを分散するように構成され、更に、前記仮想マシン・モニタはホスト化された仮想マシン・モニタを含む、請求項8に記載の装置。
  11. 第3の物理HBAを介して前記ネットワークにデータを転送するための第2の仮想I/Oサーバ・モジュールを更に含み、
    前記仮想クライアント・モジュールは、前記第1の物理HBA及び前記第2の物理HBAが使用不可であるとき、前記第2の仮想I/Oサーバ・モジュール及び前記第3の物理HBAを介して前記ネットワークにデータを動的に転送するように構成される、請求項7に記載の装置。
  12. 前記第2の仮想I/Oサーバ・モジュールは、第4の物理HBAを介して前記ネットワークにデータを転送するようにマルチパスI/Oモジュールを構成し、更に、前記第2の仮想I/Oサーバ・モジュールは、前記第3の物理HBAが使用不可であるとき、前記第4の物理HBAを介して前記ネットワークにデータを動的に転送するように構成される、請求項11に記載の装置。
  13. 前記仮想マシン・モニタは、前記第1の物理HBAに関連した故障の検出に応答して、前記仮想クライアント・モジュールが前記第2の物理HBAを介して前記ネットワークにデータを転送することを動的に可能にするように構成される、請求項7に記載の装置。
  14. 前記第2の物理HBAは、NポートID仮想化(NPIV)を支援することができるファイバ・チャネルHBAを含む、請求項7に記載の装置。
  15. 第1の論理パーティション(LPAR)に存在し、第1のファイバ・チャネル・ホスト・バス・アダプタ(HBA)を介してストレージ・エリア・ネットワーク(SAN)にデータを転送するように構成された仮想クライアント・モジュールと、
    第2のLPARに存在し、第2のファイバ・チャネルHBAを介して前記SANにデータを転送するように構成された仮想I/Oサーバ・モジュールと、
    前記仮想クライアント・モジュールを前記仮想I/Oサーバ・モジュールに結合するための仮想マシン・モニタと、
    を含み、
    前記仮想マシン・モニタは、前記第1のLPAR及び前記第2のLPARの間でパーティション間通信を提供するように構成され、前記仮想クライアント・モジュールは、前記第1のファイバ・チャネルHBAの故障のとき、前記仮想クライアント・モジュールが、前記パーティション間通信を経由して前記仮想I/Oサーバ・モジュールにアクセスし、前記仮想I/Oサーバ・モジュール及び前記第2のファイバ・チャネルHBAを介して前記SANにアクセスすることにより、前記SANにデータを転送することを動的に可能にするためのマルチパスI/Oモジュールを含む、システム。
  16. 前記仮想I/Oサーバ・モジュールは、前記仮想クライアント・モジュール及び他のクライアント・モジュールの間で物理I/O資源を動的に割り振るように構成され、更に、前記仮想マシン・モニタはネイティブ仮想マシン・モニタを含む、請求項15に記載のシステム。
  17. 前記仮想マシン・モニタは、前記仮想クライアント・モジュール及び他のクライアント・モジュールのワークロードに基づいて前記仮想クライアント・モジュール及び前記他のクライアント・モジュールの間で複数のプロセッサの処理機能を動的に割り振るように構成される、請求項15に記載のシステム。
  18. 少なくとも1つのプロセッサによって実行される命令を含むコンピュータ・プログラムであって
    第1の論理パーティション(LPAR)に存在する仮想クライアントが第1の物理ホスト・バス・アダプタ(HBA)を介してストレージ・ネットワーク及び前記仮想クライアントの間でデータを転送するための命令と、
    第2のLPARに存在する仮想I/Oサーバが第2の物理HBAを介して前記ストレージ・ネットワーク及び前記仮想I/Oサーバの間でデータを転送するための命令と、
    仮想マシン・モニタが前記第1のLPAR及び前記第2のLPARの間でパーティション間通信を提供するための命令と、
    前記仮想クライアントが、前記パーティション間通信を経由して前記仮想I/Oサーバにアクセスし、前記仮想I/Oサーバ及び前記第2の物理HBAを介して前記ストレージ・ネットワークにアクセスすることにより、前記ストレージ・ネットワーク及び前記仮想クライアントの間でデータを転送することを動的に可能にするための命令と
    を前記プロセッサに実行させるプログラム。
JP2009197241A 2008-11-10 2009-08-27 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム Active JP5489601B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/268,238 US8041987B2 (en) 2008-11-10 2008-11-10 Dynamic physical and virtual multipath I/O
US12/268238 2008-11-10

Publications (2)

Publication Number Publication Date
JP2010113707A JP2010113707A (ja) 2010-05-20
JP5489601B2 true JP5489601B2 (ja) 2014-05-14

Family

ID=42166274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009197241A Active JP5489601B2 (ja) 2008-11-10 2009-08-27 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム

Country Status (5)

Country Link
US (1) US8041987B2 (ja)
JP (1) JP5489601B2 (ja)
KR (1) KR101107899B1 (ja)
CN (1) CN101741831B (ja)
TW (1) TWI439867B (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US8990800B2 (en) * 2009-01-14 2015-03-24 Dell Products L.P. System and method for increased system availability to network storage in virtualized environments
JP5477047B2 (ja) * 2010-02-25 2014-04-23 富士通株式会社 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体
US8719817B2 (en) * 2010-03-25 2014-05-06 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management
US8244924B2 (en) * 2010-06-24 2012-08-14 International Business Machines Corporation Discovery and configuration of device configurations
US8495412B2 (en) * 2010-09-10 2013-07-23 International Business Machines Corporation Autonomous propagation of virtual input/output (VIO) operation(s) to second VIO server (VIOS) due to a detected error condition at a first VIOS
US8726274B2 (en) 2010-09-10 2014-05-13 International Business Machines Corporation Registration and initialization of cluster-aware virtual input/output server nodes
US20120096462A1 (en) * 2010-10-18 2012-04-19 Electronics And Telecommunications Research Institute Dynamic virtualization technique for multicore processor system
US20120110297A1 (en) * 2010-10-29 2012-05-03 Unisys Corp. Secure partitioning with shared input/output
US8930620B2 (en) * 2010-11-12 2015-01-06 Symantec Corporation Host discovery and handling of ALUA preferences and state transitions
US8627136B2 (en) * 2010-12-27 2014-01-07 Netapp Inc. Non-disruptive failover of RDMA connection
US8402191B2 (en) * 2010-12-30 2013-03-19 Stmicroelectronics, Inc. Computing element virtualization
WO2012157038A1 (ja) * 2011-05-13 2012-11-22 株式会社日立製作所 接続経路管理方法、i/o仮想化装置及び接続経路管理プログラム
JPWO2012176278A1 (ja) * 2011-06-21 2015-02-23 富士通株式会社 情報処理装置、仮想マシン制御方法およびプログラム
EP2725496A1 (en) * 2011-06-21 2014-04-30 Fujitsu Limited Information processing device, virtual machine control method and program
JP5422611B2 (ja) * 2011-06-24 2014-02-19 株式会社日立製作所 計算機システム、ホストバスアダプタ制御方法及びそのプログラム
WO2012149714A1 (zh) 2011-08-25 2012-11-08 华为技术有限公司 一种节点控制器链路的切换方法、处理器***和节点
US9530156B2 (en) * 2011-09-29 2016-12-27 Amazon Technologies, Inc. Customizable uniform control user interface for hosted service images
JP6007547B2 (ja) * 2012-03-30 2016-10-12 日本電気株式会社 仮想化システム、スイッチコントローラ、ファイバチャネルスイッチ、マイグレーション方法、マイグレーションプログラム
US8880934B2 (en) * 2012-04-04 2014-11-04 Symantec Corporation Method and system for co-existence of live migration protocols and cluster server failover protocols
US20130346532A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Virtual shared storage in a cluster
US8750311B2 (en) 2012-07-25 2014-06-10 Hewlett-Packard Development Company, L.P. Fibre channel host virtualization
TW201416852A (zh) * 2012-10-23 2014-05-01 Hon Hai Prec Ind Co Ltd 磁碟陣列卡自動修護方法及系統
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US10404520B2 (en) 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
CN103559155B (zh) * 2013-10-25 2016-09-14 华为技术有限公司 一种数据传输方法、相关装置及数据传输***
US9710410B2 (en) * 2013-10-31 2017-07-18 Qualcomm Incorporated Camera control slave devices with multiple slave device identifiers
CN103577149B (zh) * 2013-11-20 2017-02-08 华为技术有限公司 Hba兼容处理方法、装置及***
US9571585B2 (en) 2013-11-26 2017-02-14 International Business Machines Corporation Using alternate port name for uninterrupted communication
US9172600B1 (en) * 2013-12-31 2015-10-27 Symantec Corporation Efficient I/O error analysis and proactive I/O failover to alternate paths for InfiniBand channel
US9424216B2 (en) * 2014-03-14 2016-08-23 International Business Machines Corporation Ascertaining configuration of a virtual adapter in a computing environment
US9374324B2 (en) * 2014-03-14 2016-06-21 International Business Machines Corporation Determining virtual adapter access controls in a computing environment
US9262351B2 (en) 2014-03-27 2016-02-16 International Business Machines Corporation Inter-adapter cooperation for multipath input/output systems
US9569316B2 (en) * 2014-09-11 2017-02-14 International Business Machines Corporation Managing VIOS failover in a single storage adapter environment
CN104461951A (zh) * 2014-11-19 2015-03-25 浪潮(北京)电子信息产业有限公司 动态管理物理和虚拟多路径i/o的方法及***
US10223159B2 (en) * 2015-02-18 2019-03-05 Red Hat Israel, Ltd. Configuring virtual machine interfaces to provide access to a requested logical network based on virtual function availability and a virtual function capability option
US10257273B2 (en) 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
US9952797B2 (en) 2015-07-31 2018-04-24 Netapp, Inc. Systems, methods and devices for addressing data blocks in mass storage filing systems
CN105630715A (zh) * 2015-12-18 2016-06-01 国云科技股份有限公司 一种基于Multipath的存储预警方法
US10057153B1 (en) * 2016-06-02 2018-08-21 Cisco Technology, Inc. Detecting slow virtual devices
US20180143932A1 (en) * 2016-11-21 2018-05-24 Intel Corporation Apparatuses and methods to spawn multiple virtual serial bus hub instances on a same physical serial bus hub
US20180181421A1 (en) * 2016-12-27 2018-06-28 Intel Corporation Transferring packets between virtual machines via a direct memory access device
US10275327B2 (en) * 2017-01-05 2019-04-30 Hewlett Packard Enterprises Development LP Virtual fibre channel port migration
US11070512B2 (en) * 2017-02-10 2021-07-20 International Business Machines Corporation Server port virtualization for guest logical unit number (LUN) masking in a host direct attach configuration
DE102017103554B3 (de) * 2017-02-21 2018-05-09 Phoenix Contact Gmbh & Co. Kg Frontadapter zum Verbinden mit einer Steuerungseinrichtung und Automatisierungssystem
US10338829B2 (en) 2017-05-05 2019-07-02 Dell Products, L.P. Managing multipath configuraton in data center using remote access controller
CN107612777B (zh) * 2017-09-25 2020-09-22 苏州浪潮智能科技有限公司 一种光纤交换机检测工具及方法
US11204792B2 (en) 2018-04-04 2021-12-21 International Business Machines Corporation Attaching storage resources to virtual machine instances
US10592155B2 (en) * 2018-04-10 2020-03-17 International Business Machines Corporation Live partition migration of virtual machines across storage ports
US11048556B2 (en) * 2018-04-12 2021-06-29 International Business Machines Corporation Multi-channel, multi-control logical partition migration
US10496486B1 (en) * 2018-06-29 2019-12-03 International Business Machines Corporation Protecting data integrity in a multiple path input/output environment
US11050660B2 (en) * 2018-09-28 2021-06-29 EMC IP Holding Company LLC Host device with multi-path layer implementing path selection based at least in part on fabric identifiers
US11336509B2 (en) * 2018-10-31 2022-05-17 EMC IP Holding Company LLC Detecting single points of failure on a storage system
CN109358990A (zh) * 2018-11-01 2019-02-19 郑州云海信息技术有限公司 一种多控***中的信息传输方法、装置及存储介质
US10545785B1 (en) * 2018-11-12 2020-01-28 Hewlett Packard Enterprise Development Lp Virtual host bus adapter logins
US10833982B2 (en) * 2018-11-29 2020-11-10 International Business Machines Corporation Server-side path selection in multi virtual server environment
US10963416B2 (en) * 2019-05-29 2021-03-30 Mastercard International Incorporated Systems, computer-readable media and computer-implemented methods for network adapter activation in connection with fibre channel uplink mapping
CN111522692B (zh) * 2020-04-20 2023-05-30 浙江大学 一种基于虚拟机的多操作***输入及输出设备冗余保障***
CN111522760A (zh) * 2020-04-22 2020-08-11 北京思特奇信息技术股份有限公司 一种基于总线模式的应用接口通信方法和***
CN114257541A (zh) * 2020-09-10 2022-03-29 华为技术有限公司 一种故障链路的切换方法、***及相关设备
US11392459B2 (en) * 2020-09-14 2022-07-19 EMC IP Holding Company LLC Virtualization server aware multi-pathing failover policy
US11683372B2 (en) * 2020-11-24 2023-06-20 International Business Machines Corporation Virtualized fabric management server for storage area network
US11709699B2 (en) 2020-11-24 2023-07-25 International Business Machines Corporation Virtualized fabric name server for storage area network
US11522814B2 (en) 2020-11-24 2022-12-06 International Business Machines Corporation Virtualized fabric login server for storage area network
CN117591037B (zh) * 2024-01-18 2024-05-03 山东云海国创云计算装备产业创新中心有限公司 一种虚拟化数据访问***、方法、装置及服务器

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001155420A (ja) * 1999-11-25 2001-06-08 Tomcat Computer Kk Cdシステム
JP4039794B2 (ja) * 2000-08-18 2008-01-30 富士通株式会社 マルチパス計算機システム
KR100372915B1 (ko) * 2001-01-02 2003-02-19 김한규 네트워크에 직접 부착 가능한 디스크 시스템
KR20030030148A (ko) 2001-10-08 2003-04-18 주식회사 엑사큐브시스템 시스템 소프트웨어 및 지유아이(gui) 기반 관리소프트웨어를 이용한 네트워크 연결형 가상 저장방법 및그 시스템
JP3957065B2 (ja) * 2002-08-28 2007-08-08 富士通株式会社 ネットワーク計算機システムおよび管理装置
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
US7783779B1 (en) * 2003-09-19 2010-08-24 Vmware, Inc Storage multipath management in a virtual computer system
US7721150B2 (en) * 2004-03-19 2010-05-18 Intel Corporation Failover and load balancing
JP2006079495A (ja) * 2004-09-13 2006-03-23 Hitachi Ltd ストレージシステム及び論理区画の設定方法
JP2006094313A (ja) * 2004-09-27 2006-04-06 Fujitsu Ltd ルーティングリカバリシステム
US7711978B1 (en) * 2004-12-30 2010-05-04 Symantec Operating Corporation Proactive utilization of fabric events in a network virtualization environment
US7496790B2 (en) * 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20060195663A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
CN100485630C (zh) * 2005-11-21 2009-05-06 国际商业机器公司 具有中央控制的数据备份的方法和***
JP4486921B2 (ja) * 2005-12-09 2010-06-23 富士通株式会社 ストレージ仮想化装置およびそれを用いたコンピュータシステム
US7599397B2 (en) 2005-12-27 2009-10-06 International Business Machines Corporation Obtaining multiple port addresses by a fibre channel switch from a network fabric
US7921431B2 (en) 2006-01-20 2011-04-05 Emulex Design & Manufacturing Corporation N-port virtualization driver-based application programming interface and split driver implementation
US7543081B2 (en) 2006-08-08 2009-06-02 International Business Machines Corporation Use of N—Port ID virtualization to extend the virtualization capabilities of the FC-SB-3 protocol and other protocols
JP4847272B2 (ja) * 2006-10-18 2011-12-28 株式会社日立製作所 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
JP5057366B2 (ja) * 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
US7793139B2 (en) * 2006-12-12 2010-09-07 International Business Machines Corporation Partial link-down status for virtual Ethernet adapters
JP2008186211A (ja) * 2007-01-30 2008-08-14 Hitachi Ltd 計算機システム
US7711979B2 (en) * 2007-02-16 2010-05-04 Symantec Corporation Method and apparatus for flexible access to storage facilities
US7778157B1 (en) * 2007-03-30 2010-08-17 Symantec Operating Corporation Port identifier management for path failover in cluster environments
US8341308B2 (en) * 2008-06-09 2012-12-25 International Business Machines Corporation Method and apparatus for a fibre channel N-port ID virtualization protocol

Also Published As

Publication number Publication date
TWI439867B (zh) 2014-06-01
US20100122111A1 (en) 2010-05-13
CN101741831A (zh) 2010-06-16
JP2010113707A (ja) 2010-05-20
KR101107899B1 (ko) 2012-01-25
TW201027354A (en) 2010-07-16
US8041987B2 (en) 2011-10-18
CN101741831B (zh) 2013-11-27
KR20100052397A (ko) 2010-05-19

Similar Documents

Publication Publication Date Title
JP5489601B2 (ja) 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム
US11314543B2 (en) Architecture for implementing a virtualization environment and appliance
JP6199514B2 (ja) ファブリック分散リソースのスケジューリング
US7530071B2 (en) Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
US7930511B2 (en) Method and apparatus for management between virtualized machines and virtualized storage systems
US8626967B1 (en) Virtualization of a storage processor for port failover
US8909980B1 (en) Coordinating processing for request redirection
US8880687B1 (en) Detecting and managing idle virtual storage servers
US10423332B2 (en) Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands
US11226753B2 (en) Adaptive namespaces for multipath redundancy in cluster based computing systems
US10708140B2 (en) Automatically updating zone information in a storage area network
JP4965743B2 (ja) オペレーティング・システムの移行の際におけるストレージ・エリア・ネットワーク(「san」)アクセス権の保持
JP2005216151A (ja) 資源運用管理システム及び資源運用管理方法
JP2010257274A (ja) 仮想化環境におけるストレージ管理システム及びストレージ管理方法
US20140157046A1 (en) Techniques for dynamically tracking logical units moving between input/output ports of a storage area network target
US9143410B1 (en) Techniques for monitoring guest domains configured with alternate I/O domains
Guide VMware, Inc.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

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: 20140204

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140225

R150 Certificate of patent or registration of utility model

Ref document number: 5489601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150