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

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

▶ 株式会社日立製作所の特許一覧

特開2023-2151管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
<>
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図1
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図2
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図3
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図4
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図5
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図6
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図7
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図8
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図9
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図10
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図11
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図12
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図13
  • 特開-管理システム、データリバランス管理方法、及びデータリバランス管理プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023002151
(43)【公開日】2023-01-10
(54)【発明の名称】管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20221227BHJP
   G06F 13/10 20060101ALI20221227BHJP
   G06F 11/34 20060101ALI20221227BHJP
   G06F 11/30 20060101ALI20221227BHJP
   G06F 9/50 20060101ALI20221227BHJP
【FI】
G06F3/06 301X
G06F13/10 340A
G06F3/06 301Z
G06F3/06 304F
G06F3/06 304N
G06F11/34 133
G06F11/30 140M
G06F9/50 150D
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021103191
(22)【出願日】2021-06-22
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】堀江 俊洋
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MA14
5B042MC29
(57)【要約】
【課題】データのリバランスを適切に実行できるようにする。
【解決手段】制御対象の記憶デバイス210に対するデータの入出力を制御する複数のノード220を有し、所定のデータ単位を複数の記憶デバイス210に冗長格納して管理するストレージシステム20におけるデータのリバランスを管理する管理システム100において、管理システム100は、プロセッサを有し、プロセッサを、複数のノード220のデータの入出力の負荷情報を取得し、所定のリバランス対象のデータ単位の送信元として、負荷情報に基づいて、複数のノード220の中からする1つのノード220を決定し、リバランス対象のデータ単位を、決定したノード220から所定の転送先のノード220に送信させるように構成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムにおけるデータのリバランスを管理する管理システムであって、
前記管理システムは、プロセッサ部を有し、
前記プロセッサ部は、
複数の前記ノードのデータの入出力の負荷情報を取得し、
所定のリバランス対象のデータ単位の送信元として、前記負荷情報に基づいて、前記複数のノードの中からする1つのノードを決定し、
前記リバランス対象のデータ単位を、前記決定したノードから所定の転送先のノードに送信させる
管理システム。
【請求項2】
前記プロセッサ部は、
リバランス対象のデータ単位の転送に対して、各ストレージシステムの性能維持を重視する第1設定、または前記データ単位の転送処理効率を重視する第2設定とのいずれかの設定を受け付け、
前記第1設定を受け付けている場合に、所定のリバランス対象のデータ単位の送信元として、前記負荷情報に基づいて、前記複数のノードの中からする1つのノードを決定し、
前記第2設定を受け付けている場合に、所定のリバランス対象のデータ単位の送信元として、前記リバランス対象のデータ単位を格納している記憶デバイスに接続された複数のノードの中の複数のノードを決定し、
所定のリバランス対象のデータ単位の送信元として、複数のノードが決定された場合に、前記リバランス対象のデータ単位の異なる部分を前記複数のノードから所定の転送先のノードに並行して送信させる
請求項1に記載の管理システム。
【請求項3】
前記プロセッサ部は、
前記第2設定を受け付けている場合に、所定のリバランス対象のデータ単位の送信元として、前記負荷情報に基づいて、前記リバランス対象のデータ単位を格納している記憶デバイスに接続された複数のノードの中から複数のノードを決定する
請求項2に記載の管理システム。
【請求項4】
前記プロセッサ部は、
所定のリバランス対象のデータ単位の送信元として、前記負荷情報が所定の負荷以下の複数のノードを決定する
請求項3に記載の管理システム。
【請求項5】
前記負荷情報は、各データ単位にアクセスできる経路毎の負荷情報であり、
前記プロセッサ部は、
前記負荷情報に基づいて、所定のリバランス対象のデータ単位を送信する経路として、前記負荷情報に基づいて、前記リバランス対象のデータ単位を送信可能な経路の中から1つの経路を決定し、
前記リバランス対象のデータ単位を、前記決定した経路により読み出して所定の転送先のノードに送信させる
請求項1に記載の管理システム。
【請求項6】
前記ストレージシステムに格納されているデータ単位について所定の時点のデータが所定のバックアップ装置に格納されており、
前記プロセッサ部は、前記バックアップ装置に格納されているデータ単位を示すバックアップ情報を取得し、
前記バックアップ情報に基づいて、前記リバランス対象のデータ単位が前記バックアップ装置に格納されているか否かを判定し、
所定のリバランス対象のデータ単位の所定時点のデータがバックアップ装置に格納されている場合に、所定のリバランス対象のデータ単位の送信元を、前記バックアップ装置に決定し、
前記バックアップ装置から読み出して前記転送先のノードに接続された記憶デバイスに格納させるとともに、前記格納されたデータに対して前記所定の時点からの前記データ単位の変更差分を反映させる
請求項1に記載の管理システム。
【請求項7】
前記ストレージシステムに格納されているデータ単位について所定の時点のデータ単位のデータが所定のバックアップ装置に格納されており、
前記プロセッサは、前記バックアップ装置に格納されているデータ単位を示すバックアップ情報を取得し、
所定のリバランス対象のデータ単位の所定時点のデータがバックアップ装置に格納されている場合に、前記所定のリバランス対象のデータ単位の送信元として、前記負荷情報と前記バックアップ装置の入出力の負荷情報とに基づいて、前記複数のノードと前記バックアップ装置との中から1つを決定し、
送信元として前記バックアップ装置が決定された場合に、前記バックアップ装置から読み出して前記転送先のノードに接続された記憶デバイスに格納させるとともに、前記格納されたデータに対して前記所定の時点からの前記データ単位の変更差分を反映させる
請求項1に記載の管理システム。
【請求項8】
制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムによるデータのリバランスを管理する管理システムによるデータリバランス管理方法であって、
前記管理システムは、
複数の前記ノードのデータの入出力の負荷情報を取得し、
所定のリバランス対象のデータ単位の送信元として、前記負荷情報に基づいて、前記複数のノードの中からする1つのノードを決定し、
前記リバランス対象のデータ単位を、前記決定したノードから所定の転送先のノードに送信させる
データリバランス管理方法。
【請求項9】
制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムにおけるデータのリバランスを管理するコンピュータに実行されるデータリバランス管理プログラムであって、
前記コンピュータに、
複数の前記ノードのデータの入出力の負荷情報を取得させ、
所定のリバランス対象のデータ単位の送信元として、前記負荷情報に基づいて、前記複数のノードの中からする1つのノードを決定させ、
前記リバランス対象のデータ単位を、前記決定したノードから所定の転送先のノードに送信させる
データリバランス管理プログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のノードにより構成されるストレージシステムにおけるデータのリバランスの技術に関する。
【背景技術】
【0002】
複数台のサーバに搭載された記憶デバイスをソフトウェア機能によって統合し、サーバ上で仮想的なストレージが構成されたHCI(Hyper―Converged Infrastructure)システムが知られている。
【0003】
HCIシステムにおいては、各ノードのI/O負荷が不均等になったり、ノードや記憶デバイスを増設したり、交換したりした場合には、データのリバランス処理を実行することが行われる。
【0004】
リバランス処理によると、使用率の高い記憶デバイスのデータが使用率の低い記憶デバイスに移動される。
【0005】
関連する技術として、例えば、特許文献1には、計算機システムに含まれる1以上の計算機に接続され圧縮機能を有する記憶デバイスを少なくとも1つ含んだ複数の記憶デバイスに対応した複数の物理容量を示す情報を含んだ容量情報を基に、リバランス機能を有するエンティティに対する論理容量配分に関する定義を含む指示内容を決定する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第2018/109816号
【発明の概要】
【発明が解決しようとする課題】
【0007】
例えば、リバランス処理中は、各ノードのI/O性能が低下し、各ノード上で稼働するシステムの性能へ影響を与えてしまう。このようなリバランス処理による稼働するシステムの性能への影響を回避するために、リバランス処理を、夜間や休日などのシステム停止時にユーザが手動実行することが多く、ユーザの運用負荷を高めている。
【0008】
本発明は、上記事情に鑑みなされたものであり、その目的は、データのリバランスを適切に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、一観点に係る管理システムは、制御対象の記憶デバイスに対するデータの入出力を制御する複数のノードを有し、所定のデータ単位を複数の記憶デバイスに冗長格納して管理するストレージシステムにおけるデータのリバランスを管理する管理システムであって、前記管理システムは、プロセッサ部を有し、前記プロセッサ部は、複数の前記ノードのデータの入出力の負荷情報を取得し、所定のリバランス対象のデータ単位の送信元として、前記負荷情報に基づいて、前記複数のノードの中からする1つのノードを決定し、前記リバランス対象のデータ単位を、前記決定したノードから所定の転送先のノードに送信させる。
【発明の効果】
【0010】
本発明によれば、データのリバランスを適切に行うことができる。
【図面の簡単な説明】
【0011】
図1図1は、一実施形態に係る計算機システムの全体構成図である。
図2図2は、一実施形態に係る計算機の構成図である。
図3図3は、一実施形態に係るバックアップシステムの構成図である。
図4図4は、一実施形態に係る管理システムの構成図である。
図5図5は、一実施形態に係るリバランス優先度テーブルの構成図である。
図6図6は、一実施形態に係るリバランス経路テーブルの構成図である。
図7図7は、一実施形態に係る枯渇条件テーブルの構成図である。
図8図8は、一実施形態に係るノード容量テーブルの構成図である。
図9図9は、一実施形態に係るノードI/Oテーブルの構成図である。
図10図10は、一実施形態に係るバックアップ情報テーブルの構成図である。
図11図11は、一実施形態に係るテーブル更新処理のフローチャートである。
図12図12は、一実施形態に係る容量及びI/O情報通知処理のフローチャートである。
図13図13は、一実施形態に係るバックアップ情報通知処理のフローチャートである。
図14図14は、一実施形態に係るリバランス制御処理のフローチャートである。
【発明を実施するための形態】
【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とを含む。ストレージシステム20と、管理システム100と、バックアップシステム300と、バックアップ保存装置400とは、ネットワーク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に格納されている。
【0025】
図2は、一実施形態に係る計算機の構成図である。
【0026】
計算機200は、記憶デバイス210と、プロセッサ211と、メモリ212と、ネットワークI/F(ネットワークインターフェイス)213と、を有する。
【0027】
記憶デバイス210は、典型的には、物理的な不揮発性の記憶デバイスであり、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)である。記憶デバイス210は、各種データを記憶する。
【0028】
ネットワークI/F213は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク10を介して他の装置(例えば、管理システム100、バックアップシステム300)と通信する。
【0029】
プロセッサ211は、メモリ212及び/または記憶デバイス210に格納されているプログラムに従って各種処理を実行する。
【0030】
メモリ212は、記憶部の一例であり、ノード220を格納する。ノード220は、プロセッサ211によって実行される。
【0031】
ノード220は、そのノード220に対応した記憶デバイス210の論理記憶空間を、例えば、計算機200内のアプリケーションや、計算機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を有する。
【0032】
ストレージサービス221は、I/O要求を受け付けそのI/O要求に従い記憶デバイス210に対してデータのライトまたはリードを実行する仮想的なコントローラである仮想的なストレージコントローラに相当する。ストレージサービス221は、容量監視部222と、容量通知部223と、I/O監視部224と、I/O通知部225と、リバランス部226と、データ差分管理部227と、バックアップ情報監視部228と、バックアップ情報通知部229とを有する。
【0033】
容量監視部222は、自身が属するノード220(自ノードという)に対応する記憶デバイス210の論理容量及び物理容量を監視する(例えば定期的にチェックする)。容量通知部223は、容量監視部222により特定された論理容量及び物理容量をマネージャ110に通知する。
【0034】
I/O監視部224は、自ノードの記憶デバイス210に対するI/O負荷を監視する。I/O通知部225は、I/O監視部224により特定されたI/O負荷をマネージャ110に通知する。リバランス部226は、マネージャ110からの指示に従ってデータを転送するリバランス処理を実行する。データ差分管理部227は、所定の時点のデータ(ボリューム)からの差分断面を示す情報(差分断面情報)を管理する。バックアップ情報監視部228は、自ノードの記憶デバイス210のデータのバックアップを監視する。バックアップ情報通知部229は、バックアップ情報監視部228により特定されたバックアップの情報をマネージャ110に通知する。
【0035】
図3は、一実施形態に係るバックアップシステムの構成図である。
【0036】
バックアップシステム300は、プロセッサ301と、メモリ302と、入力デバイス303と、出力デバイス304と、ネットワークI/F305と、を有する。
【0037】
入力デバイス303は、例えばキーボード及びポインティングデバイスであり、各種入力を受け付ける。出力デバイス304は、例えば液晶ディスプレイ等の表示デバイスであり、各種情報を表示出力する。入力デバイス303及び出力デバイス304を、例えばタッチパネルのような一体構成としてもよい。
【0038】
ネットワークI/F305は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク10を介して他の装置(例えば、計算機200、バックアップ保存装置400)と通信する。
【0039】
プロセッサ301は、メモリ302に格納されているプログラムに従って各種処理を実行する。
【0040】
メモリ302は、記憶部の一例であり、バックアップマネージャ310を格納する。バックアップマネージャ310は、プロセッサ301によって実行される。
【0041】
バックアップマネージャ310は、バックアップサービス320を有する。
【0042】
バックアップサービス320は、ストレージシステム20の記憶デバイス210に格納されているデータのバックアップデータを、バックアップ保存装置400に格納させる処理を行う。データのバックアップは、例えば、ボリューム(データ単位の一例)を単位として行われる。バックアップサービス320は、バックアップ情報通知部321を有する。バックアップ情報通知部321は、記憶デバイス210に格納されているデータのバックアップに関する情報(バックアップ情報)を計算機200に送信する。バックアップ情報は、バックアップしたボリュームの識別子(ボリュームID)と、バックアップしたデータのバックアップ時のデータ差分断面情報と、バックアップハッシュとを含む。
【0043】
図4は、一実施形態に係る管理システムの構成図である。
【0044】
管理システム100は、プロセッサ101と、メモリ102と、入力デバイス103と、出力デバイス104と、ネットワークI/F105と、を有する。
【0045】
入力デバイス103は、例えばキーボード及びポインティングデバイスであり、各種入力を受け付ける。出力デバイス104は、例えば液晶ディスプレイ等の表示デバイスであり、各種情報を表示出力する。入力デバイス103及び出力デバイス104を、例えばタッチパネルのような一体構成としてもよい。
【0046】
プロセッサ101は、メモリ102に格納されているプログラムに従って各種処理を実行する。
【0047】
メモリ102は、記憶部の一例であり、マネージャ110を格納する。ネージャ110は、プロセッサ101によって実行される。
【0048】
マネージャ110は、データマネージメントサービス111を有する。
【0049】
データマネージメントサービス111は、ノード220から各種情報を取得し、各種情報に基づいて、リバランスするデータ単位の送信経路(少なくとも送信元のノード)を決定し、決定した内容に対応するデータのリバランス処理の指示をノード220に送信する処理を実行する。データマネージメントサービス111は、テーブル設定部118と、容量情報受信部119と、I/O情報受信部120と、枯渇検知部121と、バックアップ情報受信部122と、バックアップデータ検知部123と、リバランス選択部124と、リバランス指示部125とを有する。また、データマネージメントサービス111は、リバランス優先度テーブル112と、リバランス経路テーブル113と、枯渇条件テーブル114と、ノード容量テーブル115と、ノードI/Oテーブル116と、バックアップ情報テーブル117とを管理する。
【0050】
テーブル設定部118は、テーブル112~114の設定及び更新を行う。容量情報受信部119は、各ノード220から記憶デバイス210の容量情報を受信し、ノード容量テーブル115に登録する。I/O情報受信部120は、各ノード220から記憶デバイス210のI/O情報を受信し、ノードI/Oテーブル116に登録する。枯渇検知部121は、各ノード220の記憶デバイス210の容量枯渇を検知する。バックアップ情報受信部122は、バックアップシステム300からバックアップしたデータのバックアップ情報を受信し、バックアップ情報テーブル117に登録する。バックアップデータ検知部123は、データのバックアップデータが存在するか否かを検知する。リバランス選択部124は、リバランス対象のボリュームのデータを転送する経路を選択する処理を行う。リバランス指示部125は、リバランス選択部124により選択された経路でボリュームを転送させる指示をノード220のリバランス部226に送信する。
【0051】
図5は、一実施形態に係るリバランス優先度テーブルの構成図である。
【0052】
リバランス優先度テーブル112は、リバランス処理の優先度を管理するテーブルであり、リバランス処理毎のエントリ(行)を格納する。リバランス優先度テーブル112のエントリは、リバランスID112aと、ボリュームID112bと、優先度112cとのカラムを有する。
【0053】
リバランスID112aには、リバランス処理を識別する識別子(リバランスID)が格納される。ボリュームID112bには、エントリに対応するリバランス処理の対象となるボリュームの識別子(ボリュームID)が格納される。優先度112cには、エントリに対応するリバランス処理の優先度が格納される。本実施形態では、優先度の値が小さいほど優先度が高いことを表している。
【0054】
例えば、1番目の行によれば、リバランスIDがr1で識別されるリバランス処理は、ボリュームIDがv2,v3のボリュームが対象であり、リバランス処理の優先度が“2”であることを示している。また、1番目の行と2番目の行とによれば、ボリュームIDがv1のボリュームのリバランス処理より、ボリュームIDがv2,v3のボリュームのリバランス処理の方が、優先度が高い(値が小さい)ことから、ボリュームIDがv1のボリュームのリバランス処理を優先して実施することを示している。
【0055】
図6は、一実施形態に係るリバランス経路テーブルの構成図である。
【0056】
リバランス経路テーブル113は、リバランスを行う経路を管理するテーブルであり、経路毎のエントリを格納する。経路は、少なくともノードを含み、ケーブルや、通信I/Fの物理的なポートや、仮想的ポートを含んでもよい。リバランス経路テーブル113のエントリは、ノードID113aと、ボリュームID113bと、経路ID113cとのカラムを有する。
【0057】
ノードID113aには、エントリに対応する経路に属するノード220の識別子(ノードID)が格納される。なお、本実施形態では、ノードID113aには、ノード220ではないが、バックアップ保存装置400を示すIDも格納される。図6では、b1のように、bが含まれるノードIDがバックアップ保存装置のIDを示している。ボリュームID113bには、エントリに対応する経路でリバランス(転送)できるボリュームのID(ボリュームID)が格納される。経路ID113cには、エントリに対応する経路のID(経路ID)が格納される。ここで、経路としては、ノード220を含み、ケーブルや、I/Fの物理的なポートや、仮想的なポートを含んでもよい。
【0058】
リバランス経路テーブル113においては、同一のボリュームに対して複数の経路が登録されている。
【0059】
例えば、2番目の行によれば、ボリュームIDがv3のボリュームについて、ノードIDがn1のノード220(ノードn1)に繋がる経路IDがe5の経路があることを示し、4番目の行によれば、ボリュームIDがv3のボリュームについて、ノードIDがn3のノード220(ノードn3)に繋がる経路IDがe10の経路があることを示している。これら行によると、ボリュームIDがv3のボリュームは、ノードn1に繋がるe5の経路と、ノードn3に繋がるe10の経路とのいずれかの経路により転送することができることがわかる。
【0060】
図7は、一実施形態に係る枯渇条件テーブルの構成図である。
【0061】
枯渇条件テーブル114は、枯渇条件に関する情報を格納する。枯渇条件テーブル114は、ノード220毎のエントリを格納する。枯渇条件テーブル114のエントリは、ノードID114aと、容量枯渇条件114bと、I/O帯域枯渇条件114cとのカラムを有する。
【0062】
ノードID114aには、エントリに対応するノード220のノードIDが格納される。容量枯渇条件114bには、エントリに対応するノード220での記憶デバイス210の記憶容量が枯渇していると判断される枯渇条件(容量枯渇条件)が格納される。I/O帯域枯渇条件114cには、エントリに対応するノード220でのI/O帯域が枯渇していると判断される枯渇条件(I/O帯域枯渇条件)が格納される。
【0063】
例えば、1番目の行によれば、ノードn1の容量枯渇条件は、記憶デバイス210の残りの物理容量(物理残容量)が10GB未満であり、I/O帯域枯渇条件は、ノードn1のI/O帯域の残量(残I/O帯域量)が10kbps未満であることを示している。
【0064】
図8は、一実施形態に係るノード容量テーブルの構成図である。
【0065】
ノード容量テーブル115は、ノード220に対応する記憶デバイス210の論理容量及び物理容量の情報を格納する。ノード容量テーブル115は、ノード毎のエントリを格納する。ノード容量テーブル115のエントリは、ノードID115aと、論理使用容量115bと、論理残容量115cと、物理使用容量115dと、物理残容量115eとのカラムを有する。
【0066】
ノードID115aには、エントリに対応するノード220のノードIDが格納される。論理使用容量115bには、エントリに対応するノード220に対応する記憶デバイス210の記憶領域の論理的な容量(論理容量)の中の使用している容量(論理使用容量)が格納される。論理残容量115cには、エントリに対応するノード220に対応する記憶デバイス210の論理容量の中の未使用で残っている容量(論理残容量)が格納される。物理使用容量115dには、エントリに対応するノード220に対応する記憶デバイス210の記憶領域の物理的な容量(物理容量)の中の使用している容量(物理使用容量)が格納される。物理残容量115eには、エントリに対応するノード220に対応する記憶デバイス210の物理容量の中の未使用で残っている容量(物理残容量)が格納される。
【0067】
例えば、1番目の行によれば、ノードn1の論理使用容量が400GBであり、論理残容量が200GBであり、物理使用容量が60GBであり、物理残容量が140GBであることを示している。
【0068】
図9は、一実施形態に係るノードI/Oテーブルの構成図である。
【0069】
ノードI/Oテーブル116は、経路毎のI/O負荷情報を格納する。ノードI/Oテーブル116は、経路毎のエントリを格納する。ノードI/Oテーブル116のエントリは、経路ID116aと、ノードID116bと、I/O帯域使用量116cと、残I/O帯域量116dとのカラムを有する。
【0070】
経路ID116aには、エントリに対応する経路の経路IDが格納される。ノードID116bには、エントリに対応する経路に含まれるノード220のノードIDが格納される。I/O帯域使用量116cには、エントリに対応する経路におけるI/O帯域の使用量(I/O帯域使用量)が格納される。残I/O帯域量116dには、エントリに対応する経路における残っているI/O帯域の量(残I/O帯域量)が格納される。
【0071】
例えば、1番目の行によれば、経路e1は、ノードn1が含まれており、I/O帯域使用量が300kbpsであり、残I/O帯域量が0kbpsであることを示している。
【0072】
図10は、一実施形態に係るバックアップ情報テーブルの構成図である。
【0073】
バックアップ情報テーブル117は、バックアップシステム300によりバックアップされたボリュームの情報(バックアップ情報)を格納する。バックアップ情報テーブル117は、ボリュームのバックアップ処理毎のエントリを格納する。バックアップ情報テーブル117のエントリは、バックアップID117aと、ボリュームID117bと、データ差分断面情報117cと、バックアップハッシュ117dとのカラムを有する。
【0074】
バックアップID117aには、エントリに対応するバックアップ処理に対応する識別子(バックアップID)が格納される。ボリュームID117bには、エントリに対応するバックアップ処理の対象のボリュームのボリュームIDが格納される。データ差分断面情報117cには、エントリに対応するボリュームの所定の時点の状態との差分部分を特定可能な情報(データ差分断面情報)を示す情報が格納される。このデータ差分断面情報を比較することにより、同一のボリュームに対して差分がある部分を把握することができる。バックアップハッシュ117dには、エントリに対応するボリュームについてのハッシュ値が格納される。
【0075】
例えば、1番目の行によれば、バックアップIDがb1のバックアップ処理では、ボリュームIDがv2のボリュームをバックアップし、そのボリュームのデータ差分断面情報が20200105_v0002_1092131のデータであり、ボリュームのハッシュ値が78tffa978s3jであることを示している。
【0076】
次に、計算機システム1における処理動作について説明する。
【0077】
まず、管理システム100によるテーブル更新処理について説明する。
【0078】
図11は、一実施形態に係るテーブル更新処理のフローチャートである。テーブル更新処理は、ユーザ(例えば管理者)により設定が更新される際に実施される。
【0079】
テーブル設定部118は、ユーザから、入力デバイス103経由で、各ノード220に関する情報(例えばノードID)の入力を受ける(ステップS11)。
【0080】
テーブル設定部118は、ユーザから、入力デバイス103経由で、ノード220について、そのノード220に対応した記憶デバイス210の枯渇条件に関する情報の入力を受ける(ステップS12)。
【0081】
テーブル設定部118は、ステップS11,S12で受けた情報を枯渇条件テーブル114に登録する、すなわち、枯渇条件テーブル114を更新する(ステップS13)。この際、記憶デバイス210とノード220は1対1で対応しているため、テーブル設定部118は、記憶デバイス210に関する情報からノード220を一意に決定することができる。なお、容量枯渇条件114bと、I/O帯域枯渇条件114cとに予め初期値が登録されていてもよい。この場合には、ステップS12をスキップしてもよい。
【0082】
テーブル設定部118は、ユーザから、入力デバイス103経由で、ノード220が有するリバランス部226の機能に関する情報(例えば、リバランスID、ボリュームID)を受ける(ステップS14)。
【0083】
テーブル設定部118は、ユーザから、入力デバイス103経由で、リバランス部226によるリバランス処理の優先度に関する情報(例えば優先度の値)を受ける(ステップS15)。
【0084】
テーブル設定部118は、ステップS14,S15で受けた情報をリバランス優先度テーブル112に登録する、つまり、リバランス優先度テーブル112を更新する(ステップS16)。なお、リバランスID及びボリュームIDは、予めリバランス優先度テーブル112に登録されていてもよい。この場合には、ステップS14をスキップしてもよい。
【0085】
テーブル設定部118は、ユーザから、入力デバイス103経由で、ノード220が有するボリュームをバックアップしたバックアップデータに関する情報(例えば、ボリュームID、そのボリュームのバックアップ先のバックアップ保存装置400のID)を受ける(ステップS17)。
【0086】
テーブル設定部118は、ユーザから、入力デバイス103経由で、ボリュームのリバランス処理における経路(リバランス経路)に関する情報(例えば経路ID)を受ける(ステップS18)。
【0087】
テーブル設定部118は、ステップS17,S18で受けた情報をリバランス経路テーブル113に登録する、つまり、リバランス経路テーブル113を更新する(ステップS19)。
【0088】
次に、計算機200の各ノード220のストレージサービス221により実施される容量及びI/O情報通知処理について説明する。
【0089】
図12は、一実施形態に係る容量及びI/O情報通知処理のフローチャートである。この容量及びI/O情報通知処理は、例えば、定期的に実施される。ここで、図12の説明において、ストレージサービス221を含んだノード220を対象ノード220といい、対象ノード220に対応する記憶デバイス210を対象記憶デバイス210という。
【0090】
容量監視部222は、対象記憶デバイス210に容量情報を要求し(ステップS21)、対象記憶デバイス210から容量情報として、対象記憶デバイス210の論理使用容量、論理残容量、物理使用容量、及び物理残容量を示す情報を受信する(ステップS22)。
【0091】
I/O監視部224は、対象ノード220から、対象ノード220におけるI/O情報として、対象ノード220の各経路におけるI/O帯域使用量及び残I/O帯域量を取得する(ステップS23)。
【0092】
容量通知部223及びI/O通知部225は、ステップS22で容量監視部222が受信した容量情報と、ステップS23でI/O監視部224が取得したI/O情報とを管理システム100のマネージャ110に通知する(ステップS24)。なお、管理システム100のマネージャ110は、容量情報及びI/O情報を受信する度に、次のような更新処理を実施する。すなわち、容量情報受信部119は、受信した容量情報(論理使用容量、論理残容量、物理使用容量及び物理残容量を示す情報)を、ノード容量テーブル115に登録し、I/O情報受信部120は、受信したI/O情報(対象ノード220の各経路におけるI/O帯域使用量及び残I/O帯域量)を、ノードI/Oテーブル116に登録する。これにより、管理システム100においては、ノード容量テーブル115及びノードI/Oテーブル116には、各ノード220における最新の状態が反映されることとなる。
【0093】
次に、計算機200の各ノード220のストレージサービス221により実施されるバックアップ情報通知処理について説明する。
【0094】
図13は、一実施形態に係るバックアップ情報通知処理のフローチャートである。このバックアップ情報通知処理は、例えば、定期的に実施される。
【0095】
バックアップ情報監視部228は、バックアップシステム300にバックアップ情報を要求し(ステップS41)、バックアップシステム300のバックアップマネージャ310からバックアップ情報として、バックアップしたボリュームに対応するバックアップIDと、データ差分断面情報、及びバックアップハッシュを受信する(ステップS42)。
【0096】
バックアップ情報通知部229は、ステップS42でバックアップ情報監視部228が受信したバックアップ情報を管理システム100のマネージャ110に通知する(ステップS43)。なお、管理システム100のマネージャ110は、バックアップ情報を受信する度に、次のような更新処理を実施する。すなわち、バックアップ情報受信部122は、受信したバックアップ情報を、バックアップ情報テーブル117に登録する。これにより、管理システム100においては、バックアップ情報テーブル117には、バックアップシステム300でバックアップされたボリュームについての最新の状態が反映されることとなる。
【0097】
次に、管理システム100のマネージャ110により実施されるリバランス制御処理について説明する。
【0098】
図14は、一実施形態に係るリバランス制御処理のフローチャートである。リバランス制御処理は、定期的に実施されてもよい。また、リバランス制御処理は、各ノード220に対応する記憶デバイス2210の物理容量の使用率(物理容量使用率)の差が所定の閾値を超えた時に実施されてもよい。例えば、閾値を20%とし、ノードn1、ノードn2、ノードn3の物理容量使用率が20%,30%、50%とすると、ノードn1とノードn3との物理容量使用率の差が30%であり、閾値を超えているので、リバランス制御処理を実行するようにしてもよい。
【0099】
枯渇検知部121は、枯渇検知処理を実施していないノードである未実施ノードがあるか否かを判定する(ステップS51)。この結果、未実施ノードがない場合(ステップS51:NO)には、枯渇検知部121は、リバランス制御処理を終了する。
【0100】
一方、未実施ノードがある場合(ステップS51:YES)、枯渇検知部121は、未実施ノードに対応した記憶デバイス210が容量枯渇しているか否かを、枯渇条件テーブル114とノード容量テーブル115を参照して判断する(ステップS52)。
【0101】
例えば、図7の枯渇条件テーブル114において、ノードn1の枯渇条件から、ノードn1では、物理残容量が10GB未満である時に枯渇と判断される。ノード容量テーブル115において、ノードn1は、論理残容量は200GBであり、物理残容量は140GBである。ノードn1の枯渇条件が満たされていないため、ノードn1については枯渇と判断されない。一方、例えば、枯渇条件テーブル114において、ノードn2の枯渇条件から、ノードn2では物理残容量が10GB未満の時に枯渇と判断される。ノード容量テーブル115において、ノードn2の論理残容量は200GBであり、物理残容量は8GBである。ノードn2の枯渇条件が満たされているため、ノードn2については枯渇と判断される。
【0102】
ステップS52において、枯渇が検知されない場合(ステップS52:NO)、枯渇検知部121は、処理をステップS51に進める。
【0103】
一方、ステップS52で、枯渇が検知された場合(ステップS52:YES)、リバランス選択部124は、枯渇条件テーブル114、リバランス経路テーブル113、及びリバランス優先度テーブル112を参照して枯渇に対象可能なリバランス処理を検索し、リバランス処理を実施できるか否かを判定する(ステップS53)。このように枯渇が検知された場合にリバランス処理の検索へと進むので、枯渇が検知されないといったリバランスが不要状況のときにまでリバランス処理を走らせることを避けることができる。
【0104】
例えば、ステップS52でノードn2における枯渇が検知されている場合、リバランス選択部124は、リバランス経路テーブル113からノードn2に対応する記憶デバイス210にはボリュームv1が格納されていることがわかる。また、リバランス優先度テーブル112から、ボリュームv1はリバランス処理r2でリバランスが実施可能なことがわかる。
【0105】
ステップS53において、リバランス処理を実施できないと判定した場合(ステップS53:NO)、リバランス選択部124は、容量不足である警告をユーザに通知し(例えば警告を出力デバイス104に表示し)(ステップS61)、処理をステップS51に進める。
【0106】
一方、実施可能なリバランス処理が見つかった場合(ステップS53:YES)、リバランス選択部124は、リバランス優先度テーブル112を参照して、実施するリバランス処理を選択する(ステップS54)。例えば、もし仮に、ボリュームv1と、ボリュームv3に対するリバランス処理が実施可能である場合には、リバランス優先度テーブル112の優先度112cを参照すると、ボリュームv1についてのリバランス処理(リバランスIDr2)の優先度は、“1”であり、ボリュームv3についてのリバランス処理(リバランスIDr1)の優先度は“2”であり、リバランス処理(リバランスIDr2)の優先度が最も高いことがわかる。このため、リバランス選択部124は、リバランスIDがr2のリバランス処理を選択する。このように、複数のリバランス処理を実施可能な場合には優先度の最も高いリバランス処理を優先して選択することができる。
【0107】
次いで、リバランス選択部124は、リバランス経路テーブル113とノードI/Oテーブル116と、を参照し、リバランス処理に対する設定情報に従って、リバランス処理の対象のボリューム(対象ボリューム)についてのリバランスで使用する経路を選択する(ステップS55)。
【0108】
ここで、リバランス処理に対する設定情報は、例えば、ユーザによって予め設定されている情報であり、ストレージシステム20のノード220の性能を優先する性能優先設定(第1設定)と、データを転送先のノード220が使用可能となるまでの速度(転送処理効率)を優先する速度優先設定(第2設定)とがある。
【0109】
性能優先設定の場合には、リバランス選択部124は、リバランス経路テーブル113を参照し、対象ボリュームを含む経路を特定し、ノードI/Oテーブル116を参照し、特定した経路の中でI/O負荷が最も低い(例えば、残I/O帯域量が最も多い)経路を1つ選択する。これにより、対象ボリュームの転送元のノード220が決定される。
【0110】
一方、速度優先設定の場合には、リバランス選択部124は、リバランス経路テーブル113を参照し、対象ボリュームを含む全ての経路を特定し、それらの経路が複数あれば、その中の複数の経路を選択する。ここで、選択する複数の経路は、特定した全ての経路であってもよいし、複数の経路の中の一部の経路でもよい。また、リバランス選択部124は、特定した経路の中のI/O負荷が所定の負荷以下である複数の経路を選択するようにしてもよい。これにより、対象ボリュームの転送元の複数のノード220が決定される。
【0111】
次いで、リバランス選択部124は、ステップS54で選択されたリバランス処理を、ステップS55で決定された経路によりリバランス処理を実行させるための指示内容を決定する(ステップS56)。なお、同一のボリュームについて複数の経路によりリバランスする場合には、各経路毎に同一のボリュームの異なる範囲を並行して転送させる指示内容に決定する。なお、指示内容において、対象ボリュームの送信先のノードは、所定のノード、例えば、物理残容量が多いノードとしてもよい。
【0112】
次いで、リバランス選択部124は、指示内容がバックアップデータを利用する内容が含まれているか否かを判定する(ステップS57)。
【0113】
この結果、指示内容がバックアップデータを利用する内容が含まれていない場合(ステップS57:NO)には、リバランス選択部124は、処理をステップS59に進める一方、指示内容がバックアップデータを利用する内容が含まれている場合(ステップS57:YES)には、リバランス選択部124は、指示内容に対して、バックアップデータに対して、現在のデータとの差分を解消させるための指示(差分追い付き指示:例えば、バックアップデータのデータ差分断面情報)を含め(ステップS58)、処理をステップS59に進める。
【0114】
ステップS59では、リバランス指示部125は、リバランス選択部124によって作成された指示内容を、リバランス処理に関与するノード220(例えば、経路におけるデータの送信元となるノード)に対して送信する。
【0115】
指示内容を受信したノード220のリバランス部226は、指示内容に従ってリバランス処理を実行する。例えば、リバランス部226は、指示内容に従った経路により対象ボリュームを、転送先に転送する。また、指示内容に差分追い付き指示が含まれている場合には、データ差分管理部227は、指示に含まれるデータ差分断面情報と、バックアップデータに対応する対象ボリュームの現在のデータ差分断面情報とに基づいて、対象ボリュームとバックアップデータとの差分を特定し、その差分に対応するデータを、リバランス先に送信し、差分に対応するデータにより更新させる。リバランス部226は、リバランスが終了した場合には、リバランス終了をマネージャ110に返す。
【0116】
マネージャ110のリバランス指示部125は、リバランス部226からリバランス終了の通知を受信すると(ステップS60)、処理をステップS51に進める。
【0117】
上記したリバランス制御処理によると、性能優先設定がされている場合においては、I/O負荷が最も少ない1つの経路(例えば、ノード220)を用いて、対象ボリュームが転送されることとなる。これにより、ストレージシステム20におけるリバランス処理による性能の低下の影響を低減することができる。また、ノード220でなく、バックアップ保存装置400を含む経路により対象ボリュームを転送するようにすると、ストレージシステム20の性能の低下を防止することができる。
【0118】
また、速度優先設定がされている場合においては、複数のノード220を含む複数の経路により対象ボリュームの異なる部分が並行して転送されることとなる。これにより、転送先のノード220に対して早期に対象ボリュームを転送させることができ、転送先のノード220の対象ボリュームを早期に利用可能にすることができる。
【0119】
なお、リバランス制御処理は、定期的に実行することに限られず、例えば、ストレージシステム20に対して新たなノード220を追加した場合や、ストレージシステム20の故障したノード220を新たなノード220に交換した場合に実行するようにしてもよい。この場合におけるリバランス制御処理としては、例えば、新たなノード220に対してリバランス処理で転送すべき各ボリュームを対象に、ステップS54~S60の処理を繰り返し実行するようにすればよい。
【0120】
なお、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0121】
例えば、上記実施形態では、計算機システム1に、バックアップシステム300及びバックアップ保存装置400を備えるようにしていたが、バックアップシステム300及びバックアップ保存装置400を備えていなくてもよい。
【0122】
また、上記実施形態では、リバランス処理の設定として、ノードの性能を優先する性能優先設定と、データを転送先のノードが使用可能となるまでの速度を優先する速度優先設定とを選択して設定可能であったが、本発明はこれに限られず、性能優先設定または速度優先設定のいずれかに固定的に設定されていてもよい。
【符号の説明】
【0123】
1…計算機システム、10…ネットワーク、20…ストレージシステム、100…管理システム、101…プロセッサ、110…マネージャ、200…計算機、210…記憶デバイス、220…ノード、300…バックアップシステム、400…バックアップ保存装置

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14