JP5776474B2 - ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法 - Google Patents

ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法 Download PDF

Info

Publication number
JP5776474B2
JP5776474B2 JP2011215481A JP2011215481A JP5776474B2 JP 5776474 B2 JP5776474 B2 JP 5776474B2 JP 2011215481 A JP2011215481 A JP 2011215481A JP 2011215481 A JP2011215481 A JP 2011215481A JP 5776474 B2 JP5776474 B2 JP 5776474B2
Authority
JP
Japan
Prior art keywords
copy
generation
copy destination
absence
address
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
JP2011215481A
Other languages
English (en)
Other versions
JP2013077074A (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 JP2011215481A priority Critical patent/JP5776474B2/ja
Priority to US13/553,892 priority patent/US9141293B2/en
Publication of JP2013077074A publication Critical patent/JP2013077074A/ja
Application granted granted Critical
Publication of JP5776474B2 publication Critical patent/JP5776474B2/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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/065Replication 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • 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

Description

本発明は、ストレージ技術等に関する。
ストレージ製品やコンピュータにおけるデータをバックアップする手法の一つとして、コピーオンライト(Copy On Write)という手法がある。コピーオンライトとは、スナップショットを作成する時点ではなく、コピー元ボリュームへの書き込み要求時点に、コピー元ボリュームの当該要求のあった箇所における書き込み前のデータをコピー先ボリュームへバックアップする。
また、コピーオンライトを拡張したバックアップ手法として、書き込み要求のあった箇所(対象領域)を、コピービットマップを用いて世代管理する技術がある。コピービットマップは、コピー元ボリュームの対象領域のデータがコピー先ボリュームへコピー済みであるか否かを世代毎に管理することに用いられる。
図16は、従来のコピービットマップのデータ構造を示す図である。図16に示すように、コピービットマップは、世代毎に各対象領域のデータがコピー先ボリュームへコピー済みであるか否かを記憶する。ここでは、「0」は、対象領域のデータがコピー先ボリュームの対応する記憶領域に存在することを示すビットの値である。「1」は、対象領域のデータがコピー先ボリュームの対応する記憶領域に存在しないことを示すビットの値である。
特開2010−26939号公報 特開2004−199711号公報 特開2002−373093号公報 特開2010−238009号公報
ところで、コピーオンライトでは、バックアップの世代を増やす都度、世代毎のコピービットマップをメモリに確保するので、メモリ容量の不足によりコピービットマップが確保できないと、世代を増やせない場合がある。メモリ容量の不足により世代を増やせない場合を考慮して、コピービットマップをディスクに配置することも考えられる。
しかしながら、コピーオンライトにおいて、従来のコピービットマップをディスクに配置すると、バックアップの世代を増やすと性能劣化が生じる場合がある。例えば、ある世代の対象領域についてコピー先ボリュームへの読み込み処理を行う場合、読み込み処理に時間がかかってしまう場合がある。図17は、従来のコピー先ボリュームへの読込処理を説明する図である。
まず、読込処理では、ストレージ装置が、例えばホストから読み込み要求を受信すると(ステップS101)、読み込む対象である対象世代のコピービットマップを読み込む(ステップS102)。そして、ストレージ装置は、読み込んだコピービットマップを用いて、対象領域に対応するビットが0(データが存在)であるか否かを判定する(ステップS103)。
そして、ストレージ装置は、対象ビットが0であると判定した場合(ステップS103;Yes)、対象ビットに対応する対象領域を物理アドレスに変換し、変換した物理アドレスから対象世代のデータを読み込む(ステップS104)。一方、ストレージ装置は、対象ビットが0でないと判定した場合(ステップS103;No)、処理中の世代が最新世代であるか否かを判定する(ステップS105)。そして、ストレージ装置は、処理中の世代が最新世代でないと判定した場合(ステップS105;No)、次の世代のコピービットマップを読み込み(ステップS106)、対象領域のデータの存在有無を判断すべく、ステップS103に移行する。
一方、ストレージ装置は、処理中の世代が最新の世代であると判定した場合(ステップS105;Yes)、コピー元ボリュームの対象領域のデータを読み込む(ステップS107)。ストレージ装置は、ステップS104またはステップS107において、対象領域のデータを読み込むと、データをホストへ転送する(ステップS108)。
このように、ストレージ装置は、読み込み対象である世代について、対象領域に対応するデータが存在しない場合、繰り返し当該世代と異なる世代のコピービットマップをディスクから読み込んでデータの存在有無を判断する。この結果、世代の異なるコピービットマップの読み込み回数が増加すると、性能が劣化する。
1つの側面では、本発明は、バックアップの世代を増やしても、コピーオンライト向けの性能劣化を防止できるストレージ装置等を提供することを目的とする。
本願の開示するストレージ装置は、一つの態様において、コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置において、コピーの有無を示す情報が世代単位で前記コピー先ボリュームの論理アドレスに対応付けて記憶されるコピー有無記憶部と、前記論理アドレスに対応する前記コピー先ボリュームの物理アドレスが世代単位で記憶されるアドレス記憶部と、前記コピー先ボリュームへのアクセス要求を受信した場合に、前記コピー有無記憶部に記憶された前記コピーの有無を示す情報を用いて前記アクセス要求された論理アドレスのコピーの有無を判定し、判定結果に基づいて指定される世代の前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行うアクセス部とを有する。
本願の開示するストレージ装置の一つの態様によれば、バックアップの世代を増やしても、コピーオンライト向けの性能劣化を防止できるという効果を奏する。
図1は、実施例1に係るストレージ装置の構成を示す機能ブロック図である。 図2は、SnapOPCを説明する図である。 図3は、実施例1に係る最新世代ビットマップのデータ構造を示す図である。 図4は、LBA変換テーブルのデータ構造を示す図である。 図5は、実施例1に係る集約ビットマップのデータ構造を示す図である。 図6は、セッション管理テーブルのデータ構造を示す図である。 図7は、エレメント管理テーブルのデータ構造を示す図である。 図8は、スナップテーブルプール内のエレメントを説明する図である。 図9は、コピー元ボリュームへの書込処理の手順を示すフローチャートである。 図10Aは、コピー先ボリュームへの読込処理の手順を示すフローチャート(1)である。 図10Bは、コピー先ボリュームへの読込処理の手順を示すフローチャート(2)である。 図11は、コピー先ボリュームへの書込処理の手順を示すフローチャートである。 図12は、スナップショットの作成手順を示すフローチャートである。 図13は、スナップショットの削除手順を示すフローチャートである。 図14は、実施例1に係る集約ビットマップのデータ構造の変形例を示す図である。 図15は、実施例2に係る集約ビットマップのデータ構造を示す図である。 図16は、従来のコピービットマップのデータ構造を示す図である。 図17は、従来のコピー先ボリュームへの読込処理を説明する図である。
以下に、本願の開示するストレージ装置、ストレージ制御装置およびコピー先データアクセス方法の実施例を図面に基づいて詳細に説明する。なお、実施例では、コピーオンライト向けのバックアップ手法としてSnapOPC(One Point Copy)を用いる。しかしながら、本実施例によりこの発明が限定されるものではない。
[実施例1に係るストレージ装置の構成]
図1は、実施例に係るストレージ装置の構成を示す機能ブロック図である。図1に示すように、ストレージ装置2は、ホスト1と接続し、ホスト1の要求に応じて、コピー元ボリュームに記憶されたコピー元データを、世代毎に管理されたコピー先ボリュームにバックアップする。さらに、ストレージ装置2は、ドライブ3と、チャネルアダプタ(CA)4と、コントローラモジュール(CM)5とを有する。
ドライブ3は、データを記憶するデータ記憶装置であり、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)がある。さらに、ドライブ3は、集約ビットマップ31と、LBA(Logical Block Address)変換テーブル32とを有する。集約ビットマップ31は、コピー元ボリュームの領域のデータについて、コピー先ボリュームへの世代毎のコピーの有無を領域に対応付けて記憶する。LBA変換テーブル32は、コピー元ボリュームの領域に対するコピー先ボリュームの物理領域のアドレスを世代毎に記憶する。これら集約ビットマップ31およびLBA変換テーブル32を記憶するドライブ3は、アクセス処理を高速化するため、SSDであることが望ましい。しかしながら、これに限定されず、HDDであっても良い。また、集約ビットマップ31およびLBA変換テーブル32のデータ構造については、後述する。
CM5は、ドライブ3、CA4および後述する記憶部7等の資源の管理を行うストレージ制御装置に相当する。さらに、CM5は、ドライブ側アダプタ(DA)6と、記憶部7と、制御部8とを有する。DA6は、ドライブ3と通信接続する通信インタフェースである。記憶部7は、例えば、キャッシュメモリ、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子である。さらに、記憶部7は、最新世代ビットマップ71と、セッション管理テーブル72と、エレメント管理テーブル73とを有する。最新世代ビットマップ71は、コピー元ボリュームの対象領域のデータの最新世代のコピー先ボリュームへのコピー状況を記憶する。セッション管理テーブル72は、セッション(以降、世代と同義)を管理する。エレメント管理テーブル73は、セッション管理テーブル72で用いられるエレメントを管理する。なお、最新世代ビットマップ71、セッション管理テーブル72およびエレメント管理テーブル73のデータ構造については、後述する。
制御部8は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。さらに、制御部8は、チャネル制御部81と、キャッシュ制御部82と、ドライブ制御部83と、コピー制御部84とを有する。
チャネル制御部81は、CA4を制御する。キャッシュ制御部82は、キャッシュを一例とする記憶部7を制御する。ドライブ制御部83は、ドライブ3を制御する。コピー制御部84は、SnapOPCを実行する際のバックアップに関連する処理を制御する。ここで、SnapOPCとは、バックアップを実行する際に、コピー元ボリュームのデータのうち、書き込み等による更新が行われた領域における更新前のデータのみをコピー先ボリュームにバックアップする手法である。そして、SnapOPCは、書き込みを行う対象領域を世代毎に管理する。
図2は、SnapOPCについて説明する図である。図2に示すように、ストレージ装置2には、コピー元ボリュームとコピー先ボリュームがドライブ3に割り当てられている。そして、コピー先ボリュームは、複数世代存在し、それぞれSDV(Snap Data Volume)を利用している。SDVは、仮想的なボリュームであり、実際には小さい物理容量で大きい論理容量をホスト1に認識させる。つまり、ホスト1は、コピー元ボリュームのコピー元の物理容量と各世代のコピー先ボリュームの論理領域とが同じ容量であると認識する。言い換えると、コピー元ボリュームのコピー元LBAの最大値は、各コピー先ボリュームの論理領域のデータが存在する箇所を示した論理LBAの最大値と同じとなる。
かかる環境の下、ストレージ装置2は、コピー元ボリュームへの書き込み要求を受信すると、コピー元ボリュームのデータのうち当該要求の行われた書き込み箇所における書き込み前のデータのみを最新世代のコピー先ボリュームへコピーする。
図1に戻って、コピー制御部84は、コピー元読込部841と、コピー元書込部842と、コピー先読込部843と、コピー先書込部844と、セッション管理部845とを有する。
コピー元読込部841は、ホスト1からコピー元ボリュームへの読み込み要求を受信すると、受信要求の行われた対象領域に対するデータをコピー元ボリュームから読み込む。そして、コピー元読込部841は、読み込んだデータをホスト1へ転送する。
コピー元書込部842は、ホスト1からコピー元ボリュームへの書き込み要求を受信すると、最新世代ビットマップ71を用いて、当該要求の行われた対象領域のデータが最新世代のコピー先ボリュームへコピーされているか否かをチェックする。ここで、最新世代ビットマップ71のデータ構造について、図3を参照して説明する。
図3は、実施例1に係る最新世代ビットマップのデータ構造を示す図である。図3に示すように、最新世代ビットマップ71は、コピー元ボリュームの各対象領域のデータが最新世代のコピー先ボリュームへコピー済みであるか否かを記憶する。最新世代ビットマップ71の大きさは、コピー元ボリュームの容量に依存する。例えば、コピー元ボリュームが16GBである場合、「0x02000000」(16進数)ブロック分のビット数が割り当てられる。16ブロック(8キロバイト(KB))を1単位(1ビット)で管理する場合、2メガバイト(MB)の大きさになる。
図3の例では、「0」が、コピー済みであることを示すビット値である。「1」が、コピー済みでないことを示すビット値である。例えば、対象領域である論理LBAが「0x00000000」である場合、対象領域のデータがコピー済みであることを示す「0」を記憶している。対象領域である論理LBAが「0x00000010」である場合、対象領域のデータがコピー済みでないことを示す「1」を記憶している。
図1に戻って、コピー元書込部842は、書き込み要求の行われた対象領域のデータが最新世代のコピー先ボリュームへコピーされていない場合、コピー元ボリュームの当該領域のデータを最新世代のコピー先ボリュームへコピーする。また、コピー元書込部842は、最新世代ビットマップ71の対象領域に対応するビットにコピー済みであることを示す「0」を格納するとともに、対象領域に対応するコピー先の物理アドレスを最新世代のLBA変換テーブル32に格納する。さらに、コピー書込部842は、書き込み要求の行われた対象領域に書き込み要求の行われたデータを書き込む。
コピー元書込部842は、書き込み要求の行われた対象領域のデータが最新世代のコピー先ボリュームへコピーされている場合、書き込み要求の行われた対象領域に書き込み要求の行われたデータを書き込む。この場合、書き込み前のデータが既にコピー先ボリュームへコピーされているので、コピー元ボリュームの対象領域のデータをコピー先ボリュームへコピーすることはしない。
ここで、LBA変換テーブル32のデータ構造について、図4を参照して説明する。図4は、LBA変換テーブル32のデータ構造を示す図である。図4に示すように、LBA変換テーブル32は、コピー元ボリュームの領域に対応するコピー先ボリュームの論理LBAとコピー先ボリュームの物理領域のデータが存在する箇所を示す物理LBAとを対応付けて記憶する。すなわち、LBA変換テーブル32は、コピー先ボリュームに格納されているデータについて論理LBAを物理LBAに変換することを可能とするテーブルである。図4の例では、コピー元ボリュームが「0x02000000」ブロック(16GB)である場合の1世代当たりのテーブルを表している。コピー先ボリュームに対し未コピー状態である部分は初期値として「0xFFFFFFFF」(16進数)を記憶する。
図1に戻って、コピー先読込部843は、コピー先ボリュームへの読み込み要求を受信した場合に、集約ビットマップ31に記憶されたコピーの有無を示す情報を用いてアクセス要求された論理アドレスのコピーの有無を判定する。そして、コピー先読込部843は、判定結果に基づいて指定される世代のLBA変換テーブル32から取得したコピー先ボリュームの物理アドレスに対してアクセスを行う。
例えば、コピー先読込部843は、ホスト1からコピー先ボリュームへの読み込み要求を受信すると、集約ビットマップ31から、当該要求の行われた対象領域をキーとして、当該対象領域に関わるコピーの有無を読み込む。そして、コピー先読込部843は、読み込んだ対象領域に関わるコピーの有無から、当該要求の行われた対象世代を含む集約世代のコピーの有無を取得する。かかる集約世代とは、複数世代を一括りにした世代を示し、例えば1世代から4世代までの4世代分を一括りにした世代を指す。ここで、集約ビットマップ31のデータ構造について、図5を参照して説明する。
図5は、実施例1に係る集約ビットマップのデータ構造を示す図である。図5に示すように、集約ビットマップ31は、コピー先ボリュームへの集約世代毎のコピーの有無を論理LBAに対応付けて記憶する。論理LBAは、16ブロック(8キロバイト(KB))を1単位とする。ここでは、「0」は、コピー元ボリュームの対象領域のデータが複数世代のいずれかのコピー先ボリュームへコピー済みであることを示すビット値である。「1」は、コピー元ボリュームの対象領域のデータがいずれの複数世代のコピー先ボリュームにもコピー済みでないことを示すビット値である。例えば、符号a0のように、対象領域がLBA0x00000000(16進数)である場合、4世代を一括りにしたコピー先ボリュームへのコピーの有無を「011011111・・・」と記憶する。すなわち、世代1−4のコピーの有無は、コピー済みであることを示す「0」を記憶し、世代5−8のコピーの有無は、コピー済みでないことを示す「1」を記憶している。符号a1のように、対象領域がLBA0x00000010である場合、4世代を一括りにしたコピー先ボリュームへのコピーの有無を「101011111・・・」と記憶する。すなわち、世代1−4のコピーの有無は、コピー済みでないことを示す「1」を記憶し、世代5−8のコピーの有無は、コピー済みであることを示す「0」を記憶している。
なお、集約ビットマップ31は、集約世代に最新世代の情報を反映させないものとする。最新世代の情報として最新世代ビットマップ71が存在するからである。しかしながら、集約ビットマップ31は、これに限定されず、集約世代に最新世代の情報を反映させるようにしても良い。また、図5の例では、集約ビットマップ31は、1つの集約世代を4世代毎に括るものとして説明したが、4世代毎に限らず、例えば3世代毎に括っても良いし、5世代毎に括っても良い。
図1に戻って、コピー先読込部843は、対象世代を含む集約世代のコピーの有無がコピー済みである場合、対象世代におけるLBA変換テーブル32から、対象領域に対する物理領域のアドレスを読み込む。そして、コピー先読込部843は、読み込んだアドレスが初期値でない場合には、当該アドレスが指すデータを読み込む。また、コピー先読込部843は、読み込んだアドレスが初期値である場合には、コピー済みであると判定された集約世代に含まれる対象世代と異なる世代について、対象世代の場合の処理と同様にデータの読み込みを実行する。
また、コピー先読込部843は、対象世代を含むコピーの有無がコピー済みでない場合、集約ビットマップ31から既に読み込んだ、対象領域に関わるコピーの有無からコピー済みである集約世代を検索する。そして、コピー先読込部843は、コピー済みである集約世代に含まれる先頭世代から最終世代まで順番に、各世代に対応するLBA変換テーブル32から対象領域に対する物理領域のアドレスを読み込み、読み込んだアドレスが初期値以外のアドレスを取得する。そして、コピー先読込部843は、取得した初期値以外のアドレスが指すデータを読み込む。
また、コピー先読込部843は、読み込んだデータをホスト1へ転送する。なお、集約ビットマップ31の集約世代に最新世代の情報を反映させない場合には、コピー先読込部843は、最新世代の1つ前の世代を含む集約世代までを検索対象とする。そして、コピー先読込部843は、最新世代の1つ前の世代を含む集約世代がコピー済みでない場合には、最新世代ビットマップ71を用いて、対象領域に対応するコピーの有無を参照するようにすれば良い。
コピー先書込部844は、ホスト1からコピー先ボリュームへの書き込み要求を受信すると、当該要求の行われた対象世代のLBA変換テーブル32から、当該要求の行われた対象領域に対する物理領域のアドレスを読み込む。また、コピー先書込部844は、読み込んだアドレスが初期値である場合、コピー元ボリュームにおける対象領域のデータを対象世代の空き領域にコピーする。これは、例えば書き込み要求の行われたデータ長が対象領域の読み込み単位のブロック長より短い場合に、当該要求に応じた長さのデータを書き込んだ後同じ領域を読み込んだときのデータの不整合を防止するためである。
また、コピー先書込部844は、対象世代のLBA変換テーブル32の物理LBAを、コピーした物理領域のアドレスに更新する。加えて、コピー先書込部844は、集約ビットマップ31の対象領域について、対象世代を含む集約世代のビットをコピー済みに更新する。そして、コピー先書込部844は、書き込み要求の行われた対象世代のコピー先ボリュームの対象領域に、当該要求の行われたデータを書き込む。
また、コピー先書込部844は、読み込んだアドレスが初期値以外の場合、書き込み要求の行われた対象世代のコピー先ボリュームの対象領域に、当該要求の行われたデータを書き込む。
セッション管理部845は、ホスト1からスナップショットの作成要求を受信すると、コピー先ボリュームにおけるセッション(世代と同義)を作成する時に、セッション(世代と同義)に対応するセッション管理テーブル72を作成する。また、セッション管理部845は、ドライブ3上の予め作成されるストレージプールより、LBA変換テーブル32に必要なエレメントを割り当てる。ここで、予め作成されるストレージプールは、スナップショット用の領域として専用に使用でき、「スナップテーブルプール」という。
また、セッション管理部845は、初回のセッションの作成時の場合には、スナップテーブルプールより、集約ビットマップ31に必要なエレメントを割り当て、割り当てたエレメント分の領域をコピー済みでないことを示す「1」で初期化(無効化)する。かかる場合には、セッション管理部845は、最新世代ビットマップ71を記憶部7に作成し、コピー済みでないことを示す「1」で初期化する。例えば、コピー元ボリュームが16GBである場合、16ブロック(8キロバイト(KB))を1単位として「0x02000000」(16進数)ブロック分のビット(2メガバイト(MB))をコピー済みでないことを示す「1」で初期化する。
ここで、セッション管理テーブル72のデータ構造について、図6を参照して説明する。図6は、セッション管理テーブルのデータ構造を示す図である。図6に示すように、セッション管理テーブル72は、コピー元ボリューム番号72a、コピー先ボリューム番号72b、コピー元ボリュームの先頭LBA72cおよびコピー先ボリュームの先頭LBA72dを世代番号72fに対応付けて記憶する。また、セッション管理テーブル72は、コピー対象ブロック数72e、LBA変換テーブルの先頭エレメント番号72gおよび末尾エレメント番号72hを世代番号72fに対応付けて記憶する。さらに、セッション管理テーブル72は、集約ビットマップの先頭エレメント番号72iおよび末尾エレメント番号72jを世代番号72fに対応付けて記憶する。
コピー元ボリューム番号72aは、コピー元ボリュームの識別番号を示す。コピー先ボリューム番号72bは、コピー先ボリュームの識別番号を示す。コピー元ボリュームの先頭LBA72cは、コピー元ボリュームのコピー対象領域の先頭LBAを示す。コピー先ボリュームの先頭LBA72dは、コピー先ボリュームのコピー対象領域の先頭LBAを示す。コピー対象ブロック数72eは、コピー対象の全体のブロック数を示す。世代番号72fは、コピー先ボリュームの世代番号を示す。
LBA変換テーブルの先頭エレメント番号72gは、世代番号で示される世代のLBA変換テーブル32に必要なエレメントのうち先頭のエレメントの識別番号を示す。LBA変換テーブルの末尾エレメント番号72hは、世代番号で示される世代のLBA変換テーブル32に必要なエレメントのうち末尾のエレメントの識別番号を示す。集約ビットマップ31の先頭エレメント番号72iは、集約ビットマップ31に必要なエレメントのうち先頭のエレメントの識別番号を示す。集約ビットマップ31の末尾エレメント番号72jは、集約ビットマップ31に必要なエレメントのうち末尾のエレメントの識別番号を示す。集約ビットマップ31の先頭エレメント番号72iおよび末尾エレメント番号72jは、初回に作成される世代、すなわち最古の世代のみに設定される。
エレメントは、エレメント管理テーブル73によって管理される。エレメント管理テーブル73のデータ構造について、図7を参照して説明する。図7は、エレメント管理テーブルのデータ構造を示す図である。図7に示すように、エレメント管理テーブル73は、エレメント番号73a、SSDアドレス73b、次エレメント番号73cおよび前エレメント番号73dを対応付けて記憶する。エレメント番号73aは、エレメントの識別番号を示す。SSDアドレス73bは、LBA変換テーブル32または集約ビットマップ31の情報をSSDに記憶する場合の、記憶するSSD上のアドレスを示す。次エレメント番号73cは、LBA変換テーブル32または集約ビットマップ31のそれぞれ情報の記憶に用いられる後続するエレメントの識別番号を示す。前エレメント番号73dは、LBA変換テーブル32または集約ビットマップ31のそれぞれの情報の記憶に用いられる直前のエレメントの識別番号を示す。
ここで、スナップテーブルプール内のエレメントについて、図8を参照して説明する。図8は、スナップテーブルプール内のエレメントを説明する図である。図8に示すように、スナップテーブルプールは、1MBの区画を1つのエレメントとして分割される。そして、セッション管理部845は、LBA変換テーブル32および集約ビットマップ31にそれぞれ必要なエレメント数のエレメントを割り当てる。仮にエレメントを採用しないで単純に連続領域としてスナップテーブルプールが使用されると、領域の獲得と解放が繰り返されることによって、使用可能な領域が歯抜けの状態となる。そうすると、容量に空きがあっても連続領域として領域を確保できなくなる場合が生じる。そこで、セッション管理部845は、セッションの作成時に、連続領域に関係なく、必要なエレメント数のエレメントを割り当てる。ここでは、1エレメントは、LBA変換テーブル32について、論理LBAが「0x200000」(16進数)ブロック分、すなわち1GB分のコピー元ボリュームの領域に相当する。また、1エレメントは、集約ビットマップ31について、1GB分のコピー元ボリュームの領域に相当する(4世代分を一括りにした場合)。つまり、コピー先読込部843が集約ビットマップ31から対象領域に対応する論理LBAを読み込む際、1エレメントを読み込むだけで論理LBAに関わる全ての集約世代のコピーの有無を取得できる。このため、仮にバックアップの世代を増やしたとしても、コピー先ボリュームへの読み込み処理の性能劣化を防止できる。
[コピー元ボリュームへの書込処理の手順]
次に、コピー元ボリュームへの書込処理の手順について、図9を参照して説明する。図9は、コピー元ボリュームへの書込処理の手順を示すフローチャートである。
まず、コピー元書込部842は、ホスト1からコピー元ボリュームへの書き込み要求を受信したか否かを判定する(ステップS11)。ホスト1からコピー元ボリュームへの書き込み要求を受信しなかったと判定した場合(ステップS11;No)、コピー元書込部842は、当該要求を受信するまで判定処理を繰り返す。
一方、ホスト1からコピー元ボリュームへの書き込み要求を受信したと判定した場合(ステップS11;Yes)、コピー元書込部842は、最新世代ビットマップ71を記憶部7から読み込む(ステップS12)。かかるコピー元ボリュームへの書き込み要求には、例えば、当該要求の行われた対象領域であるLBAと当該要求の行われたデータを含む。
そして、コピー元書込部842は、読み込んだ最新世代ビットマップ71の、対象領域に対応する対象ビットがコピー済みでない「1」であるか否かを判定する(ステップS13)。対象ビットがコピー済みである「0」であると判定した場合(ステップS13;No)。コピー元書込部842は、ステップS17に移行する。
一方、対象ビットがコピー済みでない「1」であると判定した場合(ステップS13;Yes)、コピー元書込部842は、コピー元ボリュームの対象領域のデータを、最新世代のSDVの空き領域である物理LBAへコピーする(ステップS14)。続いて、コピー元書込部842は、最新世代ビットマップ71の対象領域に対応するビットをコピー済みであることを示す「0」に更新する(ステップS15)。加えて、コピー元書込部842は、コピー先の空き領域である物理LBAを対象領域に対応付けて、最新世代のLBA変換テーブル32を更新する(ステップS16)。
その後、コピー元書込部842は、ホスト1から書き込み要求の行われた、コピー元ボリュームの対象領域へ書き込み要求の行われたデータを書き込む(ステップS17)。
[コピー先ボリュームへの読込処理の手順]
次に、コピー先ボリュームへの読込処理の手順について、図10Aおよび図10Bを参照して説明する。図10Aは、コピー先ボリュームへの読込処理の手順を示すフローチャート(1)である。図10Bは、コピー先ボリュームへの読込処理の手順を示すフローチャート(2)である。なお、集約ビットマップ31およびLBA変換テーブル32は、SSDのスナップテーブルプールに記憶されているものとする。また、最新世代ビットマップ71は、記憶部7の一例としてメモリに記憶されているものとする。
まず、コピー先読込部843は、ホスト1からSDV(コピー先ボリューム)への読み込み要求を受信したか否かを判定する(ステップS21)。ホスト1からSDVへの読み込み要求を受信しなかったと判定した場合(ステップS21;No)、コピー先読込部843は、当該要求を受信するまで判定処理を繰り返す。
一方、ホスト1からコピー先ボリュームへの読み込み要求を受信したと判定した場合(ステップS21;Yes)、コピー先読込部843は、最新世代であるか否かを判定する(ステップS21A)。最新世代でない場合には(ステップS21A;No)、集約ビットマップ31をSSDより読み込む(ステップS22)。具体的には、コピー先読込部843は、コピー先ボリュームへの読み込み要求を受信したと判定した場合、当該要求の行われた対象世代および対象領域である論理LBAを取得する。そして、コピー先読込部843は、対象世代を選択する。そして、コピー先読込部843は、取得した論理LBAに関わるコピーの有無を集約ビットマップ31から読み込む。
そして、コピー先読込部843は、読み込んだ集約ビットマップ31の、対象世代を含む集約世代の集約ビットがコピー済みであることを示す「0」であるか否かを判定する(ステップS23)。集約ビットがコピー済みであることを示す「0」でないと判定した場合(ステップS23;No)、コピー先読込部843は、次の集約世代の先頭の世代を選択する(ステップS24)。そして、コピー先読込部843は、次の集約世代の集約ビットをチェックすべく、ステップS23に移行する。
一方、集約ビットがコピー済みであることを示す「0」であると判定した場合(ステップS23;Yes)、コピー先読込部843は、選択した世代が最新世代であるか否かを判定する(ステップS25)。選択した世代が最新世代でない場合には(ステップS25;No)、コピー先読込部843は、選択した世代のLBA変換テーブル32を読み込む(ステップS26)。具体的には、コピー先読込部843は、LBA変換テーブル32の、論理LBAに対応する物理LBAを読み込む。
続いて、コピー先読込部843は、読み込んだ物理LBAが初期値であるか否かを判定する(ステップS27)。読み込んだ物理LBAが初期値であると判定した場合(ステップS27;Yes)、コピー先読込部843は、次の世代を選択する(ステップS28)。そして、コピー先読込部843は、選択した世代が次の集約世代に含まれるか否かを判定する(ステップS29)。
選択した世代が次の集約世代に含まれると判定した場合(ステップS29;Yes)、コピー先読込部843は、次の集約世代の集約ビットをチェックすべく、ステップS23に移行する。一方、選択した世代が次の集約世代に含まれないと判定した場合(ステップS29;No)、コピー先読込部843は、ステップS25に移行する。
ステップS27に戻って、読み込んだ物理LBAが初期値でないと判定した場合(ステップS27;No)、コピー先読込部843は、選択した世代のSDVの、読み込んだ物理LBAよりデータを読み込む(ステップS30)。そして、コピー先読込部843は、ステップS31に移行する。
ステップS21Aに戻って、選択した世代が最新世代である場合には(ステップS21A;Yes)、コピー読込部843は、ステップS41に移行する。
ステップS25に戻って、選択した世代が最新世代である場合には(ステップS25;Yes)、コピー先読込部843は、ステップS41に移行する。
続いて、コピー先読込部843は、メモリ上にある最新世代ビットマップ71を用いて、最新世代のビットをチェックする(ステップS41)。具体的には、コピー先読込部843は、SDVへの読み込み要求の行われた対象領域である論理LBAに対応するビットを参照する。
そして、コピー先読込部843は、チェック対象のビットがコピー済みであることを示す「0」であるか否かを判定する(ステップS42)。チェック対象のビットがコピー済みであることを示す「0」であると判定した場合(ステップS42;Yes)、コピー先読込部843は、最新世代のLBA変換テーブル32を読み込む。そして、コピー先読込部843は、LBA変換テーブル32の、論理LBAに対応する物理LBAを取得する(ステップS43)。そして、コピー先読込部843は、最新世代のSDVの、取得した物理LBAよりデータを読み込む(ステップS44)。そして、コピー先読込部843は、ステップS31に移行する。
一方、チェック対象のビットがコピー済みであることを示す「0」でないと判定した場合(ステップS42;No)、コピー先読込部843は、コピー元ボリュームの、対象領域である論理LBAよりデータを読み込む(ステップS45)。そして、コピー先読込部843は、ステップS31に移行する。
その後、コピー先読込部843は、読み込んだデータをホスト1へ転送する(ステップS31)。
[コピー先ボリュームへの書込処理の手順]
次に、コピー先ボリュームへの書込処理の手順について、図11を参照して説明する。図11は、コピー先ボリュームへの書込処理の手順を示すフローチャートである。なお、集約ビットマップ31およびLBA変換テーブル32は、SSDのスナップテーブルプールに記憶されているものとする。また、最新世代ビットマップ71は、記憶部7の一例としてメモリに記憶されているものとする。
まず、コピー先書込部844は、ホスト1からSDV(コピー先ボリューム)への書き込み要求を受信したか否かを判定する(ステップS51)。ホスト1からSDVへの書き込み要求を受信しなかったと判定した場合(ステップS51;No)、コピー先書込部844は、当該要求を受信するまで判定処理を繰り返す。
一方、ホスト1からコピー先ボリュームへの書き込み要求を受信したと判定した場合(ステップS51;Yes)、コピー先書込部844は、書き込み要求が行われた対象世代のLBA変換テーブル32を読み込む(ステップS52)。具体的には、コピー先書込部844は、LBA変換テーブル32の、書き込み要求が行われた対象領域である論理LBAに対応する物理LBAを読み込む。
続いて、コピー先書込部844は、読み込んだ物理LBAが初期値であるか否かを判定する(ステップS53)。読み込んだ物理LBAが初期値であると判定した場合(ステップS53;Yes)、コピー先書込部844は、コピー元ボリュームの対象領域のデータを、対象世代に対応するSDVの空き領域である物理LBAへコピーする(ステップS54)。
続いて、コピー先書込部844は、コピー先の空き領域である物理LBAを対象領域である論理LBAに対応付けて、対象世代のLBA変換テーブル32を更新する(ステップS55)。加えて、コピー先書込部844は、SSDにある集約ビットマップ31をコピー済みであることを示す「0」に更新する(ステップS56)。具体的には、コピー先書込部844は、集約ビットマップ31の対象領域である論理LBAについて、対象世代を含む集約世代のビットを「0」に更新する。そして、コピー先書込部844は、ステップS57に移行する。
ステップS53に戻って、読み込んだ物理LBAが初期値でないと判定した場合(ステップS53;No)、コピー先書込部844は、ステップS57に移行する。その後、コピー先書込部844は、ホスト1から書き込み要求の行われた、SDVの対象領域へ書き込み要求の行われたデータを書き込む(ステップS57)。
[スナップショットの作成手順]
次に、スナップショットの作成手順について、図12を参照して説明する。図12は、スナップショットの作成手順を示すフローチャートである。なお、集約ビットマップ31およびLBA変換テーブル32は、SSDのスナップテーブルプールに記憶されるものとする。また、最新世代ビットマップ71は、記憶部7の一例としてメモリに記憶されるものとする。
まず、セッション管理部845は、ホスト1からスナップショットの作成要求を受信したか否かを判定する(ステップS61)。ホスト1からスナップショットの作成要求を受信しなかったと判定した場合(ステップS61;No)、セッション管理部845は、当該要求を受信するまで判定処理を繰り返す。
一方、ホスト1からスナップショットの作成要求を受信したと判定した場合(ステップS61;Yes)、セッション管理部845は、要求が行われた対象世代のセッション管理テーブル72を作成する(ステップS62)。例えば、セッション管理部845は、セッション管理テーブル72のコピー元ボリューム番号72aにコピー元ボリュームの識別番号を格納する。セッション管理部845は、セッション管理テーブル72のコピー先ボリューム番号72bに対象世代に対応するコピー先ボリュームの識別番号を格納する。セッション管理部845は、セッション管理テーブル72のコピー元ボリュームの先頭LBA72cにコピー元ボリュームの先頭LBAを格納する。セッション管理部845は、セッション管理テーブル72のコピー先ボリュームの先頭LBA72dに対象世代に対応するコピー先ボリュームの先頭LBAを格納する。セッション管理部845は、セッション管理テーブル72のコピー対象ブロック数72eにコピー対象であるコピー元ボリュームの全体のブロック数を格納する。セッション管理部845は、セッション管理テーブル72の世代番号72gに対象世代の識別番号を格納する。
そして、セッション管理部845は、SSDのスナップテーブルプールより、LBA変換テーブル32に必要なエレメントを割り当て、セッション管理テーブル72に接続する(ステップS63)。例えば、セッション管理部845は、コピー元ボリュームの全ブロック数に応じた数のエレメントを獲得し、LBA変換テーブル32として新規世代のセッション管理テーブル72に接続する。
続いて、セッション管理部845は、初回の世代作成であるか否かを判定する(ステップS64)。初回の世代作成であると判定した場合(ステップS64;Yes)、セッション管理部845は、最新世代ビットマップ71をメモリに割り当て、コピー済みでないことを示す「1」で初期化する(ステップS65)。
そして、セッション管理部845は、スナップテーブルプールより、集約ビットマップ31に必要なエレメントを割り当て、コピー済みでないことを示す「1」で初期化し、セッション管理テーブル72に接続する(ステップS66)。例えば、セッション管理部845は、コピー元ボリュームの全ブロック数且つ作成可能な世代数に応じた数のエレメントを獲得し、集約ビットマップ31として新規世代のセッション管理テーブル72に接続する。そして、セッション管理部845は、初回の世代の作成を終了する。
一方、初回の世代作成でないと判定した場合(ステップS64;No)、セッション管理部845は、最新世代ビットマップ71を作成した時点の最新世代を集約ビットマップ31に反映し今回作成する世代を最新世代とすべく、ステップS67に移行する。セッション管理部845は、最新世代ビットマップ71の各ビットに対応させたLBAを先頭LBAに設定する(ステップS67)。そして、セッション管理部845は、設定したLBAに対応するビットがコピー済みであることを示す「0」であるか否かを判定する(ステップS68)。
設定したLBAに対応するビットが「0」であると判定した場合(ステップS68;Yes)、セッション管理部845は、集約ビットマップ31をコピー済みであることを示す「0」に更新する(ステップS69)。例えば、セッション管理部845は、SDVの集約ビットマップ31から、設定したLBAをキーとして、当該LBAに関わるビット群を読み込む。そして、セッション管理部845は、読み込んだビット群の中で、最新世代ビットマップ71を作成した時点の最新世代が含まれるビットを「0」に更新し、SDVへ書き戻す。そして、セッション管理部845は、ステップS70に移行する。
一方、設定したLBAに対応するビットが「0」でないと判定した場合(ステップS68;No)、セッション管理部845は、何も処理せず、ステップS70に移行する。
続いて、セッション管理部845は、最新世代ビットマップ71の各ビットに対応させたLBAを次のLBAに設定する(ステップS70)。そして、セッション管理部845は、設定したLBAが最終LBAを超えたか否かを判定する(ステップS71)。
設定したLBAが最終LBAを超えていないと判定した場合(ステップS71;No)、セッション管理部845は、設定したLBAに対応するビットをチェックすべく、ステップS68に移行する。一方、設定したLBAが最終LBAを超えていると判定した場合(ステップS71;Yes)、セッション管理部845は、最新世代ビットマップ71の各ビットをコピー済みでないことを示す「1」に初期化する(ステップS72)。そして、セッション管理部845は、今回の世代の作成を終了する。
[スナップショットの削除手順]
次に、スナップショットの削除手順について、図13を参照して説明する。図13は、スナップショットの削除手順を示すフローチャートである。なお、集約ビットマップ31およびLBA変換テーブル32は、SSDのスナップテーブルプールに記憶されているものとする。また、最新世代ビットマップ71は、記憶部7の一例としてメモリに記憶されているものとする。
まず、セッション管理部845は、ホスト1からスナップショットの削除要求を受信したか否かを判定する(ステップS81)。ホスト1からスナップショットの削除要求を受信しなかったと判定した場合(ステップS81;No)、セッション管理部845は、当該要求を受信するまで判定処理を繰り返す。
一方、ホスト1からスナップショットの削除要求を受信したと判定した場合(ステップS81;Yes)、セッション管理部845は、最後の世代を削除するか否かを判定する(ステップS82)。最後の世代を削除すると判定した場合(ステップS82;Yes)、セッション管理部845は、最新世代ビットマップ71および集約ビットマップ31を解放し(ステップS83)、ステップS91に移行する。
一方、最後の世代を削除しないと判定した場合(ステップS82;No)、セッション管理部845は、削除する世代のLBA変換テーブル32を読み込み、論理LBAを先頭の論理LBAに設定する(ステップS84)。続いて、セッション管理部845は、設定した論理LBAに対応する物理LBAが初期値であるか否かを判定する(ステップS85)。設定した論理LBAに対応する物理LBAが初期値であると判定した場合(ステップS85;Yes)、セッション管理部845は、削除する世代を含む集約世代のビットをそのままにすべく、ステップS89に移行する。
一方、設定した論理LBAに対応する物理LBAが初期値でないと判定した場合(ステップS85;No)、セッション管理部845は、該当する集約世代に含まれる他の世代のLBA変換テーブル32を読み込む(ステップS86)。そして、セッション管理部845は、設定した論理LBAに対応する物理LBAについて、初期値以外の世代が1つ以上あるか否かを判定する(ステップS87)。
初期値以外の世代が1つ以上あると判定した場合(ステップS87;Yes)、セッション管理部845は、該当する集約世代のビットをそのままにすべく、ステップS89に移行する。一方、初期値以外の世代が1つ以上ないと判定した場合(ステップS87;No)、セッション管理部845は、該当する集約世代のビットをコピー済みでないことを示す「1」に更新し(ステップS88)、ステップS89に移行する。
続いて、セッション管理部845は、論理LBAを次の論理LBAに設定する(ステップS89)。そして、セッション管理部845は、設定した論理LBAが最終の論理LBAを超えたか否かを判定する(ステップS90)。
設定した論理LBAが最終の論理LBAを超えていないと判定した場合(ステップS90;No)、セッション管理部845は、設定した論理LBAに対応する物理LBAをチェックすべく、ステップS85に移行する。一方、設定した論理LBAが最終の論理LBAを超えていると判定した場合(ステップS90;Yes)、セッション管理部845は、削除する世代のLBA変換テーブル32を解放する(ステップS91)。そして、セッション管理部845は、削除する世代のセッション管理テーブル72を削除する(ステップS92)。そして、セッション管理部845は、スナップショットの削除を終了する。
なお、集約ビットマップ31は、コピー先ボリュームへの集約世代毎のコピーの有無を論理LBAに対応付けて記憶するものとして説明した。集約世代は、複数世代を一括りにした世代である。しかしながら、集約ビットマップ31は、集約世代を1世代に代えて、コピー先ボリュームへの1世代毎のコピーの有無を論理LBAに対応付けて記憶するものとしても良い。ここで、実施例1に係る集約ビットマップ31Aのデータ構造の変形例について、図14を参照して説明する。
図14は、実施例1に係る集約ビットマップのデータ構造の変形例を示す図である。図14に示すように、コピー先ボリュームへの1世代毎のコピーの有無を論理LBAに対応付けて記憶する。例えば、符号a2のように、対象領域がLBA0x00000000(16進数)である場合、コピーの有無を「011011111・・・」と記憶する。すなわち、世代1のコピーの有無が、コピー済みであることを示す「0」を記憶し、世代2のコピーの有無が、コピー済みでないことを示す「1」を記憶している。
[実施例1の効果]
上記実施例1によれば、ストレージ装置2は、コピー元ボリュームの論理LBAのデータについて、コピー先ボリュームへの世代毎のコピーの有無を論理LBAに対応付けてドライブ3の集約ビットマップ31に記憶する。そして、ストレージ装置2は、コピー先ボリュームへの読み込み要求を受信すると、集約ビットマップ31に記憶された、論理LBAに対応付けられた世代毎のコピーの有無を用いて、読み込み要求された論理LBAにアクセスする。かかる構成によれば、ストレージ装置2は、コピー先ボリュームへの世代毎のコピーの有無を論理LBAに対応付けて集約ビットマップ31に記憶しているので、読み込み要求がされた論理LBAに対応付けられた世代毎のコピーの有無を纏めて読み込める。このため、ストレージ装置2は、読み込み要求がされた対象世代がコピー無しの場合であっても、コピー有りの世代を高速に検索できる。すなわち、ストレージ装置2は、論理LBA毎のコピーの有無を世代に対応付けた従来のコピービットマップの場合と比べて、ドライブ3へのアクセス回数を減少させるので、コピー有りの世代を高速に検索できる。この結果、ストレージ装置2は、コピー先ボリュームへの読み込み性能を向上させることができる。
また、上記実施例1によれば、ストレージ装置2は、コピー元ボリュームの論理LBAのデータについて、複数世代を一括りにしたコピー先ボリュームへのコピーの有無を論理LBAに対応付けてドライブ3の集約ビットマップ31に記憶する。そして、ストレージ装置2は、集約ビットマップ31に記憶された、論理LBAに対応付けられた複数世代毎のコピーの有無を用いて、読み込み要求がされた論理LBAにアクセスする。かかる構成によれば、ストレージ装置2は、複数世代を一括りにしたコピー先ボリュームへのコピーの有無を論理LBAに対応付けて記憶しているので、読み込み要求がされた論理LBAに対応付けられた複数世代毎のコピーの有無を纏めて読み込める。このため、ストレージ装置2は、読み込み要求がされた対象世代を含む複数世代のコピーの有無がコピー無しの場合であっても、コピー有りの複数世代を高速に検索できる。すなわち、ストレージ装置2は、論理LBA毎のコピーの有無を世代に対応付けた従来のコピービットマップの場合と比べて、ドライブ3へのアクセス回数を減少させるので、コピー有りの世代を有する複数世代を高速に検索できる。
また、上記実施例1によれば、ストレージ装置2は、コピー元ボリュームの論理LBAに対するコピー先ボリュームの物理LBAを世代毎にドライブ3のLBA変換テーブル32に記憶する。そして、ストレージ装置2は、集約ビットマップ31に記憶された論理LBAに対応する情報から、読み込み要求された対象世代を含むコピーの有無を検索し、検索したコピーの有無に基づいてコピーが有るか否かを判定する。そして、ストレージ装置2は、コピーが有ると判定した場合、対象世代のLBA変換テーブル32から、読み込み要求された論理LBAに対する物理LBAを読み込み、読み込んだ物理LBAが初期値でない場合には、該物理LBAからデータを読み込む。一方、ストレージ装置2は、読み込んだ物理LBAが初期値である場合には、コピーが有ると判定された複数世代のうち対象世代と異なる世代についてデータの読み込みを実行する。かかる構成によれば、ストレージ装置2は、読み込み要求がされた対象世代を含む複数世代のいずれかがコピー有りの場合、対象世代にコピーが無くても、複数世代のいずれかよりデータを読み込めるので、データを読み込める世代の範囲を早期に限定できる。
また、上記実施例1によれば、ストレージ装置2は、読み込み要求により指定された世代が最新世代であり、最新世代のコピーが無いと判定された場合は、コピー元ボリュームに対してアクセスを行う。かかる構成によれば、ストレージ装置2は、最新世代のコピーがない場合であっても、最新世代のコピー元ボリュームのデータをコピー先ボリュームのデータとして検索できるので、コピー先ボリュームへの読み込み性能を向上させることができる。
また、上記実施例1によれば、ストレージ装置2は、コピー先ボリュームへの書き込み要求を受信すると、書き込み要求された世代のLBA変換テーブル32から取得した物理アドレスが初期値である場合、前記コピー先ボリュームにおける当該世代の空き領域に書き込み要求されたデータを書き込む。そして、ストレージ装置2は、さらに、集約ビットマップ31の該世代に対応するコピーの有無に関係する情報にコピー有りの情報を書き込む。かかる構成によれば、ストレージ装置2は、書き込み要求された世代について、データを書き込むと、集約ビットマップ31の該世代に対応するコピーの有無に関係する情報にコピー有りの情報を書き込む。この結果、ストレージ装置2は、次回、該世代と同じ括りの世代についてコピー先ボリュームへの読み込み要求を受信すると、集約ビットマップ31を利用した読み込みをすることができ、該世代と同じ括りの世代のデータを高速に検索できる。
また、ストレージ装置2では、ドライブ3をSSDまたはHDDとした。かかる構成によれば、ストレージ装置2は、世代を増やす場合であっても、メモリの場合と異なり、容量の不足から世代を増やすことが困難となるという問題を防止できる。
ところで、実施例1に係るストレージ装置2では、集約ビットマップ31が、コピー先ボリュームへの集約世代毎のコピーの有無を論理LBAに対応付けて記憶する場合を説明した。しかしながら、ストレージ装置2では、これに限定されず、集約ビットマップ31Bが、コピー先ボリュームへの論理LBA毎のコピーの有無を集約世代に対応付けて記憶するようにしても良い。
そこで、実施例2では、集約ビットマップ31Bが、コピー先ボリュームへの論理LBA毎のコピーの有無を集約世代に対応付けて記憶する場合について説明する。
[実施例2に係るストレージ装置の構成]
実施例2に係るストレージ装置2の構成を示す機能ブロック図は、図1に示すストレージ装置2と同様であるので、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、集約ビットマップ31Bのデータ構造を変更した点にある。
図15は、実施例2に係る集約ビットマップのデータ構造を示す図である。図15に示すように、集約ビットマップ31Bは、コピー先ボリュームへの論理LBA毎のコピーの有無を集約世代に対応付けて記憶する。ここでは、「0」は、コピー元ボリュームの対象領域のデータが複数世代のいずれかのコピー先ボリュームへコピー済みであることを示すビット値である。「1」は、コピー元ボリュームの対象領域のデータがいずれの複数世代のコピー先ボリュームにもコピー済みでないことを示すビット値である。例えば、4世代を一括りにした世代1から世代4までの集約世代の場合、コピー先ボリュームへのコピーの有無を「011011111・・・」と記憶する。そして、対象領域である論理LBAが「0x00000000」である場合、対象領域のデータがコピー済みであることを示す「0」を記憶している。対象領域である論理LBAが「0x00000010」である場合、対象領域のデータがコピー済みでないことを示す「1」を記憶している。
なお、論理LBAは、16ブロック(8キロバイト(KB))を1単位とする。また、集約ビットマップ31Bは、集約世代に最新世代の情報を反映させないものとする。最新世代の情報として最新世代ビットマップ71が存在するからである。しかしながら、集約ビットマップ31Bは、これに限定されず、集約世代に最新世代の情報を反映させるようにしても良い。
また、図15の例では、集約ビットマップ31Bは、1つの集約世代を4世代毎に括るものとして説明したが、4世代毎に限らず、例えば3世代毎に括っても良いし、5世代毎に括っても良い。
図1におけるコピー先読込部843は、ホスト1からコピー先ボリュームへの読み込み要求を受信すると、集約ビットマップ31から、当該要求の行われた対象世代を含む集約世代のコピーの有無を読み込む。そして、コピー先読込部843は、読み込んだ集約世代に関わるコピーの有無から、当該要求の行われた対象領域である論理LBAに対応するコピーの有無を取得する。
また、コピー先読込部843は、コピーの有無がコピー済みである場合、対象世代におけるLBA変換テーブル32から、対象領域である論理LBAに対する物理領域のアドレスを読み込む。そして、コピー先読込部843は、対象世代について、読み込んだアドレスが初期値でない場合には、当該アドレスが指すデータを読み込む。また、コピー先読込部843は、対象世代について、読み込んだアドレスが初期値である場合には、コピー済みであると判定された集約世代に含まれる対象世代と異なる世代について、対象世代の場合の処理と同様に、データの読み込みを実行する。
また、コピー先読込部843は、コピーの有無がコピー済みでない場合、順次異なる世代を検索すべく、集約ビットマップ31から、次の集約世代のコピーの有無を読み込む。そして、コピー先読込部843は、読み込んだコピーの有無を用いて、対象世代を含む集約世代の場合の処理と同様に、データの読み込みを実行する。
また、コピー先読込部843は、読み込んだデータをホスト1へ転送する。なお、集約ビットマップ31Bの集約世代に最新世代の情報を反映させない場合には、コピー先読込部843は、最新世代の1つ前の世代を含む集約世代までを検索対象とする。そして、コピー先読込部843は、最新世代の1つ前の世代を含む集約世代がコピー済みでない場合には、最新世代ビットマップ71を用いて、対象領域である論理LBAに対応するコピーの有無を参照するようにすれば良い。
[実施例2の効果]
上記実施例2によれば、ストレージ装置2は、コピー元ボリュームの論理LBAのデータについて、コピー先ボリュームへの論理LBA毎のコピーの有無を、複数世代を一括りにした世代情報に対応付けてドライブ3の集約ビットマップ31Bに記憶する。そして、ストレージ装置2は、コピー先ボリュームへの読み込み要求を受信すると、集約ビットマップ31Bに記憶された世代情報に対応付けられたコピーの有無を用いて、読み込み要求がされた論理LBAにアクセスする。かかる構成によれば、ストレージ装置2は、複数世代を一括りにした論理LBA毎のコピーの有無を集約ビットマップ31Bから読み込む。このため、ストレージ装置2は、読み込み要求がされた対象世代がコピー無しの場合であっても、コピー有りの世代を高速に検索できる。つまり、論理LBA毎のコピーの有無を世代に対応付けた従来のコピービットマップでは、対象世代がコピー無しの場合、さらに次の世代の情報をコピービットマップから読み込むこととなる。したがって、ストレージ装置2は、従来のコピービットマップと比較して、集約ビットマップ31Bの読み込み回数を1/(一括りにした複数世代の数)にすることができるので、コピー有りの世代を高速に検索できる。この結果、ストレージ装置2は、コピー先ボリュームへの読み込み性能を向上させることができる。
[その他]
なお、図示したストレージ装置2の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ストレージ装置2の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、コピー元読込部841とコピー元書込部842とを1つの部として統合しても良い。また、コピー先読込部843とコピー先書込部844とを1つの部として統合しても良い。また、コピー先読込部843を集約世代の情報から対象領域に対応するコピーの有無を検索する第1の検索部と、最新世代の情報から対象領域に対応するコピーの有無を検索する第2の検索部とに分散しても良い。また、記憶部7をCM5の外部装置としてネットワーク経由で接続するようにしても良い。
また、CM5にて行われる各処理機能は、その全部または任意の一部が、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。また、制御部8にて行われる各処理機能は、その全部または任意の一部が、CPU(またはMPU、MCUなどのマイクロ・コンピュータ)にて解析実行されるプログラムにて実現されても良い。
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
(付記1)コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置において、
コピーの有無を示す情報が世代単位で前記コピー先ボリュームの論理アドレスに対応付けて記憶されるコピー有無記憶部と、
前記論理アドレスに対応する前記コピー先ボリュームの物理アドレスが世代単位で記憶されるアドレス記憶部と、
前記コピー先ボリュームへのアクセス要求を受信した場合に、前記コピー有無記憶部に記憶された前記コピーの有無を示す情報を用いて前記アクセス要求された論理アドレスのコピーの有無を判定し、判定結果に基づいて指定される世代の前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行うアクセス部と
を備えることを特徴とするストレージ装置。
(付記2)前記コピー有無記憶部には、コピーの有無に関係する情報が複数世代を一括りにした世代単位で前記コピー先ボリュームの各論理アドレスに対応付けて記憶される
ことを特徴とする付記1に記載のストレージ装置。
(付記3)前記アクセス部は、前記コピー先ボリュームへの読み出し要求を受信した場合に、
前記コピー有無記憶部に記憶された前記コピーの有無に関係する情報を用いて前記アクセス要求により指定された世代の論理アドレスのコピーの有無を判定し、コピー有りと判定された場合に、当該世代の前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行い、取得した物理アドレスが初期値である場合に、コピー有りと判定された他の世代の中から選択された前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行う
ことを特徴とする付記1または付記2に記載のストレージ装置。
(付記4)前記アクセス部は、前記読み出し要求により指定された世代が最新世代であり、最新世代のコピーが無いと判定された場合は、前記コピー元ボリュームに対してアクセスを行う
ことを特徴とする付記3に記載のストレージ装置。
(付記5)前記アクセス部は、前記コピー先ボリュームへの書き込み要求を受信した場合に、前記書き込み要求された世代の前記アドレス記憶部から取得した物理アドレスが初期値である場合に、前記コピー先ボリュームにおける当該世代の空き領域に前記書き込み要求されたデータを書き込むとともに、前記コピー有無記憶部の該世代に対応する前記コピーの有無に関係する情報にコピー有りの情報を書き込む
ことを特徴とする付記1または付記2に記載のストレージ装置。
(付記6)前記コピー有無記憶部および前記アドレス記憶部は、SSD(Solid State Drive)またはHDD(Hard Disk Drive)に記憶されることを特徴とする付記1から付記5のいずれか1つに記載のストレージ装置。
(付記7)コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置において、
前記コピー元ボリュームの各領域のデータについて、前記コピー先ボリュームへの領域毎のコピーの有無を、複数世代を一括りにした世代情報に対応付けて記憶するコピー有無記憶部と、
前記コピー先ボリュームへのアクセス要求を受信した場合に、前記コピー有無記憶部に記憶された世代情報に対応付けられたコピーの有無を用いて、アクセスが要求された領域のデータにアクセスするアクセス部と
を備えることを特徴とするストレージ装置。
(付記8)コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置のストレージ制御装置において、
コピーの有無を示す情報が世代単位で前記コピー先ボリュームの論理アドレスに対応付けて記憶されるコピー有無記憶部と、
前記論理アドレスに対応する前記コピー先ボリュームの物理アドレスが世代単位で記憶されるアドレス記憶部と、
前記コピー先ボリュームへのアクセス要求を受信した場合に、前記コピー有無記憶部に記憶された前記コピーの有無を示す情報を用いて前記アクセス要求された論理アドレスのコピーの有無を判定し、判定結果に基づいて指定される世代の前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行うアクセス部と
を備えることを特徴とするストレージ制御装置。
(付記9)コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置によって実行されるコピー先データアクセス方法であって、
前記コピー先ボリュームへのアクセス要求を受信した場合に、コピーの有無を示す情報が世代単位で前記コピー先ボリュームの論理アドレスに対応付けて記憶されるコピー有無記憶部に記憶された前記コピーの有無を示す情報を用いて、前記アクセス要求された論理アドレスのコピーの有無を判定し、
前記判定する処理に応じた判定結果に基づいて指定される世代の、前記論理アドレスに対応する前記コピー先ボリュームの物理アドレスが世代単位で記憶されるアドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行う
各処理を実行するコピー先データアクセス方法。
1 ホスト
2 ストレージ装置
3 ドライブ
31 集約ビットマップ
32 LBA変換テーブル
4 CA
5 CM
6 DA
7 記憶部
71 最新世代ビットマップ
72 セッション管理テーブル
73 エレメント管理テーブル
8 制御部
81 チャネル制御部
82 キャッシュ制御部
83 ドライブ制御部
84 コピー制御部
841 コピー元読込部
842 コピー元書込部
843 コピー先読込部
844 コピー先書込部
845 セッション管理部

Claims (7)

  1. コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置において、
    前記コピー先ボリュームの論理アドレスに対応付けて複数世代を一括りにした世代単位のコピーの有無を示す情報を記憶するコピー有無記憶部と、
    前記論理アドレスに対応する前記コピー先ボリュームの物理アドレスが世代単位で記憶されるアドレス記憶部と、
    前記コピー先ボリュームへの所定の論理アドレスの読み出し要求を受信した場合に、前記コピー有無記憶部に記憶された、前記論理アドレスに対応付けられた世代単位のコピーの有無を示す情報を用いて前記読み出し要求された所定の論理アドレスのコピーの有無を判定し、判定結果に基づいて指定される世代の前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行うアクセス部と
    を備えることを特徴とするストレージ装置。
  2. 前記コピー有無記憶部には、コピーの有無に関係する情報が複数世代を一括りにした世代単位で前記コピー先ボリュームの各論理アドレスに対応付けて記憶される
    ことを特徴とする請求項1に記載のストレージ装置。
  3. 前記アクセス部は、前記コピー先ボリュームへの読み出し要求を受信した場合に、前記コピー有無記憶部に記憶された前記世代単位のコピーの有無を示す情報を用いて前記読み出し要求により指定された世代の論理アドレスのコピーの有無を判定し、コピー有りと判定された場合に、当該世代の前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行い、取得した物理アドレスが初期値である場合に、コピー有りと判定された他の世代の中から選択された前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行う
    ことを特徴とする請求項1または請求項2に記載のストレージ装置。
  4. 前記アクセス部は、前記読み出し要求により指定された世代が最新世代であり、最新世代のコピーが無いと判定された場合は、前記コピー元ボリュームに対してアクセスを行う
    ことを特徴とする請求項3に記載のストレージ装置。
  5. 前記アクセス部は、前記コピー先ボリュームへの書き込み要求を受信した場合に、前記書き込み要求された世代の前記アドレス記憶部から取得した物理アドレスが初期値である場合に、前記コピー先ボリュームにおける当該世代の空き領域に前記書き込み要求されたデータを書き込むとともに、前記コピー有無記憶部の該世代に対応する前記世代単位のコピーの有無を示す情報にコピー有りの情報を書き込む
    ことを特徴とする請求項1または請求項2に記載のストレージ装置。
  6. コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置のストレージ制御装置において、
    前記コピー先ボリュームの論理アドレスに対応付けて複数世代を一括りにした世代単位のコピーの有無を示す情報を記憶するコピー有無記憶部と、
    前記論理アドレスに対応する前記コピー先ボリュームの物理アドレスが世代単位で記憶されるアドレス記憶部と、
    前記コピー先ボリュームへの所定の論理アドレスの読み出し要求を受信した場合に、前記コピー有無記憶部に記憶された、前記論理アドレスに対応付けられた世代単位のコピーの有無を示す情報を用いて前記読み出し要求された所定の論理アドレスのコピーの有無を判定し、判定結果に基づいて指定される世代の前記アドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行うアクセス部と
    を備えることを特徴とするストレージ制御装置。
  7. コピー元ボリュームに記憶されたコピー元データを、コピー先ボリュームにコピーし、コピーされたデータを世代単位で管理するストレージ装置によって実行されるコピー先データアクセス方法であって、
    前記コピー先ボリュームへの所定の論理アドレスの読み出し要求を受信した場合に、前記コピー先ボリュームの論理アドレスに対応付けて複数世代を一括りにした世代単位のコピーの有無を示す情報を記憶するコピー有無記憶部に記憶された、前記論理アドレスに対応付けられた世代単位のコピーの有無を示す情報を用いて前読み出し要求された所定の論理アドレスのコピーの有無を判定し、
    前記判定する処理に応じた判定結果に基づいて指定される世代の、前記論理アドレスに対応する前記コピー先ボリュームの物理アドレスが世代単位で記憶されるアドレス記憶部から取得した前記コピー先ボリュームの物理アドレスに対してアクセスを行う
    各処理を実行することを特徴とするコピー先データアクセス方法。
JP2011215481A 2011-09-29 2011-09-29 ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法 Expired - Fee Related JP5776474B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011215481A JP5776474B2 (ja) 2011-09-29 2011-09-29 ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法
US13/553,892 US9141293B2 (en) 2011-09-29 2012-07-20 Storage device and method of accessing copy destination data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011215481A JP5776474B2 (ja) 2011-09-29 2011-09-29 ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法

Publications (2)

Publication Number Publication Date
JP2013077074A JP2013077074A (ja) 2013-04-25
JP5776474B2 true JP5776474B2 (ja) 2015-09-09

Family

ID=47993760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011215481A Expired - Fee Related JP5776474B2 (ja) 2011-09-29 2011-09-29 ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法

Country Status (2)

Country Link
US (1) US9141293B2 (ja)
JP (1) JP5776474B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10002048B2 (en) * 2014-05-15 2018-06-19 International Business Machines Corporation Point-in-time snap copy management in a deduplication environment
US9880755B2 (en) * 2015-02-25 2018-01-30 Western Digital Technologies, Inc. System and method for copy on write on an SSD
US10372543B2 (en) 2016-03-04 2019-08-06 Toshiba Memory Corporation Memory system
JP6579149B2 (ja) * 2017-04-20 2019-09-25 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
US10496431B2 (en) * 2017-07-31 2019-12-03 Red Hat Israel, Ltd. Virtual machine storage operation progress tracking
KR20200014964A (ko) * 2018-08-02 2020-02-12 삼성전자주식회사 버츄얼 메모리 영역을 제공하는 스토리지 장치, 이를 포함하는 전자 시스템 및 전자 시스템의 동작 방법
JP2021157462A (ja) 2020-03-26 2021-10-07 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
JP7429214B2 (ja) 2021-10-07 2024-02-07 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ複製方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636954B2 (en) * 2000-06-02 2003-10-21 Fujitsu Limited Method and apparatus for inter-disk copy processing, and a computer product
JP4108944B2 (ja) 2001-06-14 2008-06-25 株式会社東芝 スナップショット機能を有するディスク記憶装置、スナップショット差分情報管理方法及びスナップショット管理プログラム
JP4292882B2 (ja) 2003-03-18 2009-07-08 株式会社日立製作所 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
JP2004199711A (ja) 2004-02-17 2004-07-15 Fujitsu Ltd 半導体ディスク装置
JP4662548B2 (ja) * 2005-09-27 2011-03-30 株式会社日立製作所 スナップショット管理装置及び方法並びにストレージシステム
US8151060B2 (en) * 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
JP5275691B2 (ja) * 2007-10-24 2013-08-28 株式会社日立製作所 ストレージシステム
JP5228466B2 (ja) 2007-12-14 2013-07-03 富士通株式会社 バックアップ装置、バックアップ方法およびバックアッププログラム
JP5156518B2 (ja) 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
JP4924645B2 (ja) 2009-03-31 2012-04-25 富士通株式会社 ストレージ制御装置、ストレージシステム及びコピー方法。
JP2014038551A (ja) * 2012-08-20 2014-02-27 Fujitsu Ltd データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム

Also Published As

Publication number Publication date
JP2013077074A (ja) 2013-04-25
US9141293B2 (en) 2015-09-22
US20130086308A1 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
JP5776474B2 (ja) ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法
US9928167B2 (en) Information processing system and nonvolatile storage unit
CN106354425B (zh) 基于数据属性的数据布局的方法和系统
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
US8521949B2 (en) Data deleting method and apparatus
US9251052B2 (en) Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) Systems and methods for cache and storage device coordination
US9535628B2 (en) Memory system with shared file system
US20160162187A1 (en) Storage System And Method For Processing Writing Data Of Storage System
TW201917580A (zh) 計算機系統及儲存裝置之控制方法
JP2019502987A (ja) 不揮発性メモリ・システムにおけるマルチページ障害の回復
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
US20190391761A1 (en) Storage device with a callback response
CN107329704B (zh) 一种缓存镜像方法及控制器
JP2011209973A (ja) ディスクアレイ構成プログラム、計算機、計算機システム
US20180307426A1 (en) Storage apparatus and storage control method
TW201723857A (zh) 使用多串流的系統、方法以及製品
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
JP5691311B2 (ja) 退避処理装置、退避処理方法および退避処理プログラム
JP5649709B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法およびプログラム
US20100223442A1 (en) Computer system and data erasing method
TW201734795A (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US11947419B2 (en) Storage device with data deduplication, operation method of storage device, and operation method of storage server
CN107562639B (zh) 擦除块读请求处理方法与装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150521

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150622

R150 Certificate of patent or registration of utility model

Ref document number: 5776474

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees