JP2016151803A - ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 - Google Patents

ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 Download PDF

Info

Publication number
JP2016151803A
JP2016151803A JP2015027531A JP2015027531A JP2016151803A JP 2016151803 A JP2016151803 A JP 2016151803A JP 2015027531 A JP2015027531 A JP 2015027531A JP 2015027531 A JP2015027531 A JP 2015027531A JP 2016151803 A JP2016151803 A JP 2016151803A
Authority
JP
Japan
Prior art keywords
data
update
storage area
zero data
confirmation
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.)
Pending
Application number
JP2015027531A
Other languages
English (en)
Inventor
和彦 臼井
Kazuhiko Usui
和彦 臼井
秀憲 山田
Hidenori Yamada
秀憲 山田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015027531A priority Critical patent/JP2016151803A/ja
Publication of JP2016151803A publication Critical patent/JP2016151803A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】スナップショットにおいてディスク容量を効率的に利用できる。
【解決手段】記憶部1aは、更新情報3と確認情報4を記憶する。更新情報3は、スナップショットにおけるコピー元記憶領域(第1の記憶領域2a)のデータ更新の有無を示す。確認情報4は、スナップショットにおけるコピー元記憶領域(第1の記憶領域2a)の初期データの確認の有無を示す。制御部1bは、コピー元記憶領域のデータを更新することにより更新情報3をデータ更新無しからデータ更新有りに更新する更新処理を実行する。更新処理は、データ転送を伴う第1更新処理とデータ転送を伴わない第2更新処理とがあり、制御部1bは、確認情報4にもとづいて第1更新処理または第2更新処理を選択して実行する。
【選択図】図1

Description

本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法に関する。
ファイルなどのバックアップ技術として、ある時点のデータイメージのコピーを瞬時に作成するスナップショットが知られている。スナップショットは、スナップショット時におけるデータイメージを論理的にコピーして、スナップショット時のコピー元の情報を、コピー先から参照できる機能である。
スナップショットは、コピー元でデータ更新があった場合に、更新前データをコピー先に差分情報として物理的にコピーして記録する。また、スナップショットは、データイメージを区分した所定の領域ごとに物理的なコピーが完了しているか否かを、たとえばビットマップ形式で記録している。これにより、スナップショットは、コピーのために確保するディスク容量を、データ差分程度にまで削減できる。
特開2010−186471号公報 特開2010−086474号公報 特開2014−038551号公報
しかしながら、このようなスナップショットは、コピー元に記録されているデータが初期データ(たとえば、ゼロデータ)である場合まで、コピー元のデータ更新により初期データをコピー先にコピーしている。たとえば、コピー元に記録されているデータが初期データである場合とは、初めてのディスク使用である初期状態や、仮想ボリュームに物理割り当てがされたばかりの状態がある。
このような初期データのコピーは、コピー先にとって意味のない情報としてディスク容量を無駄に消費することとなる場合がある。
1つの側面では、本発明は、スナップショットにおいてディスク容量を効率的に利用可能なストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法を提供することを目的とする。
上記目的を達成するために、以下に示すような、ストレージ制御装置が提供される。ストレージ制御装置は、記憶部と、制御部とを備える。記憶部は、第1の記憶領域をコピー元として第2の記憶領域をコピー先とするスナップショットにおける第1の記憶領域のデータ更新の有無を示す更新情報と、第1の記憶領域が記憶する初期データの確認の有無を示す確認情報とを記憶する。制御部は、第1の記憶領域のデータを更新することにより更新情報をデータ更新無しからデータ更新有りに更新する場合、第1の記憶領域から読み出したデータを第2の記憶領域に書き込むデータ転送を伴う更新情報の更新をおこなう第1更新処理、またはデータ転送を伴わない更新情報の更新をおこなう第2更新処理を、確認情報にもとづいて選択して実行する。
1態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法において、スナップショットにおいてディスク容量を効率的に利用できる。
第1の実施形態のストレージ制御装置の構成の一例を示す図である。 第2の実施形態のストレージシステムの構成の一例を示す図である。 第2の実施形態のストレージ装置の構成の一例を示す図である。 第2の実施形態のCMの処理機能の構成の一例を示すブロック図である。 第2の実施形態のゼロデータビットマップ生成処理のフローチャートを示す図である。 第2の実施形態の通常ボリュームのゼロデータビットマップイメージの一例を示す図である。 第2の実施形態の仮想ボリュームの物理割り当て未割り当ての領域がある場合のゼロデータビットマップイメージの一例を示す図である。 第2の実施形態のゼロデータ領域確認処理のフローチャートを示す図である。 第2の実施形態の読み出したデータがゼロデータでない場合のゼロデータビットマップイメージの一例を示す図である。 第2の実施形態の読み出したデータがゼロデータである場合のゼロデータビットマップイメージの一例を示す図である。 第2の実施形態のゼロデータコピー削減処理のフローチャートを示す図である。 第2の実施形態の差分コピー時に読み出したデータがゼロデータでない場合のゼロデータビットマップイメージの一例を示す図である。 第2の実施形態の差分コピー時に読み出したデータがゼロデータである場合のゼロデータビットマップイメージの一例を示す図である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態のストレージ制御装置について図1を用いて説明する。図1は、第1の実施形態のストレージ制御装置の構成の一例を示す図である。
ストレージ制御装置1は、外部装置(たとえばホストやサーバなど)から受け付けるアクセス要求に応じてストレージデバイスを制御する。ストレージデバイスは、たとえばSSD(Solid State Drive)やHDD(Hard Disk Drive)などがある。
ストレージ制御装置1は、記憶部1aと、制御部1bとを備える。記憶部1aは、更新情報3と確認情報4を記憶する。記憶部1aは、たとえば、RAM(Random Access Memory)などがある。
更新情報3と確認情報4は、スナップショット作成時にスナップショットのメタデータとして生成される。たとえば、ストレージ制御装置1は、第1の記憶領域2aをコピー元として第2の記憶領域2bをコピー先とするスナップショットを作成したとき、更新情報3と確認情報4を生成して記憶部1aに記憶する。
更新情報3は、スナップショットにおけるコピー元記憶領域(第1の記憶領域2a)のデータ更新の有無を示す情報である。更新情報3は、たとえばブロック単位のデータ更新の有無を、対応する1ビットで表わすビットマップ(第1のビットマップ)である。第1のビットマップにおいて各ビットは、データ更新無しを「1」で表わし、データ更新有りを「0」で表わす。したがって、スナップショット作成時に生成される更新情報3は、すべてのビットが「1」のビットマップである。
確認情報4は、スナップショットにおけるコピー元記憶領域(第1の記憶領域2a)の初期データの確認の有無を示す情報である。確認情報4は、たとえばブロック単位の初期データの確認の有無を、対応する1ビットで表わすビットマップ(第2のビットマップ)である。初期データは、初期状態のディスクに記録されているデータである。たとえば、初期データは、初めてのディスク使用時や、仮想ボリュームに物理割り当てがされたばかりの時に、記憶領域に記憶されている意味のないデータであり、一般に全ビットが「0」であるゼロデータである。第2のビットマップにおいて各ビットは、初期データの確認無しを「1」で表わし、初期データの確認有りを「0」で表わす。すなわち、第2のビットマップにおいて、ビット「1」はデータ未確定を示し、ビット「0」はゼロデータ確定を示す。したがって、スナップショット作成時に生成される確認情報4は、すべてのビットが「1」のビットマップである。
制御部1bは、コピー元記憶領域へのデータの書き込みにより、コピー元記憶領域のデータを更新することがある。制御部1bは、コピー元記憶領域のデータを更新することにより更新情報3をデータ更新無しからデータ更新有りに更新する更新処理を実行する。更新処理は、第1更新処理と第2更新処理とがあり、制御部1bは、確認情報4にもとづいて第1更新処理または第2更新処理を選択して実行する。
第1更新処理は、コピー元記憶領域(第1の記憶領域2a)から読み出したデータをコピー先記憶領域(たとえば、第2の記憶領域2b)に書き込むデータ転送を伴う更新処理である。第2更新処理は、コピー元記憶領域(第1の記憶領域2a)から読み出したデータをコピー先記憶領域(第2の記憶領域2b)に書き込むデータ転送を伴わない更新処理である。
このようなストレージ制御装置1によれば、スナップショット作成時に、更新情報3と確認情報4は、制御部1bによって生成されて記憶部1aに記憶される。たとえば、スナップショットのコピー元のサイズが8ブロックのとき、制御部1bは、各ビットの初期値が「1」で8ビットのサイズの更新情報3を生成する。同様に、制御部1bは、各ビットの初期値が「1」で8ビットのサイズの確認情報4を生成する。
確認情報4は、コピー元記憶領域(第1の記憶領域2a)のうち各ビットに対応するブロックで初期データの確認がされた場合に当該ビットが「0」になる。たとえば、コピー元記憶領域から読み出されたデータが初期データである場合や、コピー元記憶領域が物理割り当てのない領域である場合に、確認情報4は、初期データの確認がされたとして対応するビットが「1」から「0」に更新される。
ここで、コピー元記憶領域(第1の記憶領域2a)へのデータ更新(たとえば、データ書き込み)があった場合、制御部1bは、更新情報3の対応するビットを「1」から「0」に更新する。さらに、制御部1bは、確認情報4の対応するビットを参照し、確認情報4の対応するビットが「1」であれば第1更新処理を選択して実行し、確認情報4の対応するビットが「0」であれば第2更新処理を選択して実行する。たとえば、制御部1bは、更新情報3から更新情報3aに更新するとき、確認情報4を参照し確認情報4aであれば第1更新処理を実行する。また、制御部1bは、更新情報3から更新情報3aに更新するとき、確認情報4を参照し確認情報4bであれば第2更新処理を実行する。
これにより、ストレージ制御装置1は、第2更新処理を実行するときにコピー元記憶領域(第1の記憶領域2a)からコピー先記憶領域(第2の記憶領域2b)へのデータ転送を要しない。これは、データ転送の対象となるデータが初期データであることが確認されているため、初期データを差分情報としてデータ転送することを要しないことによる。したがって、ストレージ制御装置1は、コピー先記憶領域(第2の記憶領域2b)に物理割り当てをおこなうことも要しない。よって、ストレージ制御装置1は、スナップショットにおいてディスク容量を効率的に利用できる。
[第2の実施形態]
次に、第2の実施形態のストレージシステムについて図2を用いて説明する。図2は、第2の実施形態のストレージシステムの構成の一例を示す図である。
ストレージシステム5は、サーバ6と、ネットワーク(伝送路)7と、ストレージ装置10とを含む。ネットワーク7は、たとえば1または複数のストレージ装置10と、1または複数のサーバ6を接続する。ストレージ装置10は、ネットワーク7を介してサーバ6と通信可能に接続する。サーバ6は、ストレージ装置10にデータを書き込み、またストレージ装置10からデータを読み出すことができる。
次に、第2の実施形態のストレージ装置について図3を用いて説明する。図3は、第2の実施形態のストレージ装置の構成の一例を示す図である。
ストレージ装置10は、チャネルアダプタ11,12と、リモートアダプタ13,14と、コントローラモジュール(以下、CM(Controller Module))20,30と、ドライブエンクロージャ(以下、DE(Drive Enclosure))50を含む。
ストレージ装置10は、チャネルアダプタ11,12を介してサーバ6と接続する。チャネルアダプタ11は、CM20に対応して備えられ、チャネルアダプタ12は、CM30に対応して備えられる。ストレージ装置10は、リモートアダプタ13,14を介して他のストレージ装置と接続できる。リモートアダプタ13は、CM20に対応して備えられ、リモートアダプタ14は、CM30に対応して備えられる。
DE50は、HDD51,52,53,54を含む。なお、DE50は、SSDなどその他のストレージデバイスを含むものであってもよい。
CM20とCM30は、相互に接続して負荷を分担することができる。なお、ストレージ装置10は、2つのCM20,30を含むが、これに限らず、CM20とCM30のいずれか一方を含むものであってもよいし、3つ以上のCMを含むものであってもよく、たとえば、4つあるいは8つのCMを含むものであってもよい。
CM20は、プロセッサ21と、メモリ22と、ディスクアダプタ23,24を含む。CM30は、プロセッサ31と、メモリ32と、ディスクアダプタ33,34を含む。なお、CM30はCM20と同様の構成を有するため、以下、CM20の説明をもってCM30の説明に代える。
プロセッサ21、メモリ22、およびディスクアダプタ23,24は、図示しないバスを介して接続されている。プロセッサ21は、CM20全体を制御し、階層制御を含むストレージ制御をおこなう。なお、プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
メモリ22は、HDD51,52,53,54からデータを読み出したときにデータを保持するほか、HDD51,52,53,54にデータを書き込むときのバッファとなる。また、メモリ22は、ユーザデータや制御情報を格納する。
たとえば、メモリ22は、RAM(Random Access Memory)や不揮発性メモリを含む。RAMは、CM20の主記憶装置として使用される。RAMには、プロセッサ21に実行させるオペレーティングシステム(Operating System)のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAMには、プロセッサ21による処理に必要な各種データが格納される。また、RAMは、各種データの格納に用いるメモリと別体にキャッシュメモリを含む。
不揮発性メモリは、ストレージ装置10の電源遮断時においても記憶内容を保持する。不揮発性メモリは、たとえば、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリなどの半導体記憶装置や、HDDなどである。また、不揮発性メモリは、CM20の補助記憶装置として使用される。不揮発性メモリには、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
バスに接続される周辺機器としては、入出力インタフェース、および通信インタフェースがある。入出力インタフェースは、入出力装置と接続して入出力をおこなう。入出力インタフェースは、HDDなどの記憶装置から送られてくる信号やデータをプロセッサ21やメモリ22に送信する。また、入出力インタフェースは、たとえば、プロセッサ21から受信した信号を、他の制御部や、CM20と接続する出力装置に出力する。通信インタフェースは、ストレージ装置10内の他のCM(CM30)との間でデータの送受信をおこなう。
ディスクアダプタ23,24は、HDD51,52,53,54とのインタフェース制御(アクセス制御)をおこなう。
以上のようなハードウェア構成によって、ストレージ装置10、あるいはCM20,30の処理機能を実現することができる。なお、第1の実施形態に示したストレージ制御装置1も、ストレージ装置10、あるいはCM20,30と同様のハードウェアにより実現することができる。
次に、CMの処理機能の構成について図4を用いて説明する。図4は、第2の実施形態のCMの処理機能の構成の一例を示すブロック図である。
CM20は、記憶部100と、制御部110としての機能を備える。制御部110は、ゼロデータビットマップ生成部111と、ゼロデータ領域確認部112と、ゼロデータコピー削減部113としての機能を含む。CM20は、ストレージ制御装置の一形態である。制御部110は、たとえば、CM20のプロセッサ21が所定のプログラムを実行することで実現される。
記憶部100は、更新ビットマップ200とゼロデータビットマップ210を記憶する。更新ビットマップ200とゼロデータビットマップ210は、スナップショット作成時にスナップショットのメタデータとして生成される。ゼロデータビットマップ210は、確認情報4に相当する。更新ビットマップ200は、スナップショットにおいて一般にビットマップとして称されるが、第2の実施形態ではゼロデータビットマップ210と区別するためにこのように称する。記憶部100は、たとえば、CM20のメモリ22の所定の記憶領域によって実現される。
更新ビットマップ200は、スナップショットにおけるコピー元記憶領域のブロック単位のデータ更新の有無を、対応する1ビットで表わす。更新ビットマップ200は、各ビットの「1」が対応する記憶領域でデータ更新がないことを示し、各ビットの「0」が対応する記憶領域でデータ更新があることを示す。スナップショット作成時に生成される更新ビットマップ200は、すべてのビットが「1」である。更新ビットマップ200は、第1の実施形態の更新情報3に相当する。
ゼロデータビットマップ210は、スナップショットにおけるコピー元記憶領域のブロック単位の初期データの確認の有無を、対応する1ビットで表わす。ゼロデータビットマップ210は、各ビットの「1」が対応する記憶領域でゼロデータ(初期データ)の確認がなされていないことを示し、各ビットの「0」が対応する記憶領域でゼロデータの確認がなされていることを示す。スナップショット作成時に生成されるゼロデータビットマップ210は、すべてのビットが「1」である。ゼロデータビットマップ210は、第1の実施形態の確認情報4に相当する。
更新ビットマップ200およびゼロデータビットマップ210の1ビットに対応するブロックは、あらかじめ定めるサイズの記憶領域であり、たとえば100LBA(Logical Block Addressing)である。
ゼロデータビットマップ生成部111は、スナップショット作成時にゼロデータビットマップ210を生成する。ゼロデータビットマップ生成部111は、初期値として各ビット「1」で更新ビットマップ200と同じ容量のゼロデータビットマップ210を生成する。ゼロデータビットマップ生成部111は、プロセッサ21が後述するゼロデータビットマップマップ生成処理を実行することで実現される。
ゼロデータ領域確認部112は、スナップショット作成後、ゼロデータビットマップ210のビット「1」に対応する領域のデータがゼロデータであるか否かを確認する。ゼロデータ領域確認部112は、ゼロデータビットマップ210のビット「1」に対応する領域のデータがゼロデータである場合に、ゼロデータビットマップ210のビット「1」をビット「0」に更新する。ゼロデータ領域確認部112は、ゼロデータビットマップ210のビット「1」に対応する領域のデータがゼロデータでない場合に、ゼロデータビットマップ210のビット「1」をそのままとする。ゼロデータ領域確認部112は、プロセッサ21が後述するゼロデータ領域確認処理を実行することで実現される。
ゼロデータコピー削減部113は、コピー元記憶領域のデータが更新される場合、コピー元記憶領域からデータを読み出してコピー先記憶領域にデータを転送する必要の是非を判定する。ゼロデータコピー削減部113は、コピー元記憶領域のデータがゼロデータである場合に転送不要と判定し、コピー先記憶領域へのデータ転送をおこなわない。これにより、ゼロデータコピー削減部113は、コピー元記憶領域からコピー先記憶領域へのゼロデータコピーを削減する。ゼロデータコピー削減部113は、ゼロデータビットマップ210を参照してデータ転送の是非を判定する。ゼロデータコピー削減部113は、プロセッサ21が後述するゼロデータコピー削減処理を実行することで実現される。
次に、第2の実施形態のゼロデータビットマップ生成処理について図5を用いて説明する。図5は、第2の実施形態のゼロデータビットマップ生成処理のフローチャートを示す図である。
ゼロデータビットマップ生成処理は、スナップショット作成を契機に、ゼロデータビットマップ生成部111が実行する処理である。
[ステップS11]ゼロデータビットマップ生成部111は、更新ビットマップ200と同じ容量のゼロデータビットマップ210を獲得(生成)する。
[ステップS12]ゼロデータビットマップ生成部111は、ゼロデータビットマップ210のすべてのビットに「1」をセットすることにより、ゼロデータビットマップ210の初期化をおこなう。
[ステップS13]ゼロデータビットマップ生成部111は、コピー元記憶領域が仮想ボリュームであるか否かを判定する。ゼロデータビットマップ生成部111は、コピー元記憶領域が仮想ボリュームである場合にステップS14にすすみ、コピー元記憶領域が仮想ボリュームでない場合にゼロデータビットマップ生成処理を終了する。
[ステップS14]ゼロデータビットマップ生成部111は、ゼロデータビットマップ210のうちの1ビットに対応する領域を確認対象領域として選択する。
[ステップS15]ゼロデータビットマップ生成部111は、確認対象領域への物理割り当てが未割り当てであるか否かを判定する。ゼロデータビットマップ生成部111は、確認対象領域への物理割り当てが未割り当てである場合にステップS16にすすみ、確認対象領域への物理割り当てが未割り当てでない場合にステップS17にすすむ。
[ステップS16]ゼロデータビットマップ生成部111は、確認対象領域に対応するゼロデータビットマップ210の1ビットを「0」に更新(ビットクリア)する。このようなビットクリアは、仮想ボリュームの物理割り当てが未割り当てのコピー元記憶領域でゼロデータが保証がされていることによる。
[ステップS17]ゼロデータビットマップ生成部111は、すべての確認対象領域における物理割り当ての有無の確認が終了したか否かを判定する。すなわち、ゼロデータビットマップ生成部111は、ゼロデータビットマップ210のうちのすべてのビットに対応する領域を確認対象領域として選択したか否かを判定する。ゼロデータビットマップ生成部111は、未だ確認対象領域として選択していない領域がある場合にステップS14にすすみ、すべての領域を確認対象領域として選択している場合にゼロデータビットマップ生成処理を終了する。
ここで、ゼロデータビットマップ生成部111が生成するゼロデータビットマップ210について図6と図7を用いて説明する。図6は、第2の実施形態の通常ボリュームのゼロデータビットマップイメージの一例を示す図である。
ゼロデータビットマップイメージ220は、通常ボリュームをコピー元記憶領域とするスナップショット作成時に生成された更新ビットマップ200とゼロデータビットマップ210を示す。ゼロデータビットマップイメージ220に示す更新ビットマップ200とゼロデータビットマップ210は、コピー元記憶領域のサイズに応じたビット数であり、たとえば8ビットである。ゼロデータビットマップイメージ220に示す更新ビットマップ200は、コピー元記憶領域で未だデータ更新がない状態であることから、すべてのビットが「1」である。ゼロデータビットマップイメージ220に示すゼロデータビットマップ210は、コピー元記憶領域が通常ボリュームであり、コピー元記憶領域のデータがゼロデータであるか否かが未確定であることから、すべてのビットが「1」である。
図7は、第2の実施形態の仮想ボリュームの物理割り当て未割り当ての領域がある場合のゼロデータビットマップイメージの一例を示す図である。
ゼロデータビットマップイメージ221は、仮想ボリュームをコピー元記憶領域とするスナップショット作成時に生成された更新ビットマップ200とゼロデータビットマップ210を示す。ゼロデータビットマップイメージ221に示す更新ビットマップ200とゼロデータビットマップ210は、コピー元記憶領域のサイズに応じたビット数であり、たとえば8ビットである。ゼロデータビットマップイメージ221に示す更新ビットマップ200は、コピー元記憶領域で未だデータ更新がない状態であることから、すべてのビットが「1」である。ゼロデータビットマップイメージ221に示すゼロデータビットマップ210は、コピー元記憶領域が仮想ボリュームであり、オフセット「1」,「3」,「4」,「7」に対応する領域への物理割り当てが未割り当てである。したがって、ゼロデータビットマップイメージ221に示すゼロデータビットマップ210は、オフセット「1」,「3」,「4」,「7」に対応するビットが「0」である。
なお、ゼロデータビットマップ生成処理のステップS13からS17において、ゼロデータビットマップ210のビットクリアをおこなったが、当該処理はコピー元記憶領域へのデータ更新が行われた場合に実行されるようにしてもよい。
次に、第2の実施形態のゼロデータ領域確認処理について図8を用いて説明する。図8は、第2の実施形態のゼロデータ領域確認処理のフローチャートを示す図である。
ゼロデータビットマップ生成処理は、スナップショット作成後に、コピー元記憶領域のデータ更新をおこなう更新処理と非同期に、ゼロデータ領域確認部112が実行する処理である。
[ステップS21]ゼロデータ領域確認部112は、ゼロデータビットマップ210のうちの1ビットに対応する領域を確認対象領域として選択する。
[ステップS22]ゼロデータ領域確認部112は、確認対象領域に対応するビットがビットセット(ビット「1」)であるか否かを判定する。ゼロデータ領域確認部112は、確認対象領域に対応するビットがビットセットである場合にステップS23にすすみ、確認対象領域に対応するビットがビットセットでない場合にステップS26にすすむ。
[ステップS23]ゼロデータ領域確認部112は、確認対象領域(たとえば、HDD51などの物理記憶領域)からデータを読み出す。
[ステップS24]ゼロデータ領域確認部112は、読み出したデータがゼロデータであるか否かを判定する。ゼロデータ領域確認部112は、読み出したデータがゼロデータである場合にステップS25にすすみ、読み出したデータがゼロデータでない場合にステップS26にすすむ。
[ステップS25]ゼロデータ領域確認部112は、確認対象領域に対応するゼロデータビットマップ210の1ビットを「0」に更新(ビットクリア)する。このようなビットクリアは、読み出したデータからコピー元記憶領域がゼロデータであることを確認したことによる。
[ステップS26]ゼロデータ領域確認部112は、すべての確認対象領域におけるゼロデータの確認が終了したか否かを判定する。すなわち、ゼロデータ領域確認部112は、ゼロデータビットマップ210のうちのすべてのビットに対応する領域を確認対象領域として選択したか否かを判定する。ゼロデータ領域確認部112は、未だ確認対象領域として選択していない領域がある場合にステップS21にすすみ、すべての領域を確認対象領域として選択している場合にゼロデータ領域確認処理を終了する。
なお、ゼロデータ領域確認部112は、ゼロデータビットマップ生成処理を更新処理と非同期に実行するとしたが、たとえば、スループットへの影響が低減するタイミングを選択して実行してもよい。また、ゼロデータ領域確認部112は、すべての確認対象領域について一括してゼロデータ確認をおこなうものであってもよいし、所定サイズあるいは所定時間で処理できるサイズごとに分割してゼロデータ確認をおこなうものであってもよい。
ここで、ゼロデータ領域確認部112がゼロデータ確認により更新するゼロデータビットマップ210について図9と図10を用いて説明する。図9は、第2の実施形態の読み出したデータがゼロデータでない場合のゼロデータビットマップイメージの一例を示す図である。図10は、第2の実施形態の読み出したデータがゼロデータである場合のゼロデータビットマップイメージの一例を示す図である。
ゼロデータビットマップイメージ230,231は、ゼロデータビットマップイメージ220に示した更新ビットマップ200とゼロデータビットマップ210を初期状態として、ゼロデータ領域確認後の様子を示す。
ゼロデータビットマップイメージ230は、確認対象領域から読み出したデータがゼロデータでない場合の更新ビットマップ200とゼロデータビットマップ210を示す。ゼロデータビットマップイメージ230に示すゼロデータビットマップ210によれば、制御部110は、すべてのコピー元記憶領域について、データ更新時にコピー先記憶領域へのデータ転送を伴う更新ビットマップ200の更新をおこなう。
ゼロデータビットマップイメージ231は、確認対象領域から読み出したデータがゼロデータである場合の更新ビットマップ200とゼロデータビットマップ210を示す。ゼロデータビットマップイメージ231に示すゼロデータビットマップ210は、オフセット「2」に対応する領域から読み出したデータがゼロデータであったことを示す。ゼロデータビットマップイメージ231に示すゼロデータビットマップ210によれば、制御部110は、オフセット「2」に対応するコピー元記憶領域について、データ更新時にコピー先記憶領域へのデータ転送を伴わない更新ビットマップ200の更新をおこなう。また、制御部110は、オフセット「2」以外のオフセットに対応するコピー元記憶領域について、データ更新時にコピー先記憶領域へのデータ転送を伴う更新ビットマップ200の更新をおこなう。
次に、第2の実施形態のゼロデータコピー削減処理について図11を用いて説明する。図11は、第2の実施形態のゼロデータコピー削減処理のフローチャートを示す図である。
ゼロデータコピー削減処理は、コピー元記憶領域についてデータ更新があったときに、ゼロデータコピー削減部113が実行する処理である。
[ステップS31]ゼロデータコピー削減部113は、更新ビットマップ200におけるデータ更新があった領域に対応するビットが「1」(ビットセット)であるか否かを判定する。ゼロデータコピー削減部113は、対応するビットが「1」である場合にステップS32にすすみ、対応するビットが「0」である場合にゼロデータコピー削減処理を終了する。
[ステップS32]ゼロデータコピー削減部113は、ゼロデータビットマップ210におけるデータ更新があった領域に対応するビットが「1」(ビットセット)であるか否かを判定する。ゼロデータコピー削減部113は、対応するビットが「1」である場合にステップS33にすすみ、対応するビットが「0」である場合にステップS37にすすむ。
[ステップS33]ゼロデータコピー削減部113は、データ更新があった領域からデータを読み出す。
[ステップS34]ゼロデータコピー削減部113は、読み出したデータがゼロデータであるか否かを判定する。ゼロデータコピー削減部113は、読み出したデータがゼロデータである場合にステップS35にすすみ、読み出したデータがゼロデータでない場合にステップS36にすすむ。
[ステップS35]ゼロデータコピー削減部113は、ゼロデータビットマップ210における対応するビットを「0」に更新(ビットクリア)する。
[ステップS36]ゼロデータコピー削減部113は、差分コピー処理を動作させ、差分コピー処理の終了確認をおこなう。差分コピー処理は、コピー元記憶領域からコピー先記憶領域への更新前のデータの転送を含む処理である。
[ステップS37]ゼロデータコピー削減部113は、更新ビットマップ200におけるデータ更新があった領域に対応するビットを「0」に更新(ビットクリア)してゼロデータコピー削減処理を終了する。
このように、ゼロデータコピー削減部113は、ゼロデータビットマップ210を参照してデータ更新があった領域がゼロデータである場合(ステップS32で[NO])に、データ転送を伴うことなく更新ビットマップ200の更新をおこなう。このような処理は、第1の実施形態に示した第2更新処理に相当する。この場合、ゼロデータコピー削減部113は、コピー元記憶領域からのデータの読み出しをおこなうことも要しない。
また、ゼロデータコピー削減部113は、ゼロデータビットマップ210を参照してデータ更新があった領域がゼロデータであるか否かを確認できない場合(ステップS32で[YES])に、コピー元記憶領域からのデータの読み出しをおこなう(ステップS33)。ここで、ゼロデータコピー削減部113は、読み出したデータがゼロデータでない場合(ステップS34で[NO])に、データ転送を伴う更新ビットマップ200の更新をおこなう。このような処理は、第1の実施形態に示した第1更新処理に相当する。
また、ゼロデータコピー削減部113は、読み出したデータがゼロデータである場合(ステップS34で[YES])に、データ転送を伴わない更新ビットマップ200の更新をおこなう。このような処理は、第1の実施形態に示した第2更新処理の一態様に相当する。この場合、ゼロデータコピー削減部113は、コピー元記憶領域からのデータの読み出しをおこなうが、コピー先記憶領域へのデータ転送を要しない。
このように、ゼロデータコピー削減部113は、ゼロデータビットマップ210にもとづいて第1更新処理または第2更新処理の実行を選択する。ゼロデータコピー削減部113は、第2更新処理の実行を選択した場合にデータ転送を要しないので、スナップショットにおけるコピー元記憶領域のデータ更新時の処理負担を軽減する。さらにゼロデータコピー削減部113は、ゼロデータビットマップ210によりゼロデータが確認できる場合にコピー元記憶領域からのデータの読み出しを不要とすることから、スナップショットにおけるコピー元記憶領域のデータ更新時の処理負担を一層軽減する。
また、ゼロデータコピー削減部113は、コピー先記憶領域へのデータ転送を要しないことからコピー先記憶領域への物理割り当てをおこなうことも要しない。よって、ストレージ装置10は、スナップショットにおいてディスク容量を効率的に利用できる。
ここで、ゼロデータビットマップ210によってあらかじめゼロデータが確認されていない場合のゼロデータビットマップ210の更新について図12と図13を用いて説明する。図12は、第2の実施形態の差分コピー時に読み出したデータがゼロデータでない場合のゼロデータビットマップイメージの一例を示す図である。図13は、第2の実施形態の差分コピー時に読み出したデータがゼロデータである場合のゼロデータビットマップイメージの一例を示す図である。
ゼロデータビットマップイメージ240,241は、ゼロデータビットマップイメージ220に示した更新ビットマップ200とゼロデータビットマップ210を初期状態として、差分コピー時のゼロデータ領域確認後の様子を示す。
ゼロデータビットマップイメージ240は、差分コピー時に対象領域(たとえば、オフセット「2」の領域)から読み出したデータがゼロデータでない場合の更新ビットマップ200とゼロデータビットマップ210を示す。ゼロデータビットマップイメージ240に示すゼロデータビットマップ210は、読み出されたデータがゼロデータでないことから、オフセット「2」に対応するビットが更新されない。したがって、オフセット「2」に対応する更新ビットマップ200の更新は、データ転送を伴う。ゼロデータビットマップイメージ240に示す更新ビットマップ200のオフセット「2」に対応するビットは、差分コピーの終了確認後に、「0」に更新される。
一方、ゼロデータビットマップイメージ241は、差分コピー時に対象領域(たとえば、オフセット「2」の領域)から読み出したデータがゼロデータである場合の更新ビットマップ200とゼロデータビットマップ210を示す。ゼロデータビットマップイメージ241に示すゼロデータビットマップ210は、読み出されたデータがゼロデータであることから、オフセット「2」に対応するビットが「0」に更新される。したがって、オフセット「2」に対応する更新ビットマップ200の更新は、データ転送を伴わない。ゼロデータビットマップイメージ241に示す更新ビットマップ200のオフセット「2」に対応するビットは、差分コピーがおこなわれることなく「0」に更新される。
次に、差分コピー時に対象領域がすでにゼロデータ確認されている場合について説明する。たとえば、オフセット「2」の領域でゼロデータ確認されている場合、更新ビットマップ200とゼロデータビットマップ210の初期状態は、ゼロデータビットマップイメージ231(図10)のようになる。ゼロデータビットマップイメージ231に示すゼロデータビットマップ210は、オフセット「2」に対応するビットが「0」であることから、すでに対象領域のデータがゼロデータであることを確認済みであることを示す。したがって、ゼロデータビットマップイメージ231に示すゼロデータビットマップ210は、対象領域からのデータの読み出しを要しない。また、オフセット「2」に対応する更新ビットマップ200の更新は、データ転送を伴わない。ゼロデータビットマップイメージ231に示す更新ビットマップ200のオフセット「2」に対応するビットは、対象領域からのデータの読み出しも、差分コピーもおこなわれることなく「0」に更新される。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置1、ストレージ装置10、CM20,30が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disk)、DVD−RAM、CD(Compact Disc)−ROM、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1 ストレージ制御装置
1a 記憶部
1b 制御部
2a 第1の記憶領域
2b 第2の記憶領域
3,3a,3b 更新情報
4,4a,4b 確認情報
5 ストレージシステム
6 サーバ
7 ネットワーク
10 ストレージ装置
11,12 チャネルアダプタ
13,14 リモートアダプタ
20,30 コントローラモジュール(CM)
21,31 プロセッサ
22,32 メモリ
23,24,33,34 ディスクアダプタ
50 ドライブエンクロージャ(DE)
51,52,53,54 HDD
100 記憶部
110 制御部
111 ゼロデータビットマップ生成部
112 ゼロデータ領域確認部
113 ゼロデータコピー削減部
200 更新ビットマップ
210 ゼロデータビットマップ
220,221,230,231,240,241 ゼロデータビットマップイメージ

Claims (7)

  1. 第1の記憶領域をコピー元として第2の記憶領域をコピー先とするスナップショットにおける前記第1の記憶領域のデータ更新の有無を示す更新情報と、前記第1の記憶領域が記憶する初期データの確認の有無を示す確認情報とを記憶する記憶部と、
    前記第1の記憶領域のデータを更新することにより前記更新情報をデータ更新無しからデータ更新有りに更新する場合、前記第1の記憶領域から読み出したデータを前記第2の記憶領域に書き込むデータ転送を伴う前記更新情報の更新をおこなう第1更新処理、または前記データ転送を伴わない前記更新情報の更新をおこなう第2更新処理を、前記確認情報にもとづいて選択して実行する制御部と、
    を備えるストレージ制御装置。
  2. 前記制御部は、前記確認情報が前記初期データの確認有りを示す場合、前記第2更新処理において前記第1の記憶領域からデータを読み出すことなしに前記更新情報の更新をおこなう、
    請求項1記載のストレージ制御装置。
  3. 前記制御部は、前記スナップショットの作成時に、前記初期データの確認無しを示す前記確認情報を生成する、
    請求項1記載のストレージ制御装置。
  4. 前記制御部は、前記第1の記憶領域が仮想ボリュームであって物理記憶領域が未割り当ての場合に、前記初期データの確認有りを示す前記確認情報を生成する、
    請求項1記載のストレージ制御装置。
  5. 前記確認情報は、前記第1の記憶領域について所定単位のブロックごとの前記初期データの確認の有無を示すものであって、
    前記制御部は、前記ブロックごとにデータを読み出して、読み出した前記データが前記初期データである場合に、前記ブロックに対応する前記確認情報を前記初期データの確認無しから前記初期データの確認有りに更新する、
    請求項1記載のストレージ制御装置。
  6. コンピュータに、
    第1の記憶領域をコピー元として第2の記憶領域をコピー先とするスナップショットにおける前記第1の記憶領域のデータ更新の有無を示す更新情報と、前記第1の記憶領域が記憶する初期データの確認の有無を示す確認情報とを生成し、
    前記第1の記憶領域のデータを更新することにより前記更新情報をデータ更新無しからデータ更新有りに更新する場合、前記第1の記憶領域から読み出したデータを前記第2の記憶領域に書き込むデータ転送を伴う前記更新情報の更新をおこなう第1更新処理、または前記データ転送を伴わない前記更新情報の更新をおこなう第2更新処理を、前記確認情報にもとづいて選択して実行する、
    処理を実行させるストレージ制御プログラム。
  7. コンピュータが、
    第1の記憶領域をコピー元として第2の記憶領域をコピー先とするスナップショットにおける前記第1の記憶領域のデータ更新の有無を示す更新情報と、前記第1の記憶領域が記憶する初期データの確認の有無を示す確認情報とを生成し、
    前記第1の記憶領域のデータを更新することにより前記更新情報をデータ更新無しからデータ更新有りに更新する場合、前記第1の記憶領域から読み出したデータを前記第2の記憶領域に書き込むデータ転送を伴う前記更新情報の更新をおこなう第1更新処理、または前記データ転送を伴わない前記更新情報の更新をおこなう第2更新処理を、前記確認情報にもとづいて選択して実行する、
    処理を実行するストレージ制御方法。
JP2015027531A 2015-02-16 2015-02-16 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 Pending JP2016151803A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015027531A JP2016151803A (ja) 2015-02-16 2015-02-16 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015027531A JP2016151803A (ja) 2015-02-16 2015-02-16 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Publications (1)

Publication Number Publication Date
JP2016151803A true JP2016151803A (ja) 2016-08-22

Family

ID=56696529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015027531A Pending JP2016151803A (ja) 2015-02-16 2015-02-16 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Country Status (1)

Country Link
JP (1) JP2016151803A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018173701A (ja) * 2017-03-31 2018-11-08 日本電気株式会社 データ管理システム、ストレージ装置、バックアップ装置、方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018173701A (ja) * 2017-03-31 2018-11-08 日本電気株式会社 データ管理システム、ストレージ装置、バックアップ装置、方法およびプログラム

Similar Documents

Publication Publication Date Title
JP6378226B2 (ja) メモリシステム
US9152351B2 (en) Storage device and method for backing up source volume
JP2018028715A (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP5565157B2 (ja) データ処理装置、データ処理方法、データ処理プログラムおよびストレージ装置
JP2016149051A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JPWO2008099786A1 (ja) メモリ障害復旧方法、情報処理装置およびプログラム
US20190042134A1 (en) Storage control apparatus and deduplication method
JP2017041076A (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
JP2016038648A (ja) ストレージ制御装置、コピー制御プログラム、およびコピー制御方法
JP6069962B2 (ja) 情報処理装置、領域解放制御プログラム、および領域解放制御方法
JP2015114784A (ja) バックアップ制御装置及びバックアップ制御方法、ディスクアレイ装置、並びにコンピュータ・プログラム
JP6225731B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
JP2016151803A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
EP3136245B1 (en) Computer
US20130031320A1 (en) Control device, control method and storage apparatus
JP5963324B2 (ja) 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
JP6613603B2 (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム
WO2014069007A1 (ja) 記憶装置およびデータバックアップ方法
JP6805501B2 (ja) ストレージ装置
JP2006260158A (ja) 情報処理装置、情報処理方法、プログラム
CN106569908B (zh) 资料备份系统
JP6318769B2 (ja) ストレージ制御装置、制御プログラム、および制御方法
US20160357479A1 (en) Storage control apparatus
JP7225852B2 (ja) ストレージ制御装置、ストレージシステムおよびバックアップ制御プログラム