JP2005010956A - Method for controlling information processor, information processor, information processing system and program - Google Patents

Method for controlling information processor, information processor, information processing system and program Download PDF

Info

Publication number
JP2005010956A
JP2005010956A JP2003172537A JP2003172537A JP2005010956A JP 2005010956 A JP2005010956 A JP 2005010956A JP 2003172537 A JP2003172537 A JP 2003172537A JP 2003172537 A JP2003172537 A JP 2003172537A JP 2005010956 A JP2005010956 A JP 2005010956A
Authority
JP
Japan
Prior art keywords
logical path
load
allocation priority
logical
information processing
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
JP2003172537A
Other languages
Japanese (ja)
Inventor
Junichi Mitsuta
順一 光田
Hiroshi Yokouchi
弘 横内
Kenichi Endo
賢一 遠藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003172537A priority Critical patent/JP2005010956A/en
Publication of JP2005010956A publication Critical patent/JP2005010956A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for controlling an information processor by which more appropriate load distribution can be realized even though the load distribution between input/output paths may not be necessarily attained in a round robin system for sequentially assigning data input/output requests to the input/output paths without considering the respective configurations or conditions of the input/output paths. <P>SOLUTION: In this method for controlling an information processor, which transmits a data input/output request through a plurality of logical paths set between storage devices communicatively connected to each other to the storage devices, the loads of the logical paths are acquired, and the logical paths for assigning data input/output requests are decided according to the loads. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は、情報処理装置の制御方法、情報処理装置、情報処理システム、及びプログラムに関する。
【0002】
【従来の技術】
近年、コンピュータシステムで取り扱われるデータ量が増大しており、記憶装置の大容量化が進んでいる。大容量の記憶装置では記憶容量に見合うだけの入出力性能を確保することが必要である。またシステムの信頼性を向上させることも求められている。このため、記憶装置への入出力経路(パス)を多重化(冗長化)する技術が開発されている。
【0003】
記憶装置への入出力経路を多重化した場合、コンピュータでは、記憶装置へのデータ入出力要求を各入出力経路に振り分ける処理を行うことが必要となる。従来の技術では、各入出力経路にかかる負荷を分散させるために、各入出力経路に均等にデータ入出力要求を振り分けるようにしている。振り分け方法としては、例えば、各入出力経路を順番に指定するラウンドロビン方式が採用されている。
【0004】
【非特許文献1】
W.Curtis Preston著,金崎裕己監訳,豊沢聡訳
「SAN&NASストレージネットワーク管理」オライリー・ジャパン,
2002年10月30日,p.66−67
【0005】
【発明が解決しようとする課題】
ところで、多重化により設定される上記入出力経路は、必ずしも同一性能のハードウェアもしくはソフトウェアによって構成されているとは限らず、また、同じ入出力経路の全部又は一部が複数の情報処理装置によって共用されていることもある。つまり、個々の入出力経路の負荷は様々な要因により多様に変化する。従って、入出力経路の個々の構成や事情等を考慮せずに入出力経路に順番にデータ入出力要求を割り当てるラウンドロビン方式では、必ずしも入出力経路間での負荷分散が適切に図られないことがある。
【0006】
本発明は、このような観点からなされたもので、より適切な負荷分散を可能とする、情報処理装置の制御方法、情報処理装置、情報処理システム、及びプログラムを提供することを主たる目的とする。
【0007】
【課題を解決するための手段】
本発明の主たる発明は、通信可能に接続される記憶装置との間に設定される複数の論理パスを通じて前記記憶装置にデータ入出力要求を送信する情報処理装置の制御方法において、前記論理パスの負荷を取得し、前記データ入出力要求を割り当てる前記論理パスを前記負荷に応じて決定することとする。
【0008】
このように、上記発明によれば、論理パスの負荷に応じてデータ入出力要求の論理パスへの割り当てが行われるため、特定の論理パスに負荷が集中することが少なくなり(ボトルネック解消)、従来におけるラウンドロビン方式の場合に比べて効果的に負荷分散が図られることになる。また、論理パスはその途中経路が複数の情報処理装置に共用されるように設定されることがあるが、本発明では論理パスの負荷に応じてデータ入出力要求の論理パスへの割り当てが動的に行われるため、他の情報処理装置による論理パスの負荷の変動が加味された形で負荷分散が適切に行われ、効果的に負荷分散が図られることになる。
【0009】
なお、本発明の他の特徴については、本明細書及び添付図面の記述により明らかにする。
【0010】
【発明の実施の形態】
===情報処理システムの全体構成===
図1に本実施の形態に係る情報処理システム(コンピュータシステム)の全体構成を示している。2台の情報処理装置(ホスト)が、1台の記憶装置(記憶デバイス、ストレージ、ディスクアレイ装置)に接続している。情報処理装置100はCPU(Central Processing Unit)やメモリを備え、各種アプリケーションプログラムを実行する。例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等のプログラムを実行する。
【0011】
情報処理装置100は、上記アプリケーションプログラムを実行する際に記憶装置200が記憶しているデータにアクセスする。上記データアクセスは、情報処理装置100と記憶装置200とを接続するハードウェアにより物理的に構成されるデータ転送路である物理パスに対応付けられている論理パスを転送経路として行われる。情報処理装置100と記憶装置200とを接続する接続部300(301〜308)は、上記物理パスを構成する。IF(Inter Face)140(141〜148)は、例えば、1以上のHPort(Host bus adapter Port)を有するHBA(Host Bus Adapter)である。
【0012】
記憶装置200は、論理ユニット220、ディスク制御部210を備える。論理ユニット220は、情報処理装置100に提供される記憶資源に論理的に設定される記憶領域である。図1においてはLU(Logical Unit)1(221)とLU2(222)の2つの論理ユニットが記されている。記憶資源としては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。ディスク制御部210は情報処理装置100からのデータ入出力要求を受け、論理ユニット220に記憶されているデータのアクセスを制御する。ここでデータ入出力要求とは、例えば、SCSIコマンドである。SCSIコマンドには、例えば、ディスクドライブにデータを書き込むコマンド(以下、データ書き込みコマンドと称する)や、ディスクドライブからデータを読み出すコマンド(以下、データ読み出しコマンドと称する)がある。ディスク制御部210は図1に示すように記憶装置200と一体型とすることもできるし、別体型とすることもできる。また図1においては2つの論理ユニットが記されているが、1つの論理ユニット220を複数のパーティションに分割した形態とすることもできる。パーティションとは論理ユニット220を論理的に区分して構成される記憶領域のことである。
【0013】
情報処理装置100においては様々なアプリケーションプログラム110が実行される。アプリケーションプログラム110は共に記憶装置200に記憶されているデータへのアクセスを適宜行いながら処理を実行する。アプリケーションプログラム110にはアクセス可能な論理ユニット220が割り当てられている。
【0014】
===論理パスについて===
アプリケーションプログラム110から記憶装置200へのデータ入出力要求求は、後述するパス管理ドライバ120の制御により論理パスを転送経路として送信される。ここで論理パスは、情報処理装置100、記憶装置200、および情報処理装置100と記憶装置200とを結ぶ通信経路を構成する一つ以上のソフトウェアもしくは一つ以上のハードウェアの組み合わせにより定義される。
【0015】
図2に論理パスを定義するための要素の具体例を示している。この図のように、論理パスはHLU(Host Logical Unit)223、TID(Target ID)181、Bus182、HPort(Host bus adapter Port)180、DPort(Disk controller Port)230、ディスク制御部210、及びLU220などのハードウェアやソフトウェアを特定することにより定義される。HLU223、TID181、Bus182、HPort180はSCSI(Small Computer Systems Interface)通信規格で用いられる概念であり、それぞれホスト論理ユニット、ターゲットID、論理バス、ホストバスアダプタ側ポートを示す。DPort230はディスク制御部210のポートを示す。論理パスの定義は必ず上記要素によらなければならない訳ではなく、システムにより上記要素のいずれかを不要とすることもできるし、上記以外の要素を加えて論理パスを定義することもできる。
【0016】
===パス管理ドライバ===
パス管理ドライバ120は、情報処理装置100と記憶装置200との間のデータ転送経路を多重化するためのソフトウェアである。パス管理ドライバ120は、情報処理装置100と記憶装置200との間を複数の論理パス300で接続しデータ転送経路を多重化することにより、データアクセスにおけるボトルネックを解消しデータ入出力処理性能を向上させる。パス管理ドライバ120はデータ入出力要求を各入出力経路へ適宜振り分けることによって負荷分散も行う。またパス管理ドライバ120は、データ転送経路に障害が発生した場合に、当該データ転送経路を閉塞し、正常なデータ転送経路により記憶装置200へのデータアクセスを継続する機能も有し、これによりデータ転送経路障害によるサービス停止を回避しシステムの信頼性を高められる。
【0017】
なお、情報処理装置100で実行されるオペレーティングシステムによっては、記憶装置200との間を複数の論理パスで接続されることに対する考慮がなされていないものがある。このようなオペレーティングシステムを情報処理装置100で実行している場合に、情報処理装置100と記憶装置200との間を複数の論理パスで接続すると、アプリケーションプログラム110には、記憶装置200上に存在する1つの論理ユニット220が論理パス毎に存在するかのように見えてしまうという問題が生じる。これを回避するため、パス管理ドライバ120は、論理パス毎に見える本来一つの論理ユニット220を一つに統合してアプリケーションプログラム110に見せる機能も有している。
【0018】
===論理パスの割り当て処理===
データ入出力要求の論理パスへの割り当て処理について説明する。この処理はパス管理ドライバ120により行われる。パス管理ドライバ120は、アプリケーションプログラム110から入力されるデータ入出力要求を複数の論理パスのいずれかに割り当てる。パス管理ドライバ120は、この割り当てを一般的なラウンドロビンの方式で行うことができるほか、各論理パスの負荷に応じて行うことができる。後者の方法において、各論理パスの負荷は、例えば、単位時間当たりにその論理パスを通過するデータ入出力要求の数や、単位時間当たりにその論理パスを通過したデータ量として把握される。なお、上記いずれの割り当て方法を採用するかは、オペレータ等がパス管理ドライバ120に設定する。また、パス管理ドライバ120により自動的に選択させるようにすることもできる。
【0019】
パス管理ドライバ120は、適宜なタイミングで各論理パスの負荷を取得する。また、論理パスの負荷は、例えば、その論理パスにパス管理ドライバ120がデータ入出力要求を送信してからそのデータ入出力要求に対する応答を受信するまでの時間として取得される。
【0020】
ラウンドロビン方式では、その論理パスの負荷の大小に拘わらず定められた順序でデータ入出力要求の割り当てが行われるため、例えば、他に負荷の低い論理パスが存在する場合でも、負荷の高い論理パスにさらに新たなデータ入出力要求が割り当てられてしまうことも起こり得る。これに対し、負荷に応じてデータ入出力要求を論理パスに割り当てる方式では、各論理パスが全体として効率よく利用されるようにデータ入出力要求が割り当てられる。例えば、新たなデータ入出力要求は、その割り当て時に負荷の最も小さな論理パスに割り当てられ、特定の論理パスに負荷を集中させないように制御がなされる。
【0021】
===論理パスの負荷を取得===
次に、パス管理ドライバ120が、論理パスの負荷に応じてデータ入出力要求を割り当てる論理パスを決定する仕組みについて詳述する。
まず、パス管理ドライバ120が、各論理パスの負荷を取得する仕組みについて説明する。図3は、各論理パスの負荷を取得する処理の一例を示すフローチャートである。この例では、パス管理ドライバ120から論理パスに対してデータ入出力要求を送信し、パス管理ドライバ120がそのデータ入出力要求に対する応答を受信するまでの時間(以下、応答時間と称する)を計測することにより各論理パスの負荷を取得するようにしている。すなわち、応答時間が長い論理パスほど負荷が大きいことになり、応答時間が短いほど、負荷が小さいことになる。
【0022】
図3に示す処理では、一定の時間間隔で定期的に各論理パスの応答時間を測定している。パス管理ドライバ120は、応答時間を測定するタイミングが到来すると(S3001:YES)、各論理パスに対してデータ入出力要求(以下、テスト要求と称する)を送信する(S3002)。ここで各論理パスには、LUに対して同じ処理を行うデータ入出力要求(例えば、データ入出力要求がデータ書き込みコマンドである場合には、同じデータサイズのデータを書き込むコマンド)を送信する。パス管理ドライバ120は、テスト要求を論理パスに送信した時刻を記憶している。
【0023】
パス管理ドライバ120は、各論理パスに対して送信したテスト要求に対する応答を受信すると(S3003)、その応答に対応するテスト要求を送信した時刻と当該応答を受信した時刻との時間間隔(すなわち、応答時間)を計算する(S3004)。各論理パスについて計測された応答時間は、図4に示す論理パス管理テーブル400に登録する(S3005)。各論理パスには、それぞれに固有に設定される識別子(以下、論理パスIDと称する)が付与されている。論理パス管理テーブル400は、パス管理ドライバ120によって参照される。論理パス管理テーブル400は、例えば、情報処理装置100のメモリやハードディスク装置に記憶されている。
【0024】
===割当優先度の決定===
次に、以上のようにして論理パス管理テーブル400に登録された各論理パスの応答時間に基づいて決定される割当優先度について説明する。割当優先度は、データ入出力要求をどの論理パスに割り当てるかどうかを決定する際に、パス管理ドライバ120により参照されるデータである。本実施例では、割当優先度は、負荷の小さい論理パスほど大きな値に決定される。すなわち、計測された応答時間が短い論理パスほど、割当優先度は大きな値に決定される。具体的には、負荷の大きな論理パスを基準とし、その論理パスの負荷を減らすように割当優先度が決定される。以下では、パス管理ドライバ120が、応答時間に基づいて割当優先度を決定し、論理パス管理テーブル400の割当優先度の内容を設定する処理について具体的に説明する。
【0025】
図5は、パス管理ドライバ120が割当優先度を決定し論理パス管理テーブル400の割当優先度を設定する処理(以下、割当優先度設定処理と称する)を説明するフローチャートである。割当優先度設定処理は、パス管理ドライバ120により適宜なタイミングで起動される(S5001)。例えば、論理パス管理テーブル400の応答時間が更新されたことに連動して起動される。また、例えば、オペレータ等によりパス管理ドライバ120に対してあらかじめ設定されているタイミングが到来した場合に起動される。
【0026】
割当優先度の設定は、1つの論理ユニット(LU)に繋がる一群の論理パスごとに行われる。すなわち、割当優先度設定処理では、1つの論理ユニットに繋がる一群の論理パスの範囲内で負荷分散を実現するようにしている。以下、互いに負荷分散を実現している一群の論理パスからなるグループを論理パスグループと称することとする。なお、本発明を実施するにあたり、必ずしも上記一群の論理パスの範囲内で負荷分散を実現しなければならないわけではない。複数の論理ユニットに繋がる論理パスを対象とするなど、上記一群の論理パスは任意の範囲に設定できる。
【0027】
割当優先度設定処理が起動されると、ある論理ユニットに繋がる一群の論理パスについて、割当優先度と応答時間とをパラメータとして所定のアルゴリズムに従って理論負荷が計算される(S5002)。理論負荷は、割当優先度を決定する際に用いられる中間的なパラメータである。各論理パスの割当優先度としては、論理パス管理テーブル400の割当優先度の内容として既に登録されている値が参照される。情報処理装置100の起動時やリセット時などの初期状態では、論理パス管理テーブル400の割当優先度にはデフォルト値が設定される。デフォルト値は、例えば、割当優先度の変域の中間値が採用される。また例えば、デフォルト値は測定された応答時間に応じた比率で設定される。デフォルト値はユーザが任意に設定することも可能である。
【0028】
上記所定のアルゴリズムとしては、例えば、割当優先度と応答時間とをパラメータとして四則演算(例えば、単純積)した結果を理論負荷とするものが採用される。なお、上記所定のアルゴリズムは、論理パスの負荷が大きいものほど、また、論理パスの割当優先度が大きいものほど、理論負荷が大きくなるものとする。
理論負荷が計算されると、パス管理ドライバ120は、計算された各論理パスの理論負荷のうち最大の理論負荷を持つ論理パスを基準論理パスとして選出する(S5003)。
【0029】
次に、パス管理ドライバ120は、基準論理パス以外の論理パスの一つについて、論理パス管理テーブル400の割当優先度の内容に所定の値(以下、変化値)を加算し、加算後の値と論理パス管理テーブル400の応答時間に設定されている値とをパラメータとして、再び上記所定のアルゴリズム又はその他のアルゴリズムにより理論負荷(以下、比較理論負荷と称する)を計算する(S5004)。
【0030】
次に、パス管理ドライバ120は、計算された比較理論負荷と、基準論理パスについて算出されている理論負荷(以下、基準理論負荷と称する)とを比較する(S5005)。つまり、当該論理パスの割当優先度を上記変化値分増加させた場合に、最も大きい理論負荷である基準論理パスの理論負荷を超えるかどうかを検査することになる。ここで比較理論負荷が基準理論負荷よりも小さい場合には(S5005:YES)、パス管理ドライバ120は、論理パス管理テーブル400に登録されている割当優先度が、あらかじめ設定されている割当優先度の変域の上限値かどうかを判断する(S5006)。ここで変域とは、割当優先度が取り得る値である。変域はオペレータ等が任意に設定することができる。設定された変域は論理パス管理テーブル400に登録される。(S5006)において、論理パス管理テーブル400の割当優先度の内容が上限値でない場合には(S5006:NO)、論理パス管理テーブル400の当該論理パスの割当優先度の内容に上記変化値を加算し、更新カウンタをインクリメント(+1)する(S5008)。
【0031】
一方、(S5006)において、割当優先度が変域の上限値に一致する場合には(S5006:YES)、論理パス管理テーブル400に登録されている当該論理パス以外の論理パスの割当優先度から上記変化値を減算し、更新カウンタをインクリメント(+1)する(S5007)。こうすることで、当該論理パスの割当優先度は他の論理パスよりも相対的に増加する。また、現在最も大きな理論負荷を有する基準論理パスの理論負荷を超えない程度に、当該論理パスの理論負荷が増加することになる。また、負荷が大きいと判定された論理パスへのデータ処理要求の割当優先度を無条件に増加させることによる当該論理パスへの負荷の集中が抑えられ、より適切に論理パス間の負荷分散を図ることが可能となる。
【0032】
(S5005)において、比較理論負荷が基準理論負荷以上である場合には(S5005:NO)、パス管理ドライバ120は、更新カウンタにゼロ(「0」)を設定する(S5009)。
【0033】
(S5010)において、パス管理ドライバ120は、ある論理ユニットに繋がる一群の基準論理パス以外の全ての論理パスのうち、以上の処理が完了していない論理パスについて、(S5004)からの処理を繰り返し実行する(S5010:NO)。そして、基準論理パス以外の全ての論理パスについて、以上の処理が完了すると(S5010:YES)、次に、パス管理ドライバ120は、一群の論理パスのうちいずれかの論理パスの割当優先度が変更されているかどうかを調べる(S5011)。ここでいずれかの論理パスの割当優先度が変更されていた場合には(S5011:YES)、論理パス管理テーブル400の基準論理パスの割当優先度の内容から変化値を減算する(S5012)。
【0034】
(S5013)において、パス管理ドライバ120は、割当優先度の設定を行っていない他の論理ユニット(LU)が存在する場合には(S5013:YES)、その論理ユニットに繋がる一群の論理パスについて、(S5002)からの処理を実行する。他の論理ユニットが存在しなければ(S5013:NO)、一連の処理を終了する。
【0035】
なお、以上の処理において、割当優先度の変域と、上記変化値の値を変えることにより、割当優先度の変化のさせ方を調節することができる。例えば、変域を広く設定し、もしくは、変化値を小さな値とすることにより(以下、スタビリティな設定と称する)、変化値の加算・減算に対する割当優先度の変化は小さくなり、逆に、変域を狭く設定し、もしくは、変化値を大きな値とすることにより(以下、センシティブな設定と称する)、変化値の加算・減算に対する割当優先度の変化は大きくなる。
【0036】
ところで、過去に算出されている前記割当優先度には過去における論理パスの負荷が反映されている。従って、以上のように、新たに取得される負荷と過去に取得された負荷が反映されている割当優先度とに基づいて新たな割当優先度を算出することで、過去における論理パスの負荷を加味した形で割当優先度が算出され、適切な割当優先度を算出することができる。
【0037】
===負荷分散===
パス管理ドライバ120は、アプリケーションプログラムやオペレーティングシステム等から入力されたデータ入出力要求を複数の論理パスのうちのいずれかに割り当てる。この割り当ては、論理パス管理テーブル400に設定される割当優先度に基づいて、各論理パス間で負荷分散が実現されるように行われる。ここでは、割当優先度に基づいて負荷分散を実現する仕組みとして、割当優先度に応じた数(量)のデータ入出力要求を各論理パスに順次割り当てていく仕組みについて説明する。なお、負荷分散を実現する仕組みはこれに限定されるわけではない。例えば、割当優先度が大きな論理パスに優先的にデータ入出力要求を割り振るようにすることもできる。
【0038】
図6はパス管理ドライバ120が、割当優先度に応じた数のデータ入出力要求を各論理パスに順次割り当てることにより負荷分散を実現する処理を説明するフローチャートである。
この処理では、パス管理ドライバ120は、順次入力されるデータ入出力要求を、割当優先度の大きな論理パスから順番に、各論理パスに設定されている割当優先度に応じた数分だけ連続的に割り当てる。この処理は、例えば、ラウンドロビン方式による割り当てのアルゴリズムに、論理パスに割当優先度に応じた数分のデータ入出力要求を割り当てる処理を追加することにより実現される。
【0039】
図6において、まず、パス管理ドライバ120は、データ入出力要求が入力されると(S6001)、その際に割り当て先に設定されている論理パスにそのデータ入出力要求を割り当てる。ここで論理パス管理テーブル400には、その時点で割当先に設定されている論理パスがいずれであるのかを示す情報である割当先フラグが管理されている。その時点でのデータ入出力要求の割り当て先の論理パスの割当先フラグには「1」が設定され、他の論理パスの割当先フラグには「0」が設定される。なお、割当先フラグの内容は、後述する図7に示すフローチャートに従ったパス管理ドライバ120の処理により管理される。パス管理ドライバ120は、いずれの論理パスが割り当て先に設定されているのかを、論理パス管理テーブル400の割当先フラグを参照することにより確認する(S6002)。
【0040】
パス管理ドライバ120は、割り当て先に設定されている論理パスに、データ入出力要求を割り当てる(S6003)。なお、データ入出力要求を割り当てるとは、具体的には、論理パスごとに設けられているデータ入出力要求の処理待ちキューにデータ入出力要求を登録することである。また、データ入出力要求の割当て先となるパスを識別する情報を当該データ入出力要求と対応付けて、複数のパスに関して設けられているデータ入出力要求の処理待ちキューに登録することとしてもよい。パス管理ドライバ120は、論理パスに割り当てたデータ入出力要求の数をカウントするためのカウンタ(以下、割当カウンタ)を管理している。パス管理ドライバ120は、論理パスにデータ入出力要求を一つ割り当てるたびに割当カウンタの値をインクリメント(+1)する(S6004)。ここでパス管理ドライバ120は、論理パスにデータ入出力要求を割り当てるに際し、割当カウンタが割当上限値に達しているかどうかを調べる(S6005)。前記の割当上限値は、割当優先度に応じて決まる値である。例えば、4つの論理パス間での負荷分散を行っており、割当優先度の変域が1〜20に設定され、さらに各論理パスの割当優先度が5、6、7、3となっている場合には、割当優先度の比率で定まる値(例えば、5個、6個、7個、3個)を各論理パスの割当上限値として設定する。割当カウンタが割当上限値に達している場合(S6005:YES)には、パス管理ドライバ120は、図7に示す割当先フラグを変更する処理(以下、割当先フラグ変更処理と称する)を実行する(S6006)。
【0041】
図7に示すフローチャートとともに割当先フラグを変更する処理について説明する。まず、パス管理ドライバ120は、現時点で割当先フラグが「1」に設定されている論理パスが所属する論理パスグループに所属している他の論理パスの中から、現時点で割当先フラグが「1」に設定されている論理パスに設定されている割当優先度と等しいか、もしくは、前記割当優先度よりも小さな割当優先度が設定されている論理パスを選出する(S7001)。ここでそのような論理パスが選出できない場合には(S7002:選出できない)、パス管理ドライバ120は、当該論理パスグループに所属する論理パスの中から割当優先度が最大の論理パスを選出する(S7003)。ここで最大の割当優先度を有する論理パスが複数存在する場合には(S7004:YES)、そのうち最も若い論理パスIDが付与されている論理パスをデータ入出力要求の割り当て先の論理パスとして選出する(S7005)。そして、その論理パスの論理パス管理テーブル400の割当先フラグに「1」を設定し(S7006)、当該論理パスが所属する論理パスグループに所属する他の論理パスの割当先フラグに「0」を設定する。またこのとき、上記割当カウンタにゼロ(0)を設定する(S7007)。
【0042】
(S7004)において、最大の割当優先度を有する論理パスが一つしか存在しない場合には、その論理パスをデータ入出力要求の割り当て先の論理パスとして選出し(S7008)、上述の(S7006)の処理に進む。
【0043】
(S7002)において、前記割当優先度よりも小さい割当優先度が設定されている場合には(S7002:小さい優先度)、選出した論理パスが複数存在するかどうかを調べる(S7009)。ここで選出した論理パスが複数存在する場合には(S7009:YES)、それらの論理パスの中から論理パスIDが最も若い論理パスをデータ入出力要求の割り当て先の論理パスとして選出し(S7010)、上述の(S7006)に進む。
【0044】
(S7002)において、前記割当優先度と等しい割当優先度が設定されている場合には(S7002:等しい優先度)、当該論理パスのIDと選出された論理パスのIDとを比較する(S7011)。ここで当該論理パスのIDが選出された論理パスのIDよりも大きい場合には(S7011:当該論理パスのIDが大きい)、当該論理パスのIDよりも大きいIDを有する論理パスを選出するため(S7001)に進む。なお、この場合に(S7001)における処理では、前記選出された論理パスのIDと同じものを選出しないようにする。また、当該論理パスのIDよりも大きいIDを有する論理パスがない場合には、当該論理パスの割当優先度よりも小さい割当優先度を有する論理パスを選出する(S7001)。一方、当該論理パスのIDが選出された論理パスのIDよりも小さい場合には(S7011:当該論理パスのIDが小さい)、(S7008)に進む。
【0045】
===割当優先度の調節===
上述したように、割当優先度の変域と、上記変化値の値を変えることにより、割当優先度の変化のさせ方を調節することができる。例えば、各論理パスの負荷が比較的安定しており、時間的な変化がゆるやかである場合には、変域を広く設定し、もしくは、変化値を小さな値とする(スタビリティな設定)ことにより変化値の加算・減算に対する割当優先度の変化を小さくし、負荷の変化に対して各論理パスの負荷をあまり急激に変化させないようにする。また、各論理パスの負荷が安定せず、時間的な変化が激しい場合には、変域を狭く設定し、もしくは、変化値を大きな値とする(センシティブな設定)ことにより変化値の加算・減算に対する割当優先度の変化を大きくし、負荷の変化に対して各論理パスの負荷を機敏に変化させるようにする。
【0046】
一方、情報処理システムの用途によっては、論理パスの負荷が安定している時間帯と不安定な時間帯とが存在することがある。このような情報処理システムでは、常に、スタビリティな設定、もしくは、センシティブな設定のいずれかに恒常的に設定しておくのではなく、論理パスの負荷の状態に応じて柔軟に上記変域、もしくは、変化値を変化させて、割当優先度の変化態様を動的に設定するようにした方が好ましいことがある。そこで、本発明のパス管理ドライバ120は、論理パス管理テーブル400に登録されている変域もしくは変化値を動的に変更する機能を備えている。
【0047】
図8は、上記機能を実現する処理を説明するフローチャートである。まず、パス管理ドライバ120は、論理パスグループに所属する各論理パスの更新カウンタが閾値以上である論理パスが存在するかどうかを調べる(S8001)。ここで各論理パスの更新カウンタの値と閾値とを比較しているのは、割当優先度の更新頻度を調べるためである。閾値以上である論理パスが存在する場合、すなわち、割当優先度の変更が頻繁に行われている場合には(S8001:YES)、次に、当該論理パスグループが、現在、スタビリティな設定になっているのかセンシティブな設定になっているのかを調べる(S8002)。ここで当該論理パスグループがどのような設定になっているのかは、図4に示す論理パス管理テーブル400のポリシーの項目に管理されている。ここでスタビリティの設定になっている場合(S8002:YES)には、変域を狭めるかもしくは変化値を増加させて当該論理パスグループのポリシーの設定をセンシティブの設定に変更する(S8003)。一方、(S8002)において、当該論理パスグループのポリシーの設定がセンシティブの設定になっている場合には、そのままセンシティブの設定を維持する。なお、この場合にさらに変域を狭めるかもしくは変化値を増加させることにより、より敏感な(センシティブな)設定とするようにしてもよい。
【0048】
(S8001)において、閾値以上である論理パスが存在しない場合、すなわち、割当優先度の変更が頻繁には行われていない場合には(S8001:NO)、当該論理パスグループが、現在、スタビリティな設定になっているのかセンシティブな設定になっているのかを調べる(S8004)。ここで当該論理パスグループのポリシーの設定がセンシティブの設定になっている場合(S8004:YES)には、変域を拡げるかもしくは変化値を減少させて当該論理パスグループのポリシーの設定をスタビリティの設定に変更する(S8005)。一方、(S8004)において、当該論理パスグループのポリシーの設定がスタビリティの設定になっている場合には(S8004:NO)、そのままスタビリティの設定を維持する。なお、この場合にさらに変域を拡げるかもしくは変化値を減少させることにより、より安定的な(スタビリティな)設定とするようにしてもよい。
【0049】
このように、本実施例の情報処理システムにおいては、論理パスの負荷の状態に応じて設定される割当優先度の変化態様に応じて、論理パスグループの負荷分散を、スタビリティな設定、もしくは、センシティブな設定のいずれで管理するのか動的に変更されるので、多様に変化する論理パスの負荷に応じて適切に負荷分散を図ることが可能となる。
【0050】
また、恒常的に一定の負荷が生じている場合、突発的に高負荷となる場合、時間の経過とともに徐々に負荷が変化していく場合等、論理パスの負荷の時間的な変化態様は様々である。上記の仕組みによれば、前記各論理パスの負荷の時間的な変化態様に応じて前記負荷の変化に対する前記割当優先度の増減量を変化させるため、負荷の様々な変化態様に応じて適切に負荷分散を実現することが可能となる
なお、オペレータ等に割当優先度の変域や変化値を設定させる場合には、例えば、変域や変化値、もしくは、これらの変化態様に対応させた選択肢としてポリシーを定義しておき、オペレータ等がポリシーを選択することにより変域や変化値を簡便に設定できるようなユーザインタフェースを設けてもよい。そして、オペレータ等のユーザは、ポリシーを変更することにより、例えば、過去の実績や経験的に把握している論理パスの負荷の態様に応じて割当優先度を調節することが可能となり、より適切に負荷分散を実現することが可能となる。なお、上述の図4では、LU1に対応する論理パスグループについては割当優先度の変域を大きくもしくは変化値を小さく設定するポリシーである「スタビリティ」が、LU2に対応する論理パスグループについては割当優先度の変域を小さくもしくは変化値を大きく設定するポリシーである「センシティブ」が、LU3に対応する論理パスグループについては論理パスの負荷の変化態様に応じて「スタビリティ」もしくは「センシティブ」を動的に設定し、変域をスタビリティの場合と同じ値とするポリシーである「スマート」がそれぞれ設定されている。
【0051】
===情報処理装置の詳細な構成例===
図9は、本実施の形態に係る情報処理装置100の詳細な構成例である。
アプリケーションプログラム110は、ファイルシステム240を介して記憶装置200に設定されている論理ユニット220にアクセスする。ファイルシステム240は通常オペレーティングシステムの持つ機能の一つとして提供され、記憶装置200により提供される記憶領域を管理するソフトウェアをいう。すなわち、記憶装置200により提供される記憶領域上の論理ブロック内にファイルという抽象概念を実現し、ファイルに対するデータ入出力要求を論理ブロックアドレス単位のデータ入出力要求に対応させる。
【0052】
パス管理ドライバ120は、ファイルシステム240を介してアプリケーションプログラム110から出されたデータ入出力要求をIF1(141)乃至IF4(144)の各HPortに振り分ける。振り分けられたデータ入出力要求は、ディスクドライバ160(161〜168)及びIFドライバ170(171〜178)を介してIF1(141)乃至IF4(144)から記憶装置200に送信される。ディスクドライバ160はブロックモードのデバイスを論理ディスクとして抽象化する。IFドライバ170はデータ入出力要求を所定の通信プロトコルのパケットに変換・復元する。通信プロトコルとしては例えばファイバチャネルを採用することができる。
【0053】
上記データ入出力要求は、4本の接続部301〜304を含むハードウェアにより構成される物理パスにより情報処理装置100から記憶装置200へ送信される。一方、上述したとおり上記物理パスには論理パスが対応付けられている。論理パスはソフトウェアにより論理的に構成されるデータ経路である。図9においては論理パスは801〜808で示される。論理パスはLU毎に設けられる。
【0054】
情報処理装置100と記憶装置200との間は、図9に示すようにSAN(Storage Area Network)700で接続される形態とすることもできるし、図1に示すように直接接続する形態とすることもできる。
【0055】
ドライバ管理プログラム121は、ドライバUI(User Interface)プログラム122及びドライバAPI(Application Program Interface)プログラム123と共に、パス管理ドライバ120を管理する。ドライバUIプログラム122は、ドライバ管理プログラム121を介してパス管理ドライバ120の設定を行う際のユーザインタフェースを提供するためのプログラムである。ドライバAPIプログラム123は、ドライバUIプログラム122を用いてパス管理ドライバ120を設定する際に使用可能な命令や関数を集めたプログラムである。
【0056】
図9に示した情報処理装置100と一部構成の異なるものを図10に示す。図9における情報処理装置100では、ディスクドライバ160はパス管理ドライバ120からデータ入出力要求を受け取り、ブロックモードのデバイスを論理ディスクとして抽象化した後にIFドライバ170に引き渡す。しかしながらオペレーティングシステムによっては、ディスクドライバ160をファイルシステム240とパス管理ドライバ120との間に介在させる必要のあるものもある。図10に示したのはかかる場合の例である。図9の形態と図10の形態とはオペレーティングシステムの違いによって生じるものであって、どちらの形態も本発明の実施形態の一つである。
【0057】
以上、本発明に係る情報処理装置等について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【0058】
【発明の効果】
本発明によれば、情報処理装置の制御方法、情報処理装置、情報処理システム、及びプログラムを提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例による情報処理システムの全体構成を示す図である。
【図2】本発明の一実施例による論理パスを説明する図である。
【図3】本発明の一実施例による論理パスの負荷を取得する処理を説明するフローチャートを示す図である。
【図4】本発明の一実施例による論理パス管理テーブル400を示す図である。
【図5】本発明の一実施例による論理パス管理テーブル400の割当優先度を設定する処理を説明するフローチャートを示す図である。
【図6】本発明の一実施例による割当優先度に応じた数のデータ入出力要求を各論理パスに順次割り当てることにより負荷分散を実現する処理を説明するフローチャートを示す図である。
【図7】本発明の一実施例による割当先フラグを変更する処理を説明するフローチャートを示す図である。
【図8】本発明の一実施例による論理パス管理テーブル400に登録されている変域もしくは変化値を動的に変更する機能を実現する処理を説明するフローチャートを示す図である。
【図9】本発明の一実施例による情報処理装置100の詳細な構成例を示す図である。
【図10】本発明の一実施例による情報処理装置100の詳細な構成例を示す図である。
【符号の説明】
100 情報処理装置
110 アプリケーションプログラム
120 パス管理ドライバ
131〜138 論理パスに割り当てられるデータ入出力のキュー
141〜148 IF(Inter Face)
200 記憶装置
210 ディスク制御部
220 論理ユニット
400 論理パス管理テーブル
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for controlling an information processing apparatus, an information processing apparatus, an information processing system, and a program.
[0002]
[Prior art]
In recent years, the amount of data handled by computer systems has increased, and the capacity of storage devices has been increasing. In a large-capacity storage device, it is necessary to ensure input / output performance corresponding to the storage capacity. There is also a need to improve system reliability. For this reason, a technique for multiplexing (redundant) input / output paths to the storage device has been developed.
[0003]
When the input / output paths to the storage device are multiplexed, it is necessary for the computer to perform processing for distributing data input / output requests to the storage apparatus to the respective input / output paths. In the conventional technique, in order to distribute the load applied to each input / output path, data input / output requests are equally distributed to each input / output path. As a distribution method, for example, a round robin method in which each input / output path is specified in order is adopted.
[0004]
[Non-Patent Document 1]
W. By Curtis Preston, translated by Hiroki Kanesaki, translated by Toyosawa Jun
“SAN & NAS Storage Network Management” O'Reilly Japan,
October 30, 2002, p. 66-67
[0005]
[Problems to be solved by the invention]
By the way, the input / output path set by multiplexing is not necessarily configured by hardware or software having the same performance, and all or part of the same input / output path is formed by a plurality of information processing apparatuses. It may be shared. That is, the load on each input / output path varies depending on various factors. Therefore, in the round robin method in which data input / output requests are assigned to the input / output paths in order without considering the individual configuration or circumstances of the input / output paths, the load distribution between the input / output paths is not necessarily achieved properly. There is.
[0006]
The present invention has been made from such a viewpoint, and has as its main object to provide a method for controlling an information processing apparatus, an information processing apparatus, an information processing system, and a program that enable more appropriate load distribution. .
[0007]
[Means for Solving the Problems]
A main invention of the present invention is an information processing device control method for transmitting a data input / output request to a storage device through a plurality of logical paths set between the storage devices communicably connected. The load is acquired, and the logical path to which the data input / output request is assigned is determined according to the load.
[0008]
As described above, according to the above-described invention, since data input / output requests are allocated to logical paths according to the logical path load, the load is less concentrated on a specific logical path (bottleneck elimination). Thus, load distribution can be effectively achieved as compared with the conventional round robin method. In addition, a logical path may be set so that a route on the way is shared by a plurality of information processing apparatuses. However, in the present invention, allocation of a data input / output request to a logical path is activated according to the load on the logical path. Therefore, load distribution is appropriately performed in consideration of fluctuations in the load of the logical path by other information processing apparatuses, and load distribution is effectively achieved.
[0009]
Note that other features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
=== Overall Configuration of Information Processing System ===
FIG. 1 shows the overall configuration of an information processing system (computer system) according to the present embodiment. Two information processing devices (hosts) are connected to one storage device (storage device, storage, disk array device). The information processing apparatus 100 includes a CPU (Central Processing Unit) and a memory, and executes various application programs. For example, programs such as a bank automatic deposit and withdrawal system and an aircraft seat reservation system are executed.
[0011]
The information processing apparatus 100 accesses data stored in the storage device 200 when executing the application program. The data access is performed using a logical path associated with a physical path that is a data transfer path physically configured by hardware connecting the information processing apparatus 100 and the storage apparatus 200 as a transfer path. Connection units 300 (301 to 308) that connect the information processing apparatus 100 and the storage device 200 configure the physical path. The IF (Inter Face) 140 (141 to 148) is, for example, an HBA (Host Bus Adapter) having one or more HP Ports (Host bus adapter Ports).
[0012]
The storage device 200 includes a logical unit 220 and a disk control unit 210. The logical unit 220 is a storage area that is logically set in a storage resource provided to the information processing apparatus 100. In FIG. 1, two logical units of LU (Logical Unit) 1 (221) and LU2 (222) are shown. Various storage resources such as a hard disk device, a flexible disk device, and a semiconductor storage device can be used as the storage resource. The disk control unit 210 receives a data input / output request from the information processing apparatus 100 and controls access to data stored in the logical unit 220. Here, the data input / output request is, for example, a SCSI command. The SCSI command includes, for example, a command for writing data to the disk drive (hereinafter referred to as a data write command) and a command for reading data from the disk drive (hereinafter referred to as a data read command). As shown in FIG. 1, the disk control unit 210 can be integrated with the storage device 200, or can be a separate type. In FIG. 1, two logical units are shown. However, one logical unit 220 may be divided into a plurality of partitions. A partition is a storage area configured by logically dividing the logical unit 220.
[0013]
In the information processing apparatus 100, various application programs 110 are executed. Both application programs 110 execute processing while appropriately accessing data stored in the storage device 200. An accessible logical unit 220 is assigned to the application program 110.
[0014]
=== About Logical Path ===
A data input / output request request from the application program 110 to the storage device 200 is transmitted using a logical path as a transfer path under the control of a path management driver 120 described later. Here, the logical path is defined by a combination of the information processing apparatus 100, the storage apparatus 200, and one or more pieces of software or one or more pieces of hardware constituting a communication path connecting the information processing apparatus 100 and the storage apparatus 200. .
[0015]
FIG. 2 shows a specific example of elements for defining a logical path. As shown in this figure, the logical paths are HLU (Host Logical Unit) 223, TID (Target ID) 181, Bus 182, HP Port (Host bus adapter Port) 180, DPort (Disk controller Port) 230, disk controller 210, and LU. It is defined by specifying hardware and software. HLU 223, TID 181, Bus 182, and HP Port 180 are concepts used in the SCSI (Small Computer Systems Interface) communication standard, and indicate a host logical unit, a target ID, a logical bus, and a host bus adapter side port, respectively. DPort 230 indicates a port of the disk control unit 210. The definition of the logical path does not necessarily depend on the above elements, and any one of the above elements can be made unnecessary by the system, or the logical path can be defined by adding other elements.
[0016]
=== Path management driver ===
The path management driver 120 is software for multiplexing the data transfer path between the information processing apparatus 100 and the storage device 200. The path management driver 120 connects the information processing apparatus 100 and the storage apparatus 200 with a plurality of logical paths 300 and multiplexes data transfer paths, thereby eliminating data access bottlenecks and improving data input / output processing performance. Improve. The path management driver 120 also performs load distribution by appropriately distributing data input / output requests to each input / output path. The path management driver 120 also has a function of blocking the data transfer path when a failure occurs in the data transfer path and continuing data access to the storage device 200 through the normal data transfer path. Service stoppage due to transfer path failure can be avoided and system reliability can be improved.
[0017]
Note that some operating systems executed by the information processing apparatus 100 do not take into account that the storage apparatus 200 is connected by a plurality of logical paths. When such an operating system is executed by the information processing apparatus 100, if the information processing apparatus 100 and the storage device 200 are connected by a plurality of logical paths, the application program 110 exists on the storage device 200. There arises a problem that it appears as if one logical unit 220 exists for each logical path. In order to avoid this, the path management driver 120 also has a function of integrating the original one logical unit 220 that can be seen for each logical path into one and making it appear to the application program 110.
[0018]
=== Logical path assignment processing ===
Processing for assigning data input / output requests to logical paths will be described. This process is performed by the path management driver 120. The path management driver 120 assigns a data input / output request input from the application program 110 to any one of a plurality of logical paths. The path management driver 120 can perform this allocation by a general round robin method, and can perform it according to the load of each logical path. In the latter method, the load on each logical path is grasped as, for example, the number of data input / output requests that pass through the logical path per unit time or the amount of data that passes through the logical path per unit time. Note that an operator or the like sets in the path management driver 120 which of the above allocation methods is adopted. Alternatively, the path management driver 120 can automatically select the selection.
[0019]
The path management driver 120 acquires the load of each logical path at an appropriate timing. The load on the logical path is acquired as, for example, the time from when the path management driver 120 transmits a data input / output request to the logical path until the response to the data input / output request is received.
[0020]
In the round robin method, data input / output requests are assigned in a predetermined order regardless of the load of the logical path. For example, even if there is another low-load logical path, A new data input / output request may be assigned to the path. On the other hand, in the method of assigning data input / output requests to logical paths according to the load, data input / output requests are assigned so that each logical path is efficiently used as a whole. For example, a new data input / output request is assigned to the logical path with the smallest load at the time of assignment, and control is performed so that the load is not concentrated on a specific logical path.
[0021]
=== Get load of logical path ===
Next, a mechanism in which the path management driver 120 determines a logical path to which a data input / output request is assigned according to the load on the logical path will be described in detail.
First, a mechanism in which the path management driver 120 acquires the load of each logical path will be described. FIG. 3 is a flowchart illustrating an example of processing for acquiring the load of each logical path. In this example, a data input / output request is transmitted from the path management driver 120 to the logical path, and a time until the path management driver 120 receives a response to the data input / output request (hereinafter referred to as response time) is measured. By doing so, the load of each logical path is acquired. That is, the logical path with a longer response time has a larger load, and the shorter the response time, the smaller the load.
[0022]
In the process shown in FIG. 3, the response time of each logical path is measured regularly at regular time intervals. When the timing for measuring the response time comes (S3001: YES), the path management driver 120 transmits a data input / output request (hereinafter referred to as a test request) to each logical path (S3002). Here, a data input / output request (for example, a command for writing data having the same data size when the data input / output request is a data write command) is transmitted to each logical path. The path management driver 120 stores the time when the test request is transmitted to the logical path.
[0023]
When the path management driver 120 receives a response to the test request transmitted to each logical path (S3003), a time interval between the time when the test request corresponding to the response is transmitted and the time when the response is received (that is, Response time) is calculated (S3004). The response time measured for each logical path is registered in the logical path management table 400 shown in FIG. 4 (S3005). Each logical path is given an identifier (hereinafter referred to as a logical path ID) that is uniquely set. The logical path management table 400 is referred to by the path management driver 120. The logical path management table 400 is stored in, for example, a memory or a hard disk device of the information processing apparatus 100.
[0024]
=== Determination of allocation priority ===
Next, the allocation priority determined based on the response time of each logical path registered in the logical path management table 400 as described above will be described. The allocation priority is data that is referred to by the path management driver 120 when determining which logical path the data input / output request is allocated to. In this embodiment, the allocation priority is determined to be a larger value for a logical path with a smaller load. In other words, the allocation priority is determined to be larger as the measured logical path has a shorter response time. Specifically, with reference to a logical path with a large load, the allocation priority is determined so as to reduce the load on the logical path. Hereinafter, a process in which the path management driver 120 determines the allocation priority based on the response time and sets the content of the allocation priority in the logical path management table 400 will be specifically described.
[0025]
FIG. 5 is a flowchart for explaining a process in which the path management driver 120 determines the allocation priority and sets the allocation priority in the logical path management table 400 (hereinafter referred to as an allocation priority setting process). The allocation priority setting process is started at an appropriate timing by the path management driver 120 (S5001). For example, it is activated in conjunction with the response time of the logical path management table 400 being updated. Also, for example, it is activated when a timing set in advance for the path management driver 120 by an operator or the like has arrived.
[0026]
The assignment priority is set for each group of logical paths connected to one logical unit (LU). That is, in the assignment priority setting process, load distribution is realized within a group of logical paths connected to one logical unit. Hereinafter, a group consisting of a group of logical paths that realize load sharing with each other will be referred to as a logical path group. In carrying out the present invention, it is not always necessary to realize load distribution within the range of the group of logical paths. The group of logical paths can be set in an arbitrary range, for example, targeting logical paths connected to a plurality of logical units.
[0027]
When the allocation priority setting process is activated, a theoretical load is calculated for a group of logical paths connected to a certain logical unit according to a predetermined algorithm using the allocation priority and response time as parameters (S5002). The theoretical load is an intermediate parameter used in determining the allocation priority. As the allocation priority of each logical path, a value already registered as the content of the allocation priority in the logical path management table 400 is referred to. In an initial state such as when the information processing apparatus 100 is activated or reset, a default value is set for the allocation priority in the logical path management table 400. As the default value, for example, an intermediate value of the allocation priority range is adopted. Further, for example, the default value is set at a ratio corresponding to the measured response time. The default value can be arbitrarily set by the user.
[0028]
As the predetermined algorithm, for example, an algorithm having a theoretical load that is a result of four arithmetic operations (for example, simple product) using allocation priority and response time as parameters is employed. It is assumed that the predetermined algorithm increases the theoretical load as the logical path load increases and as the logical path allocation priority increases.
When the theoretical load is calculated, the path management driver 120 selects a logical path having the maximum theoretical load among the calculated theoretical loads of each logical path as a reference logical path (S5003).
[0029]
Next, the path management driver 120 adds a predetermined value (hereinafter, changed value) to the content of the allocation priority of the logical path management table 400 for one of the logical paths other than the reference logical path, and the value after the addition And the value set in the response time of the logical path management table 400 as parameters, the theoretical load (hereinafter referred to as comparative theoretical load) is calculated again by the predetermined algorithm or other algorithms (S5004).
[0030]
Next, the path management driver 120 compares the calculated comparative theoretical load with the theoretical load calculated for the reference logical path (hereinafter referred to as the reference theoretical load) (S5005). That is, when the allocation priority of the logical path is increased by the change value, it is checked whether or not the theoretical load of the reference logical path, which is the largest theoretical load, is exceeded. Here, when the comparative theoretical load is smaller than the reference theoretical load (S5005: YES), the path management driver 120 indicates that the allocation priority registered in the logical path management table 400 is a preset allocation priority. It is determined whether it is the upper limit value of the range (S5006). Here, the domain is a value that the allocation priority can take. The range can be arbitrarily set by an operator or the like. The set region is registered in the logical path management table 400. In (S5006), if the content of the allocation priority in the logical path management table 400 is not the upper limit value (S5006: NO), the change value is added to the content of the allocation priority of the logical path in the logical path management table 400. Then, the update counter is incremented (+1) (S5008).
[0031]
On the other hand, in (S5006), when the allocation priority matches the upper limit value of the domain (S5006: YES), the allocation priority of logical paths other than the logical path registered in the logical path management table 400 is determined. The change value is subtracted and the update counter is incremented (+1) (S5007). By doing so, the allocation priority of the logical path is relatively increased as compared with other logical paths. Further, the theoretical load of the logical path increases to the extent that the theoretical load of the reference logical path having the largest theoretical load is not exceeded. Also, by unconditionally increasing the allocation priority of data processing requests to logical paths that have been determined to have a heavy load, load concentration on the logical paths can be suppressed, and load distribution between logical paths can be more appropriately distributed. It becomes possible to plan.
[0032]
In (S5005), when the comparative theoretical load is greater than or equal to the reference theoretical load (S5005: NO), the path management driver 120 sets zero (“0”) in the update counter (S5009).
[0033]
In (S5010), the path management driver 120 repeats the processing from (S5004) for the logical paths for which the above processing is not completed among all the logical paths other than the group of reference logical paths connected to a certain logical unit. Execute (S5010: NO). When the above processing is completed for all logical paths other than the reference logical path (S5010: YES), the path management driver 120 then determines that the allocation priority of any one of the group of logical paths is the allocation priority. It is checked whether or not it has been changed (S5011). If the allocation priority of any logical path has been changed (S5011: YES), the change value is subtracted from the content of the allocation priority of the reference logical path in the logical path management table 400 (S5012).
[0034]
In (S5013), when there is another logical unit (LU) for which the allocation priority is not set (S5013: YES), the path management driver 120 determines a group of logical paths connected to the logical unit. The processing from (S5002) is executed. If there is no other logical unit (S5013: NO), the series of processing ends.
[0035]
In the above processing, the allocation priority can be changed by changing the allocation priority range and the change value. For example, by setting a wide range, or by making the change value a small value (hereinafter referred to as stability setting), the change in the allocation priority with respect to the addition / subtraction of the change value becomes small. By setting the range narrower or setting the change value to a large value (hereinafter referred to as “sensitive setting”), the change in the allocation priority with respect to the addition / subtraction of the change value becomes large.
[0036]
By the way, the allocation priority calculated in the past reflects the load of the logical path in the past. Therefore, as described above, by calculating a new allocation priority based on the newly acquired load and the allocation priority reflecting the previously acquired load, the load on the logical path in the past can be reduced. The allocation priority is calculated in a form that takes into account, and an appropriate allocation priority can be calculated.
[0037]
=== Load distribution ===
The path management driver 120 assigns a data input / output request input from an application program, an operating system, or the like to any one of a plurality of logical paths. This allocation is performed based on the allocation priority set in the logical path management table 400 so that load distribution is realized among the logical paths. Here, a mechanism for sequentially allocating a number (amount) of data input / output requests corresponding to the allocation priority to each logical path as a mechanism for realizing load distribution based on the allocation priority will be described. Note that the mechanism for realizing load balancing is not limited to this. For example, data input / output requests can be preferentially allocated to logical paths having a large allocation priority.
[0038]
FIG. 6 is a flowchart for explaining a process in which the path management driver 120 realizes load distribution by sequentially allocating the number of data input / output requests corresponding to the allocation priority to each logical path.
In this process, the path management driver 120 sequentially receives data input / output requests that are sequentially input, starting from the logical path having the highest allocation priority, by the number corresponding to the allocation priority set for each logical path. Assign to. This process is realized, for example, by adding a process for allocating a number of data input / output requests corresponding to the allocation priority to the logical path to the allocation algorithm based on the round robin method.
[0039]
In FIG. 6, first, when a data input / output request is input (S6001), the path management driver 120 allocates the data input / output request to a logical path set as an allocation destination at that time. Here, the logical path management table 400 manages an allocation destination flag which is information indicating which logical path is set as an allocation destination at that time. “1” is set in the assignment destination flag of the logical path to which the data input / output request is assigned at that time, and “0” is set in the assignment destination flags of the other logical paths. The contents of the assignment destination flag are managed by processing of the path management driver 120 according to the flowchart shown in FIG. The path management driver 120 checks which logical path is set as the allocation destination by referring to the allocation destination flag in the logical path management table 400 (S6002).
[0040]
The path management driver 120 allocates a data input / output request to the logical path set as the allocation destination (S6003). The assignment of the data input / output request specifically refers to registering the data input / output request in the data input / output request processing waiting queue provided for each logical path. Further, information for identifying a path to which a data input / output request is allocated may be associated with the data input / output request and registered in a data input / output request processing queue provided for a plurality of paths. . The path management driver 120 manages a counter (hereinafter referred to as an allocation counter) for counting the number of data input / output requests allocated to the logical path. The path management driver 120 increments (+1) the value of the allocation counter every time one data input / output request is allocated to the logical path (S6004). Here, when allocating the data input / output request to the logical path, the path management driver 120 checks whether the allocation counter has reached the allocation upper limit value (S6005). The allocation upper limit value is a value determined according to the allocation priority. For example, load distribution is performed among four logical paths, the allocation priority range is set to 1-20, and the allocation priority of each logical path is 5, 6, 7, 3. In this case, a value (for example, 5, 6, 7, 3) determined by the ratio of allocation priority is set as the allocation upper limit value of each logical path. If the allocation counter has reached the allocation upper limit value (S6005: YES), the path management driver 120 executes processing for changing the allocation destination flag shown in FIG. 7 (hereinafter referred to as allocation destination flag change processing). (S6006).
[0041]
The process for changing the assignment destination flag will be described with reference to the flowchart shown in FIG. First, the path management driver 120 sets the assignment destination flag to “from among other logical paths belonging to the logical path group to which the logical path whose assignment destination flag is currently set to“ 1 ”belongs. A logical path having an allocation priority equal to or lower than the allocation priority set for the logical path set to “1” is selected (S7001). If such a logical path cannot be selected (S7002: cannot be selected), the path management driver 120 selects a logical path with the highest allocation priority from among the logical paths belonging to the logical path group ( S7003). If there are a plurality of logical paths having the highest allocation priority (S7004: YES), the logical path to which the youngest logical path ID is assigned is selected as the logical path to which the data input / output request is allocated. (S7005). Then, “1” is set to the assignment destination flag of the logical path management table 400 of the logical path (S7006), and “0” is assigned to the assignment destination flag of another logical path belonging to the logical path group to which the logical path belongs. Set. At this time, zero (0) is set in the allocation counter (S7007).
[0042]
If there is only one logical path having the maximum allocation priority in (S7004), that logical path is selected as the logical path to which the data input / output request is allocated (S7008), and the above (S7006) Proceed to the process.
[0043]
In (S7002), when an allocation priority lower than the allocation priority is set (S7002: lower priority), it is checked whether or not there are a plurality of selected logical paths (S7009). If there are a plurality of logical paths selected here (S7009: YES), the logical path with the smallest logical path ID is selected as the logical path to which the data input / output request is assigned (S7010). ), The process proceeds to the above-described (S7006).
[0044]
If an allocation priority equal to the allocation priority is set in (S7002) (S7002: equal priority), the logical path ID is compared with the selected logical path ID (S7011). . If the ID of the logical path is larger than the ID of the selected logical path (S7011: The logical path ID is large), a logical path having an ID larger than the ID of the logical path is selected. The process proceeds to (S7001). In this case, in the process in (S7001), the same ID as that of the selected logical path is not selected. If there is no logical path having an ID larger than that of the logical path, a logical path having an allocation priority lower than the allocation priority of the logical path is selected (S7001). On the other hand, if the ID of the logical path is smaller than the ID of the selected logical path (S7011: The logical path ID is small), the process proceeds to (S7008).
[0045]
=== Adjustment of allocation priority ===
As described above, changing the allocation priority can be adjusted by changing the range of the allocation priority and the value of the change value. For example, if the load on each logical path is relatively stable and the change over time is gradual, set a wide range or set the change value to a small value (stability setting). Thus, the change of the allocation priority with respect to the addition / subtraction of the change value is reduced, so that the load of each logical path is not changed so rapidly with respect to the change of the load. Also, when the load on each logical path is not stable and the change over time is severe, the change range can be added by setting the change range narrower or setting the change value to a large value (sensitive setting). The change of the allocation priority with respect to the subtraction is increased, and the load of each logical path is changed quickly with respect to the change of the load.
[0046]
On the other hand, depending on the use of the information processing system, there may be a time zone in which the load of the logical path is stable and an unstable time zone. In such an information processing system, it is not always necessary to constantly set either a stable setting or a sensitive setting. Alternatively, it may be preferable to dynamically change the allocation priority change mode by changing the change value. Therefore, the path management driver 120 of the present invention has a function of dynamically changing a domain or a change value registered in the logical path management table 400.
[0047]
FIG. 8 is a flowchart for explaining processing for realizing the above functions. First, the path management driver 120 checks whether there is a logical path for which the update counter of each logical path belonging to the logical path group is greater than or equal to a threshold value (S8001). The reason why the value of the update counter of each logical path is compared with the threshold value is to check the update frequency of the allocation priority. If there is a logical path that is equal to or greater than the threshold value, that is, if the allocation priority is frequently changed (S8001: YES), then the logical path group is set to the current stable setting. It is checked whether the setting is sensitive or sensitive (S8002). Here, the setting of the logical path group is managed in the policy item of the logical path management table 400 shown in FIG. If the stability is set (S8002: YES), the policy setting of the logical path group is changed to the sensitive setting by narrowing the range or increasing the change value (S8003). On the other hand, in (S8002), when the policy setting of the logical path group is a sensitive setting, the sensitive setting is maintained as it is. In this case, a more sensitive (sensitive) setting may be obtained by further narrowing the range or increasing the change value.
[0048]
In (S8001), when there is no logical path that is equal to or higher than the threshold value, that is, when the assignment priority is not frequently changed (S8001: NO), the logical path group is currently in stability. It is checked whether the setting is sensitive or sensitive (S8004). If the policy setting of the logical path group is a sensitive setting (S8004: YES), the policy setting of the logical path group is stabilized by expanding the range or decreasing the change value. (S8005). On the other hand, if the policy setting of the logical path group is the stability setting in (S8004) (S8004: NO), the stability setting is maintained as it is. In this case, the range may be further expanded or the change value may be decreased to achieve a more stable (stable) setting.
[0049]
As described above, in the information processing system according to the present embodiment, the load distribution of the logical path group is set according to the change of the allocation priority set according to the state of the load on the logical path, Since the sensitive management is dynamically changed, it is possible to appropriately distribute the load according to the load of the logical path that changes variously.
[0050]
Also, there are various ways of changing the logical path load over time, such as when a constant load occurs constantly, suddenly high load, or when the load gradually changes over time. It is. According to the above mechanism, the amount of increase / decrease in the allocation priority with respect to the change in the load is changed according to the change in time of the load of each logical path. It becomes possible to realize load balancing
When an operator or the like sets a range or change value of an allocation priority, for example, a policy is defined as an option corresponding to the range or change value, or these change modes. A user interface may be provided so that a domain and a change value can be easily set by selecting a policy. Then, by changing the policy, the operator or other user can adjust the allocation priority according to, for example, the past performance or the logical path load that is empirically grasped. It is possible to realize load balancing. In FIG. 4 described above, “stability” which is a policy for setting a large range of allocation priority or a small change value for the logical path group corresponding to LU1 is set for the logical path group corresponding to LU2. “Sensitive”, which is a policy for setting a lower allocation priority range or a larger change value, is “stability” or “sensitive” for logical path groups corresponding to LU3, depending on the change in logical path load. Is set to “smart”, which is a policy that sets the range to the same value as in the case of stability.
[0051]
=== Detailed Configuration Example of Information Processing Apparatus ===
FIG. 9 is a detailed configuration example of the information processing apparatus 100 according to the present embodiment.
The application program 110 accesses the logical unit 220 set in the storage device 200 via the file system 240. The file system 240 is usually provided as one of the functions of the operating system, and refers to software that manages a storage area provided by the storage device 200. That is, an abstract concept of a file is realized in a logical block on a storage area provided by the storage device 200, and a data input / output request for the file is made to correspond to a data input / output request in units of logical block addresses.
[0052]
The path management driver 120 distributes data input / output requests issued from the application program 110 via the file system 240 to the HP ports IF1 (141) to IF4 (144). The distributed data input / output request is transmitted from the IF1 (141) to IF4 (144) to the storage device 200 via the disk driver 160 (161 to 168) and the IF driver 170 (171 to 178). The disk driver 160 abstracts a block mode device as a logical disk. The IF driver 170 converts and restores the data input / output request into a packet of a predetermined communication protocol. As the communication protocol, for example, a fiber channel can be adopted.
[0053]
The data input / output request is transmitted from the information processing apparatus 100 to the storage device 200 through a physical path configured by hardware including the four connection units 301 to 304. On the other hand, as described above, a logical path is associated with the physical path. A logical path is a data path logically configured by software. In FIG. 9, logical paths are indicated by 801 to 808. A logical path is provided for each LU.
[0054]
The information processing apparatus 100 and the storage device 200 can be connected via a SAN (Storage Area Network) 700 as shown in FIG. 9, or can be directly connected as shown in FIG. You can also.
[0055]
The driver management program 121 manages the path management driver 120 together with a driver UI (User Interface) program 122 and a driver API (Application Program Interface) program 123. The driver UI program 122 is a program for providing a user interface when setting the path management driver 120 via the driver management program 121. The driver API program 123 is a program in which instructions and functions that can be used when setting the path management driver 120 using the driver UI program 122 are collected.
[0056]
FIG. 10 shows a part of the configuration different from the information processing apparatus 100 shown in FIG. In the information processing apparatus 100 in FIG. 9, the disk driver 160 receives a data input / output request from the path management driver 120, abstracts a block mode device as a logical disk, and passes it to the IF driver 170. However, some operating systems require the disk driver 160 to be interposed between the file system 240 and the path management driver 120. FIG. 10 shows an example of such a case. The form of FIG. 9 and the form of FIG. 10 are caused by a difference in operating system, and both forms are one embodiment of the present invention.
[0057]
The information processing apparatus and the like according to the present invention have been described above. However, the above-described embodiment is intended to facilitate understanding of the present invention and does not limit the present invention. The present invention can be changed and improved without departing from the gist thereof, and the present invention includes the equivalents thereof.
[0058]
【The invention's effect】
ADVANTAGE OF THE INVENTION According to this invention, the control method of an information processing apparatus, an information processing apparatus, an information processing system, and a program can be provided.
[Brief description of the drawings]
FIG. 1 is a diagram showing an overall configuration of an information processing system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a logical path according to an embodiment of the present invention.
FIG. 3 is a flowchart illustrating processing for acquiring a load on a logical path according to an embodiment of the present invention.
FIG. 4 is a diagram showing a logical path management table 400 according to an embodiment of the present invention.
FIG. 5 is a flowchart illustrating processing for setting an allocation priority of a logical path management table 400 according to an embodiment of the present invention.
FIG. 6 is a flowchart illustrating a process for realizing load distribution by sequentially allocating a number of data input / output requests according to an allocation priority to each logical path according to an embodiment of the present invention.
FIG. 7 is a flowchart illustrating processing for changing an assignment destination flag according to an embodiment of the present invention.
FIG. 8 is a flowchart illustrating processing for realizing a function of dynamically changing a domain or a change value registered in a logical path management table 400 according to an embodiment of the present invention.
FIG. 9 is a diagram illustrating a detailed configuration example of an information processing apparatus 100 according to an embodiment of the present invention.
FIG. 10 is a diagram illustrating a detailed configuration example of an information processing apparatus 100 according to an embodiment of the present invention.
[Explanation of symbols]
100 Information processing apparatus
110 Application program
120 path management driver
131 to 138 Data input / output queues assigned to logical paths
141-148 IF (Inter Face)
200 storage device
210 Disk controller
220 logical units
400 Logical path management table

Claims (15)

通信可能に接続される記憶装置との間に設定される複数の論理パスを通じて前記記憶装置にデータ入出力要求を送信する情報処理装置の制御方法において、
前記論理パスの負荷を取得し、
前記データ入出力要求を割り当てる前記論理パスを前記負荷に応じて決定すること、
を特徴とする情報処理装置の制御方法。
In a control method of an information processing apparatus for transmitting a data input / output request to a storage device through a plurality of logical paths set between the storage devices connected to be communicable,
Obtain the load of the logical path;
Determining the logical path to which the data input / output request is assigned according to the load;
A method for controlling an information processing apparatus.
請求項1に記載の情報処理装置の制御方法において、
前記データ入出力要求を割り当てる際の優先度である割当優先度を前記負荷に基づき前記論理パスについて算出し、
前記論理パスについて算出される前記割当優先度に応じた量の前記データ入出力要求を前記論理パスに割り当てること、
を特徴とする情報処理装置の制御方法。
The control method of the information processing apparatus according to claim 1,
An allocation priority that is a priority when allocating the data input / output request is calculated for the logical path based on the load,
Allocating the data input / output request to the logical path in an amount corresponding to the allocation priority calculated for the logical path;
A method for controlling an information processing apparatus.
請求項2に記載の情報処理装置の制御方法において、
取得した前記論理パスの前記負荷と、前記論理パスに対応させて過去に算出されている前記割当優先度とに基づいて算出される値に基づいて前記割当優先度を更新すること、
を特徴とする情報処理装置の制御方法。
In the control method of the information processing apparatus according to claim 2,
Updating the allocation priority based on a value calculated based on the acquired load of the logical path and the allocation priority calculated in the past corresponding to the logical path;
A method for controlling an information processing apparatus.
請求項2に記載の情報処理装置において、
前記割当優先度の算出は、
前記負荷に応じて前記割当優先度を増減し、前記各論理パスの負荷の時間的な変化態様に応じて前記負荷の変化に対する前記割当優先度の増減量を変化させることにより行うこと、
を特徴とする情報処理装置の制御方法。
The information processing apparatus according to claim 2,
The calculation of the allocation priority is as follows:
The allocation priority is increased / decreased according to the load, and the allocation priority increase / decrease amount with respect to the load change is changed according to a temporal change mode of the load of each logical path,
A method for controlling an information processing apparatus.
通信可能に接続される記憶装置との間に設定される複数の論理パスを通じて前記記憶装置にデータ入出力要求を送信する情報処理装置において、
前記論理パスの負荷を取得する手段と、
前記データ入出力要求を割り当てる前記論理パスを前記負荷に応じて決定する手段と、
を備えることを特徴とする情報処理装置。
In an information processing apparatus that transmits a data input / output request to the storage device through a plurality of logical paths set between the storage devices that are communicably connected,
Means for obtaining a load of the logical path;
Means for determining the logical path to which the data input / output request is assigned according to the load;
An information processing apparatus comprising:
請求項5に記載の情報処理装置において、
前記データ入出力要求を割り当てる際の優先度である割当優先度を前記負荷に基づき前記論理パスについて算出する手段と、
前記論理パスについて算出される前記割当優先度に応じた量の前記データ入出力要求を前記論理パスに割り当てる手段と、
を備えることを特徴とする情報処理装置。
The information processing apparatus according to claim 5,
Means for calculating an allocation priority, which is a priority when allocating the data input / output request, for the logical path based on the load;
Means for allocating to the logical path an amount of the data input / output request corresponding to the allocation priority calculated for the logical path;
An information processing apparatus comprising:
請求項6に記載の情報処理装置において、
取得した前記論理パスの前記負荷と、前記論理パスに対応させて過去に算出されている前記割当優先度とに基づいて算出される値に基づいて前記割当優先度を更新する手段を備えること、
を特徴とする情報処理装置。
The information processing apparatus according to claim 6,
Means for updating the allocation priority based on a value calculated based on the obtained load of the logical path and the allocation priority calculated in the past corresponding to the logical path;
An information processing apparatus characterized by the above.
請求項6に記載の情報処理装置において、
前記算出する手段は、前記負荷に応じて前記割当優先度を増減する手段であり、前記負荷の変化に対する前記割当優先度の増減量を指定させるユーザインタフェースを備えること、を特徴とする情報処理装置。
The information processing apparatus according to claim 6,
The calculating means is means for increasing / decreasing the allocation priority according to the load, and comprises an user interface for designating an increase / decrease amount of the allocation priority with respect to a change in the load. .
請求項6に記載の情報処理装置において、
前記算出する手段は、前記負荷に応じて前記割当優先度を増減し、前記各論理パスの負荷の時間的な変化態様に応じて前記負荷の変化に対する前記割当優先度の増減量を変化させる手段であること、
を特徴とする情報処理装置。
The information processing apparatus according to claim 6,
The calculating means increases / decreases the allocation priority according to the load, and changes the allocation priority increase / decrease amount with respect to the load change according to a temporal change mode of the load of each logical path. Being
An information processing apparatus characterized by the above.
請求項5乃至9のいずれかに記載の情報処理装置において、
前記各論理パスの前記負荷は、前記各論理パスを通じて送信されたデータ入出力要求の応答時間に基づいて算出されることを特徴とする情報処理装置。
The information processing apparatus according to any one of claims 5 to 9,
The information processing apparatus, wherein the load of each logical path is calculated based on a response time of a data input / output request transmitted through each logical path.
請求項5乃至9のいずれかに記載の情報処理装置において、
前記論理パスは、当該情報処理装置と前記記憶装置とを接続している一つ以上のソフトウェアもしくは一つ以上のハードウェアの組み合わせにより定義される通信経路であること、を特徴とする情報処理装置。
The information processing apparatus according to any one of claims 5 to 9,
The logical path is a communication path defined by a combination of one or more software or one or more hardware connecting the information processing apparatus and the storage device. .
通信可能に接続される情報処理装置と記憶装置とを含み、
前記情報処理装置が、前記記憶装置との間に設定される複数の論理パスを通じて前記記憶装置にデータ入出力要求を送信する手段と、前記各論理パスの負荷を取得して前記データ入出力要求を割り当てる前記論理パスを前記負荷に応じて決定する手段と、を備えることを備えることを特徴とする情報処理システム。
Including an information processing device and a storage device that are communicably connected;
Means for transmitting a data input / output request to the storage device through a plurality of logical paths set between the information processing device and the storage device; and acquiring the load of each logical path to obtain the data input / output request. And a means for determining the logical path to be assigned according to the load.
通信可能に接続される記憶装置との間に設定される複数の論理パスを通じて前記記憶装置にデータ入出力要求を送信する情報処理装置に、
前記論理パスの負荷を取得する機能と、
前記データ入出力要求を割り当てる前記論理パスを前記負荷に応じて決定する機能と、
を実現するためのプログラム。
To an information processing device that transmits a data input / output request to the storage device through a plurality of logical paths set between the storage devices that are communicably connected,
A function of acquiring a load of the logical path;
A function of determining the logical path to which the data input / output request is assigned according to the load;
Program to realize.
通信可能に接続される記憶装置との間に設定される複数の論理パスを通じて前記記憶装置にデータ入出力要求を送信する情報処理装置の制御方法において、
前記論理パスに前記データ入出力要求を送信してから当該データ入出力要求に対する応答を受信するまでの時間を応答時間として取得し、
前記データ入出力要求を割り当てる際の優先度である割当優先度を、前記応答時間に基づき前記論理パスについて算出し、
前記応答時間と前記割当優先度とから計算される値である理論負荷を前記論理パスについて算出し、
前記算出された前記論理パスの理論負荷のうち最大の前記理論負荷を持つ論理パスを基準論理パスとして選出し、
前記応答時間と、前記割当優先度に所定の変化値を加算した値とから計算される値である比較理論負荷を前記論理パスについて算出し、
前記基準論理パスについての前記理論負荷が前記比較理論負荷よりも大きい場合に、前記論理パスの割当優先度が割当優先度の変域の上限値であるときは、当該論理パス以外の論理パスの割当優先度から前記変化値を減算し、前記論理パスの割当優先度が割当優先度の変域の上限値でないときは、前記論理パスの割当優先度に前記変化値を加算し、
前記論理パスのうちいずれかの割当優先度が変更された場合には、前記基準論理パスの前記割当優先度から前記変化値を減算し、
前記割当優先度に応じた量の前記データ入出力要求を前記論理パスに割り当てること、
を特徴とする情報処理装置の制御方法。
In a control method of an information processing apparatus for transmitting a data input / output request to a storage device through a plurality of logical paths set between the storage devices connected to be communicable,
The time from when the data input / output request is transmitted to the logical path until the response to the data input / output request is received is obtained as a response time,
An allocation priority that is a priority when allocating the data input / output request is calculated for the logical path based on the response time;
A theoretical load that is a value calculated from the response time and the assigned priority is calculated for the logical path,
The logical path having the maximum theoretical load among the calculated theoretical loads of the logical path is selected as a reference logical path,
A comparison theoretical load that is a value calculated from the response time and a value obtained by adding a predetermined change value to the allocation priority is calculated for the logical path;
When the logical load for the reference logical path is larger than the comparative theoretical load, and the allocation priority of the logical path is the upper limit value of the allocation priority range, the logical path other than the logical path The change value is subtracted from the allocation priority, and when the logical path allocation priority is not the upper limit value of the allocation priority range, the change value is added to the logical path allocation priority,
When the allocation priority of any of the logical paths is changed, the change value is subtracted from the allocation priority of the reference logical path,
Allocating the data input / output request in an amount corresponding to the allocation priority to the logical path;
A method for controlling an information processing apparatus.
通信可能に接続される記憶装置との間に設定される複数の論理パスを通じて前記記憶装置にデータ入出力要求を送信する情報処理装置の制御方法において、
前記論理パスの負荷を取得し、
前記データ入出力要求を割り当てる際の優先度である割当優先度を前記負荷に基づき前記論理パスについて算出し、
取得した前記論理パスの前記負荷と、前記論理パスに対応させて過去に算出されている前記割当優先度とに基づいて算出される値に基づいて前記割当優先度を更新し、
前記論理パスの前記割当優先度の更新頻度を調べ、
前記論理パスの前記割当優先度の変更が頻繁に行われている場合に、前記割当優先度の変域が狭くなるようにあるいは前記割当優先度の変化値が大きな値になるように変更し、
前記論理パスの前記割当優先度の変更が頻繁には行われていない場合に、前記変域が広くなるようにあるいは前記変化値が小さな値になるように変更し、
前記論理パスについて算出される前記割当優先度に応じた量の前記データ入出力要求を前記論理パスに割り当てること、
を特徴とする情報処理装置の制御方法。
In a control method of an information processing apparatus for transmitting a data input / output request to a storage device through a plurality of logical paths set between the storage devices connected to be communicable,
Obtain the load of the logical path;
An allocation priority that is a priority when allocating the data input / output request is calculated for the logical path based on the load,
Updating the allocation priority based on a value calculated based on the acquired load of the logical path and the allocation priority calculated in the past corresponding to the logical path;
Check the update frequency of the allocation priority of the logical path,
When the allocation priority of the logical path is frequently changed, the allocation priority range is changed to be narrow or the allocation priority change value is changed to a large value,
When the allocation priority of the logical path is not frequently changed, the domain is changed so that the domain becomes wider or the change value becomes a small value.
Allocating the data input / output request to the logical path in an amount corresponding to the allocation priority calculated for the logical path;
A method for controlling an information processing apparatus.
JP2003172537A 2003-06-17 2003-06-17 Method for controlling information processor, information processor, information processing system and program Pending JP2005010956A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003172537A JP2005010956A (en) 2003-06-17 2003-06-17 Method for controlling information processor, information processor, information processing system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003172537A JP2005010956A (en) 2003-06-17 2003-06-17 Method for controlling information processor, information processor, information processing system and program

Publications (1)

Publication Number Publication Date
JP2005010956A true JP2005010956A (en) 2005-01-13

Family

ID=34096658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003172537A Pending JP2005010956A (en) 2003-06-17 2003-06-17 Method for controlling information processor, information processor, information processing system and program

Country Status (1)

Country Link
JP (1) JP2005010956A (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259824A (en) * 2005-03-15 2006-09-28 Hitachi Ltd Storage system and information processing system
US7120912B2 (en) 2004-07-28 2006-10-10 Hitachi, Ltd. Computer system for load balance, program and method for setting paths
WO2006134746A1 (en) * 2005-06-14 2006-12-21 Sony Computer Entertainment Inc. Command transfer controlling apparatus and command transfer controlling method
JP2009140493A (en) * 2007-12-10 2009-06-25 Hewlett-Packard Development Co Lp Method and system for processing data
US7554910B2 (en) 2005-03-25 2009-06-30 Hitachi, Ltd. Method and an apparatus for managing access path
JP2009245379A (en) * 2008-03-31 2009-10-22 Hitachi Ltd Storage system and control method of storage system
DE112008001947T5 (en) 2007-07-31 2010-06-02 Mitsubishi Electric Corp. Communications control system
US7917672B2 (en) 2006-05-18 2011-03-29 Hitachi, Ltd. Path maintenance mechanism
US8037257B2 (en) 2007-06-27 2011-10-11 Hitachi, Ltd. Storage system and path management method for multi-host environment
JP2011232967A (en) * 2010-04-28 2011-11-17 Nec Corp Storage system and method for controlling disk access priority of storage system
JP2012064248A (en) * 2011-12-27 2012-03-29 Bank Of Tokyo-Mitsubishi Ufj Ltd Redundant state verification device
JP2015121957A (en) * 2013-12-24 2015-07-02 日本電気株式会社 Storage system, server, load balancing setting method, and control method
JPWO2016174764A1 (en) * 2015-04-30 2017-12-28 株式会社日立製作所 Management apparatus and management method
JP2018181325A (en) * 2017-04-03 2018-11-15 ダトリウム インコーポレイテッド Data path monitoring in distributed storage network
USRE48090E1 (en) 2007-04-20 2020-07-07 Ideal Industries Lighting Llc Illumination control network

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120912B2 (en) 2004-07-28 2006-10-10 Hitachi, Ltd. Computer system for load balance, program and method for setting paths
JP2006259824A (en) * 2005-03-15 2006-09-28 Hitachi Ltd Storage system and information processing system
JP4721734B2 (en) * 2005-03-15 2011-07-13 株式会社日立製作所 Storage system and information processing system
US7554910B2 (en) 2005-03-25 2009-06-30 Hitachi, Ltd. Method and an apparatus for managing access path
WO2006134746A1 (en) * 2005-06-14 2006-12-21 Sony Computer Entertainment Inc. Command transfer controlling apparatus and command transfer controlling method
EP1894105A1 (en) * 2005-06-14 2008-03-05 Sony Computer Entertainment Inc. Command transfer controlling apparatus and command transfer controlling method
EP1894105A4 (en) * 2005-06-14 2008-09-17 Sony Computer Entertainment Inc Command transfer controlling apparatus and command transfer controlling method
KR100864998B1 (en) * 2005-06-14 2008-10-23 가부시키가이샤 소니 컴퓨터 엔터테인먼트 Command transfer controlling apparatus and command transfer controlling method
US7725623B2 (en) 2005-06-14 2010-05-25 Sony Computer Entertainment Inc. Command transfer controlling apparatus and command transfer controlling method
US7917672B2 (en) 2006-05-18 2011-03-29 Hitachi, Ltd. Path maintenance mechanism
USRE49480E1 (en) 2007-04-20 2023-03-28 Ideal Industries Lighting Llc Illumination control network
USRE48090E1 (en) 2007-04-20 2020-07-07 Ideal Industries Lighting Llc Illumination control network
USRE48299E1 (en) 2007-04-20 2020-11-03 Ideal Industries Lighting Llc Illumination control network
USRE48263E1 (en) 2007-04-20 2020-10-13 Ideal Industries Lighting Llc Illumination control network
US8037257B2 (en) 2007-06-27 2011-10-11 Hitachi, Ltd. Storage system and path management method for multi-host environment
US8185707B2 (en) 2007-06-27 2012-05-22 Hitachi, Ltd. Storage system and path management method for multi-host environment
DE112008001947T5 (en) 2007-07-31 2010-06-02 Mitsubishi Electric Corp. Communications control system
JP2009140493A (en) * 2007-12-10 2009-06-25 Hewlett-Packard Development Co Lp Method and system for processing data
US9110597B2 (en) 2007-12-10 2015-08-18 Hewlett-Packard Development Company, L.P. Data processing method and system
JP2009245379A (en) * 2008-03-31 2009-10-22 Hitachi Ltd Storage system and control method of storage system
US8578073B2 (en) 2008-03-31 2013-11-05 Hitachi, Ltd. Storage system and control method of storage system
JP2011232967A (en) * 2010-04-28 2011-11-17 Nec Corp Storage system and method for controlling disk access priority of storage system
JP2012064248A (en) * 2011-12-27 2012-03-29 Bank Of Tokyo-Mitsubishi Ufj Ltd Redundant state verification device
JP2015121957A (en) * 2013-12-24 2015-07-02 日本電気株式会社 Storage system, server, load balancing setting method, and control method
US20180046686A1 (en) * 2015-04-30 2018-02-15 Hitachi, Ltd. Management device and management method
US10754866B2 (en) * 2015-04-30 2020-08-25 Hitachi, Ltd. Management device and management method
JPWO2016174764A1 (en) * 2015-04-30 2017-12-28 株式会社日立製作所 Management apparatus and management method
JP2018181325A (en) * 2017-04-03 2018-11-15 ダトリウム インコーポレイテッド Data path monitoring in distributed storage network
JP7034806B2 (en) 2017-04-03 2022-03-14 ヴイエムウェア インコーポレイテッド Data path monitoring in a distributed storage network

Similar Documents

Publication Publication Date Title
US9442763B2 (en) Resource allocation method and resource management platform
JP6199514B2 (en) Scheduling fabric distributed resources
JP2005010956A (en) Method for controlling information processor, information processor, information processing system and program
US7801994B2 (en) Method and apparatus for locating candidate data centers for application migration
US9563423B1 (en) System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US6895485B1 (en) Configuring and monitoring data volumes in a consolidated storage array using one storage array to configure the other storage arrays
CN104937584A (en) Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
US7839788B2 (en) Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths
WO2014064756A1 (en) Method for assigning real storage areas from storage pool to virtual volume and computer system
US7167854B2 (en) Database control method
US7957398B1 (en) Methods and systems for dynamic division of path capacity
US20050108450A1 (en) Information processing system and method
US9396027B2 (en) Resource allocation for a plurality of resources for a dual activity system
WO2015038651A1 (en) Integrating software defined storage and software defined networking
US9647905B1 (en) System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9232000B1 (en) Method and system for balancing load across target endpoints on a server and initiator endpoints accessing the server
US9591099B1 (en) Server connection establishment over fibre channel using a block device access model
US7441009B2 (en) Computer system and storage virtualizer
WO2017023271A1 (en) Disk array having controller to allocate ports
US9407601B1 (en) Reliable client transport over fibre channel using a block device access model
US9237057B1 (en) Reassignment of a virtual connection from a busiest virtual connection or locality domain to a least busy virtual connection or locality domain
US9473590B1 (en) Client connection establishment over fibre channel using a block device access model
US9270786B1 (en) System and method for proxying TCP connections over a SCSI-based transport
US9509797B1 (en) Client communication over fibre channel using a block device access model
US11112996B2 (en) Computer, computer system, and data quantity restriction method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060324

A977 Report on retrieval

Effective date: 20081127

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090113

A02 Decision of refusal

Effective date: 20090602

Free format text: JAPANESE INTERMEDIATE CODE: A02