JP3961410B2 - Information processing apparatus, program, information processing system, and information processing apparatus control method - Google Patents

Information processing apparatus, program, information processing system, and information processing apparatus control method Download PDF

Info

Publication number
JP3961410B2
JP3961410B2 JP2002348288A JP2002348288A JP3961410B2 JP 3961410 B2 JP3961410 B2 JP 3961410B2 JP 2002348288 A JP2002348288 A JP 2002348288A JP 2002348288 A JP2002348288 A JP 2002348288A JP 3961410 B2 JP3961410 B2 JP 3961410B2
Authority
JP
Japan
Prior art keywords
information processing
request
logical
data input
path
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
JP2002348288A
Other languages
Japanese (ja)
Other versions
JP2004185093A (en
Inventor
由人 ▲高▼山
一浩 大山
宏史 佐原
重徳 友永
淳 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002348288A priority Critical patent/JP3961410B2/en
Publication of JP2004185093A publication Critical patent/JP2004185093A/en
Application granted granted Critical
Publication of JP3961410B2 publication Critical patent/JP3961410B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
この発明は、情報処理装置、プログラム、情報処理システム、及び情報処理装置の制御方法に関する。
【0002】
【従来の技術】
近年コンピュータシステムで取り扱われるデータ量が増大しており、記憶装置の大容量化が進んでいる。大容量の記憶装置では記憶容量に見合うだけの入出力性能を確保することが必要である。またシステムの信頼性を向上させることも求められている。このため、記憶装置への入出力経路を多重化(冗長化)する技術が開発されている。
【0003】
記憶装置への入出力経路を多重化した場合、コンピュータでは、記憶装置へのデータ入出力要求を各入出力経路に振り分ける処理を行うことが必要となる。従来の技術では、各入出力経路にかかる負荷を分散させるために、各入出力経路に均等にデータ入出力要求を振り分けるようにしていた。振り分け方法としては、各入出力経路を順番に指定するラウンドロビン方式が採用されていた。
【0004】
【特許文献1】
特開2001−325207号公報
【0005】
【発明が解決しようとする課題】
ところで、複数の情報処理装置が一台の記憶装置で稼働するデータベースにアクセスするデータベースシステムなどにおいては、アクセス多重度を上げるため、ディスクアレイ装置などの記憶デバイスの記憶領域に設定される論理ユニットレベルでの排他制御だけでなく、データ単位での局所的な排他制御も行っている。そして、このようなシステムにおける記憶装置へのデータ入出力要求には、記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行うためのデータ入出力要求(以下、「I/O要求」と称する)に加えて、記憶デバイスの記憶領域について局所的な排他制御を行うための指示命令や記憶領域指定情報などからなるデータ入出力要求(以下、「排他要求」と称する)が含まれている。
【0006】
ここで排他要求による排他の取得はI/O要求に対応する処理よりも前の時点で実行されている必要がある。しかしながら、従来、データ入出力要求の入出力経路への割り当てに際してはこのような排他要求の特性は配慮されておらず、これがコンピュータシステムの処理性能を低下させる要因となることがあった。
【0007】
本発明は、このような観点からなされたもので、情報処理装置、プログラム、情報処理システム、及び情報処理装置の制御方法を提供することを主たる目的とする。
【0008】
【課題を解決するための手段】
本発明の主たる発明である情報処理装置は、
複数の論理パスを介して記憶デバイスに接続される情報処理装置であって、
前記記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行なうためのI/O要求、又は前記記憶領域の排他を取得あるいは開放するための排他要求、のいずれかであるデータ入出力要求を前記記憶デバイスに送信するための論理パスを、当該データ入出力要求が前記排他要求であるかどうかに応じて決定する手段と、
前記データ入出力要求を、前記決定した論理パスを介して前記記憶デバイスに送信する手段と
を備えることとする。
なお、本発明の他の特徴については、本明細書及び添付図面の記述により明らかにする。
【0009】
【発明の実施の形態】
===情報処理システムの全体構成===
図1に本実施の形態に係る情報処理システム(コンピュータシステム)の全体構成を示している。2台の情報処理装置(ホスト)が、1台の記憶装置(記憶デバイス、ストレージ、ディスクアレイ装置)に接続している。情報処理装置100はCPU(Central Processing Unit)やメモリを備え、各種アプリケーションプログラムを実行する。例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等のプログラムを実行する。
【0010】
情報処理装置100は、上記アプリケーションプログラムを実行する際に記憶装置200が記憶しているデータにアクセスする。上記データアクセスは、情報処理装置100と記憶装置200とを接続するハードウエアにより物理的に構成されるデータ転送路である物理パスに対応付けられている論理パスを転送経路として行われる。情報処理装置100と記憶装置200とを接続する接続部301乃至308は、上記物理パスを構成する。IF(Inter Face)141乃至148は、例えば、1以上のHPort(Host bus adapter Port)を有するHBA(Host Bus Adaptor)である。
【0011】
記憶装置200は、論理ユニット220、ディスク制御部210を備える。論理ユニット220は、情報処理装置100に提供される記憶資源に論理的に設定される記憶領域である。図1においてはLU(Logical Unit)1(221)とLU2(222)の2つの論理ユニットが記されている。記憶資源としては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。ディスク制御部210は情報処理装置100からのデータ入出力要求を受け、論理ユニット220に記憶されているデータのアクセスを制御する。ディスク制御部210は図1に示すように記憶装置200と一体型とすることもできるし、別体型とすることもできる。また図1においては2つの論理ユニットが記されているが、1つの論理ユニット220を複数のパーティションに分割した形態とすることもできる。パーティションとは論理ユニット220を論理的に区分して構成される記憶領域のことである。
【0012】
情報処理装置100においては様々なアプリケーションプログラム110が実行される。アプリケーションプログラム110は共に記憶装置200に記憶されているデータへのアクセスを適宜行いながら処理を実行する。アプリケーションプログラム110にはアクセス可能な論理ユニット220が割り当てられている。
【0013】
===論理パスについて===
アプリケーションプログラム110から記憶装置200へのデータ入出力要求は、後述するパス管理フィルタドライバ120の制御により論理パスを転送経路として送信される。ここで論理パスは、情報処理装置100、記憶装置200、および情報処理装置100と記憶装置200とを結ぶ通信経路を構成するハードウエアもしくはソフトウエアの少なくともいずれかの組合せにより定義される。
【0014】
図2に論理パス801乃至808を定義するための要素の具体例を示している。この図のように、論理パスは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のポートを示す。論理パスの定義は必ず上記要素によらなければならない訳ではなく、システムにより上記要素のいずれかを不要とすることもできるし、上記以外の要素を加えて論理パスを定義することもできる。
【0015】
===パス管理フィルタドライバ===
パス管理フィルタドライバ120は、情報処理装置100と記憶装置200との間のデータ転送経路を多重化するためのソフトウエアである。パス管理フィルタドライバ120は、情報処理装置100と記憶装置200との間を複数の論理パス300で接続しデータ転送経路を多重化することにより、データアクセスにおけるボトルネックを解消しデータ入出力処理性能を向上させる。パス管理フィルタドライバ120はデータ入出力要求を各入出力経路へ適宜振り分けることによって負荷分散も行う。またパス管理フィルタドライバ120はデータ転送経路に障害が発生した場合に、当該データ転送経路を閉塞し正常なデータ転送経路により記憶装置200へのデータアクセスを継続する機能も有し、これによりデータ転送経路障害によるサービス停止を回避しシステムの信頼性を高められる。
【0016】
なお、情報処理装置100で実行されるオペレーティングシステムによっては、記憶装置200との間を複数の論理パスで接続されることに対する考慮がなされていないものがある。このようなオペレーティングシステムを情報処理装置100で実行している場合に、情報処理装置100と記憶装置200との間を複数の論理パスで接続すると、アプリケーションプログラム110には、記憶装置200上に存在する1つの論理ユニット220が論理パス毎に存在するかのように見えてしまうという問題が生じる。これを回避するため、パス管理フィルタドライバ120は、論理パス毎に見える本来一つの論理ユニット220を一つに統合してアプリケーションプログラム110に見せる機能も有している。
【0017】
===データ入出力要求について===
図1に示す情報処理システムは、例えば、複数の情報処理装置100が一台の記憶装置200で稼働するデータベースにアクセスするデータベースシステムに適用される。このような情報処理システムでは、アクセス多重度を向上させる等の目的で記憶デバイスの記憶領域の一部に対して局所的な排他制御を行えるようになっている。ここでこのような局所的な排他制御のために情報処理装置100から記憶装置200に送信されるデータ入出力要求には、記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行うためのデータ入出力要求(以下、「I/O要求」と称する)に加え、記憶デバイスの記憶領域について局所的な排他制御を行うための指示命令や記憶領域指定情報などからなるデータ入出力要求(以下、「排他要求」と称する)が含まれている。上記のデータ入出力要求は、一般に排他を取得するための排他要求と、排他を開放するための排他要求との間に、1以上のI/O要求が介在する構成をとる。なお、記憶領域の排他を取得するとは、その記憶領域へのデータ入出力要求を自分のみが行えるように独占状態とすることであり、排他を開放するとはそのような独占状態を解除することである。
【0018】
===論理パスの割り当てについて===
上記排他要求およびI/O要求の論理パスへの割り当てについて説明する。この割り当ては例えばパス管理フィルタドライバ120の作用により行われる。図3は情報処理装置100がデータ入出力要求を記憶装置200に送信するための論理パスとして、各情報処理装置100が単一の論理パス134,135のみを提供する場合におけるデータ入出力要求の取扱いを説明している。図3において、符号が付されていない数字はI/O要求を示している。「+」記号が付されている数字は記憶領域の排他を取得する指示を行うための排他要求を示している。「−」記号が付されている数字は記憶領域の排他を終了する指示を行うための排他要求を示している。排他要求とI/O要求の同じ数字からなる一群のデータ入出力要求により、1のデータ入出力要求が構成される。図中、数字の小さい時系列順にデータ入出力要求が発生している。
【0019】
図4は、複数の論理パスが利用できる環境でのパス管理フィルタドライバ120によるデータ入出力要求の論理パスへの割り当ての様子を示している。例えば、複数のHBAが実装される多重化された情報処理装置100ではこのような構成となる。各論理パス131乃至138へのデータ入出力要求の割り当てはラウンドロビン方式で行われる。このように複数の論理パスに分散してデータ入出力要求が割り当てられることで、複数のデータ入出力要求を並行処理することが可能となり、情報処理システムの処理性能の向上が図られる。
【0020】
ところで、I/O要求に関する処理は、排他を取得するための排他要求についての処理が完了するまで開始することができない。従って、排他要求に関する処理はこれを早めに行っておくことでI/O要求についての処理を迅速に進めることができる。図5はこのような観点に基づいて行われる、データ入出力要求の論理パスの割り当て方法の一例を説明している。図5はデータ入出力要求を送信するための論理パスとして複数の論理パスが利用できる点で図4と同様の構成であるが、各情報処理装置100が、特定の論理パス131および135を排他要求専用の論理パスとしている点で図4と異なる。ここで排他要求を送信した場合における記憶装置200からの応答時間は、I/O要求を送信した場合の応答時間よりも一般に短い。これは排他要求が排他命令や排他の対象となる記憶領域を指定するアドレスなどの比較的サイズの小さいデータで構成されるのに対し、I/O要求には書き込みデータや読み出しデータが含まれ、記憶装置200側の処理負荷が大きいからである。従って、このように特定の論理パス131および135を排他要求専用の論理パスとすることで、排他要求専用に割り当てられた論理パスに割り当てられている排他要求についての処理が、I/O要求の処理の応答待ちのために待たされることが無くなり、排他要求についての処理が迅速に行われることになる。そしてその結果、I/O要求についての処理の迅速化が図られて情報処理システムの処理性能が改善される。なお、図5では特定の論理パスを固定的に割り当てているが、必ずしも固定的でなくてもよい。例えば、各論理パスの使用状況に応じて特定の論理パスを変更するようにしてもよい。
【0021】
===排他データ領域について===
ところで、例えば、図5に示す仕組みを実施する場合には、データ入出力要求が排他要求であるのかI/O要求であるのかを判断する必要があるが、パス管理フィルタドライバ120は、この判断をデータ入出力要求に指定されている記憶領域指定情報に基づいて行う。なお、記憶領域指定情報とは、データ入出力要求の処理対象となる記憶デバイスの記憶領域を指定する情報である。
【0022】
パス管理フィルタドライバ120は、論理ユニット220の記憶領域を、データ入出力要求の対象となるデータが記憶されるデータ領域221と、排他制御に関するデータが記憶される排他データ領域222とに区分して管理している。なお、排他制御に関するデータとは、例えば、データ領域内に区画設定された記憶領域について、データ入出力要求により排他が確保されている状態にあるかどうかを示すデータである。パス管理フィルタドライバ120は、記憶装置200により提供される記憶領域のどの領域が排他データ領域であるかを、論理ユニット220および論理ユニット220の記憶領域を指定するアドレスに対応させて、図6に示す排他データ領域管理テーブル150に管理している。
【0023】
===論理パス状態管理テーブル===
パス管理フィルタドライバ120は、論理パスを論理パス状態管理テーブルに管理している。図7に論理パス状態管理テーブルの一例を示す。論理パス状態管理テーブル190には、論理パスに対応させて、論理ユニット番号(LU番号)、および論理ユニットの記憶領域を指定するLBA(Logical Block Address)が登録されている。HBA(Host Bus Adaptor)番号はその論理パスを構成しているHBAの番号、パーティションIDはその論理パスに対応づけられている論理ユニットに設定されているパーティションのIDである。
【0024】
図7において、「○」の記号は、データ入出力要求に指定される論理ユニット番号およびLBAに対応させて、データ入出力要求が論理パスを利用可能であることを示しており、「×」の記号は利用不可であることを示している。なお、「−」の記号は未定義であることを意味する。図7の場合、例えば、論理ユニット番号が「#0」、LBAが「0000h〜FFFFh(hは16進数であることを示す)」であるデータ入出力要求の場合、IDが「1」、「3」、「5」、「7」の論理パスが利用可能である。
【0025】
パス管理フィルタドライバ120は、図7の論理パス状態管理テーブル190を参照してデータ入出力要求を送信する論理パスを割り当てる。図7の論理パス状態管理テーブル190は、例えば、図4に示す論理パスの割り当てにおいて用いられる。図8はデータ入出力要求を論理パスに割り当てる際に、図7に示すパス管理IDごとに編成されるリスト構造(双方向リスト)を示している。図8では、利用可能な論理パスごとに矩形枠が設けられている。矩形枠内の上段には次の論理パスのエントリポインタが、下段には前の論理パスのエントリポインタがそれぞれ示されている。
【0026】
図8において、例えば、あるデータ入出力要求が、IDが「1」の論理パスに割り当てられると、つぎのデータ入出力要求はIDが「1」の矩形枠において指定されている次の論理ポインタで指定される論理パス(ここでは、IDが「3」の論理パス)に送信される。同様にしてつぎのデータ入出力要求は、IDが「5」の論理パスに送信される。このようにしてデータ入出力要求は同じパス管理IDに所属する利用可能な論理パスにラウンドロビン方式で順番に割り当てられていく。
【0027】
図9は論理パス状態管理テーブル190の他の態様である。この図では、論理ユニット番号(LU番号)が「#0」であり、LBAが「0000h〜1000h」であるデータ入出力要求の場合、IDが「7」の論理パスが利用可能である。また、論理ユニット番号が「#0」であり、LBAが「1001h〜FFFFh」であるデータ入出力要求の場合、IDが「1」、「3」、「5」の論理パスが利用可能である。図9に示す論理パス状態管理テーブル190は、例えば、パス管理フィルタドライバ120が排他要求を特定の論理パスに割り当てる図5の場合に用いられる。図9に示す論理パス状態管理テーブル190は、前述の特定の論理パスをIDが「7」の論理パスとし、排他データ領域管理テーブル150にLBAが「0000h〜1000h」で指定される領域が排他データ領域として設定されている場合に用いられる。すなわち、パス管理フィルタドライバ120は、データ入出力要求の処理対象となる記憶領域としてそのLBAに「0000h〜1000h」の範囲内の記憶領域が指定されている場合、そのデータ入出力要求を送信するための特定の論理パスとして、IDが「7」の論理パスを設定する。また、「0000h〜1000h」の範囲外の記憶領域が指定されている場合には、そのデータ入出力要求を送信するための論理パスとして、IDが「1」、「3」、「5」の論理パスのうちのいずれかを設定する。
【0028】
なお、図9において、LBAが「1001h〜FFFFh」で論理パスIDが「7」の論理パスIDの欄に「△」の記号が設定されているが、この「△」の記号は、本来利用不可であるが状況によっては、臨機応変に利用可能とされるという意味であり、例えば、排他要求専用に割り当てた特定の論理パスの処理負荷が下がった場合には、その論理パスにもI/O要求を割り当てるといった形で利用される。
【0029】
図10はデータ入出力要求を論理パスに割り当てる際に、図9に示すパス管理IDごとに編成されるリスト構造を示している。図10では、「Q1」のパス管理IDについては、IDが「7」である論理パスのみが利用可能であるので、LBAとして「0000h〜1000h」が指定されているデータ入出力要求を送信する論理パスは固定的にID「7」の論理パスに設定される。一方、「Q2」のパス管理IDについては、IDが「1」、「3」、「5」の3つの論理パスが利用可能な論理パスであるので、LBAとして「1001h〜FFFFh」が指定されているデータ入出力要求を送信する論理パスとしてこれらの3つの論理パスのうちの一つがラウンドロビン方式により順番に設定される。
【0030】
パス管理フィルタドライバ120は、論理パス状態管理テーブルに、閉塞状態にある論理パスや、障害の生じている論理パスを管理している。ここで閉塞状態にある論理パスとは、オペレータなどにより意図的に利用できないように指定した論理パスである。図11に示す論理パス状態管理テーブル190では、閉塞状態にある論理パス(IDが「3」の論理パス)、障害の生じている論理パス(IDが「5」の論理パス)が存在する。
【0031】
図12は、図11はデータ入出力要求を論理パスに割り当てる際に、図10に示すパス管理IDごとに編成されるリスト構造を示している。図11では、「Q1」のパス管理IDについては、IDが「1」の論理パスが、「Q2」のパス管理IDについてはIDが「7」の論理パスが利用可能である。また、IDが「3」の論理パスは、閉塞状態にある論理パスが管理される「QI」のパス管理IDに、IDが「5」の論理パスは、障害の生じている論理パスが管理される「QE」のパス管理IDに所属している。なお、図12に示すように、各パス管理IDには論理パスが1つずつしか所属していないので、矩形枠のエントリポインタには「NULL」値が設定されている。
【0032】
===論理パス状態管理テーブルの管理===
つぎに、以上に説明した論理パス状態管理テーブルの管理に関する仕組みについて説明する。図13は、以上に説明した論理パス状態管理テーブルの更新処理を説明するフローチャートである。
パス管理フィルタドライバ120は、論理パス状態管理テーブル190の更新要求を受け付ける(S1311)と、論理パス状態管理テーブル190についての排他を取得し(S1312)、受け付けた更新要求とともに指定された設定内容に従って論理パス状態管理テーブル190の内容を更新する(S1313)。
つぎにパス管理フィルタドライバ120は、対象論理ユニットを、論理ユニット番号が「#0」の論理ユニットとし(S1314)、その対象論理ユニットに対する処理を開始する(S1315)。
まず、パス管理フィルタドライバ120は、対象論理ユニットについての排他を取得する(S1316)。また、対象論理ユニットに対する1つめのLBA範囲を対象LBA範囲に設定し(S1317)、設定した対象LBA範囲に対する処理を開始する(S1318)。
【0033】
まずパス管理フィルタドライバ120は、IDが「1」の論理パスを対象論理パスに設定し(S1319)、対象論理パスに対する処理を開始する(S1320)。
ここで対象論理パスが「○」の状態ならば、その対象論理パスを現在のキューから外し、対象LBA範囲あるいは閉塞パス用のパス管理IDに追加する(S1321)。
ここでパス管理フィルタドライバ120は、次の論理パスが存在する場合には、その論理パスを対象論理パスに設定し、(S1320)の処理に進む(S1322)。一方、次の論理パスが存在しない場合には次のLBA範囲があればそのLBA範囲を対象LBA範囲に設定し(S1323)、その後(S1318)の処理に進む。
【0034】
一方、(S1323)において、次のLBA範囲がない場合には対象論理ユニットについての排他を開放する(S1324)。そして、次の論理ユニットがある場合にはその論理ユニットを対象論理ユニットに設定し(S1325)、その後は(S1315)からの処理に戻る。(S1325)において、次の論理ユニットがない場合には論理パス状態管理テーブル190の排他を開放する(S1326)。
【0035】
図14は論理パスに障害が発生した場合における論理パス状態管理テーブル190の更新処理を説明するフローチャートである。
パス管理フィルタドライバ120は、オペレーティングシステムやアプリケーションプログラム110などのソフトウエアから論理パスの障害報告を受信すると(S1411)、論理パス状態管理テーブル190の排他を取得する(S1412)。つぎにパス管理フィルタドライバ120は論理パス状態管理テーブル190を参照し、障害が報告された論理パスが既に閉塞中であるかどうかを調べる(S1413)。
【0036】
ここでその論理パスが閉塞中でない場合(すなわち、閉塞状態の論理パスが管理されるパス管理IDに所属していない場合)には、つぎにその論理パスが障害中でないかどうか(すなわち、障害の生じている論理パスが管理されるパス管理IDに所属しているかどうか)を調べ(S1414)、その結果障害中でない場合には障害が発生している論理パスを対象論理パスとし(S1415)、またその論理パスを現在のパス管理IDから外して障害の生じている論理パスが管理されるパス管理IDに所属させる(S1416)。そして、対象パスに対応する論理パス状態管理テーブルの欄を障害状態「○」に設定し(S1417)、論理パス状態管理テーブルの排他を開放する(S1418)。
【0037】
(S1413)において、その論理パスが閉塞中でない場合、および、(S1414)において、論理パスが論理パス状態管理テーブル190において既に障害状態であった場合(S1415)には、論理パス状態管理テーブル190の排他を開放する(S1418)。
【0038】
===論理パスを決定する処理の説明===
つぎに、図15に示すフローチャートとともに、パス管理フィルタドライバ120が、論理パス状態管理テーブル190を参照してデータ入出力要求を送信するための論理パスを設定する処理を説明する。なお、図15ではこの処理がパス管理フィルタドライバ120が有する(もしくは利用する)サブルーチンにより実行されるものとして説明している。
【0039】
サブルーチンは、パス管理フィルタドライバ120が受信したデータ入出力要求の送信先となる論理パスについての問い合わせを受信すると(S1511)、データ入出力要求に指定されている対象論理ユニットおよび対象LBAを取得する(S1512、S1513)。つぎにサブルーチンは対象論理ユニットに対する排他を取得する(S1514)。なお、論理ユニットについて排他を取得するとは、その論理ユニットへのデータ入出力要求を自分のみが行えるように独占することである。
【0040】
つぎにサブルーチンは対象論理ユニットおよび対象LBAを、論理パス状態管理テーブル190に対照し、対応するパス管理IDを特定する(S1515)。 ここで対応するパス管理IDが存在しない場合には、サブルーチンは処理を停止する(S1516)。また、サブルーチンはパス管理IDに所属する利用可能な論理パスのうちラウンドロビン方式で決定される1の論理パスを、データ入出力要求を送信する論理パスとして、当該サブルーチンを呼び出したプログラム(もしくは引渡し先のプログラム)に返答する(S1517)。
【0041】
つぎに、サブルーチンは、パス管理IDが指し示すパスの「次のエントリポインタ」が「NULL」値であるかどうかを調(S1518)べ、「NULL」値である場合には利用可能なパスが存在しないので、パス管理IDに所属する割り当て対象の論理パスを変更しない(S1519)。
一方、「0」でない場合には、パス管理IDが指し示す論理パスの「次のエントリポインタ」によって指定される論理パスを、割り当て対象の論理パスに設定する(S1520)。
以上の処理の後、サブルーチンは対象論理ユニットに対して排他開放を実施する(S1521)。
【0042】
なお、以上のように、記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求が排他制御に関するデータ入出力要求であるかどうかに応じて、そのデータ入出力要求を記憶デバイスに送信するための論理パスが決定される。このため排他制御に関するデータ入出力要求とそれ以外のデータ入出力要求の論理パスの割り当てを区別して取り扱うことが可能となり、排他要求とI/O要求のそれぞれの特性に配慮されて論理パスが決定され、情報処理処理システムの処理性能が改善されることになる。
【0043】
===情報処理装置の詳細な構成例===
つぎに、本実施の形態に係る情報処理装置100の詳細な構成例を図16に示す。
アプリケーションプログラム110は、ファイルシステム240を介して記憶装置200に設定されている論理ユニット220にアクセスする。ファイルシステム240は通常オペレーティングシステムの持つ機能の一つとして提供され、記憶装置200により提供される記憶領域を管理するソフトウエアをいう。すなわち、記憶装置200により提供される記憶領域上の論理ブロック内にファイルという抽象概念を実現し、ファイルに対するデータ入出力要求を論理ブロックアドレス単位のデータ入出力要求に対応させる。
【0044】
パス管理フィルタドライバ120は、ファイルシステム240を介してアプリケーションプログラム110から出されたデータ入出力要求をIF1(141)乃至IF4(144)の各HPortに振り分ける。振り分けられたデータ入出力要求は、ディスクドライバ160及びIFドライバ170を介してIF1(141)乃至IF4(144)から記憶装置200に送信される。ディスクドライバ160はブロックモードのデバイスを論理ディスクとして抽象化する。IFドライバ170はデータ入出力要求を所定の通信プロトコルのパケットに変換・復元する。通信プロトコルとしては例えばファイバチャネルを採用することができる。
【0045】
ドライバ管理プログラム121は、ドライバUI(User Interface)プログラム122及びドライバAPI(Application Program Interface)プログラム123と共に、パス管理フィルタドライバ120を管理する。ドライバUIプログラム122は、ドライバ管理プログラム121を介してパス管理フィルタドライバ120の設定を行う際のユーザインタフェースを提供するためのプログラムである。ドライバAPIプログラム123は、ドライバUIプログラム122を用いてパス管理フィルタドライバ120を設定する際に使用可能な命令や関数を集めたプログラムである。
【0046】
図16に示した情報処理装置100と一部構成の異なるものを図17に示す。図16における情報処理装置100では、ディスクドライバ160はパス管理フィルタドライバ120からデータ入出力要求を受け取り、ブロックモードのデバイスを論理ディスクとして抽象化した後にIFドライバ170に引き渡す。しかしながらオペレーティングシステムによっては、ディスクドライバ160をファイルシステム240とパス管理フィルタドライバ120との間に介在させる必要のあるものもある。図17に示したのはかかる場合の例である。図16の形態と図17の形態とはオペレーティングシステムの違いによって生じるものであって、どちらの形態も本発明の実施形態の一つである。
【0047】
以上、本発明に係る情報処理装置等について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【0048】
【発明の効果】
本発明によれば、情報処理装置、プログラム、情報処理システム、及び情報処理装置の制御方法を提供することができる。
【図面の簡単な説明】
【図1】 本発明の一実施例による情報処理システムの全体構成を示す図である。
【図2】 本発明の一実施例による論理パスを説明する図である。
【図3】 データ入出力要求の取扱いを説明する図である。
【図4】 データ入出力要求の論理パスへの割り当ての様子を示す図である。
【図5】 本発明の一実施例によるデータ入出力要求の論理パスへの割り当ての様子を示す図である。
【図6】 本発明の一実施例による、排他データ領域管理テーブルを示す図である。
【図7】 本発明の一実施例による、論理パス状態管理テーブルを示す図である。
【図8】 本発明の一実施例による、データ入出力要求を論理パスに割り当てる際に編成されるリスト構造を示す図である。
【図9】 本発明の一実施例による、論理パス状態管理テーブルを示す図である。
【図10】 本発明の一実施例による、データ入出力要求を論理パスに割り当てる際に編成されるリスト構造を示す図である。
【図11】 本発明の一実施例による、論理パス状態管理テーブルを示す図である。
【図12】 本発明の一実施例による、データ入出力要求を論理パスに割り当てる際に編成されるリスト構造を示す図である。
【図13】 本発明の一実施例による、論理パス状態管理テーブルの更新処理を説明するフローチャートを示す図である。
【図14】 本発明の一実施例による、論理パスに障害が発生した場合における論理パス状態管理テーブルの更新処理を説明するフローチャートを示す図である。
【図15】 本発明の一実施例による、パス管理フィルタドライバが、論理パス状態管理テーブルを参照してデータ入出力要求を送信するための論理パスを設定する処理を説明するフローチャートを示す図である。
【図16】 本発明の一実施例による、情報処理装置の詳細な構成例を示す図である。
【図17】 本発明の一実施例による、情報処理装置の他の構成例を示す図である。
【符号の説明】
100 情報処理装置
110 アプリケーションプログラム
120 パス管理フィルタドライバ
131〜138 論理パスに割り当てられるデータ入出力のキュー
141〜148 インタフェース部
150 排他データ領域管理テーブル
190 論理パス状態管理テーブル
210 ディスク制御部
220 論理ユニット
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing device, a program, an information processing system, and a control method for the information processing device.
[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) the input / output path 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, a round robin method in which each input / output path is specified in order was employed.
[0004]
[Patent Document 1]
JP 2001-325207 A
[0005]
[Problems to be solved by the invention]
By the way, in a database system or the like in which a plurality of information processing devices access a database operating on a single storage device, a logical unit level set in a storage area of a storage device such as a disk array device in order to increase access multiplicity In addition to exclusive control in the local area, local exclusive control in units of data is also performed. A data input / output request to a storage device in such a system is a data input / output request (hereinafter referred to as an “I / O request”) for writing / reading data to / from a storage area of the storage device. In addition, a data input / output request (hereinafter referred to as “exclusive request”) including an instruction command for performing local exclusive control on the storage area of the storage device, storage area designation information, and the like is included.
[0006]
Here, the acquisition of the exclusion by the exclusion request needs to be executed at a time before the processing corresponding to the I / O request. Conventionally, however, such an exclusive request characteristic has not been taken into consideration when assigning a data input / output request to an input / output path, which may cause a reduction in processing performance of a computer system.
[0007]
The present invention has been made from such a viewpoint, and has as its main object to provide an information processing apparatus, a program, an information processing system, and a control method for the information processing apparatus.
[0008]
[Means for Solving the Problems]
  The information processing apparatus which is the main invention of the present invention is:
An information processing apparatus connected to a storage device via a plurality of logical paths,
A data input / output request that is either an I / O request for writing or reading data to or from a storage area of the storage device, or an exclusive request for acquiring or releasing exclusion of the storage area. Depending on whether the data input / output request is the exclusive request or not.Means to determine,
Means for transmitting the data input / output request to the storage device via the determined logical path;,
  It shall be provided with.
  Note that other features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
[0009]
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.
[0010]
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 301 to 308 that connect the information processing apparatus 100 and the storage apparatus 200 constitute the physical path. IFs (Inter Faces) 141 to 148 are, for example, HBAs (Host Bus Adapters) having one or more HP Ports (Host bus adapter Ports).
[0011]
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. 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.
[0012]
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.
[0013]
=== About Logical Path ===
  From application program 110 to storage device 200Data I / O requestAre transmitted using a logical path as a transfer path under the control of a path management filter driver 120 described later. Here, the logical path is defined by a combination of at least one of information processing device 100, storage device 200, and hardware or software that configures a communication path connecting information processing device 100 and storage device 200.
[0014]
FIG. 2 shows a specific example of elements for defining the logical paths 801 to 808. 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 220. It is defined by specifying hardware and software. HLU 223, TID 181, Bus 182, and HP Port 180 are concepts used in a 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.
[0015]
=== Path management filter driver ===
The path management filter driver 120 is software for multiplexing the data transfer path between the information processing apparatus 100 and the storage device 200. The path management filter driver 120 eliminates a bottleneck in data access by connecting the information processing apparatus 100 and the storage apparatus 200 with a plurality of logical paths 300 and multiplexing data transfer paths, thereby improving data input / output processing performance. To improve. The path management filter driver 120 also performs load distribution by appropriately distributing data input / output requests to the input / output paths. The path management filter driver 120 also has a function of blocking the data transfer path and continuing data access to the storage device 200 through the normal data transfer path when a failure occurs in the data transfer path. It is possible to improve service reliability by avoiding service interruption due to route failure.
[0016]
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 filter 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 the application program 110 show it.
[0017]
=== Data I / O Request ===
The information processing system illustrated in FIG. 1 is applied to, for example, a database system in which a plurality of information processing apparatuses 100 access a database operating on a single storage device 200. In such an information processing system, local exclusive control can be performed on a part of the storage area of the storage device for the purpose of improving the access multiplicity or the like. Here, in the data input / output request transmitted from the information processing apparatus 100 to the storage device 200 for such local exclusive control, data input / output for writing / reading data to / from the storage area of the storage device is performed. In addition to requests (hereinafter referred to as “I / O requests”), data input / output requests (hereinafter referred to as “exclusive”) including instruction commands for performing local exclusive control on the storage area of the storage device and storage area designation information Called "request"). The above data input / output request generally has a configuration in which one or more I / O requests are interposed between an exclusion request for obtaining exclusion and an exclusion request for releasing exclusion. Acquiring a storage area is to make the exclusive state so that only you can make a data input / output request to that storage area, and releasing the exclusive means to release such exclusive state. is there.
[0018]
=== Logical path assignment ===
The assignment of the exclusive request and the I / O request to the logical path will be described. This assignment is performed by the action of the path management filter driver 120, for example. FIG. 3 shows a data input / output request when each information processing apparatus 100 provides only a single logical path 134, 135 as a logical path for the information processing apparatus 100 to transmit a data input / output request to the storage device 200. Explains handling. In FIG. 3, numerals without reference numerals indicate I / O requests. A number with a “+” sign indicates an exclusion request for issuing an instruction to acquire exclusion of the storage area. A number with a “−” symbol indicates an exclusion request for giving an instruction to end exclusion of the storage area. One data input / output request is composed of a group of data input / output requests made up of the same numbers of exclusive requests and I / O requests. In the figure, data input / output requests are generated in chronological order of numbers.
[0019]
FIG. 4 shows how data input / output requests are assigned to logical paths by the path management filter driver 120 in an environment where a plurality of logical paths can be used. For example, the multiplexed information processing apparatus 100 in which a plurality of HBAs are mounted has such a configuration. Allocation of data input / output requests to the logical paths 131 to 138 is performed in a round robin manner. As described above, data input / output requests are distributed and allocated to a plurality of logical paths, whereby a plurality of data input / output requests can be processed in parallel, and the processing performance of the information processing system can be improved.
[0020]
By the way, the process regarding the I / O request cannot be started until the process regarding the exclusion request for acquiring the exclusion is completed. Accordingly, the processing regarding the I / O request can be rapidly advanced by performing the processing regarding the exclusive request early. FIG. 5 illustrates an example of a method for assigning a logical path for a data input / output request performed based on such a viewpoint. 5 has the same configuration as that of FIG. 4 in that a plurality of logical paths can be used as logical paths for transmitting data input / output requests, but each information processing apparatus 100 excludes specific logical paths 131 and 135 from each other. It differs from FIG. 4 in that it is a logical path dedicated to requests. Here, the response time from the storage device 200 when an exclusive request is transmitted is generally shorter than the response time when an I / O request is transmitted. This is because the exclusion request is composed of relatively small data such as an address specifying an exclusive instruction or a storage area to be excluded, whereas the I / O request includes write data and read data, This is because the processing load on the storage device 200 side is large. Therefore, by setting the specific logical paths 131 and 135 as exclusive logical paths for exclusive requests in this way, the processing for exclusive requests assigned to logical paths assigned exclusively for exclusive requests can be performed for I / O requests. There is no need to wait for the response of the process, and the process for the exclusive request is performed quickly. As a result, the processing for the I / O request is accelerated, and the processing performance of the information processing system is improved. Although a specific logical path is fixedly assigned in FIG. 5, it is not necessarily fixed. For example, a specific logical path may be changed according to the usage status of each logical path.
[0021]
=== About exclusive data area ===
Incidentally, for example, when the mechanism shown in FIG. 5 is implemented, it is necessary to determine whether the data input / output request is an exclusive request or an I / O request, but the path management filter driver 120 determines this. Is performed based on the storage area designation information designated in the data input / output request. The storage area designation information is information that designates a storage area of a storage device that is a processing target of a data input / output request.
[0022]
The path management filter driver 120 divides the storage area of the logical unit 220 into a data area 221 in which data subject to data input / output requests is stored and an exclusive data area 222 in which data related to exclusive control is stored. I manage. Note that the data related to exclusive control is, for example, data indicating whether or not exclusion is secured by a data input / output request for a storage area partitioned in the data area. The path management filter driver 120 associates which area of the storage area provided by the storage device 200 is the exclusive data area with the logical unit 220 and the address that specifies the storage area of the logical unit 220, as shown in FIG. The exclusive data area management table 150 shown in FIG.
[0023]
=== Logical path state management table ===
The path management filter driver 120 manages logical paths in the logical path status management table. FIG. 7 shows an example of the logical path state management table. In the logical path status management table 190, a logical unit number (LU number) and an LBA (Logical Block Address) that specifies a storage area of the logical unit are registered in association with the logical path. The HBA (Host Bus Adapter) number is the number of the HBA that constitutes the logical path, and the partition ID is the ID of the partition set in the logical unit associated with the logical path.
[0024]
In FIG. 7, the symbol “◯” indicates that the data input / output request can use the logical path in correspondence with the logical unit number and LBA specified in the data input / output request. The symbol indicates that it cannot be used. The symbol “−” means undefined. In the case of FIG. 7, for example, in the case of a data input / output request whose logical unit number is “# 0” and LBA is “0000h to FFFFh (h represents a hexadecimal number)”, the ID is “1”, “ Logical paths of “3”, “5”, and “7” can be used.
[0025]
The path management filter driver 120 assigns a logical path for transmitting a data input / output request with reference to the logical path state management table 190 of FIG. The logical path state management table 190 in FIG. 7 is used in, for example, logical path allocation shown in FIG. FIG. 8 shows a list structure (bidirectional list) organized for each path management ID shown in FIG. 7 when assigning data input / output requests to logical paths. In FIG. 8, a rectangular frame is provided for each available logical path. In the upper part of the rectangular frame, the entry pointer of the next logical path is shown, and in the lower part, the entry pointer of the previous logical path is shown.
[0026]
In FIG. 8, for example, when a certain data input / output request is assigned to a logical path with ID “1”, the next data input / output request is the next logical pointer specified in the rectangular frame with ID “1”. Is transmitted to the logical path specified in (in this case, the logical path whose ID is “3”). Similarly, the next data input / output request is transmitted to the logical path whose ID is “5”. In this way, data input / output requests are sequentially assigned to available logical paths belonging to the same path management ID in a round robin manner.
[0027]
FIG. 9 shows another aspect of the logical path state management table 190. In this figure, in the case of a data input / output request whose logical unit number (LU number) is “# 0” and LBA is “0000h to 1000h”, a logical path with ID “7” can be used. In the case of a data input / output request with a logical unit number “# 0” and an LBA “1001h to FFFFh”, logical paths with IDs “1”, “3”, and “5” can be used. . The logical path state management table 190 shown in FIG. 9 is used, for example, in the case of FIG. 5 in which the path management filter driver 120 assigns an exclusive request to a specific logical path. In the logical path state management table 190 shown in FIG. 9, the above-described specific logical path is a logical path whose ID is “7”, and the area specified by the LBA “0000h to 1000h” in the exclusive data area management table 150 is exclusive. Used when set as a data area. That is, the path management filter driver 120 transmits the data input / output request when a storage area within the range of “0000h to 1000h” is specified as the storage area to be processed by the data input / output request. As a specific logical path for this, a logical path with ID “7” is set. When a storage area outside the range of “0000h to 1000h” is specified, IDs “1”, “3”, and “5” are used as logical paths for transmitting the data input / output request. Set one of the logical paths.
[0028]
In FIG. 9, a symbol “Δ” is set in the logical path ID column of LBA “1001h to FFFFh” and logical path ID “7”. This symbol “Δ” is originally used. Although it is impossible, depending on the situation, it means that it can be used on a case-by-case basis. For example, when the processing load of a specific logical path allocated exclusively for exclusive requests decreases, the logical path also has I / O It is used in the form of assigning O requests.
[0029]
FIG. 10 shows a list structure organized for each path management ID shown in FIG. 9 when data input / output requests are assigned to logical paths. In FIG. 10, for the path management ID of “Q1”, only the logical path with ID “7” can be used, so a data input / output request in which “0000h to 1000h” is specified as the LBA is transmitted. The logical path is fixedly set to the logical path with ID “7”. On the other hand, for the path management ID of “Q2”, since three logical paths with IDs “1”, “3”, and “5” are usable, “1001h to FFFFh” is designated as the LBA. One of these three logical paths is set in order by the round robin method as a logical path for transmitting the data input / output request.
[0030]
The path management filter driver 120 manages a logical path in a blocked state and a logical path in which a failure has occurred in the logical path state management table. Here, the logical path in the blocked state is a logical path designated so as not to be intentionally used by an operator or the like. In the logical path state management table 190 shown in FIG. 11, there are logical paths in a blocked state (logical paths with ID “3”) and faulty logical paths (logical paths with ID “5”).
[0031]
FIG. 12 shows a list structure organized by path management ID shown in FIG. 10 when FIG. 11 assigns data input / output requests to logical paths. In FIG. 11, a logical path with ID “1” can be used for the path management ID “Q1”, and a logical path with ID “7” can be used for the path management ID “Q2”. In addition, the logical path with ID “3” is managed by the path management ID of “QI” that manages the blocked logical path, and the logical path with ID “5” is managed by the logical path in which the failure has occurred. Belongs to the path management ID of “QE”. As shown in FIG. 12, since only one logical path belongs to each path management ID, a “NULL” value is set in the entry pointer of the rectangular frame.
[0032]
=== Management of logical path state management table ===
Next, a mechanism related to the management of the logical path state management table described above will be described. FIG. 13 is a flowchart illustrating the logical path state management table update process described above.
When the path management filter driver 120 receives an update request for the logical path state management table 190 (S1311), the path management filter driver 120 acquires exclusion for the logical path state management table 190 (S1312), and follows the setting contents specified along with the received update request. The contents of the logical path state management table 190 are updated (S1313).
Next, the path management filter driver 120 sets the target logical unit as the logical unit having the logical unit number “# 0” (S1314), and starts processing for the target logical unit (S1315).
First, the path management filter driver 120 acquires exclusion for the target logical unit (S1316). Also, the first LBA range for the target logical unit is set as the target LBA range (S1317), and processing for the set target LBA range is started (S1318).
[0033]
First, the path management filter driver 120 sets a logical path with an ID “1” as a target logical path (S1319), and starts processing for the target logical path (S1320).
If the target logical path is in the state of “◯”, the target logical path is removed from the current queue and added to the target LBA range or the path management ID for the blocked path (S1321).
Here, if the next logical path exists, the path management filter driver 120 sets the logical path as the target logical path, and proceeds to the processing of (S1320) (S1322). On the other hand, if the next logical path does not exist, if there is a next LBA range, the LBA range is set as the target LBA range (S1323), and thereafter, the process proceeds to (S1318).
[0034]
On the other hand, if there is no next LBA range in (S1323), the exclusion for the target logical unit is released (S1324). If there is a next logical unit, the logical unit is set as the target logical unit (S1325), and thereafter, the process returns to (S1315). If there is no next logical unit in (S1325), the exclusion of the logical path state management table 190 is released (S1326).
[0035]
FIG. 14 is a flowchart for explaining the update process of the logical path state management table 190 when a failure occurs in the logical path.
When the path management filter driver 120 receives a logical path failure report from software such as the operating system or the application program 110 (S1411), the path management filter driver 120 acquires exclusion of the logical path state management table 190 (S1412). Next, the path management filter driver 120 refers to the logical path state management table 190, and checks whether the logical path for which the failure has been reported is already blocked (S1413).
[0036]
If the logical path is not blocked (that is, if the blocked logical path does not belong to the managed path management ID), then whether the logical path is not failed (that is, failed) Whether or not the logical path in which the error occurred belongs to the managed path management ID) (S1414). If the result indicates that there is no failure, the logical path in which the failure has occurred is set as the target logical path (S1415). In addition, the logical path is removed from the current path management ID, and is assigned to the path management ID for managing the failed logical path (S1416). Then, the logical path state management table column corresponding to the target path is set to the failure state “◯” (S1417), and the exclusion of the logical path state management table is released (S1418).
[0037]
If the logical path is not blocked in (S1413), and if the logical path has already failed in the logical path state management table 190 (S1415) (S1415), the logical path state management table 190 Is released (S1418).
[0038]
=== Description of Processing to Determine Logical Path ===
Next, a process in which the path management filter driver 120 sets a logical path for transmitting a data input / output request with reference to the logical path state management table 190 will be described with reference to the flowchart shown in FIG. In FIG. 15, this processing is described as being executed by a subroutine that the path management filter driver 120 has (or uses).
[0039]
When the subroutine receives an inquiry about the logical path that is the destination of the data input / output request received by the path management filter driver 120 (S1511), the subroutine acquires the target logical unit and target LBA specified in the data input / output request. (S1512, S1513). Next, the subroutine acquires exclusion for the target logical unit (S1514). Note that obtaining an exclusion for a logical unit means monopolizing a data input / output request to that logical unit so that only one can make it.
[0040]
Next, the subroutine compares the target logical unit and the target LBA with the logical path state management table 190 and specifies the corresponding path management ID (S1515). If there is no corresponding path management ID, the subroutine stops processing (S1516). Also, the subroutine is a program (or delivery) that calls the subroutine, using one logical path determined by the round robin method among the available logical paths belonging to the path management ID as a logical path for transmitting a data input / output request. Reply to the previous program) (S1517).
[0041]
Next, the subroutine checks whether the “next entry pointer” of the path indicated by the path management ID is a “NULL” value (S1518), and if it is a “NULL” value, there is an available path. Therefore, the allocation target logical path belonging to the path management ID is not changed (S1519).
On the other hand, if it is not “0”, the logical path specified by the “next entry pointer” of the logical path indicated by the path management ID is set as the logical path to be allocated (S1520).
After the above processing, the subroutine performs exclusive release on the target logical unit (S1521).
[0042]
As described above, the logic for transmitting the data input / output request to the storage device according to whether the data input / output request related to the exclusive control for the storage area of the storage device is a data input / output request related to the exclusive control. A path is determined. For this reason, it is possible to distinguish between logical path assignments for data input / output requests related to exclusive control and other data input / output requests, and the logical path is determined in consideration of the characteristics of the exclusive request and the I / O request. As a result, the processing performance of the information processing system is improved.
[0043]
=== Detailed Configuration Example of Information Processing Apparatus ===
Next, FIG. 16 shows 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.
[0044]
The path management filter 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 the IF4 (144) to the storage device 200 via the disk driver 160 and the IF driver 170. 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.
[0045]
The driver management program 121 manages the path management filter 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 filter 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 filter driver 120 using the driver UI program 122 are collected.
[0046]
FIG. 17 shows a part of the configuration different from that of the information processing apparatus 100 shown in FIG. In the information processing apparatus 100 in FIG. 16, the disk driver 160 receives a data input / output request from the path management filter 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 filter driver 120. FIG. 17 shows an example of such a case. The form of FIG. 16 and the form of FIG. 17 are caused by differences in operating systems, and both forms are one embodiment of the present invention.
[0047]
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.
[0048]
【The invention's effect】
According to the present invention, it is possible to provide an information processing apparatus, a program, an information processing system, and a control method for the information processing apparatus.
[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 diagram for explaining the handling of a data input / output request.
FIG. 4 is a diagram showing how data input / output requests are assigned to logical paths.
FIG. 5 is a diagram showing how data input / output requests are allocated to logical paths according to an embodiment of the present invention;
FIG. 6 is a diagram illustrating an exclusive data area management table according to an embodiment of the present invention.
FIG. 7 is a diagram showing a logical path state management table according to an embodiment of the present invention.
FIG. 8 is a diagram showing a list structure organized when assigning data input / output requests to logical paths according to one embodiment of the present invention;
FIG. 9 is a diagram showing a logical path state management table according to an embodiment of the present invention.
FIG. 10 is a diagram showing a list structure organized when assigning data input / output requests to logical paths according to one embodiment of the present invention;
FIG. 11 is a diagram showing a logical path state management table according to an embodiment of the present invention.
FIG. 12 is a diagram showing a list structure organized when assigning data input / output requests to logical paths according to one embodiment of the present invention;
FIG. 13 is a flowchart illustrating logical path state management table update processing according to an embodiment of the present invention.
FIG. 14 is a flowchart illustrating logical path state management table update processing when a failure occurs in a logical path according to an embodiment of the present invention.
FIG. 15 is a flowchart illustrating processing for setting a logical path for transmitting a data input / output request by referring to a logical path state management table according to an embodiment of the present invention. is there.
FIG. 16 is a diagram illustrating a detailed configuration example of an information processing device according to an embodiment of the present invention;
FIG. 17 is a diagram illustrating another configuration example of an information processing device according to an embodiment of the present invention;
[Explanation of symbols]
100 Information processing apparatus
110 Application program
120 path management filter driver
131 to 138 Data input / output queues assigned to logical paths
141-148 interface section
150 Exclusive data area management table
190 Logical path status management table
210 Disk controller
220 logical units

Claims (9)

複数の論理パスを介して記憶デバイスに接続される情報処理装置であって、
前記記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行なうためのI/O要求、又は前記記憶領域の排他を取得あるいは開放するための排他要求、のいずれかであるデータ入出力要求を前記記憶デバイスに送信するための論理パスを、当該データ入出力要求が前記排他要求であるかどうかに応じて決定する手段と、
前記データ入出力要求を、前記決定した論理パスを介して前記記憶デバイスに送信する手段と
を備えることを特徴とする情報処理装置。
An information processing apparatus connected to a storage device via a plurality of logical paths,
A data input / output request that is either an I / O request for writing or reading data to or from a storage area of the storage device, or an exclusive request for acquiring or releasing exclusion of the storage area. Means for determining a logical path for transmitting to the data path according to whether the data input / output request is the exclusive request ;
Means for transmitting said data output request to the storage device via the determined logical path,
An information processing apparatus comprising:
請求項1に記載の情報処理装置において、
前記論理パスを決定する手段は、
前記データ入出力要求が前記排他要求である場合にそのデータ入出力要求を特定の前記論理パスにより送信するように前記論理パスを決定する手段であること、
を特徴とする情報処理装置。
The information processing apparatus according to claim 1,
The means for determining the logical path is:
Said data input requirements in the case of the lock requests, a means for determining the logical path to transmit the data output request by a particular said logical path,
An information processing apparatus characterized by the above.
請求項1に記載の情報処理装置において、
前記データ入出力要求には、その処理の対象となる前記記憶デバイス上の記憶領域を指定するための記憶領域指定情報が含まれており、
前記データ入出力要求が前記排他要求であるかどうかを前記記憶領域指定情報に応じて判断すること、
を特徴とする情報処理装置。
The information processing apparatus according to claim 1,
The data input / output request includes storage area designation information for designating a storage area on the storage device to be processed,
Determining whether the data input / output request is the exclusive request according to the storage area designation information;
An information processing apparatus characterized by the above.
複数の論理パスを介して記憶デバイスに接続される情報処理装置に、
前記記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行なうためのI/O要求、又は前記記憶領域の排他を取得あるいは開放するための排他要求、のいずれかであるデータ入出力要求を前記記憶デバイスに送信するための論理パスを、当該データ入出力要求が前記排他要求であるかどうかに応じて決定する機能と、
前記データ入出力要求を、前記決定した論理パスを介して前記記憶デバイスに送信する機能と
を実現させるためのプログラム。
To an information processing device connected to a storage device via a plurality of logical paths,
A data input / output request that is either an I / O request for writing or reading data to or from a storage area of the storage device, or an exclusive request for acquiring or releasing exclusion of the storage area. the logical path to be transmitted to the function of the data output request is determined according to whether the lock requests,
A function of transmitting the data input / output request to the storage device via the determined logical path ;
A program to realize
請求項4に記載のプログラムにおいて、
前記論理パスを決定する機能は、
前記データ入出力要求が前記排他要求である場合にそのデータ入出力要求を特定の前記論理パスにより送信するように前記論理パスを決定する機能であること、
を特徴とするプログラム。
The program according to claim 4, wherein
The function of determining the logical path is:
Said data input requirements in the case of the lock requests, a function of determining the logical path to transmit the data output request by a particular said logical path,
A program characterized by
請求項4に記載のプログラムにおいて、
前記データ入出力要求には、その処理の対象となる前記記憶デバイス上の記憶領域を指定するための記憶領域指定情報が含まれており、
前記データ入出力要求が前記排他要求であるかどうかを前記記憶領域指定情報に応じて判断すること、
を特徴とするプログラム。
The program according to claim 4, wherein
The data input / output request includes storage area designation information for designating a storage area on the storage device to be processed,
Determining whether the data input / output request is the exclusive request according to the storage area designation information;
A program characterized by
記憶デバイスと、複数の論理パスを介して前記記憶デバイスに接続される情報処理装置とを備えて構成される情報処理システムであって、
前記情報処理装置は、
前記記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行なうためのI/O要求、又は前記記憶領域の排他を取得あるいは開放するための排他要求、のいずれかであるデータ入出力要求を前記記憶デバイスに送信するための論理パスを、当該データ入出力要求が前記排他要求であるかどうかに応じて決定する手段と、
前記データ入出力要求を、前記決定した論理パスを介して前記記憶デバイスに送信する手段と
を備えることを特徴とする情報処理システム。
An information processing system comprising a storage device and an information processing apparatus connected to the storage device via a plurality of logical paths ,
The information processing apparatus includes:
A data input / output request that is either an I / O request for writing or reading data to or from a storage area of the storage device, or an exclusive request for acquiring or releasing exclusion of the storage area. Means for determining a logical path for transmitting to the data path according to whether the data input / output request is the exclusive request ;
Means for transmitting said data output request to the storage device via the determined logical path,
An information processing system comprising:
記憶デバイスと、複数の論理パスを介して前記記憶デバイスに接続される情報処理装置とを備えて構成される情報処理システムにおける前記情報処理装置の制御方法であって、
前記情報処理装置が、前記記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行なうためのI/O要求、又は前記記憶領域の排他を取得あるいは開放するための排他要求、のいずれかであるデータ入出力要求を前記記憶デバイスに送信するための論理パスを、当該データ入出力要求が前記排他要求であるかどうかに応じて決定し、
前記情報処理装置が、前記データ入出力要求を、前記決定した論理パスを介して前記記憶デバイスに送信すること、
を特徴とする情報処理装置の制御方法。
A control method for the information processing apparatus in an information processing system comprising a storage device and an information processing apparatus connected to the storage device via a plurality of logical paths ,
Data input that is either an I / O request for the information processing apparatus to write or read data to or from the storage area of the storage device, or an exclusion request to acquire or release exclusion of the storage area Determining a logical path for transmitting an output request to the storage device depending on whether the data input / output request is the exclusive request ;
The information processing apparatus transmits the data input / output request to the storage device via the determined logical path;
A method for controlling an information processing apparatus.
複数の情報処理装置と、前記複数の情報処理装置に提供される記憶資源に論理的に設定される記憶領域である論理ユニットを有し、前記各情報処理装置に論理パスを介して通信可能に接続されるディスクアレイ装置と、を備える情報処理システムにおける前記情報処理装置であって、A plurality of information processing apparatuses and a logical unit that is a storage area logically set in a storage resource provided to the plurality of information processing apparatuses, and can communicate with each information processing apparatus via a logical path A disk array device to be connected, the information processing device in an information processing system comprising:
前記ディスクアレイ装置の記憶領域に対するデータの書き込みや読み出しを行なうためのI/O要求、又は前記記憶領域の排他を取得あるいは開放するための排他要求、のいずれかであるデータ入出力要求を前記ディスクアレイ装置に送信するための論理パスを、当該データ入出力要求が前記排他要求であるかどうかに応じて決定する手段と、  A data input / output request which is either an I / O request for writing or reading data to or from a storage area of the disk array device or an exclusive request for acquiring or releasing exclusion of the storage area Means for determining a logical path for transmission to the array device depending on whether the data input / output request is the exclusive request;
前記データ入出力要求を、前記決定した論理パスを介して前記ディスクアレイ装置に送信する手段と、  Means for transmitting the data input / output request to the disk array device via the determined logical path;
を備えることを特徴とする情報処理装置。  An information processing apparatus comprising:
JP2002348288A 2002-11-29 2002-11-29 Information processing apparatus, program, information processing system, and information processing apparatus control method Expired - Fee Related JP3961410B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002348288A JP3961410B2 (en) 2002-11-29 2002-11-29 Information processing apparatus, program, information processing system, and information processing apparatus control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002348288A JP3961410B2 (en) 2002-11-29 2002-11-29 Information processing apparatus, program, information processing system, and information processing apparatus control method

Publications (2)

Publication Number Publication Date
JP2004185093A JP2004185093A (en) 2004-07-02
JP3961410B2 true JP3961410B2 (en) 2007-08-22

Family

ID=32751243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002348288A Expired - Fee Related JP3961410B2 (en) 2002-11-29 2002-11-29 Information processing apparatus, program, information processing system, and information processing apparatus control method

Country Status (1)

Country Link
JP (1) JP3961410B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4643198B2 (en) 2004-07-28 2011-03-02 株式会社日立製作所 Load balancing computer system, route setting program and method thereof
JP5068023B2 (en) 2006-03-29 2012-11-07 株式会社日立製作所 Computer system and logical path switching method
JP5063428B2 (en) * 2007-03-30 2012-10-31 株式会社日立製作所 Method for installing host bus adapter driver and operating system
JP5574993B2 (en) * 2011-01-13 2014-08-20 三菱電機株式会社 Control computer, information processing system, control method, and program
JP5422611B2 (en) 2011-06-24 2014-02-19 株式会社日立製作所 Computer system, host bus adapter control method and program thereof

Also Published As

Publication number Publication date
JP2004185093A (en) 2004-07-02

Similar Documents

Publication Publication Date Title
US6973555B2 (en) Storage device and system for providing communications buffer reservation function
US7548924B2 (en) Managing method for storage subsystem
US7636820B2 (en) Storage system with automated resources allocation
EP2652586B1 (en) Information storage system and storage system management method
US7519744B2 (en) Method and apparatus for managing I/O paths on a storage network using priority
US7457925B2 (en) Storage control method and system
JP6516860B2 (en) Computer system and access control method
JP4452064B2 (en) Information processing system, information processing apparatus, information processing apparatus control method, and program
US9461944B2 (en) Dynamic resource allocation for distributed cluster-storage network
JP2007115019A (en) Computer system for balancing access loads of storage and its control method
US20080114955A1 (en) Access environment construction system and method
US20060206638A1 (en) Command multiplex number monitoring control scheme and computer system using the command multiplex number monitoring control scheme
JP2009075718A (en) Method of managing virtual i/o path, information processing system, and program
US7380004B2 (en) Storage system, computer system, and method of configuring storage system
US7707199B2 (en) Method and system for integrated management computer setting access rights, calculates requested storage capacity of multiple logical storage apparatus for migration
US10452292B2 (en) Computer system
US8677094B2 (en) Storage system, release method, and secondary storage apparatus
JP3961410B2 (en) Information processing apparatus, program, information processing system, and information processing apparatus control method
US9065740B2 (en) Prioritising data processing operations
US8930583B1 (en) Method and apparatus for controlling data transfer in a serial-ATA system
US20060036790A1 (en) Method, system, and program for returning attention to a processing system requesting a lock
US20060036782A1 (en) Method, system, and program for managing path groups to an input/output (I/O) device
JP2008210072A (en) Volume assignment method
US20140250214A1 (en) Computer system, program-cooperative method, and program
US8843713B2 (en) Storage system having data copy funtion and method thereof

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041007

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20041007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070404

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees