(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024179636
(43)【公開日】2024-12-26
(54)【発明の名称】ストレージシステムおよびストレージシステムの制御方法
(51)【国際特許分類】
G06F 11/20 20060101AFI20241219BHJP
G06F 3/06 20060101ALI20241219BHJP
【FI】
G06F11/20 669
G06F3/06 301X
G06F3/06 304E
G06F3/06 306Z
G06F3/06 305C
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023098629
(22)【出願日】2023-06-15
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】千葉 武尊
(72)【発明者】
【氏名】大平 良徳
(72)【発明者】
【氏名】山本 貴大
(72)【発明者】
【氏名】佐藤 功人
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034BB17
5B034CC04
(57)【要約】 (修正有)
【課題】障害耐性が高く、かつ、構築コストが低いストレージシステム及び制御方法を提供する。
【解決手段】複数のゾーンに配置された複数のクラウド計算機上で稼働するストレージシステム(情報処理システム100)において、正常運用中に動作するストレージノード108Aと、ストレージノードから処理を引き継ぎ可能なストレージノード108Bと、が含まれ、複数のクラウド計算機で構成されるストレージノードが処理するデータを物理的に格納する記憶装置を有し、ゾーン間で冗長化してデータを格納する仮想記憶装置110を備え、ストレージ制御情報を用いて仮想記憶装置110内のデータにアクセスし、仮想記憶装置110に格納する。仮想記憶装置110は、格納されたデータをゾーン間で冗長化し、ストレージノード108Aを含むゾーンに障害が発生した場合に、ストレージノード108Bが、ストレージノード108Aの処理を引き継ぐ。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の異なるゾーンに配置された複数のクラウド計算機上で稼働するストレージシステムにおいて、
前記複数のゾーンの複数の計算機に配置され、入出力されるデータを処理するストレージノードを有し、
前記ストレージノードには、正常運用中に動作する第一のストレージノードと、前記第一のストレージノードとは異なるゾーンに存在し、かつ前記第一のストレージノードから処理を引き継ぎ可能な第二のストレージノードと、が含まれ、
前記複数のクラウド計算機は、前記ストレージノードが処理するデータを物理的に格納する記憶装置を有し、異なるゾーン間に配置された複数の前記記憶装置によりゾーン間で冗長化して前記データを格納する仮想記憶装置を備え、
前記ストレージシステムは、ストレージ制御情報を用いて前記仮想記憶装置内のデータにアクセスし、前記ストレージシステムを、前記仮想記憶装置に格納し、
前記仮想記憶装置は、格納された前記データをゾーン間で冗長化し、
前記第一のストレージノードを含むゾーンに障害が発生した場合に、前記第二のストレージノードが、前記ゾーン間で冗長化されたデータを用いて前記第一のストレージノードの処理を引き継ぐストレージシステム。
【請求項2】
前記仮想記憶装置は、格納された前記データ及び前記ストレージ制御情報をゾーン間で冗長化し、
前記第一のストレージノードを含むゾーンに障害が発生した場合に、前記第二のストレージノードが、前記ゾーン間で冗長化されたデータ及びストレージ制御情報を用いて前記第一のストレージノードの処理を引き継ぐ請求項1に記載のストレージシステム。
【請求項3】
前記第一のストレージノードの正常運用中は、前記第一のストレージノード以外のストレージノードには前記仮想記憶装置は接続せず、
前記第一のストレージノードを含むゾーンに障害が発生した場合に、前記第一のストレージノードと同じゾーンに接続された前記仮想記憶装置はデタッチされ、前記第二のストレージノードと同じゾーンにおいて前記仮想記憶装置がアタッチされる請求項1に記載のストレージシステム。
【請求項4】
前記第一のストレージノードを含むゾーンに障害が発生した場合に、前記第二のストレージノードと同じゾーンにおいてアタッチされた前記仮想記憶装置は、前記第二のストレージノードと同じゾーンに存在する前記記憶装置を利用して仮想記憶を実現する請求項3に記載のストレージシステム。
【請求項5】
前記第一のストレージノードだけに障害が発生した場合に、前記第二のストレージノードと同じゾーンにおいてアタッチされた前記仮想記憶装置は、前記第二のストレージノードに存在する前記記憶装置に加え、前記第一のストレージノードに存在する前記記憶装置を利用して仮想記憶を実現する請求項4に記載のストレージシステム。
【請求項6】
前記第一のストレージノードと同じゾーンに存在する、第三のストレージノードおよび前記第三のストレージノードに接続する第二の仮想記憶装置が存在することで、前記第一のストレージノードおよび前記仮想記憶装置が同じゾーン内で冗長化されている請求項1に記載のストレージシステム。
【請求項7】
前記第一のストレージノードだけに障害が発生した場合に、前記第一のストレージノードと同じゾーン内に存在する前記第三のストレージノードおよび前記第二の仮想記憶装置を運用する請求項6に記載のストレージシステム。
【請求項8】
前記仮想記憶装置は、クラウド記憶装置である請求項1に記載のストレージシステム。
【請求項9】
プロセッサがメモリに記録されたソフトウェアを実行することにより実現し、複数の異なるゾーンに配置された複数のクラウド計算機上で稼働するストレージシステムの制御方法であり、
前記ストレージシステムは、前記複数のゾーンの複数の計算機に配置され、入出力されるデータを処理するストレージノードを有し、
前記ストレージノードには、正常運用中に動作する第一のストレージノードと、前記第一のストレージノードとは異なるゾーンに存在し、かつ前記第一のストレージノードから処理を引き継ぎ可能な第二のストレージノードと、が含まれ、
前記複数のクラウド計算機は、前記ストレージノードが処理するデータを物理的に格納する記憶装置を有し、異なるゾーン間に配置された複数の前記記憶装置によりゾーン間で冗長化して前記データを格納する仮想記憶装置を備え、
前記ストレージシステムは、ストレージ制御情報を用いて前記仮想記憶装置内のデータにアクセスし、前記ストレージシステムを、前記仮想記憶装置に格納し、
前記仮想記憶装置は、格納された前記データをゾーン間で冗長化し、
前記第一のストレージノードを含むゾーンに障害が発生した場合に、前記第二のストレージノードが、前記ゾーン間で冗長化されたデータを用いて前記第一のストレージノードの処理を引き継ぐ
ストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステム、ストレージシステムの制御方法に関する。ノードを備えるストレージシステムおよびストレージシステムの制御方法である。
【背景技術】
【0002】
ストレージ機能を有するソフトウェアを汎用のサーバ装置に実装することにより構築されるストレージ装置であるSDS(Software Defined Storage)が普及しつつある。
このような技術によれば、信頼性を維持しつつ、制御情報の読込み処理をサーバ内で閉じることができるので、高性能化を達成できるという利点がある。一方、近年では、クラウド(特にパブリッククラウド)がストレージシステムのプラットフォームとして普及しつつある。パブリッククラウドでは、パブリッククラウドベンダがIaaS(Infrastructure as a Service)として計算機資源やストレージ資源を提供するサービスを展開している。
パブリッククラウドのユーザは、これらパブリッククラウド上の計算機サービスやストレージサービスにAPI(Application Programming Interface)を通じてアクセスし、必要な量の計算機資源やストレージ資源を必要なタイミングで確保可能であり、またその構成も迅速に変更可能である。
また、一般的にパブリッククラウドにおけるストレージサービスに関しては、ユーザデータが複数の異なる物理デバイスに跨って冗長化されており、これにより高い信頼性を実現している。近年では、複数データセンタに跨ってデータを冗長化するサービスも登場しており、データセンタ単位での障害時もデータロストを防ぐことができる。
【0003】
特許文献1には、複数のストレージシステムについて記載されている。このストレージシステムは、第1のストレージシステムにより、トリガイベントを検出することに応えて、仲介サービスからの仲介を要求する工程と、第2のストレージシステムにより、トリガイベントを検出することに応えて、仲介サービスからの仲介を要求する工程と、仲介サービスからの正の仲介結果の表示に応えて、第1のストレージシステムが、第2のストレージシステムの代わりに、第1のストレージシステムおよび第2のストレージシステム全体で同期複製されるデータセットに向けられるデータストレージ要求を処理する工程と、を含む。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特定の単一データセンタ内に存在する計算機リソースやストレージリソースのみを用いてストレージシステムを構築した場合、大規模災害等によりデータセンタ全体に障害が起きると、ストレージシステムの停止、およびデータロストが発生してしまう。これに対し、複数のデータセンタに跨ってストレージシステムを冗長化することで、データセンタ単位の障害が発生した場合のシステム停止、およびデータロストを防ぐ方法では、待機系となるシステムを異なるデータセンタに構築する必要がある。そのため、単一データセンタにシステムを構築する構成に比べ、構築コストが大きくなるという課題がある。
本発明は以上の点を考慮してなされたものであり、障害耐性が高く、また構築コストが低いストレージシステムおよびストレージシステムの制御方法を提供しようとするものである。
【課題を解決するための手段】
【0006】
上記の課題を解決するため本発明は、複数の異なるゾーンに配置された複数のクラウド計算機上で稼働するストレージシステムにおいて、複数のゾーンの複数の計算機に配置され、入出力されるデータを処理するストレージノードを有し、ストレージノードには、正常運用中に動作する第一のストレージノードと、第一のストレージノードとは異なるゾーンに存在し、かつ第一のストレージノードから処理を引き継ぎ可能な第二のストレージノードと、が含まれ、複数のクラウド計算機は、ストレージノードが処理するデータを物理的に格納する記憶装置を有し、異なるゾーン間に配置された複数の記憶装置によりゾーン間で冗長化してデータを格納する仮想記憶装置を備え、ストレージシステムは、ストレージ制御情報を用いて仮想記憶装置内のデータにアクセスし、ストレージシステムを、仮想記憶装置に格納し、仮想記憶装置は、格納されたデータをゾーン間で冗長化し、第一のストレージノードを含むゾーンに障害が発生した場合に、第二のストレージノードが、ゾーン間で冗長化されたデータを用いて第一のストレージノードの処理を引き継ぐストレージシステムである。この場合、障害耐性が高く、また構築コストが低いストレージシステムを提供することができる。
【0007】
ここで、仮想記憶装置は、格納されたデータ及びストレージ制御情報をゾーン間で冗長化し、第一のストレージノードを含むゾーンに障害が発生した場合に、第二のストレージノードが、ゾーン間で冗長化されたデータ及びストレージ制御情報を用いて第一のストレージノードの処理を引き継ぐことができる。この場合、第二のストレージノードが第一のストレージノードの処理を引き継ぐ処理の信頼性が向上する。
そして、第一のストレージノードの正常運用中は、第一のストレージノード以外のストレージノードには仮想記憶装置は接続せず、第一のストレージノードを含むゾーンに障害が発生した場合に、第一のストレージノードと同じゾーンに接続された仮想記憶装置はデタッチされ、第二のストレージノードと同じゾーンにおいて仮想記憶装置がアタッチされるようにできる。この場合、第一のストレージノードを含むゾーンに障害が発生した場合でもサービスを継続することができる。
また、第一のストレージノードを含むゾーンに障害が発生した場合に、第二のストレージノードと同じゾーンにおいてアタッチされた仮想記憶装置は、第二のストレージノードと同じゾーンに存在する記憶装置を利用して仮想記憶を実現するようにできる。この場合、実際のデータは第二のストレージノードと同じゾーンの記憶装置内に存在するため、第二のストレージノードからのI/O要求受領時に、ゾーンを跨いだアクセスが発生せず、性能低下を防ぐことができる。
さらに、第一のストレージノードだけに障害が発生した場合に、第二のストレージノードと同じゾーンにおいてアタッチされた仮想記憶装置は、第二のストレージノードに存在する記憶装置に加え、第一のストレージノードに存在する記憶装置を利用して仮想記憶を実現するようにできる。この場合、記憶装置の冗長構成を維持することができる。
【0008】
またさらに、第一のストレージノードと同じゾーンに存在する、第三のストレージノードおよび第三のストレージノードに接続する第二の仮想記憶装置が存在することで、第一のストレージノードおよび仮想記憶装置が同じゾーン内で冗長化されるようにできる。この場合、同じゾーン内でストレージノードおよび仮想記憶装置の冗長化が図れる。
そして、第一のストレージノードだけに障害が発生した場合に、第一のストレージノードと同じゾーン内に存在する第三のストレージノードおよび第二の仮想記憶装置を運用するようにできる。この場合、障害が発生した場合でも同じゾーン内で対処することができる。
また、仮想記憶装置は、クラウド記憶装置にすることができる。この場合、ストレージ資源を必要なタイミングで確保しやすくなる。
【0009】
また、本発明は、プロセッサがメモリに記録されたソフトウェアを実行することにより実現し、複数の異なるゾーンに配置された複数のクラウド計算機上で稼働するストレージシステムの制御方法であり、ストレージシステムは、複数のゾーンの複数の計算機に配置され、入出力されるデータを処理するストレージノードを有し、ストレージノードには、正常運用中に動作する第一のストレージノードと、第一のストレージノードとは異なるゾーンに存在し、かつ第一のストレージノードから処理を引き継ぎ可能な第二のストレージノードと、が含まれ、複数のクラウド計算機は、ストレージノードが処理するデータを物理的に格納する記憶装置を有し、異なるゾーン間に配置された複数の記憶装置によりゾーン間で冗長化してデータを格納する仮想記憶装置を備え、ストレージシステムは、ストレージ制御情報を用いて仮想記憶装置内のデータにアクセスし、ストレージシステムを、仮想記憶装置に格納し、仮想記憶装置は、格納されたデータをゾーン間で冗長化し、第一のストレージノードを含むゾーンに障害が発生した場合に、第二のストレージノードが、ゾーン間で冗長化されたデータを用いて第一のストレージノードの処理を引き継ぐストレージシステムの制御方法である。この場合、障害耐性が高く、また構築コストが低いストレージシステムの制御方法を提供することができる。
【発明の効果】
【0010】
本発明によれば、障害耐性が高く、また構築コストが低いストレージシステムおよびストレージシステムの制御方法を提供することができる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態による情報処理システム100の構成を示す図である。
【
図2】ストレージノードのハードウェア構成を示した図である。
【
図3】第1の実施形態の仮想記憶装置と物理記憶装置の構成、及びこれらの関係の例を示す図である。
【
図4】第1の実施形態のクラウド制御部のメモリ構成を示す図である。
【
図5】第1の実施形態の仮想記憶装置管理テーブルの構成例を示す図である。
【
図6】第1の実施形態の物理記憶装置管理テーブルの構成例を示す図である。
【
図7】第1の実施形態の仮想記憶装置マッピングテーブルの構成例を示す図である。
【
図9】制御プログラム格納領域について示した図である。
【
図10】従来技術における、ゾーン障害耐性を有するストレージクラスタの構成例である。
【
図11】第1の実施形態における、ゾーン障害耐性を有するストレージクラスタの構成例である。
【
図12】
図11の構成において、例えばゾーン1に障害が発生した場合の概要を示した図である。
【
図13】ゾーン障害検出処理を示したフローチャートである。
【
図14】
図13のS3004のゾーン障害時フェイルオーバー処理を示したフローチャートである。
【
図15】ゾーン復旧検出処理を示したフローチャートである。
【
図16】
図15のS3204のゾーン復旧時フェイルバック処理を示したフローチャートである。
【
図17】
図11の構成において、例えばゾーン1内のストレージノードに障害が発生した場合の概要を示した図である。
【
図18】ゾーン内でも冗長化を行うときの従来方式について示した図である。
【
図19】第2の実施の形態による情報処理システムの構成を示す図である。
【
図20】
図19の構成において、ゾーン1に障害が発生した場合の概要を示した図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、本実施の形態は本発明を実現するための一例であり、本発明の技術的範囲を限定するものではない。また、各図において共通の構成については同一の参照番号が付されている。
【0013】
以下の説明では、「テーブル」、「表」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、少なくとも1以上のプロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノード、ストレージシステム、ストレージ装置、サーバ、管理計算機、クライアント、又はホストであってもよい。プログラムを実行して行う処理の主体(例えばプロセッサ)は、処理の一部又は全部を行うハードウェア回路を含んでもよい。例えば、プログラムを実行して行う処理の主体は、暗号化及び復号化、又は圧縮及び伸張を実行するハードウェア回路を含んでもよい。プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
【0014】
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0015】
ここでは、本発明における第1の実施形態についてまず説明する。
〔第1の実施形態〕
<システム構成の概要>
図1は、第1の実施の形態による情報処理システム100の構成を示す図である。
図示する情報処理システム100は、ストレージシステムの一例であり、例えばイーサネット(登録商標)又はLAN(Local Area Network)などから構成されるネットワーク102を介して相互に接続された複数のローカルホスト装置101と、クラウド制御部103と、計算機提供サービス105とブロックストレージ提供サービス106とで構成されるクラウドサービス104と、計算機提供サービス105の中に構成される複数のコンピュートノード107及びストレージノード108A、108Bと、ブロックストレージ提供サービス106の中に構成される複数の仮想記憶装置110と、物理記憶装置111とを備えて構成されている。また、ストレージノード108A、108Bは、クラスタ109を構成し、ストレージノード108A、108Bは、それぞれを制御するストレージ制御部401、402を備える。なお、ストレージノード108A、108Bをそれぞれ区別しない場合は、単にストレージノード108と言う場合がある。またこの場合、ストレージノード108A、108Bは、クラウド計算機で構成され、仮想記憶装置110は、クラウド記憶装置である、と言うことができる。
【0016】
ローカルホスト装置101は、クラウドサービス104の利用者がクラウドサービス104を利用するために用いる汎用のコンピュータ装置である。
コンピュートノード107は、ユーザ操作や実装されたアプリケーションプログラムからの要求に応じてストレージノード108A、108Bに対してリード要求又はライト要求(以下、適宜、これらをまとめてI/O(Input/Output)要求と呼ぶ)を送信する計算的提供サービスにより提供される仮想的なコンピュータ装置である。なお、本実施の形態では、コンピュートノード107を計算機提供サービス105の中に構築しているが、ローカルホスト装置101と同様にクラウドサービス104の外に構成してもよい。
【0017】
ストレージノード108は、コンピュートノード107に対してデータを読み書きするための記憶領域を提供する物理または仮想サーバ装置である。
図2は、ストレージノード108のハードウェア構成を示した図である。
図2に示すように、ストレージノード108は、内部ネットワークを介して相互に接続された、コンピュートノード向け通信装置201、CPU(Central Processing Unit)202、メモリ203、及びブロックストレージ提供サービス向け通信装置204を備えて構成される。各ストレージノード108は、これらをそれぞれ1以上備える。なお、コンピュートノード向け通信装置201、CPU202、メモリ203、及びブロックストレージ提供サービス向け通信装置204はそれぞれ仮想的な装置であってもよい。また、コンピュートノード向け通信装置201及びブロックストレージ提供サービス向け通信装置204は、物理的に異なる通信装置であっても、物理的に同一であり、論理的に分離されている通信装置であってもよい。また、物理的、論理的に同一の通信装置であってもよい。
【0018】
コンピュートノード向け通信装置201は、ストレージノード108がネットワークを介してコンピュートノード107や、他のストレージノード又はクラウド制御部103と通信を行うためのインタフェースであり、例えばNIC(Network Interface Card)などから構成される。コンピュートノード向け通信装置201は、コンピュートノード107、他のストレージノード108又はクラウド制御部103との通信時におけるプロトコル制御を行う。
【0019】
CPU202は、ストレージノード108全体の動作制御を司るプロセッサである。またメモリ203は、SRAM(Static RAM(Random Access Memory))やDRAM(Dynamic RAM)などの揮発性の半導体メモリから構成され、各種プログラムや必要なデータを一時的に保持するために利用される。メモリ203に格納されたプログラムを、少なくとも1以上のCPU202が実行することにより、後述のようなストレージノード108全体としての各種処理が実行される。
【0020】
図1に戻り、計算機提供サービス105は、仮想的または物理的な汎用のコンピュータ装置をシステム管理者に提供するサービスである。
ブロックストレージ提供サービス106は、仮想的または物理的な記憶装置を計算機提供サービス105により提供されるコンピュータ装置、例えばストレージノード108にブロックストレージ提供サービス向けネットワークを介して提供するサービスである。なお、ブロックストレージ提供サービス向けネットワークはネットワーク102と同一でもよく、VLAN(Virtual Local Area Network)などの技術を用いて仮想的に分離されていてもよい。本実施の形態の場合、ブロックストレージ提供サービス106は仮想的な記憶装置を計算機提供サービス105に提供し、各仮想的な記憶装置内の各領域は、複数のゾーン113(ここでは、ゾーン1~3)に存在する物理記憶装置111に跨って冗長化される。
【0021】
物理記憶装置111は、SAS(Serial Attached SCSI(Small Computer System Interface)) SSD(Solid State Drive)、NVMe(Non Volatile Memory express) SSD、SASハードディスクドライブ又はSATA(Serial ATA(Advanced Technology Attachment))ハードディスクドライブなどの1又は複数種類の大容量の不揮発性記憶装置から構成され、コンピュートノード107からのリード/ライト要求(以下、これをI/O(Input/Output)要求と呼ぶ)に応じてデータをリード/ライトするための物理的な記憶領域を提供する。
【0022】
クラウドサービス104は、システム管理者が本情報処理システム100における計算機提供サービス105およびブロックストレージ提供サービス106を制御するサービスである。クラウドサービス104は、制御対象となるサービスの各々が提供する仮想的または物理的な装置の追加・削除・構成変更などを、ネットワーク102を介して可能とする。
【0023】
<本情報処理システム100における各種処理の流れ>
<<クラウド制御部103のメモリに格納された情報>>
次に、本情報処理システム100におけるクラウドサービス104側の構成について説明する。
【0024】
図3は、第1の実施形態の仮想記憶装置110と物理記憶装置111の構成、及びこれらの関係の例を示す図である。
物理記憶装置111は、その物理領域があるサイズに分割されており、当該サイズの単位で仮想記憶装置110に容量を提供する。以下では当該仮想記憶装置110に提供するサイズの単位をチャンクと呼び、特に物理記憶装置111内の領域を指す場合は物理チャンク、仮想記憶装置110内の領域を指す場合は仮想チャンクと呼ぶ。
図3では、物理チャンク302が仮想チャンク303に割り当てられ、物理チャンク304が仮想チャンク301に割り当てられた場合を示している。仮想記憶装置110と物理記憶装置111は1:1に対応している必要はなく、1つの物理記憶装置111内の物理チャンクが、複数の仮想記憶装置110に割り当てられていてもよいし、複数の物理記憶装置111内の異なる物理チャンクが、1つの仮想記憶装置110に割り当てられていてもよい。この場合、仮想チャンクに対して物理チャンクを多重化することができる。ただし、1つの仮想記憶装置110に割り当てられる各物理チャンクに対応する物理記憶装置111のストレージ種別(例えばSAS、SSD等)は、共通とすることが望ましい。
チャンクは、I/O処理の最小単位に相当するサブブロックで構成される。サブブロックのサイズは、I/Oコマンドが例えばSCSI(Small Computer System Interface)である場合には512byteである。
【0025】
図4は、第1の実施形態のクラウド制御部103のメモリ構成を示す図である。
クラウド制御部103は、クラウド制御情報格納領域1000を備える。クラウド制御情報格納領域1000は、仮想記憶装置管理テーブル1001、物理記憶装置管理テーブル1002、仮想記憶装置マッピングテーブル1003が格納される。それぞれのテーブルの詳細については
図5、
図6、
図7を用いて説明する。
【0026】
図5は、第1の実施形態の仮想記憶装置管理テーブル1001の構成例を示す図である。
仮想記憶装置管理テーブル1001は、仮想記憶装置110の構成情報を管理するテーブルである。
仮想記憶装置#カラム1101には、仮想記憶装置110の識別子が格納されている。ストレージノード#カラム1102には、対応する仮想記憶装置110がストレージノード108に割り当てられている場合にはストレージノード108の識別子が格納され、対応する仮想記憶装置110がストレージノード108に割り当てられていない場合は“Unattached”が格納される。
サイズカラム1103は、仮想記憶装置110の容量を示しており、ストレージノード108からは、当該サイズカラムに格納された容量を持つ記憶装置として認識される。
種別カラムに1104は、対応する仮想記憶装置110に割り当てられる各物理チャンクに対応する物理記憶装置111のストレージ種別が格納される。
保護方式カラム1105には、対応する仮想記憶装置110の保護方式が格納され、例えば保護方式が「ゾーン内」であった場合は、当該仮想記憶装置110内の仮想チャンクに対応する各物理チャンクは、全てが同一のゾーン113内の物理記憶装置111内に存在し、保護方式が「ゾーン間」であった場合は、当該仮想記憶装置110内の仮想チャンクに対応する各物理チャンクは、全て異なるゾーン113内の物理記憶装置111内に存在する。
【0027】
図6は、第1の実施形態の物理記憶装置管理テーブル1002の構成例を示す図である。
物理記憶装置管理テーブル1002は、物理記憶装置111の構成情報を管理するテーブルである。
物理記憶装置#カラム1201には、物理記憶装置111の識別子が格納されている。
ゾーン#カラム1202には、対応する物理記憶装置111がどのゾーン113内に存在するかを示す情報が格納されている。
サイズカラム1203は、物理記憶装置111の容量を示しており、当該サイズカラムに格納された容量を超える物理チャンクを仮想記憶装置110に割り当てることはできない。
種別カラム1204には、物理記憶装置111のストレージ種別が格納される。
状態カラム1205には、対応する物理記憶装置111の状態が格納される。例えば当該物理記憶装置111に障害が発生していない場合は、その旨に相当する情報(Normal)が格納される。一方、当該物理記憶装置111に障害が発生している場合は「障害」に相当する情報(Blocked)が格納される。
【0028】
図7は、第1の実施形態の仮想記憶装置マッピングテーブル1003の構成例を示す図である。
仮想記憶装置マッピングテーブル1003には、仮想記憶装置110を構成する仮想チャンクを示す情報と、各仮想チャンクに対応する物理チャンクのマッピング情報が格納される。
具体的には、仮想記憶装置110の識別子を示す仮想記憶装置#1301と、仮想記憶装置110を構成する仮想チャンクの識別子を示す仮想チャンク#1302の関係が格納され、各仮想チャンクを構成する複数の各物理チャンクがそれぞれ格納される物理記憶装置111を示す物理記憶装置#1303と、物理記憶装置111内の物理チャンクの位置を示す物理チャンク#1304の関係が格納されている。本実施の形態では、ユーザデータは三重化されるため、1つの仮想チャンク当たり3つの物理チャンクを示す情報が格納されている。
【0029】
<<ストレージノード108のメモリ203に格納された情報>>
次に、本情報処理システム100におけるストレージノード108の構成について説明する。
各ストレージノード108のメモリ203には、制御情報格納領域2000と、制御プログラム格納領域2100とが存在する。
【0030】
図8は、制御情報格納領域2000について示した図である。
図8に示すように、制御情報格納領域2000には、クラスタ構成情報2001と、ストレージ制御情報2002と、ボリューム管理情報2003が格納される。
クラスタ構成情報2001は、クラスタ109を構成するストレージノード108A、108B、ストレージ制御部401、402のアクティブ/スタンバイ状態、およびアクティブ、スタンバイのストレージ制御部401、402がそれぞれどのゾーン113に存在するか、さらに仮想記憶装置110の保護方式を管理する。仮想記憶装置110の保護方式とは、クラウドサービス104側で実施されるデータの冗長化であり、例えば単一のゾーン113内での冗長化、または複数のゾーン113間での冗長化などがある。
【0031】
また、ストレージ制御情報2002は、SDS(Software Defined Storage)のストレージコントローラとしての管理情報を格納する。本実施の形態の場合、ストレージノード108A、108Bはそれぞれストレージ制御部401、402を有し、各ストレージ制御部401、402は、それぞれ互いに異なる他のストレージノードにそれぞれ実装された1又は複数の他のストレージ制御部と共に冗長化のための1つのグループとして管理される。当該グループは、例えば、アクティブ-ホットスタンバイ(アクティブの代替として存在し、起動はしているが、I/O要求を受け付けない)、またはアクティブ-コールドスタンバイ(アクティブの代替として存在し、起動はしていない)などの構成がある。
【0032】
本実施の形態のように、一つのストレージ制御部401がアクティブに設定され、他方のストレージ制御部402がそのバックアップとしてホットスタンバイ/コールドスタンバイに設定された構成では、アクティブに設定されたストレージ制御部401又はそのストレージ制御部401が稼働するストレージノード108A、またはストレージノード108Aが存在するゾーン1に障害が発生した場合、それまでホットスタンバイ/コールドスタンバイに設定されていたストレージ制御部402の状態がアクティブに切り替えられる。これにより、アクティブに設定されたストレージ制御部401が稼働し得なくなった場合に、当該ストレージ制御部401が実行していたI/O(Input/Output)処理をそれまでホットスタンバイ/コールドスタンバイに設定されていたストレージ制御部402により引き継ぐことができる。これを以降フェールオーバー機能と呼ぶ。
【0033】
このようなフェールオーバー機能を実現するため、同じグループに属するストレージ制御部401、402は、常に同一内容のストレージ制御情報2002を保持している。ストレージ制御情報2002は、容量仮想化機能や、アクセス頻度の多いデータをより応答速度が速い記憶領域に移動させる階層記憶制御機能、格納されたデータの中から重複するデータを削除する重複排除機能、データを圧縮して記憶する圧縮機能、ある時点でのデータの状態を保持するSnapshot(スナップショット)機能、及び、災害対策のために同期あるいは非同期で遠隔地にデータをコピーするリモートコピー機能などの各種機能に関する処理をストレージ制御部401、402が実行するために必要な情報である。当該情報は仮想記憶装置110にも保持され、不揮発化される。後述するように、フェイルオーバー処理時には、当該情報をフェイルオーバー先で仮想記憶装置110から取得する。
【0034】
ボリューム管理情報2003は、仮想記憶装置110の容量を用いて、コンピュートノード107にボリュームを提供するための管理情報を格納する。
【0035】
図9は、制御プログラム格納領域2100について示した図である。
図9に示すように、制御プログラム格納領域2100には、ゾーン障害時フェイルオーバープログラム2101と、ゾーン復旧時フェイルバックプログラム2102と、ノード障害時フェイルオーバープログラム2103と、ノード復旧時フェイルバックプログラム2104が格納される。これらの制御プログラムの詳細については後述する。なおこれ以外にも、制御プログラム格納領域2100には、I/O処理や、前述した容量仮想化等の各種機能を制御するためのプログラムが格納されるが、記載を省略する。
【0036】
図10は、従来技術における、ゾーン障害耐性を有するストレージクラスタの構成例である。
なお、
図10では、クラウドサービス104内の計算機提供サービス105、及びブロックストレージ提供サービス106以外は共通のため省略している。
図10の構成では、異なる2以上のゾーン113にストレージノード108A、108Bが存在し、それぞれストレージ制御部401、402を有する。また、ストレージ制御部401、402には、「アクティブ」および「ホットスタンバイ」が存在し、ゾーン1上のストレージノード108Aで稼働するストレージ制御部401(アクティブ)と、ゾーン2上のストレージノード108Bで稼働するストレージ制御部402(ホットスタンバイ)とがクラスタ109を構成している。加えて、それぞれのストレージノード108A、108Bには、同一のゾーン113内で冗長化される仮想記憶装置110がアタッチされている。ゾーン1のストレージノード108Aにアタッチされた仮想記憶装置110と、ゾーン2のストレージノード108Bにアタッチされた仮想記憶装置110はストレージ制御部401、402によって冗長化(ミラーリング)されており、同一のデータが格納されている。
【0037】
図10の構成において、例えばゾーン1に障害が発生した場合、クラスタ監視装置(クラスタ109の状態を定期的に監視する装置。図では省略)からのフェイルオーバー指示を受けたゾーン2のストレージ制御部402(ホットスタンバイ)が、アクティブへと昇格し、ゾーン1のストレージ制御部401が実行していたI/O(Input/Output)処理を引き継ぐ。
【0038】
図10の構成は、ゾーン2側にホットスタンバイ状態のストレージ制御部402が存在するため、ゾーン障害検出からフェイルオーバー完了までの時間を極めて短くすることが可能であるが、ホットスタンバイ状態のストレージ制御部402を含むストレージノード108Bが常時必要となること、加えて同ストレージノード108Bにも仮想記憶装置110をアタッチする必要があることから、構築コストが問題となる。
【0039】
図11は、第1の実施形態における、ゾーン障害耐性を有するストレージクラスタの構成例である。
なお以下、主に
図10との差分について中心に説明を行う。
図11の構成では、ゾーン1にストレージノード108Aが存在し、ゾーン2には、停止状態のストレージノード108Bが存在する。ストレージノード108Bはストレージ制御部402を有するが、
図10のようにアクティブ-ホットスタンバイの構成ではなく、アクティブ-コールドスタンバイの構成となっている。ゾーン1のストレージノード108Aには、複数のゾーン113間で冗長化される仮想記憶装置110がアタッチされている。
【0040】
<<ゾーン障害時の処理の流れ>>
図12は、
図11の構成において、例えばゾーン1に障害が発生した場合の概要を示した図である。
まず、クラスタ監視装置からのフェイルオーバー指示を受け、ゾーン2でストレージノード108Bが起動し、ストレージ制御部402(コールドスタンバイ)が、アクティブへと昇格して、ゾーン1のストレージ制御部401が実行していたI/O処理を引き継ぐ。加えて、ゾーン1のストレージノード108Aにアタッチしていた仮想記憶装置110をデタッチし、フェイルオーバー先であるゾーン2のストレージノード108Bにアタッチしなおす。この際、実際のデータは同じくゾーン2の物理記憶装置111内に存在するため、ゾーン2のストレージノード108BからのI/O要求受領時に、ゾーン113を跨いだアクセスが発生せず、性能低下を防ぐことができる。
【0041】
図11の構成は、仮想記憶装置110自体がゾーン障害耐性を有することから、ゾーン2側で個別に仮想記憶装置110を用意する必要がなく、また当該仮想記憶装置110に書き込みを行うためのストレージノードも必要がないため、
図10の構成に比べ、コストを大幅に削減することができる。ただし、ゾーン2側のストレージノード108Bはホットスタンバイ状態ではないため、ゾーン障害時にストレージノード起動に時間を要し、フェールオーバー完了までの時間が若干長くなることに注意する必要がある。
【0042】
図13は、ゾーン障害検出処理を示したフローチャートである。
当該処理は、ゾーン障害検出プログラムによって行われ、ゾーン障害検出時に、ゾーン障害時フェイルオーバー処理を実行する。具体的には以下の通りである。
まず、ゾーン障害検出プログラムは、対象となるシステムが稼働中であるかを判定する(S3001)。
そして、稼働中でない場合(S3001でNO)は、ゾーン障害検出プログラムは、処理を終了する。
対して、システム稼働中である場合(S3001でYES)は、ゾーン障害検出プログラムは、定期的にゾーン障害の有無をチェックする(S3002)。
そして、ゾーン障害検出時(S3002でYES)は、ゾーン障害検出プログラムは、ストレージクラスタ構成管理情報内のプライマリゾーン情報を算出し、それがプライマリゾーンの障害であるかを判定する(S3003)。
その結果、プライマリゾーンの障害であった場合(S3001でYES)には、ゾーン障害検出プログラムは、ゾーン障害時フェイルオーバー処理を起動する(S3004)。
なお、ゾーン障害を検出しなかったとき(S3002でNO)、およびプライマリゾーンの障害でなかった場合(S3001でNO)は、S3001に戻る。
【0043】
図14は、
図13のS3004のゾーン障害時フェイルオーバー処理を示したフローチャートである。
当該処理はゾーン障害時フェイルオーバープログラム2101によって行われ、ストレージノードのフェイルオーバー処理を行う。具体的には以下の通りである。
まず、ゾーン障害時フェイルオーバープログラム2101は、フェイルオーバー先のゾーン113を選択する(S3101)。フェイルオーバー先のゾーン113は、フェイルオーバー元のストレージノード108Aにアタッチしていた仮想記憶装置110に対応する物理記憶装置111が存在するゾーン113から選択することが望ましい。ここでは、フェイルオーバー先をゾーン2とした場合について説明する。
【0044】
ゾーン障害時フェイルオーバープログラム2101は、ストレージノード108Bを起動する(S3102)。当該ストレージノード108Bは停止状態であるため、起動に時間を要するか、またはクラウドサービス104側でのリソース不足等により、一定時間内に起動が完了しない可能性がある。そのため、ゾーン障害時フェイルオーバープログラム2101は、定期的に起動が完了しているかをチェックする(S3103)。
そして、起動が完了せず(S3103でNO)、一定時間を超過した場合(タイムアウト)(S3104でYES)、ゾーン障害時フェイルオーバープログラム2101は、フェイルオーバーが失敗したことをシステム管理者に通知する(S3105)。なお、一定時間を超過していない場合(S3104でNO)は、S3103に戻る。
【0045】
対して、ゾーン障害時フェイルオーバープログラム2101が、起動完了を確認した場合(S3103でYES)、ゾーン障害時フェイルオーバープログラム2101は、フェイルオーバー元のストレージノード108Aにアタッチしていた仮想記憶装置110を、起動済みのフェイルオーバー先のストレージノード108Bにアタッチする(S3106)。
その後、フェイルオーバー先のストレージノード108Bのストレージ制御部402は、仮想記憶装置110からクラスタ109の制御情報を取得し(S3107)、ストレージノード108B内のストレージクラスタ構成管理情報を更新する(S3108)。
最後に、ゾーン障害時フェイルオーバープログラム2101は、ストレージ制御部402をコールドスタンバイ状態からアクティブ状態に変更し、フェイルオーバー処理を完了する(S3109)。
【0046】
図15は、ゾーン復旧検出処理を示したフローチャートである。
当該処理は、ゾーン障害検出プログラムによって行われ、ゾーン復旧検出時に、ゾーン復旧時フェイルバック処理を実行する。具体的には以下の通りである。
まず、ゾーン復旧検出プログラムは、対象となるシステムが稼働中であるかを判定する(S3201)。
その結果、稼働中でない場合(S3201でNO)は、ゾーン復旧検出プログラム処理を終了する。
対してシステム稼働中である場合(S3201でYES)は、ゾーン復旧検出プログラムは、定期的にゾーン復旧の有無をチェックする(S3202)。
そして、ゾーン復旧検出プログラムが、ゾーン復旧を検出したとき(S3202でYES)は、ゾーン障害検出プログラムは、復旧したゾーン113にフェイルバックが必要かを判定する(S3203)。具体的には、システム管理者へフェイルバック完了を通知し、フェイルバック要否をシステム管理者が決定してもよいし、予め対象ゾーンの復旧時に自動的にフェイルバックするように設定してもよい。
ゾーン障害検出プログラムが、フェイルバックが必要と判定した場合(S3203でYES)は、ゾーン復旧時フェイルバック処理を起動する(S3204)。
また、ゾーン障害検出プログラムが、ゾーン復旧を検出できなかったとき(S3202でNO)、およびゾーン障害検出プログラムが、フェイルバックが必要でない判定した場合(S3203でNO)は、S3201に戻る。
【0047】
図16は、
図15のS3204のゾーン復旧時フェイルバック処理を示したフローチャートである。
当該処理は、ゾーン復旧時フェイルバックプログラム2102によって行われ、ストレージノードのフェイルバック処理を行う。具体的には以下の通りである。
まず、ゾーン復旧時フェイルバックプログラム2102は、フェイルバック先のゾーン113を選択する(S3301)。フェイルバック先のゾーン113は、システム管理者が決定したゾーン113としてもよいし、事前にフェイルバック先を決定しておいてもよい。ここでは、フェイルバック先をゾーン1とした場合について説明する。
【0048】
ゾーン復旧時フェイルバックプログラム2102は、ストレージノード108Aを起動する(S3302)。当該ストレージノード108Aは停止状態であるため、起動に時間を要するか、またはクラウドサービス104側でのリソース不足等により、一定時間内に起動が完了しない可能性がある。そのため、ゾーン復旧時フェイルバックプログラム2102は、定期的に起動が完了しているかをチェックする(S3303)。
そして、起動が完了せず(S3303でNO)、一定時間を超過した場合(タイムアウト)(S3304でYES)、ゾーン復旧時フェイルバックプログラム2102は、フェイルバックが失敗したことをシステム管理者に通知する(S3305)。なお、一定時間を超過していない場合(S3304でNO)は、S3303に戻る。
【0049】
対して、ゾーン復旧時フェイルバックプログラム2102が、起動完了を確認した場合(S3303でYES)、ゾーン復旧時フェイルバックプログラム2102は、フェイルバック元のストレージノード108Bにアタッチしていた仮想記憶装置110を、起動済みのフェイルバック先のストレージノード108Aにアタッチする(S3306)。
その後、フェイルバック先のストレージノード108Aのストレージ制御部401は、仮想記憶装置110、またはフェイルバック元のストレージノード108Bからクラスタ109の制御情報を取得し(S3307)、ストレージノード108B内のストレージクラスタ構成管理情報を更新する(S3308)。
最後に、ゾーン復旧時フェイルバックプログラム2102は、ストレージ制御部401をアクティブ状態に変更し、フェイルバック元のストレージノード108Bを停止し、フェイルオーバー処理を完了する(S3309)。
【0050】
上述した情報処理システム100は、複数の異なるゾーン(上述した例では、ゾーン1~3)に配置された複数のクラウド計算機上で稼働するストレージシステムであり、複数のゾーンの複数の計算機に配置され、入出力されるデータを処理するストレージノードを有し、ストレージノードには、正常運用中に動作する第一のストレージノード(上述した例では、ストレージノード108A)と、第一のストレージノードは異なるゾーン(上述した例では、ゾーン2)に存在し、かつ第一のストレージノードから処理を引き継ぎ可能な第二のストレージノード(上述した例では、ストレージノード108B)と、が含まれ、複数のクラウド計算機は、ストレージノードが処理するデータを物理的に格納する記憶装置(上述した例では、物理記憶装置111)を有し、異なるゾーン間に配置された複数の記憶装置によりゾーン間で冗長化してデータを格納する仮想記憶装置110と、を備え、ストレージシステムは、ストレージ制御情報2002を用いて仮想記憶装置110内のデータにアクセスし、ストレージシステムを、仮想記憶装置110に格納し、仮想記憶装置110は、格納されたデータをゾーン間で冗長化し、第一のストレージノードを含むゾーンに障害が発生した場合に、第二のストレージノードが、ゾーン間で冗長化されたデータを用いて第一のストレージノードの処理を引き継ぐ、と言うことができる。
このとき、第一のストレージノード(上述した例では、ストレージノード108A)を含むゾーン(上述した例では、ゾーン1)に障害が発生した場合に、第二のストレージノード(上述した例では、ストレージノード108B)と同じゾーン(上述した例では、ゾーン2)においてアタッチされた仮想記憶装置110は、第二のストレージノードと同じゾーンに存在する記憶装置(上述した例では、物理記憶装置111)を利用して仮想記憶を実現する。
【0051】
また、上述した情報処理システム100は、正常運用中に動作する第一のストレージノード(上述した例では、ストレージノード108A)と、第一のストレージノードとは異なるゾーン(上述した例では、ゾーン2)に存在し、かつ第一のストレージノードの正常運用中は停止状態である第二のストレージノード(上述した例では、ストレージノード108B)と、第一のストレージノードの正常運用中は、第一のストレージノードに接続する仮想記憶装置110と、を備え、第一のストレージノードを含むゾーン(上述した例では、ゾーン1)に障害が発生した場合に、第二のストレージノードが起動するとともに第二のストレージノードに仮想記憶装置110が接続され、第一のストレージノードの代替として動作するストレージシステムであると言うことができる。
また、第一のストレージノードの正常運用中は、第一のストレージノード以外のストレージノードには仮想記憶装置110は接続せず、第一のストレージノードを含むゾーン(上述した例では、ゾーン1)に障害が発生した場合に、第一のストレージノードと同じゾーンに接続された仮想記憶装置110はデタッチされ、第二のストレージノードと同じゾーン(上述した例では、ゾーン2)において仮想記憶装置110がアタッチされる、と言うことができる。
さらに、仮想記憶装置110は、仮想記憶を実現し、複数のゾーンに存在することで冗長化された物理記憶装置111が接続され、第一のストレージノードを含むゾーンに障害が発生した場合に、第二のストレージノードと同じゾーンにおいてアタッチされた仮想記憶装置110は、第二のストレージノードと同じゾーンに存在する物理記憶装置111を利用して仮想記憶を実現する、と言うことができる。
【0052】
<<ノード障害時の処理の流れ>>
図17は、
図11の構成において、例えばゾーン1内のストレージノード108Aに障害が発生した場合の概要を示した図である。
即ち、
図11では、ゾーン1全体に障害が発生した場合を示したが、
図17は、ゾーン1内のストレージノード108Aだけに障害が発生した場合を示す。
障害時のフェイルオーバー処理は、
図14で説明した場合と比較して、ゾーン障害時フェイルオーバープログラム2101の代わりに、ノード障害時フェイルオーバープログラム2103を使用すること以外は同様である。つまり、まずノード障害時フェイルオーバープログラム2103が、ストレージノード108Bを起動する。そして、ノード障害時フェイルオーバープログラム2103は、仮想記憶装置110を、起動済みのフェイルオーバー先のストレージノード108Bにアタッチする。さらに、ノード障害時フェイルオーバープログラム2103は、ストレージ制御部402をコールドスタンバイ状態からアクティブ状態に変更する。
【0053】
また復旧時のフェイルバック処理は、
図16で説明した場合と比較して、ゾーン復旧時フェイルバックプログラム2102の代わりに、ノード復旧時フェイルバックプログラム2104を使用すること以外は同様である。つまり、まずノード復旧時フェイルバックプログラム2104は、ストレージノード108Aを起動する。そして、ノード復旧時フェイルバックプログラム2104は、仮想記憶装置110を、起動済みのフェイルバック先のストレージノード108Aにアタッチする。さらに、ノード復旧時フェイルバックプログラム2104は、ストレージ制御部401をアクティブ状態に変更し、フェイルバック元のストレージノード108Bを停止する。
【0054】
図17の形態は、第一のストレージノード(上述した例では、ストレージノード108A)だけに障害が発生した場合に、第二のストレージノード(上述した例では、ストレージノード108B)と同じゾーン(上述した例では、ゾーン2)においてアタッチされた仮想記憶装置110は、第二のストレージノードに存在する物理記憶装置111に加え、第一のストレージノードに存在する物理記憶装置111を利用して仮想記憶を実現する、と言うことができる。
【0055】
〔第2の実施形態〕
以下では、本発明における第2の実施形態について説明する。第1の実施形態では、ストレージノード108Aに障害が発生した場合、フェイルオーバー先が別ゾーンとなってしまうため、I/O処理時にゾーン間通信が発生し、性能が低下してしまうという課題があった。そこで、第2の実施形態では、ゾーン113内でも冗長化を行うことにより、ゾーン障害耐性を有しつつ、ストレージノード障害時の性能低下を回避する。
【0056】
図18は、ゾーン113内でも冗長化を行うときの従来方式について示した図である。
この場合、ゾーン1にストレージノード108A1、108A2が存在し、それぞれストレージ制御部401A1、401A2を有する。また、ゾーン2にストレージノード108Bが存在し、ストレージ制御部402を有する。また、ストレージ制御部401A1、401A2、402には、「アクティブ」および「ホットスタンバイ」が存在し、ゾーン1上のストレージノード108A1で稼働するストレージ制御部401A1(アクティブ)と、ゾーン1上のストレージノード108A2で稼働するストレージ制御部401A2(ホットスタンバイ)と、ゾーン2上のストレージノード108Bで稼働するストレージ制御部402(ホットスタンバイ)とがクラスタ109を構成している。加えて、それぞれのストレージノード108A1、108A2、108Bには、同一のゾーン113内で冗長化される仮想記憶装置110がアタッチされている。ゾーン1のストレージノード108A1にアタッチされた仮想記憶装置110と、ゾーン1のストレージノード108A2にアタッチされた仮想記憶装置110と、ゾーン2のストレージノード108Bにアタッチされた仮想記憶装置110は、ストレージ制御部401A1、401A2、402によって冗長化(ミラーリング)されており、同一のデータが格納されている。
【0057】
図18の構成において、例えばゾーン1のストレージノード108A1に障害が発生した場合、クラスタ監視装置(クラスタ109の状態を定期的に監視する装置。図では省略)からのフェイルオーバー指示を受けたゾーン1のストレージ制御部401A2(ホットスタンバイ)が、アクティブへと昇格し、ゾーン1のストレージ制御部401A1が実行していたI/O(Input/Output)処理を引き継ぐ。
【0058】
図19は、第2の実施の形態による情報処理システム100の構成を示す図である。
ゾーン1にストレージノード108A1、108A2が存在し、ゾーン2には、停止状態のストレージノード108B1、108B2が存在する。ストレージノード108A1、108A2は、ストレージ制御部401A1、401A2を有し、それぞれアクティブ、ホットスタンバイになっている。また、ストレージノード108B1、108B2はストレージ制御部402B1、402B2を有し、双方ともコールドスタンバイになっている。ゾーン1のストレージノード108A1、108A2には、複数のゾーン113間で冗長化される仮想記憶装置110がアタッチされている。
【0059】
図20は、
図19の構成において、ゾーン1に障害が発生した場合の概要を示した図である。
まず、クラスタ監視装置からのフェイルオーバー指示を受け、ゾーン2でストレージノード108B1、108B2が起動し、ストレージ制御部402B1(コールドスタンバイ)が、アクティブへと昇格して、ゾーン1のストレージ制御部402A1が実行していたI/O処理を引き継ぐ。また、ストレージ制御部402B2(コールドスタンバイ)が、ホットスタンバイになる。加えて、ゾーン1のストレージノード108B1、108B2にアタッチしていた仮想記憶装置110をデタッチし、フェイルオーバー先であるゾーン2のストレージノード108B1、108B2にアタッチしなおす。
図19、
図20の構成において、ゾーン1に障害が発生した場合は、ゾーン2の2つのコールドスタンバイが、それぞれアクティブ、ホットスタンバイとなり、ゾーン113内での冗長構成を維持することができる。
【0060】
第2の実施形態の情報処理システム100は、第一のストレージノード(上述した例では、ストレージノード108A1)と同じゾーン(上述した例では、ゾーン1)に存在する、第三のストレージノード(上述した例では、ストレージノード108A2)および第三のストレージノードに接続する第二の仮想記憶装置110が存在することで、第一のストレージノードおよび仮想記憶装置110が同じゾーン内で冗長化されている、と言うことができる。
【0061】
また、ゾーン1内のストレージノード108A1だけに障害が発生した場合は、クラスタ監視装置からのフェイルオーバー指示を受けたゾーン1のストレージ制御部401A2(ホットスタンバイ)が、アクティブへと昇格し、ゾーン1のストレージ制御部401A1が実行していたI/O(Input/Output)処理を引き継ぐ。
この場合、第一のストレージノード(上述した例では、ストレージノード108A1)だけに障害が発生した場合に、第一のストレージノードと同じゾーン(上述した例では、ゾーン1)内に存在する第三のストレージノード(上述した例では、ストレージノード108A2)および第二の仮想記憶装置110を運用する、と言うことができる。
【0062】
<情報処理システム100の制御方法の説明>
以上説明を行った情報処理システム100が行う処理は、ソフトウェアとハードウェア資源とが協働することにより実現される。即ち、情報処理システム100に設けられたコンピュータ内部のプロセッサが、上述した各機能を実現するソフトウェアをメモリにロードして実行し、これらの各機能を実現させる。
【0063】
よって、情報処理システム100が行う処理は、プロセッサがメモリに記録されたソフトウェアを実行することにより実現し、複数の異なるゾーンに配置された複数のクラウド計算機上で稼働するストレージシステムの制御方法であり、ストレージシステムは、複数のゾーンの複数の計算機に配置され、入出力されるデータを処理するストレージノードを有し、ストレージノードには、正常運用中に動作する第一のストレージノードと、第一のストレージノードとは異なるゾーンに存在し、かつ第一のストレージノードから処理を引き継ぎ可能な第二のストレージノードと、が含まれ、複数のクラウド計算機は、ストレージノードが処理するデータを物理的に格納する記憶装置を有し、異なるゾーン間に配置された複数の記憶装置によりゾーン間で冗長化してデータを格納する仮想記憶装置を備え、ストレージシステムは、ストレージ制御情報を用いて仮想記憶装置内のデータにアクセスし、ストレージシステムを、仮想記憶装置に格納し、仮想記憶装置は、格納されたデータをゾーン間で冗長化し、第一のストレージノードを含むゾーンに障害が発生した場合に、第二のストレージノードが、ゾーン間で冗長化されたデータを用いて第一のストレージノードの処理を引き継ぐストレージシステムの制御方法であると捉えることができる。
【0064】
以上、本実施の形態について説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、種々の変更または改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
【符号の説明】
【0065】
100…情報処理システム、101…ローカルホスト装置、103…クラウド制御部、104…クラウドサービス、105…計算機提供サービス、106…ブロックストレージ提供サービス、107…コンピュートノード、108、108A、108B、108A1、108A2、108B1、108B2…ストレージノード、110…仮想記憶装置、111…物理記憶装置