IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立ヴァンタラ株式会社の特許一覧

特開2024-151082ストレージシステム及びストレージ管理方法
<>
  • 特開-ストレージシステム及びストレージ管理方法 図1
  • 特開-ストレージシステム及びストレージ管理方法 図2
  • 特開-ストレージシステム及びストレージ管理方法 図3
  • 特開-ストレージシステム及びストレージ管理方法 図4
  • 特開-ストレージシステム及びストレージ管理方法 図5
  • 特開-ストレージシステム及びストレージ管理方法 図6
  • 特開-ストレージシステム及びストレージ管理方法 図7
  • 特開-ストレージシステム及びストレージ管理方法 図8
  • 特開-ストレージシステム及びストレージ管理方法 図9
  • 特開-ストレージシステム及びストレージ管理方法 図10
  • 特開-ストレージシステム及びストレージ管理方法 図11
  • 特開-ストレージシステム及びストレージ管理方法 図12
  • 特開-ストレージシステム及びストレージ管理方法 図13
  • 特開-ストレージシステム及びストレージ管理方法 図14
  • 特開-ストレージシステム及びストレージ管理方法 図15
  • 特開-ストレージシステム及びストレージ管理方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024151082
(43)【公開日】2024-10-24
(54)【発明の名称】ストレージシステム及びストレージ管理方法
(51)【国際特許分類】
   G06F 3/06 20060101AFI20241017BHJP
   G06F 13/10 20060101ALI20241017BHJP
   G06F 13/12 20060101ALI20241017BHJP
【FI】
G06F3/06 301Y
G06F3/06 301E
G06F3/06 304N
G06F13/10 330C
G06F13/10 340A
G06F13/12 330C
G06F13/10 310E
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023064213
(22)【出願日】2023-04-11
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】吉田 美里
(72)【発明者】
【氏名】山本 貴大
(72)【発明者】
【氏名】佐藤 功人
(72)【発明者】
【氏名】山本 彰
(72)【発明者】
【氏名】大平 良徳
(57)【要約】
【課題】複数のストレージノードのリソースを有効利用すること。
【解決手段】複数のストレージノードを有するストレージシステムであって、前記複数のストレージノードを管理する管理部を備え、前記複数のストレージノードの各々は、処理負荷が既定範囲内であることを条件にクレジットを蓄積し、該クレジットを消費して前記既定範囲を超える負荷で処理を行うバーストが可能であり、前記管理部は、各ストレージノードのクレジットを管理し、所定のストレージ処理のバーストの契機を、当該ストレージ処理に関連する複数のストレージノードにおけるクレジットの蓄積状況から判断し、前記所定のストレージ処理に関連する複数のストレージノードでクレジットが蓄積されていた場合、蓄積されたクレジットを消費して前記所定のストレージ処理をバーストにより実行する。
【選択図】図11
【特許請求の範囲】
【請求項1】
複数のストレージノードを有するストレージシステムであって、
前記複数のストレージノードを管理する管理部を備え、
前記複数のストレージノードの各々は、処理負荷が既定範囲内であることを条件にクレジットを蓄積し、該クレジットを消費して前記既定範囲を超える負荷で処理を行うバーストが可能であり、
前記管理部は、
各ストレージノードのクレジットを管理し、
所定のストレージ処理のバーストの契機を、当該ストレージ処理に関連する複数のストレージノードにおけるクレジットの蓄積状況から判断し、
前記所定のストレージ処理に関連する複数のストレージノードでクレジットが蓄積されていた場合、蓄積されたクレジットを消費して前記所定のストレージ処理をバーストにより実行することを特徴とするストレージシステム。
【請求項2】
請求項1に記載のストレージシステムであって、
前記管理部は、各ストレージノードの処理負荷と対応する前記既定範囲とを比較し、比較結果に基づいて各ストレージノードのクレジットを更新し、更新したクレジットに基づいてバーストが可能な時間を算出し、該バーストが可能な時間に基づいて前記所定のストレージ処理のバーストの契機を判断することを特徴とするストレージシステム。
【請求項3】
請求項1に記載のストレージシステムであって、
前記管理部は、前記クレジットの消費後、前記既定範囲内の処理負荷で前記所定のストレージ処理を継続し、前記クレジットが蓄積された後、再度バーストを行うことを特徴とするストレージシステム。
【請求項4】
請求項1に記載のストレージシステムであって、
前記所定のストレージ処理は、非同期処理であることを特徴とするストレージシステム。
【請求項5】
請求項4に記載のストレージシステムであって、
前記管理部は、ホストからの要求を処理する負荷が閾値以下の場合に、前記所定のストレージ処理を開始することを特徴とするストレージシステム。
【請求項6】
請求項1に記載のストレージシステムであって、
前記所定のストレージ処理は、前記ストレージノードのリビルドであることを特徴とするストレージシステム。
【請求項7】
請求項1に記載のストレージシステムであって、
前記バーストは、演算装置、ホストとの通信、記憶デバイスとの通信のうち、少なくともいずれかについての負荷が既定範囲を超える処理であることを特徴とするストレージシステム。
【請求項8】
請求項1に記載のストレージシステムであって、
前記管理部は、フェイルオーバー先のストレージノードで前記クレジットが蓄積されている場合に、前記フェイルオーバー先のストレージノードがホストからの要求を処理する際に前記既定範囲を超える負荷で処理を行うことを特徴とするストレージシステム。
【請求項9】
請求項1に記載のストレージシステムであって、
前記管理部は、複数のボリュームについて、性能要件に応じてバースト可否を設定可能であることを特徴とするストレージシステム。
【請求項10】
請求項9に記載のストレージシステムであって、
前記管理部は、バースト可に設定したボリュームの配置先を決定するに際し、前記クレジットの蓄積量が多いストレージノードを優先することを特徴とするストレージシステム。
【請求項11】
請求項1に記載のストレージシステムであって、
前記管理部は、前記クレジットの蓄積量が少ないストレージノードから前記クレジットの蓄積量が多いストレージノードにボリュームを移動することを特徴とするストレージシステム。
【請求項12】
複数のストレージノードを有するストレージシステムのストレージ管理方法であって、
前記複数のストレージノードの各々が、処理負荷が既定範囲内であることを条件にクレジットを蓄積するステップと、
前記複数のストレージノードを管理する管理部が、各ストレージノードのクレジットを管理するステップと、
前記管理部が、所定のストレージ処理のバーストの契機を、当該ストレージ処理に関連する複数のストレージノードにおけるクレジットの蓄積状況から判断するステップと、
前記管理部が、前記所定のストレージ処理に関連する複数のストレージノードでクレジットが蓄積されていた場合、蓄積されたクレジットを消費して前記既定範囲を超える負荷で処理を行うバーストにより前記所定のストレージ処理を実行するステップと
を含むことを特徴とするストレージ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステム及びストレージ管理方法に関する。
【背景技術】
【0002】
クラウド環境上のサーバ(仮想マシン)は種々のスペックのものが提供されている。例えば、低コストで利用できる小サイズの仮想マシンで、一時的に性能向上できるバースト機能を持つものがある。このような仮想マシンは、普段は負荷が少ないが、一時的に負荷が増えるといったケースに対応できる。
特許文献1では、ストレージシステムのバーストについて開示されている。この文献には「最大IOPSパラメータは、延長期間に亘って最大維持IOPS値である。最大バーストIOPSパラメータは、クライアントがクレジットに基づいて短期間に亘って最大IOPSパラメータを上回って「バースト」することができる最大IOPS値である。一実装では、クライアントに対するクレジットは、クライアントがこれらのそれぞれの最大IOPSパラメータ未満で動作しているときに増加される。」との記載がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2015-507268号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1によると、バースト機能はクレジットの概念で管理される。予め定めたベースラインより低い使用状況の場合クレジットが蓄積され、ベースラインを超えてバースト可能となる。バーストを行うと、ベースラインより高い使用状況となるため、クレジットが消費される。クレジットを使い果たすと、使用できる最大値がベースラインに戻る。
このようなバースト機能を持つサーバでストレージシステムを構成するケースについて考える。上述の通り、バーストが使える時間やタイミングは限られるため、常時処理であるIOの性能はベースラインを元に設計し、蓄積されたクレジットを障害時などのリソースが追加で必要になった場面で使う方法が考えられる。
ここで、バーストできる契機と時間は限られるため、ストレージシステムでのバースト契機判断を適切に行い、複数のストレージノードのリソースを有効利用することが課題となる。
【課題を解決するための手段】
【0005】
上記目的を達成するために、代表的な本発明のストレージシステムの一つは、複数のストレージノードを有するストレージシステムであって、前記複数のストレージノードを管理する管理部を備え、前記複数のストレージノードの各々は、処理負荷が既定範囲内であることを条件にクレジットを蓄積し、該クレジットを消費して前記既定範囲を超える負荷で処理を行うバーストが可能であり、前記管理部は、各ストレージノードのクレジットを管理し、所定のストレージ処理のバーストの契機を、当該ストレージ処理に関連する複数のストレージノードにおけるクレジットの蓄積状況から判断し、前記所定のストレージ処理に関連する複数のストレージノードでクレジットが蓄積されていた場合、蓄積されたクレジットを消費して前記所定のストレージ処理をバーストにより実行することを特徴とする。
また、代表的な本発明のストレージ管理方法の一つは、複数のストレージノードを有するストレージシステムのストレージ管理方法であって、前記複数のストレージノードの各々が、処理負荷が既定範囲内であることを条件にクレジットを蓄積するステップと、前記複数のストレージノードを管理する管理部が、各ストレージノードのクレジットを管理するステップと、前記管理部が、所定のストレージ処理のバーストの契機を、当該ストレージ処理に関連する複数のストレージノードにおけるクレジットの蓄積状況から判断するステップと、前記管理部が、前記所定のストレージ処理に関連する複数のストレージノードでクレジットが蓄積されていた場合、蓄積されたクレジットを消費して前記既定範囲を超える負荷で処理を行うバーストにより前記所定のストレージ処理を実行するステップとを含むことを特徴とする。
【発明の効果】
【0006】
本発明によれば、複数のストレージノードのリソースを有効利用できる。上記した以外の課題、構成及び効果は以下の実施の形態の説明により明らかにされる。
【図面の簡単な説明】
【0007】
図1】ストレージシステム構成
図2】ストレージノードとバースト部位
図3】ベースライン性能とバースト性能の例
図4】NWバーストの例
図5】ストレージノードのメモリ情報
図6】バースト管理情報
図7】NWバースト管理情報
図8】BEバースト管理情報
図9】CPUバースト管理情報
図10】バースト時間管理処理のフローチャート
図11】非同期処理のフローチャート
図12】実施例2の概要図(FO先ノードをバースト)
図13】バーストを含むフェイルオーバー処理のフローチャート
図14】VOLのバースト設定例
図15】ストレージモニタ情報
図16】クレジットに基づくVOLリバランス処理のフローチャート
【発明を実施するための形態】
【0008】
以下、図面を用いて、本発明の幾つかの実施形態を説明する。なお、図面では、「ボリューム」を「VOL」と記載する。ボリュームはストレージシステムが管理する論理的な記憶空間である。
「NW」はネットワークを示し、「BE」はバックエンドを示し、「FO」はフェイルオーバーを示す。
クラウド環境の仮想マシンをインスタンスと記載する。
「ノード」と記載がある場合、ストレージノードを示す。
【実施例0009】
[第1の実施形態]
第1の実施形態では、常時IOとは異なる、ストレージの非同期処理でバーストを適用するケースについて説明する。
図1は、ストレージシステム構成を示す。
1以上のストレージノードでストレージシステムを構成する。図1には、ストレージノード301~303でストレージシステム200を構成している。本発明では、ストレージノードはネットワーク帯域の上限やCPU使用率の上限が変動するサーバとする。一例として、クラウド環境の仮想マシンがある。
IOホストからストレージノードのボリュームへIO(データのInput/Output)を行う。ストレージノード間とIOホスト-ストレージノード間はネットワークで接続される。図1では、IOホスト101がストレージノード301のボリュームへIOを行っている。同様に、IOホスト102がストレージノード302のボリュームへIOを行っている。
【0010】
図2は、ストレージノードとバースト部位を示す。
図2に示したストレージノード301は、通信装置401、通信装置402、CPU(Central Processing Unit)403、メモリ404を有する。
通信装置401は、ネットワーク経由でIOホスト101と通信したり、他のストレージノード(ストレージノード302、ストレージノード303)と通信したりする。通信装置401の通信帯域をNW帯域という。
通信装置402は、バックエンドの記憶デバイスであるディスクと通信する。通信装置402の通信帯域をBE帯域という。
本実施例では、一例として、点線の部位(NW帯域、CPU使用率、BE帯域)がバーストするサーバをストレージノードに適用したケースについて説明する。なお、メモリやディスクなどの他の部位がバーストするサーバにも、本発明は適用可能である。本例では説明簡略化のためCPU数1としているが、複数のCPUがあっても良い。その場合、各CPU毎にバーストして良い。通信装置401、通信装置402もそれぞれ複数あっても良い。例えば、複数の通信装置401の合計使用帯域が、ストレージノードの使用ネットワーク帯域として管理されて良い。
【0011】
図3は、バースト部位におけるベースライン性能とバースト性能の例を示す。
値は一例であり、クラウド環境やインスタンスタイプ毎に異なる。
図3に示したバースト値、ベースライン、最大クレジットについては以下の通りである。
バースト値:ベースラインを超えてバーストできる最大値
ベースライン:使用によりクレジットの消費・蓄積が0となるバランス値。ベースラインを上回ったリソースを使用するとクレジットを消費し、ベースラインを下回ったリソースを使用するとクレジットが蓄積される。クレジットが蓄積されるとベースラインを超えてバースト可能となる。
最大クレジット:蓄積できる最大クレジット
【0012】
クレジットの計算方式や最大クレジットは、クラウド環境やインスタンスタイプ毎に異なる。例えば、本例では、ネットワーク帯域の最大クレジット9000は、バースト値の10Gbpsを使用した場合に、20分使用できる量となっている。バースト値より小さい帯域を使用した場合、バースト(ベースラインを超えた帯域)を使用できる時間は20分より長くなる。
本例では、クレジットの計算方式は、「ベースライン―現在の使用値」を基本とするが、クラウド環境の仕様に合わせた別の式を使用しても良い。この計算方式によると、ベースラインから離れたリソース量を使うほど、クレジットの消費・蓄積量が大きくなる。
【0013】
図4は、ネットワークバーストの例を示す。
図3のネットワーク帯域スペックにおいて、バーストとクレジット消費・蓄積の例を示す。
例えば、ベースライン2.5Gbpsを上回る5Gbpsを使用した場合、クレジットの計算式は、(ベースライン)2.5-5=-2.5であり、1秒あたりに2.5のクレジットを消費する。使用前に9000クレジット蓄積されていた場合、9000/2.5=3600秒=60分でクレジットが0となる。即ち、60分間は5Gbpsを使用できるが、その後はクレジットが0になり、ベースラインを超えてバーストできなくなる。(別の例として、10Gbpsを使用すると1秒あたりの消費クレジットが7.5となり、10Gbpsを使用できるのは20分間となる。)
【0014】
その後、ベースラインを下回る1.25Gbpsを使用した場合、クレジットの計算式は、(ベースライン)2.5-1.25=1.25であり、1秒あたりに1.25のクレジットを蓄積する。例えば、1.25Gbpsの使用で40分経過すると、1.25×40×60=3000クレジットが蓄積される。クレジットが蓄積されたため、再びベースラインを超えてバーストが可能となる。
【0015】
その後、ベースラインを上回る5Gbpsを使用した場合、(ベースライン)2.5-5=-2.5であり、1秒あたりに2.5のクレジットを消費する。3000クレジットが蓄積されているため、3000/2.5=1200秒=20分でクレジットが0となる。即ち、20分間は5Gbpsを使用できるが、その後はクレジットが0になり、ベースラインを超えてバーストできなくなる。
【0016】
図5は、ストレージノードのメモリ情報を示す。
ストレージノード301のメモリ404には、IO制御部501、クラスタ制御部502、バースト時間管理部503、ストレージ非同期処理部504、ストレージモニタ情報505及びバースト管理情報506が展開される。
【0017】
IO制御部501は、IOホスト101からストレージシステム200内のボリュームへのIO制御を行う。
クラスタ制御部502は、クラスタの起動や監視、障害時のフェイルオーバー、ボリュームの管理、ユーザからの管理操作の制御などを行う。
バースト時間管理部503とストレージ非同期処理部504の処理フローチャートは後述する。
バースト管理情報506は後述する。
【0018】
図6は、バースト管理情報を示す。
バースト管理情報506は、管理するバースト部位毎の、クレジットやバースト時間の情報を格納する。図6には、NWバースト管理情報601、BEバースト管理情報602及びCPUバースト管理情報603を示している。これらは一例であり、他の部位の情報があっても良い。各情報の詳細は後述する。
バースト時間管理部503がこれらの情報を格納する。ストレージ非同期処理部504などのバーストを行う処理部がこれらの情報を参照する。
【0019】
図7は、ネットワークバースト管理情報601を示す。
バースト時間管理部503がネットワークバースト管理情報601を格納する。ストレージ非同期処理部504などのバーストを行う処理部がネットワークバースト管理情報601を参照する。ネットワークバースト管理情報601は、次の情報を有する。
ベースライン:使用によりクレジットの消費・蓄積が0となるバランス値。クラウド環境やインスタンスの仕様により定まる。
現在の使用NW帯域:ストレージノードが使用している現在値
消費・蓄積クレジット:現在の使用NW帯域により、1秒あたりに消費・蓄積したクレジット。クラウド環境の仕様に従って計算する。本例では、「ベースライン-現在の使用NW帯域」。
前回クレジット:前回周期で計算したクレジット
現在クレジット:「前回クレジット+消費・蓄積クレジット」
バースト時間:現在クレジットを使ってバーストできる時間。使う帯域が大きい程クレジット消費が早いため、バーストできる時間は短くなる。例えば、ストレージノード301の例では、5Gbpsで40分バーストでき、10Gbpsで13分バーストできる。
計算方法は次のようになる。5Gbpsでバーストする場合、1秒あたり、5-2.5(ベースライン)=2.5のクレジットを消費する。現在クレジット6000を2.5で割ると2400となり、2400秒の間バーストできる。即ち40分バーストできる。
10Gbpsでバーストする場合、1秒あたり、10-2.5(ベースライン)=7.5のクレジットを消費する。同様に計算するとバースト時間は13分となる。
バースト時間(Cluster):クラスタがバーストできる時間。一例として、各ノードで共通にバーストできる値としてノード間の最小値を格納。
バースト時間に、5Gbpsと10Gbpsでバーストした場合の値を格納しているが、3Gbpsでバーストした場合など、他のケースの値が格納されていても良い。また、マージンとして係数を掛けた値を格納しても良い。
【0020】
図8は、バックエンドバースト管理情報602を示す。
ネットワークバースト管理情報と同様の考え方であり、説明は省略する。
格納される値は、ネットワークバースト管理情報とは異なる。説明簡略化のため、本例では同じ値となっている。
【0021】
図9は、CPUバースト管理情報603を示す。
ネットワークバースト管理情報との差分のみ記載する。
消費・蓄積クレジット:現在のCPU使用率により、1分あたりに消費・蓄積したクレジット。クラウド環境の仕様に従って計算する。本例では、「ベースライン-現在のCPU使用率」とし、分単位の値となっている。
バースト時間:現在クレジットを使ってバーストできる時間。使うCPU使用率が高い程クレジット消費が早いため、バーストできる時間は短くなる。例えば、ストレージノード301の例では、使用率60%で40分バーストでき、使用率80%で20分バーストできる。
計算方法は次のようになる。使用率60%でバーストする場合、1分あたり、60-40(ベースライン)=20のクレジットを消費する。現在クレジット800を20で割ると40となり、40分の間バーストできる。
使用率80%でバーストする場合、1分あたり、80-40(ベースライン)=40のクレジットを消費する。同様に計算するとバースト時間は20分となる。
バースト時間に、60%と80%でバーストした場合の値を格納しているが、50%でバーストした場合など、他のケースの値が格納されていても良い。また、マージンとして係数を掛けた値を格納しても良い。
【0022】
図10は、バースト時間管理処理のフローチャートを示す。
バースト時間管理部503が実施する。
ストレージノードとバースト部位毎にバースト管理情報の更新を行う。またその結果から、クラスタのバースト時間の更新も行う。
具体的には、バースト時間管理部503は、クレジットの消費・蓄積を計算するステップ(S101)、クレジットを更新するステップ(S102)、バースト時間を更新するステップ(S103)を、バースト部位分繰り返す(C)。バースト時間管理部503は、バースト部位分の繰り返し処理(C)を、ストレージノード分繰り返す(B)。さらに、バースト時間管理部503は、ストレージノード分の繰り返し処理(B)を、一定周期で繰り返す(A)。
【0023】
例えば、ストレージノード301の現在の使用ネットワーク帯域が1Gbpsで、前回クレジットが5998.5の場合、下記のフローとなる。
クレジットの消費・蓄積:ベースライン―現在の使用値=2.5-1=1.5
クレジットを更新(前ステップ結果を前回クレジットに加算):5998.5+1.5=6000
6000を現在クレジットに格納する。
バースト時間を更新:現在クレジット6000をバースト時間に換算する。5Gbps
caseは40分。10Gbps caseは13分。(計算式は図7のバースト時間説明を参照。)
各部位毎にクラスタのバースト時間を更新:処理フローの結果、各ストレージノードで図7のバースト時間が更新されたとする。この時、ネットワークバースト管理情報に格納するクラスタのバースト時間は下記の通りとなる。
5Gbps caseは、Min(40,40,60)=40分。10Gbps caseはMin(13,13,20)=13分。(計算式は図7のバースト時間(Cluster)説明を参照。)
これは、クラスタ全体でバーストする場合、5Gbpsを使う場合は40分、10Gbpsを使う場合は13分バーストできることを意味する。
図8バックエンドバースト管理情報と図9CPUバースト管理情報も同様の方法で更新する。
なお、各ノードとクラスタのバースト時間を更新しているが、ノードの組合せ毎のバースト時間を格納して更新しても良い。(例えば、ストレージノード301とストレージノード302の組合せの場合、バースト時間はN分。)
【0024】
図11は、ストレージ非同期処理のフローチャートを示す。
ストレージ非同期処理部504がこの処理を実施する。
ストレージ非同期処理部504は、ストレージモニタ情報505を取得し(ステップS201)、ネットワーク、バックエンド、CPUの負荷が閾値以下であるか否かを判定する(ステップS202)。
【0025】
負荷が閾値以下であれば(ステップS202;Yes)、処理に関わる複数ノードについて、複数部位のバースト時間を確認する(ステップS203)。バースト時間があれば(ステップS204;Yes)、バースト時間の間、非同期処理を高速化する(ステップS205)。非同期処理が完了すれば(ステップS206;Yes)、処理を終了する。
【0026】
負荷が閾値を超える場合(ステップS202;No)、バースト時間がない場合(ステップS204;No)、またはバースト後非同期処理が完了していない場合(ステップS206;No)、ストレージ非同期処理部504は、一定時間、ベーススピードで非同期処理を継続する(ステップS207)。非同期処理が完了すれば(ステップS208;Yes)、処理を終了する。非同期処理が完了していなければ(ステップS208;No)、ステップS201に戻る。
【0027】
ストレージの非同期処理の一例として、ストレージノードやディスクの障害時にデータの配置変更を行うリビルド処理がある。
本処理フローでは、負荷が閾値以下かつクレジット蓄積によるバースト時間が確保できている場合、非同期処理を高速化するフローとなっている。また、高速化した後はクレジットが消費されるためベーススピードに戻す。この方法により、例えば、ネットワーク帯域の使用は前述の図4のようなイメージになる。
【0028】
負荷やバースト時間確認は、非同期処理の対象ノード(送信・受信側両方)に対して実施する。例えば、ストレージノード301とストレージノード302に関する処理の場合は、2ノードが確認対象になる。
バースト時間の確認には、バースト管理情報506を利用し、非同期処理でバーストが必要となるリソースについて確認を行う。例えば、非同期処理がリビルドとして、5GbpsまでのNW帯域のバーストと5GbpsまでのBE帯域のバーストが、ストレージノード301とストレージノード302で必要になる場合は次の通りとなる。
【0029】
NWバースト管理情報601によると、5Gbpsを使用した場合、ストレージノード301とストレージノード302ともに、40分バーストが可能である。BEバースト管理情報602によると、5Gbpsを使用した場合、ストレージノード301とストレージノード302ともに、40分バーストが可能である。以上により、バースト時間は40分となる。バースト時間の間、例えば処理スレッドを増やして処理を高速化する。
その後、ベーススピードに戻し、クレジット蓄積を行う。例えば、NW帯域とBE帯域を1.25Gbps使用する場合、40分で3000クレジットが蓄積される(図4の説明参照。)
このクレジットは、5Gbpsで20分バーストできる値である(図4の説明参照。)
従って、40分ベーススピードで非同期処理を継続した後、20分非同期処理を高速化する、という動きになる。
【実施例0030】
[第2の実施形態]
第2の実施形態では、障害時に特定のストレージノードに負荷が偏る契機で、バーストを適用するケースについて説明する。
【0031】
図12は、実施例2の概要図(フェイルオーバー先ノードをバースト)を示す。
まず、平常時には、IOホスト101がストレージノード301のボリュームへIOを行っている。同様に、IOホスト102がストレージノード302のボリュームへIOを行っている。
【0032】
ストレージノード301で障害が発生した場合(1)、別のストレージノード(例えばストレージノード302)がIOホスト101のIO処理を引き継ぐ。これによりストレージノード302のIO負荷が増加する。
ストレージノード302のIO性能低下を防ぐため、各部位(CPU,NW,BE)をバーストした値をIO制御部501が使用するように制御する(2)。そのうえで、ストレージノードのフェイルオーバーを実行する(3)。図13で処理フローを説明する。
【0033】
図13は、バーストを含むフェイルオーバー処理のフローチャートを示す。
クラスタ制御部502がこの処理を実施する。
クラスタ制御部502は、フェイルオーバー先がバースト可能な状態の場合(ステップS301;Yes)、IO制御部501が利用するリソースを増やす(ステップS302)。例えば、CPU使用率をベースラインよりも高い80%にし、NW帯域、BE帯域をベースラインよりも高い10Gbpsにする。
バースト可否の判定には、バースト管理情報506を利用する。例えば、フェイルオーバー先がストレージノード302の場合、ストレージノード302のバースト時間に値が格納されていることを確認する。図7から図9の場合、CPU使用率80%、NW帯域10Gbps、BE帯域10Gbpsの欄に値が格納されているため、このリソース条件でバースト可能である。なお、所望の条件でバースト不可の場合、条件を下げてバースト可否を判定し直しても良い。
【0034】
ステップS302でリソースを増加した場合には、増加したリソースでFO処理(ステップS303)を行う。バースト可能でなければ(ステップS301;No)、平常時のリソースでFO処理(ステップS303)を行う。FO処理には、プロセス起動や制御データの更新が含まれる。
なお、リソースを増加した場合でも、バーストできるのは一定期間であるため、一定期間を越えたら通常のリソース使用量に戻す。例えば、ストレージノード302で、CPU使用率80%、NW帯域10Gbps、BE帯域10Gbpsでバーストする場合、図7から図9により、バーストできる時間は13分となる。
【実施例0035】
[第3の実施形態]
第3の実施形態では、ストレージシステムが管理する一部のボリュームにバーストを適用するケースについて説明する。
【0036】
図14は、ボリュームのバースト設定例を示す。
VOLの性能要件により、IOにもバーストを適用する。性能要件が低いVOLへのIOは、バーストを使用しないように流量制御し、クレジットを蓄積する。性能要件が高いVOLは流量制御せず、バースト可能とする。
性能要件はユーザが設定し、バーストON/OFFは性能要件から自動的に設定またはユーザが設定する。
バースト設定ONのVOLは、リソースの消費が見込まれるため、クレジットが一番蓄積されているストレージノードに配置する。
【実施例0037】
[第4の実施形態]
第4の実施形態では、ストレージシステムが管理する一部のボリュームにバーストを適用するケースで、クレジット状態によりボリュームを別のストレージノードに移動するケースについて説明する。
【0038】
図15は、ストレージモニタ情報505を示す。
本情報は、クラスタ制御部502が格納し、図16のクレジットに基づくVOLリバランス処理で参照する。
図15はストレージモニタ情報505のVOL情報を示している。VOLに関する他の統計値があっても良い。ストレージモニタ情報505はVOL以外の情報も含むが、記載は省略している。図15に示すように、ストレージモニタ情報505は次の情報を含む。
Storage Node ID:VOLを管理するストレージノード
バースト:図14のバースト設定情報
スループット:VOLへの1秒あたりのデータ流量
【0039】
図16は、クレジットに基づくボリュームリバランス処理のフローチャートを示す。
クラスタ制御部502がこの処理を実施する。
クラスタ制御部502は、まず、現在クレジットが閾値L以下のストレージノードがあるか否かを判定する(ステップS401)。現在クレジットが閾値L以下のストレージノードが無ければ(ステップS401;No)、そのまま処理を終了する。
【0040】
現在クレジットが閾値L以下のストレージノードがあれば(ステップS401;Yes)、クラスタ制御部502は、現在クレジットが閾値U以上のストレージノードがあるか否かを判定する(ステップS402)。現在クレジットが閾値U以上のストレージノードが無ければ(ステップS402;No)、そのまま処理を終了する。
【0041】
現在クレジットが閾値U以上のストレージノードがあれば(ステップS402;Yes)、クラスタ制御部502は、バースト設定ONかつスループットがベースラインを超えているボリュームがあるか否かを判定する(ステップS403)。バースト設定ONかつスループットがベースラインを超えているボリュームが無ければ(ステップS403;No)、そのまま処理を終了する。
【0042】
バースト設定ONかつスループットがベースラインを超えているボリュームがあれば(ステップS403;Yes)、クラスタ制御部502は、該当ボリュームを現在クレジットが閾値U以上のストレージノードへ移動し(ステップS404)、処理を終了する。
【0043】
この処理によれば、クレジットが枯渇しそうなストレージノード上に、バースト設定ONでリソース消費が多いVOLがある場合は、クレジットに余裕のあるストレージノードにVOLを移動する。
リソース消費が最も多い1つを移動してもよいし、複数のVOLを移動しても良い。
クレジットの判定に使用するバースト部位は任意である。例えば、BE帯域を利用する。
例えば、ストレージノード302のBEバースト管理情報の現在クレジットが1650で、ストレージノード303のBEバースト管理情報の現在クレジットが9000のケースを考える。また、クレジットの枯渇閾値(閾値L)が1700で、閾値Uが5000とする。
この場合、図5によると、ストレージノード302で管理しているVOL_Bが、バースト設定ONかつスループットがベースライン(2.5Gbps)を超えているため、VOL_Bをクレジットに余裕のある(現在クレジットが閾値U5000以上の)ストレージノード303に移動する。
これにより、バースト性能が必要なVOL_Bがバーストし続けることができる。
【0044】
以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。例えば、上述した実施形態の任意の二つ以上の実施形態が組み合わされてもよい。また、例示した計算式や値は一例であり、発明を限定するものではない。
【0045】
上述してきたように、開示のシステムは、複数のストレージノード301~303を有するストレージシステム200であって、前記複数のストレージノードを管理する管理部を備え、前記複数のストレージノードの各々は、処理負荷が既定範囲(ベースライン)内であることを条件にクレジットを蓄積し、該クレジットを消費して前記既定範囲を超える負荷で処理を行うバーストが可能であり、前記管理部は、各ストレージノードのクレジットを管理し、所定のストレージ処理のバーストの契機を、当該ストレージ処理に関連する複数のストレージノードにおけるクレジットの蓄積状況から判断し、前記所定のストレージ処理に関連する複数のストレージノードでクレジットが蓄積されていた場合、蓄積されたクレジットを消費して前記所定のストレージ処理をバーストにより実行する。
このように、バーストの契機を、処理に関連する複数のストレージノードのクレジット状況から判断することで、複数のストレージノードのリソースを有効利用できる。
なお、実施例では、ストレージノードが管理部としての機能を有する構成を例に説明を行ったが、管理部を含む管理装置をストレージノードとは別に設けてもよい。
【0046】
前記管理部は、各ストレージノードの処理負荷と対応する前記既定範囲とを比較し、比較結果に基づいて各ストレージノードのクレジットを更新し、更新したクレジットに基づいてバーストが可能な時間を算出し、該バーストが可能な時間に基づいて前記所定のストレージ処理のバーストの契機を判断することを特徴とする。
このため、バーストが可能な時間を指標としてバーストの契機を判断できる。
前記管理部は、前記クレジットの消費後、前記既定範囲内の処理負荷で前記所定のストレージ処理を継続し、前記クレジットが蓄積された後、再度バーストを行う。
このため、所定のストレージ処理が終わる前にクレジットが尽きる場合でも効率的な処理が実現できる。
【0047】
前記所定のストレージ処理は、一例として非同期処理である。
また、前記管理部は、IOホスト101~102からの要求を処理する負荷が閾値以下の場合に、前記所定のストレージ処理を開始する。
このため、IO処理への影響を避けつつ、非同期処理を迅速に行うことができる。
さらに、バースト可能か否かを判定して、バースト可能な時に非同期処理を開始することとしてもよい。
【0048】
また、前記所定のストレージ処理は、一例として前記ストレージノードのリビルドである。
この場合には、開示のストレージシステムは、バーストを利用してリビルドを迅速に完了させることができる。
【0049】
また、前記バーストは、演算装置、ホストとの通信、記憶デバイスとの通信のうち、少なくともいずれかについての負荷が既定範囲を超える処理である。
このように、開示のストレージシステムは、任意のリソースについてバーストを行うことができる。
なお、複数部位のバーストが必要であれば、各部位のクレジットの最小値を取ればよい。どの部位が必要であるかは処理により定まる。
【0050】
また、前記管理部は、フェイルオーバー先のストレージノードで前記クレジットが蓄積されている場合に、前記フェイルオーバー先のストレージノードがホストからの要求を処理する際に前記既定範囲を超える負荷で処理を行うことができる。
この場合には、開示のストレージシステムは、IO処理への影響を避けつつフェイルオーバーを行うことができる。
【0051】
また、前記管理部は、複数のボリュームについて、性能要件に応じてバースト可否を設定可能である。
前記管理部は、バースト可に設定したボリュームの配置先を決定するに際し、前記クレジットの蓄積量が多いストレージノードを優先することができる。
このように、開示のストレージシステムによれば、ボリュームに性能差がある場合には、性能差とクレジットの蓄積量に応じてボリュームを配置し、ストレージシステム全体の処理を効率化できる。
【0052】
また、前記管理部は、前記クレジットの蓄積量が少ないストレージノードから前記クレジットの蓄積量が多いストレージノードにボリュームを移動する。
このように、開示のストレージシステムによれば、ボリュームのリバランスが可能である。
【符号の説明】
【0053】
101,102:IOホスト、200:ストレージシステム、301~303:ストレージノード、401~402:通信装置、403:CPU、404:メモリ、501:IO制御部、502:クラスタ制御部、503:バースト時間管理部、504:ストレージ非同期処理部、505:ストレージモニタ情報、506:バースト管理情報、601:ネットワークバースト管理情報、602:バックエンドバースト管理情報、603:CPUバースト管理情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16