JP2011215677A - ストレージシステム、その負荷分散管理方法及びプログラム - Google Patents

ストレージシステム、その負荷分散管理方法及びプログラム Download PDF

Info

Publication number
JP2011215677A
JP2011215677A JP2010080212A JP2010080212A JP2011215677A JP 2011215677 A JP2011215677 A JP 2011215677A JP 2010080212 A JP2010080212 A JP 2010080212A JP 2010080212 A JP2010080212 A JP 2010080212A JP 2011215677 A JP2011215677 A JP 2011215677A
Authority
JP
Japan
Prior art keywords
load
job
file
information
storage system
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.)
Granted
Application number
JP2010080212A
Other languages
English (en)
Other versions
JP5415338B2 (ja
Inventor
Hirotoshi Akaike
洋俊 赤池
Kazuhisa Fujimoto
和久 藤本
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.)
Tohoku University NUC
Hitachi Ltd
Original Assignee
Tohoku University NUC
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 Tohoku University NUC, Hitachi Ltd filed Critical Tohoku University NUC
Priority to JP2010080212A priority Critical patent/JP5415338B2/ja
Publication of JP2011215677A publication Critical patent/JP2011215677A/ja
Application granted granted Critical
Publication of JP5415338B2 publication Critical patent/JP5415338B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】負荷予測に基づく事前の負荷分散により、負荷の動的又は急激な変化に対しても高速なファイルサービスを行うストレージシステムを提供する
【解決手段】ジョブを実行する第一の管理装置に接続されたファイルサーバと、ファイルサーバに接続されたストレージ装置と、ファイルサーバと第一の管理装置に接続される第二の管理装置を有するストレージシステムにあって、第二の管理装置の負荷を管理する手段が、第一の管理装置の負荷を予測して負荷分散を実行し、第二の管理装置のファイルシステムを管理する手段が、決定された負荷分散に従い、ファイルシステムをファイルサーバ内の予測負荷の高いサーバから、予測負荷の小さいサーバに移動する。
【選択図】図4

Description

本発明は、計算機に対してファイルサービスを提供する複数のファイルサーバと、これらファイルサーバに記憶領域を提供する記憶装置システム(以下「ストレージシステム」という。)とで構成される計算機システムに関する。また、当該システム上での負荷分散を実現する管理方法及びプログラムに関する。
近年、データセンタで扱うデータ量の急激な増大に伴い、ストレージシステムに対するアクセス負荷が増加している。特に、オンライントランザクションシステムやHPC(High Performance Computing)システムでは、大容量のデータを入出力する。このため、ファイルサーバに対するアクセス負荷が増加している。その結果、ファイルサーバには、高いアクセス負荷に対応できる高性能なファイルサービスが求められている。
多くのデータセンタは、この高い性能要求に対し、複数のファイルサーバを並列稼働させることで、高性能なファイルサービスを提供する。また、多くのデータセンタは、複数のファイルサーバを統一した共有ファイルシステムの名前空間を提供する。これにより、クライアントは、複数のファイルサーバがあたかも1つの共有ファイルシステムを提供しているかのように、ファイルサービスを受けることができる。
ところが、従来システムでは、ファイルサーバに負荷が均等に割り振られず、少数のファイルサーバに負荷が偏ることがある。この場合、共有ファイルシステム全体の性能が、負荷が集中した一部のファイルサーバの性能に律速する。その結果、ファイルのRead/Write速度の低下や応答時間の増加が生じ、共有ファイルシステムによるファイルサービスの性能が低下するという問題がある。
上記問題を解決するため、クライアントのファイルアクセスを複数のファイルサーバに振り分ける技術が、特許文献1に開示されている。特許文献1に示す方法の場合、クライアントとサーバの間に設置されたセッション管理部とサーバ選択部が、クライアントのファイルアクセスを1つ1つに分解し、さらにラウンドロビン法により選択されたサーバへファイルアクセスを送信する。これにより、ファイルサーバに対する負荷を分散する。
また、上記問題を解決する別の手段として、ファイルサーバが管理するファイルシステムの一部を、他のファイルサーバに移動する技術が、特許文献2に開示されている。特許文献2の方法は、クライアントからファイルサーバへのアクセスの状態を監視するファイル管理プログラムが、あるファイルサーバにクライアントのファイルアクセスが集中していることを知ると、そのファイルサーバが管理するファイルシステムの一部を他のファイルサーバに移動する。これにより、ファイルサーバに対する負荷を分散する。
特開2002-351760号公報 特開2004-139200号公報
ストレージシステムの負荷を分散する方法である特許文献1は、クライアントとファイルサーバとの間でファイルアクセスを振り分けることにより、ファイルサーバの負荷の分散を実現する。しかし、振り分けられた先のファイルサーバが対象のファイル又はファイルシステムを管理していない場合、実際に管理している他のファイルサーバにファイルアクセスをリダイレクトする必要があり、そのオーバーヘッドのためにファイルサービス性能が低下する問題があった。
特許文献2の技術は、ファイルアクセスが集中しているファイルサーバから、ファイルシステムの一部を他のファイルサーバに移動することにより、ファイルサーバの負荷分散を実現する。しかし、アクセスの集中によりファイルサーバの負荷が高い、例えばCPU利用率が 100%に近い状態の場合、ファイルシステムの移動が困難であるという問題がある。また、この技術は、負荷分散のためにファイルアクセスを移動させるはずが、逆にファイルサーバに負荷をかけることになる。このため、ファイルサービスの性能低下を発生させる問題がある。
上述した課題を解決するために、本発明の一実施形態は以下の構成を有する。具体的には、第一の管理装置が接続された複数の計算機に接続された1以上のファイルサーバと、ファイルサーバに接続され1以上のボリュームを有するストレージ装置と、ファイルサーバと第一の管理装置とに接続される第二の管理装置を有するストレージシステムであって、第一の管理装置は、計算機上で逐次実行されるジョブの情報(ジョブ情報)とジョブキューの情報(ジョブキュー情報)を記憶する領域と、実行キューと、実行までジョブを待機するキューとを有する。
そして、第二の管理装置は、ジョブ情報を収集する手段と、ジョブキュー情報を収集する手段と、収集したジョブ情報とジョブキュー情報を解析する手段と、負荷を管理する手段と、ファイルシステムを管理する手段とを有する。ジョブ情報とジョブキュー情報を解析する手段は、ジョブ情報に基づいて、当該ジョブがアクセスするファイルと、ファイルシステムと、ファイルサーバを特定する。
負荷を管理する手段は、ジョブ情報とジョブキュー情報に基づいて予測負荷を算出して負荷分散を実行する。ファイルシステムを管理する手段は、上記負荷を管理する手段で決定された負荷分散に従い、ファイルシステムを、上記ファイルサーバ内の予測負荷の高いサーバから予測負荷の小さいサーバに移動する。
その他、本願が開示する課題、及びその解決方法は、発明の実施形態の欄及び図面により明らかにされる。
本発明により、高性能が要求されるバッチ処理系のアプリケーションにおいて、負荷が動的かつ急に変化する場合でも、複数並列に稼働するファイルサーバ間で実負荷と予測に基づいて負荷を分散する。これにより、高性能なファイルサービスを行うストレージシステムを提供することが可能となる。
本発明のストレージシステムとそれに繋がる計算機、管理サーバの構成例を示す図である。 本発明の計算機管理サーバとストレージ管理サーバの構成の例を示す図である。 図1のストレージシステムから、共有ファイルシステムの構成例を抜粋した図である。 ファイルサーバの負荷分散を実行する前のキュー、計算機、ファイルサーバ、ファイルシステム、予測負荷の例を示す図である。 ファイルシステムのマウント切り替えによる負荷分散の例を示す図である。 ファイルサーバの負荷分散を実行した後のキュー、計算機、ファイルサーバ、ファイルシステム、予測負荷の例を示す図である。 キューと実行キュー内で発生するイベントの例を示す図である。 本発明のファイルサーバの負荷分散のタイミングの決定、負荷分散実行の手順の一例を示す図である。 本発明の予測負荷の作成の手順の一例を示す図である。 本発明の負荷分散対象リスト、負荷リストの一例を示す構造図である。 本発明のファイルシステム管理テーブルとファイルサーバ管理テーブルの一例を示す構造図である。 閾値s1を算出する手順の一例を示す図である。 閾値s2を算出する手順の一例を示す図である。 計算機実行スクリプトの例を示す図である。
以下、図面に基づいて、発明の実施例を説明する。なお、後述する実施例は一例であり、本発明には、本明細書に記載する任意の機能を組み合わせたシステム構成や本明細書に記載する全て又は一部機能に周知技術を組み合わせたシステム構成も含まれる。また、後述する実施例で実行される機能は、計算機(コンピュータ)上で実行されるプログラムとして実現されるものとして説明する。もっとも、プログラムの一部又は全部は、ハードウェアを通じて実現しても良い。
[実施例1]
図1は、第一の実施形態のストレージ装置を含むシステムの構成を示す図である。計算機システム1は、計算機11、IPスイッチ2、ストレージシステム9および計算機管理サーバ7を有する。また、ストレージシステム9は、ファイルサーバ3、ファイバチャネル(FC:Fiber Channel)スイッチ4、ストレージ装置5及びストレージ管理サーバ8を有する。
図1に示すように、IPスイッチ2を介して計算機11とファイルサーバ3を接続することで、計算機11はストレージシステム9に接続している。また、計算機11、ファイルサーバ3、ストレージ装置5、ストレージ管理サーバ8は、管理用のネットワークであるLAN6(Local Area Network)を介して互いに接続される。
ファイルサーバ3とストレージ装置5とを接続するインターフェースには、ファイバチャネル、iSCSI等のブロックデータを送るプロトコルのインターフェースを用いるのが一般的である。ここで、ファイルサーバ3とストレージ装置5を直接接続する場合もあるが、図1ではFCスイッチ4を介して接続している。
ストレージ装置5は、コントローラ51と、内部にハードディスク59を持つハードディスク搭載部58とを有する。コントローラ51は、ファイルサーバ又は計算機等の上位装置からのデータ書き込み/読み出しコマンドを制御するI/FであるCHA(channel adapter)54と、ハードディスク59に接続され、ハードディスク59への書き込み/読み出しコマンドを制御するディスクI/FであるDKA(disk adapter)56と、キャッシュメモリ52と、共有メモリ53と、SW55と、内部LAN57と、管理端末60とを有する。
キャッシュメモリ52と共有メモリ53は、CHA54とDKA56が共有するメモリ装置である。共有メモリ53は、主として制御情報やコマンド等を記憶するために利用される。キャッシュメモリ52は、主としてデータを記憶するために利用される。
SW55は、キャッシュメモリ52、共有メモリ53、CHA54、DKA56を相互に接続する。これらのキャッシュメモリ52、共有メモリ53、CHA54、DKA56相互間のコマンド又はデータの送受信はSW55を介して行われる。SW55は、例えば高速スイッチングによりデータ伝送を行う1つ以上のスイッチ装置等で構成されるのが一般的である。ただし、SW55は、1本以上の共通バスで構成しても良い。
ハードディスク搭載部58は、RAID(Redundant Arrays of Inexpensive Disks)を構成するハードディスク59のグループを1つ以上持つ。このハードディスク59のグループをRAIDグループ(RAIDGr.57)と呼ぶ。(修正点1)ストレージ装置には、単一又は複数のRAIDGr57の記憶空間を合わせた論理ボリュームが設定されている。ストレージ装置は、上位装置に対し、記憶領域として論理ボリュームを提供する。上位装置は、この論理ボリュームに対するデータの書き込み/読み出しコマンドを発行する。
CHA54は、上位装置からのデータの書き込み/読み出しコマンドを受けた際、キャッシュメモリ52との間のデータ転送を制御する。DKA56は、ハードディスク59へのデータの書き込み/読出し時に、キャッシュメモリ52との間のデータ転送を制御する。この時、DKA56は、CHA54から送信された論理アドレス指定によるデータアクセス要求を、物理アドレス指定によるデータアクセス要求に変換し、ハードディスク59にデータの書き込み/読出しを行う。このようなキャッシュメモリ52を介したCHA54とDKA56の間のデータのやり取りにより、上位装置からハードディスク59へのデータの書き込み/読出しを行う。このような制御を行うため、CHA54及びDKA56は、1つ以上のプロセッサ(図示していない)を有する。
CHA54、DKA56、管理端末60は、内部LAN57を介して接続されている。さらに、ストレージ装置の外部に配置されるストレージ管理サーバ8は、LAN6を介して内部LAN57に接続される。管理者は、不図示の入力装置を通じて管理端末60を操作することにより、論理ボリューム、CHA54、DKA56の設定が可能である。
ここで、上述のコントローラ51の構成は一実施例に過ぎず、構成を上記に限定するものではない。コントローラ51は、計算機11からのデータの書き込み/読み出し要求に応じてハードディスク59へのデータの書き込み/読出しを行う機能を有していれば問題ない。
計算機管理サーバ7は、CPU71、メモリ72、ジョブスケジューラ73、IPインターフェース74を有する。ジョブスケジューラ73は、メモリ72の一部領域を用いてCPU71により実行され、計算機11が実行するジョブを管理する。
ストレージ管理サーバ8は、CPU81、メモリ82、情報収集部83、情報解析部84、負荷管理部85、ファイルシステム管理部86、IPインターフェース87を有する。情報収集部83、情報解析部84、負荷管理部85、ファイルシステム管理部86は、メモリ82の一部領域を用いてCPU81で実行される。ストレージ管理サーバ8は、これらの機能を用いてファイルサーバ3の負荷分散を実行する。
図2に、計算機管理サーバ7及びストレージ管理サーバ8の機能を示す。計算機管理サーバ7のジョブスケジューラ73は、計算機11で実行するジョブ211を管理するジョブ管理部201、実行するまでの間ジョブを待機させておくキュー212、計算機で実行中のジョブを格納する実行キュー213、ジョブの情報(ジョブ情報)とジョブキューの情報(ジョブキュー情報)を管理する計算機管理部221を有する。計算機管理部221は、計算機に対してジョブの実行と終了の指示、ジョブの実行状態の監視、ジョブ実行結果の取得などの管理を行う。
キュー212内のジョブ211は、ジョブスケジューラ73の管理に従い、ジョブの実行順に並んでいる。
ストレージ管理サーバ8は、情報収集部83、情報解析部84、負荷管理部85及びファイルシステム管理部86を有する。情報収集部83は、ジョブスケジューラ73からジョブ211の情報(ジョブ情報)、キュー212及び実行キュー213の情報(ジョブキュー情報)を収集し、情報解析部84が収集した情報を解析する。
負荷管理部85は、負荷分散を実行するタイミングを決定する負荷分散タイミング決定部231、一定時間後までの最大の負荷を予測する予測負荷作成部232、予測負荷を元に負荷分散を実行する負荷分散実行部233、ファイルサーバ管理テーブル234、負荷分散対象リスト235、負荷リスト236を有する。
ファイルシステム管理部86は、ファイルサーバ3のファイルシステムを管理するためのファイルシステム管理テーブル241と、ファイルシステム移動部242とを有する。
負荷分散実行部233は、負荷集中が実際に生じる前に、ファイルシステム管理部86に対してファイルシステムの移動を指示し、ファイルシステム移動部242がファイルサーバ間でファイルシステムを移動する。具体的には、負荷の高いファイルサーバが管理しているファイルシステムを、負荷の低いファイルサーバに移動する。これにより、予測に基づく負荷分散が実行される。ファイルシステムの具体的な移動方法については後述する。
図3に、計算機11とファイルサーバ3の機能を示す。計算機11は、ジョブスケジューラ73から受信したジョブを実行するジョブ実行部303を有し、ジョブで指定された計算プログラム304を実行する。計算プログラム304は、ファイルサーバ3に対してファイルアクセスを行う。ファイルサーバ3は、ストレージ装置5が記憶領域として提供するボリューム321内のファイルシステム322を管理する。また、ファイルサーバ3は、受信したファイルアクセスをブロックアクセスに変換し、ファイルシステムにアクセスする。
図4に、予測負荷の作成の一例を示す。なお、以下の処理は、負荷管理部85が実行する。例では、実行キュー213内のジョブ(JOB)#1,#2,#3が実行中であり、キュー212内のJOB#4,#5,#6,#7,#8が待機している。図に示すように、JOB#1からJOB#8は、それぞれファイルシステム(FS)#1からFS#8にアクセスする。NAS#1はFS#1,#4,#5,#6,#8を、NAS#2はFS#2,#3,#7,#9を、NAS#3はFS#10,#11を管理している。予測負荷403は、実行キュー213で待機するJOB#1,#2,#3と、予め定められた方法で算出された閾値s2 401よりもキュー212内の順番が小さいJOB#4,#5,#6が、それぞれのファイルシステムFS#1,#2,#3,#4,#5,#6に与える負荷を、NAS毎に合計したものである。
図のように、JOBがFS#1,#2,#3,#4,#5,#6に与える負荷405を、実行キュー213とキュー212におけるジョブ211の並びの順番に従い、負荷1,2,3,4,5,6と表す。NAS毎に計算された予測負荷403が、予め定めた負荷の閾値404よりも大きいとき、負荷管理部85は、そのNASが高負荷であると判断する。図では、NAS#1の予測負荷403のみが負荷の閾値404よりも高くなっている。このとき、負荷管理部85は、NAS#1が高負荷であると判断する。
図5に、ファイルシステム移動部86が、ファイルサーバ間でファイルシステムを移動する際に使用する方法の一例を示す。例では、NAS#1 501が、計算機11に対してファイルサービスを提供している。また、計算機11は、NFS共有511をディレクトリ521にNFSマウントしている。この場合、計算機11は、ディレクトリ521にアクセスすることにより、あたかもボリューム321内のファイルシステム322が計算機11内にあるかのようにファイルにアクセスすることができる。
ファイルシステムの移動は、次の4つの手順で行う。
(1)ファイルシステム移動部242が計算機11に指示を出す。その指示に従って、計算機11がNFS共有511をNFSアンマウントする。
(2)ファイルシステム移動部242がNAS#1 501に指示を出す。その指示に従って、NAS#1 501がNFS共有511を停止させ、その後、ファイルシステム322をファイルシステムアンマウントする。
(3)ファイルシステム移動部242がNAS#3 502に指示を出す。その指示に従って、NAS#3 502はファイルシステム322をファイルシステムマウントし、その後、NFS共有512を開始する。
(4)ファイルシステム移動部242が計算機11に指示を出す。その指示に従って、計算機11はNFS共有512をディレクトリ521にNFSマウントする。
ファイルシステムの移動の結果、NAS#1の代わりにNAS#3がファイルシステム322を管理するようになり、計算機11がディレクトリ521にアクセスしたときNAS#3がファイルサービスを提供する。
なお、上記の例の場合、手順(1)と手順(4)において、ファイルシステム移動部242が計算機11に対してNFSアンマウントとマウントするように直接指示を出している。しかし、ファイルシステム移動部242がNIS(Network Information Service)のようなネットワーク上のコンピュータ間で情報を共有するシステムに指示を出すことで、計算機11のNFSアンマウントとマウントを制御する手法を採用しても良い。
図6に、図4で作成した予測負荷に基づく負荷分散実行動作の一例と予測負荷の変化を示す。負荷分散実行では図5に示す操作を行うが、その前にまず、ファイルシステムの移動元と移動先のファイルサーバと、対象のファイルシステムとを選択する。図4の場合には、NAS#1が高負荷と判断され、負荷6が負荷の閾値404を超えていた。
この場合、負荷分散におけるファイルシステムの移動元として、予測負荷が最も高いファイルサーバ、すなわち図6におけるNAS#1が選択される。
また、負荷分散の対象ファイルシステムとして、負荷の閾値404を超える負荷、すなわち図6における負荷6のファイルシステムFS#6が選択される。
さらに、ファイルシステムの移動先として、予測負荷の値が最も小さいファイルサーバ、すなわち図6におけるNAS#3が選択される。
次に、決定したファイルシステムの移動元と、移動先のファイルサーバと、対象のファイルシステムの情報に基づいて、図5に示すファイルシステムの移動操作に基づいてファイルシステムが実際に移動される。すなわち、図6の負荷分散は、図5に示した方法により、NAS#1のファイルシステムFS#6をNAS#3に移動することにより実現される。この操作は、負荷6に対応するJOB#6が実行に移るより前に予め実行される。このファイルシステムの移動により、負荷6はNAS#1からNAS#3に移る。このため、NAS#1の予測負荷は、負荷の閾値404よりも小さく抑えられる。結果として、ジョブ実行により動的に負荷が変化する場合においても、ジョブ実行前に予めファイルサーバ間で負荷分散を行うことができる。
負荷分散を常時実行することは、ファイルサーバへの負荷を発生させるために避けられるべきである。キュー212と実行キュー213で発生するイベントを監視し、イベント発生した時のみ負荷分散を実行することで、ファイルサーバへの負荷を減らすことができる。
負荷分散の実行タイミングを決定するために用いるキュー212と実行キュー213で発生するイベントを図7に示す。キュー212と実行キュー213内のジョブの状態を合わせてジョブ状態と呼ぶ。
初めに、ジョブ状態(t=t1)の時、実行キュー213にはJOB#2が1つだけあり、キュー212にはJOB#3,#4,#5,#6,#7がある。
ジョブ状態(t=t2)になると、JOB#3 214がキュー212から実行キュー213に移動した。これはJOB#3 215が計算機11で実行開始したことを意味している。ジョブ状態(t=2)と(t=1)の変化から、ジョブ実行開始イベントを検出する。
ジョブ状態(t=t4)になると、ジョブ状態(t=t3)の時には存在したキュー212内のJOB#6 216が消えている。これは、JOB#6がユーザによってキャンセルされ、スケジューラがJOB#6をキュー212から削除したことを意味している。ジョブ状態(t=2)と(t=1)の変化から、ジョブキャンセルイベントを検出する。
次に、ジョブ状態(t=t6)になると、ジョブ状態(t=t5)の時にはキュー213内に存在したJOB#2 217が消えている。これは、JOB#2が実行終了したことを意味している。ジョブ状態(t=6)と(t=5)の変化から、ジョブ実行終了イベントを検出する。
ただし、負荷分散の実行タイミングは上述の方法に限定されない。例えば(1) イベントが予め設定した回数分発生する毎に負荷分散する、(2) イベントの発生による負荷の変化の合計が予め設定した値より大きくなる毎に負荷分散する、(3) 予め設定した時間毎に負荷分散する等の方法がある。
上述の負荷とは、ジョブがファイルシステムにアクセスすることでファイルサーバに与える負荷を意味する。例えばファイルのRead/Writeの転送速度やIOPS(Input Output Per Second)、又は、NASのファイルサービスにおけるCPU利用率等を負荷として定義することができる。負荷管理部85は、これらの値を負荷の大きさとして使用する。また、負荷の大きさを与える値は、負荷管理部85内で管理されている負荷リスト1003における負荷の大きさ1027に入力され、負荷分散処理に使用される。また、この定義以外にも、上記の値に重みをつけて足し合わせる等、何らかの方法で算出した値を負荷として定義することもできる。
各ファイルサーバには、負荷の上限となる負荷の閾値404を予め設定しておく。この負荷の閾値404は、ファイルサーバ管理テーブル1102の負荷の閾値1122に予め設定され、負荷分散処理に用いられる。
図8は、本発明のファイルサーバでの負荷分散の手順を示しており、負荷管理部85が処理を実行する。まず、ステップ801で、負荷管理部85は、ジョブスケジューラ73からジョブ状態を収集する。次のステップ802で、負荷管理部85は、ジョブ状態を解析し、イベントを検知する。イベント検知の方法は上述の通り図7に示した。
ステップ803において、負荷管理部85は、発生したイベントが負荷分散対象イベントか否か判定する。なお、発生したイベントが、ジョブ実行開始、ジョブキャンセル、ジョブ実行終了イベントの場合、負荷管理部85は、ステップ804に進む。それ以外の場合、負荷管理部85は、ステップ801に戻る。
ステップ804では、負荷管理部85は、負荷分散を実行する。以下、負荷分散の詳細内容を説明する。
まず、負荷管理部85は、ステップ811において予測負荷を作成する。この手順については、図9で詳しく説明する。次に、負荷管理部85は、ステップ812で負荷の閾値404を超える負荷を集めた負荷リスト1001を作成する。負荷リスト1001は負荷管理部85内に存在し、負荷管理部85が管理している。
続くステップ813で、負荷管理部85は、この負荷リスト1001からキューの順番1014≦閾値s1 402となる負荷を削除する。この閾値s1の決定方法については、図13にて詳しく説明する。次のステップ814で、負荷管理部85は、負荷リスト1001のサイズが1以上か否かを判定する。サイズが0だった場合、負荷管理部85は、負荷分散処理を終了する。サイズが1以上だった場合、負荷管理部85は、ステップ815に進む。
ステップ815で、負荷管理部85は、負荷分散対象リスト1001から、その中に記述されているマウント元のNAS1015の番号が一番小さい負荷分散対象1002を選択する。一番小さい負荷分散対象1002が複数ある場合、更に、キューの順番1014が一番小さい負荷分散対象1002を選択する。ステップ816では、負荷分散のファイルシステム移動先として、予測負荷403の最も小さいNAS#bを選択する。
ステップ817において、負荷管理部85は、ステップ815で選択した負荷分散対象1002内に記述されたファイルシステム1013を負荷分散対象、NAS(1015)をマウント元、NAS#bをマウント切り替え先として、ファイルシステム移動部242にマウント切り替え指示を出す。マウントの切り替えは、上述の通り図5に示した方法により、ファイルシステム管理部86のファイルシステム移動部242が処理を実行する。ステップ817が終わると、負荷管理部85は、ステップ811に戻る。
図9に、ステップ811における予測負荷403の作成手順を示す。この処理は、負荷管理部85の予測負荷作成部232が実行する。まず、予測負荷作成部232は、ステップ901で負荷リスト1003(図2の236)を初期化する。
次に、予測負荷作成部232は、ステップ902でジョブスケジューラ73から各ジョブのジョブスクリプト1401を取得する。予測負荷作成部232は、ステップ903で、取得した各ジョブのジョブスクリプト1401のそれぞれを解析する。解析の結果として、予測負荷作成部232は、ジョブアクセス先ファイルシステムを判定する。また、予測負荷作成部232は、ファイルシステム管理テーブル1101を用いることにより、判定で得たファイルシステムからマウント元のNASを判定し、負荷リスト1003に負荷データ1004として追加する。
次のステップ904で、予測負荷作成部232は、負荷リスト1003内の各負荷データ1004のジョブID1022に対応するキュー212及び実行キュー213内の順番をジョブスケジューラ73から取得し、負荷リスト1003の実行キュー内の順番1025とキュー内の順番1024にそれぞれ入力する。
次のステップ905で、予測負荷作成部232は、負荷リスト1003内の各負荷データ1004のジョブID1022に対応する負荷の大きさを、負荷リスト1003の負荷の大きさ1027に入力する。
次のステップ906で、予測負荷作成部232は、負荷リスト1003からキュー内の順番1024≧閾値s2 401となる負荷データ1004を削除する。この閾値s2の決定方法については、図13にて詳しく説明する。
次のステップ907で、予測負荷作成部232は、各NASについて予測負荷403を0に初期化する。
最後のステップ908で、予測負荷作成部232は、各負荷データ1004について、その中に記述されているマウント元のNAS1026に対応する予測負荷403に、負荷の大きさ1027に対応する負荷405を追加し、一連の処理を終了する。
ここで説明した予測負荷の作成は、作成する毎に負荷リスト1003を初期化から作り直している。作り直すことで負荷予測を間違いなく作ることができるが、その過程で同じような処理が重複するために作成する効率は良くない。
特に、ファイルサーバ3で多数のファイルシステム322を管理している場合、作り直しのために予測負荷の作成に必要な処理量が増加してしまう。負荷の変化する頻度が高い場合は、予測負荷の作成が高い頻度で実行されるために、さらに多くの処理が必要となる。
これに対し、予測負荷を作り直す代わりに、予測負荷の変化分を更新することで効率的に作成する方法もある。例えばキュー212内のジョブが閾値s2よりも小さい順番になった時に、そのジョブに対応する負荷を予測負荷403に追加することで更新する。ジョブ実行終了イベント又はジョブキャンセルイベントが発生した場合、予測負荷作成部232は、予測負荷403から終了したジョブに対応する負荷を削除することで更新する。ただし、予測負荷の変化分を確実に更新する必要がある。
そのため、管理サーバ8が障害などで負荷予測の変化分を更新できない時があれば、負荷予測を初期化して作り直すことで対応する。この他、負荷予測を確実に作成するために、定期的に負荷予測を初期化して作り直す方法もある。
図12に、閾値s1 402を算出する手順を示す。この処理も負荷管理部85が実行する。まず、ステップ1202でジョブ実行イベントが発生した時刻をサンプルとして集計する。
次に、ステップ1203で集計したジョブ実行イベントの発生時刻のサンプルに基づき、時間t1内に何個のジョブが実行するか確率P1を算出する。例えばサンプルが時刻tsから時刻teまでで発生しているとき、1個以下のジョブが実行する確率P1(1) は、以下のように算出する。まず、時刻tsから時刻teまで1分間隔の時刻t毎に、時刻tから時刻t+t1の間に1個以下のジョブが実行した回数をサンプルから数え上げる。次に、その回数を時刻tsから時刻teまで1分間隔の時刻tの回数で割り、確率P1(1) を算出する。このように、2個以下のジョブが実行する確率P1(2) 、3個以下のジョブが実行する確率P1(3) というように確率P1を算出していく。
算出方法は、集計したジョブ実行イベントの発生時刻のサンプルに基づき、時間t1内に何個のジョブが実行するか確率Pを算出できれば他の方法でも良い。例えば統計的にジョブ実行イベントが発生した時刻のサンプルからジョブが実行する確率P1の分布を推定し、その推定した分布から時間t1内にジョブが発生する確率を計算しても良い。
確率P1の一例を図12のグラフ1210に示す。次に、ステップ1204で確率P1>閾値Pth1となるキュー内の順番kで最大のものを算出する。図では、k=1である。ステップ1205で閾値s1にステップ1204で算出したkを設定する。閾値s1を設定することで、負荷分散の候補から順番k≦s1となるキュー212内のジョブの負荷を除外し、ファイルシステムの移動中にジョブ実行が開始しないようにしている。
そのため、時間t1はファイルシステムの移動に必要となる時間を設定する。例えばファイルサーバの仕様で決められたファイルシステムの移動時間の最大値や、これまでファイルシステムを移動したときの移動時間の最大値に数分のマージンを加えた値を設定する方法がある。
閾値P1thは、ファイルシステム移動中にジョブ実行が開始してしても良いと許容される確率を設定する。例えば閾値P1th=0.0001など十分小さい確率を設定する。この閾値s1のことを負荷分散選択閾値と呼ぶ。
図13は、閾値s2 401を算出する手順を示している。この処理も、負荷予測部85が実行する。まず、ステップ1302でジョブ実行イベントが発生した時刻をサンプルとして集計する。
次に、ステップ1303で集計したジョブ実行イベントの発生時刻のサンプルに基づき、時間t2内に何個のジョブが実行するか確率P2を算出する。例えばサンプルが時刻tsから時刻teまでで発生しているとき、1個以下のジョブが実行する確率P2(1)は、時刻tsから時刻teまで1分間隔の時刻t毎に、時刻tから時刻t+t2の間に1個以下のジョブが実行した回数をサンプルから数え上げる。
そして、その回数を時刻tsから時刻teまで1分間隔の時刻tの回数で割ることで算出できる。この様に、2個以下のジョブが実行する確率P2(2)、3個以下のジョブが実行する確率P2(3)というように、確率P2を算出していく。
算出方法は、集計したジョブ実行イベントの発生時刻のサンプルに基づき、時間t2内に何個のジョブが実行するか確率P2を算出できれば他の方法でも良い。例えば統計的にジョブ実行イベントが発生した時刻のサンプルからジョブが実行する確率P2の分布を推定し、その推定した分布から時間t2内にジョブが発生する確率を計算しても良い。確率P2の一例を図13のグラフ1310に示した。
次に、ステップ1304で確率P2<閾値Pth2となるキュー内の順番kで最小のものを算出する。図では、k=5である。ステップ1305で閾値s2にステップ1304で算出したkを設定する。閾値s2を設定することで、順番k≦s2となるキュー212内のジョブはジョブ実行までの時間が長いと判断できる。
そして、予測負荷からそのジョブの負荷を除外することで、ジョブの実行予測負荷の精度を高めている。そのため、時間t2は予測負荷を算出に用いる時間範囲を設定する。同時に実行される可能性のあるジョブの負荷を集めることで予測負荷を算出するので、時間t2には、例えばこれまで実行されたジョブの中で最大の実行時間を設定する。
ジョブの最大実行時間がその時だけ異常に長く、あてにならないと考えられる場合は、ジョブの実行時間で例えば2番目に長い時間を設定しても良い。閾値s2は、予測負荷の算出に用いる時間の範囲を超えると予想されたジョブが予想に反して実行されても良いと許容される確率を設定する。例えば閾値P2=0.0001など十分小さい確率を設定する。この閾値s2のことを予測負荷除外閾値と呼び、時間t2のことを予測負荷対象時間と呼ぶ。
図10に、負荷分散対象リスト1001(図2の235)と負荷リスト1003(図2の236)の構造の一例を示す。負荷分散対象リスト1001は、負荷の管理番号1011、ジョブID1012、ジョブのアクセス先ファイルシステム1013、ジョブIDに対応するキュー内の順番1014、ファイルシステムのマウント元のNAS1015と負荷の大きさ1016から構成される。リストの行には、負荷分散対象1002を入力する。負荷リスト1003は、負荷の管理番号1021、ジョブID1022、ジョブのアクセス先ファイルシステム1023、ジョブIDに対応するキュー内の順番1024、ジョブIDに対応する実行キュー内の順番1025、ファイルシステムのマウント元のNAS1026とジョブIDに対応する負荷の大きさ1027から構成される。
図11に、ファイルシステム管理テーブル1101(図2の241)とファイルサーバ管理テーブル1102(図2の234)の構造の一例を示す。ファイルシステム管理テーブル1101は、ファイルシステム名1111、計算機側でファイルシステムをNFSマウントしているディレクトリ521に対応するディレクトリ名1112とマウント元のNAS1113から構成される。ファイルサーバ管理テーブル1102はNAS名1121と負荷の閾値1122から構成される。
図14に、ジョブスクリプト1401の内容の一例を示す。ジョブスクリプト1401は、ジョブが用いるCPU数1411、ジョブの最大実行時間1412、ジョブが用いる最大のメモリ数1413、ジョブが入力データとして読み込む入力ファイル名1414、ジョブがデータを出力する先の出力ファイル名1415、ジョブが計算機11で実行するプログラムの実行ファイル名1416を有する。
1 計算機システム
2 IPスイッチ
3 ファイルサーバ
4 FCスイッチ
5 ストレージ装置
6 LAN
7 計算機管理サーバ
8 ストレージ管理サーバ
51 コントローラ
57 RAIDGr.
58 ハードディスク搭載部
59 ハードディスク
73 ジョブスケジューラ
83 情報収集部
84 情報解析部
85 負荷管理部
86 ファイルシステム管理部

Claims (11)

  1. 第一の管理装置が接続された複数の計算機に接続された1以上のファイルサーバと、前記ファイルサーバに接続され1以上のボリュームを有するストレージ装置と、前記ファイルサーバと前記第一の管理装置とに接続される第二の管理装置を有するストレージシステムであって、
    前記第一の管理装置は、計算機上で逐次実行されるジョブの情報(ジョブ情報)とジョブキューの情報(ジョブキュー情報)を記憶する領域と、実行キューと、実行までジョブ待機するキューとを有し、
    前記第二の管理装置は、前記ジョブ情報を収集する手段と、前記ジョブキュー情報を収集する手段と、収集した前記ジョブ情報と前記ジョブキュー情報を解析する手段と、負荷を管理する手段と、ファイルシステムを管理する手段とを有し、
    前記ジョブ情報と前記ジョブキュー情報を解析する手段は、前記ジョブ情報に基づいて、当該ジョブがアクセスするファイルと、ファイルシステムと、ファイルサーバを特定し、
    前記負荷を管理する手段は、前記ジョブ情報と前記ジョブキュー情報に基づいて予測負荷を算出して負荷分散を実行し、
    ファイルシステムを管理する手段は、前記負荷を管理する手段で決定された負荷分散に従い、負荷に対応するファイルシステムを、前記ファイルサーバ内の予測負荷の高いファイルサーバから予測負荷の小さいファイルサーバに移動する
    ことを特徴とするストレージシステム。
  2. 請求項1記載のストレージシステムであって、
    前記負荷を管理する手段は、前記ファイルサーバ毎に算出された予測負荷の中で、予め設定した負荷の閾値を超えるファイルサーバを負荷の移動元のファイルサーバとして選択し、負荷の閾値を超えた分の負荷を負荷分散対象として選択し、予測負荷の最も小さいサーバを負荷の移動先のサーバとして選択する
    ことを特徴とするストレージシステム。
  3. 請求項2記載のストレージシステムであって、
    前記負荷を管理する手段は、前記ジョブ情報と前記ジョブキュー情報とに基づいて、前記ジョブキューに並んでいるジョブがアクセスする先のファイルシステムとファイルサーバとを特定し、当該ジョブキューに並ぶ各ジョブが与える負荷を前記各ファイルサーバ毎に合計することで予測負荷を算出する
    ことを特徴とするストレージシステム。
  4. 請求項3記載のストレージシステムであって、
    前記負荷を管理する手段は、負荷に対応するジョブの前記ジョブキュー内における順番が負荷分散選択閾値以下の場合、前記負荷分散の対象から当該負荷を削除する
    ことを特徴とするストレージシステム。
  5. 請求項4記載のストレージシステムであって、
    前記負荷を管理する手段は、前記ジョブキュー内の順番が予測負荷除外閾値以上のジョブが与える負荷を削除する
    ことを特徴とするストレージシステム。
  6. 請求項5記載のストレージシステムであって、
    前記負荷を管理する手段は、前記イベント発生の頻度に基づき、予め定められた予測負荷対象時間内に予め定められた確率の範囲でジョブが実行する最大の回数を予め定められた方法で算出し、当該回数を予測負荷除外閾値に設定する
    ことを特徴とするストレージシステム。
  7. 請求項6記載のストレージシステムであって、
    前記負荷を管理する手段は、前記ジョブキュー情報の現在と過去の内容の差分をとることにより、前記ジョブキューで発生したイベントを検知する
    ことを特徴とするストレージシステム。
  8. 請求項7記載のストレージシステムであって、
    前記負荷を管理する手段は、前記イベントの発生に基づき、定められた方法で負荷分散のタイミングを決定する
    ことを特徴とするストレージシステム。
  9. 請求項7記載のストレージシステムであって、
    前記負荷を管理する手段は、前記イベント発生の頻度に基づき、予め定められたファイルシステム移動時間内に予め定められた確率の範囲でジョブが実行する最大の回数を予め定められた方法で算出し、当該回数を負荷分散選択閾値に設定する
    ことを特徴とするストレージシステム。
  10. 第一の管理装置が接続された複数の計算機に接続された1以上のファイルサーバと、前記ファイルサーバに接続され1以上のボリュームを有するストレージ装置と、前記ファイルサーバと前記第一の管理装置とに接続される第二の管理装置を有するストレージシステムにおける負荷分散管理方法であって、
    前記第一の管理装置が、計算機上で逐次実行されるジョブの情報(ジョブ情報)とジョブキューの情報(ジョブキュー情報)を記憶する領域と、実行キューと、実行までジョブ待機するキューとを有する場合に、
    前記第二の管理装置は、前記ジョブ情報を収集する処理と、前記ジョブキュー情報を収集する処理と、収集した前記ジョブ情報と前記ジョブキュー情報を解析する処理と、負荷を管理する処理と、ファイルシステムを管理する処理とを実行し、
    前記ジョブ情報と前記ジョブキュー情報を解析する処理は、前記ジョブ情報に基づいて、当該ジョブがアクセスするファイルと、ファイルシステムと、ファイルサーバを特定し、
    前記負荷を管理する処理は、前記ジョブ情報と前記ジョブキュー情報に基づいて予測負荷を算出して負荷分散を実行し、
    ファイルシステムを管理する処理は、前記負荷を管理する手段で決定された負荷分散に従い、負荷に対応するファイルシステムを、前記ファイルサーバ内の予測負荷の高いファイルサーバから予測負荷の小さいファイルサーバに移動する
    ことを特徴とするストレージシステムの負荷分散管理方法。
  11. 第一の管理装置が接続された複数の計算機に接続された1以上のファイルサーバと、前記ファイルサーバに接続され1以上のボリュームを有するストレージ装置と、前記ファイルサーバと前記第一の管理装置とに接続される第二の管理装置を有するストレージシステムにおける負荷分散の管理処理を計算機に実行させるプログラムであって、
    前記第一の管理装置が、計算機上で逐次実行されるジョブの情報(ジョブ情報)とジョブキューの情報(ジョブキュー情報)を記憶する領域と、実行キューと、実行までジョブ待機するキューとを有する場合に、
    前記第二の管理装置に搭載される計算機に、前記ジョブ情報を収集する処理と、前記ジョブキュー情報を収集する処理と、収集した前記ジョブ情報と前記ジョブキュー情報を解析する処理と、負荷を管理する処理と、ファイルシステムを管理する処理とを実行させ、
    前記ジョブ情報と前記ジョブキュー情報を解析する処理は、前記ジョブ情報に基づいて、当該ジョブがアクセスするファイルと、ファイルシステムと、ファイルサーバを特定し、
    前記負荷を管理する処理は、前記ジョブ情報と前記ジョブキュー情報に基づいて予測負荷を算出して負荷分散を実行し、
    ファイルシステムを管理する処理は、前記負荷を管理する手段で決定された負荷分散に従い、負荷に対応するファイルシステムを、前記ファイルサーバ内の予測負荷の高いファイルサーバから予測負荷の小さいファイルサーバに移動する
    ことを特徴とするストレージシステムの負荷分散管理を計算機に実現させるプログラム。
JP2010080212A 2010-03-31 2010-03-31 ストレージシステム、その負荷分散管理方法及びプログラム Expired - Fee Related JP5415338B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010080212A JP5415338B2 (ja) 2010-03-31 2010-03-31 ストレージシステム、その負荷分散管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010080212A JP5415338B2 (ja) 2010-03-31 2010-03-31 ストレージシステム、その負荷分散管理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011215677A true JP2011215677A (ja) 2011-10-27
JP5415338B2 JP5415338B2 (ja) 2014-02-12

Family

ID=44945367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010080212A Expired - Fee Related JP5415338B2 (ja) 2010-03-31 2010-03-31 ストレージシステム、その負荷分散管理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5415338B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094007A1 (ja) * 2011-12-19 2013-06-27 富士通株式会社 負荷分散システム
WO2014167716A1 (ja) * 2013-04-12 2014-10-16 株式会社日立製作所 計算機システムの管理システム及び管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004139200A (ja) * 2002-10-16 2004-05-13 Fujitsu Ltd ファイル管理プログラム及びファイル管理装置
JP2007115140A (ja) * 2005-10-21 2007-05-10 Hitachi Ltd ストレージシステム、及びストレージスシステムの制御方法
JP2008293149A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 予知型データ移行を行う階層ストレージシステム
JP2008293233A (ja) * 2007-05-24 2008-12-04 Hitachi Ltd 計算機システム、その制御方法およびシステム管理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004139200A (ja) * 2002-10-16 2004-05-13 Fujitsu Ltd ファイル管理プログラム及びファイル管理装置
JP2007115140A (ja) * 2005-10-21 2007-05-10 Hitachi Ltd ストレージシステム、及びストレージスシステムの制御方法
JP2008293149A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 予知型データ移行を行う階層ストレージシステム
JP2008293233A (ja) * 2007-05-24 2008-12-04 Hitachi Ltd 計算機システム、その制御方法およびシステム管理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094007A1 (ja) * 2011-12-19 2013-06-27 富士通株式会社 負荷分散システム
JPWO2013094007A1 (ja) * 2011-12-19 2015-04-27 富士通株式会社 負荷分散システム
WO2014167716A1 (ja) * 2013-04-12 2014-10-16 株式会社日立製作所 計算機システムの管理システム及び管理方法
US9442765B2 (en) 2013-04-12 2016-09-13 Hitachi, Ltd. Identifying shared physical storage resources having possibility to be simultaneously used by two jobs when reaching a high load

Also Published As

Publication number Publication date
JP5415338B2 (ja) 2014-02-12

Similar Documents

Publication Publication Date Title
US11675815B1 (en) Multi-cluster warehouse
US9916275B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
EP2282276B1 (en) System for client connection distribution according to system load
US7593948B2 (en) Control of service workload management
JP5253353B2 (ja) 情報処理システム、及びストレージ監視サーバの管理方法
JP4921054B2 (ja) 負荷分散制御システム及び負荷分散制御方法
US9400664B2 (en) Method and apparatus for offloading storage workload
JP4375435B2 (ja) 予知型データ移行を行う階層ストレージシステム
US11075984B1 (en) Workload management at streaming data service supporting persistent connections for reads
JP4884198B2 (ja) ストレージネットワークの性能管理方法、並びに、その方法を用いた計算機システム及び管理計算機
EP2306293A2 (en) Methods and apparatus for managing virtual ports and logical units on storage systems
US8381217B1 (en) System and method for preventing resource over-commitment due to remote management in a clustered network storage system
US8725971B2 (en) Storage apparatus and method for controlling storage apparatus involving snapshots
US8489709B2 (en) Method of managing a file access in a distributed file storage system
US10250673B1 (en) Storage workload management using redirected messages
US9158714B2 (en) Method and system for multi-layer differential load balancing in tightly coupled clusters
US11509700B2 (en) Stream data record reads using push-mode persistent connections
US11556391B2 (en) CPU utilization for service level I/O scheduling
US11675501B2 (en) Streaming data service with isolated read channels
JP2023539212A (ja) ストレージレベルの負荷分散
US20230239345A1 (en) Isolated read channel categories at streaming data service
JP5415338B2 (ja) ストレージシステム、その負荷分散管理方法及びプログラム
Thaha et al. Hadoop in openstack: Data-location-aware cluster provisioning
US9135191B1 (en) Techniques for storage network bandwidth management
US11070600B1 (en) Optimization techniques to support lagging readers at streaming data service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131001

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131029

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131113

LAPS Cancellation because of no payment of annual fees