(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162866
(43)【公開日】2024-11-21
(54)【発明の名称】ストレージシステム、及びストレージシステムの制御方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20241114BHJP
G06F 13/10 20060101ALI20241114BHJP
G06F 13/14 20060101ALI20241114BHJP
G06F 11/34 20060101ALI20241114BHJP
H04L 67/1097 20220101ALI20241114BHJP
【FI】
G06F3/06 304N
G06F13/10 330C
G06F13/10 340A
G06F13/14 330B
G06F13/14 330E
G06F11/34 133
H04L67/1097
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023078812
(22)【出願日】2023-05-11
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】今西 涼
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA34
5B042JJ29
5B042MA08
5B042MC29
(57)【要約】
【課題】クラスタ構成を有するストレージについて、その性能を安定化させつつ運用する。
【解決手段】所定のクラスタ構成が設定されているストレージの負荷値を算出し、算出した負荷値が所定値を超えているか否かを判定し、算出した負荷値が所定値を超えている場合には、ストレージに所定のリソースを追加し、リソースを追加した後、リソースを減少させた場合のストレージの負荷の予測値を算出し、算出した予測値が所定値を下回っているか否かを判定し、算出した予測値が所定値を下回っている場合には、ストレージのリソースを減少させる、ストレージシステム20。
【選択図】
図1
【特許請求の範囲】
【請求項1】
所定のクラスタ構成が設定されているストレージの負荷値を算出し、算出した負荷値が所定値を超えているか否かを判定し、前記算出した負荷値が前記所定値を超えている場合には、前記ストレージに所定のリソースを追加する増設処理と、
前記リソースを追加した後、前記リソースを減少させた場合の前記ストレージの負荷の予測値を算出し、算出した予測値が所定値を下回っているか否かを判定し、前記算出した予測値が前記所定値を下回っている場合には、前記ストレージのリソースを減少させる減設処理とを実行する演算装置を備える、ストレージシステム。
【請求項2】
前記演算装置は、
前記増設処理において、所定の処理性能及び所定のクラスタ構成が設定されているストレージの負荷値を算出し、算出した負荷値が所定値を超えているか否かを判定し、前記算出した負荷値が前記所定値を超えている場合には、前記処理性能を上昇させ又は前記ストレージのクラスタを構成するノードを増加させ、
前記減設処理において、前記処理性能を上昇させ又は前記ノードを増加させた後、前記処理性能を低下させ又は前記ノードを減少させた場合の前記予測値を算出し、算出した予測値が所定値を下回るか否かを判定し、前記算出した予測値が前記所定値を下回っている場合には、前記ストレージの処理性能を低下させ又は前記ストレージのノードを減少させる、
請求項1に記載のストレージシステム。
【請求項3】
前記演算装置は、
前記増設処理において、所定の処理性能及び所定のクラスタ構成が設定されているストレージに対する、データ読み込み及びデータ書き込みに係る負荷値をそれぞれ算出し、前記算出したデータ読み込みに係る負荷値が所定値を超えている場合には、前記処理性能を上昇させ、前記算出したデータ書き込みに係る負荷値が所定値を超えている場合には、前記ストレージのクラスタを構成するノードを増加させ、
前記減設処理において、前記処理性能を上昇させ又は前記ノードを増加させた後、前記処理性能を低下させ又は前記ノードを減少させた場合の、データ読み込み及びデータ書き込みに係る予測値を算出し、前記算出したデータ読み込み及びデータ書き込みに係る予測値が所定値を下回っている場合には、前記処理性能を低下させ又は前記ノードを減少させる、
請求項2に記載のストレージシステム。
【請求項4】
前記演算装置は、
前記減設処理において、前記ノードを増加させたストレージのノードを減少させる際に、前記ノードを増加させたストレージに記憶されているデータを、前記ノードを減少させた後のストレージの各ノードに均等に分散させるように記憶させる、
請求項3に記載のストレージシステム。
【請求項5】
前記演算装置は、
前記増設処理において、所定期間における前記ストレージに対するデータアクセスの性能値を算出し、算出した性能値と所定の閾値との差分量の、前記所定期間における蓄積値に基づく値を前記負荷値として算出し、算出した負荷値が前記所定値を超えているか否かを判定する、
請求項1に記載のストレージシステム。
【請求項6】
前記演算装置は、
前記増設処理において、前記算出した性能値と前記所定の閾値との差分量の、前記所定期間における蓄積値を算出し、算出した蓄積値の、性能値が所定値であった期間における当該性能値の蓄積値に対する割合を前記負荷値として算出し、算出した負荷値が前記所定値を超えているか否かを判定する、
請求項5に記載のストレージシステム。
【請求項7】
前記ノードは、互いに通信可能に構成された複数の情報処理装置における情報処理装置として構成され、前記ストレージは、複数の前記ノードによりクラスタが構成されている、請求項2に記載のストレージシステム。
【請求項8】
前記演算装置は、
他の情報処理装置から前記ストレージの容量の変更指示を受信した場合に、前記変更指示が示す容量が所定の容量を超えない場合にのみ、前記ストレージの容量を前記変更指示に従って変更す容量変更処理を実行し、
前記増設処理において、前記ストレージの容量を変更せずに、前記所定のリソースを追加し、
前記減設処理において、前記ストレージの容量を変更せずに、前記所定のリソースを減少させる、
請求項1に記載のストレージシステム。
【請求項9】
前記演算装置は、
前記増設処理における所定値及び前記減設処理における所定値の入力をそれぞれ受け付ける、
請求項1に記載のストレージシステム。
【請求項10】
情報処理装置が、
所定のクラスタ構成が設定されているストレージに対する負荷値を算出し、算出した負荷値が所定の負荷値を超えているか否かを判定し、前記算出した負荷値が前記所定の負荷値を超えている場合には、前記ストレージに所定のリソースを追加する増設処理と、
前記リソースを追加した後、前記リソースを減少させた場合の前記ストレージに対する負荷値を算出し、算出した負荷値が所定の負荷値を下回っているか否かを判定し、前記算出した負荷値が前記所定の負荷値を下回っている場合には、前記ストレージのリソースを減少させる減設処理とを実行する、
ストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステム、及びストレージシステムの制御方法に関する。
【背景技術】
【0002】
クラウド上でクラスタリング構成を備えるストレージ(クラウドストレージ)を構築する技術が開発されている。
【0003】
例えば、特許文献1には、仮想的なストレージシステムを提供するストレージクラスタにおけるボリューム配置を制御する技術として、ストレージクラスタに新規ノード(交換後又は新規追加のストレージノード)が追加される場合、ストレージシステムが、新規ノードのスペックと、新規ノード以外の少なくとも一つの既存ノードのスペックとを比較し、新規ノードのスペックが既存ノードのスペックよりも高い場合、ストレージシステムは、いずれかの既存ノードに第1ボリューム(第1の優先度よりも高い優先度が関連付けられているボリューム)があれば、当該第1ボリュームの移行先を、新規ノードに決定するボリューム配置制御方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、ストレージクラウドのユーザがパブリッククラウド等を利用してストレージクラウドを快適に使用したい場合は、ユーザによるデータの書き込みがあるような状況でも、ユーザの事情に応じてストレージのリソースの増減設、特に一時的な性能を確保するための増減設が行えることが好ましい。しかしながら、そのような増減設を、性能低下を抑えつつ(I/O負荷を軽減できるように)安定的に行うような技術は充分に開発されていないのが現状である。
【0006】
本発明は、このような背景に鑑みてなされたものであり、その目的は、クラスタ構成を有するストレージについて、その性能を安定化させつつ運用することが可能なストレージシステム、及びストレージシステムの制御方法を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するための本発明の一つは、所定のクラスタ構成が設定されているストレージの負荷値を算出し、算出した負荷値が所定値を超えているか否かを判定し、前記算出した負荷値が前記所定値を超えている場合には、前記ストレージに所定のリソースを追加する増設処理と、前記リソースを追加した後、前記リソースを減少させた場合の前記ストレージの負荷の予測値を算出し、算出した予測値が所定値を下回っているか否かを判定し、前記算出した予測値が前記所定値を下回っている場合には、前記ストレージのリソースを減少させる減設処理とを実行する演算装置を備える、ストレージシステムである。
【発明の効果】
【0008】
本発明によれば、クラスタ構成を有するストレージについて、その性能を安定化させつつ運用することができる。
上記した以外の構成及び効果等は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係る情報処理システムの構成の一例を示す図である。
【
図2】サービスポータル基盤が有する主な機能を説明する図である。
【
図5】情報処理システムを構成する各情報処理装置が備えるハードウェア構成の一例を示す図である。
【
図6】情報処理システムで行われるストレージ制御処理の概要を説明する図である。
【
図7】構成情報取得処理の一例を説明するフロー図である。
【
図8】ストレージノード管理テーブの一例を示す図である。
【
図10】IOPS計測結果管理テーブルの一例を示す図である。
【
図11】増減設処理の詳細を説明するフロー図である。
【
図12】増設判定処理の詳細を説明するフロー図である。
【
図13】リソース追加判定処理の詳細を説明するフロー図である。
【
図14】減設判定処理の詳細を説明するフロー図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態を図面を参照しつつ説明する。
【0011】
図1は、本実施形態に係る情報処理システム1の構成の一例を示す図である。情報処理システム1は、各ユーザが使用する1又は複数のユーザ端末10と、後述するストレージプール41に基づき生成されたボリューム42をユーザに提供するストレージシステム20とを含んで構成される。ストレージシステム20とユーザ端末10の間は、例えば、インターネット、LAN(Local Area Network)、WAN、又は専用線等の無線又は有線の通信ネットワーク5によって通信可能に接続される。
【0012】
ストレージシステム20は、所定の事業者によって各ユーザに提供される情報処理システム(いわゆるパブリッククラウド)である。ストレージシステム20は、ユーザ端末10からアクセスされるユーザクラウドシステム30と、ストレージプール41を備えるストレージクラウドシステム40とを含んで構成される。
【0013】
ユーザクラウドシステム30は、各ユーザ(ユーザ端末10)に対応して設けられた、サービスポータル操作用インスタンス31及びホスト32を含んで構成される。
【0014】
サービスポータル操作用インスタンス31は、後述するサービスポータル基盤43に、ボリューム42の容量の変更を指示するボリューム制御指示を送信する。
【0015】
ホスト32は、ユーザ端末10等からの入力に基づき、ボリューム42にアクセスし、データの作成及び記憶等を行うことができる。
【0016】
本実施形態では、サービスポータル操作用インスタンス31及びホスト32は、1又は複数の(物理的な)情報処理装置に基づいて構築された仮想サーバである(すなわち、仮想のCPU33、35及びメモリ34、36を備える)ものとするが、物理的なサーバとして構成されてもよい。
【0017】
次に、ストレージクラウドシステム40は、サービスポータル基盤43、コントローラノード44、ストレージノード群45、及びストレージプール41の各システムを有する。
【0018】
ストレージプール41は、後述するストレージノード群45に基づき構築される仮想的なストレージである。ストレージプール41は、所定のクラスタ構成を有する(冗長性を有する)ストレージとして構成される。ストレージプール41は、ストレージノード群45の複数のストレージノード46が割り当てられることで構築される。例えば、ストレージプール41は、所定数のデータストレージ(データディスク)及び所定数のパリティストレージ(パリティディスク)によるクラスタ構成を有し、各データは、各クラスタに分散して記憶される。
【0019】
ボリューム42は、ストレージプール41に基づき再構成された、1又は複数の記憶領域からなる(いわゆるストレージクラウド)。ユーザ端末10は、ホスト32を介してボリューム42にアクセスすることができる。
【0020】
サービスポータル基盤43は、ボリューム42に関する容量変更処理を実行する。すなわち、サービスポータル基盤43は、サービスポータル操作用インスタンス31から受信したボリューム変更指示に基づき、コントローラノード44に、ボリューム変更指示が示す容量への変更を実行するよう、ボリューム42の容量の変更を指示し、コントローラノード44はこれを実行する。一方、サービスポータル基盤43は、ボリューム変更指示が示す容量が、ホスト32(ユーザ)に予め対応づけられた所定の容量(契約容量)を超える場合には、その指示を拒絶する。なお、契約容量は、例えば、後述するホスト管理テーブル100によって取得可能である。
【0021】
また、サービスポータル基盤43は、コントローラノード44に、ストレージプール41のリソースの変更を指示する。コントローラノード44は、その指示に基づき、ストレージノード群45を制御し、ストレージプール41のリソースの変更を実行する。本実施形態では、リソースの変更は、ストレージプール41に割り当てられているストレージノード46の数の増減(増設及び減設)と、ストレージノード46の後述するCPU47及びメモリ48の性能の上昇及び低下とを含むものとするが、他のリソースの増減を含んでいてもよい。なお、リソースの変更の際、ユーザに提供されるストレージプール41の容量(ボリューム42としてユーザに提供される容量)は変更されない。
【0022】
コントローラノード44は、サービスポータル基盤43から受信した指示に基づき、ストレージノード群45を制御する。
【0023】
本実施形態では、サービスポータル基盤43及びコントローラノード44は、1又は複数の(物理的な)情報処理装置に基づいて構築された仮想サーバである(すなわち、仮想のCPU50、53、メモリ51、54、及び記憶装置53、55を備える)ものとするが、物理的なサーバとして構成されてもよい。
【0024】
ストレージノード群45は、前記のようにパブリッククラウドを実現し、互いに通信可能に接続された複数のストレージノード46により構成される。ストレージノード46は、ユーザが使用するストレージプール41に割り当てるリソースであるストレージである。本実施形態では、ストレージノード46は、1又は複数の(物理的な)情報処理装置に基づいて構築された仮想サーバである(すなわち、仮想のCPU47、メモリ48、及び記憶装置49を備える。)ものとするが、物理的なサーバとして構成されてもよい。
【0025】
次に、サービスポータル基盤43が備える機能について説明する。
図2は、サービスポータル基盤43が有する主な機能を説明する図である。
【0026】
サービスポータル基盤43は、各ホスト32に割り当てられたストレージプール41のクラスタ(以下、ストレージクラスタという)に関する情報を記憶したホスト管理テーブル100と、ストレージノード46の構成を記憶したストレージノード管理テーブ200と、ストレージプール41の各クラスタの負荷の計測結果を蓄積するIOPS計測結果管理テーブル300と、負荷の計測結果に基づきストレージプール41のストレージクラスタの構成を変更するか否かを判定するための閾値のパターン(以下、閾値ルールという)の情報を記憶した閾値管理テーブル400とを記憶する。なお、サービスポータル基盤43は、閾値管理テーブル400が記憶している各閾値ルールのうち使用する閾値ルール(以下、使用ルールという)を予め記憶しているものとする。
【0027】
次に、サービスポータル基盤43は、計測部61、増設判定部62、及び減設判定部63の各機能部を有する。
【0028】
計測部61は、ストレージプール41(所定のクラスタ構成が設定されているストレージノード46)の負荷値を算出する。本実施形態では、負荷値は、1秒間にストレージノード46へのデータアクセス(データの読み込み又は書き込み)が可能な回数(IOPS:Input/Output Per Second)について、その計測値を最大回数(最大性能発揮時の回数)で除算した値(0%~100%までの値)であるものとするが、その他の指標を用いてもよい。
【0029】
具体的には、まず、計測部61は、所定期間におけるストレージノード46のデータアクセスの性能値を算出し、算出した性能値と所定の閾値(以下、増設IO負荷閾値という)との差分量の、上記所定期間における蓄積値を算出する。
【0030】
本実施形態では、計測部61は、データの読み込みに係る性能値に対応する蓄積値(以下、リード超過面積という)と、データの書き込みに係る性能値に対応する蓄積値(以下、ライト超過面積という)とを算出するものとする。
【0031】
そして、計測部61は、上記算出した超過の蓄積値(リード超過面積、ライト超過面積)の、性能値が所定値(本実施形態では、性能値が100%)であった期間におけるその性能値の蓄積値(基準蓄積値)に対する割合を、上記負荷値として算出する。
【0032】
本実施形態では、計測部61は、基準蓄積値に関して、データの読み込みに係る性能値に対応する基準蓄積値(以下、リード全体面積という)と、データの書き込みに係る性能値に対応する基準蓄積値(以下、ライト全体面積という)とをそれぞれ算出するものとする。そして、計測部61は、上記割合(負荷値)に関して、データの読み込みに係る性能値に対応する割合(以下、リード超過割合という)と、データの書き込みに係る性能値に対応する割合(以下、ライト超過割合という)とをそれぞれ算出するものとする。
【0033】
また、計測部61は、後述するように増設判定部62がストレージプール41にリソースを追加した後に、リソースを減少させた場合のストレージプール41(ストレージノード46)の性能値を算出する。本実施形態では、性能値は、1秒間にストレージへのデータアクセス(データの読み込み又は書き込み)が可能な回数(IOPS)であるものとするが、その他の指標を用いてもよい。
【0034】
具体的には、計測部61は、後述するように増設判定部62が処理性能を上昇させ又はノードを増加させた後に、処理性能を低下させ又はノードを減少させた場合の、データ読み込み及びデータ書き込みに係る負荷の予測値を算出する。
【0035】
次に、増設判定部62は、計測部61が算出した負荷値が所定値を超えているか否かを判定し、算出した負荷値が所定値を超えている場合には、ストレージプール41に所定のリソースを追加する。
【0036】
具体的には、増設判定部62は、計測部61が算出したデータ読み込みに係る負荷値(リード超過割合)が所定値(以下、増設超過閾値という)を超えている場合には、ストレージプール41に対応するストレージノード46の処理性能を上昇させ(例えば、CPU47及びメモリ48の処理性能を上昇させ)、算出したデータ書き込みに係る負荷値(ライト超過割合)が所定値(増設超過閾値)を超えている場合には、ストレージプール41のクラスタを構成するようにストレージノード46を増加させる(例えば、新たなストレージノード46をストレージプール41に追加する)ことで新たなクラスタを構成する。
【0037】
次に、減設判定部63は、計測部61が算出した予測値が所定値(以下、減設IO負荷閾値という)を下回っているか否かを判定し、算出した予測値が所定値を下回っている場合には、ストレージプール41(ストレージノード46)のリソースを減少させる。
【0038】
具体的には、減設判定部63は、計測部61が算出したデータ読み込み及びデータ書き込みに係る予測値が所定値を下回っている場合には、処理性能を低下させ(例えば、CPU47及びメモリ48の処理性能を低下させ)又はノードを減少させる(例えば、ストレージノード46をストレージプール41への割り当てから外す)。
【0039】
(ホスト管理テーブル)
次に、
図3は、ホスト管理テーブル100の一例を示す図である。ホスト管理テーブル100は、ホスト32のIDが設定されるホストID101、そのホスト32に対して設定されているストレージクラスタの識別子が設定されるストレージクラスタID102、及び、そのホスト32に割り当てられた容量が設定される契約容量103の各データ項目を有する。ホスト管理テーブル100は、例えば、管理者が設定してもよいし、ストレージクラウドシステム40が自動的に情報を取得してホスト管理テーブル100に設定してもよい。
【0040】
(閾値管理テーブル)
また、
図4は、閾値管理テーブル400の一例を示す図である。閾値管理テーブル400は、閾値ルールのIDが設定される閾値ID401、その閾値ルールにおける増設IO負荷閾値が設定される増設IO負荷402、その閾値ルールにおける増設超過閾値が設定される増設超過閾値403、その閾値ルールにおける減設IO負荷閾値が設定される減設IO負荷閾値404、データアクセスの負荷に関するデータを収集する期間(計測期間)におけるデータ(性能値)の収集時間間隔(データ収集間隔)が設定される収集間隔405、及び、データアクセスの負荷に関するデータ(性能値)を収集する期間が設定される収集期間406の各データ項目を有する。
【0041】
閾値管理テーブル400は、例えば、管理者又はユーザが予め設定する。例えば、サービスポータル基盤43は、所定の画面を表示して管理者又はユーザから、各値の入力を受け付ける。例えば、収集期間は、ある一週間のうち平日の9時から17時までの時間帯とし、データ収集間隔を1分ごととする。また、例えば、減設IO負荷閾値及び増設IO負荷閾値は、40%から100%までの任意の値(例えば、70%)とする。
【0042】
次に、
図5は、情報処理システム1を構成する(物理的な)各情報処理装置が備えるハードウェア構成の一例を示す図である。各情報処理装置は、CPU(Central Processing Unit)等の演算装置91と、RAM(Random Access Memory)、又はROM(Read Only Memory)等のメモリ92と、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)等の外部記憶装置93と、キーボード、マウス、又はタッチパネル等の入力装置94と、ディスプレイ又はタッチパネル等の出力装置95と、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、又はシリアル通信モジュール等で構成される通信装置96とを備える。以上に説明した、情報処理システム1における各情報処理装置(仮想サーバ)の機能部の機能は、演算装置91が、メモリ92又は外部記憶装置93からプログラムを読み出すことにより実現される。また各プログラムは、例えば、可搬性の又は固定された記録媒体に記録して配布することができる。
次に、情報処理システム1で行われる処理について説明する。
【0043】
図6は、情報処理システム1で行われるストレージ制御処理の概要を説明する図である。
【0044】
まず、ストレージクラウドシステム40は、ストレージノード46の構成情報を取得する構成情報取得処理s1を実行する。構成情報取得処理s1は、例えば、サービスポータル基盤43に所定の入力がなされたことを契機に開始される。
【0045】
構成情報取得処理s1の実行後、ストレージクラウドシステム40は、ストレージプール41の各クラスタ(ストレージノード46)の現在の負荷を計測する計測処理s3を実行する。計測処理s3は、例えば、所定のタイミング(例えば、所定の時刻、所定の時間間隔)で繰り返し実行される。
【0046】
ストレージクラウドシステム40は、少なくとも1回の計測処理s3の実行後、ストレージプール41のリソースの変更(例えば、ストレージノード46の一時的な増設又はその後の減設)を行うか否かを判定しその判定結果に応じてリソースの変更を行う増減設処理s5を実行する。増減設処理s5は、計測処理s3を実行後、所定のタイミング(例えば、所定の時刻、所定の時間間隔)で繰り返し実行される。
以下、各処理の詳細を説明する。
【0047】
<構成情報取得処理>
図7は、構成情報取得処理s1の一例を説明するフロー図である。サービスポータル基盤43は、ストレージノード群45の各ストレージノード46から、その構成及びストレージクラスタの情報を取得し(s11)、取得した情報をストレージノード管理テーブ200に記録する(s12)。
【0048】
(ストレージノード管理テーブル)
図8は、ストレージノード管理テーブ200の一例を示す図である。ストレージノード管理テーブ200は、ストレージクラスタのIDが設定されるストレージクラスタID201、そのストレージクラスタを構成するストレージノード46が設定されるストレージノードID202、そのストレージクラスタの構成(例えば、ストレージクラスタを構成するデータディスクの数及びパリティディスクの数)が設定されるクラスタ構成203、及び、そのストレージノード46の容量が設定される容量204の各データ項目を有する。
【0049】
<計測処理>
次に、
図9は、計測処理s3の一例を説明するフロー図である。
【0050】
計測部61は、現在が計測開始日時であるか否かを判定する(s31)。例えば、計測部61は、予め設定されたスケジュールの日時、又は、閾値管理テーブル400の使用ルールに係るレコードの収集期間406の内容に基づき判定する。
【0051】
現在が計測開始日時である場合は(s31:YES)、計測部61は、s32の処理を実行する。現在が計測開始日時でない場合は(s31:NO)、計測処理s3は終了する。
【0052】
s32において計測部61は、各ストレージクラスタ(ストレージノード46)について、計測期間の間、データアクセスを計測して性能値を算出する。
【0053】
例えば、計測部61は、閾値管理テーブル400の使用ルールに係るレコードの収集期間406が示す計測期間の間、そのレコードの収集間隔405が示すデータ収集間隔の各時刻にて、各ストレージノード46に対するデータアクセス(データの読み込み及び書き込み)を行うことで、性能値を算出する。
【0054】
そして、計測部61は、s32で算出した性能値に所定の加工処理(正規化等)を行う(s33)。
【0055】
具体的には、まず、計測部61は、上記データの読み込みについて、計測期間の各時刻での、「データの読み込みの性能値-増設IO負荷閾値」を増設超過差分として算出する。一方、計測部61は、データの読み込みについて、計測期間の各データ収集期間での、「データの読み込みの性能値-減設IO負荷閾値」を減設超過差分として算出する。
【0056】
そして、計測部61は、計測期間における全増設超過差分の合計値を算出する。すなわち、計測部61は、増設超過差分について、各データ収集期間を対象としたリード超過面積を算出する。
【0057】
さらに、計測部61は、増設超過差分が0であった期間における性能値の合計値を算出する。すなわち、計測部61は、負荷が100%であった期間を対象としたリード全体面積を算出する。
【0058】
そして、計測部61は、リード超過面積をリード全体面積で除算することによりリード超過割合(すなわち負荷値)を算出する。
【0059】
一方、計測部61は、データの書き込みについても同様の処理を行う。すなわち、計測部61は、上記データの書き込みについて、計測期間の各時刻での、「データの書き込みの性能値-増設IO負荷閾値」を増設超過差分として算出する。一方、計測部61は、計測期間の各データ収集期間での、「データの書き込みの性能値-減設IO負荷閾値」を減設超過差分として算出する。
【0060】
そして、計測部61は、計測期間における全増設超過差分の合計値を算出する。すなわち、計測部61は、増設超過差分について、各データ収集期間を対象としたライト超過面積を算出する。
【0061】
さらに、計測部61は、増設超過差分が0であった期間における性能値の合計値を算出する。すなわち、計測部61は、負荷が100%であった期間を対象としたライト全体面積を算出する。
【0062】
そして、計測部61は、ライト超過面積をライト全体面積で除算することによりライト超過割合(すなわち負荷値)を算出する。
【0063】
次に、計測部61は、s33で算出した各値によりIOPS計測結果管理テーブル300を更新する(s34)。
【0064】
(IOPS計測結果管理テーブル)
ここで、
図10は、IOPS計測結果管理テーブル300の一例を示す図である。IOPS計測結果管理テーブル300は、ストレージクラスタのIDが設定されるストレージクラスタID301、そのストレージクラスタに関するデータアクセスの負荷の計測を開始した日時(計測開始日時)が設定される計測開始日時302、指定された閾値ルール(使用ルール)が設定される閾値ルール303、上記計測開始日時から開始された計測期間におけるリード超過割合が設定されるリードIO超過割合304、上記計測開始日時から開始された計測期間におけるライト超過割合が設定されるライトIO超過割合305、上記計測開始日時から開始された計測期間において、データの読み出しに係る負荷値が増設超過閾値を連続して超えた時間(リード超過連続時間)が設定されるリードIO連続時間306、上記計測開始日時から開始された計測期間において、データの書き込みに係る負荷値が連続して増設超過閾値を超えた時間(ライト超過連続時間)が設定されるライトIO連続時間307、及び、トータルIO負荷値が設定されるトータルIO負荷308の各データ項目を有する。
【0065】
s34の処理では、例えば、計測部61は、算出したリード超過割合を、IOPS計測結果管理テーブル300のリードIO超過割合304に設定する。また、計測部61は、算出したライト超過割合を、IOPS計測結果管理テーブル300のライトIO超過割合305に設定する。
【0066】
また、計測部61は、計測期間において、データの読み込みについて、増設超過差分(又は減設増加差分)が0を連続して超えていた時間の長さを特定し、特定した長さをリードIO連続時間306に設定する。また、計測部61は、計測期間において、データの書き込みについて、増設超過差分(又は減設増加差分)が0を連続して超えていた時間の長さを特定し、特定した長さをライトIO連続時間307に設定する。また、計測部61は、計測期間におけるデータアクセス(データ読み込み及びデータ書き込み)の性能値の平均値(トータルIO負荷値)をトータルIO負荷308に設定する。
【0067】
なお、上記では、計測部61は、リード全体面積及びリライト全体面積等による正規化を行った値(リード超過割合、ライト超過割合)により負荷値を算出したが、正規化を省略してもよい。また、性能値も正規化せず、IOPSの値そのものを用いてもよい。
【0068】
<増減設処理>
図11は、増減設処理s5の詳細を説明するフロー図である。
【0069】
まず、増設判定部62は、IOPS計測結果管理テーブル300に基づき、ストレージプール41に対してリソースの追加を行うか否かを判定し、リソースの追加を行うか否かを判定した場合にはリソースの追加を実行する増設判定処理s51を実行する。なお、増設判定処理s51は繰り返し実行されてもよい。
【0070】
増設判定部62は、増設判定処理s51でリソースの追加を実行した場合には(s52:YES)、減設判定処理s52を実行し、増設判定処理s51でリソースの追加を実行しなかった場合には(s52:NO)、増設判定部62は、増設判定処理s51を繰り返す。
【0071】
s53において減設判定部63は、IOPS計測結果管理テーブル300に基づき、ストレージプール41に対して、増設判定処理s51で(一時的に)追加したリソースの減少を行うか否かを判定し、リソースの減少を行うか否かを判定した場合にはリソースの減設を実行する減設判定処理s53を実行する。なお、減設判定処理s53は繰り返し実行されてもよい(ただし、増設判定処理s51の繰り返し実行数を超えない)。
【0072】
減設判定部63は、減設判定処理s53でリソースの減少を実行した場合には(s54:YES)、増設判定処理s51を繰り返し、減設判定処理s53でリソースの減少を実行しなかった場合には(s54:NO)、減設判定部63は、減設判定処理s53を繰り返す。
【0073】
<増設判定処理>
図12は、増設判定処理s52の詳細を説明するフロー図である。
【0074】
増設判定部62は、ストレージノード46のいずれかに現在障害(ハードウェアの障害、又はCPU47若しくはメモリ48等の障害)が発生しているか否かを判定する(s71)。例えば、増設判定部62は、ストレージクラウドシステム40に予め設けられている所定の監視ツールを呼び出し、障害の情報を取得することで、障害の有無を判定する。
【0075】
ストレージノード46のいずれかに現在障害が発生している場合は(S71:YES)、増設判定部62は、リソースの追加としてストレージクラスタの追加を行う旨を記憶してs73の処理を実行し、ストレージノード46に現在障害が発生していない場合は(S71:NO)、増設判定部62はs80の処理を実行する。
【0076】
s80において増設判定部62は、ストレージプール41にリソースの追加を行うか否かを判定するリソース追加判定処理s80を実行する。
【0077】
増設判定部62は、リソースの追加を行うと判定した場合は(s72:YES)、s73の処理を実行し、リソースの追加を行わないと判定した場合は(s72:NO)、増設判定部62は、s71の処理を繰り返す。
【0078】
s73において増設判定部62は、s71での記憶内容又はリソース追加判定処理s80の処理結果である記憶内容(後述)に基づき、コントローラノード44に対して、リソースの追加を指示する。そして、増設判定部62は、コントローラノード44からの処理の終了通知の受信を待機する(s74:NO)。
【0079】
一方、コントローラノード44は、増設判定部62から受信した指示に基づく処理を行う。例えば、コントローラノード44は、現在のストレージプール41の冗長性の構成を維持するように、所定数のストレージノード46をストレージプール41に新たに割り当てる。例えば、コントローラノード44は、現在のクラスタ構成が4つのデータディスク及び2つのパリティディスクからなるクラスタである場合には、4つのデータディスク及び2つのパリティディスクからなる6つのストレージノード46を新たに割り当てる。なお、コントローラノード44は、ストレージプール41の容量自体は変更しないようにする。なお、ストレージプールの冗長性の情報は、例えば、ストレージノード管理テーブ200から取得される。
【0080】
また、例えば、コントローラノード44は、現在ストレージプール41に割り当てられているストレージノード46のCPU47及びメモリ48の性能をそれぞれ所定量上昇させる(例えば、CPUのクロック数及び記憶容量を2倍にする)。
【0081】
増設判定部62は、コントローラノード44から終了通知を受信すると(s74:YES)、リソース追加判定処理s80を実行する。
【0082】
その後、増設判定部62は、リソース追加判定処理s80がリソースの追加を行うと判定した場合は(s75:YES)、s73の処理を繰り返し、リソース追加判定処理s80がリソースの追加を行わないと判定した場合は(s75:NO)、増設判定処理s52は終了する。
【0083】
<リソース追加判定処理>
図13は、リソース追加判定処理s80の詳細を説明するフロー図である。
【0084】
増設判定部62は、ストレージクラスタのデータ読み込みに関する負荷が高いか否かを判定する(s81)。具体的には、増設判定部62は、IOPS計測結果管理テーブル300の各ストレージクラスタの最新のレコードを参照し、各レコードのリードIO超過割合が、閾値管理テーブル400の使用ルールに係るレコードの増設超過閾値403が示す閾値を超えているか否かを判定する。
【0085】
ストレージクラスタのデータ読み込みに関する負荷が高い場合は(s81:YES)、増設判定部62は、s82の処理を実行し、ストレージクラスタのデータ読み込みに関する負荷が高くない場合は(s81:NO)、増設判定部62は、リソースの追加を行わないと判定してリソース追加判定処理s80は終了する。
【0086】
s82において増設判定部62は、ストレージクラスタのデータ書き込みに関する負荷が高いか否かを判定する。具体的には、増設判定部62は、IOPS計測結果管理テーブル300の各ストレージクラクラスタの最新のレコードを参照し、各レコードのライトIO超過割合が、閾値管理テーブル400の使用ルールに係るレコードの増設超過閾値403が示す閾値を超えているか否かを判定する。
【0087】
ストレージクラスタのデータ書き込みに関する負荷が高い場合は(s82:YES)、増設判定部62は、s83の処理を実行し、ストレージクラスタのデータ書き込みに関する負荷が高くない場合は(s82:NO)、増設判定部62は、s84の処理を実行する。
【0088】
s83において増設判定部62は、リソースの追加としてストレージクラスタ(ストレージノード46)の追加を行う旨を記憶する。以上でリソース追加判定処理s80は終了する。
【0089】
s84において増設判定部62は、リソースの追加として処理性能(CPU及びメモリの性能)を上昇させる旨を記憶する。以上でリソース追加判定処理s80は終了する。
【0090】
<減設判定処理>
図14は、減設判定処理s53の詳細を説明するフロー図である。
【0091】
減設判定部63は、ストレージノード管理テーブ200から、各ストレージノード46の構成の情報(クラスタ構成203の内容)を取得する(s91)。
【0092】
また、減設判定部63は、IOPS計測結果管理テーブル300から、各ストレージクラスタに係る負荷値に関する情報(例えば、各ストレージクラスタの最新のレコードの内容)を取得する(s92)。
【0093】
減設判定部63は、以下のs94-s97の処理を、増設判定処理s52でリソースの追加を行った回数nだけ繰り返す(s93、s100)。
【0094】
すなわち、減設判定部63は、増設判定処理s52でストレージクラスタ(ストレージノード46)の追加を行ったか否かを判定する(s94)。
【0095】
ストレージクラスタの追加を行った場合は(s94:YES)、減設判定部63は、リソースの減少としてストレージクラスタの減設を行う旨を記憶し(s95)、その後はs97の処理が行われる。ストレージクラスタの追加を行わなかった場合は(s94:NO)、減設判定部63は、リソースの減少としてCPU及びメモリの性能を低下させる旨を行う旨を記憶し(s96)、その後はs97の処理が行われる。
【0096】
s97において減設判定部63は、増設判定処理s52での1回分のリソースの追加に対応するリソースの減少を実際に行うか否かを判定する。
【0097】
すなわち、減設判定部63は、リソースの減少を行った場合におけるストレージクラスタのデータアクセス(データ読み込み及び書き込み)に関する負荷が低いか否かを判定する。具体的には、増設判定部62は、IOPS計測結果管理テーブル300の各ストレージクラスの最新のレコードを参照し、各レコードのリードトータルIO負荷308をnで除した値(リソース減少後の性能値の予測値)が、閾値管理テーブル400の使用ルールに係るレコードの減設IO負荷閾値404が示す閾値を下回っているか否かを判定する。なお、ここで説明した判定方法は一例であり、リソースの減少を行った場合に性能値(又は負荷値)が一定以上となるか否かを予測する任意の方法を採用することができる。
【0098】
リソースの減少を行う場合は(s97:YES)、減設判定部63は、s98の処理を実行し、リソースの減少を行わない場合は(s97:NO)、減設判定部63は、s100の処理を実行する。
【0099】
s98において減設判定部63は、ストレージクラスタの減設を行う旨を記憶している場合は、まず、現在ストレージプール41に割り当てられているストレージノード46のデータのうち減設対象のストレージクラスタに係るストレージノード46に記憶されているデータ(対象データ)を、減設対象でないストレジ-クラスタに係るストレージノード46(対象ノード)に移行する。この際、減設判定部63は、対象データを、各対象ノードに対して均等に分散して移行させる(リバランスさせる)。
【0100】
そして、減設判定部63は、s95又はs96で記憶したリソースの減少を行う指示を、s91で取得した構成情報と共にコントローラノード44に送信する(s99)。
【0101】
コントローラノード44は、上記指示を受信すると、その指示に基づくリソースの減少の処理を行う。
【0102】
例えば、減設判定部63は、ストレージクラスタの減設を行う旨を記憶している場合は、そのストレージクラスタ(ストレージノード46)の減設を行う(例えば、増設判定処理s52で実行した増設に対応する減設を行う)。また、例えば、減設判定部63は、CPU及びメモリの性能を低下させる旨を記憶している場合は、ストレージノード46のCPU47及びメモリ48の性能を低下させる(例えば、増設判定処理s52で実行した性能の上昇分と同量の性能を低下させる)。なお、この際、コントローラノード44は、ストレージプール41の容量自体は変更しないようにする。以上で減設判定処理s53は終了する。
【0103】
以上に説明したように、本実施形態のストレージクラウドシステム40は、所定のクラスタ構成が設定されているストレージ(ストレージプール41ないしストレージノード46)に対する負荷値を算出し、算出した負荷値が所定値を超えている場合には、ストレージプール41にクラスタを構成する所定のリソースを追加し(増設し)、さらに、リソースを追加した後、リソースを減少させた場合のストレージに対する負荷の予測値を算出し、算出した予測値が所定値を下回っている場合には、ストレージプール41(ストレージノード46)のリソースを減少させる(減設する)。
【0104】
このように、クラスタ構成を有するストレージプール41の負荷が大きい場合にはリソースを追加し、リソースの追加後に負荷が小さくなって処理が安定したような場合にはリソースを減少させることで、ストレージプール41の負荷が一時的に増加した場合であってもその性能を、過剰とならないリソースで維持することができる。
【0105】
以上のように、本実施形態のストレージクラウドシステム40によれば、クラスタ構成を有するストレージについて、その性能を安定化させつつ運用することができる。
【0106】
また、本実施形態のストレージクラウドシステム40は、所定の処理性能(CPU及びメモリ)及び所定のクラスタ構成が設定されているストレージプール41の負荷値が所定値を超えている場合には、その処理性能を上昇させ又はストレージプール41のクラスタを構成するストレージノード46を増加させ、処理性能を上昇させ又はノードを増加させた後、処理性能を低下させ又はノードを減少させた場合のストレージに対する負荷の予測値が所定値を下回っている場合には、ストレージの処理性能を低下させ又はストレージのノードを減少させる。
【0107】
このように、ストレージプール41の負荷の増減に対応して処理性能の変更又はストレージノード46の増減を行うことで、負荷の増減の大きさに応じた柔軟なリソース変更を行い、その性能を安定化させつつ運用することができる。
【0108】
また、本実施形態のストレージクラウドシステム40は、ストレージに対するデータ読み込みに係る負荷値が所定値を超えている場合には、処理性能を上昇させ、ストレージに対するデータ書き込みに係る負荷値が所定値を超えている場合には、ストレージのクラスタを構成するストレージノード46を増加させ、その後、処理性能を低下させ又はノードを減少させた場合の、データ読み込み及びデータ書き込みに係る予測値が所定値を下回っている場合には、処理性能を低下させ又はストレージノード46を減少させる。
【0109】
このように、データの読み込み負荷が大きい場合は処理性能を増設するにとどめる一方、データの書き込み負荷が大きい場合はストレージノード46を増設することで、負荷の大きさの重大性に応じて適切な種類のリソース追加を行うことができる。また、リソース減少に関しても、データの読み込み及び書き込みの負荷に基づいて、リソース減少の判断を行う。これにより、ストレージの性能をより安定化させることができる。
【0110】
また、本実施形態のストレージクラウドシステム40は、ストレージノード46を減少させる際に、ストレージノード46を増加させたストレージプール41に記憶されているデータを、ストレージノード46を減少した後のストレージプール41の各ストレージノード46に均等に分散させて記憶させる。
【0111】
このように、データをリバランスしつつ減設後の各ノードに書き込むことにより、データを損なうことなく、減設後のストレージプール41の冗長性を確保することができる。
【0112】
また、本実施形態のストレージクラウドシステム40は、リソースの追加に際して、計測期間におけるストレージプール41(ストレージノード46)のデータアクセスの性能値を算出し、算出した性能値と所定の閾値(増設IO負荷閾値)との差分量の、計測期間における蓄積値(リード超過面積、ライト超過面積)に基づく値を負荷値として算出し、算出した負荷値が所定の閾値を超えているか否かを判定する。
【0113】
これにより、一時的に過ぎない負荷の増加によるリソースの追加といった不安定な増設を防ぎ、ストレージの性能を安定化させることができる。
【0114】
また、本実施形態のストレージクラウドシステム40は、リソースの追加に際して、算出した蓄積値(リード超過面積、ライト超過面積)の、性能値が所定値(100%)であった期間における当該性能値の蓄積値(リード全体面積、ライト全体面積)に対する割合(リード超過割合、ライト超過割合)を負荷値として算出し、算出した割合が所定の割合を超えているか否かを判定する。
【0115】
このような正規化処理を行うことにより、リソースの追加の判定を安定的に行い、ストレージの性能を安定化させることができる。
【0116】
また、本実施形態のストレージクラウドシステム40では、ストレージノード46は、互いに通信可能に構成された複数の情報処理装置における情報処理装置として構成され、ストレージプール41は、複数のストレージノード46によりクラスタが構成されている。
【0117】
このように、ストレージノード46はクラウド(例えば、パブリッククラウド)における情報処理装置として構成され、ストレージプール41はそのストレージノード46から構成されている。本実施形態のストレージクラウドシステム40は、このようなハイブリッドクラウドの構成においても、クラウドストレージの性能を安定化させることができる。
【0118】
また、本実施形態のストレージクラウドシステム40は、ユーザ端末10からストレージプール41(ボリューム42)の容量の変更指示を受信した場合に、変更指示が示す容量が契約容量を超えない場合にのみ、ストレージプール41の容量を変更指示に従って変更し、一方、増設判定処理s51では、ストレージプール41の容量を変更せずにリソースを追加し、減設判定処理s54では、ストレージプール41の容量を変更せずにリソースを減少させる。
【0119】
これにより、ストレージプール41(ボリューム42)を契約容量を超えないようにすることができ、また、リソースの減少時にデータの破損が起こらないようにすることができる。
【0120】
また、本実施形態のストレージクラウドシステム40は、閾値管理テーブル400における各閾値の入力を受け付ける。
【0121】
これにより、ユーザが使用するストレージプール41(ボリューム42)の構成に応じた適切なリソースの変更を行うことができる。
【0122】
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。以上説明した実施形態や変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【0123】
例えば、本実施形態の各装置が備えるハードウェアの一部は、他の装置に設けてもよい。
【0124】
また、各装置の各プログラムは他の装置に設けてもよいし、あるプログラムを複数のプログラムからなるものとしてもよいし、複数のプログラムを一つのプログラムに統合してもよい。
【0125】
また、データアクセスの性能値はストレージクラウドシステム40に予め設けられている所定の機能により取得してもよい。
【0126】
また、本実施形態で説明したデータアクセスの負荷の大きさの判定方法は、一例であり、様々な変形例を想定しうる。
【符号の説明】
【0127】
1 情報処理システム、20 ストレージシステム、40 ストレージクラウドシステム、41 ストレージプール、43 サービスポータル基盤、45 ストレージノード群、46 ストレージノード