JP6209863B2 - ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム - Google Patents

ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム Download PDF

Info

Publication number
JP6209863B2
JP6209863B2 JP2013110640A JP2013110640A JP6209863B2 JP 6209863 B2 JP6209863 B2 JP 6209863B2 JP 2013110640 A JP2013110640 A JP 2013110640A JP 2013110640 A JP2013110640 A JP 2013110640A JP 6209863 B2 JP6209863 B2 JP 6209863B2
Authority
JP
Japan
Prior art keywords
access
storage
processing
slot
types
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
JP2013110640A
Other languages
English (en)
Other versions
JP2014229235A (ja
Inventor
達夫 熊野
達夫 熊野
健 飯澤
健 飯澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013110640A priority Critical patent/JP6209863B2/ja
Priority to US14/256,541 priority patent/US9563651B2/en
Publication of JP2014229235A publication Critical patent/JP2014229235A/ja
Application granted granted Critical
Publication of JP6209863B2 publication Critical patent/JP6209863B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラムに関する。
分散型のストレージシステムは、複数の記憶装置と、これら複数の記憶装置へのデータのアクセスを制御するストレージ制御装置とをクラスタ化することによって実現される。分散型のストレージシステムは、格納するデータの増加に応じたシステムの拡張性が高いという特徴を有する。
また、ストレージシステムの性能を向上するための各種の技術が提案されている。例えば、全体/論理ボリューム番号毎にプロセッサ使用率などの複数の情報を含むリソース使用情報を集計し、集計された結果のいずれかが閾値を超えた場合、警告を通知する技術が提案されている。
また、例えば、サーバのCPUの負荷率を常時および、過去の傾向に基づいて監視して、過負荷サーバと低負荷サーバを抽出し、過負荷サーバに対しては、利用者が集中しているコンテンツのコンテンツ名をメニューリストから隠蔽し、低負荷サーバに対しては、そのコンテンツ名およびコンテンツを過負荷サーバから複写する技術が提案されている。
特開2003−296039号公報 特開平11−25059号公報
分散型のストレージシステムにおいて、各ストレージ制御装置の処理負荷を分散させることを目的として記憶装置間でデータを移動させるためには、移動させるデータを適切に選択する必要がある。しかし、記憶装置に記憶された複数のデータのうちのどのデータが、ストレージ制御装置の負荷に最も大きな影響を与えているかを正確に判断することは難しい。このため、ストレージ制御装置の負荷軽減のために有効なデータを適切に選択することが難しいという問題があった。
1つの側面では、本発明では、負荷軽減のために移動させるデータを適切に選択可能なストレージ制御装置、ストレージ制御方法およびストレージ制御プログラムを提供することを目的とする。
1つの案では、第1の記憶装置に対するアクセスを制御するストレージ制御装置が提供される。ストレージ制御装置は、計測部と移動制御部とを有する。計測部は、ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、第1の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する。移動制御部は、複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、選択したアクセス指標値が最大であるデータを、第1の記憶装置から、他のストレージ制御装置によってアクセスが制御される第2の記憶装置へ移動させる。
また、1つの案では、上記ストレージ制御装置と同様の処理を実行するストレージ制御方法が提供される。
さらに、1つの案では、上記ストレージ制御装置と同様の機能を実現するストレージ制御プログラムが提供される。
一態様によれば、負荷軽減のために移動させるデータを適切に選択できる。
第1の実施の形態のストレージ制御装置の構成例および処理例を示す図である。 第2の実施の形態のオブジェクトストレージシステムの例を示す図である。 ストレージサーバのハードウェア構成例を示す図である。 ストレージサーバの機能例を示す図である。 サーバ負荷情報テーブルの例を示す図である。 スロット負荷情報テーブルの例を示す図である。 プロセッサ性能テーブルの例を示す図である。 スロットの処理時間の計測例を示す図である。 スロット配置テーブルの例を示す図である。 スロットの再配置の要否の判定処理の例を示すフローチャートである。 スロットを再配置する処理の例を示すフローチャートである。 配置先のストレージサーバを特定する例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ制御装置の構成例および処理例を示す図である。ストレージ制御装置1は、記憶装置2(第1の記憶装置)に対するアクセスを制御する。ストレージ制御装置1は、計測部3および移動制御部4を有する。
計測部3は、ストレージ制御装置1の処理負荷状態をそれぞれ示す複数種類の処理指標値と、記憶装置2に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する。
移動制御部4は、複数種類の処理指標値のいずれかが、処理指標値毎に決められた閾値を超えたとき、これらの複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択する。そして、移動制御部4は、選択したアクセス指標値が最大であるデータを、記憶装置2から他の記憶装置(第2の記憶装置)へ移動させる。
移動制御部4によるデータの移動先は、ストレージ制御装置1以外の他の装置によってアクセスが制御される記憶装置である。図1では例として、ストレージ制御装置1aと、このストレージ制御装置1aによってアクセスが制御される記憶装置2aとを示し、記憶装置2のデータは記憶装置2aに移動されるものとする。なお、ストレージ制御装置1aも、ストレージ制御装置1と同様の処理機能、すなわち計測部3および移動制御部4の処理機能を有していてもよい。
ここで、図1に示すように、記憶装置2にデータ#1,#2,#3が記憶されており、これらのいずれかを記憶装置2aへ移動させる場合について説明する。
また、図1に示すように、計測部3は、2種類の処理指標値5a,5bと、2種類のアクセス指標値6a,6bを計測するものとする。そして、処理指標値5aとアクセス指標値6aとが対応関係にあり、処理指標値5bとアクセス指標値6bとが対応関係にあるものとする。
また、処理指標値5a,5bについての閾値は、それぞれ“80”とする。そして、計測部3による処理指標値5aの計測値が、閾値“80”を超えて“90”になったとする。すると、移動制御部4は、処理指標値5aに対応するアクセス指標値6aを選択する。ここで、計測部3によるデータ#1のアクセス指標値6aの計測値は“10”、データ#2のアクセス指標値6aの計測値は“20”、データ#3のアクセス指標値6aの計測値は“80”である。そのため、移動制御部4は、選択したアクセス指標値6aが最大であるデータ#3を、記憶装置2aに移動させる。
このように、処理指標値5aの計測値が閾値を超えたとき、処理指標値5aに対応するアクセス指標値6aの計測値が最大のデータが選択されて、選択されたデータが他の記憶装置2aに移動される。
ここで、複数種類の処理指標値のそれぞれは、関連性が高いアクセス指標値にあらかじめ対応付けられる。処理指標値とアクセス指標値との関連性が高いとは、あるデータについてのアクセス指標値が高くなったとき、そのアクセス指標値が高くなるような要因が、対応する処理指標値を高くする要因にもなる可能性が高いと推定されることを言う。
図1の例では、処理指標値5aとの関連性が高いアクセス指標値6aが選択され、選択されたアクセス指標値6aを基に、移動させるデータが選択されることで、データの移動後に、処理指標値5aの計測値を確実に低下させ、その低下幅を大きくすることができる。したがって、ストレージ制御装置1の負荷軽減のために移動させるデータを適切に選択可能となり、ストレージ制御装置1とストレージ制御装置1aとの間の負荷分散を適正化することができる。
なお、処理指標値とアクセス指標値とは、1対1で対応付けられる必要はない。例えば、複数種類の処理指標値に1種類のアクセス指標値が対応付けられても、あるいは、1種類の処理指標値に複数種類のアクセス指標値が対応付けられてもよい。
また、上記の例では、処理指標値およびアクセス指標値が記憶装置2内のデータ毎に計測されたが、他の例として、処理指標値およびアクセス指標値は所定のデータ群毎に計測されてもよい。この場合、移動制御部4は、いずれかの処理指標値が所定の閾値を超えたとき、複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、選択したアクセス指標値が最大であるデータ群を記憶装置2から他の記憶装置へ移動させる。
[第2の実施の形態]
次に、図1に示したストレージ制御装置1,1aを、オブジェクトストレージシステムに適用した場合の例について説明する。
図2は、第2の実施の形態のオブジェクトストレージシステムの例を示す図である。オブジェクトストレージシステム7では、データが“オブジェクト”として取り扱われ、複数のオブジェクトをグループ化した“スロット”を単位として、オブジェクトが複数のストレージノードに分散配置される。
オブジェクトストレージシステム7は、複数のディスク10、ネットワークスイッチ20、複数のアプリケーションサーバ200および複数のストレージサーバ100を有する。各アプリケーションサーバ200は、ネットワークスイッチ20を介して、各ストレージサーバ100に接続されている。各ストレージサーバ100は、対応するディスク10に接続されている。
1つのストレージサーバ100と、このストレージサーバ100に接続されたディスク10とが、1つのストレージノードに対応する。ディスク10は、ストレージノードにおいてオブジェクトがスロット11を単位として記憶される記憶領域を示す。ディスク10は、1つ以上の記憶装置によって実現される。記憶装置としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)などが用いられる。
ストレージサーバ100は、対応するディスク10に記憶されたオブジェクトへのアクセスを制御するサーバ装置である。ストレージサーバ100は、アプリケーションサーバ200からのアクセス要求を受信すると、要求されたオブジェクトへのアクセスを行う。また、ストレージサーバ100は、キャッシュメモリを用いて、オブジェクトへのアクセスを高速化する機能を有する。
さらに、ストレージサーバ100は、自装置の負荷に関する情報や、自装置に対応するディスク10に記憶されたスロット毎の負荷に関する情報を計測する。ストレージサーバ100は、これらの計測値に基づいて、対応するディスク10からスロット11を選択し、選択したスロット11を他のストレージサーバ100に対応するディスク10に移動させて、ストレージサーバ100間で負荷を分散させる。
アプリケーションサーバ200は、ユーザにサービスを提供するサーバ装置である。アプリケーションサーバ200は、ユーザへのサービス提供のための処理の過程で、いずれかのストレージサーバ100に対してオブジェクトの書き込みや読み出しを要求する。例えば、アプリケーションサーバ200は、ユーザが操作する端末装置からの要求に応じて、オブジェクトの書き込みや読み出しを要求する。
アプリケーションサーバ200は、オブジェクトにアクセスする際、アクセス先のオブジェクトを含むスロット11を特定し、特定したスロット11に対応するストレージサーバ100を決定する。例えば、アプリケーションサーバ200のそれぞれは、スロット11がどのストレージサーバ100に対応するかの対応関係を示すテーブル情報を保持し、このテーブル情報に基づいて、特定したスロット11に対応するストレージサーバ100を決定する。アプリケーションサーバ200は、決定したストレージサーバ100に対して、オブジェクトのアクセス要求を送信する。
図3は、ストレージサーバのハードウェア構成例を示す図である。ストレージサーバ100は、プロセッサ101、RAM(Random Access Memory)102、HDD103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信インタフェース107を有する。これらのユニットは、ストレージサーバ100内でバス108に接続されている。
プロセッサ101は、プログラムの命令を実行する演算器を含むプロセッサである。プロセッサ101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードしてプログラムを実行する。なお、プロセッサ101は複数のプロセッサコアを備えてもよい。また、ストレージサーバ100は、複数のプロセッサを備えてもよい。また、ストレージサーバ100は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、2以上のプロセッサの集合、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの専用回路、2以上の専用回路の集合、プロセッサと専用回路の組み合わせなどを「プロセッサ」と呼んでもよい。
RAM102は、プロセッサ101が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、ストレージサーバ100は、RAM以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
HDD103は、OS(Operating System)やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、ストレージサーバ100は、フラッシュメモリなどの他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、ストレージサーバ100に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部105は、ストレージサーバ100に接続された入力デバイス42から入力信号を取得し、プロセッサ101に通知する。入力デバイス42としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
ディスクドライブ106は、記録媒体43に記録されたプログラムやデータを読み取る駆動装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、プロセッサ101からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワークスイッチ20などのネットワークを介して他の情報処理装置(例えば、ディスク10など)と通信を行う。
なお、ストレージサーバ100はディスクドライブ106を備えていなくてもよく、専ら他の情報処理装置からアクセスされる場合には、画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ41や入力デバイス42は、ストレージサーバ100の筐体と一体に形成されていてもよい。
なお、アプリケーションサーバ200も、ストレージサーバ100と同様のハードウェアを用いて実現できる。
図4は、ストレージサーバの機能例を示す図である。アプリケーションサーバ200は、スロット配置情報記憶部210およびアクセス制御部220を有する。
スロット配置情報記憶部210は、各スロット11の配置に関する情報を格納したスロット配置テーブル記憶する。配置に関する情報には、例えば、各スロット11の配置先や、配置の状況などの情報が挙げられる。各スロット11の配置に関する情報は、アプリケーションサーバ200それぞれに共有されている。
アクセス制御部220は、次のように、ストレージサーバ100にオブジェクトのアクセスを要求する。まず、アクセス制御部220は、アクセス先のオブジェクトを含むスロット11を特定する。次に、アクセス制御部220は、スロット配置テーブルに基づいて、特定したスロット11に対応するストレージサーバ100を特定する。そして、アクセス制御部220は、特定したストレージサーバ100に対して、オブジェクトのアクセス要求を送信する。
また、アクセス制御部220は、スロットの再配置が行われる際に、ストレージサーバ100の要求に応じてスロット配置テーブルを更新する。
ストレージサーバ100は、キャッシュメモリ110、オブジェクト入出力部120、負荷計測部130、配置制御部140および負荷情報記憶部150を有する。
キャッシュメモリ110は、オブジェクト入出力部120がオブジェクトへアクセスするためのデータを一時的に記憶する。
負荷情報記憶部150は、ストレージサーバ100の負荷に関する情報を格納したサーバ負荷情報テーブルを記憶する。サーバ負荷情報テーブルに格納される負荷に関する情報は、ストレージサーバ100全体の負荷を推定するための計測値である。以下、サーバ負荷情報テーブルに格納される負荷に関する情報を「サーバ負荷値」と呼ぶ。また、サーバ負荷情報テーブルには、例えば、プロセッサ使用率やネットワーク転送率など複数の種別のサーバ負荷値が含まれる。サーバ負荷情報テーブルは、負荷計測部130がサーバ負荷値を計測する度に更新される。
また、負荷情報記憶部150は、各サーバ負荷値に対応する各スロット11の負荷に関する情報を格納したスロット負荷情報テーブルを記憶する。スロット負荷情報テーブルに格納される、各スロット11の負荷に関する情報は、各スロットに対するアクセス処理がストレージサーバ100全体の負荷に及ぼす影響をスロット毎に推定するための計測値である。以下、スロット負荷情報テーブルに格納される負荷に関する情報を「スロット負荷値」と呼ぶ。また、スロット負荷情報テーブルには、例えば、スロット内のオブジェクトへのアクセス処理時間やネットワーク転送量など複数の種別のスロット負荷値が含まれる。
オブジェクト入出力部120、負荷計測部130および配置制御部140は、例えば、ストレージサーバ100が備えるプロセッサ101が所定のプログラムを実行することで実現される。
オブジェクト入出力部120は、アプリケーションサーバ200からのアクセス要求を受信すると、アプリケーションサーバ200から指定されたオブジェクトへのアクセスを行う。また、オブジェクト入出力部120は、配置制御部140の要求に応じて指定されたスロット11を、指定された他のストレージサーバ100に送信する。
また、オブジェクト入出力部120は、キャッシュメモリ110を用いたオブジェクトのキャッシュ制御を行う。例えば、オブジェクト入出力部120は、アプリケーションサーバ200から書き込みや読み出しが要求されたオブジェクトを、ディスク30だけでなくキャッシュメモリ110にも記憶し、それ以後、そのオブジェクトへのアクセスをキャッシュメモリ110を介して行う。また、オブジェクト入出力部120は、キャッシュメモリ110に記憶されたオブジェクトに対するアクセスが一定時間以上要求されなかった場合、そのオブジェクトをキャッシュメモリ110から削除する。
負荷計測部130は、自己の各サーバ負荷値および、各スロット負荷値を計測する。負荷計測部130は、計測した負荷に関する情報をサーバ負荷情報テーブルやスロット負荷情報テーブルに格納する。
なお、負荷計測部130の処理は、所定のアプリケーションプログラムの実行によって実現されるものとする。ただし、負荷計測部130による計測処理の一部は、OSプログラムの処理によって実現されてもよい。例えば、オブジェクト入出力部120の処理がOSプログラムの実行によって実行される場合、上記の計測値の一部がオブジェクト入出力部120によって行われてもよい。この場合、負荷計測部130はオブジェクト入出力部120によって計測された計測値を、OSのAPI(Application Program Interface)を用いて取得する。
配置制御部140は、負荷情報テーブルを参照し、自己のサーバ負荷値のいずれかが閾値以上か判定する。自己のサーバ負荷値のいずれかが閾値以上である場合、配置制御部140は、以下のように、自己のサーバ負荷値に影響を与えているスロット11を、他のストレージサーバ100へ移動する。
まず、配置制御部140は、閾値以上のサーバ負荷値の種別に対応するスロット負荷値の種別を選択する。対応するスロット負荷値の種別は、サーバ負荷値の種別と関連性の高い負荷値の種別となる。次に、配置制御部140は、選択した種別のスロット負荷値が最も高いスロット11を、ストレージサーバ100に接続されているディスク10から抽出する。
次に、配置制御部140は、他のストレージサーバ100それぞれから、閾値以上となったサーバ負荷値と同じ種別のサーバ負荷値を取得する。次に、配置制御部140は、取得したサーバ負荷値が最も低いストレージサーバ100を特定する。
そして、配置制御部140は、特定したストレージサーバ100に抽出したスロット11を配置するようオブジェクト入出力部120に要求する。その際、配置制御部140は、各アプリケーションサーバ200が保持するスロット配置テーブルを更新する。
次に、図5〜7,9を用いて、オブジェクトストレージシステム7が用いるテーブルについて説明する。図8では、図6のテーブルの項目であるスロットの処理時間の計測方法について説明する。
図5は、サーバ負荷情報テーブルの例を示す図である。サーバ負荷情報テーブル151は、自己のサーバ負荷値の計測値を格納したテーブルである。サーバ負荷情報テーブル151は、負荷情報記憶部150に記憶されている。
サーバ負荷情報テーブル151は、サーバ、プロセッサ使用率、ディスクビジー率、ネットワーク転送量およびキャッシュ使用量の項目を有する。
サーバの項目には、ストレージサーバ100を識別するための識別子が設定される。
プロセッサ使用率の項目には、直近の単位時間のうち、プロセッサがOSやアプリケーションソフトウェアなどの所定の処理を実行している時間の割合(以下、プロセッサ使用率)を示す情報が設定される。ここで言う所定の処理には、少なくとも、アプリケーションサーバ200からの要求に応じてオブジェクトにアクセスするための処理が含まれる。
ディスクビジー率の項目には、直近の単位時間のうち、ストレージサーバ100からディスク10へのディスクアクセス時間の割合(以下、ディスクビジー率)を示す情報が設定される。例えば、ディスクビジー率は、直近の単位時間に置いて、オブジェクト入出力部120とディスク30との間で一定の転送率以上のデータ転送が行われていた時間の割合を示す。
ネットワーク転送量の項目には、直近の単位時間あたりに、ストレージサーバ100がネットワークとの間で送受信したデータのサイズ(以下、ネットワーク転送量)を示す情報が設定される。ネットワーク転送量は、例えば、ネットワークへの送信またはネットワークからの受信のいずれかにおけるデータサイズを示してもよいし、あるいは、これらの合計や平均のデータサイズを示してもよい。
キャッシュ使用量の項目には、現時点でのキャッシュメモリ110の使用量(以下、キャッシュ使用量)を示す情報が設定される。
なお、サーバ負荷情報テーブル151の各サーバ負荷値の計測値は、例えば、一定時間毎に更新される。
また、サーバ負荷情報テーブル151には、例えば、他のストレージサーバ100において計測されたサーバ負荷値が定期的に収集されて格納されてもよい。
図6は、スロット負荷情報テーブルの例を示す図である。スロット負荷情報テーブル152は、スロット毎のスロット負荷値の計測値を格納したテーブルである。スロット負荷情報テーブル152は、負荷情報記憶部150に記憶されている。
スロット負荷情報テーブル152は、スロット、処理時間、ネットワーク転送量およびキャッシュ使用量の項目を有する。
スロットの項目には、ストレージサーバ100が管理しているスロット11を識別するための識別子が設定される。
処理時間の項目には、対応するスロットに対する直近のアクセス処理時において、ストレージサーバ100がスロット11へのアクセス処理にかかった時間の合計(以下、処理時間)が設定される。アクセス処理にかかった時間とは、具体的には、ストレージサーバ100が、スロット11に含まれるデータに対するアクセス要求を受けた時刻から、そのアクセス要求に対する応答が完了した時刻までの時間である。
なお、処理時間の項目には、例えば、直近の単位時間におけるスロット11内のオブジェクトへのアクセス処理毎の処理時間の合計値または平均値が設定されてもよい。また、複数のスロット11について並行してアクセス処理が行われた場合については、図8で説明する。
ネットワーク転送量の項目には、直近の単位時間あたりに、スロット11へのアクセス時にストレージサーバ100が送受信するデータのサイズの合計(以下、ネットワーク転送量)を示す情報が設定される。
キャッシュ使用量の項目には、現時点でスロット11に含まれるオブジェクトへのアクセス用にキャッシュメモリ110が使用されている使用量(以下、キャッシュ使用量)を示す情報が設定される。
なお、スロット負荷情報テーブル152におけるスロット毎のレコードは、例えば、スロットに含まれるオブジェクトへのアクセスが行われる度に更新される。
また、サーバ負荷値およびスロット負荷値の種別としては、上記のネットワーク転送量の代わりにネットワーク転送率が用いられてもよい。
図7は、プロセッサ性能テーブルの例を示す図である。プロセッサ性能テーブル153は、各ストレージサーバ100のプロセッサの性能を示す情報を格納したテーブルである。プロセッサ性能テーブル153は、負荷情報記憶部150に記憶されている。
プロセッサ性能テーブル153は、サーバおよびプロセッサ性能の項目を有する。サーバの項目には、ストレージサーバ100を識別するための識別子が設定される。プロセッサ性能の項目には、ストレージサーバ100のプロセッサの性能を示す情報が設定される。オブジェクトストレージシステム7において、プロセッサの性能は、プロセッサ101の所定の単位時間あたりのクロック数とする。
なお、プロセッサ性能テーブル153の情報は、例えば、管理者の操作入力によってあらかじめ各ストレージサーバ100に格納される。
図8は、スロットの処理時間の計測例を示す図である。ストレージサーバ100は、複数のスロット11へのアクセス処理を並行して実行する場合がある。この場合の、スロット11の処理時間の計測方法には、以下の方法が挙げられる。
(1)並行してアクセス処理していない場合と同様に扱う。
(2)並行してアクセス処理した時間を、アクセス処理されたスロット11の数で除算する。
図8では、識別子が“#1”であるスロット11(以下、“スロット#1”と記載する)へのアクセス処理と、識別子が“#2”であるスロット11(以下、“スロット#2”と記載する)へのアクセス処理とが並列に実行されたものとする。図8の期間51は、スロット#1に含まれるオブジェクトについてアクセス要求を受けてからアクセス完了の応答をするまでの期間を示す。同様に、期間52は、スロット#2に含まれるオブジェクトについてアクセス要求を受けてからアクセス完了の応答をするまでの期間を示す。
例えば、スロット#2へのアクセス処理が1秒間実行されたとする。また、スロット#1へのアクセス処理が2秒間実行されたとする。そのうち、最初の1秒間は、スロット#1およびスロット#2へのアクセス処理が並行して実行されている。
この場合、上記(1)の計測方法では、スロット#1の処理時間は、2秒となり、スロット#2の処理時間は1秒となる。一方、上記(2)の計測方法では、スロット#1の処理時間は、“1[秒]/2+1[秒]=1.5[秒]”となり、スロット#2の処理時間は、“1[秒]/2=0.5[秒]”となる。
このように、スロット11の処理時間は、計測方法により計測される値が異なる。上記(2)の計測方法によれば、スロット11毎にプロセッサ101等のリソースに与えた影響の大きさを、高精度に換算することが可能になる。なお、オブジェクトストレージシステム7では、どちらの計測方法を用いてもよい。
図9は、スロット配置テーブルの例を示す図である。スロット配置テーブル211は、各スロット11の配置に関する情報を格納したテーブルである。スロット配置テーブル211は、スロット配置情報記憶部210に記憶されている。スロット配置テーブル211は、各アプリケーションサーバ200に共有されている。
スロット配置テーブル211は、スロット、配置サーバおよび状態の項目を有する。
スロットの項目には、オブジェクトストレージシステム7が管理するスロット11を識別するための識別子が設定される。
配置サーバの項目には、スロット11が配置されているディスク10に対応するストレージサーバ100を識別するための識別子が設定される。アプリケーションサーバ200のアクセス制御部220は、配置サーバの項目に設定された情報から、アクセスの要求先のストレージサーバ100を判別することができる。
状態の項目には、スロット11の状態を示す情報が設定される。例えば、スロット11が配置制御部140により移動処理中の場合、状態の項目には“移動中”が設定される。また、スロット11が配置制御部140により移動処理中でない場合、状態の項目には“通常”が設定される。
状態の項目は、アプリケーションサーバ200がスロット11へのアクセスを要求する際に、そのスロット11がアクセス可能かを判定するために用いられる。具体的には、アプリケーションサーバ200は、スロット11へのアクセス前にスロットの状態を判定する。スロット11の状態が“移動中”の場合、例えば、スロットの状態が“通常”になるまでそのスロット11へのアクセス要求を遅延させる。同様に、スロット11の状態が“通常”の場合、スロット11へのアクセス要求を実施する。
なお、アプリケーションサーバ200のアクセス制御部220は、オブジェクトへのアクセスを要求する際、そのオブジェクトに関する情報(例えば、オブジェクト名、オブジェクトのパス情報、オブジェクトのデータ等)から、そのオブジェクトがどのスロットに含まれるかを一意に特定することができる。オブジェクトとスロットとは、例えば、次のように対応付けられる。
一例として、コンシステントハッシュ法を用いてオブジェクトが分散配置される場合には、オブジェクトに関する情報のハッシュ値に基づいて、オブジェクトがスロットに分配される。例えば、ハッシュ値の大きさを閾値を用いて複数の範囲に区切り、ハッシュ値が同じ範囲に属するオブジェクトを同じスロットに対応付ける。
また、別の例としては、オブジェクトに関する情報の文字コードの大きさを閾値を用いて複数の範囲に区切り、文字コードの値が同じ範囲に属するオブジェクトを同じスロットに対応付けてもよい。
さらに、別の例としては、1つのオブジェクトを1つのスロットに対応付けてもよい。この場合は、オブジェクト単位でデータの再配置を行うことが可能となる。
次に、スロット11の再配置について、図10〜11のフローチャートを用いて説明する。
図10は、スロットの再配置の要否の判定処理の例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。なお、配置制御部140が判定する各負荷値の種別の閾値については、プロセッサ使用率に対応する閾値を閾値Aとする。同様に、ディスクビジー率に対応する閾値を閾値Bとし、ネットワーク転送量に対応する閾値を閾値Cとし、キャッシュ使用量に対応する閾値を閾値Dとする。
(ステップS11) オブジェクト入出力部120は、アプリケーションサーバ200からアクセス要求を受信すると、アプリケーションサーバ200から指定されたオブジェクトにアクセスする。この際、キャッシュメモリ110を用いることで、オブジェクトへのアクセスを高速化できる。そして、オブジェクト入出力部120は、アクセス結果をアプリケーションサーバ200に応答する。読み出しが要求された場合には、読み出されたオブジェクトがアプリケーションサーバ200に送信される。
(ステップS12)負荷計測部130は、自己のサーバ負荷値、および、ステップS11でアクセスが要求されたオブジェクトが含まれるスロット11についてのスロット負荷値を計測する。サーバ負荷値には、プロセッサ使用率、ディスクビジー率、ネットワーク転送量およびキャッシュ使用量が含まれる。また、スロット負荷値には、スロット11の処理時間、スロット11のネットワーク転送量およびスロット11のキャッシュ使用量が含まれる。
負荷計測部130は、計測されたサーバ負荷値でサーバ負荷情報テーブル151を更新する。具体的には、負荷計測部130は、計測されたストレージサーバ100のプロセッサ使用率で、サーバ負荷情報テーブル151におけるプロセッサ使用率の項目を更新する。同様に、負荷計測部130は、計測されたストレージサーバ100のディスクビジー率で、サーバ負荷情報テーブル151におけるディスクビジー率の項目を更新する。同様に、負荷計測部130は、計測されたストレージサーバ100のネットワーク転送量で、サーバ負荷情報テーブル151におけるネットワーク転送量の項目を更新する。同様に、負荷計測部130は、計測されたストレージサーバ100のキャッシュ使用量で、サーバ負荷情報テーブル151におけるディスク使用量の項目を更新する。
また、負荷計測部130は、計測されたスロット負荷値でスロット負荷情報テーブル152を更新する。具体的には、まず、負荷計測部130は、ステップS11でアクセスが要求されたオブジェクトが含まれるスロット11の識別子が一致するレコードを検索する。次に、負荷計測部130は、計測されたスロット11の処理時間で、検索されたレコードの処理時間の項目を更新する。同様に、負荷計測部130は、計測されたスロット11のネットワーク転送量で、検索されたレコードのネットワーク転送量の項目を更新する。同様に、負荷計測部130は、計測されたスロット11のキャッシュ使用量で、検索されたレコードのキャッシュ使用量の項目を更新する。
(ステップS13)配置制御部140は、サーバ負荷情報テーブル151におけるプロセッサ使用率が閾値A以上か判定する。プロセッサ使用率が閾値A以上である場合、処理をステップS15へ進める。プロセッサ使用率が閾値A未満である場合、処理をステップS14へ進める。
(ステップS14)配置制御部140は、サーバ負荷情報テーブル151におけるディスクビジー率が閾値B以上か判定する。ディスクビジー率が閾値B以上である場合、処理をステップS15へ進める。ディスクビジー率が閾値B未満である場合、処理をステップS16へ進める。
(ステップS15)配置制御部140は、スロット負荷情報テーブル152から処理時間が最大であるスロット11を抽出する。
(ステップS16)配置制御部140は、サーバ負荷情報テーブル151におけるネットワーク転送量が閾値C以上か判定する。ネットワーク転送量が閾値C以上である場合、処理をステップS17へ進める。ネットワーク転送量が閾値C未満である場合、処理をステップS18へ進める。
(ステップS17)配置制御部140は、スロット負荷情報テーブル152からネットワーク転送量が最大であるスロット11を抽出する。
(ステップS18)配置制御部140は、サーバ負荷情報テーブル151におけるキャッシュ使用量が閾値D以上か判定する。キャッシュ使用量が閾値D以上である場合、処理をステップS19へ進める。キャッシュ使用量が閾値D未満である場合、処理をステップS11へ進める。
(ステップS19)配置制御部140は、スロット負荷情報テーブル152からキャッシュ使用量が最大であるスロット11を抽出する。
(ステップS20)配置制御部140は、抽出されたスロット11を他のストレージサーバ100に接続されたディスク10へ再配置する。詳細については、図11で説明する。その後、処理をステップS11へ進める。
ここで、ストレージサーバ100においては、ストレージサーバ100の負荷を大幅に低減し得るスロット11を確実に判別することが難しいという問題があった。その理由は、ストレージサーバ100に対応するディスク100に記憶されたスロット11のうちどのスロットが、ストレージサーバ100の負荷に最も大きな影響を与えているかを正確に判断することが難しいという点にある。
例えば、他のストレージノードに移動するスロット11を判別する方法として、アクセス頻度が最も高いスロット11を選択する方法が考えられる。しかし、例えば、ストレージサーバ100のプロセッサ使用率またはディスクビジー率が所定の閾値を超えた場合に、アクセス頻度が最大であるスロットを他のストレージノードに移動させたとしても、プロセッサ使用率またはディスクビジー率が大幅に低下するとは限らない。
例えば、アクセス頻度が高いスロット11に含まれるオブジェクトはキャッシュメモリ110に記録されている可能性が高いため、このようなスロット11へのアクセスの際にはディスク10へのアクセスが行われない可能性も高くなる。このことから、アクセス頻度が最大であるスロット11を他のストレージノードに移動させたとしても、移動元のストレージサーバ100のディスクビジー率は、大きく低下しない可能性がある。
また、アクセス頻度が同じオブジェクトでも、各オブジェクトのサイズが異なれば、ストレージサーバ100のプロセッサ使用率に与える影響も異なる。このため、アクセス頻度が最大であるスロット11を他のストレージノードに移動させたとしても、そのスロット11において多数回アクセスされたオブジェクトのサイズによっては、移動元のストレージサーバ100のプロセッサ使用率が大きく低下しない可能性もある。
このような問題の原因は、アクセス頻度というスロット11毎の負荷のパラメータ(スロット負荷値)と、このパラメータと組み合わせて使用されたサーバ負荷値、すなわちプロセッサ使用率およびディスクビジー率との関連性が低いことにある。これに対し、上記の図10の処理によれば、互いに関連性の高いサーバ負荷値とスロット負荷値とを対応付けて使用することで、上記の問題を解消することができる。
関連性の高いサーバ負荷値とスロット負荷値とを対応付ける方法としては、例えば、互いに同じ種別の負荷値を対応付ける方法がある。図10の例では、サーバ負荷値の種別のうちネットワーク転送量と、スロット負荷値の種別のうちネットワーク転送量とが対応付けられている。また、サーバ負荷値の種別のうちキャッシュ使用量と、スロット負荷値の種別のうちキャッシュ使用量とが対応付けられている。
ストレージサーバ100のネットワーク転送量が閾値Cを超えたとき、ネットワーク転送量が最大であるスロット11を他のストレージノードに移動させることで、ストレージサーバ100のネットワーク転送量が最大限低下する可能性が高くなる。同様に、ストレージサーバ100のキャッシュ使用量が閾値Dを超えたとき、キャッシュ使用量が最大であるスロット11を他のストレージノードに移動させることで、ストレージサーバ100のキャッシュ使用量が最大限低下する可能性が高くなる。したがって、ストレージサーバ100の負荷軽減のために移動させるデータを適切に選択できるようになる。
なお、前述したアクセス頻度に関しても、ストレージサーバ100全体についてのアクセス頻度が所定の閾値を超えたとき、アクセス頻度が最大であるスロット11が他のストレージノードに移動されることで、ストレージサーバ100全体についてのアクセス頻度が大きく低下する可能性が高まる。
一方、サーバ負荷値の種別のうち、プロセッサ使用率およびディスクビジー率については、スロット負荷値の中に同じ種別のものが存在しない。多くのOSには、アクセス先のスロット11毎にプロセッサ使用率やディスクビジー率を計測する機能が実装されていない。そのため、スロット11毎のプロセッサ使用率やディスクビジー率を計測するためには、ストレージサーバ100に機能を追加することになり、開発や製造のためのコストが増大する。
これに対し、図10の処理では、スロット負荷値の中に同じ種別のものが存在しないプロセッサ使用率およびディスクビジー率には、スロット11毎の処理時間が対応付けられている。スロット11の処理時間を計測する機能は、多くのOSに実装されている。例えば、OSが“LINUX”(登録商標)である場合は、“time”コマンドにより処理時間の計測が可能である。また、アプリケーションプログラムの実行により処理時間を計測することも容易である。
さらに、前述のように、処理時間とは、スロット11に含まれるオブジェクトへのアクセス要求を受けた時刻から、アクセス処理が完了したことを応答した時刻までの時間である。アクセス要求から応答までにこのような時間を要する要因には、多くの要因が複合的に含まれている。例えば、ディスク10との間のデータ入出力やキャッシュ制御等のためのプロセッサでの処理、アクセス対象のオブジェクトのサイズ、ディスク10がHDDであればシーク処理、といった要因が考えられる。
処理時間は、このような多くの要因によって消費される時間の加算値であることから、どの種別のサーバ負荷値に対しても一定以上の関連性があるものと言える。このため、スロット負荷値の中に同じ種別のものが存在しないプロセッサ使用率およびディスクビジー率に、スロット負荷値として処理時間を対応付けることにより、プロセッサ使用率およびディスクビジー率を大きく低下させるようなスロット11が選択される可能性が高くなる。したがって、ストレージサーバ100の負荷軽減のために移動させるデータを適切に選択できるようになる。
図11は、スロットを再配置する処理の例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(ステップS21)配置制御部140は、閾値以上となったサーバ負荷値と同じ種別のサーバ負荷値の計測値を、他の各ストレージサーバ100から取得する。例えば、配置制御部140は、ステップS13においてプロセッサ使用率が閾値A以上と判定した場合、他の各ストレージサーバ100からプロセッサ使用率の計測値を取得する。
(ステップS22)配置制御部140は、ステップS15の処理により処理時間が最大であるスロット11を抽出したか判定する。ステップS15の処理によりスロット11を抽出した場合、処理をステップS23へ進める。ステップS15以外の処理によりスロット11を抽出した場合、処理をステップS26へ進める。
(ステップS23)配置制御部140は、次のように、抽出されたスロット11へのアクセス処理の際にストレージサーバ100にかかる負荷値αを、抽出されたスロット11の処理時間に基づき算出する。この場合の負荷値αの種別は、閾値以上であるサーバ負荷値の種別となる。
まず、配置制御部140は、ストレージサーバ100が管理している各スロット11の処理時間の合計に対する、ステップS15で抽出されたスロット11の処理時間の割合を算出する。次に、配置制御部140は、ステップS13またはS14で閾値以上と判定されたサーバ負荷値に、算出した処理時間の割合を乗じた値を負荷値αとして算出する。
(ステップS24)配置制御部140は、他のすべてのストレージサーバ100のプロセッサ性能毎に、自己のプロセッサ性能に対する比率βを算出する。各ストレージサーバ100のプロセッサ性能は、プロセッサ性能テーブル153から取得される。
(ステップS25)配置制御部140は、他のストレージサーバ100のそれぞれについて、負荷値αに比率βを乗じた値に、ステップS21で取得したサーバ負荷値を加算した値を、スロット再配置後の各サーバ負荷値の推定値として算出する。そして、配置制御部140は、算出された再配置後のサーバ負荷値が最小となるストレージサーバ100を選択し、移動先のストレージサーバ100と特定する。
ステップS23〜S25で説明したように、配置制御部140は、移動先のストレージサーバ100を選択する際、各ストレージサーバ100のプロセッサ性能を考慮し、スロット11を移動させたときのサーバ負荷値が最小となるような移動先のストレージサーバ100を特定する。詳細は、図12で説明する。
(ステップS26)配置制御部140は、他の各ストレージサーバ100から、ステップS21で取得したサーバ負荷値が最小であるストレージサーバ100を選択し、移動先のストレージサーバ100と特定する。
(ステップS27)配置制御部140は、すべてのアプリケーションサーバ200のスロット配置テーブル211において、移動させるスロット11の状態を更新する。具体的には、まず、配置制御部140は、移動させるスロット11の識別子が一致するレコードをスロット配置テーブル211から検索する。次に、配置制御部140は、検索したレコードにおける状態の項目を“移動中”に更新する。これにより、移動中のスロット11に含まれるオブジェクトに対する各アプリケーションサーバ200からのアクセスを抑止できる。
(ステップS28)配置制御部140は、移動先のストレージサーバ100に、抽出したスロット11を移動するようオブジェクト入出力部120に要求する。オブジェクト入出力部120は、ステップS25またはステップS26で特定したストレージサーバ100を介して、そのストレージサーバ100に対応するディスク10へ、抽出したスロット11を移動させる。
(ステップS29)配置制御部140は、すべてのアプリケーションサーバ200のスロット配置テーブル211において、移動させるスロット11の配置先のストレージサーバ100および状態を更新する。具体的には、まず、配置制御部140は、移動させるスロット11の識別子が一致するレコードをスロット配置テーブル211から検索する。次に、配置制御部140は、検索したレコードにおける配置サーバの項目を、移動先のストレージサーバ100の識別子に更新する。そして、配置制御部140は、検索したレコードにおける状態の項目を“通常”に更新する。
図12は、配置先のストレージサーバを特定する例を示す図である。図12では、スロット11の移動先のストレージサーバ100を特定する処理の例を説明する。以下、識別子が#Aであるストレージサーバ100を“ストレージサーバ#A”と記載する。また、図12では、他のストレージサーバ100として、ストレージサーバ#B,#Cが存在する。また、図12では、ストレージサーバ#Aが管理しているスロット11には、スロット#1,#2,#3が含まれる。
表154は、ストレージサーバ#A,#B,#Cのプロセッサ使用率およびプロセッサ性能を示す表である。また、スロット負荷情報テーブル152bは、サーバ#Aが管理しているスロット#1,#2,#3に関する情報を示す。スロット負荷情報テーブル152bにおいて、ネットワーク転送量およびキャッシュ使用量の項目の記載を省略する。また、閾値Aは、“80%”とする。
ここで、ストレージサーバ#Aのプロセッサ使用率が閾値A以上である“90%”となったとする。この場合、まず、ストレージサーバ#Aの配置制御部140は、移動させるスロット11を判別するために使用するスロット負荷値として、プロセッサ使用率に対応する種別である“処理時間”を選択する。
次に、配置制御部140は、処理時間が最大であるスロット11を、再配置するスロット11としてスロット負荷情報テーブル152bから選択する。スロット負荷情報テーブル152bに示すように、ストレージサーバ#Aの管理している各スロット11の処理時間は、スロット#1,#2,#3の順に“30秒”、“20秒”、“10秒”である。そのため、スロット#1が再配置するスロット11として選択される。
次に、配置制御部140は、処理時間の値を基に、スロット#1へのアクセス処理におけるストレージサーバ#Aのプロセッサ使用率を推定する。具体的には、配置制御部140は、図11のステップS23に示した手順で、スロット#1へのアクセス処理におけるプロセッサ使用率を算出する。その結果、スロット#1へのアクセス処理におけるプロセッサ使用率は、“90[%]×(30[秒]/(30[秒]+20[秒]+10[秒]))=45[%]”となる。
次に、配置制御部140は、ストレージサーバ#B,#Cそれぞれのプロセッサ性能に対するストレージサーバ#Aのプロセッサ性能の比率を算出する。表154に示すように、各ストレージサーバ100のプロセッサ性能は、ストレージサーバ#A,#B,#Cの順に“4GHz”、“4GHz”、“1GHz”である。そのため、ストレージサーバ#Bに対するストレージサーバ#Aのプロセッサ性能比率は“4[GHz]/[4GHz]=1”となり、ストレージサーバ#Cに対するストレージサーバ#Aのプロセッサ性能比率は“4[GHz]/1[GHz]=4”となる。
そして、算出したプロセッサ使用率およびプロセッサ性能比率と、移動先候補のストレージサーバ#B,#Cの各プロセッサ使用率の計測値とに基づいて、図11のステップS25のように、再配置後のストレージサーバ#B,#Cのプロセッサ使用率の推定値を算出する。表154に示すように、ストレージサーバ#Bのプロセッサ使用率の計測値は“30%”であり、ストレージサーバ#Cのプロセッサ使用率の計測値は“20%”である。そのため、再配置後のストレージサーバ#Bのプロセッサ使用率は“30[%]+45[%]×1=75[%]”となり、再配置後のストレージサーバ#Cのプロセッサ使用率は“20[%]+45[%]×4=200[%]”となる。したがって、移動先のストレージサーバ100として、ストレージサーバ#Bが特定される。
図12のように、配置制御部140は、移動先のストレージサーバ100を特定する際、移動先のストレージサーバ100のプロセッサ性能を考慮し、スロット11の移動後における移動先のストレージサーバ100のサーバ負荷値が最小となるようにする。これにより、オブジェクトストレージシステム7は、スロット11の再配置後の各サーバ負荷値を均等化することができる。
以上説明した第2の実施の形態のオブジェクトストレージシステム7によれば、配置制御部140は、サーバ負荷情報テーブルに格納されるサーバ負荷値のいずれかが閾値以上となった場合、閾値以上となったサーバ負荷値に対応する種別のスロット負荷値が最大であるスロット11を選択し、他のストレージサーバ100に再配置する。
この処理において、スロット負荷値のうち、閾値以上となったサーバ負荷値と関連性が高い種別のスロット負荷値に基づいて、移動させるスロット11が選択される。これにより、閾値以上となったサーバ負荷値が大幅に低減する可能性が高くなり、移動させるスロット11を適切に選択できるようになる。また、ストレージサーバ100間の負荷分散が適正化されるまでに、スロット11を移動させる回数が減少する。このため、移動のためにアプリケーションサーバ200からのアクセスが不能になるスロット11の個数が減少し、また、アクセス不能な時間が短縮される。
なお、前述のように、第1の実施の形態の情報処理は、ストレージ制御装置1,1aにプログラムを実行させることで実現でき、第2の実施の形態の情報処理は、ストレージサーバ100やアプリケーションサーバ200にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体43)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置(例えば、HDD103)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP(Digital Signal Processor)、ASIC、PLD(Programmable Logic Device)などの電子回路で実現することも可能である。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 第1の記憶装置に対するアクセスを制御するストレージ制御装置において、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第1の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する計測部と、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第1の記憶装置から、他のストレージ制御装置によってアクセスが制御される第2の記憶装置へ移動させる移動制御部と、
を有することを特徴とするストレージ制御装置。
(付記2) 前記移動制御部は、前記第2の記憶装置を含む複数の記憶装置のそれぞれに対するアクセスを制御する複数の他のストレージ制御装置から、閾値を超えた処理指標値と同じ種類の処理指標値が最小であるストレージ制御装置を、前記第2の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定することを特徴とする付記1記載のストレージ制御装置。
(付記3) 前記移動制御部は、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値のうち閾値を超えた処理指標値と同じ種類のアクセス指標値が最大であるデータを、前記第1の記憶装置から前記第2の記憶装置へ移動させることを特徴とする付記1または2記載のストレージ制御装置。
(付記4) 前記複数種類のアクセス指標値の1つとして、前記第1の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれることを特徴とする付記1または2記載のストレージ制御装置。
(付記5) 前記複数種類のアクセス指標値の他の1つとして、前記第1の記憶装置に記憶された前記複数のデータそれぞれに対する、直近の単位時間におけるアクセス時に前記ストレージ制御装置が送受信するデータのサイズの合計を示すネットワーク転送量、または、前記ストレージ制御装置が備えるキャッシュメモリの容量のうち、前記複数のデータそれぞれに対するアクセス用に使用されている使用量を示すキャッシュ使用量が含まれることを特徴とする付記4記載のストレージ制御装置。
(付記6) 前記移動制御部は、前記複数種類の処理指標値のうち、前記処理時間とは異なる種類の処理指標値が所定の閾値を超えたとき、前記処理時間が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させることを特徴とする付記4または5記載のストレージ制御装置。
(付記7) 前記処理時間とは異なる種類の処理指標値として、直近の単位時間のうち、前記ストレージ制御装置が備えるプロセッサが処理を実行している時間の割合を示すプロセッサ使用率、または、直近の単位時間のうち、前記ストレージ制御装置から前記第1の記憶装置へのアクセス処理を実行している時間の割合を示す値が含まれることを特徴とする付記6記載のストレージ制御装置。
(付記8) 前記移動制御部は、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がある場合には、当該同じ種類のアクセス指標値が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がない場合には、前記処理時間が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させることを特徴とする付記4または5記載のストレージ制御装置。
(付記9) 前記複数種類のアクセス指標値の1つとして、前記第1の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれ、
前記移動制御部は、閾値を超えた処理指標値に対応するアクセス指標値として前記処理時間を選択した場合、前記処理時間が最大であるデータを特定し、前記特定したデータについて計測された前記処理時間、および、前記ストレージ制御装置が備えるプロセッサと前記複数の他のストレージ制御装置それぞれが備えるプロセッサとの性能比に基づいて、前記特定したデータを対応する記憶装置に移動させた後の前記複数の他のストレージ制御装置それぞれについての同じ種類のアクセス指標値の推定値を算出し、前記推定値が最小となるストレージ制御装置を前記第2の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定する、
ことを特徴とする付記2記載のストレージ制御装置。
(付記10) 第1の記憶装置に対するアクセスを制御するストレージ制御装置が、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第1の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測し、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第1の記憶装置から、他のストレージ制御装置によってアクセスが制御される第2の記憶装置へ移動させる、
ことを特徴とするストレージ制御方法。
(付記11) 前記第2の記憶装置へのデータ移動では、前記第2の記憶装置を含む複数の記憶装置のそれぞれに対するアクセスを制御する複数の他のストレージ制御装置から、閾値を超えた処理指標値と同じ種類の処理指標値が最小であるストレージ制御装置を、前記第2の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定することを特徴とする付記10記載のストレージ制御方法。
(付記12) 前記第2の記憶装置へのデータ移動では、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値のうち閾値を超えた処理指標値と同じ種類のアクセス指標値が最大であるデータを、前記第1の記憶装置から前記第2の記憶装置へ移動させることを特徴とする付記10または11記載のストレージ制御方法。
(付記13) 前記複数種類のアクセス指標値の1つとして、前記第1の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれることを特徴とする付記10または11記載のストレージ制御方法。
(付記14) 前記第2の記憶装置へのデータ移動では、前記複数種類の処理指標値のうち、前記処理時間とは異なる種類の処理指標値が所定の閾値を超えたとき、前記処理時間が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させることを特徴とする付記13記載のストレージ制御方法。
(付記15) 前記第2の記憶装置へのデータ移動では、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がある場合には、当該同じ種類のアクセス指標値が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がない場合には、前記処理時間が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させることを特徴とする付記13記載のストレージ制御方法。
(付記16) 前記複数種類のアクセス指標値の1つとして、前記第1の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれ、
前記第2の記憶装置へのデータ移動では、閾値を超えた処理指標値に対応するアクセス指標値として前記処理時間を選択した場合、前記処理時間が最大であるデータを特定し、前記特定したデータについて計測された前記処理時間、および、前記ストレージ制御装置が備えるプロセッサと前記複数の他のストレージ制御装置それぞれが備えるプロセッサとの性能比に基づいて、前記特定したデータを対応する記憶装置に移動させた後の前記複数の他のストレージ制御装置それぞれについての同じ種類のアクセス指標値の推定値を算出し、前記推定値が最小となるストレージ制御装置を前記第2の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定する、
ことを特徴とする付記11記載のストレージ制御方法。
(付記17) 第1の記憶装置に対するアクセスを制御するコンピュータに、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値の計測値と、前記第1の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値の計測値とを取得し、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第1の記憶装置から、他のストレージ制御装置によってアクセスが制御される第2の記憶装置へ移動させる、
処理を実行させることを特徴とするストレージ制御プログラム。
1,1a ストレージ制御装置
2,2a 記憶装置
3 計測部
4 移動制御部
5a,5b 処理指標値
6a,6b アクセス指標値

Claims (6)

  1. 第1の記憶装置に対するアクセスを制御するストレージ制御装置において、
    前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第1の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する計測部と、
    前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類の第1のアクセス指標値がある場合、前記第1のアクセス指標値が最大であるデータを、前記第1の記憶装置から、他のストレージ制御装置によってアクセスが制御される第2の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に前記第1のアクセス指標値がない場合には、前記複数種類のアクセス指標値のうちあらかじめ決められた第2のアクセス指標値が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させる移動制御部と、
    を有することを特徴とするストレージ制御装置。
  2. 前記第2のアクセス指標値は、前記第1の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間を示すことを特徴とする請求項1記載のストレージ制御装置。
  3. 前記複数種類のアクセス指標値の1つとして、前記第1の記憶装置に記憶された前記複数のデータそれぞれに対する、直近の単位時間におけるアクセス時に前記ストレージ制御装置が送受信するデータのサイズの合計を示すネットワーク転送量、または、前記ストレージ制御装置が備えるキャッシュメモリの容量のうち、前記複数のデータそれぞれに対するアクセス用に使用されている使用量を示すキャッシュ使用量が含まれることを特徴とする請求項記載のストレージ制御装置。
  4. 前記複数種類の処理指標値として、直近の単位時間のうち、前記ストレージ制御装置が備えるプロセッサが処理を実行している時間の割合を示すプロセッサ使用率、または、直近の単位時間のうち、前記ストレージ制御装置から前記第1の記憶装置へのアクセス処理を実行している時間の割合を示す割合値が含まれ
    前記移動制御部は、前記プロセッサ使用率または前記割合値があらかじめ決められた閾値を超えた場合、前記処理時間が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させることを特徴とする請求項2または3記載のストレージ制御装置。
  5. 第1の記憶装置に対するアクセスを制御するストレージ制御装置が、
    前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第1の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測し、
    前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類の第1のアクセス指標値がある場合、前記第1のアクセス指標値が最大であるデータを、前記第1の記憶装置から、他のストレージ制御装置によってアクセスが制御される第2の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に前記第1のアクセス指標値がない場合には、前記複数種類のアクセス指標値のうちあらかじめ決められた第2のアクセス指標値が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させる、
    ことを特徴とするストレージ制御方法。
  6. 第1の記憶装置に対するアクセスを制御するコンピュータに、
    前記コンピュータの処理負荷状態をそれぞれ示す複数種類の処理指標値の計測値と、前記第1の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値の計測値とを取得し、
    前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類の第1のアクセス指標値がある場合、前記第1のアクセス指標値が最大であるデータを、前記第1の記憶装置から、他のコンピュータによってアクセスが制御される第2の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に前記第1のアクセス指標値がない場合には、前記複数種類のアクセス指標値のうちあらかじめ決められた第2のアクセス指標値が最大であるデータを前記第1の記憶装置から前記第2の記憶装置へ移動させる、
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2013110640A 2013-05-27 2013-05-27 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム Expired - Fee Related JP6209863B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013110640A JP6209863B2 (ja) 2013-05-27 2013-05-27 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US14/256,541 US9563651B2 (en) 2013-05-27 2014-04-18 Storage control device and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013110640A JP6209863B2 (ja) 2013-05-27 2013-05-27 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2014229235A JP2014229235A (ja) 2014-12-08
JP6209863B2 true JP6209863B2 (ja) 2017-10-11

Family

ID=51936097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013110640A Expired - Fee Related JP6209863B2 (ja) 2013-05-27 2013-05-27 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US9563651B2 (ja)
JP (1) JP6209863B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2938033A1 (en) * 2014-03-19 2015-09-24 Nec Corporation Reception packet distribution method, queue selector, packet processing device, and recording medium
US9880936B2 (en) * 2014-10-21 2018-01-30 Sybase, Inc. Distributed cache framework
CN106713377B (zh) * 2015-07-29 2019-09-13 腾讯科技(深圳)有限公司 分布式数据库负载调平的方法和装置
CN107168643B (zh) * 2017-03-31 2020-04-03 北京奇艺世纪科技有限公司 一种数据存储方法及装置
JP7252448B2 (ja) 2019-05-13 2023-04-05 富士通株式会社 テープ装置、制御装置および読み出し制御プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1125059A (ja) 1997-07-04 1999-01-29 Nippon Telegr & Teleph Corp <Ntt> ネットワークライブラリ運用方法及びシステム及びネットワークライブラリ運用プログラムを格納した記憶媒体
JP2000207370A (ja) * 1999-01-20 2000-07-28 Matsushita Electric Ind Co Ltd 分散ファイル管理装置及び分散ファイル管理システム
JP3427763B2 (ja) 1999-01-26 2003-07-22 日本電気株式会社 ディスクアレイ装置
JP2002182859A (ja) 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
US7099879B2 (en) * 2001-12-21 2006-08-29 Hewlett-Packard Development Company, L.P. Real-time monitoring of service performance through the use of relational database calculation clusters
JP2003296039A (ja) 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法
JP2005115438A (ja) * 2003-10-03 2005-04-28 Mitsubishi Electric Corp データ管理装置
US20060015773A1 (en) * 2004-07-16 2006-01-19 Dell Products L.P. System and method for failure recovery and load balancing in a cluster network
US7523286B2 (en) * 2004-11-19 2009-04-21 Network Appliance, Inc. System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
JP4728717B2 (ja) * 2004-12-03 2011-07-20 国立大学法人東京工業大学 自律ストレージ装置、自律ストレージシステム、分散ストレージシステム、負荷分散プログラム及び負荷分散方法
JP5057656B2 (ja) * 2005-05-24 2012-10-24 株式会社日立製作所 ストレージシステム及びストレージシステムの運用方法
JP4838054B2 (ja) * 2006-06-05 2011-12-14 富士通株式会社 ディスクアレイ装置及びその負荷分散方法
JP5381336B2 (ja) * 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法

Also Published As

Publication number Publication date
US9563651B2 (en) 2017-02-07
US20140351294A1 (en) 2014-11-27
JP2014229235A (ja) 2014-12-08

Similar Documents

Publication Publication Date Title
JP6423468B2 (ja) 記憶階層の動的選択
US10380078B1 (en) Dynamic storage tiering in a virtual environment
US9703500B2 (en) Reducing power consumption by migration of data within a tiered storage system
JP6248560B2 (ja) 管理プログラム、管理方法、および管理装置
US20180032266A1 (en) Managing storage system
JP6277827B2 (ja) 情報処理装置、スケール管理方法およびプログラム
JP6209863B2 (ja) ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
JP6447217B2 (ja) 実行情報通知プログラム、情報処理装置および情報処理システム
US10831371B2 (en) Quota controlled movement of data in a tiered storage system
CN107562383B (zh) 信息处理方法、存储设备及存储介质
JPWO2017141363A1 (ja) データ処理システム及びデータ処理方法
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
JP2012198671A (ja) システム管理装置、システム管理方法及びシステム管理プログラム
US10721181B1 (en) Network locality-based throttling for automated resource migration
JP7200746B2 (ja) 制御装置、及び制御プログラム
US11157322B2 (en) Hyper-converged infrastructure (HCI) ephemeral workload/data provisioning system
US11714753B2 (en) Methods and nodes for handling memory
WO2014010016A1 (ja) プログラム、データ管理方法、および情報処理装置
JP2014157476A (ja) 計測装置及び計測方法
JP2021128482A (ja) 負荷制御装置および負荷制御方法
JP2024131291A (ja) ストレージ管理装置、ストレージ管理方法およびプログラム
US9176854B2 (en) Presenting enclosure cache as local cache in an enclosure attached server
CN118331930A (zh) 分布式计算机系统中的电子数据文件访问管理
JP2020061032A (ja) データベースサーバ管理プログラム、データベースサーバ管理方法、およびデータベースシステム
WO2015145677A1 (ja) 管理計算機及びプラットフォーム改善方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170407

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170828

R150 Certificate of patent or registration of utility model

Ref document number: 6209863

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees