(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022170852
(43)【公開日】2022-11-11
(54)【発明の名称】ストレージシステムの構成変更方法及びストレージシステム
(51)【国際特許分類】
G06F 11/20 20060101AFI20221104BHJP
G06F 3/06 20060101ALI20221104BHJP
G06F 13/14 20060101ALI20221104BHJP
【FI】
G06F11/20 617
G06F3/06 301A
G06F3/06 304B
G06F13/14 330E
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021077095
(22)【出願日】2021-04-30
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】月岡 純
(72)【発明者】
【氏名】大島 豊
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034CC02
(57)【要約】
【課題】コスト及びユーザの業務への影響を抑えて、ストレージシステムの構成を変更する。
【解決手段】ストレージシステムは、二つのコントローラを搭載する第1ノードを含み、第1ノードの二つのコントローラは、異なる冗長化グループを構成するように冗長化の設定が行われ、ストレージシステムへの、一つのコントローラを搭載する第2ノードの追加に伴う構成変更が要求された場合、第2ノードが、第1ノードの二つのコントローラのいずれかが所属する冗長化グループに、第2ノードのコントローラが所属するように設定し、第1ノードが、第1ノードの二つのコントローラのいずれか一方の冗長化グループの設定情報が変わらないように、冗長化の設定を変更し、第1ノードが、冗長化の設定の変更に伴って冗長化グループの設定情報が変化する、第1ノードのコントローラを無効化する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
少なくとも一つのコントローラを搭載するノードから構成されるストレージシステムが実行するストレージシステムの構成変更方法であって、
前記ストレージシステムは、二つの前記コントローラを搭載する第1ノードと、複数の記憶媒体とを含み、
前記第1ノードの前記二つのコントローラは、異なる冗長化グループを構成するように冗長化の設定が行われ、
前記ストレージシステムの構成変更方法は、
前記ストレージシステムへの、少なくとも一つの前記コントローラを搭載する第2ノードの追加に伴う構成変更が要求された場合、前記第2ノードが、前記第1ノードの前記二つのコントローラのいずれかが所属する前記冗長化グループに、前記第2ノードの前記少なくとも一つのコントローラが所属するように設定する第1のステップと、
前記第1ノードが、前記第1ノードの前記二つのコントローラのいずれか一方の前記冗長化グループの設定情報が変わらないように、前記冗長化の設定を変更する第2のステップと、
前記第1ノードが、前記冗長化の設定の変更に伴って前記冗長化グループの設定情報が変化する、前記第1ノードの前記コントローラを無効化する第3のステップと、を含むことを特徴とするストレージシステムの構成変更方法。
【請求項2】
請求項1に記載のストレージシステムの構成変更方法であって、
前記コントローラは、一つの前記ノードを用いた冗長化の設定を行うための第1管理情報と、二つ以上の前記ノードを用いて冗長化の設定を行うための第2管理情報とを保持し、
前記第1管理情報及び前記第2管理情報は、前記ノードに搭載される前記コントローラに設定する冗長化グループの設定情報を含み、
前記第1のステップは、前記第2ノードの前記少なくとも一つのコントローラが、前記第1管理情報及び前記第2管理情報を参照して、前記第1管理情報及び前記第2管理情報において同一の前記冗長化グループの設定情報に基づいて、当該コントローラが所属する前記冗長化グループを決定するステップを含むことを特徴とするストレージシステムの構成変更方法。
【請求項3】
請求項2に記載のストレージシステムの構成変更方法であって、
前記第2のステップは、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が同一である、前記第1ノードの前記コントローラが、前記第1管理情報から前記第2管理情報に切り替えるステップを含むことを特徴とするストレージシステムの構成変更方法。
【請求項4】
請求項2に記載のストレージシステムの構成変更方法であって、
前記第2のステップは、前記第1管理情報から前記第2管理情報へ切り替えが行われる前に、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が異なる、前記第1ノードの前記コントローラが、当該コントローラのキャッシュメモリに格納されるデータを退避する第4のステップを含むことを特徴とするストレージシステムの構成変更方法。
【請求項5】
請求項4に記載のストレージシステムの構成変更方法であって、
前記第4のステップは、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が異なる、前記第1ノードの前記コントローラが、当該コントローラのキャッシュメモリに格納されるデータを前記第2ノードの前記冗長化グループが設定された前記少なくとも一つのコントローラに書き込むステップを含むことを特徴とするストレージシステムの構成変更方法。
【請求項6】
請求項4に記載のストレージシステムの構成変更方法であって、
前記第4のステップは、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が異なる、前記第1ノードの前記コントローラが、当該コントローラのキャッシュメモリに格納されるデータを前記記憶媒体に書き込むステップを含むことを特徴とするストレージシステムの構成変更方法。
【請求項7】
請求項3に記載のストレージシステムの構成変更方法であって、
前記ストレージシステムから前記第2ノードの削除に伴う構成変更が要求された場合、前記第2ノードの削除が要求される前から有効化されていた、前記第1ノードの前記コントローラが、無効化された前記コントローラを有効化するステップと、
前記第2ノードの前記冗長化グループが設定された前記少なくとも一つのコントローラが、当該コントローラのキャッシュメモリに格納されるデータを退避するステップと、
前記第2ノードの削除が要求される前から有効化されていた、前記第1ノードの前記コントローラが、前記第2管理情報から前記第1管理情報に切り替えるステップと、
前記第2ノードの前記少なくとも一つのコントローラが、前記冗長化グループが設定された前記少なくとも一つのコントローラを無効化するステップと、を含むことを特徴とするストレージシステムの構成変更方法。
【請求項8】
少なくとも一つのコントローラを搭載するノードから構成されるストレージシステムであって、
二つの前記コントローラを搭載する第1ノードと、複数の記憶媒体とを備え、
前記第1ノードの前記二つのコントローラは、異なる冗長化グループを構成するように冗長化の設定が行われ、
前記ストレージシステムへの、少なくとも一つの前記コントローラを搭載する第2ノードの追加に伴う構成変更が要求された場合、
前記第2ノードは、前記第1ノードの前記二つのコントローラのいずれかが所属する前記冗長化グループに、前記第2ノードの前記少なくとも一つのコントローラが所属するように設定する第1処理を実行し、
前記第1ノードは、
前記第1ノードの前記二つのコントローラのいずれか一方の前記冗長化グループの設定情報が変わらないように、前記冗長化の設定を変更する第2処理と、
前記冗長化の設定の変更に伴って前記冗長化グループの設定情報が変化する、前記第1ノードの前記コントローラを無効化する第3処理と、を実行する、
ことを特徴とするストレージシステム。
【請求項9】
請求項8に記載のストレージシステムであって、
前記コントローラは、一つの前記ノードを用いた冗長化の設定を行うための第1管理情報と、二つ以上の前記ノードを用いて冗長化の設定を行うための第2管理情報とを保持し、
前記第1管理情報及び前記第2管理情報は、前記ノードに搭載される前記コントローラに設定する冗長化グループの設定情報を含み、
前記第1処理では、前記第2ノードの前記少なくとも一つのコントローラが、前記第1管理情報及び前記第2管理情報を参照して、前記第1管理情報及び前記第2管理情報において同一の前記冗長化グループの設定情報に基づいて、当該コントローラが所属する前記冗長化グループを決定することを特徴とするストレージシステム。
【請求項10】
請求項9に記載のストレージシステムであって、
前記第2処理では、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が同一である、前記第1ノードの前記コントローラが、前記第1管理情報から前記第2管理情報に切り替えることを特徴とするストレージシステム。
【請求項11】
請求項9に記載のストレージシステムであって、
前記第2処理は、前記第1管理情報から前記第2管理情報へ切り替えが行われる前に、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が異なる、前記第1ノードの前記コントローラが、当該コントローラのキャッシュメモリに格納されるデータを退避する第4処理を実行することを特徴とするストレージシステム。
【請求項12】
請求項11に記載のストレージシステムであって、
前記第4処理では、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が異なる、前記第1ノードの前記コントローラが、当該コントローラのキャッシュメモリに格納されるデータを前記第2ノードの前記冗長化グループが設定された前記少なくとも一つのコントローラに書き込むことを特徴とするストレージシステム。
【請求項13】
請求項11に記載のストレージシステムであって、
前記第4処理では、前記第1管理情報及び前記第2管理情報において前記冗長化グループの設定情報が異なる、前記第1ノードの前記コントローラが、当該コントローラのキャッシュメモリに格納されるデータを前記記憶媒体に書き込むことを特徴とするストレージシステム。
【請求項14】
請求項10に記載のストレージシステムであって、
前記ストレージシステムから前記第2ノードの削除に伴う構成変更が要求された場合、
前記第2ノードの削除が要求される前から有効化されていた、前記第1ノードの前記コントローラが、無効化された前記コントローラを有効化する処理と、
前記第2ノードの前記冗長化グループが設定された前記少なくとも一つのコントローラが、当該コントローラのキャッシュメモリに格納されるデータを退避する処理と、
前記第2ノードの削除が要求される前から有効化されていた、前記第1ノードの前記コントローラが、前記第2管理情報から前記第1管理情報に切り替える処理と、
前記第2ノードの前記少なくとも一つのコントローラが、前記冗長化グループが設定された前記少なくとも一つのコントローラを無効化する処理と、を実行する、ことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一つ以上のノードから構成されるストレージシステムの構成変更方法に関する。
【背景技術】
【0002】
複数のノードを構成要素とするストレージシステムが知られている(例えば、特許文献1を参照)。ストレージシステムでは、可用性を高めるために、複数のノードの間でデータの冗長化している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つのノードから構成されるストレージシステム(以下、第1タイプストレージシステムと記載する。)では、データを冗長化するために、二つのコントローラを搭載し、各コントローラが異なる冗長化グループを構成するように設定される。一方、複数のノードから構成されるストレージシステム(以下、第2タイプストレージシステムと記載する。)では、データを冗長化するために、ノード単位で冗長化グループを構成する。
【0005】
第1タイプストレージシステムから第2タイプストレージシステムに変更する場合に以下のような課題がある。
【0006】
前述したように第1タイプストレージシステムと第2タイプストレージシステムとでは冗長化の管理方法が異なる。そのため、第1タイプストレージシステムに単純にノードを追加しても、第2タイプストレージシステムとはならない。第2タイプストレージシステムとして稼働させるためには、データの冗長化設定を変更し、また、データの退避等の作業が必要とある。したがって、第1タイプストレージシステムから第2タイプストレージシステムへの移行にはコストが大きく、また、ユーザの業務への影響も大きい。
【0007】
本発明は、コストを抑え、かつ、ユーザの業務への影響を抑えて、構成を変更するストレージシステム及びストレージシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、少なくとも一つのコントローラを搭載するノードから構成されるストレージシステムが実行するストレージシステムの構成変更方法であって、前記ストレージシステムは、二つの前記コントローラを搭載する第1ノードと、複数の記憶媒体とを含み、前記第1ノードの前記二つのコントローラは、異なる冗長化グループを構成するように冗長化の設定が行われ、前記ストレージシステムの構成変更方法は、前記ストレージシステムへの、少なくとも一つの前記コントローラを搭載する第2ノードの追加に伴う構成変更が要求された場合、前記第2ノードが、前記第1ノードの前記二つのコントローラのいずれかが所属する前記冗長化グループに、前記第2ノードの前記少なくとも一つのコントローラが所属するように設定する第1のステップと、前記第1ノードが、前記第1ノードの前記二つのコントローラのいずれか一方の前記冗長化グループの設定情報が変わらないように、前記冗長化の設定を変更する第2のステップと、前記第1ノードが、前記冗長化の設定の変更に伴って前記冗長化グループの設定情報が変化する、前記第1ノードの前記コントローラを無効化する第3のステップと、を含む。
【発明の効果】
【0009】
本発明によれば、コストを抑え、かつ、ユーザの業務への影響を抑えて、ストレージシステムの構成を変更できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】実施例1のシステムの構成例を示す図である。
【
図2】実施例1のコントローラのハードウェア構成の一例を示す図である。
【
図3A】実施例1の管理情報の一例を示す図である。
【
図3B】実施例1の管理情報の一例を示す図である。
【
図4】実施例1の管理用端末に提示される画面の一例を示す図である。
【
図5】実施例1のストレージシステムが実行する構成変更処理(スケールアウト)の一例を説明するフローチャートである。
【
図6】実施例1のストレージシステムの状態遷移の一例を示す図である。
【
図7】実施例1のストレージシステムの構成変更処理(スケールアウト)後の構成の一例を示す図である。
【
図8】実施例1のCTLが実行するデータ退避処理の一例を説明するフローチャートである。
【
図9】実施例1のCTLが実行するデータ退避処理の一例を説明するフローチャートである。
【
図10】実施例1のストレージシステムが実行する構成変更処理(スケールイン)の一例を説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0012】
以下の説明では、「テーブル」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。各情報の内容を説明する場合に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
【0013】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0014】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0015】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0016】
図1は、実施例1のシステムの構成例を示す図である。
図2は、実施例1のコントローラのハードウェア構成の一例を示す図である。
【0017】
図1のシステムは、ストレージシステム100、管理用端末101、及びホスト102から構成される。管理用端末101及びホスト102は、ネットワーク105を介してストレージシステム100と接続する。ネットワーク105は、WAN(Wide Area Network)、LAN(Local Area Network)、SAN(Storage Area Network)等である。ネットワーク105の接続方式は有線及び無線のいずれでもよい。なお、管理用端末101とストレージシステム100との間のネットワークと、ホスト102とストレージシステム100との間のネットワークは異なっていてもよい。
【0018】
管理用端末101は、ストレージシステム100を管理するための計算機である。ストレージシステム100の管理者は、管理用端末101を用いてストレージシステム100の設定及び制御を行う。
【0019】
ホスト102は、ストレージシステム100を利用する計算機である。ホスト102は、ストレージシステム100に対してユーザデータを書き込み、また、ストレージシステム100からユーザデータを読み出す。
【0020】
ストレージシステム100は、ホスト102に対してボリュームを提供する。ストレージシステム100は、複数の記憶媒体からRAID(Redundant Arrays of Inexpensive Disks)グループを生成し、RAIDグループからボリュームを生成する。ボリュームは、例えば、LDEVである。
【0021】
ストレージシステム100は、SVP110、ノード120、及びドライブボックス130を備える。SVP110及びノード120は、図示しないスイッチ等から構成される内部ネットワークを介して接続される。
【0022】
SVP110は、ストレージシステム100全体を監視し、管理用端末101から送信された管理コマンド等を受け付けて、ストレージシステム100を制御する。SVP110は、図示しない、CPU、メモリ、記憶媒体、及びネットワークインタフェースを備える。メモリには、ストレージシステム100の構成等を管理する管理情報、及びストレージシステム100の制御機能を実現するプログラム等が格納される。
【0023】
ドライブボックス130は複数の記憶媒体を収容する。記憶媒体は、例えば、HDD(Hard Disk Drive)140及びSSD(Solid State Drive)141等である。
【0024】
ノード120は、ホスト102とドライブボックス130の記憶媒体との間のユーザデータの送受信を制御し、また、記憶媒体に対するユーザデータの読み出し及び書き込みを制御する。ノード120は、一つ以上のCTL(ストレージコントローラ)121を有する。
【0025】
CTL121は、
図2に示すように、CPU200、メモリ201、CHB(CHannel Board)202、及びDKB(DisK Board)203を備える。
【0026】
CPU200は、複数のプロセッサコア(MP)210を含む。メモリ201は、ユーザデータに関する制御を実現するプログラム及び後述する管理情報300、310等を格納する。また、メモリ201は、ユーザデータを一時的に格納するキャッシュメモリを含む。メモリ201に格納されるプログラムは、CPU200によって実行される。
【0027】
CHB202は、ホスト102及びストレージシステム100を接続するインタフェースである。CHB202は、ホスト102及びCTL121間のデータ転送プロトコルと、CTL121内のデータ転送プロトコルとの変換等を行う。
【0028】
DKB203は、CTL121及びドライブボックス130を接続するインタフェースである。DKB203は、CTL121内のデータ転送プロトコルと、CTL121及びドライブボックス130との間のデータ転送プロトコルとの変換等を行う。
【0029】
図1では、ノード120及びSVP110は、別々の構成として記載しているが、ノード120がSVP110を含むような構成でもよい。
【0030】
以下の説明では、ノード120及びCTL121を区別する場合、ノード(i)120及びCTL(i)121と記載する。iは0以上の整数である。
【0031】
図1のストレージシステム100は、一つのノード(0)120から構成されるため、第1タイプストレージシステムである。この場合、ストレージシステム100は、CTL(0)121及びCTL(1)121が異なる冗長化グループに所属するように設定する。これによって、ストレージシステム100は、一つのCTL121に障害が発生してもデータロストを回避でき、稼働を継続できる。
【0032】
図3Aは、実施例1の管理情報300の一例を示す図である。
図3Bは、実施例1の管理情報310の一例を示す図である。CTL121のメモリ201には、二つの管理情報300、310が格納される。
【0033】
管理情報300は、第1タイプストレージシステムの冗長化設定を定義した管理情報である。管理情報300は、ハードID301、冗長化グループID302、ソフトID303、及び搭載フラグ304を含むエントリを格納する。一つのエントリが一つのCTL121の冗長化グループの設定情報に対応する。
【0034】
ハードID301は、ストレージシステム100内のCTL121を識別するための識別情報を格納するフィールドである。
【0035】
冗長化グループID302は、冗長化グループの識別情報を格納するフィールドである。
【0036】
ソフトID303は、ストレージシステム100内のキャッシュメモリを識別するための識別情報を格納するフィールドである。
【0037】
搭載フラグ304は、ストレージシステム100におけるCTL121の有無を示すフラグを格納するフィールドである。搭載フラグ304には、CTL121が搭載されていることを示す「マル」と、CTL121が搭載されていないことを示す「バツ」とのいずれかが格納される。
【0038】
第1タイプストレージシステムは、二つのCTL121を備える、一つのノード120から構成されるため、ハードID301が「2」から「11」のすべてのエントリの搭載フラグ304には「バツ」が格納される。また、二つのCTL121の各々には異なる冗長化グループが設定される。このように、第1タイプストレージシステムではCTL121単位で冗長化グループが構成される。
【0039】
管理情報310は、第2タイプストレージシステムの冗長化設定を定義した管理情報である。管理情報310は、ハードID311、冗長化グループID312、ソフトID313、及び搭載フラグ314を含むエントリを格納する。一つのエントリが一つのCTL121の冗長化グループの設定情報に対応する。
【0040】
ハードID311、冗長化グループID312、ソフトID313、及び搭載フラグ314は、ハードID301、冗長化グループID302、ソフトID303、及び搭載フラグ304と同一のフィールドである。
【0041】
ただし、搭載フラグ314は構成ごとの列を含む。具体的には、一つのCTL121を搭載する二つのノード120から構成されるストレージシステム100(2ノード2CTL構成)、二つのCTL121を搭載する二つのノード120から構成されるストレージシステム100(2ノード4CTL構成)、二つのCTL121を搭載する四つのノード120から構成されるストレージシステム100(4ノード8CTL構成)、及び、二つのCTL121を搭載する六つのノード120から構成されるストレージシステム100(6ノード12CTL構成)である。
【0042】
第2タイプストレージシステムのノード120のCTL121はすべて同じ冗長化グループに所属するように設定される。このように、第2タイプストレージシステムではノード120単位で冗長化グループが構成される。
【0043】
次に、第1タイプストレージシステムから第2タイプストレージシステムへの変更方法について説明する。
【0044】
図4は、実施例1の管理用端末101に提示される画面の一例を示す図である。
【0045】
画面400は、構成表示欄401、増設ボタン402、及び減設ボタン403を含む。
【0046】
構成表示欄401は、ストレージシステム100のハードウェア構成を表示する欄である。構成表示欄401には、ストレージシステム100が備えるノード120、及びノード120に搭載されるCTL121等が表示される。なお、構成表示欄401には、ドライブボックス130等が表示されてもよい。
【0047】
増設ボタン402は、ノード120及びCTL121の少なくともいずれかを追加した構成に変更するための操作ボタンである。減設ボタン403は、ノード120及びCTL121の少なくともいずれかを削除した構成に変更するための操作ボタンである。
【0048】
本実施例のストレージシステム100は、段階的にストレージシステム100の構成が変更される。すなわち、第1タイプストレージシステムから2ノード2CTL構成の第2タイプストレージシステムへスケールアウトが行われ、2ノード2CTL構成の第2タイプストレージシステムから2ノード4CTL構成の第2タイプストレージシステムへスケールアウトが行われ、2ノード4CTL構成の第2タイプストレージシステムから4ノード8CTL構成の第2タイプストレージシステムへスケールアウトが行われ、4ノード8CTL構成の第2タイプストレージシステムから6ノード12CTL構成の第2タイプストレージシステムへスケールアウトが行われる。スケールインも同様である。
【0049】
なお、ノード120の増設に伴う構成変更処理の場合、処理の開始前に、管理者等によって、ストレージシステム100にノード120又はCTL121が物理的に接続されるものとする。
【0050】
図5から
図9を用いてノード120の増設に伴う構成変更処理について説明する。
図5は、実施例1のストレージシステム100が実行する構成変更処理(スケールアウト)の一例を説明するフローチャートである。
図6は、実施例1のストレージシステム100の状態遷移の一例を示す図である。
図7は、実施例1のストレージシステム100の構成変更処理(スケールアウト)後の構成の一例を示す図である。
【0051】
ストレージシステム100のSVP110は、管理用端末101から増設ボタン402の操作を受け付けた場合、構成変更処理(スケールアウト)を実行する。
図5では、第1タイプストレージシステムから2ノード2CTL構成の第2タイプストレージシステムへ変更する場合の構成変更処理(スケールアウト)を説明する。2ノード2CTL以降のスケールアウトは公知の技術を用いればよいため説明を省略する。
【0052】
本実施例では、
図6の状態Aに示すような第1タイプストレージシステムを例に説明する。ノード(0)120のCTL(0)121は冗長化グループ600に所属し、CTL(1)121は冗長化グループ601に所属する。
【0053】
第1タイプストレージシステムから2ノード2CTLの第2タイプストレージシステムへ変更する場合、管理者はストレージシステム100に新規ノード120を追加する。新規ノード120には少なくとも一つのCTL121が搭載される。新規ノード120が二つのCTL121を搭載する場合、いずれか一方のCTL121が無効化される。
【0054】
本実施例では、
図6の状態Bに示すように、CTL(3)121が搭載されたノード(1)120が追加されるものとする。
【0055】
SVP110は、新規ノード120に、第2タイプストレージシステムの冗長化設定を指示する(ステップS101)。
【0056】
新規ノード120のCTL121は、指示を受け付けた場合、メモリ201の管理情報310を読み出し、既存ノード120の二つのCTL121のいずれかが所属する冗長化グループに、当該CTL121が所属するように設定を行う。
【0057】
管理情報300のハードID301が「3」のエントリと、管理情報310のハードID311が「3」のエントリとでは、冗長化グループID302、312、及びソフトID303、313の値が同一である。すなわち、第1タイプストレージシステムから第2タイプストレージシステムに変更しても冗長化グループの設定情報は変更されない。そこで、管理者は、ハードID311が「3」を有効化するように設定を行う。新規ノード120のCTL121は、当該エントリの冗長化グループID312に対応する冗長化グループに所属するように設定を行う。
【0058】
本実施例では、
図6の状態Bに示すように、CTL(3)121がCTL(1)121と同じ冗長化グループ601に所属するように設定される。
【0059】
次に、SVP110は、既存ノード120に、キャッシュメモリに格納されるユーザデータの退避を指示する(ステップS102)。
【0060】
既存ノード120のCTL121は、当該指示を受け付けた場合、データを退避させる対象CTL121を特定する。具体的には、既存ノード120のCTL121は、管理情報300、310を参照し、第1タイプストレージシステムから第2タイプストレージシステムに変更しても冗長化グループの設定情報が変化しないエントリを検索する。CTL121は、当該エントリの冗長化グループとは異なる冗長化グループに所属するCTL(1)121を対象CTL121に決定し、対象CTL121にデータ退避処理の実行を指示する。対象CTL121は、データ退避処理を実行し、データ退避処理が完了した後、SVP110にその旨を通知する。
【0061】
本実施例では、
図6の状態Cに示すように、ノード(0)120のCTL(1)121が、対象CTL121として、キャッシュメモリに格納されるデータを退避する。
【0062】
データ退避処理が完了した後、SVP110は、既存ノード120に、管理情報300から管理情報310への切り替えを指示する(ステップS103)。すなわち、冗長化の設定の変更が指示される。
【0063】
既存ノード120の対象CTL121とは異なるCTL121は、管理情報300から管理情報310に切り替える。管理情報300が管理情報310に切り替わることによって、冗長化の設定がCTL121単位からノード120単位に切り替わる。本実施例では、
図6の状態Dに示すように、ノード(0)120が冗長化グループ600に所属し、ノード(1)120が冗長化グループ601に所属する。
【0064】
次に、SVP110は、既存ノード120に、CTL121の無効化を指示し(ステップS104)、処理を終了する。
【0065】
既存ノード120の対象CTL121とは異なるCTL121が、対象CTL121を無効化する。
【0066】
本実施例では、
図6の状態Eに示すように、CTL(0)121が、対象CTL121であるCTL(1)121を無効化する。
【0067】
なお、SVP110は、管理用端末101に無効化されたCTL121の撤去を依頼するメッセージを表示してもよい。また、SVP110は、管理用端末101にノード120の増設完了を通知するメッセージを表示してもよい。
【0068】
以上の処理の結果、
図1に示すストレージシステム100は、
図7に示すような構成に変更される。
【0069】
本実施例では、第1タイプストレージシステム及び第2タイプストレージシステムにおける冗長化グループの設定情報が同一であるCTL121のみを既存ノード120に残す。これによって、管理情報300から管理情報310に切り替えても既存ノード120のCTL121については冗長化グループの設定情報が変化しない。したがって、ストレージシステム100を停止させることなく、第1タイプストレージシステムから2ノード2CTL構成の第2タイプストレージシステムに構成を変更できる。
【0070】
図8及び
図9は、実施例1のCTL121が実行するデータ退避処理の一例を説明するフローチャートである。
【0071】
【0072】
既存ノード120の対象CTL121は、キャッシュメモリに格納されるユーザデータを新規ノード120にコピーする(ステップS201)。新規ノード120のCTL121は、キャッシュメモリに既存ノード120から受信したユーザデータを書き込む。
【0073】
既存ノード120の対象CTL121は、キャッシュメモリに格納されるすべてのユーザデータのコピーが完了した後、キャッシュメモリに格納されるすべてのユーザデータを破棄し(ステップS202)、処理を終了する。
【0074】
なお、既存ノード120の対象CTL121は、データの退避指示を受け付けた後、キャッシュメモリへのユーザデータの書き込みが行われないように制御する。
【0075】
【0076】
既存ノード120の対象CTL121は、キャッシュメモリに格納されるユーザデータをドライブボックス130の記憶媒体にコピーする(ステップS301)。
【0077】
既存ノード120の対象CTL121は、キャッシュメモリに格納されるすべてのユーザデータのコピーが完了した後、キャッシュメモリに格納されるすべてのユーザデータを破棄し(ステップS302)、処理を終了する。
【0078】
なお、既存ノード120の対象CTL121は、データの退避指示を受け付けた後、キャッシュメモリへのユーザデータの書き込みが行われないように制御する。
【0079】
なお、既存ノード120の対象CTL121は、
図8及び
図9のデータ退避処理を組み合わせてもよい。例えば、既存ノード120の対象CTL121は、アクセス頻度が高いユーザデータを新規CTL121にコピーし、アクセス頻度が低いユーザデータを記憶媒体にコピーする。
【0080】
図10を用いてノード120の減設に伴う構成変更処理を説明する。
図10は、実施例1のストレージシステム100が実行する構成変更処理(スケールイン)の一例を説明するフローチャートである。
【0081】
ストレージシステム100のSVP110は、管理用端末101から減設ボタン403の操作を受け付けた場合、構成変更処理(スケールイン)を実行する。
図10では、2ノード2CTL構成の第2タイプストレージシステムから第1タイプストレージシステムへ変更する場合の構成変更処理(スケールイン)を説明する。6ノード12CTLから2ノード2CTLまでのスケールインは公知の技術を用いればよいため説明を省略する。
【0082】
SVP110は、いずれかのノード120に、CTL121の有効化を指示する(ステップS401)。
【0083】
本実施例では、SVP110は、ノード(0)120にCTL121の有効化を指示する。ノード(0)120はCTL(1)121を有効化する。このとき、CTL(1)121はホスト102からのユーザデータが書き込まれないように制御される。
【0084】
次に、SVP110は、CTL121が有効化されなかった削除対象ノード120に、キャッシュメモリに格納されるユーザデータの退避を指示する(ステップS402)。
【0085】
本実施例では、ノード(1)120が削除対象ノード120となる。ノード(1)120は、データ退避処理を実行し、データ退避処理が完了した後、SVP110にその旨を通知する。なお、データ退避処理は、
図8及び
図9で説明した処理と同一である。
【0086】
データ退避処理が完了した後、SVP110は、CTL121を有効化したノード120に、管理情報310から管理情報300への切り替えを指示する(ステップS403)。
【0087】
CTL121を有効化したノード120の既存CTL121は、管理情報310から管理情報300に切り替える。また、有効化されたCTL121は、管理情報300を読み出す。管理情報310が管理情報300に切り替わることによって、冗長化の設定がノード120単位からCTL121単位に切り替わる。本実施例では、
図6の状態Dから状態Bに冗長化の設定が切り替わる。
【0088】
次に、SVP110は、削除対象ノード120に、無効化を指示し(ステップS404)、処理を終了する。削除対象ノード120のCTL121は、当該指示を受け付けた場合、冗長化グループの設定が行われたCTL121を無効化する。
【0089】
なお、SVP110は、管理用端末101に削除対象ノード120の撤去を依頼するメッセージを表示してもよい。また、SVP110は、管理用端末101にノード120の減設完了を通知するメッセージを表示してもよい。
【0090】
本実施例では、減設前に稼働してたCTL121の冗長化グループの設定情報は変更されない。したがって、ストレージシステム100を停止させることなく、2ノード2CTL構成の第2タイプストレージシステムから第1タイプストレージシステムに変更することができる。
【0091】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0092】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0093】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0094】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0095】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。