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

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

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

特開2023-93215ストレージ管理システム、及びストレージ管理方法
<>
  • 特開-ストレージ管理システム、及びストレージ管理方法 図1
  • 特開-ストレージ管理システム、及びストレージ管理方法 図2
  • 特開-ストレージ管理システム、及びストレージ管理方法 図3
  • 特開-ストレージ管理システム、及びストレージ管理方法 図4
  • 特開-ストレージ管理システム、及びストレージ管理方法 図5
  • 特開-ストレージ管理システム、及びストレージ管理方法 図6
  • 特開-ストレージ管理システム、及びストレージ管理方法 図7
  • 特開-ストレージ管理システム、及びストレージ管理方法 図8
  • 特開-ストレージ管理システム、及びストレージ管理方法 図9
  • 特開-ストレージ管理システム、及びストレージ管理方法 図10
  • 特開-ストレージ管理システム、及びストレージ管理方法 図11
  • 特開-ストレージ管理システム、及びストレージ管理方法 図12
  • 特開-ストレージ管理システム、及びストレージ管理方法 図13
  • 特開-ストレージ管理システム、及びストレージ管理方法 図14
  • 特開-ストレージ管理システム、及びストレージ管理方法 図15
  • 特開-ストレージ管理システム、及びストレージ管理方法 図16
  • 特開-ストレージ管理システム、及びストレージ管理方法 図17
  • 特開-ストレージ管理システム、及びストレージ管理方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023093215
(43)【公開日】2023-07-04
(54)【発明の名称】ストレージ管理システム、及びストレージ管理方法
(51)【国際特許分類】
   G06F 13/14 20060101AFI20230627BHJP
   G06F 13/10 20060101ALI20230627BHJP
   G06F 3/06 20060101ALI20230627BHJP
   G06F 11/34 20060101ALI20230627BHJP
   G06F 9/50 20060101ALI20230627BHJP
【FI】
G06F13/14 330E
G06F13/10 340A
G06F13/14 330B
G06F3/06 301E
G06F3/06 301X
G06F11/34 176
G06F9/50 120Z
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021208703
(22)【出願日】2021-12-22
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】東郷 一輝
(72)【発明者】
【氏名】出口 彰
(72)【発明者】
【氏名】柴山 司
(72)【発明者】
【氏名】鈴木 貴敦
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA34
5B042MA05
5B042MA14
5B042MC25
5B042MC29
(57)【要約】
【課題】ストレージシステムの性能を迅速に適切に調整することができるようにする。
【解決手段】複数のストレージノード100で構成されたストレージシステム1000と、管理装置200とを有するストレージ管理システム1において、ストレージノード100は、ストレージデバイスと、仮想的にリソースが割り当てられ、ストレージデバイスに対するアクセス制御を行うインスタンスとを有し、ストレージ管理システム1は、ストレージノード100のインスタンスを管理するインスタンス管理ノード600を有し、管理装置200を、ストレージノード100のインスタンスに対して割り当てられるリソースの構成の変更の要否を判定し、リソースの構成の変更が必要である場合に、インスタンス管理ノード600にインスタンスに割り当てるリソース構成を変更させるように構成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のストレージノードで構成されたストレージシステムと、管理装置とを有するストレージ管理システムであって、
前記ストレージノードは、ストレージデバイスと、仮想的にリソースが割り当てられ、前記ストレージデバイスに対するアクセス制御を行うインスタンスとを有し、
前記ストレージ管理システムは、前記ストレージノードのインスタンスを管理するインスタンス管理ノードを有し、
前記管理装置は、
前記ストレージノードの前記インスタンスに対して割り当てられるリソースの構成の変更の要否を判定し、
前記リソースの構成の変更が必要である場合に、前記インスタンス管理ノードに前記インスタンスに割り当てるリソース構成を変更させる
ストレージ管理システム。
【請求項2】
前記管理装置は、
前記リソースの構成を変更する所定の契機であるかを判定し、
所定の契機となった場合に、前記インスタンス管理ノードに変更指示を送信し、
前記インスタンス管理ノードは、変更指示を受け取った場合に、インスタンスのリソース構成を変更する
請求項1に記載のストレージ管理システム。
【請求項3】
前記管理装置は、
前記リソースの構成を変更する際に、前記インスタンスが処理を担当するホスト計算機からのI/O処理を他のストレージノードのインスタンスに実行させるように切り替え、その後、前記リソース構成の変更を行わせる
請求項1に記載のストレージ管理システム。
【請求項4】
前記インスタンスが処理を担当するI/O処理の代替が可能な機能を有するインスタンスが他のストレージノードに備えられており、
前記管理装置は、
前記リソースの構成を変更する際に、ホスト計算機からのI/O処理を、代替が可能な機能を有するインスタンスを有するストレージノードに切り替える
請求項3に記載のストレージ管理システム。
【請求項5】
複数の前記ストレージノードの各インスタンスは、自身のI/O処理を実行する機能と、他の一のストレージノードが担当するI/O処理の代替が可能な機能とを有するように構成されている、
請求項4に記載のストレージ管理システム。
【請求項6】
前記管理装置は、
前記ストレージシステムから前記ストレージシステムの稼働情報を収集し、前記稼働情報に基づいて、前記ストレージシステムのインスタンスの性能のネックとなり、構成を変更させる必要があるリソースを特定し、
特定した前記リソースを増加させるように前記インスタンスのリソース構成を変更させる
請求項1に記載のストレージ管理システム。
【請求項7】
前記インスタンスとして利用可能なリソース構成の違うインスタンスタイプが管理されており、
前記管理装置は、
特定した前記リソースを増加させることのできるインスタンスタイプを特定し、
前記特定したインスタンスタイプのリソース構成に変更させる
請求項6に記載のストレージ管理システム。
【請求項8】
前記管理装置は、
前記リソースを増加させた場合に新たにネックとなる他のリソースを特定し、前記他のリソースについても増加させるようにインスタンスのリソース構成を変更させる
請求項6に記載のストレージ管理システム。
【請求項9】
特定された前記リソースによる稼働性能が所定の基準値を満たす前記リソース量である増強リソース量を特定し、
前記増強リソース量以上のリソース量となるようにインスタンスのリソース構成を変更させる
請求項6に記載のストレージ管理システム。
【請求項10】
複数のストレージノードで構成されたストレージシステムと、管理装置とを有するストレージ管理システムによるストレージ管理方法であって、
前記ストレージノードは、ストレージデバイスと、仮想的にリソースが割り当てられ、前記ストレージデバイスに対するアクセス制御を行うインスタンスとを有し、
前記ストレージ管理システムは、前記ストレージノードのインスタンスを管理するインスタンス管理ノードを有し、
前記管理装置は、前記ストレージノードの前記インスタンスに対して割り当てられるリソースの構成の変更の要否を判定し、
前記リソースの構成の変更が必要である場合に、前記インスタンス管理ノードに前記インスタンスに割り当てるリソース構成を変更させる
ストレージ管理方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステムを構成するストレージノードにおける、ストレージデバイスに対するアクセスを制御するインスタンスを管理する技術に関する。
【背景技術】
【0002】
Capex(Capital Expenditure)低減のために、パブリッククラウドを利用するユーザが増加している。ストレージベンダは、このような動向へ対応し、ハイブリッドクラウド実現のために、パブリッククラウドで動作可能なストレージシステムを開発している。クラウドでは、リソースを動的に割り当て、変更することが容易であり、ストレージシステムを少ないコストで効率的に運用できる可能性がある。
【0003】
ストレージシステムの性能を向上する技術として、例えば、特許文献1には、ストレージシステムにストレージノードを追加することにより、各ストレージノードの負荷を軽減して、ストレージシステムの性能を向上する技術(スケールアウト技術)が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2019-101703号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、スケールアウト技術を利用する場合、ストレージシステムでの性能問題を解決するためには、ストレージシステムにおけるネックの検出、ノード増設による対処という流れになる。
【0006】
例えば、ストレージシステムのCPUがネックとなる場合、ノードを増設し、過負荷のノードから増設したノードにボリュームを移動するという対処の流れが必要となり、ボリュームの移動に長時間を要するので性能ネックを解消するために長時間を要してしまい、その間のストレージシステムの性能低下が問題となる。
【0007】
また、ノードを増設する場合には、CPUがネックにもかかわらず、CPUだけではなく、ネックに関わらないメモリ、ネットワーク等の他のリソースが追加されることとなるので、リソースの使用効率が悪くなる問題が生じる。このような問題は、CPU以外のリソースがネックとなる場合も同様に生じる。
【0008】
また、性能ネックを解消する対処を行う際には、ノード増設や、ボリューム移行等を実際に行うための計画を検討しなければならず、ストレージシステムの運用面でも複雑な問題が生じる。
【0009】
本発明は、上記事情に鑑みなされたものであり、その目的は、ストレージシステムの性能を迅速に適切に調整することのできる技術を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、一観点に係るストレージ管理システムは、複数のストレージノードで構成されたストレージシステムと、管理装置とを有するストレージ管理システムであって、前記ストレージノードは、ストレージデバイスと、仮想的にリソースが割り当てられ、前記ストレージデバイスに対するアクセス制御を行うインスタンスとを有し、前記ストレージ管理システムは、前記ストレージノードのインスタンスを管理するインスタンス管理ノードを有し、前記管理装置は、前記ストレージノードの前記インスタンスに対して割り当てられるリソースの構成の変更の要否を判定し、前記リソースの構成の変更が必要である場合に、前記インスタンス管理ノードに前記インスタンスに割り当てるリソース構成を変更させる。
【発明の効果】
【0011】
本発明によれば、ストレージシステムの性能を迅速に適切に調整することができる。
【図面の簡単な説明】
【0012】
図1図1は、一実施形態に係るストレージ管理システムの全体構成図である。
図2図2は、一実施形態に係るストレージノードの構成図である。
図3図3は、一実施形態に係る管理装置の構成図である。
図4図4は、一実施形態に係るストレージ管理システムの処理概要を説明する図である。
図5図5は、一実施形態に係る管理装置のメモリの構成図である。
図6図6は、一実施形態に係るインスタンス管理テーブルの構成図である。
図7図7は、一実施形態に係る稼働情報管理テーブルの構成図である。
図8図8は、一実施形態に係るホストI/O管理テーブルの構成図である。
図9図9は、一実施形態に係る性能ネック管理テーブルの構成図である。
図10図10は、一実施形態に係るインスタンスタイプ管理テーブルの構成図である。
図11図11は、一実施形態に係る対処実行管理テーブルの構成図である。
図12図12は、一実施形態に係る情報収集処理のフローチャートである。
図13図13は、一実施形態に係る性能ネック分析処理のフローチャートである。
図14図14は、一実施形態に係る性能ネック解消方法決定処理のフローチャートである。
図15図15は、一実施形態に係る対処実行処理のフローチャートである。
図16図16は、一実施形態に係るストレージシステムのストレージノードの構成例である。
図17図17は、一実施形態に係る保守閉塞処理のフローチャートである。
図18図18は、一実施形態に係る保守回復処理のフローチャートである。
【発明を実施するための形態】
【0013】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0014】
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
【0015】
また、以下の説明では、プログラムを動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えばNIC(Network Interface Card))を用いながら行うため、処理の主体がプロセッサとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサ或いはそのプロセッサを有する計算機(システム)が行う処理としてもよい。
【0016】
また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0017】
また、以下の説明では、「インスタンス」は、物理的な1台以上のコンピュータ上のリソースを用いてソフトウェアによって構成された仮想的な計算機(仮想計算機)を示し、パブリッククラウド上で構成されてもよいし、プライベートクラウド上で構成されてもよい。
【0018】
また、以下の説明では、「インスタンスタイプ」は、CPU周波数、コア数、メモリ速度、メモリ容量、ネットワークインターフェース(I/F)帯域などのリソースのスペック値の組み合わせで決められ、インスタンスの構成の種類を示している。なお、スペックの値は、CPU周波数、コア数、メモリ速度、メモリ容量、ネットワークI/F帯域であってもよく、それ以外の値であってもよい。
【0019】
図1は、一実施形態に係るストレージ管理システムの全体構成図である。
【0020】
ストレージ管理システム1は、ストレージシステム1000と、管理装置200と、1以上のホスト計算機300と、インスタンス管理ノード600とを備える。ストレージシステム1000は、1以上のストレージノード100を備える。本実施形態では、インスタンス管理ノード600と、ストレージシステム1000とは、クラウド10に設けられ、クラウド10の1以上の物理計算機により構成されている。
【0021】
ストレージノード100と、管理装置200と、ホスト計算機300と、インスタンス管理ノード600とは、ネットワーク400を介して接続されている。ネットワーク400は、例えば、LAN(Local Area Network)やWAN(Wide Area Network)等であってよい。
【0022】
ホスト計算機300は、例えば業務システムの中核をなすコンピュータ、ファイルサーバ等で構成され、ストレージシステム1000に対してリード/ライトを要求する。ホスト計算機300は、物理計算機であってもよいし、仮想計算機であってもよい。ホスト計算機300は、例えば、複数のストレージノード100がクラスタを構成している場合には、クラスタを構成しているストレージノードとの間でマルチパスが設定される。なお、マルチパスの設定は、例えば、Linux(登録商標)を用いている場合にはmultipath-toolsを用いることができ、ホスト計算機300がWindows(登録商標) serverである場合には、MPIOサービスを用いることができる。
【0023】
管理装置200は、例えば、CPU、メモリ、ネットワークI/F等のハードウェア資源と、管理プログラムなどのソフトウェア資源とを備えたコンピュータである。管理装置200は、物理計算機であってもよし、仮想計算機であってもよい。管理装置200は、管理プログラムによってストレージシステム1000から情報を取得し、ユーザインターフェース(GUI(Graphical User Inteface)、CLI(Command Line Interface))を介して情報を表示する。管理装置200は、ユーザインターフェースを介して、システム管理者によって入力された指示をストレージシステム1000に送信する機能を有する。管理装置200は、オンプレミス上の装置であってもよいし、クラウド上の装置であってもよい。
【0024】
インスタンス管理ノード600は、クラウド10におけるインスタンスを管理するノードである。
【0025】
ストレージノード100は、ホスト計算機300で使用されるユーザデータを管理する。
【0026】
次に、ストレージノード100について詳細に説明する。
【0027】
図2は、一実施形態に係るストレージノードの構成図である。
【0028】
ストレージノード100は、1以上のインスタンス110と、1以上のストレージデバイス120とを含む。
【0029】
インスタンス110は、クラウド10の物理計算機のリソースを用いてソフトウェアによって構成された仮想的な計算機である。インスタンス110は、仮想マシン(Virtual Machine)でもよい。
【0030】
インスタンス110は、CPU111と、メモリ112と、ネットワークI/F113とを含む。インスタンス110におけるCPU111と、メモリ112と、ネットワークI/F113とのリソース量は、予め決められたインスタンスタイプに対応するリソース量となっている。CPU111は、クラウド10の物理計算機の物理的なCPUが仮想的に割り当てられた仮想的なCPUである。CPU111は、メモリ112に格納されたプログラムや管理情報に基づいて、ストレージデバイス120に対するアクセス制御等の処理を行う。メモリ112は、クラウド10の物理計算機の物理的なメモリが仮想的に割り当てられた仮想的なメモリである。メモリ112は、CPU111により実行されるプログラムと、CPU111により参照または更新される管理情報とを格納する。ネットワークI/F113は、ネットワーク400を介して、ストレージデバイス120、他のストレージノード100、管理装置200、ホスト計算機300、及びインスタンス管理ノード600と通信するためのI/Fである。
【0031】
ストレージデバイス120は、物理的もしくは仮想的な記憶デバイスであり、典型的には、不揮発性の記憶デバイスでよい。ストレージデバイス120は、例えば、HDD(Hard Disk Drive)またはSSD(Solid StateDrive)でよい。ストレージデバイス120は、ホスト計算機300で利用するユーザデータを格納する。
【0032】
次に、管理装置200について詳細に説明する。
【0033】
図3は、一実施形態に係る管理装置の構成図である。
【0034】
管理装置200は、CPU210と、メモリ220と、ネットワークI/F230とを含む。CPU210は、メモリ220に格納されたプログラムや管理情報に基づいて、ストレージノード100やストレージシステム1000全体を制御する処理を行う。メモリ220は、CPU210により実行されるプログラムと、CPU210により参照または更新される管理情報とを格納する。ネットワークI/F230は、ネットワーク400を介して、ストレージノード100、ホスト計算機300、及びインスタンス管理ノード600と通信するためのI/Fである。
【0035】
次に、ストレージ管理システム1の処理概要について説明する。
【0036】
図4は、一実施形態に係るストレージ管理システムの処理概要を説明する図である。
【0037】
ストレージ管理システム1の管理装置200は、ストレージノード100から稼働情報500を収集する処理(情報収集処理:S4100)を行う(図4(1))。ここで、稼働情報500は、ストレージシステム1000に対するホスト計算機300からのI/O情報(I/Oレスポンス時間、I/Oスループット)や、各ストレージノード100のハードウェア稼働率(CPU稼働率、メモリ使用量、ネットワーク使用帯域)などのストレージシステム1000の性能やストレージシステムの使用状況を把握するために必要な情報である。稼働情報500は、ストレージノード100で定期的に記録され、ストレージノード100のインスタンス110のメモリ112、又は、インスタンス110が通信可能なストレージデバイス120に格納される。
【0038】
図4(1)においては、管理装置200がストレージノード100に対して、情報収集要求を出すことによって、ストレージノード100から稼働情報500を収集してもよいし、ストレージノード100が定期的に自発的に管理装置200に稼働情報500を送信することで、管理装置200が稼働情報500を収集してもよい。
【0039】
管理装置200は、収集した稼働情報500を、メモリ220に格納する。なお、管理装置200は、収集した稼働情報500を接続された不揮発性のストレージデバイスに格納してもよい。
【0040】
次いで、管理装置200は、稼働情報500を監視・分析することで、ストレージシステム1000での性能問題を検出し、性能問題を検出した場合、稼働情報500と管理情報510とを分析することで、ストレージシステム1000での性能のネックとなる部位(性能ネック部位)の検出する処理(性能ネック分析処理:ステップS4200)を行う(図4(2))。管理情報510は、ストレージシステム1000、ストレージノード100に対する設定情報や性能分析に必要な静的な情報であり、インスタンス110に対して設定している現在のインスタンスタイプの情報や、ストレージシステム1000のボリューム構成、圧縮・重複排除機能の適用有無などの論理構成情報や、ストレージシステム1000の現在のスペックに対する目標I/O性能情報である。図4(2)の性能ネック分析処理では、管理装置200は、ストレージノード100のインスタンス110内のどのリソース(CPU,メモリ、ネットワークI/F)が足りていないか、すなわち、性能ネック部位がどこかを検出する。
【0041】
次いで、管理装置200は、検出した性能ネック部位について、性能ネックを解消する方法を決定する処理(ネック解消方法決定処理:S4300)を行う(図4(3))。例えば、管理装置200は、或るストレージノード100のインスタンス110のCPU111のスペックが足りないことで、ストレージシステム1000の目標I/O性能(基準値)が達成できていないと判明した場合、管理装置200は、CPU111のスペックを向上させることのできるインスタンスタイプを変更後のインスタンスタイプとして決定する。また、管理装置200は、性能ネック解消のためのインスタンスタイプの変更の契機(タイプ変更契機)の決定を行う。例えば、管理装置200は、ホスト計算機300のI/Oへの影響を少なくするために、I/Oが少ない深夜の時間帯をタイプ変更契機として決定する。
【0042】
次いで、管理装置200は、インスタンスタイプを変更すべきストレージノード100にタイプ変更指示を送信し(図4(4))、インスタンス管理ノード600にタイプ変更指示を送信する(図4(5))ための処理(対処実行処理:ステップS4400)を実行する。タイプ変更指示は、ストレージノード100に対して、インスタンスタイプの変更可能な状態への推移を行う指示をしてから、インスタンスタイプの変更、ストレージノード100の定常運用状態への推移を行う指示をするようにしてもよい。ここで、インスタンスタイプ変更可能な状態とは、ストレージノード100が保守閉塞している状態であってもよいし、ストレージノード100が停止している状態であってもよい。ストレージノード100の定常運用状態への推移を行う指示は、保守回復指示であってもよいし、ノード起動指示であってもよい。
【0043】
また、タイプ変更対象のインスタンスを有するストレージノード100が2以上ある場合、管理装置200は、ストレージシステム1000の冗長性を保つために、1つのストレージノード毎にタイプ変更の処理を行ってもよい。1つのストレージノードずつ変更処理を実行するために、あるストレージノード100に対するインスタンスのタイプ変更を行う処理の実行が正常に完了するまで、他のストレージノード100に対するインスタンスのタイプ変更指示を待機する。そして、すべての変更対象のストレージノード100に対するインスタンスのタイプ変更処理が完了したとき、対処実行処理を終了する。
【0044】
次に、管理装置200のメモリ220の構成について説明する。
【0045】
図5は、一実施形態に係る管理装置のメモリの構成図である。
【0046】
管理装置200のメモリ220は、プログラム2000と、管理テーブル3000とを格納する。
【0047】
プログラム2000は、稼働情報収集プログラム2100と、性能ネック分析プログラム2200と、性能ネック解消方法決定プログラム2300と、対処実行プログラム2400とを含む。
【0048】
管理テーブル3000は、インスタンス管理テーブル3100と、稼働情報管理テーブル3200と、ホストI/O管理テーブル3300と、性能ネック管理テーブル3400と、インスタンスタイプ管理テーブル3500と、対処実行管理テーブル3600とを含む。
【0049】
稼働情報収集プログラム2100は、ストレージノード100から稼働情報500を収集し、稼働情報管理テーブル3200とホストI/O管理テーブル3300にデータを記録する。
【0050】
性能ネック分析プログラム2200は、ホストI/O管理テーブル3300を分析して性能問題の発生を検出し、稼働情報管理テーブル3200を分析して性能ネック部位を検出する。性能ネック分析プログラム2200は、分析により得られた性能ネック部位に関する情報を、性能ネック管理テーブル3400に記録する。
【0051】
性能ネック解消方法決定プログラム2300は、性能ネック管理テーブル3400の情報に基づいて、性能ネックを解消するために、どのストレージノード100に対して変更を加えるか、ストレージノード100のインスタンス110をどのインスタンスタイプに変更するか、及びホストI/Oへの影響を最小化するために、どの契機で変更を加えるかを決定し、決定した情報を、対処実行管理テーブル3600に記録する。また、性能ネック解消方法決定プログラム2300は、ストレージノード100をどのインスタンスタイプに変更するか決定する際に、インスタンスタイプ管理テーブル3500を参照し、性能ネックを解消するために性能ネックとなるリソースに十分なスペックを有するインスタンスタイプを選択する。
【0052】
対処実行プログラム2400は、対処実行管理テーブル3600の情報に基づいて、決められた変更契機に、ストレージノード100へインスタンスタイプ変更指示を送信し、また、インスタンス管理ノード600へインスタンスタイプ変更指示を送信する。
【0053】
次に、インスタンス管理テーブル3100について説明する。
【0054】
図6は、一実施形態に係るインスタンス管理テーブルの構成図である。
【0055】
インスタンス管理テーブル3100は、ストレージシステム1000のストレージノード100に形成されているインスタンス110の情報を管理するテーブルである。インスタンス管理テーブル3100は、ストレージシステム1000のインスタンス110毎のエントリーを格納する。インスタンス管理テーブル3100のエントリーは、ノードID3101と、CPU周波数3102と、CPUコア数3103と、メモリ容量3104と、ネットワーク帯域3105とのフィールドを含む。
【0056】
ノードID3101には、エントリーに対応するインスタンス110を有するストレージノード100の識別番号(ノードID)が格納される。CPU周波数3102には、エントリーに対応するインスタンス110に割り当てられているCPU111の周波数が格納される。CPUコア数3103には、エントリーに対応するインスタンス110に割り当てられているCPU111のコア数が格納される。メモリ容量3104には、エントリーに対応するインスタンス110に割り当てられているメモリの容量が格納される。ネットワーク帯域3105には、エントリーに対応するインスタンス110に割り当てられているネットワークI/F113の帯域が格納される。
【0057】
次に、稼働情報管理テーブル3200について説明する。
【0058】
図7は、一実施形態に係る稼働情報管理テーブルの構成図である。
【0059】
稼働情報管理テーブル3200は、ストレージノード100の稼働状態に関する情報を管理するテーブルであり、ストレージノード100毎のエントリーを格納する。稼働情報管理テーブル3200のエントリーは、ノードID3201と、情報収集時刻3202と、CPU稼働率3203と、メモリ使用量3204と、ネットワーク使用帯域3205とのフィールドを含む。
【0060】
ノードID3201には、エントリーに対応するストレージノード100の識別番号(ノードID)が格納される。情報収集時刻3202には、エントリーに対応する情報をストレージノード100から収集して格納した時刻(日時)が格納される。CPU稼働率3203には、エントリーに対応するストレージノード100におけるCPU111の負荷の大きさを示す稼働率が格納される。メモリ使用量3204には、エントリーに対応するストレージノード100におけるメモリ112の使用量(メモリ使用量)が格納される。ネットワーク使用帯域3205には、エントリーに対応するストレージノード100のネットワークI/F113により使用されているネットワーク帯域(ネットワーク使用帯域)が格納される。
【0061】
次に、ホストI/O管理テーブル3300について説明する。
【0062】
図8は、一実施形態に係るホストI/O管理テーブルの構成図である。
【0063】
ホストI/O管理テーブル3300は、ストレージシステム1000に対するホスト計算機300によるI/O情報を管理するテーブルであり、I/O情報の取得時刻毎のエントリーを格納する。ホストI/O管理テーブル3300のエントリーは、情報収集時刻3301と、IOPS3302と、転送速度3303とのフィールドを含む。情報収集時刻3301には、エントリーに対応する情報を取得し、格納した時刻(情報取得時刻)が格納される。IOPS3302には、ストレージシステム1000に対する単位時間当たりのI/O数(IOPS:Input/Output Per Second)が格納される。転送速度3303には、ストレージシステム1000に対する単位時間当たりのデータ転送量(転送速度)が格納される。
【0064】
次に、性能ネック管理テーブル3400について説明する。
【0065】
図9は、一実施形態に係る性能ネック管理テーブルの構成図である。
【0066】
性能ネック管理テーブル3400は、性能のネックに関する情報を管理するテーブルであり、検出された性能ネック毎のエントリーを格納する。性能ネック管理テーブル3400のエントリーは、ネックID3401と、情報記録時刻3402と、ノードID3403と、性能ネック部位3404と、必要リソース増強割合3405と、ネック解消方法決定済み3406とのフィールドを含む。
【0067】
ネックID3401には、検出された性能ネックを一意に識別するための識別番号(ネックID)が格納される。情報記録時刻3402には、検出された性能ネックの情報を登録した時刻が格納される。ノードID3403には、エントリーに対応する性能ネックにおける性能ネックとなる部位(性能ネック部位)を有するストレージノード100のノードIDが格納される。性能ネック部位3404には、エントリーに対応する性能ネックにおけるストレージノード100の性能ネック部位を示す情報が格納される。性能ネック部位3404には、例えば、ストレージノード100のインスタンス110の構成要素(リソース)である、CPU、メモリ、ネットワークI/F等が格納される。必要リソース増強割合3405には、エントリーに対応する性能ネックを解消するために必要なリソースの割合が格納される。例えば、現在のインスタンス110のCPUコア数が16コアであり、性能ネックがCPUであり、性能ネックを解消するためにCPUコア数が32コア以上必要である場合は、必要リソース増強割合3405には、2倍が格納される。ネック解消方法決定済み3406には、エントリーに対応する性能ネックに対する解消方法(性能ネック解消方法)が決定済みか否かを示す情報が格納される。例えば、性能ネック解消方法が決定されている場合は、ネック解消方法決定済み3406には、Trueが格納される。
【0068】
次に、インスタンスタイプ管理テーブル3500について説明する。
【0069】
図10は、一実施形態に係るインスタンスタイプ管理テーブルの構成図である。
【0070】
インスタンスタイプ管理テーブル3500は、インスタンスとして使用可能なタイプ(インスタンスタイプ)を管理するテーブルであり、インスタンスタイプ毎のエントリーを格納する。インスタンスタイプ管理テーブル3500のエントリーは、インスタンスタイプID3501と、CPU周波数3502と、CPUコア数3503と、メモリ容量3504と、ネットワーク帯域3505とのフィールドを含む。
【0071】
インスタンスタイプID3501には、エントリーに対応するインスタンスタイプを一意に識別する識別番号(インスタンスタイプID)が格納される。CPU周波数3502には、エントリーに対応するインスタンスタイプで割り当てられるCPUの周波数が格納される。CPUコア数3503には、エントリーに対応するインスタンスタイプで割り当てられるCPUのコア数が格納される。メモリ容量3504には、エントリーに対応するインスタンスタイプで割り当てられるメモリの容量(メモリ容量)が格納される。ネットワーク帯域3505には、エントリーに対応するインスタンスタイプで割り当てられるネットワークI/Fの帯域(ネットワーク帯域)が格納される。なお、インスタンスタイプ管理テーブル3500のインスタンスタイプとしては、いずれか一つのリソースの値(例えば、CPUコア数)のみが違う複数のインスタンスタイプが含まれていてもよい。
【0072】
次に、対処実行管理テーブル3600について説明する。
【0073】
図11は、一実施形態に係る対処実行管理テーブルの構成図である。
【0074】
対処実行管理テーブル3600は、性能ネックに対する対処に関する情報を管理するテーブルであり、対処毎のエントリーを格納する。対処実行管理テーブル3600のエントリーは、対処実行ID3601と、ノードID3602と、変更後インスタンスタイプID3603と、変更契機3604と、対処実行完了3605とのフィールドを含む。
【0075】
対処実行ID3601には、エントリーに対応する対処の実行に対して一意に与えられる識別番号が格納される。ノードID3602には、エントリーに対応する対象を実行する対象のストレージノード100のノードIDが格納される。変更後インスタンスタイプID3603には、エントリーに対応する対処により変更されたインスタンスのインスタンスタイプの識別番号(インスタンスタイプID)が格納される。変更契機3604には、エントリーに対応する対処を実行してインスタンスのインスタンスタイプを変更する契機(変更契機)が格納される。変更契機は、或る特定の日時であってもよく、特定の曜日であってもよく、特定の時間帯であってもよい。対処実行完了3605には、エントリーに対応する対処の実行を完了したか否かが格納される。本実施形態では、対処実行完了3605には、対処の実行が完了した場合には、Trueが格納され、実行が完了していない場合には、Falseが格納される。
【0076】
次に、管理装置200による情報収集処理(ステップS4100)について説明する。
【0077】
図12は、一実施形態に係る情報収集処理のフローチャートである。
【0078】
情報収集処理は、管理装置200により、例えば定期的に実行される。情報収集処理の実行周期は、例えば、ストレージシステム1000の特性に基づいて決定された、ストレージシステム1000の性能問題の検出、ネック部位の分析に必要な周期であってもよい。
【0079】
管理装置200の稼働情報収集プログラム2100(厳密には、稼働情報収集プログラム2100を実行するCPU210)は、ストレージシステム1000に対して、ストレージノード100の稼働情報及びホスト計算機300からのI/O情報を取得するための情報取得要求を送信する(ステップS4101)。ここで、情報取得要求は、ストレージシステム1000の各ストレージノード100に対して送信し、それに対応して、各ストレージノード100から稼働情報及びI/O情報を送信させるようにしてもよいし、ストレージシステム1000の代表となるストレージノード100に対して送信し、代表となるストレージノード100により、各ストレージノード100の稼働情報及びI/O情報を取得させ、まとめた情報を送信させるようにしてもよい。
【0080】
次いで、稼働情報収集プログラム2100は、ストレージシステム1000から送信される稼働情報及びI/O情報を受信する(ステップS4102)。なお、稼働情報及びI/O情報を、1回の通信で受信してもよいし、複数回の通信で受信してもよい。
【0081】
次いで、稼働情報収集プログラム2100は、受信した稼働情報及びI/O情報を管理テーブル3000に格納する(ステップS4103)。具体的には、稼働情報収集プログラム2100は、稼働情報(例えば、CPU稼働率、メモリ使用量、ネットワーク使用帯域等)を稼働情報管理テーブル3200に格納し、I/O情報をホストI/O管理テーブル3300に格納する。
【0082】
次に、管理装置200による性能ネック分析処理(ステップS4200)について説明する。
【0083】
図13は、一実施形態に係る性能ネック分析処理のフローチャートである。
【0084】
性能ネック分析処理は、管理装置200により、例えば定期的に実行される。性能ネック分析処理の実行周期は、例えば、ストレージシステム1000の特性に基づいて決定された、ストレージシステム1000の性能問題の検出、ネック部位の分析に必要な周期であってもよい。
【0085】
管理装置200の性能ネック分析プログラム2200(厳密には、性能ネック分析プログラム2200を実行するCPU210)は、稼働情報管理テーブル3200からストレージシステム1000の各ストレージノード100の稼働情報を取得する(ステップS4201)。ここで、取得した複数の稼働情報に対して、ストレージノード100毎に、或る一定期間の各値の平均を取るなどの集計処理をしてもよい。
【0086】
次いで、性能ネック分析プログラム2200は、取得した稼働情報に基づいて、ストレージノード100のインスタンス110のリソースの稼働率(使用率:稼働性能)が推奨される稼働率(推奨稼働率:基準値)の上限を超えるか否かを判定する(ステップS4202)。なお、ステップS4202~S4208の処理は、稼働情報に含まれる各リソースの稼働率及びリソースの使用率のそれぞれを判定対象として実行してもよい。また、各リソースの推奨稼働率の上限は、テーブルにより管理してもよいし、他のデータ構造体で管理してもよい。これらの推奨稼働率の上限は、ストレージシステム1000の起動時に予め格納しておき、性能ネック分析処理において参照できるようにしてもよい。
【0087】
この結果、リソースの稼働率(使用率)が推奨される稼働率(使用率)の上限を超えないと判定された場合(ステップS4202:No)には、ストレージシステム1000において性能ネックとなっている部位が存在しないことを意味しているので、性能ネック分析プログラム2200は、性能ネック分析処理を終了する。
【0088】
一方、リソースの稼働率(使用率)が推奨される所定の稼働率(使用率)の上限を超えると判定された場合(ステップS4202:Yes)には、ストレージシステム1000において判定対象の部位(リソース)が性能ネックとなっていることを意味しているので、性能ネック分析プログラム2200は、性能問題が定常的であるか否か、すなわち、リソースの稼働率(使用率)が推奨される所定の稼働率(使用率)の上限を超えることが定常的か否かを判定する(ステップS4203)。ここで、性能問題が定常的であるか否かは、稼働情報管理テーブル3200の過去の稼働情報を参照することにより判定できる。また、性能問題が定常的であるか否かは、例えば、どの程度の期間、性能問題が持続したかの情報に基づいて判定してもよいが、定常と判定するための期間の閾値は、ストレージシステム1000の特性に基づいて決定してもよい。
【0089】
この結果、性能問題が定常的でないと判定された場合(ステップS4203:No)には、一時的な性能問題であり、対処の必要がないと考えられるので、性能ネック分析プログラム2200は、性能ネック分析処理を終了する。
【0090】
一方、性能問題が定常的であると判定された場合(ステップS4203:Yes)には、性能ネック分析プログラム2200は、定常的に推奨稼働率上限を超えているストレージノード100のリソースを性能ネック部位と決定する(ステップS4204)。ここで、性能ネック部位として決定されるストレージノード100のリソースとは、例えば、インスタンス110のCPU111や、メモリ1112や、ネットワークI/F113である。
【0091】
次いで、性能ネック分析プログラム2200は、決定された性能ネック部位の性能ネックを解消するために必要なリソース増強の割合(増強リソース量)を決定する(ステップS4205)。例えば、性能ネックを解消するために必要なリソース増強の割合は、稼働情報管理テーブル3200と推奨稼働率とに基づいて決定すればよい。例えば、現在のCPU稼働率が70%であり、CPUの推奨稼働率が50%である場合、CPUのリソースを1.4倍にすると、CPUの稼働率が50%となり、性能ネックを解消できるので、増強リソース量を1.4倍としてもよく、また、インスタンスタイプとしてとり得る倍率を考慮して、1.4倍を超え、且つ、とり得るリソースの最低の倍率(例えば、2倍)としてもよい。例えば、現在のインスタンス110のCPUのコア数が16コアであり、性能ネックがCPUであり、性能ネックを解消するためにCPUのコア数が32コア以上必要である場合は、ネック解消に必要なリソース増強割合は2倍となる。
【0092】
次に、性能ネック分析プログラム2200は、性能ネック部位をステップS4205で決定されたリソース増強の割合でリソースの増強を行い、性能ネックを解消した場合に、他のリソースが性能ネックとなるか否かを判定する(ステップS4206)。ここで、他のリソースは、ステップS4204で決定した性能ネック部位が存在するインスタンス110と同じインスタンス110内の他のリソースであってもよいし、性能ネック部位が存在するストレージノード100と異なるストレージノード100のリソースであってもよい。また、他の性能ネック部位を検出する際は、ストレージシステム1000のボリューム構成や機能設定、各ストレージノード100間の通信量などの情報に基づいて検出してもよい。
【0093】
例えば、或るストレージノード100のCPUの性能ネックを解消すると、そのストレージノード100のCPUの処理量が増加する。この場合、CPUの処理は、他のストレージノードとの通信も含まれるため、ネットワーク帯域の使用量が増加する。また、複数のストレージノードでクラスタを構成しており、複数のストレージノードで協調動作をするため、他のストレージノードのCPUの稼働率も増加する。このような状況を考慮し、例えば、或るストレージノードのCPUの性能ネックを解消する時には、このストレージノードのネットワーク帯域が所定の閾値以上である場合には、ネットワーク帯域が性能ネックとなると判定し、また、他のストレージノードのCPU稼働率が所定の閾値以上である場合に、他のストレージノードのCPUが性能ネックとなると判定してもよい。
【0094】
この結果、他のリソースが性能ネックとなる場合(ステップS4206:Yes)には、性能ネック分析プログラム2200は、性能ネックとなる他のリソースに対して、性能ネックを解消するために必要なリソース増強の割合を決定し(ステップS4207)、処理をステップS4206に進める。なお、性能ネックを解消のために必要なリソース増強の割合の決定方法は、ステップS4205と同様の方法でよい。
【0095】
一方、他のリソースが性能ネックとならない場合(ステップS4206:No)には、性能ネック分析プログラム2200は、性能ネック部位の情報を性能ネック管理テーブル3400に格納し(ステップS4208)、処理を終了する。具体的には、性能ネック分析プログラム2200は、ステップS4204とS4206で検出した性能ネック部位と、ステップS4205とS4207で決定した必要なリソース増強の割合などの性能ネック部位の情報を性能ネック管理テーブル3400に格納する。
【0096】
性能ネック分析処理によると、ストレージシステム1000におけるインスタンス110における性能ネック部位を検出することができるとともに、性能ネック部位の性能ネックを解消するために必要なリソースを適切に検出することができる。
【0097】
次に、管理装置200による性能ネック解消方法決定処理(ステップS4300)について説明する。
【0098】
図14は、一実施形態に係る性能ネック解消方法決定処理のフローチャートである。
【0099】
性能ネック解消方法決定処理は、例えば、定期的に、又は、性能ネック分析処理(ステップS4200)の終了直後に実行される。
【0100】
管理装置200の性能ネック解消方法決定プログラム2300(厳密には、性能ネック解消方法決定プログラム2300を実行するCPU210)は、性能ネック管理テーブル3400にネック解消方法が決定されていない、すなわち、ネック解消方法決定済み3406がFalseとなっている性能ネックのエントリーが存在するか否かを判定する(ステップS4301)。
【0101】
この結果、該当するエントリーが存在しない場合(ステップS4301:No)には、性能ネック解消方法決定プログラム2300は、性能ネック解消方法決定処理を終了する一方、該当するエントリーが存在する場合(ステップS4301:Yes)には、性能ネック解消方法決定プログラム2300は、性能ネック管理テーブル3400から、該当するエントリーを取得する(ステップS4302)。
【0102】
次いで、性能ネック解消方法決定プログラム2300は、取得したエントリーの性能ネックを解消するために十分なリソースを含むインスタンスタイプを、取得したエントリーの情報と、インスタンス管理テーブル3100の情報と、インスタンスタイプ管理テーブル3500の情報とに基づいて決定する(ステップS4303)。本実施形態では、性能ネック解消方法決定プログラム2300は、性能ネックとなるリソースについて性能ネックが解消されるリソース量となり、他のリソースについては、変更前から変更されない、又は増加されるリソース量が最も少ないインスタンスタイプを決定する。これにより、性能ネックと関係ないリソースが無駄にインスタンスに割り当てられてしまうことを適切に防止できる。
【0103】
次いで、性能ネック解消方法決定プログラム2300は、決定したインスタンスタイプに変更する契機(変更契機)を決定する(ステップS4304)。変更契機は、ホストI/Oへの影響を最小化するために、ホストI/Oが少ない時間帯や曜日であってもよいし、予め計画された保守作業のタイミングとしてもよい。ホストI/Oが少ない時間帯や曜日を変更契機として選択する場合は、例えば、性能ネック解消方法決定プログラム2300は、ホストI/O管理テーブル3300の情報を分析し、ホストI/Oの周期性を見つけることで、ホストI/Oの少ないタイミングを契機として選択する。
【0104】
性能ネック解消方法決定プログラム2300は、性能ネックが存在していたノードのノードIDと、決定した性能ネック解消のための変更後のインスタンスタイプと、決定した変更契機とを含むエントリーを対処実行管理テーブル3600に格納する(ステップS4305)。
【0105】
次いで、性能ネック解消方法決定プログラム2300は、性能ネック管理テーブル3400の対応するエントリーのネック解消方法決定済み3406に性能ネック解消方法を決定したことを示すTrueを記録し(ステップS4306)、処理を終了する。
【0106】
上記した性能ネック解消方法処理によると、性能ネックを解消するために必要なリソースを有するインスタンスタイプを決定でき、適切な変更契機を決定することができる。
【0107】
次に、管理装置200による対処実行処理(ステップS4400)について説明する。
【0108】
図15は、一実施形態に係る対処実行処理のフローチャートである。
【0109】
対処実行処理は、例えば、定期的に実行される。対処実行プログラム2400(厳密には、対処実行プログラム2400を実行するCPU210)は、対処実行管理テーブル3600から実行していない対処のエントリー、すなわち、対処実行完了3605がFalseであるエントリーを取得する(ステップS4401)。
【0110】
対処実行プログラム2400は、取得したエントリー(対象エントリー)の変更契機を満たしているか否か判定する(ステップS4402)。この結果、対象エントリーの変更契機を満たしていない場合(ステップS4402:No)には、対処実行プログラム2400は、処理をステップS4408に進める。
【0111】
一方、対象エントリーの変更契機を満たしている場合(ステップS4402:Yes)には、対処実行プログラム2400は、対象エントリーに対応する変更対象のストレージノード100、すなわち、対象エントリーのノードID3602のノードIDのストレージノード100に対する保守のための閉塞指示(保守閉塞指示)を所定のストレージノード100(例えば、クラスタの代表となるストレージノード100)に送信する(ステップS4403)。この結果、保守閉塞指示を受け取ったストレージノード100は、保守閉塞処理(図17参照)を実行する。対処実行プログラム2400は、保守閉塞指示をした後、ストレージノード100の保守閉塞処理が完了するまで待機する。
【0112】
次いで、ストレージノード100の保守閉塞処理が完了した後、対処実行プログラム2400は、変更対象ストレージノードのインスタンスを取得エントリーの変更後インスタンスタイプID3603に対応するインスタンスタイプへ変更する指示(変更指示)を、インスタンス管理ノード600に送信する(ステップS4404)。これにより、インスタンス管理ノード600は、変更対象ストレージノードのインスタンスを変更後のインスタンスタイプに変更することができ、性能ネックを解消することができる。対処実行プログラム2400は、変更指示をした後、ストレージノード100のインスタンス110のインスタンスタイプの変更が完了するまで待機する。
【0113】
次いで、ストレージノード100のインスタンス110のインスタンスタイプの変更が完了した後、対処実行プログラム2400は、変更対象ストレージノードに対する保守から回復する指示(保守回復指示)を所定のストレージノード100(例えば、クラスタの代表となるストレージノード100)に送信する(ステップS4405)。この結果、保守回復指示を受け取ったストレージノード100は、保守回復処理(図18参照)を実行する。対処実行プログラム2400は、保守回復指示をした後、ストレージノード100の保守回復処理が完了するまで待機する。
【0114】
次いで、ストレージノード100の保守回復処理が完了した後、対処実行プログラム2400は、インスタンス管理テーブル3100の変更対象ストレージノードに対応するエントリーの情報を、変更後インスタンスタイプのリソースのスペック情報に更新する(ステップS4406)。ここで、変更後インスタンスタイプのスペック情報は、対象エントリーの変更後インスタンスタイプID3603をキーとして、インスタンスタイプ管理テーブル3500から取得したエントリーから取得できる。
【0115】
次いで、対処実行プログラム2400は、対処実行管理テーブル3600の対象エントリーの対処実行完了3605にTrueを記録し(ステップS4407)、処理をステップS4408に進める。
【0116】
ステップS4408では、対処実行プログラム2400は、対処実行管理テーブル3600に、対処実行完了3605がFalseであり、且つ、変更契機の判定(ステップS4402)での対象となっていないエントリーが存在するか否かを判定する。
【0117】
この結果、対処実行完了3605がFalseであり、且つ、変更契機の判定(ステップS4402)での対象となっていないエントリーが存在する場合(ステップS4408:Yes)には、対処実行プログラム2400は、処理をステップS4401に進めて、存在するエントリーを対象として後続の処理を行う。
【0118】
一方、対処実行完了3605がFalseであり、且つ、変更契機の判定(ステップS4402)での対象となっていないエントリーが存在しない場合(ステップS4408:No)には、対処実行プログラム2400は、対処実行処理を終了する。
【0119】
次に、ストレージシステム1000のストレージノードの構成について説明する。
【0120】
図16は、一実施形態に係るストレージシステムのストレージノードの構成例である。
【0121】
ストレージシステム1000においては、1つ以上の制御部クラスタ160を有する。制御部クラスタ160は、アクティブ状態であるストレージ制御部150A(アクティブストレージ制御部ともいう)と、スタンバイ状態であるストレージ制御部150S(スタンバイストレージ制御部ともいう)とを含む。ストレージ制御部150Aは、ホスト計算機300がI/O可能なボリュームを提供する。ストレージ制御部150Aは、提供するボリュームを指定したI/O要求をホスト計算機300から受け付けた場合、指定されたボリュームに対するI/O処理を行う。ストレージ制御部150Sは、制御部クラスタ160を構成しているストレージ制御部150Aが停止した場合、フェイルオーバーが行われて、アクティブ状態となり、ストレージ制御部150Aに代わって、ボリュームのI/O処理を行う。同一の制御部クラスタ160のストレージ制御部150Aとストレージ制御部150Sとは、別のストレージノード100に構成されている。ストレージシステム1000においてクラスタ160の中の代表となるストレージノード100は、クラスタコントローラ170を有する。また、各ストレージノード100は、ノードコントローラ180を有する。クラスタコントローラ170は、クラスタ160全体の状態を把握し、各ストレージノード100の構成を制御する。ノードコントローラ180は、クラスタコントローラ170にストレージノード100の情報を通知し、クラスタコントローラ170の指示に従って、ストレージノード100の構成を制御する。本実施形態では、ストレージノード100は、ストレージ制御部150Aと、別の制御部クラスタ160のストレージ制御部150Sと、クラスタコントローラ170と、ノードコントローラ180と、をインスタンス110により構成している。
【0122】
次に、保守閉塞処理(ステップS4500)について説明する。
【0123】
図17は、一実施形態に係る保守閉塞処理のフローチャートである。
【0124】
保守閉塞処理は、ストレージノード100のクラスタコントローラ170が管理装置200から保守閉塞指示を受け取った場合に実行される。
【0125】
ストレージノード100のクラスタコントローラ170は、対象のストレージノード100が保守閉塞可能か否かの事前チェックを行う(ステップS4501)。例えば、クラスタコントローラ170は、処理の引継先のストレージノード、すなわち、閉塞するストレージ制御部150Aに対応するストレージ制御部150Sを備えるストレージノード(引継先ノードともいう)で、処理の引継ぎができないような障害が発生しているか否かをチェックする。なお、障害が発生している場合には、保守閉塞処理を終了する。
【0126】
次いで、クラスタコントローラ170は、保守閉塞対象のストレージノード100(この処理の説明において、保守閉塞ノードともいう)のノードコントローラ180に、ホスト計算機300と通信するためのポートを閉塞させる指示を行い、指示を受けてノードコントローラ180は、指示に従ってポートを閉塞する(ステップS4502)。ポートが閉塞されると、ホスト計算機300では、マルチパスの設定に従って、I/O要求の送信先が引継先ノードに切り替わる。
【0127】
次いで、クラスタコントローラ170は、引継先ノードのノードコントローラ180に、ホストI/Oの受付を一時停止させる指示を行い、指示を受けてノードコントローラ180は、ホストI/Oの受付を一時停止する(ステップS4503)。
【0128】
次いで、クラスタコントローラ170は、保守閉塞ノード100のノードコントローラ180に、アクティブのストレージ制御部150Aを停止させる指示を行い、指示を受けてノードコントローラ180は、ストレージ制御部150Aを停止する(ステップS4504)。
【0129】
次いで、クラスタコントローラ170は、引継先ノード100のノードコントローラ180に、スタンバイのストレージ制御部150Sをアクティブに切り替えさせる(動作させる)指示を行い、指示を受けてノードコントローラ180は、ストレージ制御部150Sをアクティブに切り替える(ステップS4505)。
【0130】
次いで、クラスタコントローラ170は、引継先ノードのノードコントローラ180に、ホストI/Oの停止を解除させる指示を行い、指示を受けてノードコントローラ180は、ホストI/Oの停止を解除する(ステップS4506)。これにより、引継先ノードのストレージ制御部150Sは、ホストI/Oを処理することができるようになる。
【0131】
次いで、クラスタコントローラ170は、保守閉塞ノード100のノードコントローラ180に、保守閉塞ノード100を停止させる指示を行い、指示を受けてノードコントローラ180は、指示に従って保守閉塞ノード100を停止し(ステップS4507)、保守閉塞処理を終了する。
【0132】
次に、保守回復処理(ステップS4600)について説明する。
【0133】
図18は、一実施形態に係る保守回復処理のフローチャートである。
【0134】
保守回復処理は、ストレージノード100のクラスタコントローラ170が管理装置200から保守回復指示を受け取った場合に実行される。
【0135】
ストレージノード100のクラスタコントローラ170は、保守回復の対象のストレージノード100(保守回復ノード)の電源をオンし、ノードコントローラ180を起動させる(ステップS4601)。この時、クラスタコントローラ170は、保守回復ノード100の起動ステータスを監視する。
【0136】
次いで、クラスタコントローラ170は、保守回復ノード100のノードコントローラ180に、ストレージ制御部150A、150Sをスタンバイとして起動させる指示を行い、指示を受けてノードコントローラ180は、ストレージ制御部150A、150Sをスタンバイとして起動する(ステップS4602)。
【0137】
次いで、クラスタコントローラ170は、引継先ノードのノードコントローラ180に、ホストI/Oの受付を一時停止させる指示を行い、指示を受けてノードコントローラ180は、ホストI/Oの受付を一時停止する(ステップS4603)。
【0138】
次いで、クラスタコントローラ170は、保守回復ノード100のノードコントローラ180に、スタンバイのストレージ制御部150Aをアクティブに切り替えさせる(動作させる)指示を行い、指示を受けてノードコントローラ180は、ストレージ制御部150Aをアクティブに切り替える(ステップS4604)。
【0139】
次いで、クラスタコントローラ170は、引継先ノードのノードコントローラ180に、ホストI/Oの停止を解除させる指示を行い、指示を受けてノードコントローラ180は、ホストI/Oの停止を解除する(ステップS4605)。
【0140】
次いで、クラスタコントローラ170は、引継先ノード100のノードコントローラ180に、アクティブのストレージ制御部150Sをスタンバイに切り替えさせる(動作させる)指示を行い、指示を受けてノードコントローラ180は、ストレージ制御部150Sをスタンバイに切り替える(ステップS4506)。
【0141】
次いで、クラスタコントローラ170は、保守回復ノード100のノードコントローラ180に、ホスト計算機300と通信するためのポートを回復させる指示を行い、指示を受けてノードコントローラ180は、指示に従ってポートを回復する(ステップS4607)。ポートを回復すると、ホスト計算機300では、マルチパスの設定に従って、I/O要求の送信先が保守回復ノードに切り替わる。
【0142】
次いで、クラスタコントローラ170は、保守回復ノード100と冗長度を作るためのグループになっている全てのストレージノード100のノードコントローラ180に、冗長度を回復させる指示を行い、指示を受けて各ノードコントローラ180は、指示に従って冗長度を回復する処理を実行し(ステップS4608)、保守回復処理を終了する。これにより、ストレージ制御部150Aは、変更されたインスタンスタイプのインスタンスにより構成されることとなり、性能ネックが発生しなくなる。
【0143】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0144】
例えば、上記実施形態において、性能ネックを分析し、性能ネックとなるリソースのリソース量を増加させるようにインスタンスの構成を変更するようにしていたが、例えば、ユーザからリソース量を増加させるインスタンスの指定を受け付けて、その指定を受けたことにより、リソースの構成の変更が必要であると判定し、リソース量を増加させるようにインスタンスの構成を変更するようにしてもよい。
【0145】
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
【符号の説明】
【0146】
1…ストレージ管理システム、10…クラウド、100…ストレージノード、110…インスタンス、111…CPU、112…メモリ、113…ネットワークI/F、120…ストレージデバイス、200…管理装置、300…ホスト計算機、600…インスタンス管理ノード、1000…ストレージシステム



図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18