WO2018055751A1 - 計算機システム及び記憶制御方法 - Google Patents
計算機システム及び記憶制御方法 Download PDFInfo
- Publication number
- WO2018055751A1 WO2018055751A1 PCT/JP2016/078196 JP2016078196W WO2018055751A1 WO 2018055751 A1 WO2018055751 A1 WO 2018055751A1 JP 2016078196 W JP2016078196 W JP 2016078196W WO 2018055751 A1 WO2018055751 A1 WO 2018055751A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pvol
- svols
- copy
- snapshot
- area
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
計算機システムが、PVOLと、1以上のSVOLと、スナップショットプールとを管理する。1以上のSVOLの各々は、PVOLとペアを構成しPVOLのスナップショットでありPVOLのクローンとしてユーザシステムに提供され得る論理ボリュームである。スナップヨットプールは、1以上のSVOLから共有される記憶領域である。PVOLから1以上のSVOLへのフルコピー中にPVOL内の未コピー領域について更新ライトのためのライト要求を受信した場合、計算機システムは、未コピー領域内の更新前データをスナップショットプールにコピーして、ライト応答を返す。計算機システムは、ライト要求の処理と非同期に、更新前データをスナップショットプールから1以上のSVOLにコピーすることである非同期コピーを実施する。
Description
本発明は、概して、計算機システムでの記憶制御に関する。
計算機システムの一例として、ストレージシステムがある。例えば、特許文献1は、カスケード型スナップショットと、データ更新を非同期に実施することを開示する。
以下、論理ボリュームを「VOL」と表記する。また、プライマリの論理ボリュームを「PVOL」と表記し、セカンダリの論理ボリュームを「SVOL」と表記する。
一般に、PVOLからSVOLへデータのフルコピーが行われる。フルコピーでは、PVOLの先頭アドレスから末尾アドレスにかけて、順次、データが、PVOLからSVOLへコピーされる。
フルコピーの実施中でも、ストレージシステムは、ライト要求を受け付ける。フルコピーの実施中、PVOLにおける未コピー領域(未だSVOLへコピーされていないデータが格納されている領域)に対するライト要求をストレージシステムが受信した場合、ストレージシステムは、未コピー領域内のデータをSVOLにコピーし、その後で、ライト要求に対する応答を返す。未コピー領域内のデータ(更新前データ)が、受信したライト要求に従うデータによって更新される前に、その更新前データをSVOLにコピーするためである。
従って、1つのPVOLに複数のSVOLが関連付けられ(複数のSVOLのペア相手が同一のPVOLであり)、且つ、1つのPVOLから複数のSVOLへそれぞれフルコピーを実施中にPVOLにおける未コピー領域に対するライト要求をストレージシステムが受信した場合、ストレージシステムは、未コピー領域内の更新前データを、複数のSVOLの各々にコピーした後でないと、ライト要求に対する応答を返すことができない。このため、1つのPVOLに1以上のSVOLを関連付けることができるストレージシステムでは、フルコピー実施中、PVOLライト応答性能(PVOLに対するライト要求の応答性能)の低下が生じ得る。
また、上述したように、フルコピーの実施中に更新前データをSVOLにコピーする必要があるため、SVOLをPVOLの単なるバックアップとして保持しておくのではなく、SVOLをPVOLのクローンとしてユーザシステム(例えば、ホスト又はクライアント)に対して提供する場合、SVOLを提供可能になるまで長い時間がかかる。
同様の課題は、1つのPVOLに1以上のSVOLを関連付けることができる計算機システム全般についてあり得る。
計算機システムが、PVOLと、1以上のSVOLと、スナップショットプールとを管理する。1以上のSVOLの各々は、PVOLとペアを構成しPVOLのスナップショットでありPVOLのクローンとしてユーザシステムに提供され得る論理ボリュームである。スナップヨットプールは、1以上のSVOLから共有される記憶領域である。PVOLから1以上のSVOLへのフルコピー中にPVOL内の未コピー領域について更新ライトのためのライト要求を受信した場合、計算機システムは、未コピー領域内の更新前データをスナップショットプールにコピーして、ライト応答を返す。計算機システムは、ライト要求の処理と非同期に、更新前データをスナップショットプールから1以上のSVOLにコピーすることである非同期コピーを実施する。
PVOLから1以上のSVOLの各々へフルコピーを実施中におけるPVOLライト応答性能は、1つのPVOLに関連付けられるSVOLの数に依存しない。
以下、図面を参照して、一実施形態を説明する。
以下の説明では、「インターフェース部」は、1以上のインターフェースである。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。また、以下の説明では、インターフェースデバイスを「I/F」と略記することがある。
また、以下の説明では、「メモリ部」は、1以上のメモリである。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。ストレージシステムに異なる種類のPDEVが混在していてもよい。
また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数のPDEV(典型的には同種のPDEV)、又は、複数のPDEVに基づく複数の記憶領域で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。
また、以下の説明では、「VOL」は、論理ボリュームの略であり、論理的な記憶デバイスでよい。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。「RVOL」は、そのRVOLを提供するストレージシステムが有する物理的な記憶資源(例えば、1以上のRAIDグループ)に基づくVOLでよい。「VVOL」は、外部接続VOL(EVOL)と、容量拡張VOL(TPVOL)と、スナップショットVOLとのうちのいずれでもよい。EVOLは、外部のストレージシステムの記憶空間(例えばVOL)に基づいておりストレージ仮想化技術に従うVOLでよい。TPVOLは、複数の仮想領域(仮想的な記憶領域)で構成されており容量仮想化技術(典型的にはThin Provisioning)に従うVOLでよい。スナップショットVOLは、オリジナルのVOLのスナップショットとして提供されるVOLでよい。スナップショットVOLは、RVOLであってもよい。「プール」は、論理的な記憶領域(例えば複数のプールVOLの集合)であり、用途ごとに用意されてよい。例えば、以下の実施形態では、プールとして、TPプールと、スナップショットプールとのうち、少なくともスナップショットプールがある。TPプールは、複数の実領域(実体的な記憶領域)で構成された記憶領域でよい。ストレージシステムが、受信したライト要求が指定するアドレスが属する仮想領域(TPVOLの仮想領域)に実領域が割り当てられていない場合、その仮想領域(ライト先仮想領域)にTPプールから実領域を割り当てる(ライト先仮想領域に他の実領域が割り当て済であっても実領域が新たにライト先仮想領域に割り当てられてもよい)。ストレージシステムは、割り当てられた実領域に、そのライト要求に付随するライト対象データを書き込んでよい。スナップショットプールは、オリジナルのVOLから退避されたデータが格納される記憶領域でよい。「プールVOL」は、プールの構成要素となるVOLでよい。プールVOLは、RVOLであってもよいしEVOLであってもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ部(或いは、プロセッサ部を有する計算機又は計算機システム)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通部分)を使用し、同種の要素を区別して説明する場合は、要素のID(又は要素の参照符号)を使用することがある。例えば、VOLを特に区別しないで説明する場合には、「VOL52」と記載し、個々のVOLを区別して説明する場合には、「PVOL52P」、「SVOL52S1」のように記載することがある。
また、以下の説明では、「計算機システム」は、サーバシステムとストレージシステムのうちの少なくとも1つでよい。「サーバシステム」は、1以上の物理的なサーバ(例えばサーバのクラスタ)であってもよいし、少なくとも1つの仮想的なサーバ(例えばVM(Virtual Machine))を含んでもよい。また、「ストレージシステム」は、1以上の物理的なストレージ装置であってもよいし、少なくとも1つの仮想的なストレージ装置(例えばSDS(Software Defined Storage))を含んでもよい。
図1は、実施形態の概要を示す。
計算機システムの一例として、ストレージ装置(図示せず)が採用されている。ストレージ装置が、1つのPVOL52Pに1つ以上のSVOL52Sを関連付けることができる。図示の例では、1つのPVOL52Pに複数(例えば3つ)のSVOL52S1~52S3が関連付けられている。
PVOL52Pは、本実施形態では、TPVOLであるが、RVOLであってもEVOLであってもよい。また、本実施形態では、PVOL52Pは、スナップショットVOLであることと、別のVOLペアのSVOL52Sであることとのうちの少なくとも1つでもあり得る。つまり、複数のVOL52がカスケード状に関連付けられていることもあり得る。
各SVOL52Sは、本実施形態では、TPVOLであり、且つ、PVOL52Pのスナップショット(スナップショットイメージ)としてのスナップショットVOLである。以下、説明を分かり易くするため、複数のSVOL52Sは、同一世代のスナップショットVOLであるとする。
各SVOL52Sは、PVOL52PのクローンとしてのSVOLである。「PVOL52PのクローンとしてのSVOL」とは、ユーザマシステムに提供され得るVOLである。そのVOLは、将来PVOL52Pになってもよい。ここで言う「ユーザシステム」とは、VM又は物理計算機のようなホストシステムでもよいし、ホストシステムをサーバとして使用するクライアントシステムでもよい。
PVOL52PのクローンとしてのSVOLとして、上述のスナップショットVOLが採用される。そして、スナップショットプール220Sが設けられる。スナップショットプール220Sは、複数のSVOL52S(スナップショットVOL)に共有されるプールである。
以下、VOLにおける一部領域を「VOLスロット」と言うことができる。このため、PVOL52Pにおける一部領域を「PVOLスロット」と言い、SVOL52Sにおける一部領域を「SVOLスロット」と言うことができる。また、スナップショットプール220Sにおける一部領域を「スナップショットプールスロット」と言うことができる。
PVOL52Pから複数のSVOL52Sへそれぞれフルコピーを実施中にPVOL52Pにおける未コピー領域に対する更新ライトのためのライト要求を受信した場合(S101)、ストレージ装置内のCPU(図示せず)は、未コピー領域内の更新前データをスナップショットプール220Sにコピーする(つまり1回の同期コピーを実施する)(S102)。結果として、CPUは、複数のSVOL52Sの各々について、対象SVOLスロットの参照先を、スナップショットプール220S内の更新前データ格納領域(更新前データを格納しているスナップショットプールスロット)とする。「対象SVOLスロット」は、未コピー領域のコピー先としてのSVOLスロット、具体的には、例えば、PVOL52Pの未コピー領域アドレスに相当したアドレス(SVOL52Sについてのアドレス)が指すSVOLスロットである。なお、「フルコピー」とは、PVOL52Pの先頭アドレスから末尾アドレスにかけて、順次、データを、PVOL52Pからそれのペア相手のSVOL52Sへコピーすることである。
上記の同期コピー後、ストレージ装置内のCPUは、更新後データ(受信したライト要求に従うデータ)を未コピー領域に格納し(例えば、ストレージ装置内のキャッシュ領域に更新後データを格納し)、その後、ライト要求の応答であるライト応答を返却する(S103)。
ライト要求の処理とは非同期に(例えばライト応答の返却後)、ストレージ装置内のCPUは、スナップショットプール220Sから各SVOL52Sに対して更新前データのコピー(非同期コピー)を実施する(S111)。具体的には、例えば、CPUは、未コピー領域から各SVOL52Sへのコピーが完了したとみなす。つまり、未コピー領域について、更新前データはスナップショットプール220Sに格納されたままとされ、更新前データのSVOL52Sへのコピーは、行われない。なお、このようにコピーがされたとみなす処理に代えて、スナップショットプール220Sから各SVOL52Sに実際に更新前データをコピーする処理が行われてもよい。具体的には、本実施形態では、各SVOL52Sは、TPVOLであるため、CPUは、各SVOL52S内の上述した対象SVOLスロットにTPプールから実領域を割り当て、その割り当てた実領域に、スナップショットプール220Sから更新前データをコピーしてよい。つまり、CPUは、スナップショットプール220SからTPプールへ更新前データをコピーしてよい。
フルコピーでは、スナップショットプール220Sに更新前データがコピーされ更新後データが格納されたPVOLスロット(旧未コピー領域)については、コピーがスキップされる。更新後データがSVOL52Sに格納されることを避けるためである。
本実施形態では、フルコピーの実施中に、PVOL52P内の未コピー領域に対するライト要求を受信しても、更新前データがスナップショットプール220Sにコピーされさえすれば、SVOL52Sの数に関わらずに、ライト応答を返却することができる。このため、フルコピー実施中でのPVOLライト応答性能は、SVOL52Sの数に依存しない。
また、本実施形態では、未コピー領域内の更新前データがスナップショットプール220Sにコピーされさえすれば、複数のSVOL52Sの各々について、対象SVOLスロット経由でスナップショットプール220Sから更新前データを取得可能な状態となる。このため、PVOL52PのクローンとしてのSVOL52Sを早くに完成させることが期待できる。これは、例えば次のような環境に好ましいと考えられる。すなわち、本実施形態を適用可能な環境の一例として、図に示すように、移行元VM61S(PVOL52Pを使用するVM(Virtual Machine))のクローンとしての複数(例えば3つ)のVM(移行先VM)61D1~61D3に対して、それぞれ、PVOL52Pのクローンとしての複数のSVOL52S1~52S3をそれぞれ関連付け、移行元VM61Sの業務を複数の移行先VM61D1~61D3の各々に引き継ぐ環境が考えられる。本実施形態によれば、上述したように、PVOL52PのクローンとしてのSVOL52Sを早くに完成させることが期待できるため、移行先VM61Dに早くにSVOL52Sを提供することが期待できる。
また、本実施形態によれば、PVOL52PのクローンとしてのSVOL52Sとして、スナップショットVOLが採用される。言い換えれば、スナップショットVOLを、PVOL52Pの単なるバックアップとして保持するのではなく、ユーザシステムに提供されるVOLとして採用している。そして、PVOL52P及びSVOL52S以外の記憶領域である第3の記憶領域の一例として、更新前データのコピー先領域が設けられ、そのコピー先領域として、スナップショットプール220Sが採用される。スナップショットプール220Sの本来の目的は、複数のスナップショットVOLから共有される同じデータの格納先となることである。つまり、スナップショットプールスロットは複数のSVOL52Sから参照され得る。このような特性を有するスナップショットプール220Sを参照可能なスナップショットVOLをPVOL52PのクローンとしてのSVOL52Sとして採用することで、SVOL52Sを早くに完成させることが期待できる。
以下、本実施形態を詳細に説明する。
図2は、ストレージ装置の構成を示す。
ストレージ装置10に、ホスト計算機20及び管理端末30が、例えば1以上の通信ネットワークを介して接続されている。ストレージ装置10は、計算機システムの一例である。ホスト計算機20は、ホストシステムの一例である。ホストシステムは、1以上のホスト計算機であり、VMを含んでもよい。管理端末30は、管理システムの一例である。管理システムは、1以上の計算機であり、例えば、制御コンソールとしての計算機と、入出力コンソールとしての計算機とを含んでよい。管理端末30は、通信ネットワークを介してホスト計算機20に接続されていてもよい。
ホスト計算機20は、ストレージ装置10へライト要求を送信することで、ストレージ装置10へデータを書き込む。また、ホスト計算機20は、ストレージ装置10へリード要求を送信することで、ストレージ装置10からデータを読み出す。
管理端末30は、ストレージ装置10を管理するための端末である。管理端末30は、管理者から入力された設定情報をストレージ装置10へ送信したり、ストレージ装置10の状態情報をストレージ装置10から受信したりする。
ストレージ装置10は、記憶デバイス200と、記憶デバイス200に対するデータ入出力を制御するコントローラ100とを含む。
記憶デバイス200は、複数のディスク210を含む。複数のディスク210のうちの少なくとも1つのディスク210を基に、1以上のプール220が提供される。本実施形態では、プール220として、後述するように、スナップショットプール220SとTPプール220T(図3参照)とがある。ディスク210は、PDEVの一例であり、例えばHDD又はSSDである。記憶デバイス200はストレージ装置10の外にあってもよい。
コントローラ100は、CPU120と、メモリ110と、ブリッジ130と、H-I/F140と、L-I/F150と、C-I/F160とを含む。CPU120が、ブリッジ130を介して、メモリ110、H-I/F140、L-I/F150及びC-I/F160に接続される。CPU120は、プロセッサ部の一例である。メモリ110が、メモリ部の一例である。H-I/F140、L-I/F150及びC-I/F160が、インターフェース部の一例である。
CPU120は、メモリ110内のプログラムを実行することにより処理を行う。例えば、CPU120は、ディスク210を用いてプール220を作成する。ブリッジ130は、コントローラ100の各部を接続する。H-I/F140は、通信ネットワークを介してホスト計算機20に接続されている。L-I/F150は、ディスク210に接続されている。C-I/F160は、通信ネットワークを介して管理端末30に接続されている。
メモリ110は、管理情報111と、コピー処理プログラム112と、I/O処理プログラム113とを格納し、キャッシュ領域114を含む。
管理情報111は、ディスク210に格納されるデータを管理するための情報である。管理情報111は、例えば、VOL毎にVOL属性(例えば、PVOL52P、SVOL52S、スナップショットVOL,プールVOL等)を表す情報と、スナップショットプール220Sを構成するVOLを表す情報と、TPプール220Tを構成するVOLを表す情報と、TPVOL(PVOL52PやSVOL52S等)におけるいずれの仮想領域にTPプール220Tにおけるいずれの実領域が割り当てられているかを表す情報(例えばマッピングテーブル)とを含む。更に、管理情報111は、例えば、後述のペア管理テーブル400(図4参照)及びスナップショット管理テーブル500(図5参照)を含む。コピー処理プログラム112は、データをコピーする。I/O処理プログラム113は、ホスト計算機20からの要求に応じてI/O処理を行う。キャッシュ領域114は、記憶デバイス200に入出力されるデータ(例えばホスト計算機20と送受信されるデータ)を一時的に格納する。
図3は、ストレージ装置10が管理する記憶領域を示す。
ストレージ装置10は、PVOL52Pと、PVOL52Pとそれぞれペアを構成する複数(例えば3つ)のSVOL52S1~52S3とを管理する。また、ストレージ装置10は、TPプール220Tと、スナップショットプール220Sとを管理する。
図4は、ペア管理テーブル400の構成を示す。
ペア管理テーブル400は、VOLペアの構成に関する情報を保持する。ペア管理テーブル400は、VOLペア毎に、ペア#401、ペア情報402及びコピー情報403といった情報を保持する。
ペア#401は、VOLペアの識別番号である。ペア情報402は、PVOL#421及びSVOL#422の組である。PVOL#421は、VOLペアにおけるPVOL52Pの識別番号であり、SVOL#422は、同じVOLペアにおけるSVOL52Sの識別番号である。コピー情報403は、フルコピー完了済のPVOLアドレス(PVOL52Pについてのアドレス)、具体的には、PVOL52Pの先頭からどの領域までコピー完了しているかを示す情報である。PVOLアドレスは、例えばスロット#で表現される。スロット#は、VOLスロットの識別番号である。例えば、コピー情報403が、“0x00000000~0x0000000F”であれば、1VOLスロット=256KB(キロバイト)とすると、PVOL52Pの先頭から4096KBまでコピーを完了していることを意味する。なお、VOLスロットに、キャッシュ領域114の一部領域としてのキャッシュスロットが関連付けられてもよい。VOLスロットに対するデータは、そのVOLスロットに関連付けられるキャッシュスロットに格納されてよい。
図5は、スナップショット管理テーブル500の構成を示す。
スナップショット管理テーブル500は、スナップショットの構成に関する情報を保持する。スナップショット管理テーブル500は、PVOL52PとSVOL52S間の差分毎に、スナップショットデータ情報501及びスナップショットペア情報502を保持する。「スナップショットデータ」とは、少なくとも1つのSVOL52S(スナップショットVOL)から参照されるスナップショットスロットに格納されたデータである。
スナップショットデータ情報501は、使用領域511と領域属性512とを含む。
使用領域511は、VOLの先頭(0x00000000)起点として、PVOL52PとSVOL52Sとの差分がある位置を示す情報である。なお、差分ができるのは、PVOL52Pに対する更新ライト(データを格納しているPVOLスロットに対するライト)があった場合と、SVOL52Sへの更新ライト(データを格納しているSVOLスロットに対するライト)があった場合である。例えば、使用領域511(スロット#)が“0x00000000”であれば、PVOL52PとSVOL52Sとの差分が先頭VOLスロットであることを意味する。
領域属性512は、対応する差分領域(スロット)の属性を示す。“共有”は、差分としてのデータが、複数のSVOL52Sから参照され(共有され)スナップショットプール220Sに格納されているデータであることを意味する。“固有”は、差分としてのデータが、SVOL52S固有の差分データであることを意味する。例えば、差分領域が未コピー領域であって、更新前データがスナップショットプール220Sに格納されている場合、領域属性512は“共有”である。
なお、スナップショットデータ情報501は、差分データ(スナップショットデータ)が格納されている領域を示すアドレス(例えばスロット#)を含んでいてもよい。また、そのようなアドレスは、スナップショット管理テーブル500とは別のテーブルで管理されていてもよい。また、SVOLスロットに対する更新ライトが発生した場合、SVOLスロット内の更新前データ(例えば、SVOLスロットにTPプール220Tから割り当てられている実領域内の更新前データ)が、スナップショットプール220Sにコピーされてもよいし、そのようなコピーがされることなく更新後データによって上書きされてもよい。
スナップショットペア情報502は、PVOL#521及びSVOL#522を含む。PVOL#521は、PVOL52Pの識別番号である。SVOL#522は、SVOL52Sの識別番号である。なお、領域属性512“共有”に対応した差分について、SVOL#522は、“-”とされる。SVOL52S内に差分データが存在せずスナップショットプール220S内に存在し複数のSVOL52Sから共有されているためである。
以下、図6~図10を参照して、1つのPVOL52Pから複数のSVOL52Sの各々へのフルコピーの開始から完了までの流れを説明する。なお、図6~図10において、テーブル400及び500における太字は、更新後の情報を意味する。
図6に示すように、コピー処理プログラム112が、1つのPVOL52Pから複数のSVOL52Sの各々へのフルコピーを開始する。コピー処理プログラム112は、各VOLペアについて、フルコピーの進捗に応じて、ペア管理テーブル400内のコピー情報403を更新する。
図7に示すように、I/O処理プログラム113が、PVOL52P内の未コピー領域(スロット#“0x00000040”)に対する更新ライトのためのライト要求をホスト計算機20から受信したとする。この場合、コピー処理プログラム112は、未コピー領域内の更新前データをスナップショットプール220Sにコピーする(同期コピー)。また、コピー処理プログラム112は、差分に関する情報として、使用領域511“0x00000040”、領域属性512“共有”、及び、PVOL#521“0x1000”を、スナップショット管理テーブル500に登録する。
その後、図8に示すように、I/O処理プログラム113は、ライト応答を返す。
その後、図9に示すように、フルコピーのコピー元アドレス(スロット#)が未コピー領域のアドレスになった場合、コピー処理プログラム112は、スナップショットプール220Sから更新前データをSVOL52Sにコピーすることである非同期コピーを実施する。このように、フルコピーの進捗が進みコピー元が未コピー領域になったときに非同期コピーを実施することが、フルコピーの特性(先頭アドレスから末尾アドレスにかけて順次コピーを行うという特性)に適しているため効率的である。また、本実施形態では、非同期コピーは、未コピー領域からのコピーが完了したとみなすこと、具体的には、コピー情報403を、未コピー領域からのコピーが完了したことを意味する情報に更新すること(つまり、コピー情報403に、未コピー領域のアドレスを追加すること)である。非同期コピーでは、更新前データの実際のコピーは発生しない。このため、短時間で非同期コピーが終了する。
その後、更にフルコピーが進み、やがて、図10に示すように、各SVOL52Sに対するフルコピーが完了する。
図11は、コントローラ100がホスト計算機20からI/O要求を受信した場合に行われる処理のフローチャートである。なお、図11の説明では、I/O要求で指定されるI/O対象情報(I/O対象領域を表す情報)が、I/O対象VOL及びI/O対象VOLスロットを表しているとする。
I/O処理プログラム113は、受信したI/O要求を判定する(S1101)。
受信したI/O要求がリード要求の場合、I/O処理プログラム113は、I/O対象VOLスロットからデータを読み出し、読み出したデータをホスト計算機20に返す(S1102)。
受信したI/O要求がライト要求の場合、I/O処理プログラム113は、I/O対象VOLを含んだVOLペアが存在するか否かを、ペア管理テーブル400を参照することにより判定する(S1103)。例えば、I/O対象VOLの番号と一致するPVOL#421があれば、S1103の判定結果は真である。
S1103の判定結果が偽の場合(S1103:No)、I/O処理プログラム113は、I/O対象VOLスロットにデータを書き込み、ライト応答をホスト計算機20に返す(S1106)。なお、ライト応答は、I/O対象VOLスロットに対応したキャッシュスロットにデータが書き込まれたときに返されてもよい。
S1103の判定結果が真の場合(S1103:Yes)、I/O処理プログラム113は、I/O対象VOLスロットが未コピー領域であるか否かを、ペア管理テーブル400を参照することにより判定する(S1104)。例えば、I/O対象VOLスロットのスロット#が、I/O対象VOLに対応するコピー情報403が表すスロット#範囲に含まれていなければ、S1104の判定結果は真である。
S1104の判定結果が真の場合(S1104:Yes)、I/O処理プログラム113は、I/O対象情報を指定した同期コピー指示をコピー処理プログラム112に出す。コピー処理プログラム112は、その同期コピー指示に応答して、未コピー領域(I/O対象VOLスロット)から更新前データをスナップショットプール220Sにコピーする(S1105)。コピー処理プログラム112は、使用領域511(I/O対象VOLスロットのスロット#)、領域属性512“共有”、及びPVOL#421(I/O対象VOLの番号)を、スナップショット管理テーブル500に登録する。コピー処理プログラム112は、同期コピー完了をI/O処理プログラム113に返す。I/O処理プログラム113が、同期コピー完了を受けて、ライト応答をホスト計算機20に返す(S1106)。
S1104の判定結果が偽の場合(S1104:No)、I/O処理プログラム113は、I/O対象VOLスロットにデータを書き込み、ライト応答をホスト計算機20に返す(S1106)。
受信したI/O要求がリード要求でもライト要求でもない場合、I/O処理プログラム113は、その要求に応じた結果をホスト計算機20に返す(S1107)。返る結果は、例えば、エラーメッセージでもよいし、ログであってもよい。
図12は、PVOL52Pの未コピー領域を指定したライト要求をフルコピーの実施中にコントローラ100がホスト計算機20から受信した場合に行われる処理のラダーチャートである。
I/O処理プログラム113は、上述したS1101、S1103及びS1104を経て、受信したI/O要求がそのようなライト要求であることを特定し、同期コピー指示をコピー処理プログラム112に出す。コピー処理プログラム112が、更新前データを未コピー領域からスナップショットプール220Sにコピーし、同期コピー完了をI/O処理プログラム113に返す。I/O処理プログラムが、同期コピー完了を受けて、ライト応答をホスト計算機20に返す。
コピー処理プログラム112は、同期コピー完了を送信した後で、同一PVOL52Pを含んだ複数のVOLペアの各々について、スナップショットプール220Sから更新前データをSVOL52Sにコピーする非同期コピーを実施する。この非同期コピーは、上述したように、フルコピーの進捗に応じて行われる。具体的には、コピー元アドレスが未コピー領域アドレスに進んだ場合に、その未コピー領域アドレスについてコピーが完了したとみなされる。
図に示すように、ホスト計算機20にとって、PVOLライト応答時間1200は、ライト要求を送信してからライト応答を受信するまでの時間であるが、その時間は、PVOL52Pに関連付けられているSVOL52Sの数(別の言い方をすれば、同一のPVOL52Pを含んだVOLペアの数)に依存しない。
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、複数のSVOL52Sは、それぞれ、異なる複数の世代のスナップショットVOLでもよい。第N世代のSVOL52S(第N世代のスナップショットに対応したSVOL52S)内の領域は、PVOL52Pにおける領域を参照してもよいし、別の世代(例えば1つ前の世代である第(N-1)世代)のSVOL52S内の領域を参照してもよい。複数のSVOL52Sのうちの少なくとも1つが、別のVOLペアにおけるPVOL52Pになり得てもよい。
また、クローンとして完成したSVOL52Sは、I/O処理プログラム113のようにコントローラ100により実行されるプログラムによって、ホスト計算機20のようなユーザシステムに提供されてよい。
また、例えば、上述の実施形態では、複数のSVOL52Sのうちの1つのSVOL52Sに対してのみPVOL52Pからのフルコピーが実施されている場合も、未コピー領域内の更新前データがスナップショットプール220Sにコピーされる。しかし、複数のSVOL52Sのうちの1つのSVOL52Sに対してのみPVOL52Pからのフルコピーが実施されている場合であれば、未コピー領域内の更新前データのコピー先は、スナップショットプール220Sに代えて、その1つのSVOL52Sでもよい。言い換えれば、未コピー領域内の更新前データをスナップショットプール220Sにコピーすることは、フルコピー先が少なくとも2つのSVOL52Sである場合に行われてよい。フルコピー先が少なくとも2つのSVOL52Sであるか否かは、例えば、図11のS1104で判断されてもよい。
また、例えば、計算機システムとして、サーバシステムが採用されてもよい。この場合、スナップショットプール220Sは、サーバシステムの外部又は内部に用意されてもよい。サーバシステムは、ライト要求を受け付けるインターフェース部、記憶部、及び、そのインターフェース部及び記憶部に接続されたプロセッサ部を有する。サーバシステムでは、ライト要求の送信元は、サーバシステムで実行されるアプリケーションや仮想サーバであってよい。
また、例えば、図13に示すように、本発明は、多段カスケード構成の複数のスナップショットVOLにも適用可能である。すなわち、複数のSVOL52S(スナップショットVOL)に対するコピー元であるPVOL52Pが、スナップショットVOLであり、そのPVOL52Pは、別のVOLペアにおけるSVOL52Sであってもよい。
10…ストレージ装置
Claims (12)
- 1以上の記憶デバイスに接続される1以上のインターフェースであるインターフェース部と、
前記インターフェース部に接続された1以上のプロセッサであり複数の記憶領域を管理するプロセッサ部と
を有し、
前記複数の記憶領域は、
プライマリ論理ボリューム(PVOL)と、
それぞれが前記PVOLとペアを構成し前記PVOLのスナップショットであり前記PVOLのクローンとしてユーザシステムに提供され得る論理ボリュームである1以上のセカンダリ論理ボリューム(SVOL)と、
前記1以上のSVOLから共有される記憶領域であるスナップショットプールと
を含み、
前記プロセッサ部は、前記PVOLから前記1以上のSVOLへのフルコピー中に、前記PVOL内の領域であって、未だ前記1以上のSVOLへのコピーがされていない領域である未コピー領域について、更新ライトのためのライト要求を受信した場合、
前記未コピー領域に格納されているデータである更新前データを前記スナップショットプールにコピーすることである同期コピーを実施し、
前記同期コピーが完了したときに、前記ライト要求の応答であるライト応答を返し、
前記ライト要求の処理と非同期に、前記更新前データを前記スナップショットプールから前記1以上のSVOLにコピーすることである非同期コピーを実施する、
計算機システム。 - 前記1以上のSVOLは、複数のSVOLである、
請求項1記載の計算機システム。 - 前記プロセッサ部は、前記複数のSVOLのうちの少なくとも2つのSVOLの各々への前記フルコピーの実施中に前記未コピー領域について前記ライト要求を受信した場合に、前記同期コピーを実施する、
請求項2記載の計算機システム。 - 前記プロセッサ部は、前記1以上のSVOLの各々について、前記PVOLからの前記フルコピーの進捗に応じて前記非同期コピーを実施する、
請求項1記載の計算機システム。 - 前記1以上のSVOLの各々について、前記非同期コピーは、前記更新前データを前記スナップショットプールからそのSVOLにコピーしたとみなすことである、
請求項4記載の計算機システム。 - 前記PVOLは、前記1以上のSVOLとの間でそれぞれ構成された1以上のペアとは別のペアにおけるセカンダリ論理ボリュームでもある、
請求項1記載の計算機システム。 - プライマリ論理ボリューム(PVOL)から、それぞれが前記PVOLとペアを構成し前記PVOLのスナップショットであり前記PVOLのクローンとしてユーザシステムに提供され得る論理ボリュームである1以上のセカンダリ論理ボリューム(SVOL)へのフルコピー中に、PVOL内の領域であって、未だ前記1以上のSVOLへのコピーがされていない領域である未コピー領域について、更新ライトのためのライト要求を受信し、
前記未コピー領域に格納されているデータである更新前データを前記スナップショットプールにコピーすることである同期コピーを実施し、
前記同期コピーが完了したときに、前記ライト要求の応答であるライト応答を返し、
前記ライト要求の処理と非同期に、前記更新前データを前記スナップショットプールから前記1以上のSVOLにコピーすることである非同期コピーを実施する、
記憶制御方法。 - 前記1以上のSVOLは、複数のSVOLである、
請求項7記載の記憶制御方法。 - 前記同期コピーは、前記複数のSVOLのうちの少なくとも2つのSVOLの各々への前記フルコピーの実施中に前記未コピー領域について前記ライト要求を受信した場合に、実施される、
請求項8記載の記憶制御方法。 - 前記非同期コピーは、前記1以上のSVOLの各々について、前記PVOLからの前記フルコピーの進捗に応じて実施される、
請求項7記載の記憶制御方法。 - 前記1以上のSVOLの各々について、前記非同期コピーは、前記更新前データを前記スナップショットプールからそのSVOLにコピーしたとみなすことである、
請求項10記載の記憶制御方法。 - 前記PVOLは、前記1以上のSVOLとの間でそれぞれ構成された1以上のペアとは別のペアにおけるセカンダリ論理ボリュームでもある、
請求項7記載の記憶制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/078196 WO2018055751A1 (ja) | 2016-09-26 | 2016-09-26 | 計算機システム及び記憶制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/078196 WO2018055751A1 (ja) | 2016-09-26 | 2016-09-26 | 計算機システム及び記憶制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018055751A1 true WO2018055751A1 (ja) | 2018-03-29 |
Family
ID=61690796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/078196 WO2018055751A1 (ja) | 2016-09-26 | 2016-09-26 | 計算機システム及び記憶制御方法 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018055751A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210439A (ja) * | 1993-12-03 | 1995-08-11 | Hitachi Ltd | 記憶装置 |
JP2007265441A (ja) * | 2007-07-09 | 2007-10-11 | Hitachi Ltd | ストレージ装置 |
JP2014071650A (ja) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | ストレージ制御装置、ストレージ制御プログラム及びコピー方法 |
-
2016
- 2016-09-26 WO PCT/JP2016/078196 patent/WO2018055751A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210439A (ja) * | 1993-12-03 | 1995-08-11 | Hitachi Ltd | 記憶装置 |
JP2007265441A (ja) * | 2007-07-09 | 2007-10-11 | Hitachi Ltd | ストレージ装置 |
JP2014071650A (ja) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | ストレージ制御装置、ストレージ制御プログラム及びコピー方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114341792B (zh) | 存储集群之间的数据分区切换 | |
JP4809040B2 (ja) | ストレージ装置及びスナップショットのリストア方法 | |
US9658798B2 (en) | Grouping of tracks for copy source to target destage on global mirror secondary | |
JP5461216B2 (ja) | 論理ボリューム管理の為の方法と装置 | |
US9501231B2 (en) | Storage system and storage control method | |
EP3502877B1 (en) | Data loading method and apparatus for virtual machines | |
US11182094B2 (en) | Performing a recovery copy command using a recovery copy data structure for a backup volume lookup | |
US20130311739A1 (en) | Storage apparatus, storage system, and data migration method | |
JP6835949B2 (ja) | 情報システム、管理プログラム及び情報システムのプログラム交換方法 | |
US11182081B2 (en) | Performing a recovery copy command to restore a safeguarded copy backup to a production volume | |
US10936243B2 (en) | Storage system and data transfer control method | |
JP6561765B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
JP2007323657A (ja) | 過渡状態情報を格納するための方法、システムおよびコンピュータ・プログラム | |
JP5272185B2 (ja) | 計算機システム及びストレージシステム | |
US10789132B2 (en) | Performing a recovery copy command to create a recovery volume for a consistency group | |
CN111124257B (zh) | 用于管理独立盘冗余阵列的方法、设备和计算机程序产品 | |
US9977813B2 (en) | Storage device and data migration method | |
JP2023016972A (ja) | ストレージシステム及びデータ処理方法 | |
US10740189B2 (en) | Distributed storage system | |
WO2018055686A1 (ja) | 情報処理システム | |
WO2018055751A1 (ja) | 計算機システム及び記憶制御方法 | |
US8935488B2 (en) | Storage system and storage control method | |
JP2021033671A (ja) | ストレージシステムおよびリストア方法 | |
US20160357479A1 (en) | Storage control apparatus | |
US11762807B2 (en) | Method and apparatus for deterministically identifying sets of snapshots on a storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16916818 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16916818 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |