JP5915378B2 - ストレージ装置およびストレージ装置の制御方法 - Google Patents

ストレージ装置およびストレージ装置の制御方法 Download PDF

Info

Publication number
JP5915378B2
JP5915378B2 JP2012118956A JP2012118956A JP5915378B2 JP 5915378 B2 JP5915378 B2 JP 5915378B2 JP 2012118956 A JP2012118956 A JP 2012118956A JP 2012118956 A JP2012118956 A JP 2012118956A JP 5915378 B2 JP5915378 B2 JP 5915378B2
Authority
JP
Japan
Prior art keywords
copy
tpps
storage apparatus
data
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012118956A
Other languages
English (en)
Other versions
JP2013246582A (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 JP2012118956A priority Critical patent/JP5915378B2/ja
Priority to US13/783,880 priority patent/US9141304B2/en
Publication of JP2013246582A publication Critical patent/JP2013246582A/ja
Application granted granted Critical
Publication of JP5915378B2 publication Critical patent/JP5915378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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

Landscapes

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

Description

本発明は、ストレージ装置およびストレージ装置の制御方法に関する。
従来、ストレージ装置は、サーバから例えば10TBの割当て要求を受けた場合、10TBの物理的なディスク容量を割当てる。一方、サーバは、要求通りに割当てられた物理的なディスク容量のうち、実際には割当量の20%〜30%しか使用しない場合がある。このように、サーバに割り当てられた物理的なディスク容量は、効率的に利用されない場合がある。
このようなことから、ストレージ装置の物理的なディスク容量を効率的に使用するための仕組みとして、シン・プロビジョニングと呼ばれる技術がある。シン・プロビジョニングでは、例えば、サーバから10TBの割り当て要求を受けた場合、ストレージ装置は、サーバには要求通り10TBの仮想ボリュームを割り当てるが、実際には2TBの物理的なディスク容量だけを割当てる。
そして、ストレージ装置は、サーバが所定の閾値を超えた物理的なディスク容量を使用した場合に、新たに追加して物理的なディスク容量をサーバに割当てる。このように、シン・プロビジョニングは、物理的なディスク容量をホストアクセス要求時に随時割り当てる。これにより、ストレージ装置は、物理的なディスク容量を効率的に利用が可能となる。なお、この時使用される仮想ボリュームのことをTPV(Thin Provisioning Volume)と呼び、TPVに対して割当てられる物理的なディスク容量の最小単位のことをTPPS(Thin Provisioning Pool Slice)と呼ぶ。
また、サーバによりデータが削除された場合、削除されたデータは、サーバのOS(Operating System)上では未使用の扱いとなる。一方、ストレージ装置では、削除されたデータに対してTPPSを割り当てたままであるので、ストレージ装置は、無駄に物理的なディスク容量を消費することになる。
これを改善する仕組みとしてUNMAPコマンドがある。UNMAPコマンドは、ストレージ装置内のTPVに対して、未使用となったTPPSの論理アドレスを指定してTPPSの解放を要求するコマンドである。サーバは、データの削除と連携してこのUNMAPコマンドをストレージ装置に発行することにより、シン・プロビジョニングにより割り当てられたTPPSを効率的に運用する。なお、このUNMAPコマンドは、VM(Virtual Machine)ウェアで提供されているストレージAPI(Application Programming Interface)のVAAI(vStorage APIs for Array Integration)の中の一つである。
また、ストレージ装置は、TPPSのデータを論理的にコピーするスナップショット型のコピー機能を有する場合がある。そして、UNMAPコマンドは、ストレージ装置が実行するコピー機能とも併用可能である。例えば、ストレージ装置は、未コピーのTPPSのデータに対してUNMAPコマンドが発行された場合、このTPPSのデータをコピーし、コピー終了後にTPPSを解放する。そして、ストレージ装置は、TPPSを解放後、サーバにUNMAPコマンドに対して応答する。
このUNMAPコマンドは、ホストからの一回の要求で処理対象となる容量が数GBから数十GB、あるいはそれ以上であり、通常のライトI/O(Input/Output)と比較して処理対象となる容量が大きい。このため、ストレージ装置は、UNMAPコマンドを受付け、UNMAPコマンドの要求範囲をすべてコピーする場合、UNMAPコマンドを実行するまでの時間が増加する。この結果、サーバは、ストレージ装置によるTPPSの解放処理が終了するまで、UNMAPコマンドに対する応答を受信できないので、UNMAPコマンドがタイムアウトする可能性が高くなる。
このようなことから、ストレージ装置は、解放を要求されたTPPSに対して解放処理が予約状態である旨を記録し、UNMAPコマンドに対する応答をサーバへ即座に返す。そして、ストレージ装置は、TPPSのデータをコピー先へ退避が完了した時点で解放処理を非同期的に実行して、TPPSを解放する。このようにして、ストレージ装置は、コピー対象の領域に対して発行されたUNMAPコマンドがタイムアウトすることを防止する。
特開2009−251970号公報 特開2011−13821号公報
しかしながら、上述した従来の技術では、解放の要求で指定される論理アドレスを指定したデータの書込みが遅延するという課題がある。
ストレージ装置は、解放処理が予約状態であるTPPSに対してデータの書込み要求が発行された場合は、TPPSのデータをコピーし、コピーが終了後にTPPSを解放するまでこのデータの書込み要求を待機させる。このため、サーバは、ストレージ装置によるTPPSの解放処理が終了するまで、データの書込み要求に対する応答を受信できず、データの書込み要求がタイムアウトする可能性が高くなる。
また、ストレージ装置は、同一のTPPSのデータに対して異なる時刻でスナップショット型のコピーを実行する場合がある。そして、コピー元のTPPSに対してUNMAPコマンドが発行された後に、解放処理が予約状態となったTPPSに対してデータの書込み要求が発行された場合、ストレージ装置によるTPPSの解放処理が終了するまで、データの書込み要求は、待機させられる。この結果、データの書込み要求がタイムアウトする可能性がさらに高くなる。
また、ストレージ装置が、UNMAPコマンドとスナップショット型のコピーとを交互に実行する場合がある。このような場合、解放処理が予約状態であるTPPSに対するデータの書込み処理のレスポンス性能は、慢性的に低下する。
1つの側面では、本発明は、解放の要求で指定される論理アドレスを指定したデータの書込みの遅延を防止することができるストレージ装置およびストレージ装置の制御方法を提供することを目的とする。
1つの案では、ストレージ装置は、上位装置から転送されたデータを冗長化して複数の記憶領域に記憶する。このストレージ装置は、上位装置から指定された論理アドレスに対して、複数の記憶領域の中から記憶領域を割当てる制御部と、論理アドレスと割当てられた記憶領域を示す物理アドレスとを関連付ける情報を含む管理情報を記憶する記憶部とを有する。そして、制御部は、上位装置から指定された論理アドレスに対応付けられた物理アドレスの記憶領域の解放要求を受け付けた場合、以下の処理を実行する。すなわち、制御部は、解放要求された論理アドレスに対応付けられた物理アドレスにコピー処理が未実行のデータが記憶されているときに、管理情報における解放要求された論理アドレスとコピー処理が未実行の物理アドレスの関連付けを解除する。そして、制御部は、コピー処理が未実行の物理アドレスに記憶されたデータのコピー処理が終了した後に、該物理アドレスの記憶領域を解放する。
1実施形態におけるストレージ装置によれば、解放の要求で指定される論理アドレスを指定したデータの書込みの遅延を防止することができる。
図1は、実施例1に係る情報処理システムの構成を示すブロック図である。 図2は、マッピング情報テーブルが記憶するデータ構造の一例を示す図である。 図3は、コピー管理テーブルが記憶するデータ構造の一例を示す図である。 図4は、実施例1に係るストレージ装置により実行されるファームウェアの機能構成を示す機能ブロック図である。 図5は、実施例1に係るストレージ装置による処理動作の一例を示す図である。 図6は、実施例1に係るストレージ装置におけるUNMAPコマンド受信時のマッピング情報更新処理の処理手順を示すフローチャートである。 図7は、実施例1に係るストレージ装置におけるライトI/O受領時のTPPS獲得処理の処理手順を示すフローチャートである。 図8は、実施例2に係る情報処理システムの構成を示すブロック図である。 図9は、コピー世代管理テーブルが記憶するデータ構造の一例を示す図である。 図10は、実施例2に係るストレージ装置が実行するファームウェアの機能構成の一例を示す図である。 図11は、実施例2に係るストレージ装置による処理動作の一例を示す図である。 図12は、実施例2に係るストレージ装置によるマッピング情報更新処理の処理手順を説明するフローチャートである。 図13は、実施例3に係るストレージ装置によるTPVへのコピー時の処理手順を示すフローチャートである。 図14は、実施例3に係るストレージ装置による処理動作の一例を示す図である。
以下に、本願の開示するストレージ装置およびストレージ装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
実施例1では、図1から図7を用いて、情報処理システムの構成、ストレージ装置の構成、CMの構成、ストレージ装置による処理動作、ストレージ装置による処理手順、および効果などについて説明する。
[実施例1に係る情報処理システムの構成]
図1は、実施例1に係る情報処理システム1の構成を示すブロック図である。図1に示すように、情報処理システム1は、ホストコンピュータ2と、ストレージ装置10とを有する。情報処理システム1において、ホストコンピュータ2は、ストレージ装置10とFC(Fibre Channel)やiSCSI(Internet Small Computer System Interface)などによって互いに通信可能に接続される。なお、情報処理システム1が有するホストコンピュータの数およびストレージ装置の数は図示した数に限定されるものではなく、変更可能である。
ホストコンピュータ2は、例えば、サーバであり、ストレージ装置10に対して論理ボリュームのデータの読み書きを実行する。
ストレージ装置10は、シン・プロビジョニングにより物理的なディスク容量をホストコンピュータ2からアクセスを要求された場合に随時割り当てる。例えば、ホストコンピュータ2から10TBの割り当て要求を受けた場合、ストレージ装置10は、ホストコンピュータ2には要求通り10TBの仮想ボリュームを割り当てるが、実際には2TBの物理的なディスク容量を割当てる。そして、ストレージ装置10は、ホストコンピュータ2が所定の閾値を超えた物理的なディスク容量を使用した場合に、新たに追加して物理的なディスク容量をホストコンピュータ2に割当てる。なお、この時使用される仮想ボリュームのことをTPV(Thin Provisioning Volume)と呼び、TPVに対して割当てられる物理的なディスク容量の最小単位のことをTPPS(Thin Provisioning Pool Slice)と呼ぶ。なお、ホストコンピュータ2がストレージ装置10に対して割り当てを要求するディスク容量、ならびに、ストレージ装置10がホストコンピュータ2に割り当てる仮想ボリュームの容量および物理的なディスク容量は、上述の如くに限られるものではない。
[実施例1に係るストレージ装置10の構成]
引き続き図1を用いて、実施例1に係るストレージ装置10の構成を説明する。ストレージ装置10は、CA(Channel Adapter)11、CA12、CA13、CA14、ディスク装置15、ディスク装置16、ディスク装置17、ディスク装置18、CM(Control Module)20、およびCM30を有する。CA11、CA12、CA13、およびCA14は、ホストコンピュータ2とのインターフェースである。なお、ホストコンピュータ2とCA11、CA12、CA13、およびCA14との間は、FCやiSCSIなどを介して相互に通信可能に接続される。
ディスク装置15、ディスク装置16、ディスク装置17、およびディスク装置18は、RAID(Redundant Arrays of Inexpensive Disks)を構築し、ホストコンピュータ2から受信した書込みデータを記憶する。また、ディスク装置15、ディスク装置16、ディスク装置17、およびディスク装置18は、仮想ボリュームであるTPVを構築する。
CM20は、ホストコンピュータ2とディスク装置15、ディスク装置16との間のデータの入出力を制御し、CM30は、ホストコンピュータ2とディスク装置17、ディスク装置18との間のデータの入出力を制御する。なお、ストレージ装置10が有するCMの数は、図示した数に限定されるものではない。
[実施例1に係るCM20の構成]
引き続き図1を用いて、実施例1に係るCM20の構成を説明する。図1に示すように、CM20は、DA(Device Adapter)21およびDA22とRAM(Random Access Memory)23とフラッシュメモリ24とCPU(Central Processing Unit)25とを有する。
DA21は、ディスク装置15とのインターフェースであり、DA22は、ディスク装置16とのインターフェースである。
RAM23は、マッピング情報テーブル23aと、コピー管理テーブル23bとを有する。また、RAM23には、図示しない、未使用のTPPSのプールを管理するプール管理情報が含まれる。なお、RAM23は、DIMM(Dual Inline Memory Module)やDRAM(Dynamic Random Access Memory)などで代替可能である。
マッピング情報テーブル23aは、ディスク装置により実現されるTPVの論理アドレスと、TPVにおいて割当てられるTPPSを指定する物理アドレスとを対応付けたマッピング情報を記憶する。なお、マッピング情報テーブル23aが記憶するデータ構造については、図2を用いて後述する。
コピー管理テーブル23bは、TPPSが記憶する論理ボリュームのデータをコピー済みであるか否かを管理する情報を記憶する。なお、コピー管理テーブル23bが記憶するデータ構造については、図3を用いて後述する。
フラッシュメモリ24は、ファームウェア24aを記憶する。なお、ファームウェア24aの機能構成については図4を用いて後述する。CPU25は、フラッシュメモリ24が記憶するファームウェア24aを読込み、各種演算処理を実行する。
[実施例1に係るCM30の構成]
図1に示すように、CM30は、DA31およびDA32とRAM33とフラッシュメモリ34とCPU35とを有する。DA31は、ディスク装置17とのインターフェースであり、DA32は、ディスク装置18とのインターフェースである。
RAM33は、マッピング情報テーブル33aと、コピー管理テーブル33bとを有する。マッピング情報テーブル33aは、マッピング情報テーブル23aと同様の情報を記憶する。また、コピー管理テーブル33bは、コピー管理テーブル23bと同様の情報を記憶する。また、RAM33には、図示しない、未使用のTPPSのプールを管理するプール管理情報が含まれる。なお、RAM33は、DIMMやDRAMなどで代替可能である。
フラッシュメモリ34は、ファームウェア34aを記憶する。なお、ファームウェア34aの機能構成については図4を用いて後述する。CPU35は、フラッシュメモリ34が記憶するファームウェア34aを読込み、各種演算処理を実行する。
このように構成されるストレージ装置10は、CPU25がファームウェア24aを読込んだ場合、あるいはCPU35がファームウェア34aを読込んだ場合、以下の処理を実行する。すなわち、ストレージ装置10は、ディスク装置により実現されるTPVの論理アドレスと、TPVにおいて割当てられるTPPSを指定する物理アドレスとを対応付けたマッピング情報をRAMに保持する。また、ストレージ装置10は、コピー対象の論理ボリュームのデータを記憶するTPPSに対して、このTPPSを指定する物理アドレスと対応付けられる論理アドレスを指定して解放を要求される場合、以下の処理を実行する。すなわち、ストレージ装置10は、このTPPSをマッピング情報から削除して、TPPSをホストコンピュータ2によるTPVに関連付けられるアクセスから退避させる。そして、この論理アドレスのマッピング情報の物理アドレスの欄について、物理アドレスが未割当であることを示す情報に更新して、該論理アドレスに対して新たなTPPSを指定する物理アドレスを割当て可能な状態にする。続いて、ストレージ装置10は、退避させたTPPSが記憶する論理ボリュームのデータのコピーを実行する。そして、ストレージ装置10は、コピーが終了後に、コピー対象の論理ボリュームのデータを記憶するTPPSを解放する。つまり、未使用領域のプールを管理するプール管理情報に、このTPPSを指定する物理アドレスを登録することで、その後、該物理アドレスは未使用領域として管理される。なお、ストレージ装置10が記憶する、マッピング情報テーブル23a(33a)と、コピー管理テーブル23b(33b)と、プール管理情報とを含めて「管理情報」と称する。
[マッピング情報テーブル23a(33a)が記憶するデータ構造]
次に、図2を用いて、マッピング情報テーブル23aおよびマッピング情報テーブル33aが記憶するデータ構造の一例について説明する。なお、マッピング情報テーブル23aおよびマッピング情報テーブル33aが記憶するデータ構造については同様であるので、ここでは、マッピング情報テーブル23aのデータ構造について説明する。なお、以下の説明では、マッピング情報テーブル23aおよびマッピング情報テーブル33aが記憶するデータのことを、「マッピング情報」と適宜記載する。
図2は、マッピング情報テーブル23aが記憶するデータ構造の一例を示す図である。図2に示すように、マッピング情報テーブル23aは、「論理LBA(Logical Block Address)」と「物理LBA」とを対応付けた情報を記憶する。なお、1つのLBAは、512バイトである。
ここで、マッピング情報テーブル23aが記憶する「論理LBA」は、ディスク装置15、ディスク装置16、ディスク装置17、およびディスク装置18により実現される仮想領域であるTPVにおける論理アドレスを示す。例えは、「論理LBA」には、「1000」、「2000」などの値が格納される。なお、ホストコンピュータ2は、論理LBAを指定してTPPSが記憶する論理ボリュームのデータにアクセスする。また、ホストコンピュータ2は、論理LBAを指定してTPPSの解放を要求する。
また、マッピング情報テーブル23aが記憶する「物理LBA」は、ディスク装置により実現される仮想領域であるTPVにおける物理アドレスを示す。例えは、「物理LBA」には、「35000」、「47000」などの値が格納される。
また、この「物理LBA」には、TPPSの識別子が一意に対応付けられる。言い換えると、「物理LBA」は、TPVにおいて割当てられるTPPSを指定する。例えば、「物理LBA」の「35000」は、TPPS10と対応付けられ、「物理LBA」の「47000」は、TPPS22と対応付けられる。なお、ストレージ装置10は、論理LBAを指定して入出力処理をホストコンピュータ2から受付けた場合、論理LBAに対応付けられる物理LBAにより指定されるTPPSに対して入出力処理を実行する。
図2に示す例では、TPVにおける論理LBA「1000」は、物理LBA「35000」に対応し、TPPS「10」で識別される物理領域を指定する。同様に、TPVにおける論理LBA「2000」は、物理LBA「47000」に対応し、TPPSは「22」で識別される物理領域を指定する。
なお、マッピング情報テーブル23aが記憶する「物理LBA」は、後述するTPPSマッピング管理部105およびTPPS割当管理部106により更新される。
[コピー管理テーブル23b(33b)が記憶するデータ構造]
次に、図3を用いて、コピー管理テーブル23bおよびコピー管理テーブル33bが記憶するデータ構造の一例について説明する。なお、コピー管理テーブル23bおよびコピー管理テーブル33bが記憶するデータ構造については同様であるので、ここでは、コピー管理テーブル23bのデータ構造について説明する。
図3は、コピー管理テーブル23bが記憶するデータ構造の一例を示す図である。図3に示すように、コピー管理テーブル23bは、「コピー元TPPS」と「コピー先OLU(Open Logical Unit)」と「コピー先論理LBA」と「状態」とを対応付けた情報を記憶する。
ここで、コピー管理テーブル23bが記憶する「コピー元TPPS」は、コピー元のTPPSの識別子示す。例えは、「コピー元TPPS」には、「TPPS11」、「TPPS20」などの値が格納される。
また、コピー管理テーブル23bが記憶する「コピー先OLU」は、コピー先のOLUの識別子を示す。例えば、「コピー先OLU」には、「1」、「2」などの値が格納される。なお、OLUは、シン・プロビジョニングにより管理されるTPVではなく、オープンシステムで一般的に用いられる論理ユニットである。
また、コピー管理テーブル23bが記憶する「コピー先論理LBA」は、コピー先のOLUにおける論理アドレスを示す。例えば、「コピー先論理LBA」には、「5000」、「6000」などの値が格納される。
また、コピー管理テーブル23bが記憶する「状態」は、コピー処理の状態を示す。例えば、「状態」には、コピー処理を未実行であることを示す「未実行」、コピー処理が実行中であることを示す「実行中」、あるいは、コピー処理が終了したことを示す「終了」などの値が格納される。
図3に示す例では、コピー管理テーブル23bは、「TPPS11」が記憶する論理ボリュームのデータを、OLU「1」の論理LBA「5000」にコピーする処理が「終了」したことを示す。同様に、コピー管理テーブル23bは、「TPPS20」が記憶する論理ボリュームのデータを、OLU「2」の論理LBA「6000」にコピーする処理が「終了」したことを示す。
なお、コピー管理テーブル23bが記憶する「状態」は、後述するコピー処理制御部104により更新される。
[ファームウェア24a(34a)の機能構成]
次に、図4を用いて、実施例1に係るストレージ装置10により実行されるファームウェア24aおよびファームウェア34aの機能構成を説明する。実施例1に係るストレージ装置10により実行されるファームウェア24aおよびファームウェア34aの機能構成は同様であるので、ここでは、ファームウェア24aおよびファームウェア34aをファームウェア100と称して説明する。
図4は、実施例1に係るストレージ装置10により実行されるファームウェア100の機能構成を示す機能ブロック図である。なお、ストレージ装置10により実行されるファームウェア100は、RAM23とCPU25とが協働して、あるいはRAM33とCPU35とが協働して実現される。
図4に示すように、ファームウェア100は、UNMAPコマンド処理部101とライトI/O処理部102と競合検知部103とコピー処理制御部104とTPPSマッピング管理部105とTPPS割当管理部106とを有する。
UNMAPコマンド処理部101は、UNMAPコマンドをホストコンピュータ2から受信する。そして、UNMAPコマンド処理部101は、UNMAPコマンドにより解放を要求されたTPPSが記憶する論理ボリュームのデータをコピーするか否かを後述する競合検知部103に判定させる。
UNMAPコマンド処理部101は、競合検知部103により解放を要求されたTPPSが記憶する論理ボリュームのデータのコピー処理を実行すると判定された場合、解放を要求されたTPPSの解放を保留する。そして、UNMAPコマンド処理部101は、TPPSマッピング管理部105にマッピング情報テーブル23aを更新させる。そして、UNMAPコマンド処理部101は、解放を要求されたTPPSが記憶する論理ボリュームのデータのコピーが終了後に、このコピー対象の論理ボリュームのデータを記憶するTPPSを解放する。
また、UNMAPコマンド処理部101は、競合検知部103により解放を要求されたTPPSが記憶する論理ボリュームのデータのコピー処理を実行しないと判定された場合、解放を要求されたTPPSを解放する。そして、UNMAPコマンド処理部101は、TPPSマッピング管理部105にマッピング情報テーブル23aを更新させる。
また、UNMAPコマンド処理部101は、TPPSマッピング管理部105によりマッピング情報テーブル23aが更新されたことを通知された場合、UNMAPコマンドに対応する応答をホストコンピュータ2へ送信する。
ライトI/O(Input/Output)処理部102は、論理アドレスを指定して、ライトI/Oをホストコンピュータ2から受領した場合、論理アドレスに対して割当てられる物理アドレスにより指定されるTPPSに、論理ボリュームのデータを書込む。
例えば、ライトI/O処理部102は、論理アドレスを指定して、ライトI/Oをホストコンピュータ2から受領した場合、指定された論理アドレスに対するTPPSの割当てをTPPS割当管理部106に要求する。そして、ライトI/O処理部102は、TPPS割当管理部106により割当てられたTPPSに、ホストコンピュータ2から受信したライトデータを書込む。また、ライトI/O処理部102は、ホストコンピュータ2から受信したライトデータを書込んだ後、ホストコンピュータ2にライトI/Oの完了を応答する。
競合検知部103は、解放を要求されたTPPSのコピー処理を実行するか否かを判定する。例えば、競合検知部103は、コピー管理テーブル23bにおいて、解放を要求されたTPPSに対応する「状態」を読出し、「状態」が「終了」であるか否かを判定する。競合検知部103は、コピー管理テーブル23bの「状態」が「終了」である場合に、コピー処理を実行しないと判定する。
また、競合検知部103は、コピー管理テーブル23bの「状態」が「終了」でない場合、すなわち、コピー管理テーブル23bの「状態」が「実行中」あるいは「未実行」である場合に、コピー処理を実行すると判定する。
コピー処理制御部104は、TPPSが記憶する論理ボリュームのデータのコピー処理をバックグラウンドで起動する。例えば、コピー処理制御部104は、解放を要求されたTPPSのコピー処理を実行する場合、退避させたTPPSが記憶する論理ボリュームのデータのコピーを実行する。
なお、コピー処理制御部104は、コピー処理を実行する場合、コピー管理テーブル23bの「状態」に「実行中」を設定し、コピー処理を終了した場合、コピー管理テーブル23bの「状態」に「終了」を設定する。
TPPSマッピング管理部105は、ホストコンピュータ2から解放を要求されたTPPSが解放状態となるようにRAM23が記憶するマッピング情報テーブル23aを更新する。例えば、TPPSマッピング管理部105は、解放を要求されたTPPSのコピーを実行しない場合、解放を要求されたTPPSがUNMAPコマンド処理部101により解放された後に、マッピング情報を更新する。
また、TPPSマッピング管理部105は、コピー対象の論理ボリュームのデータを記憶するTPPSに対して、TPPSを指定する物理アドレスと対応付けられる論理アドレスを指定して解放を要求される場合、以下の処理を実行する。すなわち、TPPSマッピング管理部105は、解放を要求されるTPPSを退避させて、新たなTPPSを指定する物理アドレスを、解放の要求で指定される論理アドレスに対して割当て可能な状態にマッピング情報を更新する。
例えば、TPPSマッピング管理部105は、解放を要求されたTPPSを指定する「論理LBA」に対応付けられる「物理LBA」に格納される値を削除する。一例をあげると、TPPSマッピング管理部105は、論理LBA「2000」を指定して解放を要求される場合、論理LBA「2000」に対応する「物理LBA」に格納される「36000」を削除する。
TPPS割当管理部106は、解放の要求で指定される論理アドレスを指定して、論理ボリュームのデータを書込む要求を受付ける場合、新たなTPPSを指定する物理アドレスを該論理アドレスに対して割当てる。例えば、TPPS割当管理部106は、ライトI/Oを要求された「論理LBA」に対応付けて、新規のTPPSを指定する物理LBAを獲得する。一例をあげると、TPPS割当管理部106は、論理LBA「2000」を指定して論理ボリュームのデータを書込む要求を受付ける場合、論理LBA「2000」に対応する「物理LBA」に「47000」格納する。
[実施例1に係るストレージ装置10による処理動作]
次に、図5を用いて、実施例1に係るストレージ装置10による処理動作の一例について説明する。図5は、実施例1に係るストレージ装置10による処理動作の一例を示す図である。なお、図5は、論理LBA「2000」で指定されるTPPS5aの解放が要求され、かつ、このTPPS5aが記憶する論理ボリュームのデータのコピーが未実行である場合を示す。
図5に示すように、ストレージ装置10は、論理LBA「2000」で指定されるTPPS5aの解放を要求するUNMAPコマンドをホストコンピュータ2から受信する(ステップS101)。ストレージ装置10は、解放を要求されたTPPS5aが記憶する論理ボリュームのデータのコピーが未実行であるので、TPPS5aをマッピング情報から削除して、マッピング情報テーブル23a(33a)を更新する(ステップS102)。従って、TPPS5aは、ホストコンピュータ2によるTPVに関連付けられるアクセスから退避させることができる。
そして、ストレージ装置10は、ホストコンピュータ2にUNMAPコマンドに対する応答を送信する(ステップS103)。続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPSに対するライト要求をホストコンピュータ2から受信する(ステップS104)。
論理LBA「2000」は、マッピング情報テーブル23a(33a)上、TPPSが未割当の状態の為、ライト要求を受信したストレージ装置10は、論理LBA「2000」に対して新規のTPPS5bを獲得する(ステップS105)。そして、ストレージ装置10は、ホストコンピュータ2からライトデータを受信し(ステップS106)、ライト要求に対する応答をホストコンピュータ2に送信する(ステップS107)。
また、ストレージ装置10は、退避させたTPPS5aが記憶する論理ボリュームのデータのコピーを実行する(ステップS108)。そして、ストレージ装置10は、コピーが終了後に、TPPS5aを解放する(ステップS109)。
[実施例1に係るストレージ装置10による処理の処理手順]
次に、図6および図7を用いて、実施例1に係るストレージ装置10による処理の処理手順について説明する。図6を用いて、ストレージ装置10におけるUNMAPコマンド受信時のマッピング情報更新処理の処理手順を説明し、図7を用いて、ストレージ装置10におけるライトI/O受領時のTPPS獲得処理の処理手順を説明する。
(UNMAPコマンド受信時のマッピング情報更新処理)
図6は、実施例1に係るストレージ装置10におけるUNMAPコマンド受信時のマッピング情報更新処理の処理手順を示すフローチャートである。なお、UNMAPコマンド受信時のマッピング処理は、UNMAPコマンド処理部101がUNMAPコマンドを受信したことを契機に実行される。
図6に示すように、UNMAPコマンド処理部101は、UNMAPコマンドをホストコンピュータ2から受信する(ステップS201)。そして、競合検知部103は、解放を要求されたTPPSのコピー処理を実行するか否かを判定する(ステップS202)。
ここで、競合検知部103により解放を要求されたTPPSのコピー処理を実行すると判定された場合(ステップS202、Yes)、UNMAPコマンド処理部101は、解放を要求されたTPPSの解放を保留する(ステップS203)。そして、コピー処理制御部104は、バックグラウンドでコピー処理を起動する(ステップS204)。
一方、競合検知部103により解放を要求されたTPPSのコピー処理を実行しないと判定された場合(ステップS202、No)、UNMAPコマンド処理部101は、解放を要求されたTPPSを解放させる(ステップS205)。
ステップS204またはステップS205の終了後、TPPSマッピング管理部105は、ホストコンピュータ2から解放を要求されたTPPSが解放状態となるようにマッピング情報テーブル23aが記憶するマッピング情報を更新する(ステップS206)。例えば、TPPSマッピング管理部105は、解放を要求されたTPPSを指定する「論理LBA」に対応付けられる「物理LBA」に格納される値を削除する。
ステップS206の処理の終了後、UNMAPコマンド処理部101は、UNMAPコマンドに対する応答をホストコンピュータ2に送信し(ステップS207)、マッピング情報更新処理を終了する。
(ライトI/O受領時のTPPS獲得処理)
図7は、実施例1に係るストレージ装置におけるライトI/O受領時のTPPS獲得処理の処理手順を示すフローチャートである。図7に示すように、ライトI/O処理部102は、ホストコンピュータ2からライトI/Oを受領する(ステップS301)。
そして、ライトI/O処理部102は、ライトI/Oを要求された論理LBAにTPPSを獲得するようにTPPS割当管理部106に要求する。これにより、TPPS割当管理部106は、ライトI/O処理部102により要求された論理LBAにTPPSを新規に獲得する(ステップS302)。
続いて、ライトI/O処理部102は、TPPS割当管理部106による新規のTPPSが獲得された後、ホストコンピュータ2からライトデータを受信し(ステップS303)、ホストコンピュータ2に応答する(ステップS304)。
[実施例1の効果]
実施例1に係るストレージ装置10は、UNMAPコマンドが発行された場合、解放を要求されたTPPSをUNMAP予約状態にするのではなく、別のTPPSを新規に割り当て可能な状態に論理LBAと物理LBAのマッピング情報を更新する。その後、ストレージ装置10は、ホストコンピュータ2からのアクセスに対しては新規に割り当てたTPPSへアクセスさせ、ストレージ装置10内部のコピー処理に対しては元々割り当てていた解放を要求されたTPPSへアクセスさせるように制御する。そして、ストレージ装置10は、コピーが完了して解放を要求されたTPPS内の情報が不要となった時点で解放を要求されたTPPSを解放し、物理的なディスク容量のプールにTPPSを未使用領域としてプールする。これにより、UNMAPコマンド処理とコピー処理とが独立な処理となり、ストレージ装置10は、ライトI/Oがタイムアウトする可能性を防止できる。
実施例1は、ストレージ装置10が、コピー対象の論理ボリュームのデータを記憶するTPPSに対して解放を要求される場合について説明した。ところで、ストレージ装置10において、同一の論理LBAに対して、UNMAPコマンドと、スナップショット型のコピーとが交互に繰り返して実行される場合がある。この場合、ストレージ装置10は、コピー対象の論理ボリュームのデータを記憶するTPPSに対して解放を要求され、かつ解放の要求で指定される論理アドレスに新たに対応付けられるTPPSが記憶する論理ボリュームのデータに対して新たなコピーを実行する。
そこで、実施例2は、ストレージ装置が、コピーの世代数と、コピー元データを記憶するTPPSの識別子と、コピー先を特定する論理アドレスとを対応付けたコピー情報を記憶する例を示す。
[実施例2に係る情報処理システム1の構成]
図8は、実施例2に係る情報処理システム1の構成を示すブロック図である。実施例2に係る情報処理システム1は、ホストコンピュータ2と、ストレージ装置10とを有する。なお、実施例2に係る情報処理システム1は、CM20およびCM30が保持するテーブルとファームウェアの機能構成の一部が異なる点を除いて、図1に示した実施例1に係る情報処理システムの構成と同様である。このため、図1に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
[実施例2に係るCM20の構成]
引き続き図8を用いて、実施例2に係るCM20の構成を説明する。図8に示すように、CM20は、DA21およびDA22とRAM23とフラッシュメモリ24とCPU25とを有する。
RAM23は、マッピング情報テーブル23aと、コピー管理テーブル23bと、コピー世代管理テーブル23cとを有する。また、RAM23には、図示しない、未使用のTPPSのプールを管理するプール管理情報が含まれる。
コピー世代管理テーブル23cは、コピーの世代数と、コピー元データを記憶するTPPSの識別子と、コピー先を特定する論理アドレスとを対応付けたコピー情報を記憶する。なお、コピー世代管理テーブル23cが記憶するデータ構造については、図9を用いて後述する。
フラッシュメモリ24は、ファームウェア24aを記憶する。なお、ファームウェア24aの機能構成については図10を用いて後述する。CPU25は、フラッシュメモリ24が記憶するファームウェア24aを読込み、各種演算処理を実行する。なお、CM30の構成は、CM20と同様である。
[コピー世代管理テーブル23c(33c)が記憶するデータ構造]
次に、図9を用いて、コピー世代管理テーブル23cおよびコピー世代管理テーブル33cが記憶するデータ構造について説明する。なお、コピー世代管理テーブル23cとコピー世代管理テーブル33cとは同様であるので、ここでは、コピー世代管理テーブル23cについて説明する。
図9は、コピー世代管理テーブル23cが記憶するデータ構造の一例を示す図である。図9に示すように、コピー世代管理テーブル23cは、「コピー世代」と、「コピー元TPPS」と、「コピー先OLU」と、「コピー先論理LBA」とを対応付けた情報をする。
ここで、コピー世代管理テーブル23cが記憶する「コピー世代」は、コピーの世代数を示す。言い換えると、「コピー世代」は、同一の論理LBAに対して、UNMAPコマンドと、スナップショット型のコピーとが交互に繰り返して実行された回数を示す。例えば、「コピー世代」には、「1」、「2」などの値が格納される。
また、コピー世代管理テーブル23cが記憶する「コピー元TPPS」は、コピー元TPPSの識別子を示す。例えば、「コピー元TPPS」には、「TPPS11」、「TPPS20」などの値が格納される。
また、コピー世代管理テーブル23cが記憶する「コピー先OLU」は、コピー先のOLUの識別子を示す。例えば、「コピー先OLU」には、「1」、「2」などの値が格納される。なお、OLUは、オープンシステムで一般的に用いられる論理ユニットである。
また、コピー世代管理テーブル23cが記憶する「コピー先論理LBA」は、コピー先のOLUにおける論理アドレスを示す。例えば、「コピー先論理LBA」には、「5000」、「6000」などの値が格納される。
図9に示す例では、コピー世代管理テーブル23cは、第1世代として、「TPPS11」が記憶する論理ボリュームのデータを、OLU「1」の論理LBA「5000」にコピーすることを示す。同様に、コピー世代管理テーブル23cは、第1世代として、「TPPS11」が記憶する論理ボリュームのデータを、OLU「2」の論理LBA「6000」にコピーすることを示す。
また、コピー世代管理テーブル23cは、第2世代として、「TPPS20」が記憶する論理ボリュームのデータを、OLU「3」の論理LBA「7000」にコピーすることを示す。
[ファームウェア24a(34a)の機能構成]
次に、図10を用いて、実施例2に係るストレージ装置10により実行されるファームウェア24aおよびファームウェア34aの機能構成を説明する。実施例2に係るストレージ装置10により実行されるファームウェア24aおよびファームウェア34aの機能構成は同様であるので、ここでは、ファームウェア24aおよびファームウェア34aをファームウェア200と称して説明する。
図10は、実施例2に係るストレージ装置10が実行するファームウェア200の機能構成の一例を示す図である。図10に示すように、ファームウェア200は、UNMAPコマンド処理部101とライトI/O処理部102と競合検知部103とコピー処理制御部104とTPPSマッピング管理部105とTPPS割当管理部106とを有する。また、図10に示すように、ファームウェア200は、TPPS世代管理部201とコピー世代処理制御部202とを有する。なお、図2に示したファームウェア100と同様の機能を有する各部については、同一の符号を付与し、詳細な説明は省略する。
TPPS世代管理部201は、コピー対象のデータを記憶するTPPSの解放要求を受け付けた場合に、解放要求で指定される論理アドレスに新たに対応付けられる物理アドレスに記憶されるデータに対してコピー処理を実行する場合、以下の処理を実行する。すなわち、TPPS世代管理部201は、コピー処理を行うために退避世代番号を付与し、付与した退避世代番号をコピー世代管理テーブル23cに記憶させることで、TPPSの世代を管理する。
コピー世代処理制御部202は、コピー対象のデータを記憶するTPPSの解放要求を受け付けた場合に、解放要求で指定される論理アドレスに新たに対応付けられる物理アドレスに記憶されるデータに対してコピー処理を実行する場合、以下の処理を実行する。すなわち、コピー世代処理制御部202は、コピーの世代数に対応付けて、コピー元データを記憶するTPPSの識別子と、コピー先を特定する論理アドレスとを対応付けたコピー情報をコピー世代管理テーブル23cに記憶させる。例えば、コピー世代処理制御部202は、コピー世代ごとに、コピー元のTPPSとコピー先のOLUとのペアをコピー世代管理テーブル23cに記憶させる。
なお、コピー処理制御部104は、コピー世代管理テーブル23cを参照してコピーの世代数ごとにコピー処理を実行する。
[実施例2に係るストレージ装置10による処理動作]
次に、図11を用いて、実施例2に係るストレージ装置10による処理動作の一例について説明する。図11は、実施例2に係るストレージ装置10による処理動作の一例を示す図である。なお、図11は、論理LBA「2000」で指定されるTPPSの解放と、論理LBA「2000」で指定されるTPPSが記憶する論理ボリュームのデータのコピーとが交互に実行される場合を示す。
図11に示すように、ストレージ装置10は、論理LBA「2000」で指定されるTPPS[A]が記憶する論理ボリュームのデータのコピー(コピー[A]と記載)を実行する(ステップS401)。また、ストレージ装置10は、論理LBA「2000」で指定されるTPPS[A]が記憶する論理ボリュームのデータのコピー(コピー[B]と記載)を実行する(ステップS402)。
ストレージ装置10は、論理LBA「2000」で指定されるTPPS[A]の解放を要求するUNMAPコマンドをホストコンピュータ2から受信する。そして、ストレージ装置10は、解放を要求されたTPPS[A]が記憶する論理ボリュームのデータのコピーを実行中であるので、論理LBA「2000」で指定されるTPPS[A]を第1世代として管理する。また、ストレージ装置10は、TPPS[A]をマッピング情報から削除して、マッピング情報テーブル23a(33a)を更新する(ステップS403)。従って、TPPS[A]は、ホストコンピュータ2によるTPVに関連付けられるアクセスから退避させることができる。そして、ストレージ装置10は、ホストコンピュータ2にUNMAPコマンドに対する応答を送信する。
続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPSに対するライト要求をホストコンピュータ2から受信する。ストレージ装置10は、ライト要求を受信時に、論理LBA「2000」に対して新規のTPPS[B]を獲得する。
そして、ストレージ装置10は、ホストコンピュータ2からライトデータを受信し、ライト要求に対する応答をホストコンピュータ2に送信する。また、ストレージ装置10は、TPPS[B]が記憶する論理ボリュームのデータのコピー(コピー[C]と記載)を実行する(ステップS404)。
続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPS[B]の解放を要求するUNMAPコマンドをホストコンピュータ2から受信する。そして、ストレージ装置10は、解放を要求されたTPPS[B]が記憶する論理ボリュームのデータのコピーを実行中であるので、論理LBA「2000」で指定されるTPPS[B]を第2世代として管理する。また、ストレージ装置10は、TPPS[B]をマッピング情報から削除して、マッピング情報テーブル23a(33a)を更新する(ステップS405)。従って、TPPS[B]は、ホストコンピュータ2によるTPVに関連付けられるアクセスから退避させることができる。そして、ストレージ装置10は、ホストコンピュータ2にUNMAPコマンドに対する応答を送信する。
続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPSに対するライト要求をホストコンピュータ2から受信する。ストレージ装置10は、ライト要求を受信時に、論理LBA「2000」に対して新規のTPPS[C]を獲得する。
そして、ストレージ装置10は、ホストコンピュータ2からライトデータを受信し、ライト要求に対する応答をホストコンピュータ2に送信する。また、ストレージ装置10は、TPPS[C]が記憶する論理ボリュームのデータのコピー(コピー[D]と記載)を実行する(ステップS406)。
続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPS[C]の解放を要求するUNMAPコマンドをホストコンピュータ2から受信する。そして、ストレージ装置10は、解放を要求されたTPPS[C]が記憶する論理ボリュームのデータのコピーを実行中であるので、論理LBA「2000」で指定されるTPPS[C]を第3世代として管理する。また、ストレージ装置10は、TPPS[C]をマッピング情報から削除して、マッピング情報テーブル23a(33a)を更新する(ステップS407)。従って、TPPS[C]は、ホストコンピュータ2によるTPVに関連付けられるアクセスから退避させることができる。なお、ストレージ装置10は、論理LBA「2000」で指定されるTPPSに対するライト要求をホストコンピュータ2から受信した場合、論理LBA「2000」に対して新規のTPPS[D]を獲得する。
そして、ストレージ装置10は、第1世代のTPPS[A]のコピー[A]とコピー[B]とが終了後に、TPPS[A]を解放する(ステップS408)。また、ストレージ装置10は、第2世代のTPPS[B]のコピー[C]が終了後に、TPPS[B]を解放する(ステップS409)。同様に、ストレージ装置10は、第3世代のTPPS[C]のコピー[D]が終了後に、TPPS[C]を解放する(ステップS410)。
[実施例2に係るストレージ装置10による処理の処理手順]
次に図12を用いて、実施例2に係るストレージ装置10によるマッピング情報更新処理の処理手順を説明する。図12は、実施例2に係るストレージ装置10によるマッピング情報更新処理の処理手順を説明するフローチャートである。
図12に示すように、UNMAPコマンド処理部101は、UNMAPコマンドを受信する(ステップS501)。そして、競合検知部103は、解放を要求されたTPPSのコピー処理を実行するか否かを判定する(ステップS502)。
ここで、競合検知部103により解放を要求されたTPPSのコピー処理を実行すると判定された場合(ステップS502、Yes)、UNMAPコマンド処理部101は、解放を要求されたTPPSを即座に解放させない(ステップS503)。
そして、TPPS世代管理部201は、コピー処理を行うために退避世代番号を付与して、コピー世代管理テーブル23cに記憶させる(ステップS504)。また、コピー世代処理制御部202は、コピー元データを記憶するTPPSの識別子と、コピー先を特定する論理アドレスとを対応付けたコピー情報をコピー世代管理テーブル23cに記憶させる(ステップS505)。
続いて、コピー処理制御部104は、コピー処理が複数であるか否かを判定する(ステップS506)。ここで、コピー処理制御部104は、コピー処理が複数であると判定した場合(ステップS506、Yes)、バックグラウンドで複数のコピー処理を起動する(ステップS507)。一方、コピー処理制御部104は、コピー処理が複数ではないと判定した場合(ステップS506、No)、バックグラウンドでコピー処理を起動する(ステップS508)。
一方、競合検知部103により解放を要求されたTPPSのコピー処理を実行しないと判定された場合(ステップS502、No)、UNMAPコマンド処理部101は、解放を要求されたTPPSを解放させる(ステップS509)。
ステップS507、ステップS508またはステップS509の終了後、TPPSマッピング管理部105は、ホストから解放を要求されたTPPSが解放状態となるようにマッピング情報テーブル23aが記憶するマッピング情報を更新する(ステップS510)。
続いて、UNMAPコマンド処理部101は、UNMAPコマンドに対する応答をホストに送信し(ステップS511)、マッピング情報更新処理を終了する。
[実施例2の効果]
上述してきたように、実施例2に係るストレージ装置10は、世代ごとの「コピー元」と「コピー先」とのペアを管理することができる。
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例3では、本発明に含まれる他の実施例について説明する。実施例1および実施例2では、ストレージ装置10が、解放を要求されたTPPSが記憶する論理ボリュームのデータをコピーする場合、OLUをコピーとしてコピーを実行するものとして説明した。ところで、ストレージ装置10は、OLUではなく、TPVをコピー先としてもよいものである。
また、このような場合、ストレージ装置10は、コピー処理を実行せず、コピー先についてマッピング情報テーブル23aまたはマッピング情報テーブル33aを更新するようにしてもよいものである。
そこで、実施例3では、コピー処理制御部104が以下の機能を有する場合を説明する。実施例3に係るコピー処理制御部104は、退避させた物理LBAで指定されるTPPSが記憶する論理ボリュームのデータのコピー先がTPVである場合、以下の処理を実行する。すなわち、コピー処理制御部104は、コピー先のTPVの論理LBAと、該TPPSを指定する物理LBAとを対応付けて、マッピング情報テーブル23aに記憶させる。
[実施例3に係るストレージ装置10による処理の処理手順]
図13を用いて、実施例3に係るストレージ装置10による処理の処理手順について説明する。図13は、実施例3に係るストレージ装置10におけるTPVへのコピー時の処理手順を示すフローチャートである。なお、図13は、論理LBA「2000」が指定するTPPS22をTPVの論理LBA「9000」にコピーする場合を示す。
図13に示すように、UNMAPコマンド処理部101は、UNMAPコマンドを受信する(ステップS601)。そして、競合検知部103は、解放を要求されたTPPSのコピー処理を実行するか否かを判定する(ステップS602)。
ここで、UNMAPコマンド処理部101は、競合検知部103により解放を要求されたTPPSのコピー処理を実行すると判定された場合(ステップS602、Yes)、解放を要求されたTPPSの解放を保留する(ステップS603)。そして、コピー処理制御部104は、コピー先がTPVであるか否かを判定する(ステップS604)。
コピー処理制御部104は、コピー先がTPVではないと判定した場合(ステップS604、No)、バックグラウンドでコピー処理を起動する(ステップS605)。一方、コピー処理制御部104は、コピー先がTPVであると判定した場合(ステップS604、Yes)、バックグラウンドでコピー処理を省略すると判定する(ステップS606)。そして、コピー処理制御部104は、コピー先についてコピー処理の代わりにマッピング情報を更新する(ステップS607)。例えば、コピー処理制御部104は、コピー先にマッピング情報として、論理LBA「9000」とTPPS22とを対応付けた情報をマッピング情報テーブル23aに記憶させる。
一方、競合検知部103により解放を要求されたTPPSのコピー処理を実行しないと判定された場合(ステップS602、No)、UNMAPコマンド処理部101は、解放を要求されたTPPSを解放させる(ステップS608)。
ステップS605、ステップS607またはステップS608の処理の終了後、TPPSマッピング管理部105は、ホストから解放を要求されたTPPSが解放状態となるようにマッピング情報を更新する(ステップS609)。例えば、TPPSマッピング管理部105は、論理LBA「2000」に対応付けられる「物理LBA」に格納される値を削除する。
そして、UNMAPコマンド処理部101は、UNMAPコマンドに対する応答をホストに送信して(ステップS610)処理を終了する。
[実施例3の効果]
このように、ストレージ装置は、解放を要求されたTPPSのコピー先がTPVである場合、コピー処理を省略することができる。また、このコピー処理を省略する処理は、コピー世代を管理する処理と組み合わせることが可能である。
次に、図14を用いて、実施例3に係るストレージ装置10によるコピー処理を省略する処理とコピー世代を管理する処理と組み合わせた処理動作の一例について説明する。図14は、実施例3に係るストレージ装置10による処理動作の一例を示す図である。なお、図14は、論理LBA「2000」で指定されるTPPSの解放と、論理LBA「2000」で指定されるTPPSが記憶する論理ボリュームのデータのコピーとが交互に実行され、コピー先がTPVである場合を示す。
図14に示すように、ストレージ装置10は、論理LBA「2000」で指定されるTPPS[A]の解放を要求するUNMAPコマンドをホストコンピュータ2から受信する。ここで、ストレージ装置10は、解放を要求されたTPPS[A]が記憶する論理ボリュームのデータのコピー(コピー[A]と記載)を実行する場合、論理LBA「2000」で指定されるTPPS[A]を第1世代として管理する。また、ストレージ装置10は、TPPS[A]をマッピング情報から削除して、マッピング情報テーブル23a(33a)を更新する。従って、TPPS[A]は、ホストコンピュータ2によるTPVに関連付けられるアクセスから退避させることができる。また、ストレージ装置10は、コピー先がTPVであるので、コピー処理を省略すると判定し、コピー先についてコピー処理の代わりにマッピング情報を更新する(ステップS701)。
また、ストレージ装置10は、コピー[A]の終了後に、TPPS[A]が記憶する論理ボリュームのデータのコピー(コピー[B]と記載)を実行する(ステップS702)。この場合、ストレージ装置10は、コピー元が既に退避させたTPPS[A]であるのでTPPS[A]が記憶する論理ボリュームのデータを物理的にコピーする。
続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPSに対するライト要求をホストコンピュータ2から受信する。ストレージ装置10は、論理LBA「2000」に対して新規のTPPS[B]を獲得する。
そして、ストレージ装置10は、論理LBA「2000」で指定されるTPPS[B]の解放を要求するUNMAPコマンドをホストコンピュータ2から受信する。ここで、ストレージ装置10は、解放を要求されたTPPS[B]が記憶する論理ボリュームのデータのコピー(コピー[C]と記載)を実行する場合、論理LBA「2000」で指定されるTPPS[B]を第2世代として管理する。また、ストレージ装置10は、TPPS[B]をマッピング情報から削除して、マッピング情報テーブル23a(33a)を更新する。従って、TPPS[B]は、ホストコンピュータ2によるTPVに関連付けられるアクセスから退避させることができる。また、ストレージ装置10は、コピー先がTPVであるので、コピー処理を省略すると判定し、コピー先についてコピー処理の代わりにマッピング情報を更新する(ステップS703)。
続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPSに対するライト要求をホストコンピュータ2から受信する。ストレージ装置10は、論理LBA「2000」に対して新規のTPPS[C]を獲得する。
そして、ストレージ装置10は、論理LBA「2000」で指定されるTPPS[C]の解放を要求するUNMAPコマンドをホストコンピュータ2から受信する。ここで、ストレージ装置10は、解放を要求されたTPPS[C]が記憶する論理ボリュームのデータのコピー(コピー[D]と記載)を実行する場合、論理LBA「2000」で指定されるTPPS[C]を第3世代として管理する。また、ストレージ装置10は、TPPS[C]をマッピング情報から削除して、マッピング情報テーブル23a(33a)を更新する。従って、TPPS[C]は、ホストコンピュータ2によるTPVに関連付けられるアクセスから退避させることができる。また、ストレージ装置10は、コピー先がTPVであるので、コピー処理を省略すると判定し、コピー先についてコピー処理の代わりにマッピング情報を更新する(ステップS704)。
続いて、ストレージ装置10は、論理LBA「2000」で指定されるTPPSに対するライト要求をホストコンピュータ2から受信する。ストレージ装置10は、論理LBA「2000」に対して新規のTPPS[D]を獲得する。
なお、ストレージ装置10は、第1世代のTPPS[A]のコピー[A]とコピー[B]とが終了後に、TPPS[A]を解放する。また、ストレージ装置10は、第2世代のTPPS[B]のコピー[C]が終了後に、TPPS[B]を解放する。同様に、ストレージ装置10は、第3世代のTPPS[C]のコピー[D]が終了後に、TPPS[C]を解放する。
[システム構成等]
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更してもよい。
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、ストレージ装置10により実行されるファームウェア200では、TPPS世代管理部201とコピー世代処理制御部202とが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
1 情報処理システム
2 ホストコンピュータ
10 ストレージ装置
11、12、13、14 CA
15、16、17、18 ディスク装置
20、30 CM
21、22、31、32 DA
23、33 RAM
23a、33a マッピング情報テーブル
23b、33b コピー管理テーブル
23c、33c コピー世代管理テーブル
24、34 フラッシュメモリ
24a、34a ファームウェア
101 UNMAPコマンド処理部
102 ライトI/O処理部
103 競合検知部
104 コピー処理制御部
105 TPPSマッピング管理部
106 TPPS割当管理部
201 TPPS世代管理部
202 コピー世代処理制御部

Claims (5)

  1. 上位装置から転送されたデータを冗長化して前記複数の記憶領域に記憶するストレージ装置において、
    前記上位装置から指定された論理アドレスに対して、前記複数の記憶領域の中から記憶領域を割当てる制御部と、
    前記論理アドレスと前記割当てられた記憶領域を示す物理アドレスとを関連付ける情報を含む管理情報を記憶する記憶部とを有し、
    前記制御部は、
    前記上位装置から指定された論理アドレスに対応付けられた物理アドレスの記憶領域の解放要求を受け付けた場合であって、前記解放要求された論理アドレスに対応付けられた物理アドレスにコピー処理が未実行のデータが記憶されているときに、前記管理情報における前記解放要求された論理アドレスと前記コピー処理が未実行の物理アドレスの関連付けを解除し、前記コピー処理が未実行の物理アドレスに記憶されたデータのコピー処理が終了した後に、該物理アドレスの記憶領域を解放すること、
    を特徴とするストレージ装置。
  2. 前記制御部は、前記解放要求された論理アドレスが指定されたデータ書込み要求を受付ける場合、前記解放要求された論理アドレスに対して、前記複数の記憶領域の中から記憶領域を獲得し、前記管理情報に前記論理アドレスと前記獲得された記憶領域を示す物理アドレスとを関連付ける情報を記憶させることを特徴とする請求項1に記載のストレージ装置。
  3. 前記制御部は、コピー対象のデータを記憶する記憶領域の解放要求を受け付けた場合であって、該解放要求で指定される論理アドレスに新たに対応付けられる物理アドレスに記憶されるデータに対してコピー処理を実行する場合、コピーの世代数と、コピー元データを記憶する記憶領域の識別子と、コピー先を特定する論理アドレスとを対応付けたコピー情報を前記記憶部に記憶させ、
    前記コピー情報を参照してコピーの世代数ごとにコピー処理を実行させる
    ことを特徴とする請求項1または2に記載のストレージ装置。
  4. 前記制御部は、前記コピー処理が未実行の物理アドレスで指定される記憶領域が記憶するデータのコピー先が仮想領域である場合、該コピー先の仮想領域の論理アドレスと該記憶領域を示す物理アドレスとを対応付けた情報を前記記憶部に記憶させることを特徴とする請求項1−3のいずれか一つに記載のストレージ装置。
  5. 上位装置から指定された論理アドレスに対して、前記複数の記憶領域の中から記憶領域を割当てる制御部と、前記論理アドレスと前記割当てられた記憶領域を示す物理アドレスとを関連付ける情報を含む管理情報を記憶する記憶部とを有し、前記上位装置から転送されたデータを冗長化して前記複数の記憶領域に記憶するストレージ装置の制御方法において、
    前記制御部が、
    前記上位装置から指定された論理アドレスに対応付けられた物理アドレスの記憶領域の解放要求を受け付けた場合であって、前記解放要求された論理アドレスに対応付けられた物理アドレスにコピー処理が未実行のデータが記憶されているときに、前記管理情報における前記解放要求された論理アドレスと前記コピー処理が未実行の物理アドレスの関連付けを解除し、前記コピー処理が未実行の物理アドレスに記憶されたデータのコピー処理が終了した後に、該物理アドレスの記憶領域を解放する、
    処理を含んだことを特徴とするストレージ装置の制御方法。
JP2012118956A 2012-05-24 2012-05-24 ストレージ装置およびストレージ装置の制御方法 Active JP5915378B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012118956A JP5915378B2 (ja) 2012-05-24 2012-05-24 ストレージ装置およびストレージ装置の制御方法
US13/783,880 US9141304B2 (en) 2012-05-24 2013-03-04 Storage device and method for controlling storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012118956A JP5915378B2 (ja) 2012-05-24 2012-05-24 ストレージ装置およびストレージ装置の制御方法

Publications (2)

Publication Number Publication Date
JP2013246582A JP2013246582A (ja) 2013-12-09
JP5915378B2 true JP5915378B2 (ja) 2016-05-11

Family

ID=49622505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012118956A Active JP5915378B2 (ja) 2012-05-24 2012-05-24 ストレージ装置およびストレージ装置の制御方法

Country Status (2)

Country Link
US (1) US9141304B2 (ja)
JP (1) JP5915378B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN203129697U (zh) 2013-02-05 2013-08-14 客贝利(厦门)休闲用品有限公司 一种帐篷架杆
CN203257172U (zh) 2013-05-08 2013-10-30 客贝利(厦门)休闲用品有限公司 一种一字顶帐篷改进结构
US9650805B2 (en) 2013-12-05 2017-05-16 Campvalley (Xiamen) Co., Ltd. Top connecting apparatus for a shelter frame
KR20160028680A (ko) * 2014-09-04 2016-03-14 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
JP6569477B2 (ja) * 2015-11-02 2019-09-04 富士通株式会社 ストレージ制御装置、および制御プログラム
CN207260737U (zh) 2017-04-21 2018-04-20 客贝利(厦门)休闲用品有限公司 一种双顶折叠帐篷
US10528256B2 (en) * 2017-05-24 2020-01-07 International Business Machines Corporation Processing a space release command to free release space in a consistency group
JP2020144601A (ja) 2019-03-06 2020-09-10 株式会社日立製作所 ストレージ装置及びストレージ装置のデータ消去方法
JP7283317B2 (ja) * 2019-09-12 2023-05-30 富士通株式会社 ストレージシステム、ストレージ制御装置および割当解放プログラム
US11556260B2 (en) * 2020-03-11 2023-01-17 EMC IP Holding Company LLC Providing coordination between mapper circuitry and redundant array of independent disks (RAID) circuitry to manage RAID storage space

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8086652B1 (en) * 2007-04-27 2011-12-27 Netapp, Inc. Storage system-based hole punching for reclaiming unused space from a data container
JP5072692B2 (ja) 2008-04-07 2012-11-14 株式会社日立製作所 複数のストレージシステムモジュールを備えたストレージシステム
US8407436B2 (en) * 2009-02-11 2013-03-26 Hitachi, Ltd. Methods and apparatus for migrating thin provisioning volumes between storage systems
JP5538362B2 (ja) * 2009-03-18 2014-07-02 株式会社日立製作所 記憶制御装置及び仮想ボリュームの制御方法
JP5104817B2 (ja) * 2009-06-30 2012-12-19 富士通株式会社 ストレージシステム、ストレージ制御装置及び方法
US8285952B2 (en) * 2009-09-17 2012-10-09 Hitachi, Ltd. Method and apparatus to utilize large capacity disk drives
US8423737B2 (en) * 2009-12-17 2013-04-16 International Business Machines Corporation Systems and methods for virtualizing storage systems and managing data independently
US8392653B2 (en) * 2010-08-18 2013-03-05 International Business Machines Corporation Methods and systems for releasing and re-allocating storage segments in a storage volume
US8904106B2 (en) * 2011-06-22 2014-12-02 International Business Machines Corporation Parallel block allocation for declustered logical disks

Also Published As

Publication number Publication date
JP2013246582A (ja) 2013-12-09
US20130318316A1 (en) 2013-11-28
US9141304B2 (en) 2015-09-22

Similar Documents

Publication Publication Date Title
JP5915378B2 (ja) ストレージ装置およびストレージ装置の制御方法
US8984248B2 (en) Data migration system and data migration method
JP6765321B2 (ja) メモリシステムおよび制御方法
US9600202B2 (en) Method and device for implementing memory migration
KR101786871B1 (ko) 원격 페이지 폴트 처리 장치 및 그 방법
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US9116622B2 (en) Storage system having nonvolatile semiconductor storage device with nonvolatile semiconductor memory
US20170075614A1 (en) Memory system and host apparatus
US10268592B2 (en) System, method and computer-readable medium for dynamically mapping a non-volatile memory store
US10176098B2 (en) Method and apparatus for data cache in converged system
WO2013061376A1 (en) Storage system and data processing method in storage system
JP2010086394A (ja) 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム
EP3353664B1 (en) Method and apparatus for pinning memory pages in a multi-level system memory
JP5492731B2 (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
JP6311365B2 (ja) 記憶領域管理装置、記憶領域管理方法及び記憶領域管理プログラム
US11741056B2 (en) Methods and systems for allocating free space in a sparse file system
JPWO2021218038A5 (ja)
WO2016013098A1 (ja) 物理計算機及び仮想計算機移行方法
US20240330116A1 (en) Allocating system rdp metadata space with io performance priority
JP6657990B2 (ja) ストレージ装置、仮想ボリューム制御システム、仮想ボリューム制御方法および仮想ボリューム制御プログラム
JP5382471B2 (ja) 電力制御方法、計算機システム、及びプログラム
WO2017163322A1 (ja) 管理計算機、および計算機システムの管理方法
JP5435234B2 (ja) ストレージ装置及びこれを用いたデータ転送方法
US9471247B2 (en) Storage apparatus and area releasing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160229

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160321

R150 Certificate of patent or registration of utility model

Ref document number: 5915378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150