JP6772202B2 - ストレージシステム及び記憶制御方法 - Google Patents

ストレージシステム及び記憶制御方法 Download PDF

Info

Publication number
JP6772202B2
JP6772202B2 JP2018003008A JP2018003008A JP6772202B2 JP 6772202 B2 JP6772202 B2 JP 6772202B2 JP 2018003008 A JP2018003008 A JP 2018003008A JP 2018003008 A JP2018003008 A JP 2018003008A JP 6772202 B2 JP6772202 B2 JP 6772202B2
Authority
JP
Japan
Prior art keywords
migration
volume
vol
snapshot
primary volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018003008A
Other languages
English (en)
Other versions
JP2019124983A (ja
Inventor
彬大 原
彬大 原
山本 彰
山本  彰
匡邦 揚妻
匡邦 揚妻
秀雄 斎藤
秀雄 斎藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018003008A priority Critical patent/JP6772202B2/ja
Priority to US16/119,091 priority patent/US10698627B2/en
Publication of JP2019124983A publication Critical patent/JP2019124983A/ja
Application granted granted Critical
Publication of JP6772202B2 publication Critical patent/JP6772202B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、概して、ストレージ装置間でのデータ移行に関する。
ストレージ装置間でデータを移行する技術が知られている。特許文献1は、次のことを開示している。移行元記憶制御装置が、移行元ボリュームと移行元スナップショットボリュームとを管理している。移行先記憶制御装置に、移行元ボリュームと移行元スナップショットボリュームに対応する移行先ボリュームと移行先スナップショットボリュームが用意される。移行対象世代の更新履歴が、移行先ボリュームへの差分データの書き込み処理として再現される。
US2009/0193206
移行元ストレージ装置において論理ボリュームのスナップショットが管理されているストレージシステムにおいて、論理ボリューム内の全データと共にスナップショットとして管理されている全差分データを移行先ストレージ装置にコピーする必要があると、コピーされるデータの量が多い。このため、ストレージ装置間の帯域が圧迫されるおそれがある。
ホストシステムに対して一のストレージ装置として認識されるストレージクラスタとしてのストレージシステムは、1以上のスナップショットボリュームが関連付けられているプライマリボリュームを移行元プライマリボリュームとして特定する。移行元プライマリボリュームに関連付けられている1以上のスナップショットボリュームの各々は、当該スナップショットボリュームに対応した世代での移行元プライマリボリュームとの差分としての差分データを格納している。ストレージシステムは、移行元ストレージ装置(特定した移行元プライマリボリュームと1以上のスナップショットボリュームとを有するストレージ装置)から移行先ストレージ装置に、移行元プライマリボリュームと一部のスナップショットボリュームとのうち少なくとも移行元プライマリボリュームを移行する移行処理を行う。
1以上のスナップショットボリュームと当該1以上のスナップショットボリュームが関連付けられているプライマリボリュームとのいずれが移行対象とされても、プライマリボリュームと1以上のスナップショットボリュームとのうちプライマリボリュームのみを移行すれば済むため、コピーするデータの量を削減することができる。
一実施形態に係るストレージシステムの構成を示す。 ストレージシステムを含むシステム全体の構成を示す。 ホストで実行されるコンピュータプログラムの一例を示す。 ノードで実行されるコンピュータプログラム、及び、ノードが保持するテーブルの一例を示す。 ローカル管理テーブルの構成を示す。 グローバル管理テーブルの構成を示す。 移行処理前後のローカルのVOL構成とグローバルのVOL構成とを示す。 移行処理前のローカル管理テーブルとグローバル管理テーブルとを示す。 移行処理後のローカル管理テーブルとグローバル管理テーブルとを示す。 移行処理後にEVOL作成処理が行われた後のローカルのVOL構成とグローバルのVOL構成とを示す。 移行処理後にEVOL作成処理が行われた後のローカル管理テーブルとグローバル管理テーブルとを示す。 移行処理のフローを示す。 SS−VOL作成処理のフローを示す。 EVOL作成処理のフローを示す。 SS−VOL削除処理のフローを示す。 EVOL削除処理(図15のS1503)のフローを示す。 リストア処理のフローを示す。 図7に例示の移行処理後にカスケード接続が行われた後のローカルのVOL構成とグローバルのVOL構成とを示す。 移行処理後にEVOL作成処理が行われた後のローカル管理テーブルとグローバル管理テーブルとを示す。
以下の説明では、「インターフェース部」は、1以上のインターフェースでよい。当該1以上のインターフェースは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ部」は、1以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明では、「PDEV部」は、1以上のPDEVであり、典型的には補助記憶デバイスでよい。「PDEV」は、物理的な記憶デバイス(Physical storage DEVice)を意味し、典型的には、不揮発性の記憶デバイス、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
また、以下の説明では、「記憶部」は、メモリ部及びPDEV部のうちの少なくとも1つ(典型的には少なくともメモリ部)である。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GUP(Graphics Processing Unit)のような他種のプロセッサでもよい。少なくとも1つのプロセッサは、シングルコアでもよいしマルチコアでもよい。少なくとも1つのプロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜にメモリ部及び/又はインターフェース部等を用いながら行うため、処理の主語が、プロセッサ部(或いは、そのプロセッサ部を有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明では、「VOL」は、論理ボリュームの略であり、論理的な記憶デバイスでよい。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。「RVOL」は、そのRVOLを提供するストレージシステムが有する物理的な記憶資源(例えば、1以上のRAIDグループ)に基づくVOLでよい。「VVOL」は、外部接続VOL(EVOL)と、容量拡張VOL(TPVOL)と、スナップショットVOL(SS−VOL)とのうちのいずれでもよい。EVOLは、外部のストレージシステムの記憶空間(例えばVOL)に基づいておりストレージ仮想化技術に従うVOLでよい。TPVOLは、複数の仮想領域(仮想的な記憶領域)で構成されており容量仮想化技術(典型的にはThin Provisioning)に従うVOLでよい。SS−VOLは、オリジナルのVOLのスナップショットとして提供されるVOLでよい。SS−VOLは、RVOLであってもよい。典型的には、SS−VOLは、オリジナルのVOLをプライマリVOL(PVOL)としてセカンダリのVOLに位置づけられる。「プール」は、論理的な記憶領域(例えば複数のプールVOLの集合)であり、用途ごとに用意されてよい。例えば、プールとして、TPプールと、スナップショットプールとのうちの少なくとも1種類があってよい。TPプールは、複数の実領域(実体的な記憶領域)で構成された記憶領域でよい。ストレージシステムが、ホストシステムから受信したライト要求が指定するアドレスが属する仮想領域(TPVOLの仮想領域)に実領域が割り当てられていない場合、その仮想領域(ライト先仮想領域)にTPプールから実領域を割り当てる(ライト先仮想領域に他の実領域が割り当て済であっても実領域が新たにライト先仮想領域に割り当てられてもよい)。ストレージシステムは、割り当てられた実領域に、そのライト要求に付随するライト対象データを書き込んでよい。スナップショットプールは、PVOLから退避されたデータが格納される記憶領域でよい。1つのプールが、TPプールとしてもスナップショットプールとしても使用されてもよい。「プールVOL」は、プールの構成要素となるVOLでよい。プールVOLは、RVOLであってもよいしEVOLであってもよい。
また、以下の説明では、「ホストシステム」は、物理的又は仮想的な1以上のホスト計算機である。
また、以下の説明では、「ストレージクラスタ」は、ホストシステムに認識される一のストレージ装置に相当し、実体は、ストレージシステムに相当する。「ストレージシステム」は、1以上の物理的なストレージ装置を含む。「ストレージ装置」は、記憶部を有する装置であればよく、汎用的な計算機であってもよい。少なくとも1つの物理的なストレージ装置が、仮想的な計算機(例えばVM(Virtual Machine))を実行してもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)又はSDDC(Software-defined Datacenter)を採用することができる。例えば、同一のストレージ装置において、ホストシステムとしての仮想的な計算機と、ホストシステムからI/O要求を受信して処理するストレージ装置(ストレージコントローラ)としての仮想的な計算機とが実行されてもよい。また、ストレージシステムは、冗長構成グループを有してよい。冗長構成の例としては、Erasure Coding、RAIN(Redundant Array of Independent Nodes)及びノード間ミラーリングのように複数のノードでの構成であってもよいし、PDEV部で構成される1以上のRAID(Redundant Array of Independent (or Inexpensive) Disks)グループのように単一のノード内での構成でもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号を使用し、同種の要素を区別して説明する場合は、要素のID(例えば識別番号)を使用することがある。例えば、ストレージノード(以下、ノード)を特に区別しないで説明する場合には、「ノード101」と記載し、個々のノードを区別して説明する場合には、「ノード#1」、「ノード#2」のように記載することがある。また、以下の説明では、ノード#n(nは自然数)内の要素の名称に#nを付加することで、いずれのノードの要素であるかを区別することができる。
以下、本発明の一実施形態を図面に基づいて説明する。なお、本発明は、以下に説明する実施形態に限定されるものではない。
図1は、一実施形態に係るストレージシステムの構成を示す。
ストレージシステム100は、1以上のノード101(1以上のストレージ装置の一例)を有する。典型的には、複数のノード101がある。ストレージシステム100は、複数のノード101で構成されたスケールアウト型ストレージシステムのような分散ストレージシステムでよい。以下、ノード#1が、移行元ノードであり、ノード#2が、移行先ノードであるとする。ノード#2がストレージシステム100であってもよいし、ノード#1とノード#2を含んだ複数のノードがストレージシステム100であってもよい。
本実施形態では、コンピュータプログラムがコンピュータに下記の(X)及び(Y)を実行させる。なお、ここで言う「コンピュータ」は、いずれかノード101(例えばノード#1又はノード#2)であってもよいし、ストレージシステムに接続された計算機(例えば管理計算機又はホスト計算機)であってもよい。本実施形態では、コンピュータは、いずれかのノード101であり、コンピュータプログラムは、後述のクラスタ管理プログラム405でよい。また、下記において、移行元PVOLに関連付けられている1以上のSS−VOLの各々は、当該SS−VOLに対応した世代での移行元PVOLとの差分としての差分データを格納している。差分データは、実際には、プール(スナップショットプール)に格納される。
(X)ホストシステム(以下、ホスト)に対して一のノードとして認識されるストレージクラスタとしてのストレージシステム100において1以上のSS−VOL103Sが関連付けられているPVOL103Pを移行元PVOL103Pとして特定する。
(Y)特定した移行元PVOL103Pと1以上のSS−VOL103Sとを有するノード#1から、ノード#2に、移行元PVOL103Pと1以上のSS−VOL103Sとのうち移行元PVOL103Pのみを移行する移行処理(符号106を参照)を行う。
これにより、1以上のSS−VOL103Sと当該1以上のSS−VOL103Sが関連付けられているPVOL103Pとのいずれが移行対象とされても、PVOL103Pのみを移行すれば移行処理が済むため、コピーするデータの量を削減することができる。一具体例として、ストレージシステム100において、負荷を分散するためにノード#2にPVOL103Pを移行したい場合や、一定間隔で新しいSS−VOL103Sを作成する(更に、例えば、SS−VOL103Sの新たな作成に伴い古い世代に対応したSS−VOL103Pを削除する)世代管理をする場合が考えられるが、このようなケースにおいて、コピーされるデータの量を低減できる。なお、上述の移行処理が行われた場合、ノード#2の使用容量は、PVOL103Sの容量分増加したように見えることになる。
ストレージシステム100のうちのマスタのノード101の一例であるノード#2が、ホストに対してストレージクラスタにおけるVOL構成のビューであるクラスタビュー104を提供する。クラスタビュー104は、ストレージクラスタ(ストレージシステム100)でのVOL構成を表示する。ノード#2は、例えば、VOL毎に、VOL−ID(VOLのID)、種類及びノードID(VOLが存在するノードのID)を表す管理テーブル180を有する。ノード#2は、移行処理によってノード#2に移行されたPVOL8である移行先PVOL8を、移行処理の後のストレージクラスタにおけるPVOLとする(例えば、管理テーブル180の1番目のレコードを参照)。言い換えれば、ノード#2は、移行元PVOL103Pと各SS−VOL103Sとをノード#1に残しておき、ノード#2において、移行先PVOL103Pとノード#1におけるSS−VOL103Sとの関係を管理する。ノード#2は、移行処理の後においてホストに対して見せるVOL構成を、移行処理の前においてホストに対して見せるVOL構成に維持する。これにより、上述したようなデータ量削減(コピーするデータの量の削減)を、ユーザ(ホスト側)のスナップショット管理の運用を変えること無しに、行うことができる。なお、クラスタビュー104は、例えばGUI(Graphical User Interface)である。また、クラスタビュー104において、VOL構成は、PVOL103Sをルートとしたツリー構造でよく、各SS−VOL103Sについては、世代の古さを表す情報、例えば、スナップショット番号(番号が小さい程世代が古い)、又は、スナップショット取得時刻が表示されてもよい。スナップショット番号は、SS−VOL103SのグローバルなVOL−IDに相当してよい。グローバルなVOL−IDは、ストレージクラスタにおいて一意なIDでよい。異なるノード101において、同一のローカルなVOL−IDは存在し得る。
ストレージシステム100は、VOL構成を基に(つまりクラスタビュー104経由で)、ストレージクラスタに対するVOLの作成要求又は削除要求をホストから受け付ける。すなわち、ユーザは、いずれのVOLがいずれのノード101に存在するかといったことを意識すること無しに、VOLの作成や削除を要求できる。
例えば、移行処理の後に、新たにSS−VOLを作成することの要求(符号107を参照)を受けた場合、ノード#2は、ノード#2に、PVOL103Pに関連付けられる新たなSS−VOL103Sを作成する(符号108を参照)。これにより、移行処理の後にはPVOL103Pについてノード#1にSS−VOL103Sが増えることを避けることができる。このため、後の説明からわかるように、リストアの効率化と及び容量の効率化とのうちの少なくとも1つが期待できる。
移行処理の前に存在するSS−VOL2(スナップショット番号“2”のSS−VOL)に対応した世代のPVOLをリストア対象としたリストア要求(符号111を参照)を受けた場合(例えばクラスタビュー104経由で受けた場合)、ノード#2は、SS−VOL2内の差分データと、SS−VOL2が参照する全データ(例えば、移行元PVOL103P内のデータ)とを、ノード#1からノード#2(典型的には、移行先PVOL103P又はそれの複製VOL)にコピーする(符号112を参照)。このように、リストア対象の世代に対応したSS−VOLがノード#1にある場合、リストアにおいてコピーされるデータの量は多い。一方、移行処理の後に作成されたSS−VOL3に対応した世代のPVOLをリストア対象としたリストア要求(符号113を参照)を受けた場合、ノード#2は、SS−VOL2内の差分データと、SS−VOL3内の差分データを、ノード#2内においてコピー(典型的には、移行先PVOL103P又はそれの複製VOLにコピー)する(符号114を参照)。このように、リストア対象の世代に対応したSS−VOLがノード#2にある場合、リストアにおいてコピーされるデータは差分データのみのため、コピーされるデータの量は比較的少ない。古い世代に対応したSS−VOLほどリストア対象とされる可能性が低い(例えば、削除される可能性が高い)と考えられる。このため、上述したように、移行処理の後にはノード#2に新たなSS−VOLが作成されるようになっていることで、リストアに時間を要する可能性を低減することが期待できる。
上述した移行処理は、1以上のSS−VOL103Sと当該1以上のSS−VOL103Sが関連付けられているPVOL103Pとのいずれかを移行対象とする明示的な移行要求を受けた場合(例えば管理計算機から受けた場合)に行われてもよいが、そのような移行要求を受けること無しに自動で(例えばバックグラウンド処理で)行われてもよい。例えば、複数のノード101の各々が当該ノード101についてI/O量(例えば単位時間当たりのI/O量)を計測するようになっていて、ノード#2が、I/O量が相対的に集中しているノード#1を複数のノード101から特定してよい(符号116を参照)。ノード#2が、特定したノード#1にPVOL103Pがあれば、当該PVOL103Pを移行元PVOL103Pして特定し、上述した移行処理を行ってよい。このように移行処理が行われた場合、I/O量がノード#1とノード#2間で分散することになるので、移行処理が負荷分散を兼ねることができる。なお、ノード101の「I/O量」は、そのノード101に対する1以上のI/O要求に従うI/Oの量でよい。「I/O量」として、「I/O数」及び「I/Oサイズ」の少なくとも1つを採用することができる。「I/O数」は、I/O要求の数でよい。「I/Oサイズ」は、計測対象の全I/O要求に従うI/O対象のデータのサイズ(例えば、合計サイズ、最大サイズ又は平均サイズ)でよい。
また、本実施形態では、下記のうちの少なくとも1つが行われてもよい。
・移行処理において、PVOL103Pに加えて、一部のSS−VOL103Sがノード#1からノード#2に移行されてもよい。当該PVOL103Pに加えて当該PVOL103Pに関連付けられている全てのSS−VOL103Sが移行されることに比べて、コピーされるデータの量の削減を維持できる。
・移行処理では、PVOL103P(及び一部のSS−VOL103S)が移行されるが、移行処理の後に、ノード#1及び#2のうちの両方(又は一方)の負荷が小さいにときに残りのSS−VOL103S内の差分データが徐々にノード#2に移行されてもよい。
・移行処理の後において、ノード#1に残っているSS−VOL103Sとホストと間のパスは維持される。これにより、ホストは、移行されたPVOLに関連付いた当該残っているSS−VOLに対するI/Oのためにノード#1にI/O要求を発行する。
・移行処理の後において、ノード#1に残っているSS−VOL103Sに対応したEVOLがノード#2に用意され、EVOLとホスト間にパスが形成される。これにより、ホストは、移行されたPVOLに関連付いた当該残っているSS−VOLに対するI/Oのためにノード#2にI/O要求(EVOLを指定したI/O要求)を発行する。
・移行処理の後において、ノード#1に残っているSS−VOL103S内の差分データが、ノード#2における移行先PVOLとノード#1に残っている移行元PVOLとのうちの少なくとも1つに書き戻される。
以下、本実施形態を詳細に説明する。
図2は、ストレージシステム100を含むシステム全体の構成を示す。
ストレージシステム100は、ホスト201からのI/O要求に基づきVOLに対するI/Oを行う。ストレージシステム100は、ネットワーク220に接続された複数のノード101を含む。ネットワーク220として、例えば、SAN(Storage Area Network)220S及びLAN(Local Area Network)220Lといったフロントエンドのネットワークと、LAN220Bといったバックエンドのネットワークとがある。
各ノード101は、SANポート223、LANポート224及び226、PDEV225、メモリ222及びそれらに接続されたCPU221を有する。SANポート223、LANポート224及び226は、インターフェース部の一例である。PDEV225は、PDEV部の一例である。メモリ222は、メモリ部の一例である。CPU221は、プロセッサ部の一例である。
1以上のホスト201の各々が、フロントエンドのネットワークの一例であるLAN220L及びSAN220Sに接続される。ホスト201は、VOLに属するアドレスを指定したI/O要求をストレージシステム100に発行する。ホスト201は、SANポート213、LANポート214、PDEV215、メモリ212及びそれらに接続されたCPU211を有する。
図3は、ホスト201で実行されるコンピュータプログラムの一例を示す。
ホスト201において、メモリ212が、アプリケーションプログラム301、VOL管理プログラム302及びパス管理プログラム303を格納する。CPU211が、これらのプログラム301〜303を実行する。
アプリケーションプログラム301は、VOLに対するI/O要求を発行する。VOL管理プログラム302は、VOLとVOL−ID(グローバルのVOL−ID)とを管理する。パス管理プログラム303は、VOLへのパス(I/Oパス)、例えば、使用されるパスやその交替パスを管理する。なお、VOL管理プログラム302及びパス管理プログラム303は、ストレージシステム100(又はそれの管理計算機)からの指示に応答してVOLへのパスを切り替えてもよい。
図4は、ノード101で実行されるコンピュータプログラム、及び、ノード101が保持するテーブルの一例を示す。
ノード101において、メモリ222が、I/Oプログラム401、パス管理プログラム402、スナップショットプログラム403、コピープログラム404、クラスタ管理プログラム405及びEVOL管理プログラム406を格納する。CPU221が、これらのプログラム401〜406を実行する。また、メモリ222は、ローカル管理テーブル407及びグローバル管理テーブル408を格納する。グローバル管理テーブル408は、図1に示した管理テーブル180のより詳細なテーブルに相当する。なお、ノード101における一部のプログラム(EVOL管理プログラム406)が無くてもよい(オプションでもよい)。
I/Oプログラム401は、ホスト201からのI/O要求を処理する。パス管理プログラム402は、いずれのホスト201にいずれのVOLをいずれのパスで提供するかを制御する。スナップショットプログラム403は、SS−VOL(スナップショット)の作成と削除を行う。コピープログラム404は、PVOLの移行(データコピー)を行う。クラスタ管理プログラム405は、ストレージクラスタにおけるVOL構成を管理する。クラスタ管理プログラム405は、例えば、各ノード101に存在するが、マスタのノード101で実行され(アクティブ)、マスタのノード101以外の各ノード101では、待機状態である(スタンバイ)。EVOL管理プログラム406は、指定されたVOLに基づくEVOLの作成と削除を行う。
ローカル管理テーブル407は、ノード101内での各VOLに関する情報を保持する。グローバル管理テーブル408は、ストレージクラスタでの各VOLに関する情報を保持する。各ノード101のグローバル管理テーブル408の情報は同じに維持される。具体的には、例えば、いずれかのノード101においてグローバル管理テーブル408が更新された場合、その更新が各他のノード101のグローバル管理テーブル408に反映される。
図5は、ローカル管理テーブル407の構成を示す。
ローカル管理テーブル407は、当該テーブル407を有するノード101内のVOL毎にレコードを有する。各レコードは、ローカルVOL−ID501、種類502、親ローカルVOL−ID503、世代番号504、転送先ノードID505、転送先ローカルVOL−ID506及びアクセス制限507といった情報を格納する。以下、1つのノード101と1つのVOLを例に取る(図5の説明において「対象ノード101」及び「対象VOL」)。
ローカルVOL−ID501は、対象VOLの対象ノード101内でのVOL−IDを示す。種類502は、対象VOLの種類(例えば、PVOL、SS−VOL及びEVOLのいずれであるか)を示す。親ローカルVOL−ID503は、対象VOLの親VOLのローカルVOL−IDを示す。世代番号504は、対象VOLにより管理される親VOLの世代の番号を示す。本実施形態では、番号が小さい程世代が古い。転送先ノードID505及び転送先ローカルVOL−ID506は、いずれも、対象VOLがEVOLである場合に有効な情報である。転送先ノードID505は、対象VOLに外部接続されたVOL(EVOLの基になるVOL)を有するノード(転送先ノード)のIDを示す。転送先ローカルVOL−ID506は、対象VOLに外部接続されたVOLのローカルVOL−ID(転送先ノード内でのVOL−ID)を示す。アクセス制限507は、対象VOLについていずれのホスト201又はいずれのノード101のアクセスが許可又は禁止されるかといった制限を示す。許可又は禁止は、ライトやリードといったアクセス種類別にされてもよい。
なお、「親VOL」とは、対象VOL(SS−VOL)のオリジナルのVOLである。オリジナルのVOLは、典型的にはPVOLであるが、後述するように、SS−VOLであることもある(つまり、SS−VOLのスナップショットが作成されることもある)。親VOLに対して対象VOLは「子VOL」である。また、対象VOLの親VOLやそこから先の親VOLの全てのいずれかを「先祖VOL」と言い、対象VOLの子VOLやそこから先の子VOLの全てのいずれかを「子孫VOL」と言うことができる。
図6は、グローバル管理テーブル408の構成を示す。
グローバル管理テーブル408は、ストレージクラスタ内のVOL毎にレコードを有する。各レコードは、グローバルVOL−ID601、ノードID602、ローカルVOL−ID603、種類604、親グローバルVOL−ID605、世代番号606、転送先ノードID607、転送先ローカルVOL−ID608及びアクセス制限609といった情報を格納する。以下、1つのVOLを例に取る(図6の説明において「対象VOL」)。
グローバルVOL−ID601は、対象VOLのストレージクラスタ内でのVOL−IDを示す。ノードID602は、対象VOLを有するノードのIDを示す。ローカルVOL−ID603は、対象VOLのローカルVOL−IDを示す。種類604は、対象VOLの種類を示す。親グローバルVOL−ID605は、対象VOLの親VOLのグローバルVOL−IDを示す。世代番号606は、対象VOLにより管理される親VOLの世代の番号を示す。転送先ノードID607は、対象VOLに外部接続されたVOLを有するノード(転送先ノード)のIDを示す。転送先ローカルVOL−ID608は、対象VOLに外部接続されたVOLのローカルVOL−ID(転送先ノード内でのVOL−ID)を示す。アクセス制限609は、対象VOLについていずれのホスト201又はいずれのノード101のアクセスが許可又は禁止されるかといった制限を示す。許可又は禁止は、ライトやリードといったアクセス種類別にされてもよい。
以下、本実施形態で行われる処理の一例を説明する。
図7は、移行処理前後のローカルのVOL構成とグローバルのVOL構成とを示す。図8は、移行処理前のローカル管理テーブル#1及び#2とグローバル管理テーブル#2とを示す。図9は、移行処理後のローカル管理テーブル#1及び#2とグローバル管理テーブル#2とを示す。なお、図7(及び、図10及び図18)において、ノード#1及び#2におけるVOLのカッコ内の数字は、ローカルVOL−IDであり、クラスタビュー104内のVOLの数字は、グローバルVOL−IDである(図1では、説明を簡単にするためにグローバルVOL−IDを使用しローカルVOL−IDを使用していない)。以下、ローカルVOL−IDを用いてVOLを指す場合は、カッコを使用し、グローバルVOL−IDを用いてVOLを指す場合は、カッコを使用しないこととする。また、上述したように、ノード#n内の構成要素(例えばテーブルやプログラム)には、参照符号に代えて#nを使用することがある。
移行処理前では、ノード#1が、PVOL(1)と、PVOL(1)のスナップショットであるSS−VOL(2)及び(3)を有するとする。ノード#2が、いずれのVOLも有していないとする。このため、移行処理前は、図8に示すテーブルが保持されている。ノード#2(マスタのノードの一例)が、クラスタ管理テーブル#2を基にクラスタビュー104を提供する。クラスタビュー104は、例えばクラスタ管理プログラム#2により提供される。クラスタビュー104では、PVOL8について2つのSSVOL1及び2が存在する。クラスタビュー104は、例えば、PVOL8にパスが接続されているホスト201(以下、対象ホスト201)、又は、ストレージシステム100の管理計算機(図示せず)に表示される。
クラスタビュー104経由でSS−VOL1を指定したVOL移行指示が出されたとする。当該VOL移行指示を、ノード#2が受ける。当該VOL移行指示に応答して移行処理が行われる。移行処理は、例えば次の通りである。すなわち、ノード#2が、グローバル管理テーブル#2を基に、当該VOL移行指示で指定されているSS−VOL1がSS−VOL(2)としてノード#1に存在することを特定し、SS−VOL(2)の親VOLであるPVOL(1)を移行元PVOLと特定する。ノード#2が、PVOL(1)に対応したPVOL(2)をノード#2内に用意する。ノード#1におけるPVOL(1)からノード#2におけるPVOL(2)へのデータコピーが、ノード#1及び#2の少なくとも1つにより行われる。ノード#2は、PVOL(2)を、ノード#1内のPVOL(1)に代えて、PVOL8とする(図9参照)。
移行処理後に、クラスタビュー104経由でPVOL8の新たなスナップショット作成指示が出されたとする。当該スナップショット作成指示を、ノード#2が受ける。当該スナップショット作成指示に応答してスナップショット作成処理が行われる。スナップショット作成処理は、例えば次の通りである。すなわち、ノード#2が、グローバル管理テーブル#2を基に、PVOL8としてのPVOLがノード#2に存在していることを特定する。ノード#2は、特定したノード#2におけるPVOL(2)について新たなSS−VOL(3)を作成する。新たなSS−VOL(3)に関する情報は、ローカル管理テーブル#2にもグローバル管理テーブル#2にも反映される(図9参照)。結果として、SS−VOL(3)は、クラスタビュー104において、PVOL8の新たなSS−VOL3として見える。
図10は、移行処理後にEVOL作成処理が行われた後のローカルのVOL構成とグローバルのVOL構成とを示す。図11は、移行処理後にEVOL作成処理が行われた後のローカル管理テーブル#1及び#2とグローバル管理テーブル#2とを示す。
PVOL8の新たなSS−VOL3が作成された後のクラスタビュー104経由で、例えばノード#1に代えてノード#2の機能を利用するといった理由から、PVOL8についてEVOL作成指示が出されたとする。当該EVOL作成指示を、ノード#2が受ける。当該EVOL作成指示に応答してEVOL作成処理が行われる。EVOL作成処理は、例えば次の通りである。すなわち、ノード#2が、グローバル管理テーブル#2を基に、PVOL8に関連付いた全SS−VOLのうちノード#1に存在するSS−VOL(2)及び(3)を特定する。ノード#2は、特定したSS−VOL(2)及び(3)にそれぞれ対応したEVOL(4)及び(5)をノード#2に作成する。EVOL(4)及び(5)に関する情報は、ローカル管理テーブル#2にもグローバル管理テーブル#2にも反映される(図11参照)。しかし、クラスタビュー104は、EVOL作成処理の前後で変化しない。つまり、ストレージクラスタ全体としては、EVOLの有無に関わらず、PVOL8を親VOLとする3つのSS−VOL1、2及び3が存在するといったVOL構成に変化は無い。
図12は、VOL移行指示に応答して行われる移行処理のフローを示す。
クラスタ管理プログラム#2は、VOL移行指示を受信した場合(S1201)、グローバル管理テーブルを参照し、VOL移行指示で特定されているVOLのグローバルVOL−IDに対応したVOLを有するノードを特定する(S1202)。特定されたノードがノード#1であるとする。また、当該VOLがPVOLであれば、PVOLのローカルVOL−IDが特定される。また、当該VOLがSS−VOLであれば、当該SS−VOLの親VOLであるPVOLのローカルVOL−IDが特定される。当該PVOLが移行元PVOLである。VOL移行指示で、移行先ノードのノードIDが指定されていてもよいし、マスタのノードであるノード#2が移行先ノードであってもよい。
クラスタ管理プログラム#2は、ノード#1のコピープログラム#1に、PVOLのコピー指示を送信する(S1203)。当該コピー指示に応答して、コピープログラム#1が、移行元PVOLから、ノード#2に用意された移行先PVOLにデータをコピーする。移行先PVOLは、コピープログラム#1からの指示に応答して用意されたVOLでよい。コピープログラム#1は、コピーを終えた場合、完了応答を返す。クラスタ管理プログラム#2は、コピープログラム#1から完了応答を受信する(S1204)。
クラスタ管理プログラム#2は、移行元ノード#1のパス管理プログラム#1にパス削除指示を送信し、移行先ノード#2のパス管理プログラム#2にパス追加指示を送信する(S1205)。これにより、PVOL(1)とホスト#1(PVOL(1)へのアクセスが許可されているホスト)とを結ぶパスが削除される(例えば、ノード#1のPVOL(1)とホスト#1との間のパスが削除される)。また、ノード#2のPVOL(2)とホスト#1とを結ぶパスが作成される。なお、このようなパス削除及びパス追加は、例えば、パス削除指示を受けたパス管理プログラム#1がホスト#1にパスの削除を指示し、且つ、パス追加指示を受けたパス管理プログラム#2がホスト#1にパスの追加を指示することで、ホスト#1との連携によって行われてよい。パス削除が終わると、パス管理プログラム#1は、完了応答を返す。パス追加が終わると、パス管理プログラム#2は、完了応答を返す。クラスタ管理プログラム#2は、パス管理プログラム#1及び#2から完了応答を受信する(S1206)。
クラスタ管理プログラム#2は、ストレージクラスタにおける移行対象のPVOLに関する情報をグローバル管理テーブル#2(及びローカル管理テーブル#2)に追加する(S1207)。例えば、図7〜図9が示す例によれば、PVOL8に対応したノードID及びローカルVOL−IDが、“1”及び“1”から“2”及び“2”に更新される。また、PVOL8に対応したPVOL(2)に関する情報がローカル管理テーブル#2に記録される。
クラスタ管理プログラム#2は、アクセス制限507及び609を更新する(S1208)。具体的には、クラスタ管理プログラム#2は、PVOL(2)のアクセス制限507及び609を“ホスト#1に許可”に更新する。なお、ノード#1では、PVOL(1)のアクセス制限507は“アクセス禁止”に更新される(図9参照)。
クラスタ管理プログラム#2は、EVOL作成か否かを判断する(S1209)。例えば下記のうちのいずれかに該当する場合、S1209の判断結果が真である。
・S1201のVOL作成指示に、EVOL作成の指示が含まれている。
・PVOLの移行処理において移行元ノード#1内のSS−VOLのEVOLを作成するか否かのEVOL作成モードがオンとなっている。
・移行元ノード#1がノード#2にやがてリプレースされることになっている。
S1209の判断結果が真の場合(S1209:YES)、クラスタ管理プログラム#2は、図14のEVOL作成処理を行う(S1210)。
クラスタ管理プログラム#2は、パス管理プログラム#2に、パス切替え指示を送信する(S1211)。パス管理プログラム#2は、パス切替え指示に応答して、追加されたパスをアクティブにする指示を出すホスト#1(例えばパス管理プログラム303)に出すことでパス切り替えを行う。パス管理プログラム#2は、パスの切り替えを終えたら、完了応答を返す。クラスタ管理プログラム#2は、完了応答を受信する(S1212)。
クラスタ管理プログラム#2は、S1201のVOL移行指示に対する完了応答を返す(S1213)。
EVOLが作成されれば、ホストから移行元ノード#1内のSS−VOLへのアクセスは移行先ノード#2を経由する。これにより、ノード#2が、実質的に、ストレージクラスタにおける全VOLを管理することができ、単一のノード#2をストレージシステム100として構成することが期待できる。
図13は、SS−VOL作成処理のフローを示す。
クラスタ管理プログラム#2は、スナップショット作成指示を、例えばクラスタビュー104経由で受信する(S1301)。スナップショット作成指示では、例えば、スナップショット作成対象のPVOLのグローバルVOL−IDが指定されている。クラスタ管理プログラム#2は、グローバル管理テーブル#2を参照し、当該グローバルVOL−IDを基に、スナップショット作成対象のPVOLを有するノードを特定する(S1302)。例えば、図7に例示の移行処理の後であれば、S1302で特定されるノードは、ノード#2である。クラスタ管理プログラム#2は、特定したノード#2のスナップショットプログラム#2にSS−VOL作成指示を送信する(S1303)。SS−VOL作成指示では、例えば、スナップショット作成対象のPVOLのローカルVOL−IDが指定される。
スナップショットプログラム#2は、クラスタ管理プログラム#2からSS−VOLの作成指示を受信する(S1304)。スナップショットプログラム#2は、ローカル管理テーブル#2を参照し、スナップショット作成対象のPVOLのローカルVOL−IDを基に、対象PVOLを特定する(S1305)。スナップショットプログラム#2は、ローカル管理テーブル#2に、新たなSS−VOLに関する情報を追加する(S1306)。スナップショットプログラム#2は、完了応答を返す(S1307)。
クラスタ管理プログラム#2は、スナップショットプログラム#2から完了応答を受信する(S1308)。クラスタ管理プログラム#2は、グローバル管理テーブル#2に、新たなSS−VOLに関する情報を追加する(S1309)。
図14は、EVOL作成処理のフローを示す。
クラスタ管理プログラム#2は、移行対象のPVOLについて移行元ノード#1にある全SS−VOLを対象にしたEVOL作成指示をEVOL管理プラグラム#2に送信する(S1401)。EVOL作成指示では、例えば、移行対象のPVOLについて移行元ノード#1にある全SS−VOLの各々のローカルVOL−IDが指定される。EVOL管理プラグラム#2は、当該EVOL作成指示に応答して、移行対象のPVOLについて移行元ノード#1にある全SS−VOLにそれぞれ対応したEVOLを作成し、完了応答を返す。クラスタ管理プログラム#2は、EVOL管理プログラム#2から完了応答を受信する(S1402)。
クラスタ管理プログラム#2は、移行元ノード#1のパス管理プログラム#1にパス削除指示を送信し、移行先ノード#2のパス管理プログラム#2にパス追加指示を送信する(S1403)。これにより、ノード#1のSS−VOL(1)とホスト#1とを結ぶパスが削除される。また、ノード#2のEVOLとホスト#1とを結ぶパスが作成される。パス削除が終わると、パス管理プログラム#1は、完了応答を返す。パス追加が終わると、パス管理プログラム#2は、完了応答を返す。クラスタ管理プログラム#2は、パス管理プログラム#1及び#2から完了応答を受信する(S1404)。
クラスタ管理プログラム#2は、グローバル管理テーブル#2(及び、ローカル管理テーブル#2)に、作成されたEVOLに関する情報(例えば図11参照)を追加する(S1405)。また、クラスタ管理プログラム#2は、EVOLのアクセス制限507及び609を“ホスト#1に許可”とする(S1406)。
図15は、SS−VOLのグローバルVOL−IDを指定した削除指示に応答して行われるSS−VOL削除処理のフローを示す。
クラスタ管理プログラム#2は、SS−VOLの削除指示を、例えばクラスタビュー104経由で、受信する(S1501)。クラスタ管理プログラム#2は、グローバル管理テーブル#2を参照し、グローバルVOL−IDに対応したSS−VOLを有するノード(図15及び図16の説明において対象ノード)を特定する(S1502)。その後、クラスタ管理プログラム#2は、EVOL削除処理(S1503)に入る。
S1503の後、クラスタ管理プログラム#2は、対象ノードのスナップショットプログラム403にSS−VOL削除指示を送信する(S1504)。当該SS−VOL削除指示では、例えば、削除対象のSS−VOLのローカルVOL−IDが指定される。スナップショットプログラム403は、当該SS−VOL削除指示に応答して、指定されたSS−VOLを対象ノードから削除し、完了応答を返す。クラスタ管理プログラム#2は、対象ノードのスナップショットプログラム403から完了応答を受信する(S1505)。クラスタ管理プログラム#2は、グローバル管理テーブル#2から、削除対象のSS−VOLに関する情報を削除する(S1506)。
クラスタ管理プログラム#2は、グローバル管理テーブル#2を参照し、削除対象のSS−VOLの親VOLは移行元ノードにあるか否かを判断する(S1507)。S1507の判断結果が偽の場合(S1507:NO)、クラスタ管理プログラム#2は、S1501の削除指示に対する完了応答を返す(S1512)。
S1507の判断結果が真の場合(S1507:YES)、クラスタ管理プログラム#2は、グローバル管理テーブル#2を参照し、削除対象のSS−VOLの親VOLに未だ他のSS−VOLが関連付けられているか否かを判断する(S1508)。S1508の判断結果が真の場合(S1508:YES)、クラスタ管理プログラム#2は、S1501の削除指示に対する完了応答を返す(S1512)。
S1508の判断結果が偽の場合(S1508:NO)、クラスタ管理プログラム#2は、対象ノードのI/Oプログラム401に、削除対象SS−VOLの親VOLの削除指示を送信する(S1509)。当該削除指示に応答して、I/Oプログラム401が、削除対象SS−VOLの親VOLを削除し、完了応答を返す。クラスタ管理プログラム#2は、I/Oプログラム401から完了応答を受信する(S1510)。クラスタ管理プログラム#2は、削除された親VOLに関する情報をグローバル管理テーブル#2から削除する(S1511)。
図15によれば、移行元ノードにおいて、移行元PVOLに関連付けられているSS−VOLの数がゼロになる場合、SS−VOLに加えて移行元PVOLも削除される。これにより、ストレージシステム100全体の使用記憶容量を低減でき、且つ、移行先ノードにPVOLが残っているためリストアを可能な状態も維持できる。
図16は、EVOL削除処理(図15のS1503)のフローを示す。
クラスタ管理プログラム#2は、グローバル管理テーブル#2を参照し、削除対象のSS−VOLにEVOLが対応しているか否かを判断する(S1601)。S1601の判断結果が偽の場合(S1601:NO)、処理を終了する。
S1601の判断結果が真の場合(S1601:YES)、クラスタ管理プログラム#2は、削除対象のSS−VOLに対応したEVOLを指定した削除指示を、当該EVOLを有するノードのEVOL管理プログラム406に送信する(S1602)。当該削除指示に応答して、EVOL管理プログラム406は、指定されたEVOLを削除し、完了応答を返す。クラスタ管理プログラム#2は、EVOL管理プログラム406から完了応答を受信する(S1603)。
クラスタ管理プログラム#2は、グローバル管理テーブル#2を参照し、削除されたEVOLの転送先ノード(削除対象のSS−VOLを有するノード)と削除対象のSS−VOLとを特定する(S1604)。クラスタ管理プログラム#2は、グローバル管理テーブル#2から、削除されたEVOLに関する情報を削除する(1605)。
図17は、リストア処理のフローを示す。
クラスタ管理プログラム#2は、SS−VOLのグローバルVOL−IDを指定したリストア指示を、例えばクラスタビュー104経由で、受信する(S1701)。
クラスタ管理プログラム#2は、グローバル管理テーブル#2を参照し、グローバルVOL−IDを基に、リストア対象のSS−VOLを有するノード(以下、図17の説明において「対象ノード」)を特定する(S1702)。
クラスタ管理プログラム#2は、リストア対象のSS−VOLとそれの親VOLであるPVOL(ストレージクラスタでのPVOL)とが同一ノードにあるか否か、すなわち、リストア対象のSS−VOLの親VOLとしてのPVOLが対象ノードにあるか否かを判断する(S1703)。
S1703の判断結果が真の場合(S1703:YES)、クラスタ管理プログラム#2は、対象ノードのスナップショットプログラム403に、差分データ(リストア対象のSS−VOL内のデータ)の書き戻し指示を送信する(S1704)。当該書き戻し指示に応答して、スナップショットプログラム403が、PVOLに差分データを書き戻し、完了応答を返す。クラスタ管理プログラム#2は、対象ノードのスナップショットプログラム403から完了応答を受信する(S1705)。その後、クラスタ管理プログラム#2は、S1701のリストア指示に対する完了応答を返す(S1708)。
S1703の判断結果が偽の場合(S1703:NO)、クラスタ管理プログラム#2は、対象ノードのコピープログラム404に、リストア対象のSS−VOLの移行先ノードへの全コピー指示を送信する(S1706)。当該全コピー指示に応答して、コピープログラム404が、リストア対象のSS−VOL内の差分データと、対象ノードのPVOL内のデータのうちの差分データ以外の全データとを、移行先ノードにコピーし、完了応答を返す。クラスタ管理プログラム#2は、対象ノードのコピープログラム404から完了応答を受信する(S1707)。その後、クラスタ管理プログラム#2は、S1701のリストア指示に対する完了応答を返す(S1708)。
本実施形態では、VOL構成として、PVOLを先頭に2以上のSS−VOLがカスケード状に並んだ構成も採用することが可能である。
図18は、図7に例示の移行処理後にカスケード接続が行われた後のローカルのVOL構成とグローバルのVOL構成とを示す。図19は、移行処理後にEVOL作成処理が行われた後のローカル管理テーブル#1及び#2とグローバル管理テーブル#2とを示す。
移行処理後に新たに2以上のSS−VOL(3)〜(5)をカスケード状にPVOL(2)に対して関連付けることができる。具体的には、新たなSS−VOLの親VOLを或る既存のSS−VOLとすることができる。カスケード構成のSS−VOLは、移行元ノード#1に元から存在してもよい。既存のSS−VOLが親VOLとなるSS−VOLに対応した世代番号504及び606は、当該既存のSS−VOLを世代番号0とした番号となる。このため、例えば、当該既存のSS−VOLについてのSS−VOLが初めて作成された場合、初めて作成されたSS−VOLの世代番号504及び606はそれぞれ“1”である(図19参照)。
なお、少なくともカスケード構成に関し、下記の(X)〜(Z)のいずれかを採用することができる。
<(X)保護優先>
・ノード#2は、カスケード構成中のPVOLに対してSS−VOLを作成する場合、PVOLが存在するノード#2にSS−VOLを作成する。当該作成されたSS−VOLの世代番号は、既存のSS−VOLの世代番号を考慮した番号とすることができる。
・ノード#2は、カスケード構成中の或るSS−VOLに対してSS−VOLを作成する場合、当該或るSS−VOLが存在するノードに、SS−VOLを作成する。当該作成されたSS−VOLの世代番号は、親VOLとされたSS−VOLの世代番号を考慮した番号とすることができる。
・ノード#2は、カスケード構成中のPVOLが削除対象とされ、当該PVOLに少なくとも1つの子孫SS−VOLが存在する場合、削除を実行しない(例えば、ユーザ(削除の指示元の一例)にエラーを返す)。ノード#2は、全ての子孫SS−VOLが削除されるまでPVOLの削除を受け付けない。これにより、残っている子孫SS−VOLに対応した世代のPVOLをリストアできないといったことを避けることができる。
・ノード#2は、カスケード構成中のSS−VOLが削除対象とされたが削除対象のSS−VOLに少なくとも1つの子孫SS−VOLが存在する場合、削除を実行しない(例えば、ユーザにエラーを返す)。ノード#2は、全ての子孫SS−VOLが削除されるまで親SS−VOLの削除を受け付けない。これにより、残っている子孫SS−VOLに対応した世代のPVOLをリストアできないといったことを避けることができる。
・ノード#2は、カスケード構成中のSS−VOLから先祖PVOLに対してリストアを実行する場合、次の処理を行う。すなわち、移行元ノード#1に存在するSS−VOLがリストア対象の場合、ノード#2は、全データの書き戻しを行う。移行先ノード#2に存在するSS−VOLがリストア対象の場合、ノード#2は、差分データの書き戻しを行う。
<(Y)指示優先>
・ノード#2は、カスケード構成中のPVOLに対してSS−VOLを作成する場合、PVOLが存在するノード#2にSS−VOLを作成する。当該作成されたSS−VOLの世代番号は、既存のSS−VOLの世代番号を考慮した番号とすることができる。
・ノード#2は、カスケード構成中の或るSS−VOLに対してSS−VOLを作成する場合、当該或るSS−VOLが存在するノードに、SS−VOLを作成する。当該作成されたSS−VOLの世代番号は、親VOLとされたSS−VOLの世代番号を考慮した番号とすることができる。
・ノード#2は、カスケード構成中のPVOLが削除対象とされた場合、当該PVOLに少なくとも1つの子孫SS−VOLが存在する場合、当該PVOLと当該PVOLの全ての子孫SS−VOLとを削除する。
・ノード#2は、カスケード構成中のSS−VOLが削除対象とされたが削除対象のSS−VOLに少なくとも1つの子孫SS−VOLが存在する場合、当該SS−VOLと当該SS−VOLの全ての子孫SS−VOLとを削除する。
・ノード#2は、カスケード構成中のSS−VOLから先祖PVOLに対してリストアを実行する場合、次の処理を行う。すなわち、移行元ノード#1に存在するSS−VOLがリストア対象の場合、ノード#2は、全データの書き戻しを行う。移行先ノード#2に存在するSS−VOLがリストア対象の場合、ノード#2は、差分データの書き戻しを行う。
<(Z)保護優先と指示優先の選択>
・ノード#2が、保護モードがオンかオフかを管理する。保護モードがオンの場合、上述の「(X)保護優先」が採用される。保護モードがオフの場合、上述の「(Y)指示優先」が採用される。例えば、保護モードがオフになっている場合、ノード#2は、削除対象のPVOLと当該PVOLの全子孫SS−VOLとを削除したり、削除対象のSS−VOLと当該SS−VOLの全子孫SS−VOLとを削除したりする。これにより、柔軟な記憶制御を提供することができる。
以上、本発明の一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、ストレージクラスタでの各SS−VOLの世代番号が、クラスタビュー104において表示されてよい。
101…ノード

Claims (11)

  1. ホストシステムに対して一のストレージ装置として認識されるストレージクラスタにおいて1以上のスナップショットボリュームが関連付けられているプライマリボリュームを移行元プライマリボリュームとして特定し、
    前記移行元プライマリボリュームに関連付けられている前記1以上のスナップショットボリュームの各々は、当該スナップショットボリュームに対応した世代での移行元プライマリボリュームとの差分としての差分データを格納しており、
    複数のストレージ装置のうちの、前記特定した移行元プライマリボリュームと前記1以上のスナップショットボリュームとを有するストレージ装置である移行元ストレージ装置から、前記複数のストレージ装置のうちの移行先ストレージ装置に、前記移行元プライマリボリュームと一部のスナップショットボリュームとのうち前記移行元プライマリボリュームのみを移行する移行処理を行
    前記移行処理によって前記移行先ストレージ装置に移行されたプライマリボリュームである移行先プライマリボリュームを、前記移行処理の後において前記移行元ストレージ装置の前記1以上のスナップショットボリュームに関連付けられており前記ストレージクラスタにおけるプライマリボリュームとすることで、前記移行処理の後において前記ホストシステムに対して見せるボリューム構成を、前記移行処理の前において前記ホストシステムに対して見せるボリューム構成に維持する、
    記憶制御方法。
  2. 前記ボリューム構成を基に前記ストレージクラスタに対するボリュームの作成要求又は削除要求を前記ホストシステムから受け付ける、
    請求項に記載の記憶制御方法。
  3. 前記移行処理の後に前記ストレージクラスタにおけるプライマリボリュームに対して新たにスナップショットボリュームを作成する場合、前記移行先ストレージ装置に、前記プライマリボリュームに関連付けられる新たなスナップショットボリュームを作成する、
    請求項に記載の記憶制御方法。
  4. 前記移行処理の前に存在する前記1以上のスナップショットボリュームのうちのいずれかのスナップショットボリュームに対応した世代のプライマリボリュームがリストア対象の場合、当該世代に対応したスナップショットボリューム内の差分データと、当該世代に対応したスナップショットボリュームが参照する全データとを、前記移行元ストレージ装置から前記移行先ストレージ装置にコピーし、
    前記移行処理の後に作成されたスナップショットボリュームに対応した世代のプライマリボリュームがリストア対象の場合、当該世代に対応したスナップショットボリューム内の差分データを、前記移行先ストレージ装置内においてコピーする、
    請求項に記載の記憶制御方法。
  5. 前記ストレージクラスタにおける削除対象のスナップショットボリュームを削除し、
    前記移行処理の後に前記プライマリボリュームについての少なくとも1つのスナップショットボリュームが削除されることによって前記移行元ストレージ装置において前記移行元プライマリボリュームに関連付けられているスナップショットボリュームの数がゼロになる場合、前記移行元プライマリボリュームも削除する、
    請求項1乃至4のうちのいずれか1項に記載の記憶制御方法。
  6. 下記の(a)及び(b)のうちの少なくとも1つ、
    (a)少なくとも1つのスナップショットボリュームが関連付けられているプライマリボリュームが削除対象の場合、当該プライマリボリュームの削除を非実行とする、
    (b)新しいスナップショットボリュームが関連付いているスナップショットボリュームが削除対象の場合、当該スナップショットボリュームの削除を非実行とする、
    を行う、
    請求項に記載の記憶制御方法。
  7. (a)及び(b)を、保護モードがオンになっている場合に行い、
    保護モードがオフになっている場合、下記を行う、
    (a)に代えて、前記削除対象のプライマリボリュームと、当該削除対象のプライマリボリュームに関連付いている全てのスナップショットボリュームとを削除する、及び、
    (b)に代えて、前記削除対象のスナップショットボリュームと、当該スナップショットボリュームに関連付いている全てのスナップショットボリュームとを削除する、
    請求項に記載の記憶制御方法。
  8. 前記複数のストレージ装置の各々についてI/O量を計測することでI/O量が集中しているストレージ装置を特定し、
    前記特定されたストレージ装置にプライマリボリュームがあれば、当該プライマリボリュームを前記移行元プライマリボリュームとして特定する、
    請求項1乃至7のうちのいずれか1項に記載の記憶制御方法。
  9. 前記移行処理の後に前記ホストシステムに見せる前記ボリューム構成において、前記移行処理の前に存在する前記1以上のスナップショットボリュームは、前記移行元ストレージ装置の前記1以上のスナップショットボリュームに前記移行先ストレージ装置においてそれぞれ関連付けられた1以上の仮想ボリュームである、
    請求項1乃至8のうちのいずれか1項に記載の記憶制御方法。
  10. ホストシステムに対して一のストレージ装置として認識されるストレージクラスタとしてのストレージシステムであって、
    複数のストレージ装置を有し、
    前記複数のストレージ装置のうちの少なくとも1つが、
    前記ストレージクラスタにおいて1以上のスナップショットボリュームが関連付けられているプライマリボリュームを移行元プライマリボリュームとして特定し、
    前記移行元プライマリボリュームに関連付けられている前記1以上のスナップショットボリュームの各々は、当該スナップショットボリュームに対応した世代での移行元プライマリボリュームとの差分としての差分データを格納しており、
    前記複数のストレージ装置のうちの、前記特定した移行元プライマリボリュームと前記1以上のスナップショットボリュームとを有するストレージ装置である移行元ストレージ装置から、前記複数のストレージ装置のうちの移行先ストレージ装置に、前記移行元プライマリボリュームと前記1以上のスナップショットボリュームとのうち前記移行元プライマリボリュームのみを移行する移行処理を行
    前記移行処理によって前記移行先ストレージ装置に移行されたプライマリボリュームである移行先プライマリボリュームを、前記移行処理の後において前記移行元ストレージ装置の前記1以上のスナップショットボリュームに関連付けられており前記ストレージクラスタにおけるプライマリボリュームとすることで、前記移行処理の後において前記ホストシステムに対して見せるボリューム構成を、前記移行処理の前において前記ホストシステムに対して見せるボリューム構成に維持する、
    ストレージシステム。
  11. ホストシステムに対して一のストレージ装置として認識されるストレージクラスタにおいて1以上のスナップショットボリュームが関連付けられているプライマリボリュームを移行元プライマリボリュームとして特定し、
    前記移行元プライマリボリュームに関連付けられている前記1以上のスナップショットボリュームの各々は、当該スナップショットボリュームに対応した世代での移行元プライマリボリュームとの差分としての差分データを格納しており、
    複数のストレージ装置のうちの、前記特定した移行元プライマリボリュームと前記1以上のスナップショットボリュームとを有するストレージ装置である移行元ストレージ装置から、前記複数のストレージ装置のうちの移行先ストレージ装置に、前記移行元プライマリボリュームと前記1以上のスナップショットボリュームとのうち前記移行元プライマリボリュームのみを移行する移行処理を行
    前記移行処理によって前記移行先ストレージ装置に移行されたプライマリボリュームである移行先プライマリボリュームを、前記移行処理の後において前記移行元ストレージ装置の前記1以上のスナップショットボリュームに関連付けられており前記ストレージクラスタにおけるプライマリボリュームとすることで、前記移行処理の後において前記ホストシステムに対して見せるボリューム構成を、前記移行処理の前において前記ホストシステムに対して見せるボリューム構成に維持する、
    ことをコンピュータに実行させるコンピュータプログラム。
JP2018003008A 2018-01-11 2018-01-11 ストレージシステム及び記憶制御方法 Active JP6772202B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018003008A JP6772202B2 (ja) 2018-01-11 2018-01-11 ストレージシステム及び記憶制御方法
US16/119,091 US10698627B2 (en) 2018-01-11 2018-08-31 Storage system and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018003008A JP6772202B2 (ja) 2018-01-11 2018-01-11 ストレージシステム及び記憶制御方法

Publications (2)

Publication Number Publication Date
JP2019124983A JP2019124983A (ja) 2019-07-25
JP6772202B2 true JP6772202B2 (ja) 2020-10-21

Family

ID=67140713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018003008A Active JP6772202B2 (ja) 2018-01-11 2018-01-11 ストレージシステム及び記憶制御方法

Country Status (2)

Country Link
US (1) US10698627B2 (ja)
JP (1) JP6772202B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649685B2 (en) * 2018-07-16 2020-05-12 International Business Machines Corporation Site-centric alerting in a distributed storage system
JP6878369B2 (ja) * 2018-09-03 2021-05-26 株式会社日立製作所 ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム
JP7253007B2 (ja) * 2021-05-28 2023-04-05 株式会社日立製作所 ストレージシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181206A (ja) 2008-01-29 2009-08-13 Hitachi Ltd ストレージシステム及びスナップショット構成の移行方法
US9495262B2 (en) * 2014-01-02 2016-11-15 International Business Machines Corporation Migrating high activity volumes in a mirror copy relationship to lower activity volume groups
US9830105B1 (en) * 2015-12-21 2017-11-28 EMC IP Holding Company LLC Migrating data objects together with their snaps

Also Published As

Publication number Publication date
US10698627B2 (en) 2020-06-30
JP2019124983A (ja) 2019-07-25
US20190212937A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
US10394662B2 (en) Storage apparatus and storage apparatus migration method
US7415506B2 (en) Storage virtualization and storage management to provide higher level storage services
JP5749803B2 (ja) 情報記憶システム及びストレージシステム管理方法
US9122410B2 (en) Storage system comprising function for changing data storage mode using logical volume pair
US9329795B2 (en) Logical volume transfer method and storage network system
US8205112B2 (en) Data migration management apparatus and information processing system
US8892840B2 (en) Computer system and data migration method
JP5303066B2 (ja) プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置
US20150153961A1 (en) Method for assigning storage area and computer system using the same
CN112306389A (zh) 存储系统和节点管理方法
WO2015162684A1 (ja) ストレージシステムのデータ移行方法
JP2007279845A (ja) ストレージシステム
JP2007066192A (ja) ストレージシステム及びその制御方法並びにコンピュータプログラム
US9665435B2 (en) Storage control apparatus, computer readable medium and method including creating snapshots and difference storage areas for respective volumes in a consistency group
US9513823B2 (en) Data migration
JP6772202B2 (ja) ストレージシステム及び記憶制御方法
WO2015145680A1 (ja) 管理計算機、及び計算機システム
JP7100090B2 (ja) ストレージシステム、連携方法、およびプログラム
WO2017085792A1 (ja) ストレージシステム、及びストレージシステムの制御方法
JP6019169B2 (ja) 情報記憶システム
JP2023103850A (ja) ストレージシステム、連携方法、およびプログラム
JP6000391B2 (ja) ストレージシステムのデータ移行方法
JP7113698B2 (ja) 情報システム
JP7443404B2 (ja) ストレージシステム
JP7261756B2 (ja) ストレージシステム、処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200930

R150 Certificate of patent or registration of utility model

Ref document number: 6772202

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350