(57)【要約】【課題】  負荷分散の対象となるのは既存ファイルに対する読み書き要求のみであり、中間ファイルの読み書き要求のような特定ディレクトリツリー下で新規ファイル作成と削除を伴うケースや、世代管理ファイルとして新規ファイル作成を繰り返す読み書き要求ケースでは負荷分散できないという課題がある。【解決手段】  ファイルを格納するためのディスクと、ファイルをディレクトリツリー形式で管理するファイルシステム機能を備えた計算機システムにて、以下の処理を行う。ディスク内で物理的に区画化された領域に対するアクセス頻度から、負荷の高いファイルとそのファイルを含むディレクトリを検出し、論理的なファイルシステムツリーを別のディスクに動的に移動し、移動元ディレクトリと移動先ディレクトリを関連付ける事により、上記の目的を達成する。【選択図】  図１
2005215715.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを格納するためのディスクと、ファイルをディレクトリツリー形式で管理するファイルシステム機能を備えた計算機システムにおける負荷分散方法において、ディスクへのI/O要求に関する性能情報を取得し、その要求が発生したディレクトリの名称を取得し、ディスク装置上の負荷の高い局所を含むディレクトリとディレクトリ下のすべての情報を別のディスクに移動し、移動元と移動先のディレクトリを関連付ける負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模ストレージシステムにおけるディスクI/Oの負荷分散技術に関連する。
【背景技術】
【０００２】
従来の負荷分散技術では、ディスク内で物理的に区画化された領域に対する要求数を監視し、要求数が多大になった領域を別のディスクへ移動することで、特定のディスクへ集中した読み書き要求による負荷を複数のディスクに分散させている（特許文献１参照）。
【０００３】
【特許文献１】特開２００１−１５９９８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来技術では、負荷分散の対象となるのは既存ファイルに対する読み書き要求のみであり、中間ファイルの読み書き要求のような特定ディレクトリツリー下で新規ファイル作成と削除を伴うケースや、世代管理ファイルとして新規ファイル作成を繰り返す読み書き要求ケースでは負荷分散できない。
【０００５】
本発明の目的は、ディスク内で物理的に区画化された領域に対する負荷を、論理的なファイルシステムツリーとして別のディスクに移動することにより、既存ファイルに限定されない動的負荷分散を実現することである。
【課題を解決するための手段】
【０００６】
ディスク内で物理的に区画化された領域に対するアクセス頻度から、負荷の高いファイルとそのファイルを含むディレクトリを検出し、論理的なファイルシステムツリーを別のディスクに動的に移動し、移動元ディレクトリと移動先ディレクトリを関連付ける事により、上記の目的を達成する。
【発明の効果】
【０００７】
本発明によれば、既存ファイルに限定されない特定ディレクトリに集中した読み書き要求によるディスク負荷を動的に分散させることができる。
【発明を実施するための最良の形態】
【０００８】
以下，本発明の実施形態について，図面を参照しながら詳細に説明する。
図１は本発明の実施例の構成図である。サーバ101は発生した読み書き要求をファイルシステム102、ドライバ103を経てディスクアレイ104中の既存ディスク105,分散ディスク106に対して処理する計算機システムである。発生した既存ディスク105への読み書き要求のレスポンスをファイルシステム102から取得した性能情報により監視し、過負荷と判断した場合にドライバ103から既存ディスク105内の領域ごとのアクセス頻度を取得し、アクセス頻度の高い領域107を格納先とするディレクトリの名称をファイルシステム102の情報から検索し、この情報を指定して負荷の高いディレクトリのコピーを分割制御機構108に要求する性能監視機構109と、動的複製作成機能110に既存ディスク105内の特定領域を分散ディスク106へコピーするよう要求し、コピー処理の完了を待ち、コピー完了後に既存ディスク105内のディレクトリ111と、分散ディスク106内のディレクトリ112の関連付けを行う分割制御機構107により構成されている。
【０００９】
図１ではディスクアレイ104を利用した形態を例として示しているが、本発明は複数のディスク装置を具備する計算機システムにも適用可能であり、その場合にはサーバ101にて、ディスクアレイ104の動的複製作成機能110にかわる機能を具備する。
ファイルシステム102、ドライバ103、動的複製作成機能110は既存の技術を利用している。
【００１０】
図2は本発明の全体の処理の流れを、各機能の関連により表した図である。
性能監視機構109の機能は、ファイルシステム102より性能情報を取得して過負荷判断を行う過負荷検知処理201と、過負荷通知を受けた後にドライバ103より性能情報の取得して分割点の決定を行う分割点決定処理202とに分けられる。
【００１１】
通常運用時、過負荷検知処理201は、ディスクごとのレスポンスタイムをファイルシステム102の性能情報から取得し(ステップ203)、事前に設定した閾値を下回るディスクがないかを定期的に監視し、閾値を下回るディスクが存在した場合に過負荷と判断し、分割点決定処理202に過負荷状態となったことを通知する。(ステップ204)
通知後も過負荷検知処理201は、以降で述べる分割点決定処理202がドライバ103から一定時間の性能情報取得を完了し、アクセス要求頻度を算出するまでの間は、通常運用時の監視時間間隔より短い時間間隔でレスポンスタイムの取得を継続する(ステップ205)。
分割点決定処理202は、ドライバ103からの性能情報を元に、ディスク中の領域ごとのアクセス要求の情報を取得し、これを一定時間継続した後、単位時間あたりのディスク中の領域ごとのアクセス要求発生頻度を算出する。(ステップ206)
アクセス要求発生頻度を算出が完了した後、レスポンス低下が一時的なものではなく継続して続いている状況なのかどうかを、過負荷検知処理201が取得し続けていたレスポンスタイムの推移から判定し、続いているようであれば以降の処理を行い、続いていなければ以降の処理は行わない(ステップ207)。
【００１２】
先に求めた単位時間あたりのディスク中の領域ごとのアクセス要求発生頻度において、その値が最も大きい領域をディスク上の格納先とするファイルが、どのディレクトリに属するのかを、ファイルシステム102の情報から検索する(ステップ208)。
検索したディレクトリ以下すべてのファイルが格納されるディスク内の領域を、ドライバ103の情報から検索する(ステップ209)。
【００１３】
分割制御機構107に検索したディスク内領域のコピーを要求する(ステップ210)。
分割制御機構107は動的複製作成機能110に、ディスク内の領域のコピー処理を要求し(ステップ211)、その後動的複製作成機能110によるコピー処理(ステップ212)が完了するまで待機する(ステップ213)。
【００１４】
コピー処理が完了したら、分割したディレクトリの関連付けを行う(ステップ214)。
【００１５】
図3はファイルシステムごとの監視のポリシーとして用いるパラメタを、ユーザが定義する事を目的とした定義テーブル301の例を示す。以降の説明では、テーブルの各項目に対する具体的なデータの集合を意味するエントリという用語を用いる。定義テーブル301はシステムでただ一つ存在し、ファイルシステムの個数分のエントリを保持することを可能とする。分割の対象としないファイルシステムについてはエントリを作成する必要はない。
【００１６】
対象ファイルシステム302は、本発明による監視及び分割の対象とするファイルシステムを示しており、テーブル内で一意に識別される値である。レスポンスタイム閾値303は、通常運用時に定期的に取得するファイルシステムの読み書き要求のレスポンスタイムと比較して、ディスクに対する読み書き要求が過負荷になっていると判断するための閾値である。分割候補ディレクトリ304は、分割点決定処理により過負荷と判断した時にここで定義されているディレクトリ以外を分割点としないことを定義する値であり、利用者が期待しないディレクトリで分割されてしまう事を防止する目的がある。本明細ではこの値を定義した場合で説明を行っているが、これを定義せず、システム内のすべてのディレクトリを分割の候補とすることも可能である。監視時間間隔305は通常運用時に定期的にレスポンスタイムを監視する時間間隔である。過負荷時情報採取時間306は、分割点決定処理が、過負荷検知処理より過負荷の通知を受けた後に、ディスクに対して発生する要求をドライバから取得する時間を示す。過負荷時情報採取間隔307は、過負荷検知処理が、分割点決定処理の性能情報収集が完了するまでの時間、すなわち過負荷時情報採取時間306が経過するまでの時間に、レスポンスタイムを通常運用時より高頻度に取得するための時間間隔である。過負荷フラグ308はディスクに対する負荷が高いと判断した場合にたてるフラグであり、レスポンスタイム取得の時間間隔を通常運用時と過負荷時とで分けるために使用する。
【００１７】
図4はファイルシステムごとのレスポンスタイムを、ファイルシステムより取得した際、情報を格納するファイルシステム性能テーブル401の例を示す。通常運用時は監視時間間隔ごとに情報を取得、値の格納を行い、過負荷時には過負荷時情報採取間隔で情報を取得、値の格納を行う。ファイルシステム性能テーブル401はシステムでただ一つ存在し、エントリ数は性能情報の取得量により動的に変動する。
対象ファイルシステム402は性能情報を取得したファイルシステムの名称を示す値である。時刻403は性能情報を取得した時刻を示す値である。過負荷検知処理による分割の開始の前に、レスポンス低下が一時的なものではなく継続して続いている状況なのかどうかをレスポンスタイムの推移から判断するため、ファイルシステムより取得したレスポンタイムは時刻により関連づける必要がある。レスポンスタイム404は対象となるファイルシステムにて発行された読み書き要求の完了に要した時間をバイトあたりに換算した値である。
【００１８】
図5はディスク内の各領域に対して発生するアクセス要求を取得した際、情報を格納するドライバ性能テーブル501の例を示す。分割点決定処理が、過負荷検知処理より過負荷と通知されてから過負荷時情報採取時間306が経過するまでの間に対象デバイス502で示されるディスクに対して発生する要求における、コマンド種別503、アドレス504、サイズ505、応答時間506の情報を格納するテーブルである。ドライバ性能テーブル501中の各項目については既存機能のドライバで管理されている同名の項目と同等である。
【００１９】
図6は過負荷検知処理の詳細を示すフローチャートである。
過負荷フラグはディスクに対する負荷が高いと判断した場合にたてるフラグであり、レスポンスタイム取得の時間間隔を通常運用時と過負荷時とで分けるために使用する。処理開始時は過負荷ではないため値は0とする(ステップ601)。
過負荷検知処理は分割制御機構からの複製作成がすでに開始していた場合、性能情報の収集は行わない。そのため分割点決定処理により分割処理がすでに行われている場合には、以降の性能収集処理は行わない(ステップ602)。
【００２０】
ファイルシステムごとのレスポンスタイムをファイルシステムの情報より取得し、ファイルシステム性能を図4に示すテーブルに格納する(ステップ603)。
この時取得したレスポンスタイムが図3の定義テーブル中のレスポンスタイム閾値を下回っているか判定を行い(ステップ604)、下回っている場合は過負荷と判断し、まだ分割点決定処理に通知してなければ、過負荷状態となったことを通知し(ステップ605)、過負荷フラグを立てる(ステップ606)。
【００２１】
過負荷フラグがたっているかいなかの判定を行い(ステップ607)、フラグがたっていない場合は監視時間間隔分、待機した後に(ステップ608)、終了要求がなければレスポンスタイムの取得を繰り返すが(ステップ609)、過負荷フラグが立っている場合は過負荷時情報採取間隔の時間待機(ステップ610)で次のレスポンスタイム取得を行う。これを過負荷時情報採取時間が経過するまで繰り返す(ステップ611)。ここで収集したレスポンスタイムの時間推移より、図7で示す分割点決定処理が過負荷状態が継続しているか否かを判断する。
【００２２】
図7は性能監視処理の、分割点決定処理の詳細を示すフローチャートである。
分割点決定処理は、図6で示した過負荷検知処理より過負荷が通知された場合に処理を開始する(ステップ701)。過負荷となった事が通知されたら、ドライバよりディスクに対するアクセス要求の情報を取得し、図5で示したドライバ性能テーブルに格納する。(ステップ702)これを過負荷時情報採取時間の間継続し、ディスク内領域ごとに単位時間あたりのアクセス要求発生頻度を算出する(ステップ703)。算出方法の一例としては、ディスク内の一定領域ごとに発生したアクセス要求数を格納できるテーブルを別に用意し、ドライバ性能テーブルのアドレスとサイズを順次読み込んで、対象となるテーブル中の領域の値を増やし、ドライバ性能テーブルの情報読み込み完了後にそれぞれの値を過負荷時情報採取時間で割ることで、ディスク内領域ごとに単位時間あたりのアクセス要求発生頻度の算出が可能である。算出が完了した時点で過負荷時情報採取時間は経過しているが、レスポンス低下が一時的なものではなく継続して続いている状況なのかどうかを判断する必要がある。
【００２３】
そのため、図6で示した過負荷検知処理が、ファイルシステム性能テーブルに取得し続けていたレスポンスタイムを時刻により関連付け、その推移から状況を判断する(ステップ704,705)。過負荷状態が継続していたと判断した場合は分割処理を継続するが、そうでない場合には分割処理は中止する。単位時間あたりのアクセス要求数が最も大きいディスク内領域を、格納先とするファイルが、ファイルシステム内のどのディレクトリ中のファイルであるかを、ファイルシステムの情報より検索する(ステップ706)。検索したディレクトリが図3で示した定義テーブルの分割候補ディレクトリに存在するか否かを判定する(ステップ707)。含まれている場合には分割処理を継続するが、含まれていない場合には分割処理を中断する(ステップ708)。検索したディレクトリの情報が格納されているディスク内の領域を、ドライバの情報より検索し、分割制御機構にディスク内の領域を指定して分割を要求する(ステップ709)。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施例の構成図である。
【図２】本発明の全体の処理の流れを、各機能の関連により表した図である。
【図３】ディスクごとの監視のポリシーとして用いるパラメタを、ユーザが定義する事を目的とした定義テーブルの例を示す。
【図４】ディスクごとのレスポンスタイムをファイルシステムより取得した際、情報を格納するファイルシステム性能テーブルの例を示す。
【図５】ディスク内の各領域に対して発生するアクセス要求を取得した際、情報を格納するドライバ性能テーブルの例を示す。
【図６】過負荷検知処理の詳細を示すフローチャートである。
【図７】分割点決定処理の詳細を示すフローチャートである。
【符号の説明】
【００２５】
101  サーバ
102  ファイルシステム
103  ドライバ
104  ディスクアレイ
105  既存ディスク
106  分散ディスク
107  アクセス頻度の高い領域
108  分割制御機構
109  性能監視機構
110  動的複製作成機能
111  既存ディスク内のディレクトリ
112  分散ディスク内のディレクトリ
【図１】
2005215715.tif 000003
【図２】
2005215715.tif 000004
【図３】
2005215715.tif 000005
【図４】
2005215715.tif 000006
【図５】
2005215715.tif 000007
【図６】
2005215715.tif 000008
【図７】
2005215715.tif 000009