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

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

Info

Publication number
JP6561765B2
JP6561765B2 JP2015208728A JP2015208728A JP6561765B2 JP 6561765 B2 JP6561765 B2 JP 6561765B2 JP 2015208728 A JP2015208728 A JP 2015208728A JP 2015208728 A JP2015208728 A JP 2015208728A JP 6561765 B2 JP6561765 B2 JP 6561765B2
Authority
JP
Japan
Prior art keywords
snapshot
deduplication
unit
data
area
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.)
Expired - Fee Related
Application number
JP2015208728A
Other languages
English (en)
Other versions
JP2017083933A (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.)
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 JP2015208728A priority Critical patent/JP6561765B2/ja
Priority to US15/281,581 priority patent/US20170116087A1/en
Publication of JP2017083933A publication Critical patent/JP2017083933A/ja
Application granted granted Critical
Publication of JP6561765B2 publication Critical patent/JP6561765B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本件は、ストレージ制御装置およびストレージ制御プログラムに関する。
業務で取り扱うデータ量の増大や仮想環境の普及に伴って、ストレージ(記憶装置)の使用量は著しく増大している。このため、ストレージシステムでは、データ量を削減すべく、ストレージ制御装置によるデータ重複排除機能(deduplication)が用いられる場合がある。データ重複排除機能を用いる場合、同一内容をもつ複数のデータに対して一つのデータ物理領域のみが割り当てられる。ここで、ストレージは、例えばHDD(Hard Disk Drive),SSD(Solid State Drive)等のドライブである。
一方、ストレージシステムでは、ストレージ上におけるコピー元ボリュームの、ある一時点でのイメージを、スナップショットとして採取し作成するスナップショット作成機能が用いられる場合がある。スナップショットの作成時には、管理領域(スナップショット領域)が確保され、コピー元ボリュームの実データのコピーは行なわれない。サーバからコピー元ボリュームに対してデータ更新が行なわれる際、コピー元ボリュームにおける更新前データが未コピーであれば、当該更新前データが管理領域にコピーされる。
特開2013−47933号公報 特開平11−134117号公報
上述したデータ重複排除処理とスナップショット作成処理とでは、使用される状況が異なっているが、同一内容をもつ複数のデータに対して異なる物理領域を割り当てないという考え方は同じである。しかしながら、現状において、上述したデータ重複排除処理とスナップショット作成処理とは、連携しておらず、例えば図17に示すようにそれぞれ独立に制御される。なお、図17は、既存のストレージシステムにおいてデータ重複排除処理とスナップショット作成処理との両方を実行する際の処理手順を説明するフローチャートである。
図17に示すように、ストレージシステムにおいて、サーバからコピー元ボリュームに対するI/O(Input/Output;入出力)要求を受信すると(ステップS1)、まず、スナップショットの判定処理(ステップS2)が行なわれる。受信したI/O要求がコピー元ボリュームに対するデータ更新要求(書込み要求)である場合、スナップショットの判定処理では、コピー元ボリュームにおける更新前データがコピー済みであるか否かのチェックが行なわれる。当該チェックの結果、コピー元ボリュームにおける更新前データが未コピーであれば、当該更新前データを管理領域(スナップショット領域)に退避させる処理が行なわれる。このような処理が、スナップショット作成処理におけるオーバヘッドとなる。
この後に実行されるデータ重複排除処理(ステップS3)では、受信したI/O要求がコピー元ボリュームに対するデータ更新要求である場合、更新後データが、既存のデータと重複するか否かの重複チェックが行なわれる。そして、重複チェックの結果に応じたデータ重複排除処理の実行後、I/O要求に応じたI/O処理(ステップS4)が実行される。なお、重複する場合、I/O要求の対象データの論理領域は、前記既存のデータの物理領域に対応付けられる。一方、重複しない場合、I/O要求の対象データの論理領域は、新たに割り当てられる物理領域に対応付けられる。上述のような重複チェック処理が、データ重複排除処理におけるオーバヘッドとなる。
図17を参照しながら上述したように、単純にスナップショット作成機能とデータ重複排除機能とを組み合わせると、上述した二つのオーバヘッドが単純に足し合わされ、ストレージの性能が低下する。
一つの側面で、本件明細書に開示の発明は、記憶装置の性能低下を招くことなく重複排除機能とスナップショット作成機能とを組み合わせ、機能の最適化を図ることを目的とする。
本件のストレージ制御装置は、記憶装置を制御するものであって、重複排除部およびスナップショット作成部を有する。前記重複排除部は、前記記憶装置における重複排除ボリュームに対する書込対象単位データが既存のデータと重複する場合、前記重複排除ボリュームについて単位データ毎に各単位データの論理領域に割り当てられる物理領域を示すマップ情報において、前記書込対象単位データの論理領域を前記既存のデータの物理領域に対応付ける重複排除処理を行なう。前記スナップショット作成部は、前記重複排除ボリュームに対するスナップショット作成要求を受けた場合、前記重複排除ボリュームについての前記マップ情報をスナップショット領域にコピーして、前記マップ情報のコピーを、前記重複排除ボリュームのスナップショットのマップ情報とすることで前記重複排除ボリュームのスナップショット作成を完了する。
記憶装置の性能低下を招くことなく重複排除機能とスナップショット作成機能との組合せ、機能の最適化を実現することができる。
本発明の一実施形態としてのストレージ制御装置を含むストレージ装置のハードウェア構成の一例を示すブロック図である。 本発明の一実施形態としてのストレージ制御装置の機能構成の一例を示すブロック図である。 (A)および(B)は、それぞれ、異なる二つの重複排除ボリューム(論理ボリューム)についてのブロックマップの例を示す図である。 本実施形態のスナップショット作成動作の概要を説明する図である。 (A)および(B)は、それぞれ、本実施形態のスナップショット作成動作の概要を説明すべく、重複排除ボリュームについてのブロックマップ、および、当該重複排除ボリュームのスナップショットについてのブロックマップの例を示す図である。 (A)および(B)は、それぞれ、本実施形態のスナップショット作成動作の概要を説明すべく、重複排除ボリュームについてのブロックマップ、および、当該重複排除ボリュームのスナップショットについてのブロックマップの例を示す図である。 (A)および(B)は、それぞれ、本実施形態のスナップショット作成動作の概要を説明すべく、重複排除ボリュームについてのブロックマップ、および、当該重複排除ボリュームのスナップショットについてのブロックマップの例を示す図である。 本実施形態のスナップショット作成動作の概要を説明すべく、図7(B)に示すブロックマップに対応するビットマップの例を示す図である。 本実施形態の復元動作の概要を説明する図である。 (A)および(B)は、それぞれ、本実施形態の復元動作の概要を説明すべく、重複排除ボリュームについてのブロックマップ、および、当該重複排除ボリュームのスナップショットについてのブロックマップの例を示す図である。 (A)および(B)は、それぞれ、本実施形態の復元動作の概要を説明すべく、重複排除ボリュームについてのブロックマップ、および、当該重複排除ボリュームのスナップショットについてのブロックマップの例を示す図である。 本実施形態におけるストレージ制御動作全体の流れを説明するフローチャートである。 本実施形態のスナップショット作成要求受信時の処理の手順を説明するフローチャートである。 既存のストレージシステムにおける書込み要求受信時の処理の手順を説明するフローチャートである。 本実施形態の書込み要求受信時の処理の手順を説明するフローチャートである。 本実施形態の読出し要求受信時の処理の手順を説明するフローチャートである。 既存のストレージシステムにおいてデータ重複排除処理とスナップショット作成処理との両方を実行する際の処理手順を説明するフローチャートである。
以下に、図面を参照し、本願の開示するストレージ制御装置およびストレージ制御プログラムの実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔1〕本実施形態のストレージ装置のハードウェア構成
まず、図1を参照しながら、本実施形態のストレージ制御装置100を含むストレージ装置(ストレージシステム)1について説明する。なお、図1は、本実施形態のストレージ制御装置100を含むストレージ装置1のハードウェア構成の一例を示すブロック図である。
本ストレージ装置1は、ドライブエンクロージャ(DE:Drive Enclosure)30に格納された記憶装置31を仮想化して、仮想ストレージ環境を形成する。そして、ストレージ装置1は、仮想ボリュームを、上位装置であるホスト装置(サーバ)2に提供する。
本ストレージ装置1は、1以上(図1に示す例では1つ)のホスト装置2に対して通信可能に接続されている。ホスト装置2とストレージ装置1とは、後述するCA(Communication Adapter)101,102により接続されている。
ホスト装置2は、例えば、サーバ機能をそなえた情報処理装置であり、本ストレージ装置1との間において、NAS(Network Attached Storage)やSAN(Storage Area Network)のコマンドを送受信する。ホスト装置2は、例えば、ストレージ装置1に対してNASにおけるリード/ライト等のストレージアクセスコマンドを送信することにより、ストレージ装置1が提供するボリュームにデータの書込または読出を行なう。
そして、本ストレージ装置1は、ホスト装置2からボリュームに対して行なわれる入出力要求(例えば、書込み要求や読出し要求)に応じて、このボリュームに対応する記憶装置31に対して、データの読出(リード)や書込(ライト)等の処理を行なう。なお、ホスト装置2からの入出力要求のことをI/O要求という場合がある。
なお、図1に示す例においては1つのホスト装置2が図示されているが、これに限定されるものではなく、ストレージ装置1に2つ以上のホスト装置2を接続してもよい。
また、ストレージ装置1には、管理端末3が通信可能に接続されている。管理端末3は、キーボードやマウス等の入力装置や、表示装置を備える情報処理装置であって、システム管理者等のユーザが各種情報の入力操作を行なう。例えば、ユーザは、管理端末3を介して、各種設定等に係る情報を入力する。入力された情報は、ホスト装置2やストレージ装置1に送信される。
本ストレージ装置1は、図1に示すように、複数(本実施形態では2つ)のCM(Controller Module)100a,100b及び1つ以上(図1に示す例では3つ)のドライブエンクロージャ30をそなえる。
ドライブエンクロージャ30は、1以上(図1に示す例では4つ)の記憶装置(物理ディスク)31を搭載可能であり、これらの記憶装置31の記憶領域(実ボリューム,実ストレージ)を、本ストレージ装置1に対して提供する。
例えば、ドライブエンクロージャ30は、複数段のスロット(図示省略)をそなえ、これらのスロットに、記憶装置31を挿入することにより、実ボリューム容量を随時変更することができる。また、複数の記憶装置31を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成することができる。
記憶装置31は、後述するメモリ106と比較すると容量の大きい、HDD,SSD等の記憶装置(ストレージ)であって、種々のデータを格納するものである。なお、以下では、記憶装置のことをドライブもしくはディスクという場合がある。
各ドライブエンクロージャ30は、CM100aのデバイスアダプタ(Device Adapter:DA)103,103とCM100bのDA103,103とそれぞれ接続されている。そして、各ドライブエンクロージャ30には、CM100a,100bのいずれからもアクセスして、データの書込や読出を行なうことができる。すなわち、ドライブエンクロージャ30の各記憶装置31に対して、CM100a,100bのそれぞれを接続することにより、記憶装置31へのアクセス経路が冗長化されている。
コントローラエンクロージャ40は、1以上(図1に示す例では2つ)のCM100a,100bを備える。
CM100a,100bは、ストレージ装置1内の動作を制御するコントローラ(ストレージ制御装置)であり、ホスト装置2から送信されるIOコマンドに従って、ドライブエンクロージャ30の記憶装置31へのデータアクセス制御等、各種制御を行なう。又、CM100a,100bは互いに同様の構成を有している。以下、CMを示す符号としては、複数のCMのうち1つを特定する場合には符号100a,100bを用い、任意のCMを指すときには符号100を用いる。また、CM100aをCM#1と、CM100bをCM#2と、それぞれ表す場合がある。
CM100a,100bは二重化されており、通常は、CM100a(CM#1)がプライマリとして各種制御を行なう。しかし、プライマリCM100aの故障時には、セカンダリのCM100b(CM#2)がプライマリとしてCM100aの動作を引き継ぐ。
CM100a,100bは、CA101,102を介して、それぞれホスト装置2に接続される。そして、CM100a,100bは、ホスト装置2から送信されるリード/ライト等のI/O要求を受信し、DA103等を介して記憶装置31の制御を行なう。また、CM100a,100bは、PCIe(Peripheral Component Interconnect Express)等の図示しないインタフェースを介して相互に通信可能に接続される。
CM100は、図1に示すように、CA101,102と複数(図1に示す例では2つ)のDA103,103とをそなえるとともに、CPU(Central Processing Unit)105,メモリ106,フラッシュメモリ107およびIOC(Input Output Controller)108をそなえる。CA101,102,DA103,CPU105,メモリ106,フラッシュメモリ107,IOC108は、例えばPCIeインタフェース104を介して相互に通信可能に接続される。
CA101,102は、ホスト装置2や管理端末3等から送信されたデータを受信したり、CM100から出力するデータをホスト装置2や管理端末3等に送信する。すなわち、CA101,102は、ホスト装置2等の外部装置との間でのデータの入出力を制御する。
CA101は、NASを介してホスト装置2や管理端末3と通信可能に接続するネットワークアダプタであり、例えば、LAN(Local Area Network)インタフェース等である。各CM100は、CA101により図示しない通信回線を介してホスト装置2等とNASにより接続され、I/O要求の受信やデータの送受信等を行なう。図1に示す例においては、CM100a,100bのそれぞれに2つのCA101,101がそなえられている。
CA102は、SANを介してホスト装置2と通信可能に接続するネットワークアダプタであり、例えば、iSCSI(Internet Small Computer System Interface)インタフェースやFC(Fibre Channel)インタフェースである。各CM100は、CA102により図示しない通信回線を介してホスト装置2等とSANにより接続され、I/O要求の受信やデータの送受信等を行なう。図1に示す例においては、CM100a,100bのそれぞれに1つのCA102がそなえられている。
DA103は、ドライブエンクロージャ30や記憶装置31等と通信可能に接続するためのインタフェースである。DA103は、ドライブエンクロージャ30の記憶装置31が接続され、各CM100は、ホスト装置2から受信したI/O要求に基づき、記憶装置31に対するアクセス制御を行なう。
各CM100は、DA103を介して、記憶装置31に対するデータの書込や読出を行なう。また、図1に示す例においては、CM100a,100bのそれぞれに2つのDA103,103がそなえられている。そして、CM100a,100bのそれぞれにおいて、各DA103にドライブエンクロージャ30が接続されている。
これにより、ドライブエンクロージャ30の記憶装置31には、CM100a,100bのいずれからもデータの書込や読出を行なうことができる。
フラッシュメモリ107は、CPU105が実行するプログラムや種々のデータ等を格納する記憶装置である。
メモリ106は、種々のデータやプログラムを一時的に格納する記憶装置であり、後述するキャッシュ領域161やメモリ領域162をそなえる(図2参照)。キャッシュ領域161は、ホスト装置2から受信したデータや、ホスト装置2に対して送信するデータを一時的に格納する。アプリケーション用メモリ領域162は、CPU105がアプリケーションプログラムを実行する際に、データやプログラムを一時的に格納する。アプリケーションプログラムは、例えば、本実施形態のストレージ制御機能を実現すべくCPU105が実行するストレージ制御プログラム160(図2参照)であり、ストレージ制御プログラム160は、メモリ106あるいはフラッシュメモリ107に保存される。なお、メモリ106は、前述した記憶装置(ドライブ)31と比較するとアクセス速度は高速であるが容量の小さい、RAM(Random Access Memory)等である。
IOC108は、各CM100内におけるデータ転送を制御する制御装置であり、例えば、メモリ106に格納されたデータをCPU105を介することなく転送させるDMA(Direct Memory Access)転送を実現する。
CPU105は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ(マルチCPU)である。CPU105は、メモリ106,フラッシュメモリ107等に格納されたOS(Operating System)やプログラムを実行することにより、種々の機能を実現する。
〔2〕本実施形態のストレージ制御装置の機能構成
ついで、図2を参照しながら、本実施形態のストレージ制御装置(CM)100の機能構成について説明する。なお、図2は、CM100の機能構成の一例を示すブロック図である。
本実施形態のCM100において、CPU105は、ストレージ制御プログラム160を実行することで、図2に示すように、重複排除部151,スナップショット作成部152,復元部153およびI/O処理部(入出力処理部)154として機能する。
なお、ストレージ制御プログラム160は、コンピュータ読取可能な記録媒体であって可搬型の非一時的な記録媒体に記録された形態で提供される。当該記録媒体としては、磁気ディスク,光ディスク,光磁気ディスクなどが挙げられる。また、光ディスクとしては、CD(Compact Disk),DVD(Digital Versatile Disk),ブルーレイディスクなどが挙げられる。CDは、CD−ROM(Read Only Memory),CD−R(Recordable)/RW(ReWritable)などを含む。DVDは、DVD−RAM,DVD−ROM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD(High Definition) DVDなどを含む。
このとき、CPU105は、上述のごとき記録媒体からストレージ制御プログラム160を読み取って内部記憶装置(例えばメモリ106やフラッシュメモリ107)または外付けの記憶装置に格納して用いる。なお、CPU105は、ストレージ制御プログラム160を、ネットワーク(図示略)を介して受信し内部記憶装置または外付けの記憶装置に格納して用いてもよい。
本実施形態のCM100は、DE30における各記憶装置31を制御するもので、重複排除部(重複排除エンジン)151によるデータ重複排除機能と、スナップショット作成部(スナップショット作成エンジン)152によるスナップショット作成機能との両機能を有する。
重複排除部151は、各記憶装置31に保存される各単位データが重複するのを排除するデータ重複排除機能を実現する。重複排除部151は、ブロックマップ(マッピングテーブル)51(図3(A)等参照)を用いて、重複排除ボリュームに対する書込対象単位データについて重複排除処理を行なう。ブロックマップ51は、記憶装置31における重複排除ボリュームについて単位データ毎に各単位データの論理領域に割り当てられる物理領域を示すマップ情報に相当する。ブロックマップ51は、メモリ106のアプリケーション用メモリ領域162に保存されてもよいし、記憶装置31に保存されてもよい。なお、論理領域は、論理アドレス(LBA:Logical Block Address)によって示されてもよい。また、物理領域は、物理アドレス(各記憶装置31における実アドレス)によって示されてもよい。ブロックマップ51については、図3(A),図3(B),図5(A)〜図7(B),図10(A)〜図11(B)を参照しながら具体的に説明する。
図2に示す例では、DE30(記憶装置31)におけるストレージプール#1,#2,…が、それぞれ重複排除単位である。ストレージプール#1は、3つの論理ボリューム#1〜#3をそれぞれ重複排除ボリュームとして含むとともに、ストレージプール#2は、3つの論理ボリューム#4〜#6をそれぞれ重複排除ボリュームとして含む。
ストレージプール#1においては、重複排除ボリューム#1〜#3のそれぞれについてブロックマップ51が作成され、当該ブロックマップ51を用いて、重複排除ボリューム#1〜#3のデータと当該ストレージプール#1内のデータとの重複が排除される。同様に、ストレージプール#2においては、重複排除ボリューム#4〜#6のそれぞれについてブロックマップ51が作成され、当該ブロックマップ51を用いて、重複排除ボリューム#4〜#6のデータと当該ストレージプール#2内のデータとの重複が排除される。
重複排除部151は、ホスト装置2から重複排除ボリュームに対する書込み要求(データ更新要求)を受信した場合、重複チェックを行なう。当該重複チェックでは、ホスト装置2からの書込対象単位データ(更新後データ)が、同一の重複排除単位ストレージプール(重複排除プール)における既存のデータと重複するか否かがチェックされる。重複する場合、重複排除部151は、重複排除ボリュームのブロックマップ51において、書込み要求の対象データの論理領域を、前記既存のデータの物理領域に対応付ける。一方、重複しない場合、重複排除部151は、書込対象単位データの論理領域を、新たに割り当てられる物理領域に対応付け、書込対象単位データは、新たに割り当てられる物理領域に書き込まれる。
なお、本実施形態において、前記重複チェックの対象となる単位データ(書込対象単位データ)は、HDD,SSD等への書込み単位(物理ブロック単位;例えば512B(バイト))のサイズを有するデータブロックであってもよいし、複数のデータブロックを一つにまとめたデータブロック群(例えば4キロバイト)であってもよい。
スナップショット作成部152は、ホスト装置2から重複排除ボリュームに対するスナップショット作成要求を受けた場合、当該重複排除ボリューム(コピー元)とスナップショット領域(コピー先)とが同一の重複排除プールに属しているか否かを判断する。
コピー元とコピー先とが同一の重複排除プールに属していない場合つまり異なる重複排除プールに属している場合、スナップショット作成部152は、図17を参照しながら前述したスナップショット作成処理と同様の処理を実行する。つまり、スナップショット作成部152は、重複排除ボリュームの更新前単位データ(書込前単位データ)を、重複排除ボリュームの属する重複排除プールとは異なる重複排除プール内のスナップショット領域にコピーする。これにより、重複排除ボリュームのスナップショットが作成される。
コピー元とコピー先とが同一の重複排除プールに属している場合、スナップショット作成部152は、以下の処理を行なう。つまり、スナップショット作成部152は、スナップショット作成対象の重複排除ボリュームについてのブロックマップ51を、エントリ毎に、順次、重複排除ボリュームの属する重複排除プール内のスナップショット領域にコピーする。これにより、重複排除ボリュームのスナップショットが作成される。ブロックマップ51の各エントリは、各単位データに対応する、一組の論理領域と物理領域とに関する情報を含む。
このとき、スナップショット作成部152は、スナップショット作成対象の重複排除ボリュームについてのブロックマップ51のコピー状態を管理するビットマップ52(図8参照)を作成する。ビットマップ52は、スナップショット作成要求を受けた重複排除ボリュームの各単位データに対応するビットを有する。そして、ビットマップ52は、各ビットによって、各単位データに対応するブロックマップ51の一エントリ分のコピー完了/未完了を管理する。図8を参照しながら後述するように、対応エントリのコピーが未完了の場合、対応ビットには“1”が設定される一方、対応エントリのコピーが完了している場合、対応ビットには“0”が設定される。なお、ビットマップ52は、メモリ106のアプリケーション用メモリ領域162に保存されてもよいし、記憶装置31に保存されてもよい。また、ビットマップ52の領域は、重複排除ボリュームについてのブロックマップ51の全てのエントリのコピーを完了すると解放される。
スナップショット作成部152は、以下に説明するように、作成したビットマップ52に従って、重複排除ボリュームについてのブロックマップ51を、エントリ毎に、スナップショット領域にコピーする。その際、スナップショット作成部152は、ホスト装置2からの書込対象単位データがスナップショット作成中の重複排除ボリュームに含まれるか否かを判断する。書込対象単位データがスナップショット作成中の重複排除ボリュームに含まれない場合、I/O処理部154は、書込対象単位データについて通常の書込みI/O処理を実行する。
書込対象単位データがスナップショット作成中の重複排除ボリュームに含まれる場合、スナップショット作成部152は、当該重複排除ボリューム(コピー元)とスナップショット領域(コピー先)とが同一の重複排除プールに属しているか否かを判断する。
コピー元とコピー先とが同一の重複排除プールに属していない場合つまり異なる重複排除プールに属している場合、スナップショット作成部152は、図17を参照しながら前述した処理と同様の処理を実行する。つまり、スナップショット作成部152は、書込対象単位データを書き込むべき論理領域における更新前単位データがコピー済みであるか否かを判断する。未コピーであれば、スナップショット作成部152は、当該更新前単位データをスナップショット領域(管理領域)にコピーしてスナップショットを作成し、I/O処理部154は、当該論理領域に新たな物理領域を割り当て、割り当てた物理領域に書込対象単位データを書き込む。コピー済みであれば、スナップショット作成部152は、当該更新前単位データのコピーを行なうことなく、I/O処理部154は、当該論理領域に新たな物理領域を割り当て、割り当てた物理領域に書込対象単位データを書き込む。
一方、コピー元とコピー先とが同一の重複排除プールに属している場合、スナップショット作成部152は、コピー元の重複排除ボリュームについてのビットマップ52を参照する。スナップショット作成部152は、ビットマップ52における書込対象単位データに対応するビットにコピー未完了“1”が設定されていれば、書込対象単位データに対応するブロックマップ51のエントリを、スナップショット領域にコピーする。そして、スナップショット作成部152は、ビットマップ52における書込対象単位データに対応するビットにコピー完了“0”を設定する。この後、I/O処理部154は、書込対象単位データについて通常の書込みI/O処理を実行する。
また、スナップショット作成部152は、ビットマップ52における書込対象単位データに対応するビットにコピー完了“0”が設定されていれば、書込対象単位データに対応するブロックマップ51のエントリのコピー処理や、ビットマップ52の更新処理をスキップする。この後、I/O処理部154は、書込対象単位データについて通常の書込みI/O処理を実行する。
復元部153は、重複排除ボリュームの復元要求(リストア要求)を受けた場合、スナップショット領域におけるブロックマップ51(各エントリにおける情報)を復元先にコピーすることで重複排除ボリュームを復元する。復元部153による復元処理については、図9〜図11(B)を参照しながら後述する。
〔3〕本実施形態のストレージ制御装置の動作概要
次に、図3(A)〜図11(B)を参照しながら、上述のような機能構成を有する本実施形態のストレージ制御装置100の動作概要について説明する。
まず、前述した既存のストレージシステムと、本実施形態のストレージ装置1との動作上の差異について説明する。
コピー元(重複排除ボリューム)とコピー先(スナップショット領域)とは、前述した既存のストレージシステムでは、同一のストレージプールに属していても異なるストレージプールに属していてもよい。これに対し、本実施形態において、コピー元とコピー先とは、同一のストレージプール(重複排除プール)に属している。
本実施形態のストレージ装置1において、重複排除ボリュームのスナップショット作成は、コピー元の重複排除ボリュームのブロックマップ51を、スナップショット先ボリュームのブロックマップ(スナップショット領域)にコピーすることによって実行される。
また、前述した既存のストレージシステムでは、スナップショットの作成時、コピー元の各単位データのコピー完了/未完了が、単位データ毎のビットマップによって管理される。これに対し、本実施形態のストレージ制御装置100において、重複排除ボリュームのスナップショット作成時には、ブロックマップ51のエントリ毎のビットマップ52(図8参照)を用いて、ブロックマップ51の各エントリのコピー完了/未完了が管理される。ビットマップ52を用いることにより、ブロックマップ51のコピー中に、ホスト装置2によるストレージ装置1に対するアクセスを待ち状態で停止させるのを抑止することができる。
ブロックマップ51の全エントリのコピー完了後、ストレージ制御装置100は、コピー元ボリューム(重複排除ボリューム)とスナップショットボリューム(スナップショット領域)とに対するアクセスを、それぞれ独立して管理する。
既存のストレージシステムにおいて、スナップショットからコピー元へのリストア処理は、差分データを物理コピーすることによって実行される。これに対し、本実施形態において、スナップショットからコピー元ボリュームへのリストア処理は、ストレージ制御装置100の復元部153によってスナップショットのブロックマップ51をコピー元ボリュームへコピーすることで実行される。このとき、本実施形態のストレージ装置1において、データの物理コピーは行なわれない。
重複排除機能では、上述したように、所定サイズ(例えば4KB)の単位データ毎に論理領域がどの物理領域に割り当てられているかを示すブロックマップ51が存在する。本実施形態のストレージ装置1では、重複排除ボリュームのスナップショット作成時に、重複排除部151に、重複排除ボリュームにおける各単位データについてのブロックマップ51の作成が依頼される。これにより、スナップショット作成後のデータ書込み時のオーバヘッドが削減される。
ここで、図3(A)および図3(B)を参照して、重複排除ボリュームについてのブロックマップ51の構造の具体例について説明する。図3(A)および図3(B)は、それぞれ、異なる二つの重複排除ボリューム(論理ボリューム)についてのブロックマップ51の例を示す図である。
図3(A)は、例えば、LUN(Logical Unit Number)=0x0000の論理ボリューム#1のブロックマップ51を示し、図3(B)は、例えば、LUN=0x0004の論理ボリューム#2のブロックマップ51を示している。図3(A)に示す論理ボリューム#1では、論理領域(論理アドレス)0x00000008と0x00000028とに割り当てられた物理領域(物理アドレス)0x00001118が重複している(矢印A1参照)。また、図3(A)および図3(B)に示す論理ボリューム#1および#2では、それぞれ論理領域0x00000020と0x00000018とに割り当てられた物理領域0x00007088が重複している(矢印A2参照)。
ついで、図4〜図8を参照して、本実施形態のスナップショット作成部152によるスナップショット作成動作の概要について説明する。図4〜図8は、いずれも本実施形態のスナップショット作成動作の概要を説明する図である。特に、図5(A),図6(A),図7(A)は、重複排除ボリュームについてのブロックマップ51の例を示す図である。図5(B),図6(B),図7(B)は、それぞれ図5(A),図6(A),図7(A)に示す重複排除ボリュームのスナップショットについてのブロックマップ51の例を示す図である。図8は、図7(B)に示すブロックマップ51に対応するビットマップ52の例を示す図である。
ここでは、例えば図4に示すように、LUN=0x0000のコピー元論理ボリューム#1のブロックマップ51(図3(A)および図5(A)参照)が、同一ストレージプール内のLUN=0x0100のコピー先スナップショット領域(スナップショット#1;図5(B)参照)にコピーされる。これにより、論理ボリューム#1のスナップショットが、スナップショット#1に作成される。
スナップショット作成完了時点において、LUN=0x0100のデータは、コピー元のLUN=0x0000のデータと全く同じであるため、LUN=0x0100には、図5(B)に示すように、図5(A)に示すブロックマップ51と同一のブロックマップ51が作成される。
スナップショット(ブロックマップ51のコピー)が一旦作成された後は、コピー元とコピー先とはそれぞれ独立にアクセスされる。これは、更新前単位データの物理領域と別の物理領域の割当てを受け当該別の物理領域に対し重複排除における書込みを行なうように制御することを前提としている。これにより、書込み前データ(更新前単位データ)が上書きによって消去されることが抑止される。
例えば、図5(A)に示すブロックマップ51において、LUN=0x0000の論理領域(LBA)0x00000018に対する書込みが行なわれた場合、図5(A)に示すブロックマップ51は、図6(A)に示すブロックマップ51のように更新される。例えば、図6(A)では、LBA=0x00000018に対し、物理領域0x00000090に代えて物理領域0x00003058が新規に割り当てられ、当該物理領域0x00003058に対し書換対象単位データが書き込まれる。このとき、図6(B)に示すように、LUN=0x0100のスナップショットのブロックマップ51に対する更新は何ら行なわれない。
ただし、既存のストレージシステムにおける通常のスナップショット作成時には、前述した単位データ毎のビットマップが作成され、単位データ毎にコピー完了/未完了の管理が行なわれるだけであり、単位データ毎のビットマップの作成は高速で行なえる。このため、ホストアクセスとしては、待ち時間がほぼゼロである。
一方、重複排除におけるブロックマップ作成(スナップショット先ボリュームのブロックマップ作成)は、マッピングテーブル(ブロックマップ)51をコピーする必要があるため、そのコピーに時間を要する。例えば、400GBのLUNのスナップショット作成に際しては、800MBのマッピングテーブル51のコピーを行なうため、数秒〜数十秒程度の時間を要し、ホスト装置2に、アクセスの遅延が見えてしまう。
そこで、本実施形態では、スナップショット先のブロックマップ51の各エントリのコピー完了/未完了について、ビットマップ管理が行なわれる。ブロックマップ51のコピーは、先頭のエントリから順に行なわれる。その際、ブロックマップ51がコピー未完了の領域(エントリ)に対して書込み要求があった場合、当該コピー未完了の領域(エントリ)のコピーが先行して実行され、ビットマップ52において当該コピー未完了の領域(エントリ)に対応するビットがオン(1)からオフ(0)に更新される。ビットマップ52におけるビットがオフの領域は、ブロックマップ51の対応エントリのコピーが完了済みであるため、エントリの先頭から行なわれるコピー処理に際しスキップ対象となる。
例えば図7(A)および図7(B)に示すように、LUN=0x0000のブロックマップ51の上から二つのエントリがLUN=0x0100にコピーされた時点で、LUN=0x0000のブロックマップ51の上から4番目のエントリ(論理領域0x00000018)に対し書込み要求があった場合、本実施形態では、以下のように動作する。
つまり、図7(B)に示すように、LUN=0x0000のブロックマップ51の上から3番目のエントリ(論理領域0x00000010)のコピーに先行して、LUN=0x0000のブロックマップ51の上から4番目のエントリ(論理領域0x00000018)が、LUN=0x0100にコピーされる。これに伴って、図8に示すように、ビットマップ52において上記4番目のエントリに対応するビット(左から4番目のビット)がオン(1)からオフ(0)に更新される。また、図6(A)に示す例と同様、図7(A)に示すように、LBA=0x00000018に対し、物理領域0x00000090に代えて物理領域0x00003058が新規に割り当てられ、当該物理領域0x00003058に対し書換対象単位データが書き込まれる。このように、ブロックマップ51はボリュームの先頭のエントリから順にコピーされるが、ブロックマップ51において未コピーの領域へアクセスが行なわれた場合、アクセス対象のブロックマップ51のエントリが先行してコピーされる。
ついで、図9〜図11(B)を参照して、本実施形態の復元部153によるリストア動作(復元動作)の概要について説明する。図9〜図11(B)は、いずれも本実施形態の復元動作の概要を説明する図である。特に、図10(A)および図11(A)は、重複排除ボリュームについてのブロックマップ51の例を示す図である。図10(B)および図11(B)は、それぞれ図10(A)および図11(A)に示す重複排除ボリュームのスナップショットについてのブロックマップ51の例を示す図である。
スナップショットのリストア処理では、通常のスナップショットの作成処理と逆の処理が行なわれる。つまり、スナップショットのリストア処理では、ブロックマップ51をスナップショット先からコピー元へのコピーを行なうのみであり、データの物理コピーは発生しない。
リストア前の状態を、例えば図10(A)および図10(B)に示す状態とする。図10(A)および図10(B)に示す例では、ブロックマップ51の上から1番目と4番目のエントリにおいて、コピー元とスナップショットとの差分が生じている。したがって、これらの二つのエントリについて、リストア処理(スナップショットからコピー元へのコピー処理)が行なわれる。
つまり、図10(A)および図10(B)に示すブロックマップ51についてリストア処理を行なった場合、図11(A)および図11(B)に示すように、上から1番目と4番目のエントリについて、スナップショットのエントリ(物理領域)がコピーされる。これにより、データの物理コピーを行なうことなく、図11(A)に示すように、コピー元のブロックマップ51の上から1番目と4番目のエントリ(物理領域)が復元される。
〔4〕本実施形態のストレージ制御装置の詳細な動作
〔4−1〕ストレージ制御動作全体の流れ
次に、図12に示すフローチャート(ステップS101〜S110)に従って、本実施形態におけるストレージ制御動作全体の流れについて説明する。
本実施形態のCM100(CPU105)は、ホスト装置(サーバ)2からの要求受信を待機する(ステップS101のNOルート)。CPU105は、何らかの要求を受信すると(ステップS101のYESルート)、受信した要求がスナップショット作成要求であるか否かを判断する(ステップS102)。
受信した要求がスナップショット作成要求であれば(ステップS102のYESルート)、CPU105は、スナップショット作成処理を実行する(ステップS103)。当該スナップショット作成処理の手順については、図13を参照しながら後述する。この後、CPU105は、ステップS101の処理に戻る。
受信した要求がスナップショット作成要求でなければ(ステップS102のNOルート)、CPU105は、受信した要求が書込み要求であるか否かを判断する(ステップS104)。
受信した要求が書込み要求であれば(ステップS104のYESルート)、CPU105は、書込みI/O処理を実行する(ステップS105)。当該書込みI/O処理の手順については、図15を参照しながら後述する。この後、CPU105は、ステップS101の処理に戻る。
受信した要求が書込み要求でなければ(ステップS104のNOルート)、CPU105は、受信した要求が読出し要求であるか否かを判断する(ステップS106)。
受信した要求が読出し要求であれば(ステップS106のYESルート)、CPU105は、読出しI/O処理を実行する(ステップS107)。当該読出しI/O処理の手順については、図16を参照しながら後述する。この後、CPU105は、ステップS101の処理に戻る。
受信した要求が読出し要求でなければ(ステップS106のNOルート)、CPU105は、受信した要求が復元要求(リストア要求)であるか否かを判断する(ステップS108)。
受信した要求が復元要求であれば(ステップS108のYESルート)、CPU105は、図9〜図11(B)を参照しながら前述した復元処理(リストア処理)を実行する(ステップS109)。この後、CPU105は、ステップS101の処理に戻る。
受信した要求が復元要求でなければ(ステップS108のNOルート)、CPU105は、受信した要求に応じた処理を実行してから(ステップS110)、ステップS101の処理に戻る。
〔4−2〕スナップショット作成処理の手順
次に、図13に示すフローチャート(ステップS201〜S212)に従って、本実施形態のスナップショット作成要求受信時の処理(スナップショット作成処理;図12のステップS103の処理)の手順について説明する。
ホスト装置(サーバ)2から重複排除ボリュームに対するスナップショット作成要求を受けると、CPU105のスナップショット作成部152は、当該重複排除ボリューム(コピー元)とスナップショット領域(コピー先)とが同一の重複排除プールに属しているか否かを判断する(ステップS201)。
コピー元とコピー先とが同一の重複排除プールに属していない場合(ステップS201のNOルート)、スナップショット作成部152は、図17を参照しながら前述したスナップショット作成処理と同様の処理を実行する(ステップS202)。つまり、スナップショット作成部152は、重複排除ボリュームの更新前単位データを、重複排除ボリュームの属する重複排除プールとは異なる重複排除プール内のスナップショットボリューム(スナップショット領域)にコピーする。これにより、重複排除ボリュームのスナップショットが作成される。
コピー元とコピー先とが同一の重複排除プールに属している場合(ステップS201のYESルート)、スナップショット作成部152は、スナップショット作成対象の重複排除ボリュームについてのブロックマップ51のコピー完了/未完了を管理するビットマップ52(図8参照)を作成する(ステップS203)。このとき、スナップショット作成部152は、作成したビットマップ52の初期化を行ない、ビットマップ52の全てのビットに“1”を設定する。
また、スナップショット作成部152は、ビットマップ52の着目ビット位置(着目エントリに対応するビット)を、重複排除ボリュームのブロックマップ51の先頭(LBA=0)に設定する(ステップS204)。
この時点で、CPU105は、ユーザ側(ホスト装置2)へ、重複排除ボリュームのスナップショットの作成完了を先行して通知してから(ステップS205)、重複排除ボリュームのブロックマップ51のコピー処理を開始する(ステップS206)。
スナップショット作成部152は、コピー処理を開始すると、まず、ビットマップ52における着目ビット位置の値が“0”であるか否か、つまり、着目ビット位置に対応するエントリのコピーが完了しているか否かを判断する(ステップS207)。
着目ビット位置の値が“1”の場合つまり着目ビット位置に対応するエントリのコピーが未完了の場合(ステップS207のNOルート)、スナップショット作成部152は、着目ビット位置に対応するブロックマップ51のエントリを、コピー先にコピーする(ステップS208)。ここで、コピー先は、重複排除ボリュームの属する重複排除プール内のスナップショット領域である。
そして、スナップショット作成部152は、ビットマップ52における着目ビット位置の値を、“1”(コピー未完了)から“0”(コピー完了)に更新する(ステップS209)
一方、着目ビット位置の値が“0”の場合つまり着目ビット位置に対応するエントリのコピーが完了している場合(ステップS207のYESルート)、または、ステップS209の処理後、スナップショット作成部152は、ステップS210の処理を実行する。つまり、ステップS210において、スナップショット作成部152は、着目ビット位置が重複排除ボリュームのブロックマップ51の最終位置(最終エントリ)であるか否かを判断する(ステップS210)。
着目ビット位置が重複排除ボリュームのブロックマップ51の最終位置でない場合(ステップS210のNOルート)、スナップショット作成部152は、ビットマップ52における着目ビット位置(ブロックマップにおける着目エントリ)を次に進める(ステップS211)。この後、スナップショット作成部152は、ステップS207の処理に戻る。
着目ビット位置が重複排除ボリュームのブロックマップ51の最終位置である場合(ステップS210のYESルート)、スナップショット作成部152は、重複排除ボリュームのスナップショットの作成が完了したものと判断する。つまり、スナップショット作成部152は、重複排除ボリュームについてのブロックマップ51の全てのエントリのコピーを完了したものと判断し、ビットマップ52の領域を解放する(ステップS212)。
〔4−3〕書込み要求受信時の処理の手順
次に、本実施形態の動作例(図15参照)と比較すべく、図14に示すフローチャート(ステップS500〜S510)に従って、既存のストレージシステムにおける書込み要求受信時の処理(書込みI/O処理)の手順について説明する。
前述した既存のストレージシステムにおいて、サーバから書込み要求を受信すると(ステップS500)、当該書込み要求が、スナップショット作成対象のボリューム(コピー元ボリューム)に対するものであるか否かが判断される(ステップS501)。
当該書込み要求がスナップショット作成対象のボリュームに対するものでない場合(ステップS501のNOルート)、当該書込み要求に応じた通常の書込みI/O処理が実行される(ステップS502)。
当該書込み要求がスナップショット作成対象のボリュームに対するものである場合(ステップS501のYESルート)、スナップショット用の単位データ毎のビットマップがチェックされ、当該書込み要求による書込み先の単位データに対応する対象ビットが“1”であるか否かが判断される(ステップS503)。
対象ビットが“1”でない場合つまり対象ビットが“0”である場合(ステップS503のNOルート)、書込み先の単位データ(更新前単位データ)が、スナップショット領域(スナップショットボリューム)に対しコピー済みであると判断される。そして、当該書込み要求に応じた通常の書込みI/O処理が実行される(ステップS504)。
対象ビットが“1”である場合(ステップS503のYESルート)、書込み先の単位データ(更新前単位データ)がスナップショット領域に対し未コピーであると判断される。この場合、コピー元ボリュームからスナップショット領域に対しコピーされる更新前単位データが、既存のデータと重複する重複データであるか否かを判断する、重複チェックが行なわれる(ステップS505)。
重複チェックの結果、更新前単位データが重複データである場合(ステップS506のYESルート)、スナップショットボリュームのブロックマップにおいて、書込み箇所(LBA)に対応する物理領域が、既存の重複データの物理領域(物理アドレス)に更新される(ステップS507)。
そして、スナップショット用の単位データ毎のビットマップにおける対象ビットが“1”(未コピー)から“0”(コピー済み)に変更される(ステップS508)。この後、サーバから、当該書込み要求によって書き込むべき書込対象単位データが受信され、通常の書込みI/O処理が実行される(ステップS509)。
一方、重複チェックの結果、更新前単位データが重複データでない場合(ステップS506のNOルート)、新規領域(物理アドレス)が割り当てられ、割り当てられた新規領域に、更新前単位データがコピーされて書き込まれる。その後、スナップショットボリュームのブロックマップが更新されてから(ステップS510)、処理は、ステップS508へ移行する。
上述したステップS501およびS503の処理は、図17を参照しながら上述した既存のストレージシステムにおけるスナップショットの判定処理(ステップS2)に相当する。また、上述したステップS505〜S508は、図17を参照しながら上述した既存のストレージシステムにおける重複排除処理(ステップS3)に相当する。
次に、図15に示すフローチャート(ステップS301〜S310)に従って、本実施形態の書込み要求受信時の処理(書込みI/O処理;図12のステップS105の処理)の手順について説明する。
ホスト装置(サーバ)2から重複排除ボリュームに対する書込み要求を受けると、CPU105のI/O処理部154は、当該書込み要求がスナップショット作成対象のボリュームに対するものであるか否かを判断する(ステップS301)。
当該書込み要求がスナップショット作成対象のボリュームに対するものでない場合(ステップS301のNOルート)、I/O処理部154は、重複排除部151による重複排除処理を伴って、当該書込み要求に応じた通常の書込みI/O処理を実行する(ステップS302)。
当該書込み要求がスナップショット作成対象のボリュームに対するものである場合(ステップS301のYESルート)、CPU105は、当該重複排除ボリューム(コピー元)とスナップショット領域(コピー先)とが同一の重複排除プールに属しているか否かを判断する(ステップS303)。
コピー元とコピー先とが同一の重複排除プールに属していない場合(ステップS303のNOルート)、CPU105は、他の重複排除プールにおけるスナップショットに対する通常の書込みI/O処理を実行する(ステップS304)。
一方、コピー元とコピー先とが同一の重複排除プールに属している場合(ステップS303のYESルート)、スナップショット作成部152は、当該書込み要求による書込み位置に対応するビットマップ52のビット位置(ブロックマップ51のエントリ位置)を計算する(ステップS305)。
スナップショット作成部152は、ビットマップ52における、計算したビット位置の値(対象ビットの値)を参照し、対象ビットの値が“0”(コピー完了)であるか否かを判断する(ステップS306)。
対象ビットの値が“0”(コピー完了)である場合(ステップS306のYESルート)、I/O処理部154は、重複排除部151による重複排除処理を伴って、当該書込み要求に応じた通常の書込みI/O処理を実行する(ステップS307)。
対象ビットの値が“1”(コピー未完了)の場合(ステップS306のNOルート)、スナップショット作成部152は、対象ビット位置に対応する、コピー元ボリュームのブロックマップ51のエントリを、コピー先ボリューム(スナップショット領域)のブロックマップ51にコピーする(ステップS308)。
そして、スナップショット作成部152は、ビットマップ52における対象ビット位置の値を、“1”(コピー未完了)から“0”(コピー完了)に設定する(ステップS309)。
この後、I/O処理部154は、重複排除部151による重複排除処理を伴って、当該書込み要求に応じた通常の書込みI/O処理を実行する(ステップS310)。
〔4−4〕読出し要求受信時の処理の手順
次に、図16に示すフローチャート(ステップS401〜S409)に従って、本実施形態の読出し要求受信時の処理(読出しI/O処理;図12のステップS107の処理)の手順について説明する。
ホスト装置(サーバ)2から読出し要求を受けると、CPU105のI/O処理部154は、当該読出し要求がスナップショットボリューム(コピー先ボリューム)に対するものであるか否かを判断する(ステップS401)。
当該書込み要求がスナップショットボリュームに対するものでない場合(ステップS401のNOルート)、I/O処理部154は、当該読出し要求に応じた通常の読出しI/O処理を実行する(ステップS402)。
当該読出し要求がスナップショットボリュームに対するものである場合(ステップS401のYESルート)、CPU105は、当該重複排除ボリューム(コピー元)とスナップショット領域(コピー先)とが同一の重複排除プールに属しているか否かを判断する(ステップS403)。
コピー元とコピー先とが同一の重複排除プールに属していない場合(ステップS403のNOルート)、CPU105は、他の重複排除プールにおけるスナップショットに対する通常の読出しI/O処理を実行する(ステップS404)。
一方、コピー元とコピー先とが同一の重複排除プールに属している場合(ステップS403のYESルート)、スナップショット作成部152は、当該読出し要求による読出し位置に対応するビットマップ52のビット位置(ブロックマップ51のエントリ位置)を計算する(ステップS405)。
スナップショット作成部152は、ビットマップ52における、計算したビット位置の値(対象ビットの値)を参照し、対象ビットの値が“0”(コピー完了)であるか否かを判断する(ステップS406)。
対象ビットの値が“0”(コピー完了)である場合(ステップS406のYESルート)、I/O処理部154は、当該読出し要求に応じた通常の読出しI/O処理を実行する(ステップS407)。
対象ビットの値が“1”(コピー未完了)の場合(ステップS406のNOルート)、I/O処理部154は、対象ビット位置に対応する、コピー元ボリュームのブロックマップ51のエントリを読み込み、対象ビット位置に対応する論理領域(LBA)を取得する(ステップS408)。
そして、I/O処理部154は、取得したLBAにおけるデータを読み込み、ホスト装置2へ転送し、I/O処理を終了する(ステップS409)。
上述したように、本実施形態では、重複排除ボリュームについてのスナップショット作成処理が、ブロックマップ(重複排除ボリューム毎に保持されている物理領域を示すマッピングテーブル)51をコピーする処理によって実現される。したがって、ブロックマップ51のコピーが完了すればスナップショットの作成処理は完了することになる。
また、ブロックマップ51のコピー中にコピー元ボリュームへのアクセスを可能にするため、本実施形態では、ブロックマップ51の各エントリについてコピー完了/未完了を示すビットマップ52が作成される。このとき、ブロックマップ51は、ボリュームの先頭(先頭のエントリ)から順にコピーされるが、ブロックマップ51のエントリが未だコピーされていない領域に対するアクセスが行なわれた場合、ビットマップ52を用いることで、ブロックマップ51の対象エントリが先行してコピーされる。
これにより、記憶装置31の性能低下を招くことなく重複排除機能とスナップショット作成機能とを組み合わせ、機能の最適化を実現することができる。
〔5〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
〔6〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
記憶装置を制御するストレージ制御装置であって、
前記記憶装置における重複排除ボリュームについて単位データ毎に各単位データの論理領域に割り当てられる物理領域を示すマップ情報を用いて、前記重複排除ボリュームに対する書込対象単位データについて重複排除処理を行なう重複排除部と、
前記重複排除ボリュームに対するスナップショット作成要求を受けた場合、前記重複排除ボリュームについての前記マップ情報をスナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成するスナップショット作成部と、を有する、ストレージ制御装置。
(付記2)
前記スナップショット作成部は、
前記スナップショット作成要求を受けた前記重複排除ボリュームの各単位データに対応するビットを有し、各ビットによって各単位データに対応する前記マップ情報のコピー完了/未完了を管理するビットマップを作成し、
作成したビットマップに従って、前記重複排除ボリュームについての前記マップ情報を前記スナップショット領域にコピーする、付記1に記載のストレージ制御装置。
(付記3)
前記スナップショット作成部は、
前記書込対象単位データが前記スナップショットの作成中の前記重複排除ボリュームに含まれる場合、前記ビットマップを参照し、
前記ビットマップにおける前記書込対象単位データに対応するビットにコピー未完了が設定されていれば、前記書込対象単位データに対応する前記マップ情報を前記スナップショット領域にコピーし、
前記ビットマップにおける前記書込対象単位データに対応するビットにコピー完了を設定する、付記2に記載のストレージ制御装置。
(付記4)
前記スナップショット作成部は、
前記書込対象単位データが前記スナップショットの作成中の前記重複排除ボリュームに含まれる場合、前記ビットマップを参照し、
前記ビットマップにおける前記書込対象単位データに対応するビットにコピー完了が設定されていれば、前記書込対象単位データに対応する前記マップ情報を前記スナップショット領域にコピーする処理をスキップする、付記2に記載のストレージ制御装置。
(付記5)
前記スナップショット作成部は、
前記重複排除ボリュームについての前記マップ情報の、前記スナップショット領域へのコピーを完了すると、前記ビットマップを保持する領域を解放する、付記2〜付記4のいずれか一項に記載のストレージ制御装置。
(付記6)
前記重複排除ボリュームと前記スナップショット領域とが同一の重複排除単位ストレージプールに属している場合、前記スナップショット作成部は、前記マップ情報を前記スナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成する、付記1〜付記5のいずれか一項に記載のストレージ制御装置。
(付記7)
前記重複排除ボリュームと前記スナップショット領域とが異なる重複排除単位ストレージプールに属している場合、前記スナップショット作成部は、前記重複排除ボリュームの更新前単位データを前記スナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成する、付記1〜付記5のいずれか一項に記載のストレージ制御装置。
(付記8)
前記重複排除ボリュームの復元要求を受けた場合、前記スナップショット領域における前記マップ情報を復元先にコピーすることで前記重複排除ボリュームを復元する復元部をさらに有する、付記1〜付記7のいずれか一項に記載のストレージ制御装置。
(付記9)
記憶装置を制御するコンピュータに、
前記記憶装置における重複排除ボリュームについて単位データ毎に各単位データの論理領域に割り当てられる物理領域を示すマップ情報を用いて、前記重複排除ボリュームに対する書込対象単位データについて重複排除処理を行ない、
前記重複排除ボリュームに対するスナップショット作成要求を受けた場合、前記重複排除ボリュームについての前記マップ情報をスナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成する、
処理を実行させる、ストレージ制御プログラム。
(付記10)
前記スナップショット作成要求を受けた前記重複排除ボリュームの各単位データに対応するビットを有し、各ビットによって各単位データに対応する前記マップ情報のコピー完了/未完了を管理するビットマップを作成し、
作成したビットマップに従って、前記重複排除ボリュームについての前記マップ情報を前記スナップショット領域にコピーする、
処理を、前記コンピュータに実行させる、付記9に記載のストレージ制御プログラム。
(付記11)
前記書込対象単位データが前記スナップショットの作成中の前記重複排除ボリュームに含まれる場合、前記ビットマップを参照し、
前記ビットマップにおける前記書込対象単位データに対応するビットにコピー未完了が設定されていれば、前記書込対象単位データに対応する前記マップ情報を前記スナップショット領域にコピーし、
前記ビットマップにおける前記書込対象単位データに対応するビットにコピー完了を設定する、
処理を、前記コンピュータに実行させる、付記10に記載のストレージ制御プログラム。
(付記12)
前記書込対象単位データが前記スナップショットの作成中の前記重複排除ボリュームに含まれる場合、前記ビットマップを参照し、
前記ビットマップにおける前記書込対象単位データに対応するビットにコピー完了が設定されていれば、前記書込対象単位データに対応する前記マップ情報を前記スナップショット領域にコピーする処理をスキップする、
処理を、前記コンピュータに実行させる、付記10に記載のストレージ制御プログラム。
(付記13)
前記重複排除ボリュームについての前記マップ情報の、前記スナップショット領域へのコピーを完了すると、前記ビットマップを保持する領域を解放する、
処理を、前記コンピュータに実行させる、付記10〜付記12のいずれか一項に記載のストレージ制御プログラム。
(付記14)
前記重複排除ボリュームと前記スナップショット領域とが同一の重複排除単位ストレージプールに属している場合、前記マップ情報を前記スナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成する、
処理を、前記コンピュータに実行させる、付記9〜付記13のいずれか一項に記載のストレージ制御プログラム。
(付記15)
前記重複排除ボリュームと前記スナップショット領域とが異なる重複排除単位ストレージプールに属している場合、前記重複排除ボリュームの更新前単位データを前記スナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成する、
処理を、前記コンピュータに実行させる、付記9〜付記13のいずれか一項に記載のストレージ制御プログラム。
(付記16)
前記重複排除ボリュームの復元要求を受けた場合、前記スナップショット領域における前記マップ情報を復元先にコピーすることで前記重複排除ボリュームを復元する、
処理を、前記コンピュータに実行させる、付記9〜付記15のいずれか一項に記載のストレージ制御プログラム。
1 ストレージ装置(ストレージシステム)
2 ホスト装置(サーバ)
3 管理端末
100,100a,100b CM(ストレージ制御装置)
101,102 CA
103 DA
104 PCIeインタフェース
105 CPU(処理部,コンピュータ)
151 重複排除部
152 スナップショット作成部
153 復元部
154 I/O処理部(入出力要求処理部)
106 メモリ
160 ストレージ制御プログラム
161 キャッシュ領域
162 アプリケーション用メモリ領域
107 フラッシュメモリ
108 IOC
30 ドライブエンクロージャ(DE;記憶装置)
31 記憶装置(ドライブ)
40 CE
51 ブロックマップ(マッピングテーブル)
52 ビットマップ

Claims (9)

  1. 記憶装置を制御するストレージ制御装置であって、
    前記記憶装置における重複排除ボリュームに対する書込対象単位データが既存のデータと重複する場合、前記重複排除ボリュームについて単位データ毎に各単位データの論理領域に割り当てられる物理領域を示すマップ情報において、前記書込対象単位データの論理領域を前記既存のデータの物理領域に対応付ける重複排除処理を行なう重複排除部と、
    前記重複排除ボリュームに対するスナップショット作成要求を受けた場合、前記重複排除ボリュームについての前記マップ情報をスナップショット領域にコピーして、前記マップ情報のコピーを、前記重複排除ボリュームのスナップショットのマップ情報とすることで前記重複排除ボリュームのスナップショット作成を完了するスナップショット作成部と、を有する、ストレージ制御装置。
  2. 前記スナップショット作成部は、
    前記スナップショット作成要求を受けた前記重複排除ボリュームの各単位データに対応するビットを有し、各ビットによって各単位データに対応する前記マップ情報のコピー完了/未完了を管理するビットマップを作成し、
    作成したビットマップを参照しながら、前記重複排除ボリュームについての前記マップ情報を前記スナップショット領域にコピーする、請求項1に記載のストレージ制御装置。
  3. 前記スナップショット作成部は、
    前記書込対象単位データが前記スナップショットの作成中の前記重複排除ボリュームに含まれる場合、前記ビットマップを参照し、
    前記ビットマップにおける前記書込対象単位データに対応するビットにコピー未完了が設定されていれば、前記書込対象単位データに対応する前記マップ情報を前記スナップショット領域にコピーし、
    前記ビットマップにおける前記書込対象単位データに対応するビットにコピー完了を設定する、請求項2に記載のストレージ制御装置。
  4. 前記スナップショット作成部は、
    前記書込対象単位データが前記スナップショットの作成中の前記重複排除ボリュームに含まれる場合、前記ビットマップを参照し、
    前記ビットマップにおける前記書込対象単位データに対応するビットにコピー完了が設定されていれば、前記書込対象単位データに対応する前記マップ情報を前記スナップショット領域にコピーする処理をスキップする、請求項2に記載のストレージ制御装置。
  5. 前記スナップショット作成部は、
    前記重複排除ボリュームについての前記マップ情報の、前記スナップショット領域へのコピーを完了すると、前記ビットマップを保持する領域を解放する、請求項2〜請求項4のいずれか一項に記載のストレージ制御装置。
  6. 前記重複排除ボリュームと前記スナップショット領域とが同一の重複排除単位ストレージプールに属している場合、前記スナップショット作成部は、前記マップ情報を前記スナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成する、請求項1〜請求項5のいずれか一項に記載のストレージ制御装置。
  7. 前記重複排除ボリュームと前記スナップショット領域とが異なる重複排除単位ストレージプールに属している場合、前記スナップショット作成部は、前記重複排除ボリュームの更新前単位データを前記スナップショット領域にコピーすることで前記重複排除ボリュームのスナップショットを作成する、請求項1〜請求項5のいずれか一項に記載のストレージ制御装置。
  8. 前記重複排除ボリュームの復元要求を受けた場合、前記スナップショット領域における前記マップ情報を復元先にコピーすることで前記重複排除ボリュームを復元する復元部をさらに有する、請求項1〜請求項7のいずれか一項に記載のストレージ制御装置。
  9. 記憶装置を制御するコンピュータに、
    前記記憶装置における重複排除ボリュームに対する書込対象単位データが既存のデータと重複する場合、前記重複排除ボリュームについて単位データ毎に各単位データの論理領域に割り当てられる物理領域を示すマップ情報において、前記書込対象単位データの論理領域を前記既存のデータの物理領域に対応付ける重複排除処理を行ない、
    前記重複排除ボリュームに対するスナップショット作成要求を受けた場合、前記重複排除ボリュームについての前記マップ情報をスナップショット領域にコピーして、前記マップ情報のコピーを、前記重複排除ボリュームのスナップショットのマップ情報とすることで前記重複排除ボリュームのスナップショット作成を完了する、
    処理を実行させる、ストレージ制御プログラム。
JP2015208728A 2015-10-23 2015-10-23 ストレージ制御装置およびストレージ制御プログラム Expired - Fee Related JP6561765B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015208728A JP6561765B2 (ja) 2015-10-23 2015-10-23 ストレージ制御装置およびストレージ制御プログラム
US15/281,581 US20170116087A1 (en) 2015-10-23 2016-09-30 Storage control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015208728A JP6561765B2 (ja) 2015-10-23 2015-10-23 ストレージ制御装置およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2017083933A JP2017083933A (ja) 2017-05-18
JP6561765B2 true JP6561765B2 (ja) 2019-08-21

Family

ID=58561684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015208728A Expired - Fee Related JP6561765B2 (ja) 2015-10-23 2015-10-23 ストレージ制御装置およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US20170116087A1 (ja)
JP (1) JP6561765B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108780447A (zh) * 2016-03-02 2018-11-09 华为技术有限公司 差异数据备份的方法和设备
CN107562578B (zh) * 2017-09-25 2021-06-29 郑州云海信息技术有限公司 一种存储数据的快照创建方法、装置、设备及存储介质
US10884868B2 (en) * 2017-10-05 2021-01-05 Zadara Storage, Inc. Dedupe as an infrastructure to avoid data movement for snapshot copy-on-writes
US11579892B2 (en) 2019-05-29 2023-02-14 Lg Electronics Inc. Digital device for performing booting process and control method therefor
CN110795033A (zh) * 2019-10-18 2020-02-14 苏州浪潮智能科技有限公司 一种存储管理方法、***、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331100A (ja) * 2005-05-26 2006-12-07 Hitachi Ltd 差分ビットマップ管理方法、ストレージ装置及び情報処理システム
US7877556B2 (en) * 2007-03-30 2011-01-25 Hitachi, Ltd. Method and apparatus for a unified storage system
JP4924645B2 (ja) * 2009-03-31 2012-04-25 富士通株式会社 ストレージ制御装置、ストレージシステム及びコピー方法。
US20100274772A1 (en) * 2009-04-23 2010-10-28 Allen Samuels Compressed data objects referenced via address references and compression references
US8051050B2 (en) * 2009-07-16 2011-11-01 Lsi Corporation Block-level data de-duplication using thinly provisioned data storage volumes
US8370593B2 (en) * 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
US8965856B2 (en) * 2011-08-29 2015-02-24 Hitachi, Ltd. Increase in deduplication efficiency for hierarchical storage system
US10223375B2 (en) * 2011-09-20 2019-03-05 Netapp, Inc. Handling data extent size asymmetry during logical replication in a storage system
JP2014038551A (ja) * 2012-08-20 2014-02-27 Fujitsu Ltd データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム
US9372865B2 (en) * 2013-02-12 2016-06-21 Atlantis Computing, Inc. Deduplication metadata access in deduplication file system
US8996460B1 (en) * 2013-03-14 2015-03-31 Emc Corporation Accessing an image in a continuous data protection using deduplication-based storage
JP5956387B2 (ja) * 2013-07-16 2016-07-27 日本電信電話株式会社 データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム

Also Published As

Publication number Publication date
US20170116087A1 (en) 2017-04-27
JP2017083933A (ja) 2017-05-18

Similar Documents

Publication Publication Date Title
US9965216B1 (en) Targetless snapshots
US9747198B2 (en) Processing a point-in-time copy establish command to copy data
US10664177B2 (en) Replicating tracks from a first storage site to a second and third storage sites
US8099569B2 (en) Storage system and data migration method
US9229870B1 (en) Managing cache systems of storage systems
JP6561765B2 (ja) ストレージ制御装置およびストレージ制御プログラム
US7660946B2 (en) Storage control system and storage control method
US8700570B1 (en) Online storage migration of replicated storage arrays
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US9836231B2 (en) Managing updates and copying data in a point-in-time copy relationship expressed as source logical addresses and target logical addresses
JP4681247B2 (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法
US20150212736A1 (en) Raid set initialization
JP2008276596A (ja) 記憶装置を決定する方法及び計算機
US8832396B2 (en) Storage apparatus and its control method
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
US20180307427A1 (en) Storage control apparatus and storage control method
US8732422B2 (en) Storage apparatus and its control method
US9170750B2 (en) Storage apparatus and data copy control method
WO2016185573A1 (ja) 重複排除ストレージにおけるボリュームバックアップ・リストア方法
JP2023016972A (ja) ストレージシステム及びデータ処理方法
US9779002B2 (en) Storage control device and storage system
WO2018055686A1 (ja) 情報処理システム
JP2015501959A (ja) ストレージシステムおよび記憶制御方法
US10691550B2 (en) Storage control apparatus and storage control method
JP2013029911A (ja) 制御装置、制御方法およびストレージ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

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: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190708

R150 Certificate of patent or registration of utility model

Ref document number: 6561765

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees