JP6069962B2 - 情報処理装置、領域解放制御プログラム、および領域解放制御方法 - Google Patents

情報処理装置、領域解放制御プログラム、および領域解放制御方法 Download PDF

Info

Publication number
JP6069962B2
JP6069962B2 JP2012190477A JP2012190477A JP6069962B2 JP 6069962 B2 JP6069962 B2 JP 6069962B2 JP 2012190477 A JP2012190477 A JP 2012190477A JP 2012190477 A JP2012190477 A JP 2012190477A JP 6069962 B2 JP6069962 B2 JP 6069962B2
Authority
JP
Japan
Prior art keywords
area
data
transfer
transfer source
command
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
JP2012190477A
Other languages
English (en)
Other versions
JP2014048835A (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 JP2012190477A priority Critical patent/JP6069962B2/ja
Priority to US13/951,545 priority patent/US9141306B2/en
Priority to EP13178509.9A priority patent/EP2703990A2/en
Priority to KR1020130099639A priority patent/KR101427535B1/ko
Priority to CN201310373280.6A priority patent/CN103677660B/zh
Publication of JP2014048835A publication Critical patent/JP2014048835A/ja
Application granted granted Critical
Publication of JP6069962B2 publication Critical patent/JP6069962B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0673Single storage device
    • 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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置、領域解放制御プログラム、および領域解放制御方法に関する。
ストレージ装置は、ホストコンピュータに対して仮想的なボリューム(論理ボリューム)を認識させることにより、必要に応じてストレージプールからストレージ資源を論理ボリュームに割り当てる。また、ストレージ装置は、不要となった領域を解放して、ストレージプールにストレージ資源を返却する。
このようにして、ストレージ装置は、ストレージ装置内の資源利用の効率化を図っている。
また、ホストコンピュータがおこなうファイルのコピーや移動に伴う負荷をストレージ装置にオフロードさせることで、ホストコンピュータのCPU(Central Processing Unit)負荷や、ホストコンピュータとストレージ装置間の通信負荷を軽減するオフロードデータ転送機能がある。
特開2008−130080号公報 特開2011−76572号公報
オフロードデータ転送機能の実行中に、論理ボリュームの領域解放を受け付けると、ストレージ装置は、オフロードデータ転送の対象となるデータを喪失するおそれがある。そのため、ストレージ装置は、領域解放の対象となるデータを退避用ボリュームに退避させることが求められる。
しかしながら、退避用ボリュームへの退避は、退避処理にかかる処理時間や、メモリの大量消費など非効率的な対処である。
1つの側面では、本発明は、オフロードデータ転送機能に対応して、領域解放時の資源消費の効率を改善する情報処理装置、領域解放制御プログラム、および領域解放制御方法を提供することを目的とする。
上記目的を達成するために、以下に示すような、情報処理装置が提供される。情報処理装置は、受信部と、制御部を備える。受信部は、オフロードデータ転送指示を受信する。制御部は、オフロードデータ転送指示にもとづいて、転送元領域に関する転送元情報を生成し、転送元領域と重複する領域の解放指示を受け付けた場合に、解放指示に対する完了応答をおこなってから領域の解放を予約する予約状態を生成し、転送元情報を用いたデータ転送が留保された留保状態を判定し、留保状態が解除された場合に、予約状態の領域を解放する、処理をおこなう。
また、上記目的を達成するために、以下に示すような、領域解放制御プログラム、および領域解放制御方法が提供される。領域解放制御プログラム、および領域解放制御方法は、以下に示すような処理をコンピュータに実行させる。コンピュータは、オフロードデータ転送指示を受け付けて、転送元領域に関する転送元情報を生成し、転送元領域と重複する領域の解放指示を受け付けた場合に、解放指示に対する完了応答をおこなってから領域の解放を予約する予約状態を生成し、転送元情報を用いたデータ転送が留保された留保状態を判定し、留保状態が解除された場合に、予約状態の領域を解放する。
1態様によれば、情報処理装置、領域解放制御プログラム、および領域解放制御方法において、オフロードデータ転送機能に対応して、領域解放時の資源消費の効率を改善する。
第1の実施形態の情報処理装置の構成例を示す図である。 第2の実施形態のストレージ装置の接続例を示す図である。 第2の実施形態のストレージ装置の構成例を示す図である。 第2の実施形態の論理ボリュームへの物理資源割当を示す図である。 第2の実施形態の論理ボリュームからの物理資源解放を示す図である。 第2の実施形態のオフロードデータ転送のコピー動作の一例を示す図である。 第2の実施形態のオフロードデータ転送時のオフロードリード処理のシーケンス図である。 第2の実施形態のコマンド発行順リストの一例を示す図である。 第2の実施形態のオフロードデータ転送時のオフロードライト処理のシーケンス図である。 第2の実施形態のセッション管理テーブルの一例を示す図である。 第2の実施形態の転送元領域の領域解放動作の一例を示す図である。 第2の実施形態の転送元領域の領域解放予約状態の一例を示す図である。 第2の実施形態の転送元領域のデータ退避の一例を示す図である。 第2の実施形態のデータが退避されている場合のコピー動作の一例を示す図である。 第2の実施形態の期限管理処理のフローチャートを示す図である。 第2の実施形態のUNMAPコマンド応答処理のフローチャートを示す図である。 「PT」コマンドの発行の後に、「UNMAP」コマンドの発行があった転送元ボリュームの一例を示す図である。 「UNMAP」コマンドの発行の後に、「PT」コマンドの発行があった転送元ボリュームの一例を示す図である。 「UNMAP」コマンドに前後する「PT」コマンドの発行があった場合の、データコピーの一例を示す図である。 第2の実施形態のWUTコマンド応答処理のフローチャートを示す図である。
以下、実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
まず、第1の実施形態の情報処理装置について図1を用いて説明する。図1は、第1の実施形態の情報処理装置の構成例を示す図である。
情報処理装置1は、ストレージデバイス(記憶デバイス)9のアクセス制御をおこなう制御装置であり、ストレージデバイス9とともにストレージ装置を構成する。ストレージデバイス9は、所要の情報を記録可能であり、たとえば、HDD(Hard Disk Drive)やSSD(Solid State Drive:フラッシュメモリドライブ)などである。
情報処理装置1は、ホストコンピュータ13と通信可能に接続する。ホストコンピュータ13は、たとえば、図示しない操作端末装置に対してサーバ機能を提供する。情報処理装置1は、ホストコンピュータ13から指示(オフロードデータ転送指示や、解放指示、その他I/Oコマンドなど)を受け付ける。オフロードデータ転送指示は、トークンを介することにより、ホストコンピュータ13が転送対象となるデータをリード/ライトすることなしに、ストレージ装置内部、あるいはストレージ装置間でデータ転送をおこなうコマンドである。なお、トークンは、データ転送に関する制御情報である。データ転送は、データのコピー、データの移動を含み、転送するデータは、たとえば、ファイル単位、ボリューム単位など任意の単位とすることができる。また、解放指示は、ストレージデバイス9の論理ボリューム14への割当を解放するコマンドである。
情報処理装置1は、受信部2と、制御部3を備える。受信部2は、ホストコンピュータ13からオフロードデータ転送指示や解放指示などのコマンドを受信する。制御部3は、転送元情報生成処理4と、予約状態生成処理5と、留保状態判定処理6と、領域解放処理7とをおこなう。
転送元情報生成処理4は、ホストコンピュータ13から受信したオフロードデータ転送指示にもとづいて、ストレージデバイス9の転送元領域10に関する転送元情報4aを生成する処理である。ホストコンピュータ13は、オフロードデータ転送指示とともに論理ボリューム14の転送元領域15を通知する。情報処理装置1は、転送元情報生成処理4において、転送元領域15に対応する転送元領域10を特定して、転送元情報4aを生成する。転送元情報4aは、オフロードデータ転送指示が指示する転送元を特定可能な情報を含む。転送元情報4aは、たとえば、トークンと呼ばれる情報である。
予約状態生成処理5は、転送元領域10と重複する重複領域12を含む、解放領域11の領域解放の指示(解放指示)を受け付けた場合に、解放指示に対する完了応答をおこなってから重複領域12の解放を予約する予約状態5aを生成する処理である。なお、解放を予約する領域は、重複領域12を含む解放領域11であってもよい。ホストコンピュータ13は、解放指示とともに論理ボリューム14の解放領域16を通知する。情報処理装置1は、予約状態生成処理5において、解放領域16に対応する解放領域11を特定して、転送元領域10と重複する重複領域12を特定することができる。
留保状態判定処理6は、留保状態を判定する処理である。留保状態は、転送元情報4aを用いたデータ転送が留保された状態である。データ転送が留保された状態とは、転送元情報4aを用いたデータ転送の実行可能性がある状態である。すなわち、情報処理装置1は、留保状態においては、転送元情報4aを用いたデータ転送に備え、転送元領域10のデータの保持が求められる。
領域解放処理7は、留保状態が解除された場合に、予約状態5aによって解放が予約された重複領域12(予約状態の領域)を解放する処理である。
これにより、情報処理装置1は、重複領域12の解放を、解放指示と非同期におこなうことができる。また、情報処理装置1は、留保状態が解除されるまで、重複領域12の領域解放をおこなわないので、転送元情報4aを用いたデータ転送に備えて重複領域12のデータを保持することができる。このように、情報処理装置1は、重複領域12のデータを退避領域に退避することなく、転送元情報4aを用いたデータ転送に備えることができるので、データ退避に要する処理時間やメモリ領域などの資源消費を要しない。したがって、情報処理装置1は、オフロードデータ転送機能に対応して、領域解放時の資源消費の効率を改善することができる。
[第2の実施形態]
次に、第2の実施形態のストレージ装置の接続例について図2を用いて説明する。図2は、第2の実施形態のストレージ装置の接続例を示す図である。
ストレージ装置20は、ネットワーク33を介してホストコンピュータ30と通信可能に接続する。ネットワーク33は、1または複数のストレージ装置20と、1または複数のホストコンピュータ30が接続するSAN(Storage Area Network)である。
ストレージ装置20aは、ネットワーク33aを介してホストコンピュータ30aと通信可能に接続し、ストレージ装置20b,20c,20d,20eは、ネットワーク33bを介してホストコンピュータ30bと通信可能に接続する。また、ストレージ装置20a,20b,20c,20d,20eは、ネットワーク34を介して通信可能に接続する。ネットワーク34は、たとえば、ストレージ装置専用のネットワークである。
ホストコンピュータ30aは、ネットワーク32を介して操作端末装置31と通信可能に接続する。ネットワーク32は、1または複数のホストコンピュータ30と、1または複数の操作端末装置31が接続するLAN(Local Area Network)、またはWAN(Wide Area Network)である。
ストレージ装置20は、各ストレージ装置20が制御対象とするストレージデバイス内でローカルコピーをおこなうことができる他、任意のストレージ装置20との間でリモートコピーをおこなうことができる。ホストコンピュータ30は、任意のストレージ装置20に対してローカルコピーあるいはリモートコピーを指示できる。ホストコンピュータ30は、任意のストレージ装置20に対してローカルコピーあるいはリモートコピーを指示する場合に、オフロードデータ転送を指示することができる。
次に、第2の実施形態のストレージ装置について図3を用いて説明する。図3は、第2の実施形態のストレージ装置の構成例を示す図である。
ストレージ装置20は、チャネルアダプタ26と、リモートアダプタ27と、コントローラモジュール21と、ストレージデバイス25を備える。ストレージデバイス25は、複数備えられることで、RAID(Redundant Array of Inexpensive Disks)を構成する。ストレージデバイス25は、ユーザデータや制御情報(後述するセッション管理テーブルなど)を格納する。
コントローラモジュール21は、ストレージデバイス25のアクセス制御をおこなう情報処理装置の1つである。コントローラモジュール21がおこなうストレージデバイス25のアクセス制御は、ストレージデバイス25をデータ転送元あるいはデータ転送先とするデータ転送制御を含む。
ストレージ装置20は、コントローラモジュール21aとコントローラモジュール21bの2つのコントローラモジュール21を備える。コントローラモジュール21aとコントローラモジュール21bは、ディスクアダプタ24を介して、それぞれが制御対象とするストレージデバイス25と接続する。コントローラモジュール21aとコントローラモジュール21bは、相互に接続する。
なお、ストレージ装置20は、2つのコントローラモジュール21を備えるが、これに限らず、コントローラモジュール21aとコントローラモジュール21bのいずれか一方を備えるものであってもよい。また、ストレージ装置20aは、3つ以上のコントローラモジュール21を備えるものであってもよく、たとえば、4つあるいは8つのコントローラモジュール21を備えるものであってもよい。
ストレージ装置20は、チャネルアダプタ26を介してホストコンピュータ30と接続する。チャネルアダプタ26は、コントローラモジュール21毎に備えられる。コントローラモジュール21は、チャネルアダプタ26を複数(たとえば、2つ)備えるものであってもよく、複数のチャネルアダプタ26により複数系統でホストコンピュータ30と接続することができる。
ストレージ装置20は、リモートアダプタ27を介して他のストレージ装置20と接続する。リモートアダプタ27は、コントローラモジュール21毎に備えられる。
コントローラモジュール21は、CPU22、メモリ23、ディスクアダプタ24を備える。CPU22は、転送制御、領域割当制御や領域解放制御などをおこなう。
メモリ23は、ストレージデバイス25からデータを読み出したときにデータを保持するほか、ストレージデバイス25にデータを書き込むときのバッファとなる。また、メモリ23は、ユーザデータや制御情報を格納する。ディスクアダプタ24は、ストレージデバイス25とのインタフェース制御(アクセス制御)をおこなう。
このようなストレージ装置20は、コントローラモジュール21が制御対象とするストレージデバイス25におけるデータの転送制御をおこなうことができる。
なお、コントローラモジュール21は、CPU22によって装置全体が制御されている。CPU22には、図示しないバスを介してメモリ23が接続されている。また、CPU22には、図示しないバスを介して図示しない周辺機器が接続あるいは、接続可能になっている。CPU22は、プロセッサの一例であって、たとえばMPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)であってもよい。また、CPU22は、シングルプロセッサに限らず、マルチプロセッサであってもよい。またCPU22は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
メモリ23は、RAM(Random Access Memory)や不揮発性メモリによって構成される。RAMは、コントローラモジュール21の主記憶装置として使用される。RAMには、CPU22に実行させるOS(Operating System)のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAMには、CPU22による処理に必要な各種データが格納される。
不揮発性メモリは、ストレージ装置20の電源遮断時において記憶内容を保持する。不揮発性メモリは、たとえば、EEPROMやフラッシュメモリなどの半導体記憶装置や、HDDなどである。また、不揮発性メモリは、コントローラモジュール21の補助記憶装置として使用される。不揮発性メモリには、OSのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
バスに接続される周辺機器としては、入出力インタフェース、および通信インタフェースがある。
入出力インタフェースは、HDDなどの入出力装置と接続して入出力をおこなう。入出力インタフェースは、HDDなどの記憶装置から送られてくる信号やデータをCPU22やキャッシュメモリ(メモリ23)に送信する。また、入出力インタフェースは、たとえば、CPU22から受信した信号を、他の制御部や、コントローラモジュール21と接続する出力装置に出力する。
通信インタフェースは、ストレージ装置20内の他のコントローラモジュール21との間でデータの送受信をおこなう。
以上のようなハードウェア構成によって、第2の実施形態のコントローラモジュール21の処理機能を実現することができる。なお、ホストコンピュータ30の他、第1の実施形態に示した情報処理装置1も、コントローラモジュール21と同様のハードウェアにより実現することができる。
次に、第2の実施形態の領域割当(物理資源割当)と領域解放(物理資源解放)について図4および図5を用いて説明する。図4は、第2の実施形態の論理ボリュームへの物理資源割当を示す図である。
ストレージ装置20は、ストレージデバイス25の物理容量にかかわらず、仮想的に利用可能な容量を設定可能なシン・プロビジョニング機能を有する。ストレージ装置20は、ホストコンピュータ30に対して仮想的なボリュームである論理ボリューム50を認識させる。ストレージ装置20は、ホストコンピュータ30からWrite I/Oが発行されると、ストレージプール51からのストレージ資源を論理ボリューム50に割り当てる物理資源割当(領域割当)を実行する。ストレージプール51は、ストレージ装置20が複数のストレージデバイス25を管理する単位である。たとえば、図4に示す論理ボリューム50は、領域52,53に対するWrite I/Oを受け付けて、ストレージプール51から物理資源の割当を受けている。
図5は、第2の実施形態の論理ボリュームからの物理資源解放を示す図である。ストレージ装置20は、物理資源割当後に未使用となった領域に対して、「UNMAP」(領域解放)コマンドを発行して、物理資源の解放をおこなうことができる。「UNMAP」コマンドは、ファイルシステムで不必要となった領域の物理資源解放をおこなうコマンドである。たとえば、図5に示す論理ボリューム50は、未使用となった領域52に対して「UNMAP」コマンドを発行して、物理資源を解放し、ストレージプール51に物理資源を返却する。
次に、第2の実施形態のCPU22が実行するオフロードデータ転送のコピー動作について図6を用いて説明する。図6は、第2の実施形態のオフロードデータ転送のコピー動作の一例を示す図である。
ホストコンピュータ30は、操作端末装置31のファイルコピーを指示する操作を契機にオフロードデータ転送を実行する。ホストコンピュータ30は、たとえば、操作端末装置31に対して図4または図5に示すようなTPV(Thin Provisioning Volume:論理ボリューム)41,44を含む論理イメージ40を提供する。たとえば、操作端末装置31がTPV41のファイル42をTPV44にファイル45としてコピーするファイルコピー指示43をおこなう。
ファイルコピー指示43を受け付けたホストコンピュータ30は、ストレージ装置20に対して「Offload Read(オフロードリード)」を指示する。「Offload Read」は、転送元データを特定可能な情報を含む。
ストレージ装置20は、「Offload Read」を受けて、転送元データを特定可能な情報を含むトークン60を生成する。たとえば、転送元データを特定可能な情報は、転送元LUN(Logical Unit Number)46、転送元領域47、転送データサイズなどを含む。ストレージ装置20は、生成したトークン60をホストコンピュータ30に通知する。
ホストコンピュータ30は、ストレージ装置20に対して「Offload Write(オフロードライト)」を指示する。「Offload Write」は、転送先領域を特定可能な情報と、ストレージ装置20から受け取ったトークン60とを含む。
ストレージ装置20は、「Offload Write」を受けて、転送対象となるデータと、転送先領域を特定可能な情報とを取得する。これにより、ストレージ装置20は、転送元LUN46、転送元領域47、転送データサイズ、転送先LUN48および転送先領域49を特定することができる。ストレージ装置20は、特定した情報にもとづきコピーセッション61を生成する。
ストレージ装置20は、コピーセッション61にしたがい、転送元LUN46の転送元領域47から転送先LUN48の転送先領域49に、転送データ62をデータ転送する。
ストレージ装置20は、転送データ62のデータ転送が完了すると、ホストコンピュータ30に対して「Status」を通知する。「Status」は、オフロードデータ転送の完了応答を意味する。
このようにして、ホストコンピュータ30は、オフロードリード時に、ストレージ装置20の転送対象となるデータを特定可能な情報としてトークン60を取得する。また、ホストコンピュータ30は、オフロードライト時に、ストレージ装置20の転送対象となるデータを特定可能な情報としてトークン60を通知する。
これにより、ホストコンピュータ30は、トークン60を介することで、転送データ62のリード/ライトを必要としなくなる。また、ホストコンピュータ30のCPU負荷や、ホストコンピュータ30とストレージ装置20を接続するネットワーク33にかかる負荷が軽減される。
次に、図6で説明したホストコンピュータ30からストレージ装置20への「Offload Read」の通知、およびストレージ装置20からホストコンピュータ30へのトークン60の通知の詳細なコマンドシーケンスについて図7を用いて説明する。図7は、第2の実施形態のオフロードデータ転送時のオフロードリード処理のシーケンス図である。
オフロードリード処理は、操作端末装置31のファイルコピーを指示する操作受付を契機として、ホストコンピュータ30により開始される。「Offload Read」の指示は、SCSI(Small Computer System Interface)標準の「EXTENDED COPY」コマンド、および「RECEIVE COPY RESULTS」コマンドを用いて実現することができる。この場合の「EXTENDED COPY」コマンドを「PT(Populate Token)」コマンド、「RECEIVE COPY RESULTS」コマンドを「RRTI(Receive Rod Token Information)」コマンドと呼ぶ。
[ステップS11]ホストコンピュータ30は、コピー(転送)元のストレージ装置20に対して、「PT」コマンドを送信する。ストレージ装置20は、ホストコンピュータ30から「PT」コマンドを受信する。
[ステップS12]ホストコンピュータ30は、ストレージ装置20に対して、コピー元領域情報を送信する。ストレージ装置20は、ホストコンピュータ30からコピー元領域情報を受信する。コピー元領域情報(転送元データを特定可能な情報)は、転送元LUN46、転送元領域47を含む情報を1要素とするリスト形式の情報である。
[ステップS13]ストレージ装置20は、「PT」コマンドの受信にもとづいてコマンド発行順リストを更新する。
ここで、図8を用いてコマンド順発行リストについて説明する。図8は、第2の実施形態のコマンド発行順リストの一例を示す図である。
コマンド発行順リスト70は、識別情報と、コマンド名を含む。識別情報は、受信したコマンドを一意に識別可能な情報であり、たとえば、コマンドの受信順に付与される、たとえば、シーケンシャルな番号である。コマンド名は、コマンドの種別を特定可能な情報である。また、コマンド発行順リスト70は、コマンドを受信順にリストに追加する。これにより、コマンド発行順リスト70は、ストレージ装置20が受信したコマンドの順序関係を特定可能にしている。なお、コマンド発行順リスト70に追加するコマンドは、「PT」コマンドと、「UNMAP」コマンドとを含む。
たとえば、コマンド発行順リスト70は、識別情報「1」の「PT」コマンド、識別情報「2」の「UNMAP」コマンド、識別情報「3」の「PT」コマンドの順に、コマンドを受信していることを記録している。
なお、コマンド発行順リスト70が保持する「PT」コマンドは、「PT」コマンドにもとづくデータ転送が留保されている状態(留保状態)にあることを示す。また、ストレージ装置20は、コマンド発行順リスト70を転送元ボリュームごとに保持する。
再び、図7に示すオフロードデータ転送時のオフロードリード処理の説明に戻る。
[ステップS14]ストレージ装置20は、トークン(ROD(Representation of Data)トークン)60を生成する。ストレージ装置20は、生成したトークン60を後で検索可能にして保持する。
[ステップS15]ストレージ装置20は、ホストコンピュータ30に対して、「PT」コマンド応答を送信する。ホストコンピュータ30は、ストレージ装置20から「PT」コマンド応答を受信する。
[ステップS16]ホストコンピュータ30は、ストレージ装置20に対して、「RRTI」コマンドを送信する。ストレージ装置20は、ホストコンピュータ30から「RRTI」コマンドを受信する。
[ステップS17]ストレージ装置20は、ホストコンピュータ30に対して、トークン60を送信する。ホストコンピュータ30は、ストレージ装置20からトークン60を受信する。
[ステップS18]ストレージ装置20は、ホストコンピュータ30に対して、「RRTI」コマンド応答を送信する。ホストコンピュータ30は、ストレージ装置20から「RRTI」コマンド応答を受信する。
「PT」コマンド、コピー元領域情報、および「PT」コマンド応答は、図6に示した「Offload Read」の通信に相当する。また、「RRTI」コマンド、トークン60、および「RRTI」コマンド応答は、図6に示したトークン60の通信に相当する。
なお、説明を容易にするために、ストレージ装置20が「Offload Read」の通信、およびトークン60の通信をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
次に、図6で説明したホストコンピュータ30からストレージ装置20への「Offload Write」の通知、およびストレージ装置20からホストコンピュータ30への「Status」の通知の詳細なコマンドシーケンスについて図9を用いて説明する。図9は、第2の実施形態のオフロードデータ転送時のオフロードライト処理のシーケンス図である。
オフロードライト処理は、ホストコンピュータ30により開始される。「Offload Write」の指示は、SCSI標準の「EXTENDED COPY」コマンド、および「RECEIVE COPY RESULTS」コマンドを用いて実現することができる。この場合の「EXTENDED COPY」コマンドを「WUT(Write Using Token)」コマンド、「RECEIVE COPY RESULTS」コマンドを「RRTI」コマンドと呼ぶ。
[ステップS21]ホストコンピュータ30は、コピー(転送)先のストレージ装置20に対して、「WUT」コマンドを送信する。ストレージ装置20は、ホストコンピュータ30から「WUT」コマンドを受信する。
[ステップS22]ホストコンピュータ30は、ストレージ装置20に対して、コピー先領域情報と、トークン(RODトークン)60とを送信する。ストレージ装置20は、ホストコンピュータ30からコピー先領域情報と、トークン60とを受信する。コピー先領域情報(転送先データを特定可能な情報)は、転送先LUN48、転送先領域49を含む情報を1要素とするリスト形式の情報である。
[ステップS23]ストレージ装置20は、受信したトークン60を、ストレージ装置20が保持するトークン60から検索する。ストレージ装置20は、受信したトークン60と、検索したトークン60とを比較照合し、一致した場合にコピー先領域情報と、トークン60とにもとづいてコピーセッション61を設定する。
[ステップS24]ストレージ装置20は、ホストコンピュータ30に対して、「WUT」コマンド応答を送信する。ホストコンピュータ30は、ストレージ装置20から「WUT」コマンド応答を受信する。
[ステップS25]ホストコンピュータ30は、ストレージ装置20に対して、「RRTI」コマンドを送信する。ストレージ装置20は、ホストコンピュータ30から「RRTI」コマンドを受信する。
[ステップS26]ストレージ装置20は、ホストコンピュータ30に対して、「Status」を送信する。ホストコンピュータ30は、ストレージ装置20から「Status」を受信する。
なお、オフロードデータ転送の非同期動作である場合、ストレージ装置20は、直ちに、ホストコンピュータ30に対して、「Status」を送信するが、同期動作の場合、コピー完了を待って「Status」を送信する。
[ステップS27]ストレージ装置20は、ホストコンピュータ30に対して、「RRTI」コマンド応答を送信する。ホストコンピュータ30は、ストレージ装置20から「RRTI」コマンド応答を受信する。
「WUT」コマンド、コピー先領域情報とトークン60、および「WUT」コマンド応答は、図6に示した「Offload Write」の通信に相当する。また、「RRTI」コマンド、「Status」、および「RRTI」コマンド応答は、図6に示した「Status」の通信に相当する。
なお、説明を容易にするために、ストレージ装置20が「Offload Write」の通信、および「Status」の通信をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
ここで、セッション管理テーブルについて図10を用いて説明する。図10は、第2の実施形態のセッション管理テーブルの一例を示す図である。
セッション管理テーブル71は、セッションID(IDentification)、コピー元LUN、コピー先LUN、セッションステータス、およびセッションフェーズを含む。さらに、セッション管理テーブル71は、コピー元開始LBA(Logical Block Address)(転送元領域)、コピー先開始LBA(転送先領域)、およびコピーサイズ(転送サイズ)を含む。
セッションIDは、コピーセッションを一意に特定可能な識別情報である。セッションIDは、コピーセッションの設定順に付与され、たとえば、シーケンシャルな番号である。LUNは、RAIDグループを論理的に区分けしたボリュームを意に特定可能な識別情報であり、たとえば、シーケンシャルな番号である。コピー元LUNは、コピー元となるボリュームを特定する番号である。コピー先LUNは、コピー先となるボリュームを特定する番号である。
なお、LUNで特定されるボリューム(ロジカルユニット)は、1つのRAIDグループに対して1以上が設定される。したがって、RAIDが、複数のストレージデバイス25によって構成されている場合、ボリュームは、複数のストレージデバイス25に跨って設定されている場合がある。
セッションステータスは、コピーセッションの状態、言い換えれば、コピーの進行状態を表す情報である。セッションステータスには、「Active」、「Suspend」、「ErrorSuspend」、「Reserve」などがある。「Active」は、コピーの実行状態であり、「Suspend」は、コピーが一時停止されている状態である。また、「ErrorSuspend」は、コピーが失敗した状態であり、たとえば、コピーの実行を停止した状態であり、「Reserve」は、コピー開始前の過渡状態である。
セッションフェーズは、コピーの進行状態を表す情報である。セッションフェーズには、「Copying」と「Equivalent」がある。「Copying」は、コピーがおこなわれている状態であり、「Equivalent」は、コピーが完了した状態であり、コピー元とコピー先のデータが等価になった状態である。
コピー元開始LBAは、コピー元となるボリュームの論理ブロックアドレス(LBA)を特定する情報である。コピー先開始LBAは、コピー先となるボリュームの論理ブロックアドレスを特定する情報である。コピーサイズは、コピー対象となるデータのサイズを特定可能な情報である。
次に、ストレージ装置20が「PT」コマンドを受信してトークンを生成した後に、トークンから特定可能な転送元領域の領域解放がおこなわれる場合のデータ退避について図11および図12を用いて説明する。図11は、第2の実施形態の転送元領域の領域解放動作の一例を示す図である。図12は、第2の実施形態の転送元領域の領域解放予約状態の一例を示す図である。
まず、データの退避について図11を用いて説明する。図7を用いて説明したように、ストレージ装置20は、「PT」コマンドを受信してトークン60を生成する。生成されたトークン60は、転送元領域を特定可能な情報を含む。たとえば、トークン60は、リストによって転送元ボリューム81に転送元領域84,85,86を有する。
このとき、ストレージ装置20は、ホストコンピュータ30から「UNMAP」コマンドを受け付けると、「UNMAP」コマンドで指定された解放領域83の領域解放の実行と非同期に、「UNMAP」コマンドに対する完了応答をおこなう。この「UNMAP」コマンドに対する完了応答をおこなったが、解放領域83の解放をおこなっていない状態を領域解放予約状態(UNMAP予約状態)と呼ぶ。
なお、ストレージ装置20は、転送元領域84,85,86の領域について領域解放を実行する。また、ストレージ装置20は、「Write I/O」によりデータが更新済みの転送元領域86について更新前のデータを退避先ボリューム82の退避領域87にデータを退避しているため、領域解放を実行する。
なお、ストレージ装置20は、ODX(Offload Data Transfer) SAVEセッション(オフロードデータ転送セーブセッション)80を設定することにより、更新前のデータを退避領域87に退避する。ODX SAVEセッション80については、図13および図14を用いて後で説明する。
次に、領域解放予約状態について図12を用いて説明する。図12は、第2の実施形態の転送元領域の領域解放予約状態の一例を示す図である。
ストレージ装置20は、転送元ボリューム81について解放領域89,91,92を有し、解放予約領域88,90を有する。ここで、ストレージ装置20は、転送元領域85について「Write I/O」を受け付けると、ODX SAVEセッション80を設定して、転送元領域85のデータを退避領域93に退避する。
また、ストレージ装置20は、トークン60の有効期限が切れた場合に、領域解放を指示されて領域解放予約状態とした転送元領域について領域解放予約状態を解除して領域解放を実行する。
このように、ストレージ装置20は、領域解放を指示されて領域解放予約状態とした転送元領域について、所定の条件成立時に領域解放予約状態を解除して領域解放を実行する。これにより、ストレージ装置20は、転送元領域のデータの退避にかかる処理時間、およびメモリ資源を低減可能にしている。
次に、ODX SAVEセッションの生成について図13および図14を用いて説明する。図13は、第2の実施形態の転送元領域のデータ退避の一例を示す図である。
まず、データの退避について図13を用いて説明する。図7を用いて説明したように、ストレージ装置20は、「PT」コマンドを受信してトークン60を生成する。生成されたトークン60は、転送元領域を特定可能な情報を含む。トークン60は、ストレージ装置20によって有効期限が設定され、有効期限内において有効に存在し得る。
ここで、ホストコンピュータ30からストレージ装置20に更新領域76のデータを更新する「Write I/O」を受け付けると、転送元ボリューム72の転送元領域77のデータは、トークン60の生成時のデータと異なることとなる。このまま、ストレージ装置20が「WUT」コマンドを受け付けると、ストレージ装置20は、転送先ボリューム74にトークン60の生成時と異なるデータをコピーしてしまう。
トークン60の生成時のデータと、「WUT」コマンドの受付時のデータの齟齬を防止するため、ストレージ装置20は、「PT」コマンドを受け付けた後の転送元領域の一部または全部のデータの更新をおこなう場合、更新領域76のデータを退避する。ストレージ装置20は、更新領域76のデータを、予め用意する退避先ボリューム(退避専用ボリューム)73の退避領域78に退避する。なお、図1は、更新領域76が転送元領域77の一部の場合を図示するが、更新領域76が転送元領域77と一部重複するものであってもよい。その場合、ストレージ装置20は、更新領域76と転送元領域77とが重複する重複領域を、退避領域78に退避する。
このとき、ストレージ装置20は、更新領域76から退避領域78に更新前のデータのコピーをおこなうためのコピーセッションであるODX SAVEセッション80を設定する。ストレージ装置20は、「PT」コマンドを受け付けた後に、転送元領域77と重複する「Write I/O」を受け付けたとき、「Write I/O」と同期してODX SAVEセッション80を設定する。また、ストレージ装置20は、転送元領域77と重複する「Write I/O」を受け付けたときに限り、ODX SAVEセッション80のコピー動作をおこなう。
ストレージ装置20は、ODX SAVEセッション80のコピー実行後に、「Write I/O」にもとづくデータ更新をおこなう。ストレージ装置20は、「Write I/O」にもとづくデータ更新後に、「Write I/O」の完了応答をおこなう。
なお、ストレージ装置20は、トークン60の有効期限が切れたタイミングでODX SAVEセッション80を削除する。
次に、退避先ボリューム73からのデータのコピーについて図14を用いて説明する。図14は、第2の実施形態のデータが退避されている場合のコピー動作の一例を示す図である。
ストレージ装置20は、ホストコンピュータ30から「WUT」コマンドを受け付けると、コピーセッション61を設定して、ホストコンピュータ30に「WUT」コマンド応答を返す。このとき、ホストコンピュータ30は、トークン60にもとづいてコピーセッション61を設定するため、トークン60生成時のデータが保証されていない。
ストレージ装置20は、コピーセッション61にもとづいて転送元領域77から転送先領域75にデータを転送してコピーをおこなう。ストレージ装置20は、退避領域78から転送先ボリューム74の転送先領域75にデータを上書きしてコピーする。これにより、ストレージ装置20は、「PT」コマンドを受け付けた時点でのデータコピーを保証することができる。
次に、第2の実施形態のストレージ装置20が実行する期限管理処理について図15を用いて説明する。図15は、第2の実施形態の期限管理処理のフローチャートを示す図である。期限管理処理は、トークン60の生成後に実行される。期限管理処理は、トークン60の有効期限が切れた場合に、領域解放を指示されて領域解放予約状態とした転送元領域について領域解放予約状態を解除して領域解放を実行する処理である。
[ステップS31]ストレージ装置20は、トークン60の有効期限を監視する。
[ステップS32]ストレージ装置20は、トークン60の有効期限が有効である場合にステップS31にすすみ、有効でない場合にステップS33にすすむ。
[ステップS33]ストレージ装置20は、UNMAP予約された領域の有無、すなわち、領域解放予約状態の転送元領域の有無を判定する。ストレージ装置20は、トークン60が有する転送元領域に関する情報と、UNMAP予約された領域との比較照合により、UNMAP予約された領域の有無を判定することができる。ストレージ装置20は、UNMAP予約された領域がある場合にステップS34にすすみ、UNMAP予約された領域がない場合にステップS36にすすむ。
[ステップS34]ストレージ装置20は、UNMAP予約された領域の物理割当を解放する。すなわち、ストレージ装置20は、領域解放予約状態の転送元領域の領域解放をおこなう。これにより、ストレージ装置20は、領域解放予約状態の転送元領域について退避先ボリューム82へのデータの退避処理を実行せずに済み、転送元領域のデータの退避にかかる処理時間、およびメモリ資源を低減可能にしている。
[ステップS35]ストレージ装置20は、コマンド発行順リスト70から「UNMAP」コマンドを削除する。
[ステップS36]ストレージ装置20は、コマンド発行順リスト70から「PT」コマンドを削除する。
[ステップS37]ストレージ装置20は、トークン60を削除して、期限管理処理を終了する。
なお、説明を容易にするために、ストレージ装置20が期限管理処理をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
次に、第2の実施形態のストレージ装置20が実行するUNMAPコマンド応答処理について図16を用いて説明する。図16は、第2の実施形態のUNMAPコマンド応答処理のフローチャートを示す図である。UNMAPコマンド応答処理は、「UNMAP」コマンドの受付により実行される。UNMAPコマンド応答処理は、「UNMAP」コマンドの受付を受け付けたストレージ装置20が領域解放を指示された領域について、領域解放または領域解放予約状態を設定する処理である。
[ステップS41]ストレージ装置20は、「UNMAP」コマンドを受け付けて、コマンド発行順リスト70を更新する。具体的には、ストレージ装置20は、コマンド発行順リスト70に、受け付けた「UNMAP」コマンドを追加する。
[ステップS42]ストレージ装置20は、「UNMAP」コマンドによって領域解放を指示された領域(UNMAP領域)と転送元領域とが重複するトークン60の有無を判定する。なお、UNMAP領域と転送元領域とが重複するトークン60があっても有効期限が切れている場合には、ストレージ装置20は、UNMAP領域と転送元領域とが重複するトークン60がないものとして取り扱う。
ストレージ装置20は、UNMAP領域と転送元領域とが重複するトークン60がある場合にステップS44にすすみ、重複するトークン60がない場合にステップS43にすすむ。
[ステップS43]ストレージ装置20は、UNMAP領域の領域解放(UNMAP処理)を実行する。
[ステップS44]ストレージ装置20は、トークン60の転送元領域と重複するUNMAP領域のうち選択した1つの領域についてデータ更新の有無を判定する。ストレージ装置20は、選択した1つの領域についてデータ更新があればステップS45にすすみ、データ更新がなければステップS46にすすむ。
[ステップS45]ストレージ装置20は、選択した1つの領域、すなわち更新領域(データ更新があった転送元領域)についてUNMAP処理を実行する。
[ステップS46]ストレージ装置20は、選択した1つの領域、すなわち未更新領域の領域解放を予約して領域解放予約状態を設定するUNMAP予約処理を実行する。
[ステップS47]ストレージ装置20は、トークン60の転送元領域と重複するUNMAP領域のすべてについてデータ更新の有無を判定(ステップS44の判定)をおこなったか否かを判定する。ストレージ装置20は、トークン60の転送元領域と重複するUNMAP領域のすべてについてデータ更新の有無を判定している場合にステップS48にすすみ、未だ判定していない場合にステップS44にすすむ。
[ステップS48]ストレージ装置20は、転送元領域の全範囲についてデータ更新があるか否かを判定する。ストレージ装置20は、転送元領域の全範囲についてデータ更新がある場合にステップS49にすすみ、転送元領域の少なくとも一部範囲についてデータ更新がない場合にステップS50にすすむ。
[ステップS49]ストレージ装置20は、コマンド発行順リスト70から対応する「UNMAP」コマンドを削除する。
[ステップS50]ストレージ装置20は、「UNMAP」応答コマンドをホストコンピュータ30に応答して、UNMAPコマンド応答処理を終了する。
なお、説明を容易にするために、ストレージ装置20がUNMAPコマンド応答処理をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
次に、「UNMAP」コマンドの発行に前後する「PT」コマンドがある場合のデータコピーについて、図17から図19を用いて説明する。
まず、「UNMAP」コマンドの発行前の「PT」コマンドについて図17を用いて説明する。図17は、「PT」コマンドの発行の後に、「UNMAP」コマンドの発行があった転送元ボリュームの一例を示す図である。
ストレージ装置20は、「PT」コマンドを受け付けて、すなわち、「PT」コマンドの発行を受けて転送元ボリューム100の転送元領域101,102,103を含むトークン110を生成する。
ストレージ装置20は、「PT」コマンドの後に、「UNMAP」コマンドを受け付けると、「UNMAP」コマンドで指定された解放領域104の領域解放の実行と非同期に、「UNMAP」コマンドに対する完了応答をおこなう。なお、解放領域104と、転送元領域101,102,103は、重複するものとする。
なお、「PT」コマンドと「UNMAP」コマンドの発行順序は、コマンド発行順リスト70に登録されるため、ストレージ装置20は、コマンド発行順リスト70を参照することで「PT」コマンドと「UNMAP」コマンドの発行順序を把握できる。
次に、「UNMAP」コマンドの発行後の「PT」コマンドについて図18を用いて説明する。図18は、「UNMAP」コマンドの発行の後に、「PT」コマンドの発行があった転送元ボリュームの一例を示す図である。
転送元ボリューム100は、「PT」コマンドの後に「UNMAP」コマンドを受け付けたことで、転送元領域101,102,103を領域解放予約状態とする。すなわち、ストレージ装置20は、転送元ボリューム100について解放予約領域113,114,115を有する。
ストレージ装置20は、「UNMAP」コマンドの後の「PT」コマンドを受け付けて、転送元ボリューム100の転送元領域101,102,103を含むトークン111を生成する。
なお、「PT」コマンドは、コマンド発行順リスト70に登録されるため、ストレージ装置20は、コマンド発行順リスト70を参照することで「UNMAP」コマンドと「PT」コマンドの発行順序を把握できる。
次に、「PT」コマンドにもとづいて生成したトークン110,111にもとづく「WUT」コマンドを受け付けた場合のコピー動作について、図19を用いて説明する。図19は、「UNMAP」コマンドに前後する「PT」コマンドの発行があった場合の、データコピーの一例を示す図である。
トークン110にもとづく「WUT」コマンドを受け付けた場合、ストレージ装置20は、トークン110の転送元領域101,102,103と、解放予約領域113,114,115の重複を確認する。ストレージ装置20は、重複していることから、トークン110を生成した「PT」コマンドと、解放予約領域113,114,115を設定した「UNMAP」コマンドの発行順序を確認する。ストレージ装置20は、トークン110を生成した「PT」コマンドが「UNMAP」コマンドより前に発行されていることから、領域解放前のデータとして、転送元領域101,102,103の実データを転送先ボリューム117に転送してコピーを実行する。
一方、トークン111にもとづく「WUT」コマンドを受け付けた場合、ストレージ装置20は、トークン111の転送元領域101,102,103と、解放予約領域113,114,115の重複を確認する。ストレージ装置20は、重複していることから、トークン111を生成した「PT」コマンドと、解放予約領域113,114,115を設定した「UNMAP」コマンドの発行順序を確認する。ストレージ装置20は、トークン111を生成した「PT」コマンドが「UNMAP」コマンドより後に発行されていることから、領域解放後のデータとして、クリアデータを転送先ボリューム117に転送してコピーを実行する。クリアデータは、たとえば、「0」データを用いることができるが、任意のデータを用いることができる。
このように、ストレージ装置20は、「PT」コマンドが「UNMAP」コマンドに前後しても、データロストすることなくデータ転送をおこなうことができる。また、ストレージ装置20は、データを退避する機会を低減可能であり、転送元領域のデータの退避にかかる処理時間、およびメモリ資源を低減可能にしている。
次に、第2の実施形態のストレージ装置20が実行するWUTコマンド応答処理について図20を用いて説明する。図20は、第2の実施形態のWUTコマンド応答処理のフローチャートを示す図である。WUTコマンド応答処理は、「WUT」コマンドの受付により実行される。WUTコマンド応答処理は、転送元領域に領域解放予約状態が設定されている場合に、「PT」コマンドと「UNMAP」コマンドの先後関係に応じたコピーを実行する処理である。
[ステップS51]ストレージ装置20は、転送元ボリュームに設定されている領域解放予約状態を取得する。
[ステップS52]ストレージ装置20は、転送元ボリュームに設定されている領域解放予約状態の有無を判定する。ストレージ装置20は、転送元ボリュームに領域解放予約状態の設定がない場合にステップS56にすすみ、設定がある場合にステップS53にすすむ。
[ステップS53]ストレージ装置20は、コマンド発行順リスト70を参照する。
[ステップS54]ストレージ装置20は、「WUT」コマンドを受け付けた場合、「WUT」コマンドとともに受け付けたトークン60を生成した「PT」コマンドが「UNMAP」コマンドに先行しているか否かを判定する。ストレージ装置20は、「PT」コマンドが「UNMAP」コマンドに先行している場合にステップS55にすすみ、「UNMAP」コマンドが「PT」コマンドに先行している場合にステップS56にすすむ。
[ステップS55]ストレージ装置20は、領域解放予約状態の転送元領域からの転送データをクリアデータとして、転送先領域にコピーする。
[ステップS56]ストレージ装置20は、領域解放予約状態の転送元領域からの転送データを実データとして、転送先領域にコピーする。
[ステップS57]ストレージ装置20は、「WUT」コマンドをホストコンピュータ30に応答して、WUTコマンド応答処理を終了する。
このようにして、ストレージ装置20は、図19に示したデータ転送をおこなうことができる。なお、説明を容易にするために、ストレージ装置20がWUTコマンド応答処理をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1(制御部3を含む)、ストレージ装置20、コントローラモジュール21等が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1 情報処理装置
2 受信部
3 制御部
4 転送元情報生成処理
4a 転送元情報
5 予約状態生成処理
5a 予約状態
6 留保状態判定処理
7 領域解放処理
9,25 ストレージデバイス
10,15 転送元領域
11,16 解放領域
12 重複領域
13,30 ホストコンピュータ
14 論理ボリューム
20 ストレージ装置
21 コントローラモジュール
22 CPU
23 メモリ
24 ディスクアダプタ
26 チャネルアダプタ
27 リモートアダプタ
31 操作端末装置
32,33,34 ネットワーク

Claims (11)

  1. オフロードデータ転送指示を受信する受信部と、
    前記オフロードデータ転送指示にもとづいて、転送元領域に関する転送元情報を生成し、
    前記転送元領域と重複する領域の解放指示を受け付けた場合に、前記解放指示に対する完了応答をおこなってから前記領域の解放を予約する予約状態を生成し、
    前記領域に記録されている第1の領域データを第2の領域データに更新する更新指示が発行された場合に、前記第1の領域データを退避領域にデータ転送し、前記第1の領域データを前記第2の領域データに更新し、前記領域に記録されている前記第2の領域データを含む前記転送元領域に記録されているデータを転送先領域にデータ転送し、前記転送先領域のうち前記第2の領域データが記録されている領域に、前記退避領域に記録されている前記第1の領域データをデータ転送し、
    前記転送元情報を用いたデータ転送が留保された留保状態を判定し、
    前記留保状態が解除された場合に、前記予約状態の前記領域を解放する、
    処理をおこなう制御部と、
    を備えることを特徴とする情報処理装置。
  2. 前記制御部は、前記更新指示が発行された場合に前記第1の領域データを前記退避領域にデータ転送し、前記第1の領域データを前記第2の領域データに更新した後に前記留保状態を解除する処理をおこなうことを特徴とする請求項1記載の情報処理装置。
  3. 前記制御部は、前記領域に記録されている前記第1の領域データを前記第2の領域データに更新するライトI/Oが発行された場合に前記第1の領域データを前記退避領域にデータ転送し、前記第1の領域データを前記第2の領域データに更新した後に前記留保状態を解除する処理をおこなうことを特徴とする請求項2記載の情報処理装置。
  4. 前記制御部は、前記転送元情報が無効になった場合に、前記予約状態を解除して前記領域解放する処理をおこなうことを特徴とする請求項1記載の情報処理装置。
  5. 前記制御部は、前記転送元情報に設定した有効期限が切れた場合に、前記転送元情報を無効とすることを特徴とする請求項4記載の情報処理装置。
  6. 前記制御部は、前記解放指示が前記転送元情報の生成より後の場合に、前記転送元情報にもとづく転送指示について、前記転送元領域に記録されているデータを転送対象とする処理をおこなうことを特徴とする請求項1乃至請求項5のいずれか1項記載の情報処理装置。
  7. 前記制御部は、前記解放指示が前記転送元情報の生成より前の場合に、前記転送元情報にもとづく転送指示について、クリアデータを転送対象とする処理をおこなうことを特徴とする請求項6記載の情報処理装置。
  8. 前記制御部は、前記解放指示と、前記転送元情報の生成の先後関係を特定可能な先後関係特定情報を、記憶部に保持することを特徴とする請求項7記載の情報処理装置。
  9. 前記制御部は、前記転送元領域を有する転送元ボリュームごとに先後関係特定情報を保持することを特徴とする請求項8記載の情報処理装置。
  10. コンピュータに、
    オフロードデータ転送指示を受け付けて、転送元領域に関する転送元情報を生成し、
    前記転送元領域と重複する領域の解放指示を受け付けた場合に、前記解放指示に対する完了応答をおこなってから前記領域の解放を予約する予約状態を生成し、
    前記領域に記録されている第1の領域データを第2の領域データに更新する更新指示が発行された場合に、前記第1の領域データを退避領域にデータ転送し、前記第1の領域データを前記第2の領域データに更新し、前記領域に記録されている前記第2の領域データを含む前記転送元領域に記録されているデータを転送先領域にデータ転送し、前記転送先領域のうち前記第2の領域データが記録されている領域に、前記退避領域に記録されている前記第1の領域データをデータ転送し、
    前記転送元情報を用いたデータ転送が留保された留保状態を判定し、
    前記留保状態が解除された場合に、前記予約状態の前記領域を解放する、
    処理を実行させることを特徴とする領域解放制御プログラム。
  11. コンピュータが、
    オフロードデータ転送指示を受け付けて、転送元領域に関する転送元情報を生成し、
    前記転送元領域と重複する領域の解放指示を受け付けた場合に、前記解放指示に対する完了応答をおこなってから前記領域の解放を予約する予約状態を生成し、
    前記領域に記録されている第1の領域データを第2の領域データに更新する更新指示が発行された場合に、前記第1の領域データを退避領域にデータ転送し、前記第1の領域データを前記第2の領域データに更新し、前記領域に記録されている前記第2の領域データを含む前記転送元領域に記録されているデータを転送先領域にデータ転送し、前記転送先領域のうち前記第2の領域データが記録されている領域に、前記退避領域に記録されている前記第1の領域データをデータ転送し、
    前記転送元情報を用いたデータ転送が留保された留保状態を判定し、
    前記留保状態が解除された場合に、前記予約状態の前記領域を解放する、
    ことを特徴とする領域解放制御方法。
JP2012190477A 2012-08-30 2012-08-30 情報処理装置、領域解放制御プログラム、および領域解放制御方法 Expired - Fee Related JP6069962B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012190477A JP6069962B2 (ja) 2012-08-30 2012-08-30 情報処理装置、領域解放制御プログラム、および領域解放制御方法
US13/951,545 US9141306B2 (en) 2012-08-30 2013-07-26 Information processing apparatus and area release control method
EP13178509.9A EP2703990A2 (en) 2012-08-30 2013-07-30 Information processing apparatus, computer program, and area release control method
KR1020130099639A KR101427535B1 (ko) 2012-08-30 2013-08-22 정보 처리 장치, 기록 매체 및 영역 해방 제어 방법
CN201310373280.6A CN103677660B (zh) 2012-08-30 2013-08-23 信息处理设备和区域释放控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012190477A JP6069962B2 (ja) 2012-08-30 2012-08-30 情報処理装置、領域解放制御プログラム、および領域解放制御方法

Publications (2)

Publication Number Publication Date
JP2014048835A JP2014048835A (ja) 2014-03-17
JP6069962B2 true JP6069962B2 (ja) 2017-02-01

Family

ID=48900820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012190477A Expired - Fee Related JP6069962B2 (ja) 2012-08-30 2012-08-30 情報処理装置、領域解放制御プログラム、および領域解放制御方法

Country Status (5)

Country Link
US (1) US9141306B2 (ja)
EP (1) EP2703990A2 (ja)
JP (1) JP6069962B2 (ja)
KR (1) KR101427535B1 (ja)
CN (1) CN103677660B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9380114B1 (en) * 2013-06-27 2016-06-28 Emc Corporation Techniques for peer messaging across multiple storage processors of a data storage array
US9594795B1 (en) 2013-06-28 2017-03-14 EMC IP Holding Company LLC Maintaining data consistency when data is changed out from under another data service
US9715351B2 (en) * 2015-02-13 2017-07-25 Red Hat, Inc. Copy-offload on a device stack
KR102695719B1 (ko) 2018-12-19 2024-08-16 삼성전자주식회사 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법
KR20200085966A (ko) 2019-01-07 2020-07-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03260863A (ja) * 1990-03-12 1991-11-20 Nec Corp 文書編集方式
JP3212720B2 (ja) * 1992-11-10 2001-09-25 富士通株式会社 情報処理装置
JPH06208528A (ja) * 1993-01-08 1994-07-26 Nec Eng Ltd 拡張記憶制御装置
JP4086259B2 (ja) * 1995-08-04 2008-05-14 株式会社東芝 通信システム
WO2006071817A2 (en) * 2004-12-29 2006-07-06 Netcell Corporation Intelligent storage engine for disk drive operations with reduced local bus traffic
JP4993928B2 (ja) 2006-03-23 2012-08-08 株式会社日立製作所 記憶システム及び記憶領域解放方法並びにストレージシステム
US8117409B2 (en) 2006-11-22 2012-02-14 Hitachi, Ltd. Method and apparatus for backup and restore in a dynamic chunk allocation storage system
JP2008269520A (ja) 2007-04-25 2008-11-06 Matsushita Electric Ind Co Ltd 記録装置及び記録方法
JP2009289238A (ja) * 2008-06-02 2009-12-10 Hitachi Ltd データ処理システム及びストレージ制御方法
JP5104817B2 (ja) * 2009-06-30 2012-12-19 富士通株式会社 ストレージシステム、ストレージ制御装置及び方法
JP5540636B2 (ja) 2009-10-02 2014-07-02 日本電気株式会社 ストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラム
US8423737B2 (en) * 2009-12-17 2013-04-16 International Business Machines Corporation Systems and methods for virtualizing storage systems and managing data independently
JP5523292B2 (ja) * 2010-12-03 2014-06-18 株式会社日立製作所 シンプロビジョニングが適用された記憶制御装置
JP2012133643A (ja) * 2010-12-22 2012-07-12 Sony Corp 情報処理装置、情報処理システム、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
JP2014048835A (ja) 2014-03-17
EP2703990A2 (en) 2014-03-05
CN103677660B (zh) 2017-04-12
US9141306B2 (en) 2015-09-22
KR101427535B1 (ko) 2014-08-07
KR20140029215A (ko) 2014-03-10
US20140068213A1 (en) 2014-03-06
CN103677660A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
JP6024296B2 (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
JP4375435B2 (ja) 予知型データ移行を行う階層ストレージシステム
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
JP6069962B2 (ja) 情報処理装置、領域解放制御プログラム、および領域解放制御方法
JP6350090B2 (ja) ストレージ制御装置、コピー制御プログラム、およびコピー制御方法
US20150293719A1 (en) Storage Space Processing Method and Apparatus, and Non-Volatile Computer Readable Storage Medium
US20160196085A1 (en) Storage control apparatus and storage apparatus
JP6028415B2 (ja) 仮想サーバ環境のデータ移行制御装置、方法、システム
JP6019940B2 (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
US20160011791A1 (en) Storage control apparatus, storage system, and program
JP2021060818A (ja) ストレージシステムおよびデータ移行方法
US8972634B2 (en) Storage system and data transfer method
US20130031320A1 (en) Control device, control method and storage apparatus
JP2012022645A (ja) データ記憶システムおよび非同期レプリケーション方法
JP2010049303A (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP2015158800A (ja) データ転送制御装置、データ転送制御プログラムおよびデータ転送制御方法
JP2019191801A (ja) ストレージシステムおよび制御装置
JP7050707B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム
JP7225852B2 (ja) ストレージ制御装置、ストレージシステムおよびバックアップ制御プログラム
JP5731665B2 (ja) 計算機システム及び複製制御方法
JP2016151803A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP2022057869A (ja) 制御装置及び情報処理システム
JP5228935B2 (ja) 補助記憶装置
WO2016067326A1 (ja) ストレージシステム
JP2014123183A (ja) ストレージ装置、領域解放プログラム、および領域解放方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6069962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees