(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023087589
(43)【公開日】2023-06-23
(54)【発明の名称】管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20230616BHJP
G06F 13/10 20060101ALI20230616BHJP
G06F 11/34 20060101ALI20230616BHJP
G06F 11/30 20060101ALI20230616BHJP
G06F 9/50 20060101ALI20230616BHJP
【FI】
G06F3/06 301X
G06F13/10 340A
G06F3/06 301E
G06F11/34 133
G06F11/30 140M
G06F9/50 150Z
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021202067
(22)【出願日】2021-12-13
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】片平(岩崎) 華子
(72)【発明者】
【氏名】堀江 俊洋
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA22
5B042MA08
5B042MA14
5B042MC29
(57)【要約】
【課題】データのリバランスを適切に行うことができるようにする。
【解決手段】制御対象の記憶デバイス210に対するデータの入出力を制御する複数のノード220を有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステム20におけるデータのリバランスを管理する管理システム100において、プロセッサ部を有し、プロセッサ部は、複数のノード210のデータを送信する経路についての負荷情報を取得し、所定のリバランス対象のデータ単位の送信元として、リバランス対象のデータ単位を格納している記憶デバイス210を制御対象とする複数のノード220の中から、データを送信する経路の負荷が所定の閾値以下のすべてのノード220を決定し、複数のノード220が決定された場合に、リバランス対象のデータ単位の異なる部分を複数のノード220から所定の転送先のノード220に並行して送信させるように構成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムにおけるデータのリバランスを管理する管理システムであって、
前記管理システムは、プロセッサ部を有し、
前記プロセッサ部は、
複数の前記ノードのデータを送信する経路についての負荷情報を取得し、
所定のリバランス対象のデータ単位の送信元として、前記リバランス対象のデータ単位を格納している記憶デバイスを制御対象とする複数のノードの中から、前記ノードのデータを送信する経路の負荷が所定の閾値以下のすべてのノードを決定し、
所定のリバランス対象のデータ単位の送信元として複数のノードが決定された場合に、前記リバランス対象のデータ単位の異なる部分を前記複数のノードから所定の転送先のノードに並行して送信させる
管理システム。
【請求項2】
前記管理システムは、記憶部を有し、
前記記憶部は、前記ノードが制御する記憶デバイスに配置させておくべきデータ単位である配置指定データ単位を特定する配置指定情報を記憶し、
前記プロセッサ部は、
前記リバランス対象のデータ単位から前記配置指定データ単位を除く
請求項1に記載の管理システム。
【請求項3】
前記ストレージシステムに格納されているデータ単位について所定の時点のデータ単位のデータが所定のバックアップ装置に格納されており、
前記プロセッサ部は、前記バックアップ装置に格納されているデータ単位を示すバックアップ情報を取得し、
所定のリバランス対象のデータ単位の所定時点のデータがバックアップ装置に格納されている場合に、前記所定のリバランス対象のデータ単位の送信元として、前記ノードのデータを送信する経路の負荷と、前記バックアップ装置のデータを送信する経路の負荷とに基づいて、前記複数のノードと前記バックアップ装置との中からデータを送信する経路の負荷が所定の閾値以下のもののすべてを決定し、
送信元として前記バックアップ装置が決定された場合に、前記バックアップ装置から前記データ単位のデータを読み出して前記転送先のノードが制御する記憶デバイスに格納させるとともに、前記格納されたデータに対して前記所定の時点からの前記データ単位の変更差分を反映させる
請求項1に記載の管理システム。
【請求項4】
前記プロセッサ部は、
1以上の前記所定のリバランス対象のデータ単位に対するデータの送信を開始してからの処理時間が所定のタイムアウト時間が経過した場合に、前記1以上の前記所定のリバランス対象のデータ単位についてのデータの送信を終了する
請求項1に記載の管理システム。
【請求項5】
前記プロセッサ部は、
前記1以上の前記所定のリバランス対象のデータ単位に対するデータの送信を開始してから前記1以上の前記所定のリバランス対象のデータ単位の前記転送先のノードへの送信が完了するまでの完了予測時間を推定し、
前記タイムアウト時間を、前記完了予測時間に基づいて決定する
請求項4に記載の管理システム。
【請求項6】
前記プロセッサ部は、
1以上の前記所定のリバランス対象のデータ単位に対するデータの送信を開始してから前記1以上の前記所定のリバランス対象のデータ単位の前記転送先のノードへの送信が完了するまでの完了予測時間を推定し、
推定した前記完了予測時間を表示出力させる
請求項1に記載の管理システム。
【請求項7】
前記プロセッサ部は、
決定した前記複数のノードに対して、前記複数のノードのデータを送信する経路における負荷が所定の負荷以下となるように、制御させる指示を送信する
請求項1に記載の管理システム。
【請求項8】
前記プロセッサ部は、
複数の前記ノードが制御する記憶デバイスについての記憶デバイス負荷情報を取得し、
前記記憶デバイス負荷情報に基づいて、前記記憶デバイスの負荷が最も高いノードが格納しているデータ単位であって、前記記憶デバイスの負荷が最も低いノードが格納していないデータ単位の少なくとも1つを前記所定のリバランス対象のデータ単位に決定する
請求項1に記載の管理システム。
【請求項9】
前記プロセッサ部は、
リバランス対象のデータ単位の送信に対して、各ストレージノードの性能維持を重視する第1設定と、前記データ単位の転送処理効率を重視する第2設定と、前記ストレージノードの性能低下を許容範囲内とさせた状態で前記データ単位の転送処理効率を向上させる第3設定とのいずれかの設定を受け付け、
前記第1設定を受け付けている場合に、所定のリバランス対象のデータ単位の送信元として、前記負荷情報に基づいて、前記複数のノードの中から1つのノードを決定し、
前記第2設定を受け付けている場合に、所定のリバランス対象のデータ単位の送信元として、前記リバランス対象のデータ単位を格納している記憶デバイスに接続された複数のノードの中の複数のノードを決定し、
前記第3設定を受け付けている場合に、所定のリバランス対象のデータ単位の送信元として、前記リバランス対象のデータ単位を格納している記憶デバイスを制御対象とする複数のノードの中から、前記ノードのデータを送信する経路の負荷が所定の閾値以下のすべてのノードを決定し、
前記リバランス対象のデータ単位を決定された前記ノードから所定の転送先のノードに送信させる
請求項1に記載の管理システム。
【請求項10】
制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムにおけるデータのリバランスを管理する管理システムによるデータリバランス管理方法であって、
前記管理システムは、
複数の前記ノードのデータを送信する経路についての負荷情報を取得し、
所定のリバランス対象のデータ単位の送信元として、前記リバランス対象のデータ単位を格納している記憶デバイスを制御対象とする複数のノードの中から、前記ノードのデータを送信する経路の負荷が所定の閾値以下のすべてのノードを決定し、
所定のリバランス対象のデータ単位の送信元として複数のノードが決定された場合に、前記リバランス対象のデータ単位の異なる部分を前記複数のノードから所定の転送先のノードに並行して送信させる
データリバランス管理方法。
【請求項11】
制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムにおけるデータのリバランスを管理するコンピュータに実行されるデータリバランス管理プログラムであって、
前記コンピュータに、
複数の前記ノードのデータを送信する経路についての負荷情報を取得させ、
所定のリバランス対象のデータ単位の送信元として、前記リバランス対象のデータ単位を格納している記憶デバイスを制御対象とする複数のノードの中から、前記ノードのデータを送信する経路の負荷が所定の閾値以下のすべてのノードを決定させ、
所定のリバランス対象のデータ単位の送信元として複数のノードが決定された場合に、前記リバランス対象のデータ単位の異なる部分を前記複数のノードから所定の転送先のノードに並行して送信させる
データリバランス管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のノードにより構成されるストレージシステムにおけるデータのリバランスの技術に関する。
【背景技術】
【0002】
複数台のサーバに搭載された記憶デバイスをソフトウェア機能によって統合し、サーバ上で仮想的なストレージが構成されたHCI(Hyper―Converged Infrastructure)システムが知られている。
【0003】
HCIシステムにおいては、各ノードのI/O負荷が不均等になったり、ノードや記憶デバイスを増設したり、交換したりした場合には、データのリバランス処理を実行することが行われる。
【0004】
リバランス処理によると、使用率の高い記憶デバイスのデータが使用率の低い記憶デバイスに移動される。
【0005】
関連する技術として、例えば、特許文献1には、計算機システムに含まれる1以上の計算機に接続され圧縮機能を有する記憶デバイスを少なくとも1つ含んだ複数の記憶デバイスに対応した複数の物理容量を示す情報を含んだ容量情報を基に、リバランス機能を有するエンティティに対する論理容量配分に関する定義を含む指示内容を決定する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
例えば、リバランス処理中は、各ノードのI/O性能が低下し、各ノード上で稼働するシステムの性能へ影響を与えてしまう。このようなリバランス処理による稼働するシステムの性能への影響を回避するために、リバランス処理を、夜間や休日などのシステム停止時にユーザが手動実行することが多く、ユーザの運用負荷を高めている。
【0008】
本発明は、上記事情に鑑みなされたものであり、その目的は、データのリバランスを適切に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、一観点に係る管理システムは、制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムにおけるデータのリバランスを管理する管理システムであって、前記管理システムは、プロセッサ部を有し、前記プロセッサ部は、複数の前記ノードのデータを送信する経路についての負荷情報を取得し、所定のリバランス対象のデータ単位の送信元として、前記リバランス対象のデータ単位を格納している記憶デバイスを制御対象とする複数のノードの中から、前記ノードのデータを送信する経路の負荷が所定の閾値以下のすべてのノードを決定し、所定のリバランス対象のデータ単位の送信元として複数のノードが決定された場合に、前記リバランス対象のデータ単位の異なる部分を前記複数のノードから所定の転送先のノードに並行して送信させる。
【発明の効果】
【0010】
本発明によれば、データのリバランスを適切に行うことができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、一実施形態に係る計算機システムの全体構成図である。
【
図2】
図2は、一実施形態に係る計算機の構成図である。
【
図3】
図3は、一実施形態に係る管理システムの構成図である。
【
図4】
図4は、一実施形態に係るバックアップシステムの構成図である。
【
図5】
図5は、一実施形態に係る仮想化環境管理システムの構成図である。
【
図6】
図6は、一実施形態に係るコンテナ環境管理システムの構成図である。
【
図7】
図7は、一実施形態に係るユーザ設定テーブルの構成図である。
【
図8】
図8は、一実施形態に係るリバランス経路テーブルの構成図である。
【
図9】
図9は、一実施形態に係るノード情報テーブルの構成図である。
【
図10】
図10は、一実施形態に係るボリューム情報テーブルの構成図である。
【
図11】
図11は、一実施形態に係る通信経路情報テーブルの構成図である。
【
図12】
図12は、一実施形態に係るバックアップ情報テーブルの構成図である。
【
図13】
図13は、一実施形態に係る仮想化環境情報テーブルの構成図である。
【
図14】
図14は、一実施形態に係るコンテナ環境情報テーブルの構成図である。
【
図15】
図15は、一実施形態に係るリバランス時間管理テーブルの構成図である。
【
図16】
図16は、一実施形態に係るリバランス準備処理のフローチャートである。
【
図17】
図17は、一実施形態に係る仮想化環境情報取得処理のフローチャートである。
【
図18】
図18は、一実施形態に係るバックアップ情報取得処理のフローチャートである。
【
図19】
図19は、一実施形態に係るコンテナ環境情報取得処理のフローチャートである。
【
図20】
図20は、一実施形態に係るリバランス優先度およびリバランス経路選択処理のフローチャートである。
【
図21】
図21は、一実施形態に係るノード及びバックアップ保存装置の状態の一例を示す図である。
【
図22】
図22は、一実施形態に係るリバランス経路テーブルの生成を説明する図である。
【
図23】
図23は、一実施形態に係る完了予測時間計算処理のフローチャートである。
【
図24】
図24は、一実施形態に係るノード情報通知処理のフローチャートである。
【
図25】
図25は、一実施形態に係るリバランス制御処理のフローチャートである。
【
図26】
図26は、一実施形態に係るリバランス指示処理のフローチャートである。
【発明を実施するための形態】
【0012】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0013】
以下の説明では、同種の要素を区別しないで説明する場合には、参照符号を使用し、同種の要素を区別する場合は、要素のIDを使用することがある。例えば、ノードを区別しない場合には、「ノード220」と言い、ノードを区別する場合には、「ノードn1」、「ノードn2」、「ノードn3」のようにいう。
【0014】
また、以下の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0015】
また、以下の説明では、「記憶部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。記憶部は、主に、プロセッサ部による処理の際に使用される。
【0016】
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
【0017】
また、以下の説明では、「AAAテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」ということができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
【0018】
また、以下の説明では、「kkk部」の表現にて処理部(機能)を説明することがあるが、処理部は、1以上のコンピュータプログラムがプロセッサ部によって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGAまたはASIC(Application Specific Integrated Circuit))によって実現されてもよい。プログラムがプロセッサ部によって処理部が実現される場合、定められた処理が、適宜に記憶資源(例えばメモリ)及び/または通信インターフェースデバイス(例えば通信ポート)等を用いながら行われるため、処理部はプロセッサ部の少なくとも一部とされてもよい。処理部を動作主体として説明された処理は、プロセッサ部あるいはそのプロセッサ部を有する装置が行う処理としてもよい。また、プロセッサ部は、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースからプロセッサにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各処理部の説明は一例であり、複数の処理部が1つの処理部にまとめられたり、1つの処理部が複数の処理部に分割されたりしてもよい。
【0019】
また、以下の説明では、「プログラム」を動作主体として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の動作主体が、プロセッサ部(或いは、プロセッサ部を有する計算機)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0020】
図1は、一実施形態に係る計算機システムの全体構成図である。
【0021】
計算機システム1は、ストレージシステム20と、管理システム100と、バックアップシステム300と、バックアップ装置の一例としてのバックアップ保存装置400と、仮想化環境管理システム500と、コンテナ環境管理システム600と、を含む。ストレージシステム20と、管理システム100と、バックアップシステム300と、バックアップ保存装置400と、仮想化環境管理システム500と、コンテナ環境管理システム600と、は、ネットワーク10を介して通信可能に接続されている。ネットワーク10は、例えばIP(Internet Protocol)ネットワークである。なお、バックアップ保存装置400は、バックアップシステム300上に構成されてもよく、要は、ネットワーク10を介してバックアップデータにアクセスできる装置であればよい。
【0022】
管理システム100は、マネージャ110を実行する。
【0023】
バックアップシステム300は、バックアップマネージャ310を実行する。バックアップ保存装置400は、バックアップシステム300によりバックアップされたストレージシステム20のボリュームのデータ(バックアップデータ)410を格納する。
【0024】
ストレージシステム20は、1以上の計算機200(例えば計算機A及びB)を含み、複数のノード220を含む。計算機200は、1以上のノード220と、1以上の記憶デバイス210とを含む。ノード220は、計算機200において実行されるコンピュータプログラムによって構成される。計算機200のノード220と、記憶デバイス210とは、同数であり、1対1で対応している。
図1においては、ノードn1~n3は、それぞれ、記憶デバイスA~Cに対応している。ストレージシステム20においては、同一のボリューム(データ単位の一例)が冗長性を確保するために、複数のノード220に対応する複数の記憶デバイス210に格納されている。ノード220においては、各種業務処理を実行するVM(仮想マシン)やコンテナが構成される。
【0025】
仮想化環境管理システム500は、仮想化環境管理マネージャ510を実行する。仮想化環境管理マネージャ510は、ノード220に構築するVMを管理する。コンテナ環境管理システム600は、コンテナ環境管理マネージャ610を実行する。コンテナ環境管理マネージャ610は、ノード220に構築するコンテナを管理する。
【0026】
【0027】
計算機200は、記憶デバイス210と、プロセッサ211と、メモリ212と、ネットワークI/F(ネットワークインターフェイス)213と、を有する。
【0028】
記憶デバイス210は、典型的には、物理的な不揮発性の記憶デバイスであり、例えば、1台以上のHDD(Hard Disk Drive)またはSSD(Solid State Drive)である。記憶デバイス210は、各種データを記憶する。
【0029】
ネットワークI/F213は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク10を介して他の装置(例えば、管理システム100、バックアップシステム300)と通信する。
【0030】
プロセッサ211は、メモリ212及び/または記憶デバイス210に格納されているプログラムに従って各種処理を実行する。
【0031】
メモリ212は、記憶部の一例であり、ノード220を格納する。ノード220は、プロセッサ211によって実行される。
【0032】
ノード220は、そのノード220に対応した記憶デバイス210の論理記憶空間を、例えば、計算機200内のVMで実行されるアプリケーションや、計算機200外のアプリケーションに提供する。ノード220は、論理記憶空間に対するI/O要求を受け付け、そのI/O要求に従い、そのノード220に対応する記憶デバイス210に対してデータのライトまたはリードを実行する(I/Oコマンドを記憶デバイス210に送信する)。ノード220は、その対応する記憶デバイス210に対するライト対象のデータ(ライト対象データのI/O要求)を、例えばデータの冗長性維持のために、他の記憶デバイス210に接続されているノード220(例えば、他の計算機200内のノード220)に転送することができる。ノード220は、例えばSDS(Software Defined Storage)でよい。ノード220は、ストレージサービス221を有する。
【0033】
ストレージサービス221は、I/O要求を受け付け、そのI/O要求に従い記憶デバイス210に対してデータのライトまたはリードを実行する仮想的なストレージコントローラに相当する。ストレージサービス221は、容量監視部222と、容量通知部223と、I/O監視部224と、I/O通知部225と、I/O制御部226と、リバランス部227と、データ差分管理部228と、バックアップ情報通知部229と、バックアップ情報監視部230とを有する。
【0034】
容量監視部222は、自身が属するノード220(自ノードという)に対応する記憶デバイス210の容量を監視する(例えば定期的にチェックする)。容量通知部223は、容量監視部222により特定された容量の情報をマネージャ110に通知する。
【0035】
I/O監視部224は、自ノード220のI/O負荷を監視する。本実施形態では、I/O監視部224の監視するI/O負荷としては、自ノードの記憶デバイス210の使用率や、自ノード220のネットワークI/F213を介しての通信経路(通信パス)の使用率(パス使用率)がある。I/O通知部225は、I/O監視部224により特定されたI/O負荷をマネージャ110に通知する。I/O制御部226は、自ノード220のネットワークI/F213を介しての通信経路の使用率を制御する。例えば、I/O制御部226は、自ノード220のネットワークI/F213を介しての通信経路の使用率が所定の閾値を超えないように制御することができる。リバランス部227は、マネージャ110からの指示に従ってデータを転送するリバランス処理を実行する。データ差分管理部228は、所定の時点のデータ(ボリューム)からの差分断面を示す情報(差分断面情報)を管理する。バックアップ情報通知部229は、バックアップ情報監視部230により特定されたバックアップの情報をマネージャ110に通知する。バックアップ情報監視部230は、自ノードの記憶デバイス210のデータのバックアップを監視する。
【0036】
図3は、一実施形態に係る管理システムの構成図である。
【0037】
管理システム100は、プロセッサ101と、メモリ102と、入力デバイス103と、出力デバイス104と、ネットワークI/F105と、を有する。
【0038】
入力デバイス103は、例えばキーボード及びポインティングデバイスであり、各種入力を受け付ける。出力デバイス104は、例えば液晶ディスプレイ等の表示デバイスであり、各種情報を表示出力する。入力デバイス103及び出力デバイス104を、例えばタッチパネルのような一体構成としてもよい。
【0039】
プロセッサ101は、メモリ102に格納されているプログラムに従って各種処理を実行する。
【0040】
メモリ102は、記憶部の一例であり、マネージャ110を格納する。マネージャ110は、プロセッサ101によって実行される。
【0041】
マネージャ110は、データマネージメントサービス111を有する。
【0042】
データマネージメントサービス111は、ノード220から各種情報を取得し、各種情報に基づいて、リバランスするデータ単位の送信経路(少なくとも送信元のノード)を決定し、決定した内容に対応するデータのリバランス処理の指示(リバランス指示)をノード220に送信する処理を実行する。データマネージメントサービス111は、ノード情報取得部121と、バックアップ情報取得部122と、仮想化環境情報取得部123と、コンテナ環境情報取得部124と、リバランス選択部125と、リバランス指示部126と、リバランス利用リソース計算部127と、完了予測時間計算部128とを有する。また、データマネージメントサービス111は、ユーザ設定テーブル112と、リバランス経路テーブル113と、ノード情報テーブル114と、ボリューム情報テーブル115と、通信経路情報テーブル116と、バックアップ情報テーブル117と、仮想化環境情報テーブル118と、コンテナ環境情報テーブル119と、リバランス時間管理テーブル120とを管理する。
【0043】
ノード情報取得部121は、各ノード220から記憶デバイス210の容量情報、ノード220のI/O情報を受信し、ノード情報テーブル114、ボリューム情報テーブル115、及び通信経路情報テーブル116に登録する。バックアップ情報取得部122は、データのバックアップデータが存在するか否かを検知し、バックアップシステム300からバックアップしたデータのバックアップ情報を受信し、バックアップ情報テーブル117に登録する。仮想化環境情報取得部123は、仮想化環境管理システム500から各ノード220におけるVMに関する情報を受信し、仮想化環境情報テーブル118に登録する。コンテナ環境情報取得部124は、コンテナ環境管理システム600から各ノード220におけるコンテナに関する情報を受信し、コンテナ環境情報テーブル119に登録する。
【0044】
リバランス選択部125は、リバランス対象のボリュームのデータを転送する経路を選択する処理を行う。リバランス指示部126は、リバランス選択部125により選択された経路でボリュームを転送させる指示(リバランス指示)をノード220のリバランス部227に送信する。リバランス利用リソース計算部127は、各ノード220の記憶デバイス210の容量枯渇を検知する。完了予測時間計算部128は、リバランス選択部125により選択されたリバランスが完了すると予測される時間を計算する。
【0045】
図4は、一実施形態に係るバックアップシステムの構成図である。
【0046】
バックアップシステム300は、プロセッサ301と、メモリ302と、入力デバイス303と、出力デバイス304と、ネットワークI/F305と、を有する。
【0047】
入力デバイス303は、例えばキーボード及びポインティングデバイスであり、各種入力を受け付ける。出力デバイス304は、例えば液晶ディスプレイ等の表示デバイスであり、各種情報を表示出力する。入力デバイス303及び出力デバイス304を、例えばタッチパネルのような一体構成としてもよい。
【0048】
ネットワークI/F305は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク10を介して他の装置(例えば、計算機200、バックアップ保存装置400)と通信する。
【0049】
プロセッサ301は、メモリ302に格納されているプログラムに従って各種処理を実行する。
【0050】
メモリ302は、記憶部の一例であり、バックアップマネージャ310を格納する。バックアップマネージャ310は、プロセッサ301によって実行される。
【0051】
バックアップマネージャ310は、バックアップサービス320を有する。
【0052】
バックアップサービス320は、ストレージシステム20の記憶デバイス210に格納されているデータのバックアップデータを、バックアップ保存装置400に格納させる処理を行う。データのバックアップは、例えば、ボリューム(データ単位の一例)を単位として行われる。バックアップサービス320は、バックアップ情報通知部321を有する。バックアップ情報通知部321は、記憶デバイス210に格納されているデータのバックアップに関する情報(バックアップ情報)を計算機200に送信する。バックアップ情報は、例えば、バックアップしたボリュームの識別子(ボリュームID)と、バックアップしたデータのバックアップ時のデータ差分断面情報と、バックアップハッシュとを含む。
【0053】
図5は、一実施形態に係る仮想化環境管理システムの構成図である。
【0054】
仮想化環境管理システム500は、プロセッサ501と、メモリ502と、入力デバイス503と、出力デバイス504と、ネットワークI/F505と、を有する。
【0055】
入力デバイス503は、例えばキーボード及びポインティングデバイスであり、各種入力を受け付ける。出力デバイス504は、例えば液晶ディスプレイ等の表示デバイスであり、各種情報を表示出力する。入力デバイス503及び出力デバイス504を、例えばタッチパネルのような一体構成としてもよい。
【0056】
ネットワークI/F505は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク10を介して他の装置(例えば、計算機200、管理システム100)と通信する。
【0057】
プロセッサ501は、メモリ502に格納されているプログラムに従って各種処理を実行する。
【0058】
メモリ502は、記憶部の一例であり、仮想化環境管理マネージャ510を格納する。仮想化環境管理マネージャ510は、プロセッサ501によって実行される。
【0059】
仮想化環境管理マネージャ510は、仮想化環境管理サービス520を有する。
【0060】
仮想化環境管理サービス520は、ストレージシステム20のノード220にVMを生成して、VMを管理する処理を行う。仮想化環境管理サービス520は、仮想化環境情報通知部521を有する。仮想化環境情報通知部521は、ノード220に配置されたVMの情報(仮想化環境情報)を管理システム100に送信する。仮想化環境情報は、例えば、VMを配置しているノード、VMが使用しているボリューム、VMのボリュームのデータローカリティ、HA(High Availability)クラスタを構成しているVM群の情報等を含む。
【0061】
図6は、一実施形態に係るコンテナ環境管理システムの構成図である。
【0062】
コンテナ環境管理システム600は、プロセッサ601と、メモリ602と、入力デバイス603と、出力デバイス604と、ネットワークI/F605と、を有する。
【0063】
入力デバイス603は、例えばキーボード及びポインティングデバイスであり、各種入力を受け付ける。出力デバイス604は、例えば液晶ディスプレイ等の表示デバイスであり、各種情報を表示出力する。入力デバイス603及び出力デバイス604を、例えばタッチパネルのような一体構成としてもよい。
【0064】
ネットワークI/F605は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク10を介して他の装置(例えば、計算機200、管理システム100)と通信する。
【0065】
プロセッサ601は、メモリ602に格納されているプログラムに従って各種処理を実行する。
【0066】
メモリ602は、記憶部の一例であり、コンテナ環境管理マネージャ610を格納する。コンテナ環境管理マネージャ610は、プロセッサ601によって実行される。
【0067】
コンテナ環境管理マネージャ610は、コンテナ環境管理サービス620を有する。
【0068】
コンテナ環境管理サービス620は、ストレージシステム20のノード220にコンテナを生成して、コンテナを管理する処理を行う。コンテナ環境管理サービス620は、コンテナ環境情報通知部621を有する。コンテナ環境情報通知部621は、ノード220に配置されたコンテナの情報(コンテナ環境情報)を管理システム100に送信する。コンテナ環境情報は、例えば、コンテナを配置しているノード、コンテナが使用しているボリューム、コンテナのボリュームのデータローカリティの情報等を含む。
【0069】
次に、管理システム100の各種テーブルを説明する。
【0070】
図7は、一実施形態に係るユーザ設定テーブルの構成図である。
【0071】
ユーザ設定テーブル112は、管理システム100において、例えば、入力デバイス103を介して、ユーザにより設定された各種情報を格納する。ユーザ設定テーブル112は、リバランス実行112aと、自動実行トリガー112bと、リバランス方式112cと、バランス方式の閾値112dと、バックアップ利用112eと、連携するバックアップシステム112fと、データローカリティ考慮112gと、連携する仮想化システム112hと、データローカリティ対象VM112iと、クラスタ考慮対象VM112jと、連携するコンテナシステム112kと、データローカリティ対象コンテナ112lと、クラスタ考慮対象コンテナ112mとの項目を含む。
【0072】
リバランス実行112aには、リバランスを自動で実行するか、手動で実行するかの設定が格納される。自動実行トリガー112bには、リバランスを自動で実行する場合のトリガーとなる条件が格納される。本実施形態では、条件は、例えば、ノード間のデータ容量の差異のしきい値であり、ノード間のデータ容量の差異がしきい値以上である場合に、リバランス(具体的にリバランス準備処理等)が実行される。リバランス方式112cには、実行するリバランスの方式が格納される。リバランスの方式としては、ストレージシステム20(各ノード220)の性能維持を重視する性能優先(第1設定)と、データ単位の転送処理効率を重視する速度優先(第2設定)と、ノード220の性能低下を許容範囲内とさせた状態でデータ単位の転送処理効率を向上させるバランス(第3設定)とがある。リバランス方式の閾値112dには、リバランスの方式としてバランスを設定した場合の経路(パス)の帯域についての使用率(パス使用率)の上限が格納される。したがって、バランス設定の場合には、各ノード220のパス使用率が設定値以下となるように制御されることとなる。
【0073】
バックアップ利用112eには、リバランスにおいてボリュームをバックアップしたバックデータを使用するか否かの設定が格納される。バックアップ利用112eには、例えば、バックアップデータを使用する場合には、ONが格納され、使用しない場合には、OFFが格納される。連携するバックアップシステム112fには、連携するバックアップシステム300を示すホスト名が格納される。
【0074】
データローカリティ考慮112gには、リバランスにおいて、データローカリティ、すなわち、データがローカルに存在することを考慮する必要があるか否かの設定が格納される。ここで、データローカリティは、データをそのノードに配置しておくべきことを意味している。連携する仮想化システム112hには、連携する仮想化環境管理システム500を示すホスト名が格納される。データローカリティ対象VM112iには、データローカリティの対象となるVMを示す識別情報(仮想マシンID)が格納される。クラスタ考慮対象VM112jには、クラスタを考慮する必要があるVMを示す識別情報が格納される。連携するコンテナシステム112kには、連携するコンテナ環境管理システム600を示すホスト名が格納される。データローカリティ対象コンテナ112lには、データローカリティの対象となるコンテナを示す識別情報(コンテナID)が格納される。クラスタ考慮対象コンテナ112mには、クラスタを考慮する必要があるコンテナを示す識別情報が格納される。
【0075】
図8は、一実施形態に係るリバランス経路テーブルの構成図である。
【0076】
リバランス経路テーブル113は、リバランスにおけるデータを転送する経路を管理するテーブルであり、経路毎のエントリを格納する。経路は、少なくともノードを含み、ケーブルや、通信I/Fの物理的なポートや、仮想的ポートを含んでもよい。リバランス経路テーブル113のエントリは、ボリュームID113aと、ノードID113ab、経路ID113cとのカラムを有する。
【0077】
ボリュームID113aには、エントリに対応する経路でリバランス(転送)できるボリュームのストレージシステム20内で一意に識別する識別子(ボリュームID)が格納される。ノードID113bには、エントリに対応するボリュームを管理するノード220のストレージシステム20内で一意に識別する識別子(ノードID)が格納される。なお、本実施形態では、ノードID113bには、ノード220ではないが、バックアップ保存装置400を示すIDも格納されることもある。
図8では、b1のように、bが含まれるノードIDがバックアップ保存装置400のIDを示している。なお、便宜的にバックアップ保存装置400をノードという場合もある。経路ID113cには、エントリに対応する経路のID(経路ID)が格納される。
【0078】
図9は、一実施形態に係るノード情報テーブルの構成図である。
【0079】
ノード情報テーブル114は、ノード220に対応する記憶デバイス210に関する情報を格納する。ノード情報テーブル114は、ノード毎のエントリを格納する。ノード情報テーブル114のエントリは、ノードID114aと、ノード識別子114bと、ディスク最大容量114cと、ディスク使用率114dと、ディスクI/O最大性能114eと、ディスクI/O使用率114fとのカラムを有する。
【0080】
ノードID114aには、エントリに対応するノード220のノードIDが格納される。ノード識別子114bには、エントリに対応するノード220の識別子(ノード識別子)が格納される。ノード識別子は、ノードIDよりも広い範囲において一意である識別子である。ディスク最大容量114cには、エントリに対応するノード220の全ての記憶デバイス210の最大容量が格納される。ディスク使用率114dには、エントリに対応するノード22の記憶デバイス210の記憶領域の使用率が格納される。ディスクI/O最大性能114eには、エントリに対応するノード220の記憶デバイス210のI/Oについての最大性能が格納される。I/Oについての性能は、例えば、IOPS(Input/output per second)で表される。ディスクI/O使用率114fには、エントリに対応するノード220の記憶デバイス210のI/Oについての使用率が格納される。
【0081】
図10は、一実施形態に係るボリューム情報テーブルの構成図である。
【0082】
ボリューム情報テーブル115は、ボリュームに関する情報を格納する。ボリューム情報テーブル115は、ボリューム毎のエントリを格納する。ボリューム情報テーブル115のエントリは、ボリュームID115aと、ボリューム識別子115bと、ノードID115cと、ボリュームサイズ115dとのカラムを有する。
【0083】
ボリュームID115aには、エントリに対応するボリュームのボリュームIDが格納される。ボリューム識別子115bには、エントリに対応するボリュームの識別子(ボリューム識別子)が格納される。ボリューム識別子は、ボリュームIDよりも広い範囲において一意である識別子である。ノードID115cには、エントリに対応するボリュームを格納する記憶デバイス210に接続されているノード220のノードIDが格納される。ボリュームサイズ115dには、エントリに対応するボリュームのサイズが格納される。
【0084】
図11は、一実施形態に係る通信経路情報テーブルの構成図である。
【0085】
通信経路情報テーブル116は、ノード220のデータ通信を行う経路(パス)に関する情報を格納する。通信経路情報テーブル116は、経路毎のエントリを格納する。通信経路情報テーブル116のエントリは、経路ID116aと、経路識別子116bと、ノードID116cと、通信パス最大帯域116dと、通信パス使用率116eとのカラムを有する。
【0086】
経路ID116aには、エントリに対応する経路の管理システム100の管理範囲内で一意のID(経路ID)が格納される。経路識別子116bには、エントリに対応する経路の識別子(経路識別子)が格納される。経路識別子は、経路IDよりも広い範囲において一意である識別子であり、例えば、ネットワークI/FのWWN(World Wide Name)であってもよい。ノードID116cは、エントリに対応する経路の送信元となるノード220のノードIDが格納される。通信パス最大帯域116dには、エントリに対応する経路における最大帯域の値が格納される。通信パス使用率116eには、エントリに対応する経路の帯域の使用率(パス使用率、I/O負荷の一例)が格納される。
【0087】
図12は、一実施形態に係るバックアップ情報テーブルの構成図である。
【0088】
バックアップ情報テーブル117は、バックアップシステム300によりバックアップされたボリュームの情報(バックアップ情報)を格納する。バックアップ情報テーブル117は、ボリュームのバックアップ処理毎のエントリを格納する。バックアップ情報テーブル117のエントリは、バックアップID117aと、ボリュームID117bと、データ差分断面情報117cと、バックアップハッシュ117dとのカラムを有する。
【0089】
バックアップID117aには、エントリに対応するバックアップ処理に対応する識別子(バックアップID)が格納される。ボリュームID117bには、エントリに対応するバックアップ処理の対象のボリュームのボリュームIDが格納される。データ差分断面情報117cには、エントリに対応するボリュームの所定の時点の状態との差分部分を特定可能な情報(データ差分断面情報)を示す情報が格納される。このデータ差分断面情報を比較することにより、同一のボリュームに対して差分がある部分を把握することができる。バックアップハッシュ117dには、エントリに対応するボリュームについてのハッシュ値が格納される。
【0090】
例えば、1番目の行によれば、バックアップIDがb1のバックアップ処理では、ボリュームIDがv2のボリュームをバックアップし、そのボリュームのデータ差分断面情報が20200105_v0002_1092131のデータであり、ボリュームのハッシュ値が78tffa978s3jであることを示している。
【0091】
図13は、一実施形態に係る仮想化環境情報テーブルの構成図である。
【0092】
仮想化環境情報テーブル118は、ストレージシステム20における仮想化環境の情報を格納する。仮想化環境情報テーブル118は、ストレージシステム20のVM毎のエントリを格納する。仮想化環境情報テーブル118のエントリは、仮想マシンID118aと、仮想マシン名118bと、ノードID118cと、ホスト名118dと、ボリュームID118eと、データローカリティ118fと、HAクラスタ118gとのカラムを有する。
【0093】
仮想マシンID118aには、エントリに対応するVMの仮想マシンIDが格納される。仮想マシン名118bには、エントリに対応するVMの名前(仮想マシン名)が格納される。ノードID118cには、エントリに対応するVMが構成されるノード220のノードIDが格納される。ホスト名118dには、エントリに対応するVMに割り当てられたノードのホスト名が格納される。ボリュームID118eには、エントリに対応するVMが使用するボリュームのボリュームIDが格納される。データローカリティ118fには、エントリに対応するVMが使用するボリュームについてのデータローカリティが必要であるか否かの設定(配置指定情報)が格納される。ここで、データローカリティが必要であると設定されているボリュームは、配置指定データ単位に相当する。HAクラスタ118gには、エントリに対応するVMが構成するHAクラスタのクラスタ名が格納される。HAクラスタ118gのクラスタ名によると、同一のクラスタ名を有する複数のエントリのVMによりHAクラスタが構成されることがわかる。
【0094】
図14は、一実施形態に係るコンテナ環境情報テーブルの構成図である。
【0095】
コンテナ環境情報テーブル119は、ストレージシステム20におけるコンテナ環境の情報を格納する。コンテナ環境情報テーブル119は、ストレージシステム20のコンテナ毎のエントリを格納する。コンテナ環境情報テーブル119のエントリは、コンテナID119aと、ノードID119bと、ホスト名119cと、コンテナ名119dと、データローカリティ119eと、ボリュームID119fとのカラムを有する。
【0096】
コンテナID119aには、エントリに対応するコンテナの識別子(コンテナID)が格納される。ノードID119bには、エントリに対応するコンテナが構成されるノード220のノードIDが格納される。ホスト名119cには、エントリに対応するコンテナが割り当てられたノードのホスト名が格納される。コンテナ名119dには、エントリに対応するコンテナの名前(コンテナ名)が格納される。データローカリティ119eには、エントリに対応するコンテナが使用するボリュームについてのデータローカリティが必要であるか否かの設定が格納される。ボリュームID119fには、エントリに対応するコンテナが使用するボリュームのボリュームIDが格納される。
【0097】
図15は、一実施形態に係るリバランス時間管理テーブルの構成図である。
【0098】
リバランス時間管理テーブル120は、リバランス経路テーブル113の経路に従うリバランス処理の時間に関する情報を格納する。リバランス時間管理テーブル120は、完了予測時間120aと、タイムアウト時間120bと、リバランス指示時刻120cと、リバランス処理経過時間120dとのカラムを有する。
【0099】
完了予測時間120aには、リバランス処理の完了予測時間が格納される。タイムアウト時間120bには、リバランス処理をタイムアウトする時間(タイムアウト時間)が格納される。リバランス指示時刻120cには、リバランス処理の実行を指示した時刻(指示時刻)が格納される。リバランス処理経過時間120dには、リバランス処理を実行してからの経過時間が格納される。
【0100】
次に、計算機システム1の処理動作について説明する。
【0101】
まず、計算機システム1におけるリバランス準備処理について説明する。
【0102】
図16は、一実施形態に係るリバランス準備処理のフローチャートである。
【0103】
リバランス準備処理は、例えば、リバランスを実行する条件が満たされた場合、又はユーザにより指定された場合に実行される。
【0104】
管理システム100のノード情報取得部121は、予め設定された管理対象のノード220に対して、ノード情報を要求し、ノード情報を取得する(ステップS11)。なお、ノード情報の要求を受け付けた各ノード220は、ノード情報通知処理(
図24参照)を実行することにより、ノード情報をノード情報取得部121に通知する。ここで、ノード情報は、例えば、記憶デバイス210のディスク情報、ノード220のI/O情報、ボリューム情報を含む。ディスク情報は、例えば、記憶デバイス210のディスク最大容量、ディスク使用率、ディスクI/O最大性能、ディスクI/O使用率等を含んでもよい。I/O情報は、ノード220の通信経路の情報、例えば、経路識別子、ノードID、通信パス最大帯域、通信パス使用率等を含んでもよい。ボリューム情報は、例えば、ボリュームID、ボリューム識別子、ノードID、ボリュームサイズ等を含んでもよい。
【0105】
次いで、ノード情報取得部121は、取得したディスク情報に基づいて、ノード情報テーブル114を更新し(ステップS12)、I/O情報に基づいて、通信経路情報テーブル116を更新し(ステップS13)、ボリューム情報に基づいて、ボリューム情報テーブル115を更新する(ステップS14)。
【0106】
次いで、仮想化環境情報取得部123は、仮想化環境情報取得処理(
図17参照)の実行を開始する(ステップS15)。この仮想化環境情報取得処理によると、仮想化環境情報テーブル118が更新される。
【0107】
仮想化環境情報処理の終了後、バックアップ情報取得部122はユーザ設定テーブル112からユーザの設定した情報を取得する(ステップS16)。本実施形態では、バックアップ情報取得部122は、リバランス方式の設定、バックアップ利用設定、仮想化環境管理システムとの連携の設定、コンテナ環境管理システムとの連携の設定等を取得する。なお、仮想化環境情報処理の終了後において、管理システム100は、ユーザ設定テーブル112の一部の情報(例えば、データローカリティ対象VMの対象とするVM等)に対するユーザの設定を受け付けて、ユーザ設定テーブル112に格納するようにしてもよい。
【0108】
次いで、バックアップ情報取得部122は、バックアップ情報取得処理(
図18参照)の実行を開始する(ステップS17)。このバックアップ情報取得処理によると、バックアップデータを使用する設定の場合にバックアップ情報テーブル117が更新される。
【0109】
次いで、コンテナ環境情報取得部124は、コンテナ環境情報取得処理(
図19参照)の実行を開始する(ステップS18)。このコンテナ環境情報取得処理によると、コンテナ環境情報テーブル119が更新される。
【0110】
コンテナ環境情報取得処理の終了後、リバランス選択部125は、リバランス優先度及びリバランス経路選択処理を実行する(ステップS19)。このリバランス優先度及びリバランス経路選択処理によると、リバランス経路テーブル113には、リバランスに使用する経路が登録される。
【0111】
次いで、完了予測時間計算部128は、完了予測時間計算処理(
図23参照)を実行し(ステップS20)、リバランス準備処理を終了する。完了予測時間計算処理によると、リバランス経路テーブル113に登録されている経路を使用したリバランス処理が完了するまでの予測時間(完了予測時間)が算出されて、リバランス時間管理テーブル120に登録されることとなる。なお、完了予測時間計算部128は、リバランス時間管理テーブル120に登録されている完了予測時間をユーザに対して通知(例えば、ユーザの端末への表示出力)するようにしてもよい。
【0112】
次に、仮想化環境情報取得処理(ステップS15)について説明する。
【0113】
図17は、一実施形態に係る仮想化環境情報取得処理のフローチャートである。
【0114】
仮想化環境情報取得部123は、仮想化環境管理システム500から仮想化環境情報(VMに関する仮想マシンID、仮想マシン名、ノードID、ホスト名、ボリュームID、データローカリティ、HAクラスタ)を取得する(ステップS31)。
【0115】
次いで、仮想化環境情報取得部123は、取得した仮想化環境情報に基づいて、仮想化環境情報テーブル118を更新し(ステップS32)、仮想化環境情報取得処理を終了する。
【0116】
次に、バックアップ情報取得処理(ステップS17)について説明する。
【0117】
図18は、一実施形態に係るバックアップ情報取得処理のフローチャートである。
【0118】
バックアップ情報取得部122は、ユーザ設定テーブル112にバックアップ利用の設定がされているか否を判定し(ステップS41)、バックアップ利用が設定されていない場合(ステップS41:No)には、バックアップ情報取得処理を終了する。
【0119】
一方、バックアップ利用が設定されている場合(ステップS41:Yes)には、バックアップ情報取得部122は、バックアップシステム300からバックアップ情報を取得する(ステップS42)。具体的には、バックアップ情報取得部122は、各ノード220のバックアップ情報監視部230にバックアップ情報を取得する要求を行い、要求を受けたバックアップ情報監視部230は、バックアップシステム300にバックアップ情報を要求してバックアップシステム300のバックアップマネージャ310からバックアップ情報として、バックアップしたボリュームに対応するバックアップIDと、データ差分断面情報、及びバックアップハッシュを受信し、バックアップ情報通知部229は、バックアップ情報監視部230が受信したバックアップ情報に対応するボリュームIDを対応付けてバックアップ情報取得部122に通知する。
【0120】
次いで、バックアップ情報取得部122は、取得した情報を、バックアップ情報テーブル117に登録する(ステップS43)。これにより、バックアップ情報テーブル117には、バックアップシステム300でバックアップされたボリュームについての最新の状態が反映されることとなる。次いで、バックアップ情報取得部122は、バックアップ保管先(本実施形態では、バックアップ保存装置400)に格納されているボリュームについての経路をリバランス経路テーブル113に追加し(ステップS44)、処理を終了する。
【0121】
次に、コンテナ環境情報取得処理(ステップS18)について説明する。
【0122】
図19は、一実施形態に係るコンテナ環境情報取得処理のフローチャートである。
【0123】
コンテナ環境情報取得部124は、ユーザ設定テーブル112にデータローカリティを考慮する設定がされているか否を判定し(ステップS51)、データローカリティを考慮する設定されていない場合(ステップS51:No)には、コンテナ環境情報取得処理を終了する。
【0124】
一方、データローカリティを考慮する設定されている場合(ステップS51:Yes)には、コンテナ環境情報取得部124は、コンテナ環境管理システム600からコンテナ環境情報(コンテナに対応するコンテナID、ノードID、ホスト名、コンテナ名、データローカリティ、ボリュームID)を取得する(ステップS52)。
【0125】
次いで、コンテナ環境情報取得部124は、取得したコンテナ環境情報に基づいて、コンテナ環境情報テーブル119を更新し(ステップS53)、コンテナ環境情報取得処理を終了する。
【0126】
次に、リバランス優先度およびリバランス経路選択処理(ステップS19)について説明する。
【0127】
図20は、一実施形態に係るリバランス優先度およびリバランス経路選択処理のフローチャートである。
【0128】
管理システム100のリバランス選択部125は、ノード情報テーブル114及びボリューム情報テーブル115を参照し、ストレージシステム20の複数のノード220の記憶デバイス210のディスク使用率が均等になるように、再配置(リバランス)を行うボリュームを選定する(ステップS61)。具体的には、例えば、リバランス選択部125は、ノード情報テーブル114のディスク使用率114dのディスク使用率を参照し、ディスク使用率が最も高いノード220と、ディスク使用率が最も低いノード220とを特定し、ディスク使用率が最も高いノード220(リバランス対象ノード)に存在するボリュームであって、ディスク使用率が最も低いノード220に同一のボリュームが存在しないボリュームの中から1以上のボリュームをリバランス対象ボリュームに選定する。リバランス対象ボリュームに選定するボリュームは、ディスク使用率が最も高いノード220からディスク使用率が最も低いノード220に移動した場合に、これらのノード220のディスク使用率が所定のディスク使用率以下となるようなデータサイズのボリュームが好ましい。ここで、選定されたディスク使用率が最も低いノード220がリバランスによりボリュームを送信させる転送先のノードとなる。
【0129】
次いで、リバランス選択部125は、選定された各ボリュームが格納されている記憶デバイス210を有する各ノード(バックアップ保存装置400も含む)からのすべての通信経路のエントリをリバランス経路テーブル113に登録する(ステップS62)。
【0130】
次いで、リバランス選択部125は、リバランス処理においてデータローカリティを考慮する設定であるか否かを判定する(ステップS63)。ここで、データローカリティを考慮する設定であるか否かは、ユーザ設定テーブル112のデータローカリティ考慮112gの値によって判定することができる。
【0131】
この結果、リバランス処理においてデータローカリティを考慮する設定でない場合(ステップS63:No)には、リバランス選択部125は、処理をステップS65に進める。一方、リバランス処理においてデータローカリティを考慮する設定である場合(ステップS63:Yes)には、リバランス選択部125は、データローカリティ対象のボリュームについての経路のエントリをリバランス経路テーブル113から削除し(ステップS64)、処理をステップS65に進める。なお、本処理では、ステップS61で選択されたボリュームについての経路をリバランス経路テーブル113に登録した後に、データローカリティ対象のボリュームの経路をリバランス経路テーブル113から削除するようにして、最終的にデータローカリティ対象のボリュームがリバランスで転送されないようにしているが、これに限られず、例えば、ステップS61において、データローカリティ対象のボリュームを選定しないようにしてもよい。
【0132】
ステップS65では、リバランス選択部125は、リバランス方式の設定が、性能優先、速度優先、バランスのいずれであるかを判定する。ここで、リバランス方式の設定は、ユーザ設定テーブル112のリバランス方式112cの値によって判定することができる。
【0133】
ステップS65でリバランス方式が性能優先であると判定した場合(ステップS65:性能優先)には、リバランス選択部125は、リバランス経路テーブル113から、各ボリュームについて、パス使用率が最も低い1つの経路を使用する経路として選定し(ステップS66)、処理をステップS69に進める。
【0134】
また、ステップS65でリバランス方式が速度優先であると判定した場合(ステップS65:速度優先)には、リバランス選択部125は、リバランス経路テーブル113から、各ボリュームについて、利用可能な経路を使用する経路として選定し、この際に、利用可能な経路が複数ある場合には複数の経路を使用する経路として選定し(ステップS67)、処理をステップS69に進める。なお、本実施形態では、速度優先の場合には、バックアップ保存装置400からの経路については、使用する経路として選定しなくてもよい。
【0135】
また、ステップS65でリバランス方式がバランスであると判定した場合(ステップS65:バランス)には、リバランス選択部125は、リバランス経路テーブル113から、各ボリュームについて、利用可能な経路のうち、パス使用率が設定された閾値(ユーザ設定テーブル112のバランス方式の閾値112dの値)以下のすべての経路を使用する経路として選定し(ステップS68)、処理をステップS69に進める。
【0136】
ステップS69では、リバランス選択部125は、リバランス経路テーブル113を、ステップS66,67,68において選定された経路のエントリのみに更新する(ステップ69)。
【0137】
この時点のリバランス経路テーブル113は、リバランス処理で実際に使用する経路を示しており、以降において、リバランス経路テーブル113に登録されている経路を用いてリバランス処理が行われることとなる。したがって、性能優先の設定がされている場合においては、パス使用率が最も少ない1つの経路を用いて、対象ボリュームが転送されることとなる。これにより、ストレージシステム20におけるリバランス処理による性能の低下の影響を低減することができる。また、ノード220でなく、バックアップ保存装置400を含む経路により対象ボリュームを転送する場合には、ストレージシステム20の性能の低下を防止することができる。
【0138】
また、速度優先の設定がされている場合においては、複数のノード220を含む複数の経路により対象ボリュームの異なる部分が並行して転送されることとなる。これにより、転送先のノード220に対して早期に対象ボリュームを転送させることができ、転送先のノード220の対象ボリュームを早期に利用可能にすることができる。
【0139】
また、バランスの設定がされている場合においては、パス使用率が所定の閾値以下の複数の経路により対象ボリュームの異なる部分が並行して転送されることとなる。これにより、ストレージシステム20の経路に対する負荷を抑制しつつ、比較的早期に対象ボリュームを転送させることができ、転送先のノード220の対象ボリュームを早期に利用可能にすることができる。
【0140】
次に、リバランス優先度およびリバランス経路選択処理におけるリバランス経路テーブルの生成について具体例を挙げて説明する。
【0141】
図21は、一実施形態に係るノード及びバックアップ保存装置の状態の一例を示す図であり、
図22は、一実施形態に係るリバランス経路テーブルの生成を説明する図である。
図21は、リバランス優先度およびリバランス経路選択処理を実行する前のノード及びバックアップ保存装置の状態を示し、
図22は、リバランス優先度およびリバランス経路選択処理の各時点におけるリバランス経路テーブル113を示している。なお、
図9のノード情報テーブル114、
図10のボリューム情報テーブル115、
図11の通信経路情報テーブル116は、
図21の状態に対応する内容となっており、以下の説明で適宜使用する。
【0142】
リバランス優先度およびリバランス経路選択処理を実行する前においては、ノードn1は、接続された記憶デバイス210にボリュームv1,v2,v5等を格納して管理し、ノードn2は、接続された記憶デバイス210にボリュームv1,v3を格納して管理し、ノードn3は、接続された記憶デバイス210にボリュームv3,v4を格納して管理し、ノードn4は、接続された記憶デバイス210にボリュームv2,v4,v5を格納して管理し、バックアップ保存装置400(バックアップ保存装置b1)は、ボリュームv1,v5を格納している。また、
図9のノード情報テーブル114に示すように、ノードn1のディスク使用率は80%であり、ノードn2のディスク使用率は70%であり、ノードn3のディスク使用率は20%であり、ノードn4のディスク使用率は30%である。
【0143】
また、
図11の通信経路情報テーブル116に示すように、ノードn1の経路e1のパス使用率は40%であり、ノードn2の経路e2のパス使用率は70%であり、ノードn3の経路e3のパス使用率は20%であり、ノードn4の経路e4のパス使用率は20%であり、バックアップ保存装置b1の経路eb1のパス使用率は10%である。
【0144】
この状態において、バランス優先度およびリバランス経路選択処理のステップS61においては、ディスク使用率が最も高いノード220としてノードn1が特定され、ディスク使用率が最も低いノード220としてノードn3が特定される。次いで、ノードn1に存在するボリュームであって、ノードn3に同一のボリュームが存在しないボリュームであるボリュームv1,v2,v5の中から1以上のボリュームがリバランス対象ボリュームに選定される。ここでは、ボリュームv1,v2,v5がリバランス対象ボリュームに選定されたものとして以下の説明をする。
【0145】
次いで、ステップS62においては、ボリュームv1,v2,v5が格納されている全てのパスの経路がリバランス経路テーブル113に登録される。この例では、リバランス経路テーブル113は、
図22(1)に示す状態となる。具体的には、リバランス経路テーブル113には、ボリュームv1について、ノードn1、ノードn2、バックアップ保存装置b1からの3つのパスが登録され、ボリュームv2については、ノードn1、ノードn4からのパスが登録され、ボリュームv5については、ノードn1、ノードn4、バックアップ保存装置b1からのパスが登録される。
【0146】
次いで、ステップS64において、データローカリティを考慮するように設定され、ボリュームv2がデータローカリティ対象のボリュームである場合には、
図22(1)に示すリバランス経路テーブル113から、ボリュームv2の経路のエントリが削除されることとなり、リバランス経路テーブル113は、
図22(2)に示す状態となる。
【0147】
リバランス経路テーブル113が
図22(2)に示す状態において、リバランス方式が性能優先である場合には、リバランス経路テーブル113から、ボリュームv1,v5について、それぞれ最もパス使用率の低い1つの経路(eb1,eb1)を使用する経路として選定する。この結果、ステップS69では、リバランス経路テーブル113は、
図22(3)に示す状態に更新される。
【0148】
また、リバランス経路テーブル113が
図22(2)に示す状態において、リバランス方式が性能優先である場合には、リバランス経路テーブル113から、ボリュームv1,v5について、利用可能な経路の複数(ボリュームv1について経路e1,e2、ボリュームv5について経路e1,e4)を使用する経路として選定する。なお、本実施形態では、バックアップ保存装置400からの経路eb1については、使用する経路として選定していないが、使用する経路として選定してもよい。この結果、ステップS69では、リバランス経路テーブル113は、
図22(4)に示す状態に更新される。
【0149】
また、リバランス経路テーブル113が
図22(2)に示す状態において、リバランス方式がバランスである場合には、リバランス経路テーブル113から、ボリュームv1,v5について、利用可能な経路(ボリュームv1について経路e1,e2,eb1、ボリュームv5について経路e1,e4,eb1)のうち、パス使用率が設定された閾値(この例では、50%)以下のすべての経路(ボリュームv1について経路e1,eb1、ボリュームv5について経路e1,e4,eb1)を使用する経路として選定する。この結果、ステップS69では、リバランス経路テーブル113は、
図22(5)に示す状態に更新される。
【0150】
次に、完了予測時間計算処理(ステップS20)について説明する。
【0151】
図23は、一実施形態に係る完了予測時間計算処理のフローチャートである。
【0152】
管理システム100の完了予測時間計算部128は、リバランス方式の設定が、性能優先、速度優先、バランスのいずれであるかを判定する(ステップS71)。ここで、リバランス方式の設定は、ユーザ設定テーブル112のリバランス方式112cの値によって判定することができる。
【0153】
ステップS71でリバランス方式が性能優先であると判定した場合(ステップS71:性能優先)には、完了予測時間計算部128は、リバランス経路テーブル113を参照してリバランス対象の各ボリューム(対象ボリューム)を取得し、ボリューム情報テーブル115を参照して対象ボリュームのサイズを取得し、通信経路情報テーブル116を参照して各対象ボリュームの経路の残帯域を特定し、各対象ボリュームのボリュームサイズを各残帯域で除算することにより、各対象ボリュームのデータコピー想定時間を計算する(ステップS72)。
【0154】
ステップS71でリバランス方式が速度優先又はバランスであると判定した場合(ステップS71:性能優先又はバランス)には、完了予測時間計算部128は、リバランス経路テーブル113を参照してリバランス対象の各ボリューム(対象ボリューム)を取得し、ボリューム情報テーブル115を参照して対象ボリュームのサイズを取得し、通信経路情報テーブル116を参照して各対象ボリュームの経路の残帯域を特定する。次いで、完了予測時間計算部128は、同一の対象ボリュームについて複数の経路がある場合は、各経路の残帯域比率に合わせて対象ボリュームのサイズを分割する。次いで、完了予測時間計算部128は、同一の対象ボリュームについて複数の経路がある場合は、各経路に割り振ったサイズを、経路の残帯域で除算することにより、この対象ボリュームのデータコピー想定時間を計算する一方、同一の対象ボリュームについて複数の経路がない場合は、対象ボリュームのサイズを、経路の残帯域で除算することにより、この対象ボリュームのデータコピー想定時間を計算する(ステップS73)。
【0155】
次いで、完了予測時間計算部128は、各対象ボリュームに対して計算されたデータコピー想定時間を加算することにより、リバランス全体の完了予測時間を算出する(ステップS74)。次いで、完了予測時間計算部128は、算出した完了予測時間をリバランス時間管理テーブル120の完了予測時間120aに格納し、完了予測時間に基づいてタイムアウト時間を算出し、算出したタイムアウト時間をリバランス時間管理テーブル120のタイムアウト時間120bに格納する(ステップS75)。なお、タイムアウト時間は、完了予測時間の所定倍(例えば、1.5倍)としてもよい。
【0156】
次に、各ノード220におけるノード情報通知処理について説明する。
【0157】
図24は、一実施形態に係るノード情報通知処理のフローチャートである。
【0158】
ノード情報通知処理は、管理システム100からノード情報の要求を受け付けた各ノード220によって実行される。
【0159】
ノード220の容量監視部222は、ノード220に接続された管理対象の記憶デバイス210(対象記憶デバイスという)に容量情報を要求し(ステップS81)、対象記憶デバイス210から容量情報を受信する(ステップS82)。ここで、容量情報は、例えば、対象記憶デバイス210のディスク最大容量、ディスク使用率、ディスクI/O最大性能、ディスクI/O使用率等を示す情報を含む。
【0160】
次いで、I/O監視部224は、自身のノード220を含む計算機200にI/O情報及びボリューム情報を要求し(ステップS83)、計算機200からI/O情報及びボリューム情報を取得する(ステップS84)。ここで、I/O情報は、計算機200のノード220の通信経路の情報、例えば、経路識別子、ノードID、通信パス最大帯域、通信パス使用率等を含む。また、ボリューム情報は、例えば、ボリュームID、ボリューム識別子、ノードID、ボリュームサイズ等を含む。
【0161】
次いで、容量通知部223及びI/O通知部225は、ステップS82で容量監視部222が受信した容量情報と、ステップS83でI/O監視部224が取得したI/O情報及びボリューム情報とを管理システム100のマネージャ110に通知する(ステップS85)。
【0162】
次に、リバランス対象のボリュームのデータを転送先に転送させるリバランス処理を制御するリバランス制御処理について説明する。
【0163】
図25は、一実施形態に係るリバランス制御処理のフローチャートである。
【0164】
リバランス制御処理は、例えば、定期的に実行されてもよいし、リバランス準備処理が実施された後に実行されてもよいし、リバランス処理を実行してもよい所定の時間に実行されてもよい。リバランス利用リソース計算部127は、リバランス時間管理テーブル120を参照し、未実施のリバランス処理、すなわち、指示時刻が設定されていないエントリがあるか否かを判定する(ステップS91)。この結果、未実施のリバランス処理がない場合(ステップS91:NO)には、リバランス利用リソース計算部127は、リバランス制御処理を終了する。
【0165】
一方、未実施のリバランス処理がある場合(ステップS91:Yes)には、リバランス利用リソース計算部127は、リバランス指示処理(
図26参照)を実行する(ステップS92)。リバランス指示処理によると、リバランスに関与するノード220に対してリバランスするボリュームを転送先のノード220に送信させるリバランス指示が送信され、リバランス指示を受け取ったノード220がリバランス処理を実行することとなる。
【0166】
リバランス利用リソース計算部127は、リバランス処理を開始してからの時間がタイムアウト時間を超過したか否かを判定する(ステップS93)。この結果、タイムアウト時間を超過していない場合(ステップS93:No)には、リバランス利用リソース計算部127は、ノード220からリバランス終了を受信したか否かを判定する(ステップS94)。
【0167】
この結果、ノード220からリバランス終了を受信していない場合(ステップS94:No)には、リバランス利用リソース計算部127は、処理をステップS93に進める一方、ノード220からリバランス終了を受信した場合(ステップS94:Yes)には、リバランス利用リソース計算部127は、リバランス制御処理を終了する。なお、リバランス終了を受領した後においては、転送が終了したボリュームについてリバランス対象ノードから削除してもよい。
【0168】
一方、リバランス処理を開始してからの時間がタイムアウト時間を超過している場合(ステップS93:Yes)には、リバランス処理を中止したほうがよいことを意味しているので、リバランス利用リソース計算部127は、リバランス処理を中止させる処理(リバランス中止処理)を実行し(ステップS95)、リバランス制御処理を終了する。これにより、リバランス処理がタイムアウト時間を超過して継続して実行されることを適切に防止することができる。なお、リバランス処理を終了するまでに転送が終了したボリュームについては、リバランス対象ノードから削除してもよい。
【0169】
次に、リバランス指示処理(ステップS92)について説明する。
【0170】
図26は、一実施形態に係るリバランス指示処理のフローチャートである。
【0171】
リバランス指示部126は、リバランス経路テーブル113に登録されているボリュームの送信元となるノードの1つを処理対象として、ループ1の処理(ステップS101~S107)を実行する。ここで、ループ1の処理で処理対象とされているノードを対象ノードということとする。
【0172】
リバランス指示部126は、リバランス経路テーブル113から対象ノードに関するエントリを全て抽出する(ステップS101)。
【0173】
次いで、リバランス指示部126は、各エントリに対応するボリュームを転送先に送信させる指示内容を作成する(ステップS102)。ここで、同一のボリュームについて複数の経路によりリバランスする場合には、経路毎に同一のボリュームの異なる範囲を並行して転送させる指示内容とする。
【0174】
次いで、リバランス指示部126は、指示内容にバックアップデータを利用する内容が含まれているか否かを判定する(ステップS103)。
【0175】
この結果、指示内容にバックアップデータを利用する内容が含まれていない場合(ステップS103:NO)には、リバランス指示部126は、処理をステップS105に進める一方、指示内容にバックアップデータを利用する内容が含まれている場合(ステップS103:YES)には、リバランス指示部126は、指示内容に対して、バックアップデータに対して、現在のデータとの差分を解消させるための指示(差分追い付き指示:例えば、バックアップデータのデータ差分断面情報)を含め(ステップS104)、処理をステップS105に進める。
【0176】
ステップS105では、リバランス指示部126は、ユーザ設定テーブル112からリバランス方式の閾値112dの閾値(I/O閾値情報)を取得し(ステップS105)、対象ノードへの最終的な指示内容を決定する(ステップS106)。具体的には、リバランス指示部126は、リバランス方式がバランスである場合には、ステップS105で取得したI/O閾値情報を含めた指示内容とする。ここで、指示内容にI/O閾値情報が含まれている場合には、ノード220のI/O制御部226は、リバランスの指示内容のボリュームのデータ転送においては、パス使用率がI/O閾値情報の閾値以下となるように通信を制御することとなる。したがって、経路に対する負荷を抑制した状態でリバランスすることができる。
【0177】
次いで、リバランス指示部126は、決定した指示内容のリバランスを実行させるリバランス指示を対象ノード220に送信し(ステップS107)、対象ノードに対するループ1の処理を終了する。
【0178】
リバランス指示部126は、対象ノードに対するループ1の処理を終了した場合には、ループ1の処理を実行していない他のノードを新たな対象ノードとして、ループ1の処理を実行し、リバランス経路テーブル113に含まれるすべてのノードに対してループ1の処理を実行した後に、リバランス時間管理テーブル120のリバランス指示時刻120cに、リバランス指示を行った時刻(リバランス指示時刻)を格納し(ステップS108)、リバランス指示処理を終了する。
【0179】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0180】
例えば、上記実施形態では、計算機システム1に、バックアップシステム300及びバックアップ保存装置400を備えるようにしていたが、バックアップシステム300及びバックアップ保存装置400を備えていなくてもよい。
【0181】
例えば、上記実施形態では、ノード220が制御対象とする記憶デバイスを計算機200内の記憶デバイス210としていたが、本発明はこれに限られず、計算機200に外部接続された記憶デバイスであってもよい。
【0182】
また、上記実施形態では、リバランス処理の設定として、性能優先と、速度優先と、バランスのいずれかを選択して設定可能であったが、本発明はこれに限られず、性能優先、速度性能、または、バランスのいずれかに固定的に設定されていてもよい。
【符号の説明】
【0183】
1…計算機システム、10…ネットワーク、20…ストレージシステム、100…管理システム、101…プロセッサ、110…マネージャ、200…計算機、210…記憶デバイス、220…ノード、300…バックアップシステム、400…バックアップ保存装置、500…仮想化環境管理システム、600…コンテナ環境管理システム