JP4780221B2 - ホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラム - Google Patents

ホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラム Download PDF

Info

Publication number
JP4780221B2
JP4780221B2 JP2009129546A JP2009129546A JP4780221B2 JP 4780221 B2 JP4780221 B2 JP 4780221B2 JP 2009129546 A JP2009129546 A JP 2009129546A JP 2009129546 A JP2009129546 A JP 2009129546A JP 4780221 B2 JP4780221 B2 JP 4780221B2
Authority
JP
Japan
Prior art keywords
load distribution
host
storage subsystem
information
host computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009129546A
Other languages
English (en)
Other versions
JP2009187592A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009129546A priority Critical patent/JP4780221B2/ja
Publication of JP2009187592A publication Critical patent/JP2009187592A/ja
Application granted granted Critical
Publication of JP4780221B2 publication Critical patent/JP4780221B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ストレージ装置の負荷分散技術に関し、特にストレージサブシステムとホストコンピュータとが協調して負荷分散処理を行うためのホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラムに関する。
FC(Fibre Channel )スイッチなどを介して複数のホストコンピュータをディスクアレイサブシステムに接続した場合、ディスクアレイサブシステムの特定のホストポートまたは特定のコントローラに負荷が集中し、応答遅延(ホストポートネックまたはコントローラネック)が発生する。
この応答遅延を回避するために、刻々と変化するI/Oの性能分析を行い、適切な負荷分散を人手で実施するのは困難である。
特許文献1には、ストレージサブシステム内で負荷分散を行うストレージ装置が記載されている。
このストレージシステムでは、ストレージサブシステム内に複数のストレージ処理部があり、各ストレージ処理部で処理負荷を計測する。また、負荷に対する上限/下限の閾値を定義しておく。
任意のストレージ処理部の負荷が上限値を超えた場合、他のストレージ処理部に対して負荷状況を問い合わせ、余裕のあるストレージ処理部に負荷を分散する。任意のストレージ処理部の負荷が下限値を割った場合、他のストレージ処理部に対して負荷状況を問い合わせ、余裕のあるストレージ処理部に自身の負荷を引き渡し、自身は省電力モードに移行する。
このようにして、ストレージ処理部の負荷分散による対ホストコンピュータへのレスポンスの向上と電力効率の向上を図っている。
特開2003−296153号公報
しかしながら、上記の従来技術では、負荷分散処理は、ストレージサブシステム(ストレージ処理部)のみで実行しており、ホストコンピュータとストレージサブシステムとが協調して負荷分散処理を行うことができなかった。
そこで、本発明は、ホストコンピュータとストレージサブシステムとが協調して負荷分散処理を行うことができるストレージシステム等を提供することを目的とする。
上記目的を達成するため、本発明にかかるホストコンピュータは、複数のホストピュータからのI/O命令を複数のホスト接続ポートを介して受信し処理するストレージサブシステムに対して、自己のI/O命令を送信するホストバスアダプタを複数備えている。
この内、前記ホストバスアダプタには、前記ホストバスアダプタを介して出力される前記I/O命令がストレージサブシステム内で正常に実行されたか否かを監視するパス死活監視機能と,正常に実行されなかった場合にリトライ処理を実行するリトライ処理実行機能とを備えたパス冗長化ドライバを併設されている。
上記冗長化ドライバは、前記I/O命令が正常に実行された場合に作動し、前記ストレージサブシステムが決定する負荷分散の必要の有無を示す情報,前記ストレージサブシステムが決定する負荷分散が要求されるホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報を含む負荷分散要求テーブルの情報,を前記ストレージサブシステムに対して要求する機能を有する。
また、このパス冗長化ドライバは、前記負荷分散情報の要求により前記ストレージサブシステムから送信された前記負荷分散要求テーブルの情報に従って作動し複数の前記ホストバスアダプタの間で前記ストレージサブシステム側の複数のホスト接続ポートに対する負荷分散を実行する機能を、備えていることを特徴とする(請求項1)。
上記ホストコンピュータによれば、ストレージサブシステムから受信した負荷分散要求テーブルには、負荷を分散させるホスト接続ポートを特定する情報等が示されているから、負荷分散要求テーブルに含まれる情報に従って負荷分散処理を実行することができる。すなわち、ストレージサブシステムとホストコンピュータとが協調し自立的な負荷分散機能を実現することができる。
また、負荷分散要求テーブルが取得できたか否かによりストレージサブシステムとの間のI/Oパスが正常に機能しているか否かを知ることができる。すなわち、負荷分散要求テーブルの取得処理を、従来から行われているパス死活監視処理の代わりとすることができ、そのため、ストレージサブシステムとの協調のために余分なI/O負荷を生じさせることがない。
ここで、上記パス冗長化ドライバについては、前記ストレージサブシステムに対するパス死活監視機能の実行に際しては、当該パス死活監視用のコマンドとして負荷分散要求デーブル取得コマンドを使用する構成としてもよい(請求項2) 。
上記目的を達成するため、本発明にかかるストレージシステムは、ストレージサブシステムに対してI/O命令を送信するホストバスアダプタを複数備えたホストコンピュータと、このホストコンピュータを含む複数のホストコンピュータからのI/O命令を受信する複数のホスト接続ポートを備えたストレージサブシステムとを有するストレージシステムであって、前述したストレージサブシステムは、前記複数のホスト接続ポートを介して入力されるホストコンピュータからのI/O命令に従って記憶装置に対する書き込みおよび読み出しを実行するコントローラを備えている。
このストレージサブシステム側のコントローラは、前記各ホスト接続ポートについて負荷分散が必要であるか否かを決定する機能と、前記負荷分散が要求される前記ホストバスアダプタを決定する機能と、前記決定された前記負荷分散の必要の有無を示す情報,前記決定されたホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報,を含む負荷分散要求テーブルを生成し且つその情報を定期的に更新する機能と、前記ホストコンピュータから要求があったときに前記負荷分散要求テーブルの情報を前記ホストコンピュータに送信する機能とを備えている。
そして、上記ホストコンピュータの内の少なくとも一のホストコンピュータが、前記ストレージサブシステムに対してI/O命令を送信する複数のホストバスアダプタと、前記I/O命令が正常に実行されたか否かを監視すると共に正常に実行されない場合にリトライ処理を行うパス冗長化ドライバとを備えている。
そして、このパス冗長化ドライバが、前記ストレージサブシステムに対して前記負荷分散要求テーブルのテーブル情報の送信を要求する負荷分散情報要求機能を有すると共に、当該要求に応じて前記ストレージサブシステムから送信されてくる前記テーブル情報に従って複数の前記ホストバスアダプタの間で前記複数のホスト接続ポートに対する負荷分散を実行する負荷分散実行手段を備えたことを特徴とする(請求項3)。
上記ストレージシステムによれば、ストレージサブシステムのコントローラは、負荷分散要求テーブルをホストコンピュータの要求に応じて送信する。負荷分散要求テーブルには、負荷を分散させるホスト接続ポートを特定する情報等が示されているから、ホストコンピュータは、負荷分散要求テーブルに含まれる情報に従って負荷分散処理を実行することができる。すなわち、ストレージサブシステムとホストコンピュータとが協調し自立的な負荷分散機能を実現することができる。
ここで、上記パス冗長化ドライバについては、前記ストレージサブシステムに対するパス死活監視機能の実行に際しては、当該パス死活監視用のコマンドとして負荷分散要求デーブル取得コマンドを使用する構成としてもよい(請求項4)。
上記目的を達成するため、本発明にかかる負荷分散方法は、ストレージサブシステムに対してI/O命令を送信するホストバスアダプタを複数備えたホストコンピュータと、このホストコンピュータからのI/O命令を受信する複数のホスト接続ポート及びこの複数のホスト接続ポートを介して入力される前記I/O命令に従って記憶装置に対する書き込み及び読み込みを実行するコントローラを備えたストレージサブシステムとを有するストレージシステムにあって、まず、前記ストレージサブシステム側では、複数のホスト接続ポート相互間における負荷分散の必要の有無および前記負荷分散が要求される前記ホストバスアダプタをコントローラが決定する。
続いて、この決定された前記負荷分散の必要の有無を示す情報,前記決定されたホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報,を含む負荷分散要求テーブルを前記コントローラが生成し且つこれを定期的に更新する。
続いて、前記I/O命令を前記ストレージサブシステムが正常に実行したか否かを前記ホストコンピュータ側が監視し、前記I/O命令が正常に実行された場合には、前記ホストコンピュータの要求によって得られる前記ストレージサブシステムからの前記負荷分散要求テーブルにかかる情報に基づいて前記ホストコンピュータが作動し、前記複数の前記ホストバスアダプタの間で前記複数のホスト接続ポートに対する負荷分散を実行することを特徴とする(請求項5)。
この負荷分散方法によれば、ストレージサブシステムは、負荷分散要求テーブルをホストコンピュータの要求に応じて送信する。負荷分散要求テーブルには、負荷を分散させるホスト接続ポートを特定する情報等が示されているから、ホストコンピュータは、負荷分散要求テーブルに含まれる情報に従って負荷分散処理を実行することができる。即ち、ストレージサブシステムとホストコンピュータとが協調し自立的な負荷分散機能を実現することができる。
また、負荷分散要求テーブルが取得できたか否かによりホストコンピュータとストレージサブシステムとの間のI/Oパスが正常に機能しているか否かを知ることができる。すなわち、負荷分散要求テーブルの取得処理を、従来から行われているパス死活監視処理の代わりとすることができ、そのため、ホストコンピュータとストレージサブシステムとの協調のために余分なI/O負荷を生じさせることがない。
上記目的を達成するため、本発明にかかる負荷分散方プログラムは、ストレージサブシステム側の複数のホスト接続ポートを介して当該ストレージサブシステムに対してI/O命令を送信するホストバスアダプタを複数備えたホストコンピュータにあって、前記I/O命令が前記ストレージサブシステムで正常に実行されたか否かを監視する実行監視処理、前記I/O命令が正常に実行された場合に、前記ストレージサブシステムに対してなされる、当該ストレージサブシステムが決定した負荷分散の必要の有無を示す情報,前記ストレージサブシステムが決定した負荷分散が要求されるホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報,を含む負荷分散要求テーブルについてその情報の送信を要求する情報送信要求処理、をコンピュータに実行させるようにしたこと。
更に、前述した送信要求に応じて前記ストレージサブシステムから送信されてくる前記負荷分散要求テーブルのテーブル情報に従って複数の前記ホストバスアダプタの間で前記複数のホスト接続ポートに対する負荷分散を実行する負荷分散実行処理、をコンピュータに実行させるようにしたことを特徴とする(請求項6)。
上記負荷分散プログラムによれば、ストレージサブシステムを制御して、負荷分散要求テーブルをホストコンピュータの要求に応じて送信する。負荷分散要求テーブルには、負荷を分散させるホスト接続ポートを特定する情報等が示されているから、ホストコンピュータは、負荷分散要求テーブルに含まれる情報に従って負荷分散処理を実行することができる。すなわち、ストレージサブシステムとホストコンピュータとが協調し自立的な負荷分散機能を実現することができる。
また、負荷分散要求テーブルが取得できたか否かによりホストコンピュータとストレージサブシステムとの間のI/Oパスが正常に機能しているか否かを知ることができる。すなわち、負荷分散要求テーブルの取得処理を、従来から行われているパス死活監視処理の代わりとすることができ、そのため、ホストコンピュータとストレージサブシステムとの協調のために余分なI/O負荷を生じさせることがない。
本発明によれば、ストレージサブシステムが負荷分散要求テーブルをホストコンピュータの要求に応じて送信し、ホストコンピュータが、この負荷分散要求テーブルに示されている負荷分散対象であるストレージサブシステム側の接続ポートを特定する情報に従って、負荷分散処理を実行する構成としたので、ストレージサブシステムとホストコンピュータとが協調し自立的な負荷分散機能を実現することが可能となる。
更に、負荷分散要求テーブルが取得できたか否かによりホストコンピュータとストレージサブシステムとの間のI/Oパスが正常に機能しているか否かを知ることができることから、負荷分散要求テーブルの取得処理を、従来から行われているパス死活監視処理の代わりとすることができ、そのため、ホストコンピュータとストレージサブシステムとの協調のために余分なI/O負荷を生じさせることがないという効果を奏する。
本発明の一実施形態であるストレージシステムの一例であるSANシステムの全体構成を示すブロック図である。 図1内に開示したホストコンピュータとディスクアレイサブシステムとを示す機能ブロック図である。 図1内に開示したディスクアレイサブシステムの受信コマンド処理動作を示すフローチャートである。 図1内に開示したディスクアレイサブシステムのコマンド処理動作を示す図で、図4(a)はディスクアレイサブシステムのWWPN取得コマンドの処理動作を示すフローチャート、図4(b)はディスクアレイサブシステムの負荷分散要求テーブル取得コマンドの処理動作を示すフローチャートである。 図1内に開示したホストコンピュータのパス死活監視動作を示すフローチャートである。 図2内に開示したディスクアレイサブシステムが備えている負荷分散要求テーブルの一例を示す図である。 図2内に開示したディスクアレイサブシステムが備えている他の負荷分散要求テーブルの一例を示す図である。 図2内に開示したディスクアレイサブシステムが備えている更に他の負荷分散要求テーブルの一例を示す図である。
以下、図を参照しながら本発明の一実施形態であるSAN(Storage Area Network)システム50(ストレージシステムの一例)の構成と動作について説明する。
図1は、SANシステム50の全体構成図である。SANシステム50は、複数のホストコンピュータ1a、1b等(以下、特に区別する必要がない場合は、「ホストコンピュータ1」という)とディスクアレイサブシステム10(ストレージサブシステムの一例)により構成されている。
ホストコンピュータ1は、ホストバスアダプタ(Host Bus Adapter :以下「HBアダプタ」という)を、ディスクアレイサブシステム10は、ホスト接続ポートを備え、HBアダプタとホスト接続ポートは、FCスイッチ40、41を介して接続されている。HBアダプタとホスト接続ポートには、図1のカッコ内に示すように、「WWPNa」等のWWPN(World Wide Port Name:アドレス)が付与されている。WWPNは、ポートを一意に識別する64ビットのアドレスであり、HBアダプタまたはコントローラの製造時にROM(Read Only Memory)に書き込まれている。
ホストコンピュータ1は、アクセスパス30を介してディスクアレイサブシステム10にI/O命令を発行し、論理ディスクに対するデータの書き込みと読み出しを行う。
図2は、図1のホストコンピュータ1aとディスクアレイサブシステム10の機能ブロック図である。
ホストコンピュータ1aは、ファイルシステム2、上位ドライバ3、パス冗長化ドライバ4、下位ドライバ5、2個のHBアダプタ6および7を備えている。
ディスクアレイサブシステム10は、2個のコントローラ11および12と論理ディスク13、14等を備えている。
(ホストコンピュータ1aの構成)
アプリケーション8は、ホストコンピュータ1のCPU(Central Processing Unit) 上で実行する任意のアプリケーションプログラムであり、論理ディスク13等に対するファイルの書き込みと読み出しをファイルシステム2に要求する。
ファイルシステム2は、論理ドライブ上のファイルのファイル名と論理ドライブ上の格納位置との対応付けを保持する。
上位ドライバ3は、ファイルシステム2を介してアプリケーション8から渡されたI/Oをパス冗長化ドライバ4に渡す。
HBアダプタ6および7は、それぞれホストインタフェースケーブル20および21を介してディスクアレイサブシステム10のコントローラ11および12にあるホスト接続ポート16および18に接続され、ホストコンピュータ1は、ディスクアレイサブシステム10が制御する論理ディスク13、14および15に対するI/Oを実行する。
下位ドライバ5は、HBアダプタ6および7を制御しI/O処理を行う。
パス冗長化ドライバ4は、上位ドライバ3から受け取ったI/Oを下位ドライバ5に引き渡し、また、HBアダプタ6または7を介してディスクアレイサブシステム10が制御する論理ディスク13、14または15に対するI/Oの実行結果を下位ドライバ5から受け取り、正常終了または異常終了の判断を行い、異常終了の原因がパスの構成要素(HBアダプタ6、7、ホストインタフェースケーブル20、21、コントローラ11、12等)における障害(故障)と判断した場合は、代替パスを用いて、異常終了したI/Oのリトライ処理を行うドライバである。
本発明においては、パス冗長化ドライバ4は、ディスクアレイサブシステム10から負荷分散要求テーブル24の負荷分散情報を取得し、このテーブルに含まれる情報(負荷分散情報)に従って負荷分散を行う。
具体的には、パス冗長化ドライバ4は、一方のI/Oパス(例えば、コントローラ11)のみにI/Oが集中することのないよう、複数のI/Oパスを有効に活用し、I/Oの負荷分散(コントローラ11または12のホスト接続ポート16、17、18、19にI/Oを振り分け)を行う機能を有する。
すなわち、パス冗長化ドライバ4とこれを実行するCPUは、負荷分散実行手段の一例である。
ホストコンピュータ1による各I/Oの実行結果については、HBアダプタ6、下位ドライバ5、パス冗長化ドライバ4、上位ドライバ3、ファイルシステム2およびアプリケーション8の各レイヤによって判断が行われ、必要に応じて何らかの処置が行われる。
ホストコンピュータ1b等も、ホストコンピュータ1aと同様の構成を備えている。ただし、これらのホストコンピュータには、パス冗長化ドライバ4を備えていないものが含まれていてもよい。
(ディスクアレイサブシステム10の構成)
コントローラ11および12は、それぞれ内部バス22および23を介して各論理ディスク13、14および15に接続されており、いずれのコントローラからも各論理ディスクに対してアクセスすることができる。
コントローラ11および12は、負荷分散要求テーブル24を生成し、そのテーブル情報をRAM等の記憶装置に格納し、これを定期的に更新する。また、ホストコンピュータ1の要求に応じて負荷分散要求テーブル24にかかる情報をホストコンピュータに送信する。
負荷分散要求テーブル24の詳細内容については後述する。
ホストコンピュータ1上で動作するアプリケーション8によってよりディスクアレイサブシステム10に書き込まれるデータ(ライトデータ転送I/O)は、アプリケーション8、ファイルシステム2、上位ドライバ3、パス冗長化ドライバ4、下位ドライバ5、HBアダプタ6、ホストインタフェースケーブル20、ホスト接続ポート16を介してコントローラ11に至り、指定された論理ディスク13、14または15に書き込まれる。
ホストコンピュータ1上で動作するアプリケーション8よりディスクアレイサブシステム10から読み出されるデータ(リードデータ転送I/O)は、指定された論理ディスク13、14または15より、コントローラ11、ホスト接続ポート16、ホストインタフェースケーブル20を介してHBアダプタ6に至り、下位ドライバ5、パス冗長化ドライバ4、上位ドライバ3、ファイルシステム2を経てアプリケーション8に至る。
ディスクアレイサブシステム10の論理ディスク13等は、前述したホストコンピュータ1上のCPU上のアプリケーションプログラム8からは1個の独立した記憶装置として認識される記憶領域である。論理ディスク13は、1台の物理的な記憶装置(例えば、ハードディスク装置)の記憶領域の一部または全部で構成してもよいし、複数の物理的な記憶装置により構成してもよい。
次に、SANシステム50の動作について説明する。
まず、ディスクアレイサブシステム10側の動作について説明する。
図3、図4(a)、図4(b)は、ディスクアレイサブシステム10のコントローラ11および12により実施され、ホストコンピュータ1より受け取ったI/Oコマンドの処理過程の一部を示したフローチャートである。
ホストコンピュータ1より受け取ったコマンドは、まず正しく実行することができるかどうか判断され(図3のS101)、正しく実行することができないコマンドであれば、異常終了処理(S120)へ移行する。
正しく実行可能なコマンドであれば、当該コマンドを発行したHBアダプタのWWPN取得コマンドであるかを判断する(S102)。
HBアダプタのWWPN取得コマンドであれば、HBアダプタのWWPN取得コマンドデコード処理(S121)へ移行し、そうでなければ、S103へ進む。
S102でHBアダプタのWWPN取得コマンドデコード処理(S121)へ移行した場合は、当該コマンドを発行したHBアダプタのWWPNを編集し(図4(a)のS201)、正常終了処理(S202)へ移行する。
WWPNの編集は、例えば、次のような手順で行う。
(1)システム上で"HBAのWWPN取得コマンド" を予め定義しておく。
(2)パス冗長化ドライバ4が、自身が制御すべきHBアダプタ( I/O発行元( I/Oパス))のWWPNを認識( 取得) するために、全てのHBアダプタ経由で" HBアダプタのWWPN取得コマンド" を1回ずつ発行する。
(3)ディスクアレイサブシステム10は、" HBアダプタのWWPN取得コマンド"
を受け取ると、発行元のHBアダプタのWWPNを( 返却データとして) 編集し、該コマンドの実行結果としてパス冗長化ドライバ4に返却する。
(4)パス冗長化ドライバ4は返却されたデータを取得することで、HBアダプタのWWPNを認識( 取得) することができるようになる。
HBアダプタのWWPN取得コマンドでなければ、負荷分散要求テーブル取得コマンドであるかを判断し(S102の判定がノー、S103)、負荷分散要求テーブル取得コマンドであれば負荷分散要求テーブル取得コマンドデコード処理(S122)へ移行し、そうでなければ、S104へ進む。
S103で負荷分散要求テーブル取得コマンドデコード処理(S122)へ移行した場合は、負荷分散要求テーブル24を編集して取得要求元のホストコンピュータ1に送信し(図4(b)のS301)、正常終了処理(S302)へ移行する。
ここで編集される負荷分散要求テーブルは、図6に示すように、ディスクアレイサブシステム10の各コントローラ11および12に存在するホスト接続ポートのWWPN、負荷分散要求数、要求先HBアダプタのWWPN、負荷分散先ホスト接続ポートの候補数、および負荷分散先ホスト接続ポート候補のWWPNの情報からなる。
負荷分散要求数は、当該ホスト接続ポート宛のI/Oについて負荷分散を要求するHBアダプタの数である。当該ホスト接続ポート宛のI/Oの負荷分散が必要でない場合にはその値を「0」とする。「要求先HBアダプタのWWPN」の欄は、負荷分散要求数に応じた数とする。例えば、「負荷分散要求数」が「2」の場合、「要求先HBアダプタのWWPN」欄は2つとし、その値は、例えば「WWPNa」「WWPNb」とする。
負荷分散の要求先のHBアダプタは、例えば次のような基準で選択する。
(1)負荷が集中しているホスト接続ポート宛のI/Oを最も多く送信しているものを選択する。
(2)ホスト接続ポート宛に発行されたI/Oにて指定される実データ格納場所を判断し、現在のホスト接続ポートでI/Oを処理するよりも、最適なホスト接続ポートが存在する場合に最適なホスト接続ポートへI/Oが発行される様、要求先のHBアダプタを選択し、誘導する。
要求先HBアダプタのWWPNは、負荷分散の実行を要求するHBアダプタのWWPNであり、ホストコンピュータ1のパス冗長化ドライバ4は、この欄を参照して自己の管理下のHBアダプタのWWPNがある場合に、負荷分散先ホスト接続ポートのWWPNの欄にWWPNが書き込まれているホスト接続ポートのひとつ以上に、通常は負荷分散要求数が1以上になっているホスト接続ポートに送信するI/Oを分散させる。
図1のホスト接続ポート16(WWPN0)に負荷が集中している状況を考えると、ディスクアレイサブシステム10のコントローラ11および12が過去一定期間のI/O統計情報を採取/分析し、HBアダプタ6(WWPNa )のI/Oを他のホスト接続ポート18、19、17(WWPN2、WWPN3、WWPN1)の何れかに振り向けることで、ホスト接続ポート16の応答遅延が回避できると判断した場合は、ホスト接続ポート16の該当欄(図6の1行目)に、負荷分散要求数として「1」、要求先HBアダプタWWPNとして「WWPNa 」、負荷分散先ホスト接続ポートの候補数として「3」、および負荷分散先ホスト接続ポート候補のWWPNとして、「WWPN2」、「WWPN3」、「WWPN1」を編集する。
尚、ディスクアレイサブシステム10は、各ホストコンピュータにパス冗長化ドライバ4が存在することを期待して負荷分散要求テーブルの要求先HBアダプタのWWPNには、ディスクアレイサブシステム10に接続されるすべてのHBアダプタを要求先候補として扱う。ただし、負荷分散要求テーブルを送信してから一定の時間内に負荷分散要求に応じてくれない要求先HBアダプタに対しては、負荷分散要求テーブル24よりクリアする。
図3に戻り、受信したコマンドがHBアダプタのWWPN取得コマンドでも負荷分散要求テーブル取得コマンドでもない場合は、既存のコマンドデコード処理(既存の処理)を実施する(S102とS103の判定がいずれもノー、S104)。
次に、パス冗長化ドライバ4側の動作について説明する。
図5は、図1のパス冗長化ドライバ4により実施される処理過程の一部を示したフローチャートであり、具体的には、パス死活監視処理に関わる。パス死活監視とは、パス冗長化ドライバ4が管理する複数のI/Oパスに対して一定間隔にI/Oを生成、発行し、障害が発生していないかを確認するための導通テストである。この死活監視に使用するI/Oは、アプリケーション8から発行されるI/Oとは非同期に、パス冗長化ドライバ4が一定時間毎に生成し、発行する。尚、導通を確認することが目的であることから、パス死活監視に使用するI/Oには、例えば、INQUIRYコマンドなどが用いられていた。
尚、パス冗長化ドライバ4は、自身の初期化段階で、自身が管理するHBアダプタのWWPNおよび自身が管理するI/Oパス、つまりディスクアレイサブシステム10のホスト接続ポート16等のWWPNを取得しているものとして説明する。
パス冗長化ドライバ4が管理しているI/Oパスより一つを選択し、負荷分散要求テーブル取得コマンドのI/Oリクエストを生成し(S401)、下位ドライバ5へI/Oリクエストを発行する(S402)。
S403では、S402の実行結果を確認する。ここで異常終了であれば、I/Oパス障害が発生していることがわかることから、異常終了処理(S410)へ移行する。
正常終了であれば、負荷分散要求テーブルが取得できている(S404)ことから、負荷分散要求テーブル内に自身が管理するHBアダプタのWWPNがあるかを判断して(S405)、自身が管理するHBアダプタのWWPNがなければ、パス死活監視処理を終了する(S411)。
自身が管理するHBアダプタのWWPNがあれば、負荷分散先ホスト接続ポート候補が自身が管理するI/Oパスであるかを判断し(S406)、自身が管理するI/Oパスでなければ、パス死活監視処理を終了する(S412)。
S407では、負荷分散要求テーブルの負荷分散先ホスト接続ポート候補より、自身が管理するI/Oパスの何れか一つまたは複数を選択し、負荷分散を行う。
例えば、受信した負荷分散要求テーブルが図6に示すものであった場合、パス冗長化ドライバ4は、「要求先HBアダプタのWWPN」としてHBアダプタ6に対応する「WWPNa」が含まれているので、「負荷分散先ホスト接続ポートのWWPN」の中からホスト場接続ポート18に対応する「WWPN2」を選択し、通常は図1のI/Oパス31を使って送信するI/OをI/Oパス33に負荷分散する。
以上により、特定ホスト接続ポートへの負荷集中を、他のホスト接続ポートに負荷分散する手段を提供する。
次に、SANシステム50の効果について説明する。
第一の効果は、パス冗長化ドライバ4とディスクアレイサブシステム10間で連携、協調動作を行うことにより、システム全体で自律的な負荷分散機能を提供することができる。
第二の効果は、パス死活監視(パスの導通確認)のための余分なI/O負荷が発生しないことである。
その理由は、従来のパス冗長化ドライバはパス死活監視のために定期的にコマンド(例えば、”INQUIRYコマンド”や”TEST UNIT_READYコマンド”など)を発行し、コマンドが正常終了すれば、パスに障害が発生していないと判断していた。この死活監視に使用していたコマンドの代わりに負荷分散要求テーブル取得コマンドを使用するため、負荷分散要求テーブルの取得、および負荷分散要求テーブルが取得できたこと、すなわちコマンドの正常終了をもってパス死活監視も兼ねており、本発明による余計なI/O負荷の発生はない。
第三の効果は、パス冗長化ドライバ4とディスクアレイサブシステム間の連携ならびにこれらの管理及び制御は、パス冗長化ドライバ4内に隠蔽して処理するため、上位ドライバ3や下位ドライバ5及びミドルウェアやアプリケーション8に改造の必要がないことである。
図1および図2に示した、SANシステム50は、本発明の実施形態の一例であり、本発明は、以下に説明するような形態でも実施することができる。
図7に示すように、負荷分散要求テーブル24に負荷分散要求の割合(%)を設けてもよい。負荷分散要求先WWPNaからホスト接続ポートWWPN0へ発行されるI/Oについて、負荷分散先ホスト接続ポート候補のWWPN2、3、1で示される一つまたは複数のホスト接続ポートに対して、負荷分散要求の割合(%)で指定された割合で負荷分散を行うことを示している。図7の場合、図5のS407では、パス冗長化ドライバ4は、通常はホスト接続ポート16に送信するI/Oの40%をホスト接続ポート18に負荷分散する。
このようにすると、負荷の集中しいているホスト接続ポートのI/O負荷の分散を緻密に制御することができる。
図8に示すように、負荷分散要求テーブル24に、さらに負荷分散先のホスト接続ポート18(WWPN2)、19(WWPN3)、WWPN1(17)に対する負荷分散の割合(%)を設けてもよい。ホストコンピュータ1aがこれらのホスト接続ポートのすべてと接続されているとすると、図5のS407では、パス冗長化ドライバ4は、通常はホスト接続ポート16に送信するI/Oのうち40%を負荷分散するが、分散するI/Oのうちの50%はホスト接続ポート18へ、30%はホスト接続ポート19へ、20%はホスト接続ポート17へ送信する。
このようにすれば、負荷の集中しいているホスト接続ポートのI/O負荷の分散、さらに負荷分散先ホスト接続ポートへの負荷分散の割合についても緻密に制御することが可能になる。
図2では、HBアダプタ6および7の2つのHBアダプタを搭載するホストコンピュータを構成例としてあげたが、HBアダプタの枚数は、ホストコンピュータで動作するOSの種類、ドライバ5、またはホストコンピュータ1のハードウェア等の仕様によって制限されるものであり、パス冗長化ドライバ4としてはHBアダプタの枚数に制限はない。
図2では、コントローラ11および12の2つのコントローラを搭載するディスクアレイサブシステム10を構成例としてあげたが、コントローラ数に制限はない。
図2では、コントローラ11および12のコントローラにホスト接続ポートを2つずつ搭載するディスクアレイサブシステム10を構成例としてあげたが、コントローラに搭載するホスト接続ポート数に制限はない。
図1では、HBアダプタ6、7とコントローラ11、12をFCスイッチ40、41を介して接続したものを構成例としてあげたが、ハブを介して接続するようにしてもよいし、スイッチまたはハブを介さずにホストインタフェースケーブルで直接接続するようにしてもよい。
図2では、論理ディスク13等はディスクアレイサブシステム10内に構成されるものを例としてあげたが、ディスクアレイサブシステム10に接続されたJBOD(Just Bunch of Disks)等の外部のディスクで構成されても良い。
図1、2のホストコンピュータ1に接続されるディスクアレイサブシステム10の数に制限はない。
図1のディスクアレイサブシステム内に構成される論理ディスクの数に制限はない。
図1のディスクアレイサブシステム内の内部バスの数に制限はない。
本実施形態では、ストレージサブシステムとして、ディスクアレイサブシステム10を例にしたが、他の種類の装置を用いてもよい。
本実施形態では、HBアダプタ(ホイストバスアダプタ)およびホスト接続ポートの識別情報としてポートを一意的に識別する64ビットのアドレスであるWWPNを使用したが、WWPNに限定されるわけではなく、HBアダプタおよびホスト接続ポートを一意に識別できる情報であればなんでも良い。
1 ホストコンピュータ
2 ファイルシステム
3 上位ドライバ
4 パス冗長化ドライバ(負荷分散実行手段)
5 下位ドライバ
6、7 HBアダプタ
10 ディスクアレイサブシステム
11、12 コントローラ
13、14、15 論理ディスク
16〜19 ホスト接続ポート
24 負荷分散要求テーブル
50 SANシステム

Claims (6)

  1. 複数のホストピュータからのI/O命令を複数のホスト接続ポートを介して受信し処理するストレージサブシステムに対して、自己のI/O命令を送信するホストバスアダプタを複数備えたホストコンピュータにおいて、
    前記ホストバスアダプタに、前記ホストバスアダプタを介して出力される前記I/O命令がストレージサブシステム内で正常に実行されたか否かを監視するパス死活監視機能と,正常に実行されなかった場合にリトライ処理を実行するリトライ処理実行機能とを備えたパス冗長化ドライバを併設すると共に、
    このパス冗長化ドライバが、前記I/O命令が正常に実行された場合に作動し、前記ストレージサブシステムが決定する負荷分散の必要の有無を示す情報,前記ストレージサブシステムが決定する負荷分散が要求されるホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報を含む負荷分散要求テーブルの情報,を前記ストレージサブシステムに対して要求する機能を有し、
    前記パス冗長化ドライバは、前記負荷分散情報の要求により前記ストレージサブシステムから送信された前記負荷分散要求テーブルの情報に従って作動し複数の前記ホストバスアダプタの間で前記ストレージサブシステム側の複数のホスト接続ポートに対する負荷分散を実行する機能を、備えていることを特徴とするホストコンピュータ。
  2. 前記パス冗長化ドライバは、前記ストレージサブシステムに対するパス死活監視機能の実行に際しては、当該パス死活監視用のコマンドとして負荷分散要求デーブル取得コマンドを使用する構成としたことを特徴とする請求項1に記載のホストコンピュータ。
  3. ストレージサブシステムに対してI/O命令を送信するホストバスアダプタを複数備えたホストコンピュータと、このホストコンピュータを含む複数のホストコンピュータからのI/O命令を受信する複数のホスト接続ポートを備えたストレージサブシステムとを有するストレージシステムにおいて、
    前記ストレージサブシステムは、
    前記複数のホスト接続ポートを介して入力されるホストコンピュータからのI/O命令に従って記憶装置に対する書き込みおよび読み出しを実行するコントローラを備えると共に、
    このストレージサブシステム側のコントローラが、
    前記各ホスト接続ポートについて負荷分散が必要であるか否かを決定する機能と、前記負荷分散が要求される前記ホストバスアダプタを決定する機能と、前記決定された前記負荷分散の必要の有無を示す情報,前記決定されたホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報,を含む負荷分散要求テーブルを生成し且つその情報を定期的に更新する機能と、前記ホストコンピュータから要求があったときに前記負荷分散要求テーブルの情報を前記ホストコンピュータに送信する機能とを有し、
    前記ホストコンピュータの内の少なくとも一のホストコンピュータが、
    前記ストレージサブシステムに対してI/O命令を送信する複数のホストバスアダプタと、前記I/O命令が正常に実行されたか否かを監視すると共に正常に実行されない場合にリトライ処理を行うパス冗長化ドライバとを備え、
    このパス冗長化ドライバが、前記ストレージサブシステムに対して前記負荷分散要求テーブルのテーブル情報の送信を要求する負荷分散情報要求機能を有すると共に、当該要求に応じて前記ストレージサブシステムから送信されてくる前記テーブル情報に従って複数の前記ホストバスアダプタの間で前記複数のホスト接続ポートに対する負荷分散を実行する負荷分散実行手段を備えたことを特徴とするストレージシステム。
  4. 前記パス冗長化ドライバは、前記ストレージサブシステムに対するパス死活監視機能の実行に際しては、当該パス死活監視用のコマンドとして負荷分散要求デーブル取得コマンドを使用する構成としたことを特徴とする請求項3に記載のストレージシステム。
  5. ストレージサブシステムに対してI/O命令を送信するホストバスアダプタを複数備えたホストコンピュータと、このホストコンピュータからのI/O命令を受信する複数のホスト接続ポート及びこの複数のホスト接続ポートを介して入力される前記I/O命令に従って記憶装置に対する書き込み及び読み込みを実行するコントローラを備えたストレージサブシステムとを有するストレージシステムにあって、
    前記ストレージサブシステム側では、複数のホスト接続ポート相互間における負荷分散の必要の有無および前記負荷分散が要求される前記ホストバスアダプタをコントローラが決定し、
    更に、この決定された前記負荷分散の必要の有無を示す情報,前記決定されたホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報,を含む負荷分散要求テーブルを前記コントローラが生成し且つこれを定期的に更新し、
    前記I/O命令を前記ストレージサブシステムが正常に実行したか否かを前記ホストコンピュータ側が監視し、
    前記I/O命令が正常に実行された場合に、前記ホストコンピュータの要求によって得られる前記ストレージサブシステムからの前記負荷分散要求テーブルにかかる情報に基づいて前記ホストコンピュータが作動し、前記複数の前記ホストバスアダプタの間で前記複数のホスト接続ポートに対する負荷分散を実行することを特徴とした負荷分散方法。
  6. ストレージサブシステム側の複数のホスト接続ポートを介して当該ストレージサブシステムに対してI/O命令を送信するホストバスアダプタを複数備えたホストコンピュータにあって、
    前記I/O命令が前記ストレージサブシステムで正常に実行されたか否かを監視する実行監視処理、
    前記I/O命令が正常に実行された場合に、前記ストレージサブシステムに対して、当該ストレージサブシステムが決定した負荷分散の必要の有無を示す情報,前記ストレージサブシステムが決定した負荷分散が要求されるホストバスアダプタを特定するホストバスアダプタ特定情報,及び負荷分散先の前記ホスト接続ポートを特定する情報,を含む負荷分散要求テーブルについてその情報の送信を要求する情報送信要求処理、
    および前記送信要求に応じて前記ストレージサブシステムから送信されてくる前記負荷分散要求テーブルのテーブル情報に従って複数の前記ホストバスアダプタの間で前記複数のホスト接続ポートに対する負荷分散を実行する負荷分散実行処理、
    をコンピュータに実行させるようにしたことを特徴とする負荷分散プログラム。
JP2009129546A 2009-05-28 2009-05-28 ホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラム Expired - Fee Related JP4780221B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009129546A JP4780221B2 (ja) 2009-05-28 2009-05-28 ホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009129546A JP4780221B2 (ja) 2009-05-28 2009-05-28 ホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006176500A Division JP4353208B2 (ja) 2006-06-27 2006-06-27 ストレージサブシステム、ストレージシステム、負荷分散方法、負荷分散プログラム

Publications (2)

Publication Number Publication Date
JP2009187592A JP2009187592A (ja) 2009-08-20
JP4780221B2 true JP4780221B2 (ja) 2011-09-28

Family

ID=41070680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009129546A Expired - Fee Related JP4780221B2 (ja) 2009-05-28 2009-05-28 ホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラム

Country Status (1)

Country Link
JP (1) JP4780221B2 (ja)

Also Published As

Publication number Publication date
JP2009187592A (ja) 2009-08-20

Similar Documents

Publication Publication Date Title
JP4353208B2 (ja) ストレージサブシステム、ストレージシステム、負荷分散方法、負荷分散プログラム
US10459640B2 (en) High availability storage access using quality of service based path selection in a storage area network environment
JP4842593B2 (ja) ストレージ仮想化装置のデバイス制御引継ぎ方法
JP4733399B2 (ja) 計算機システム、計算機、ストレージ装置及び管理端末
US9137148B2 (en) Information processing system and information processing apparatus
US7937617B1 (en) Automatic clusterwide fail-back
JP5087249B2 (ja) ストレージシステムおよびストレージシステムの制御方法
US9213500B2 (en) Data processing method and device
US9823955B2 (en) Storage system which is capable of processing file access requests and block access requests, and which can manage failures in A and storage system failure management method having a cluster configuration
JP2005326935A (ja) 仮想化ストレージを備える計算機システムの管理サーバおよび障害回避復旧方法
US20120233399A1 (en) Storage apparatus and method of controlling the same
JP2007072571A (ja) 計算機システム及び管理計算機ならびにアクセスパス管理方法
US10747437B2 (en) SAS hard disk drive update via management controller
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
JP4738438B2 (ja) 外部接続ストレージシステムのパス管理及び障害箇所検出方法
JP5216376B2 (ja) リモートコピーシステム及び確認方法
JP2007310448A (ja) 計算機システム、管理計算機、および、ストレージシステム管理方法
JP4509089B2 (ja) 仮想化制御装置及びデータ移行制御方法
US7975118B2 (en) Storage system and data rearrangement method
US20090210574A1 (en) Open host issued statesave to attached storage
US10241950B2 (en) Multipath I/O proxy device-specific module
JP6241319B2 (ja) 情報処理装置、通信経路決定プログラム及び通信経路決定方法
JP2005149283A (ja) 情報処理システム、情報処理システムの制御方法及びプログラム
JP2005316762A (ja) ディスク記憶装置及びraid構築方法
JP4780221B2 (ja) ホストコンピュータ、ストレージシステム、負荷分散方法、及び負荷分散プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090528

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110620

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

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4780221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees