JP2010086394A - 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム - Google Patents

特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム Download PDF

Info

Publication number
JP2010086394A
JP2010086394A JP2008256314A JP2008256314A JP2010086394A JP 2010086394 A JP2010086394 A JP 2010086394A JP 2008256314 A JP2008256314 A JP 2008256314A JP 2008256314 A JP2008256314 A JP 2008256314A JP 2010086394 A JP2010086394 A JP 2010086394A
Authority
JP
Japan
Prior art keywords
data
storage area
physical storage
read
address range
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.)
Granted
Application number
JP2008256314A
Other languages
English (en)
Other versions
JP4762289B2 (ja
Inventor
Onori Origasa
大典 折笠
豊 ▲高▼田
Yutaka Takada
Shintaro Inoue
信太郎 井上
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008256314A priority Critical patent/JP4762289B2/ja
Priority to US12/292,604 priority patent/US8793461B2/en
Publication of JP2010086394A publication Critical patent/JP2010086394A/ja
Application granted granted Critical
Publication of JP4762289B2 publication Critical patent/JP4762289B2/ja
Priority to US13/238,870 priority patent/US9047016B2/en
Priority to US14/703,263 priority patent/US20150234748A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

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)

Abstract

【課題】仮想ボリュームに割り当てられる物理的な記憶領域を有効に利用する。
【解決手段】複数の物理記憶領域を含む記憶媒体を備えるストレージシステムであって、前記ストレージシステムは、複数の仮想的な記憶領域を含む論理ボリュームを前記ホスト計算機に認識させ、前記論理ボリュームの前記仮想的な記憶領域に割り当てられた前記物理記憶領域からデータを読み出し、前記読み出されたデータが所定のパターンのデータのみを含むか否かを判定し、前記読み出されたデータが前記所定のパターンのデータのみを含む場合、前記仮想的な記憶領域への前記物理記憶領域の割り当てを解除する。
【選択図】図1

Description

本願明細書に開示される技術は、ストレージシステムにおける記憶領域の管理に関し、特に、仮想的な記憶領域に対する実記憶領域の割り当ての管理に関する。
計算機及びストレージシステムを用いた計算機システムにおいては、一般に、ストレージシステムに格納されるデータ量が増加する傾向がある。このような増加に対応するため、当初から十分なデータ記憶容量を持ったストレージシステムを導入すれば、高い導入コストが発生する。一方、データ量の増加に伴って、順次ストレージシステムのデータ記憶容量を拡張すれば、拡張のための管理コストが発生する。このような導入コスト及び管理コストを軽減するために、ストレージシステムが仮想的な記憶領域を計算機に提供する技術が開示されている(例えば特許文献1参照)。
この技術によれば、十分なデータ記憶容量を持った仮想的な記憶領域が定義されるが、初期状態において、仮想的な記憶領域の全体に物理的な記憶領域(例えば、ハードディスクドライブ上の記憶領域)が割り当てられていない。その後、仮想的な記憶領域に対するデータの書き込み要求に応じて、仮想的な記憶領域に物理的な記憶領域が順次割り当てられる。定義された仮想的な記憶領域のうち、まだ使用されていない領域には物理的な記憶領域が割り当てられないため、物理的な記憶領域が有効に利用される。
特開2003−15915号公報
上記のような仮想的な記憶領域のうち、物理的な記憶領域が割り当てられていない領域に対するデータの読み出し要求を受信すると、ストレージシステムは、特定のパターンのデータ(例えば、「0」の連続)を返す。このため、例えば、仮想的な記憶領域全体からデータを読み出して、それをテープ記憶媒体に格納すると、物理的な記憶領域が割り当てられていない領域から読み出されたデータとして、上記の特定のパターンが格納される。その後、テープ記憶媒体に格納されたデータが仮想的な記憶領域にリストアされると、上記の特定のパターンが仮想的な記憶領域に書き込まれるため、結局、仮想的な記憶領域の全体に物理的な記憶領域が割り当てられる。その結果、物理的な記憶領域を有効に利用することができなくなる。
本願で開示する代表的な発明は、ホスト計算機によって書き込まれたデータを格納するストレージシステムであって、前記ストレージシステムは、複数の物理記憶領域を含む記憶媒体と、前記記憶媒体への前記データの書き込み及び前記記憶媒体からの前記データの読み出しを制御するコントローラと、を備え、前記コントローラは、第1論理ボリュームを前記ホスト計算機に認識させ、前記第1論理ボリュームの記憶領域空間は、複数のアドレス範囲を含み、前記コントローラは、前記各アドレス範囲への前記各物理記憶領域の割り当てを管理する情報を保持し、前記第1論理ボリュームのいずれかの前記アドレス範囲に対するデータ書き込み要求を受信すると、前記受信したデータ書き込み要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記指定されたアドレス範囲に、いずれの前記アドレス範囲にもまだ割り当てられていない前記物理記憶領域を割り当て、前記指定されたアドレス範囲に割り当てられた物理記憶領域に、前記データ書き込み要求によって書き込みを要求されたデータを書き込み、所定の条件が満たされた場合、前記第1論理ボリュームの前記アドレス範囲に割り当てられた前記物理記憶領域からデータを読み出し、前記読み出されたデータが所定のパターンのデータのみを含むか否かを判定し、前記読み出されたデータが前記所定のパターンのデータのみを含む場合、前記アドレス範囲への前記物理記憶領域の割り当てを解除し、前記第1論理ボリュームのいずれかの前記アドレス範囲に対するデータ読み出し要求を受信すると、前記データ読み出し要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、前記指定されたアドレス範囲に前記物理記憶領域が割り当てられている場合、前記指定されたアドレス範囲に割り当てられた物理記憶領域からデータを読み出して、前記読み出されたデータを前記データ読み出し要求の送信元に送信し、前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記所定のパターンのデータを前記データ読み出し要求の送信元に送信することを特徴とする。
本発明の一実施形態によれば、特定のパターンのデータが書き込まれた領域に物理的な記憶領域が割り当てられないようにすることによって、物理的な記憶領域の有効利用を維持することができる。
最初に、本発明の第1の実施形態を、図面を用いて詳細に説明する。
図1は、本発明の第1の実施形態の計算機システムの構成を示すブロック図である。
本実施形態の計算機システムは、ストレージシステム100A、ストレージシステム100B、テープライブラリ120、ホスト計算機130、及び、それらを接続するネットワーク140を備える。
ストレージシステム100Aは、ホスト計算機130によって書き込まれたデータを格納する。具体的には、ストレージシステム100Aは、ディスクドライブ110A〜110C及びコントローラ101を備える。
ディスクドライブ110A〜110Cは、ホスト計算機130によって書き込まれたデータを格納する記憶媒体を含む記憶デバイスである。以下、ディスクドライブ110A〜110Cに共通する説明をする場合、これらを総称してディスクドライブ110とも記載する。図1には三つのディスクドライブ110を示すが、ストレージシステム100Aはいくつのディスクドライブ110を備えてもよい。複数のディスクドライブ110がRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
本実施形態のディスクドライブ110は、記憶媒体として磁気ディスクを備えるハードディスクドライブであるが、これはいかなる種類の記憶デバイスによって置き換えられてもよい。例えば、ディスクドライブ110は、フラッシュメモリのような不揮発性の半導体記憶デバイスによって置き換えられてもよい。
コントローラ101は、ディスクドライブ110へのデータの書き込み及びディスクドライブ110からのデータの読み出しを制御する。コントローラ101は、チャネルアダプタ102、共有メモリ103、ディスクアダプタ104、キャッシュメモリ105、及び、それらを相互に接続する内部ネットワーク116を備える。
チャネルアダプタ102は、CPU106、ローカルメモリ107、ポート108及びポート109を備える。
CPU106は、ローカルメモリ107に格納されたプログラムを実行するプロセッサである。
ローカルメモリ107は、CPU106によって実行されるプログラム及びCPU106によって参照されるデータを格納する。本実施形態のローカルメモリ107には、少なくとも、I/O制御プログラム112及び割り当て管理プログラム113が格納される。これらについては後で詳細に説明する。なお、以下の説明において、I/O制御プログラム112又は割り当て管理プログラム113によって実行される処理は、実際には、それらのプログラムを実行するCPU106によって実行される。
ポート108は、ネットワーク140に接続され、ホスト計算機130との通信に使用される。ポート109は、内部ネットワーク116に接続され、ディスクアダプタ104等との通信に使用される。
共有メモリ103には、チャネルアダプタ102等によって参照される制御情報等が格納される。本実施形態の共有メモリ103には、少なくとも、割り当て管理テーブル114及びペア管理テーブル115が格納される。これらについては後で詳細に説明する。
ディスクアダプタ104は、ディスクドライブ110に接続され、チャネルアダプタ102による制御に従ってディスクドライブ110へのデータの書き込み及び読み出しを制御する。
キャッシュメモリ105には、ディスクドライブ110に書き込まれるデータ及びディスクドライブ110から読み出されたデータが一時的に格納される。
ストレージシステム100Aは、複数のチャネルアダプタ102、複数の共有メモリ103、複数のディスクアダプタ104及び複数のキャッシュメモリ105を備えてもよい。
内部ネットワーク116は、例えば、バス又はファブリックスイッチによって実現される。
コントローラ101は、ディスクドライブ110の記憶媒体によって実現される物理的な記憶領域を、複数の論理ボリューム111として管理する。図1に示す論理ボリューム111A及び111Bは、それぞれ、複数の論理ボリューム111の一つである。コントローラ101は、任意の数の論理ボリューム111を管理することができる。論理ボリューム111については後で詳細に説明する(図2参照)。
ストレージシステム100Bの構成は、ストレージシステム100Aと同様であるため、図示及び説明を省略する。
以下、ストレージシステム100A及び100Bに共通する説明をする場合、これらを総称してストレージシステム100とも記載する。
テープライブラリ120は、主にストレージシステム100に格納されたデータをバックアップするために使用される。テープライブラリ120は、テープドライブ121及び一つ以上のテープ記憶媒体122を備える。
各テープ記憶媒体122は、例えば、カートリッジに格納された1巻のテープであってもよい。図1に示すテープ記憶媒体122A及び122Bは、それぞれ、複数のテープ記憶媒体122の一つである。
テープドライブ121は、テープ記憶媒体122を装着し、テープ記憶媒体122へのデータの書き込み及びテープ記憶媒体122からのデータの読み出しを実行する。例えば、テープドライブ121は、論理ボリューム111に格納されたデータの複製を、一つ又は複数のテープ記憶媒体122に書き込んでもよい。
ホスト計算機130は、相互に接続されたCPU131、メモリ132及びインタフェース133を備える。
CPU131は、メモリ132に格納されたプログラムを実行するプロセッサである。
メモリ132には、CPU131によって実行されるプログラム及びCPU131によって参照されるデータが格納される。本実施形態のメモリ132には、少なくとも、アプリケーションプログラム134が格納される。
インタフェース133は、ネットワーク140に接続され、ストレージシステム100との通信を実行する。
CPU131は、アプリケーションプログラム134を実行し、必要に応じて、論理ボリューム111に対するデータ書き込み要求及びデータ読み出し要求を、インタフェース133を介してストレージシステム100に送信する。
ネットワーク140は、いかなる種類のものであってもよい。典型的には、ネットワーク140は、ファイバーチャネルプロトコルが適用される、いわゆるストレージエリアネットワーク(SAN)である。その場合、ネットワーク140は、ファイバーチャネルスイッチ(図示省略)を含んでもよい。
図2は、本発明の第1の実施形態のストレージシステム100によって管理される論理ボリューム111の説明図である。
図2に示す計算機システムは、図1に示したものに対応するが、論理ボリューム111の説明に必要がないハードウェア構成の図示は省略されている。
本実施形態のストレージシステム100のコントローラ101は、3種類の論理ボリューム111、すなわち、仮想ボリューム201、実ボリューム202及びプールボリューム203を管理する。具体的には、図2の例において、ストレージシステム100Aは、仮想ボリューム201A、仮想ボリューム201B、実ボリューム202A、プールボリューム203A及びプールボリューム203Bを管理する。ストレージシステム100Bは、仮想ボリューム201C、仮想ボリューム201D、実ボリューム202B、プールボリューム203C及びプールボリューム203Dを管理する。
以下、仮想ボリューム201A〜201Dに共通する説明をする場合、これらを総称して仮想ボリューム201とも記載する。同様に、実ボリューム202A及び202Bを総称して実ボリューム202、プールボリューム203A〜203Dを総称してプールボリューム203とも記載する。後述するプール204A及び204Bについても、これらを総称してプール204とも記載する。
コントローラ101は、各実ボリューム202の記憶領域空間をホスト計算機130に提供する。ホスト計算機130は、各実ボリューム202を一つの記憶デバイスと認識し、各実ボリューム202を対象とするデータ書き込み要求及びデータ読み出し要求を発行する。
各実ボリューム202の全ての記憶領域空間には、ディスクドライブ110の物理的な記憶領域が割り当てられる。コントローラ101は、実ボリューム202に対するデータ書き込み要求又はデータ読み出し要求を受信すると、受信した要求によってアクセス先として指定されたアドレスに対応する記憶領域に割り当てられている物理的な記憶領域に対して、データの書き込み又は読み出しを実行する。
同様に、コントローラ101は、各仮想ボリューム201の記憶領域空間をホスト計算機130に提供する。ホスト計算機130は、各仮想ボリューム201を一つの記憶デバイスと認識し、各仮想ボリューム201を対象とするデータ書き込み要求及びデータ読み出し要求を発行する。
しかし、各仮想ボリューム201の全ての記憶領域空間に、ディスクドライブ110の物理的な記憶領域が割り当てられていない場合がある。コントローラ101は、各仮想ボリューム201の記憶領域空間の任意のアドレス範囲への物理的な記憶領域の割り当てを制御することができる。
通常、仮想ボリューム201が作成された時点で、その仮想ボリューム201の記憶領域空間のいずれのアドレス範囲にも、物理的な記憶領域が割り当てられていない。その後、コントローラ101は、仮想ボリューム201のいずれかのアドレスに対するデータ書き込み要求を受信すると、その書き込み先のアドレスを含むアドレス範囲に物理的な記憶領域を割り当て、割り当てられた物理的な記憶領域にデータを格納する。
なお、仮想ボリューム201のアドレス範囲には、物理的な記憶領域が直接的に割り当てられるわけではなく、後述するように、プールボリューム203の記憶領域空間(より具体的には、そのアドレス範囲)が割り当てられる。これによって、仮想ボリューム201への物理的な記憶領域の割り当てが実現される。
このような仮想ボリューム201に対するデータ書き込み及び読み出しの処理については後述する。
プールボリューム203は、実ボリューム202と同様の論理ボリューム111である。すなわち、プールボリューム203の全ての記憶領域空間には、ディスクドライブ110の物理的な記憶領域が割り当てられる。
しかし、実ボリューム202と異なり、プールボリューム203の記憶領域空間は、ホスト計算機に直接提供されない。プールボリューム203の記憶領域空間は、後述するように、必要に応じて、仮想ボリューム201の記憶領域空間に割り当てられる。
本実施形態では、一つ以上のプールボリューム203が一つのプール204を構成する。プール204は、物理的な記憶領域の供給元として仮想ボリューム201と対応付けられる。図2の例では、プール204Aが、プールボリューム203A及び203Bを含む複数のプールボリューム203によって構成される。プール204Aは、仮想ボリューム201A及び201Bと対応付けられる。
この例では、仮想ボリューム201Aに物理的な記憶領域を割り当てる必要が生じた場合、仮想ボリューム201Aに対応付けられたプール204Aに属するいずれかのプールボリューム203(例えばプールボリューム203A)の記憶領域空間が割り当てられる。仮想ボリューム201Bに物理的な記憶領域を割り当てる必要が生じた場合、仮想ボリューム201Bに対応付けられたプール204Aに属するいずれかのプールボリューム203(例えばプールボリューム203A)の記憶領域空間が割り当てられる。
同様に、プール204Bは、プールボリューム203C及び203Dを含む複数のプールボリューム203によって構成される。プール204Bは、仮想ボリューム201C及び201Dと対応付けられる。
図3は、本発明の第1の実施形態における仮想ボリューム201への物理的な記憶領域の割り当ての説明図である。
図3は、説明を簡単にするため、仮想ボリューム201Aにプール204Aが対応付けられ、プール204Aがプールボリューム203Aのみを含む場合を例として示す。
仮想ボリューム201Aの記憶領域空間への物理的な記憶領域の割り当ては、所定の大きさのアドレス範囲(例えば、後述するブロックアドレスの範囲)ごとに管理される。その所定の大きさのアドレス範囲をページと記載する。言い換えると、仮想ボリューム201のページは、所定の大きさの仮想的な記憶領域である。
図3の例では、仮想ボリューム201Aのページ301Aにプールボリューム203Aのページ301Cが割り当てられている。この割り当ては、割り当て管理テーブル114によって管理される。
既に説明したように、プールボリューム203Aの全てのページに物理的な記憶領域が割り当てられている。このため、例えば、ページ301A内のいずれかのアドレスを対象とするデータ書き込み要求が発行された場合、ページ301Cに割り当てられた物理的な記憶領域に書き込まれる。このように、ページ301Cに割り当てられた物理的な記憶領域は、割り当て管理テーブル114を介して、ページ301Aに割り当てられているとみなすことができる。言い換えると、プールボリューム203Aの全てのページに物理的な記憶領域が割り当てられているため、プールボリューム203Aの各ページを物理的な記憶領域とみなすことができる。
一方、仮想ボリューム201Aのページ301Bには、プールボリューム203Aのどのページも割り当てられていない。
プールボリューム203Aの所定のアドレス範囲303(正確には、そのアドレス範囲303に割り当てられた物理的な記憶領域)には、特定のパターンのデータが格納される。この特定のパターンとは、あらかじめ定められたものである。例えば、特定のパターンのデータは、「0」のみからなるデータであってもよい。所定のアドレス範囲303は、仮想ボリューム201A内のいずれのページにも割り当てられることがない。
各ページは、所定の数のブロックを含んでもよい。ここで、ブロックとは、データ書き込み要求(又はデータ読み出し要求)によってデータの書き込み先(又はデータの読み出し対象)として指定される領域の最小単位である。各ブロックは、固定されたサイズ(例えば512バイト)を有し、ブロックアドレスによって識別される。図3の例では、ページ301Aに含まれるブロック302Aに、ページ301Cに含まれるブロック302Cが割り当てられている。この場合、ブロック302Aに書き込まれたデータは、実際には、ブロック302Cに割り当てられた物理的な記憶領域に格納される。
一方、図3の例では、ページ301Bにブロック302Bが含まれる。しかし、ページ301Bにプールボリューム203Aのページが割り当てられていないため、ブロック302Bにはプールボリューム203Aのブロックが割り当てられていない。
図4は、本発明の第1の実施形態の割り当て管理テーブル114の説明図である。
割り当て管理テーブル114は、共有メモリ103に格納され、仮想ボリューム201への物理的な記憶領域の割り当てを管理する情報を含む。具体的には、割り当て管理テーブル114は、仮想ページ401、実ページ402及び破棄マーク403を含む。
仮想ページ401は、仮想ボリューム201の各ページを識別する情報である。例えば、仮想ページ401は、仮想ボリューム201の各ページの先頭アドレスであってもよい。
実ページ402は、仮想ボリューム201の各ページに割り当てられたプールボリューム203のページを識別する情報である。仮想ページ401と同様、実ページ402は、プールボリューム203の各ページの先頭アドレスであってもよい。仮想ボリューム201のあるページにプールボリューム203のページが割り当てられていない場合、その仮想ボリューム201のページに対応する実ページ402として無効値が登録される。
破棄マーク403は、仮想ボリューム201のページを破棄すること(すなわち、仮想ボリューム201のページへのプールボリューム203のページの割り当てを解除すること)を示すフラグである。破棄マーク403を使用したページ破棄判定処理及びページ破棄処理については後で詳細に説明する。
図4の例では、割り当て管理テーブル114の先頭のエントリの仮想ページ401及び実ページ402として、それぞれ、「0x0000」及び「0x0000」が登録されている。一方、2番目のエントリの仮想ページ401及び実ページ402として、それぞれ、「0x0000」及び無効値が登録されている。これは、仮想ボリューム201Aのブロックアドレス「0x0000」から「0x4FFF」までの範囲に対応するページ(例えば、図3のページ301A)に、プールボリューム203Aのブロックアドレス「0x0000」から「0x4FFF」までの範囲に対応するページ(例えば、図3のページ301C)が割り当てられていること、及び、仮想ボリューム201Aのブロックアドレス「0x5000」から「0x9FFF」までの範囲に対応するページ(例えば、図3のページ301B)に、プールボリューム203Aのページが割り当てられていないこと、を示す。
図5は、本発明の第1の実施形態のペア管理テーブル115の説明図である。
ペア管理テーブル115は、共有メモリ103に格納され、コピーペアを管理する情報を含む。ここで、コピーペアについて説明する。
コピーペアとは、論理ボリューム111と、その論理ボリューム111に格納されたデータの複製を格納する(すなわちコピー先の)論理ボリューム111との組(ペア)である。例えば論理ボリューム111のバックアップを目的として、コピーペアが作成される。一つのストレージシステム100内の二つの論理ボリューム111からなるコピーペアが作成されてもよいし、それぞれが異なるストレージシステム100に含まれる二つの論理ボリューム111からなるコピーペアが作成されてもよい。
コピー元の論理ボリューム111及びコピー先の論理ボリューム111は、それぞれ、仮想ボリューム201であってもよいし、実ボリューム202であってもよい。以下、コピー元の論理ボリューム111を正ボリューム、コピー先の論理ボリューム111を副ボリュームと記載する。
新たにコピーペアが作成された場合、正ボリュームに格納された全データが読み出され、その読み出された全データが副ボリュームに書き込まれる。その後、正ボリュームのデータが更新されると、その更新が副ボリュームにも反映される。これによって、正ボリュームに格納されたデータと副ボリュームに格納されたデータとの同一性が維持される。
上記とは逆に、副ボリュームに格納されたデータが正ボリュームにコピーされてもよい。例えば、正ボリュームに格納されたデータが、障害又は誤操作等によって失われた場合、副ボリュームに格納されたデータを正ボリュームにコピーすることによって、データを復元することができる。
二つの論理ボリューム111によるコピーペアが作成された場合、そのコピーペアを管理する情報(言い換えると、それらの二つの論理ボリューム111を対応付ける情報)がペア管理テーブル115に登録される。
ペア管理テーブル115は、正ボリュームの装置ID501、正ボリュームのボリュームID502、正ボリュームの種別503、副ボリュームの装置ID504、副ボリュームのボリュームID505及び副ボリュームの種別506を含む。
正ボリュームの装置ID501は、コピーペアに属する正ボリュームを格納するストレージシステムの識別子である。
正ボリュームのボリュームID502は、コピーペアに属する正ボリュームの識別子である。
正ボリュームの種別503は、コピーペアに属する正ボリュームが仮想ボリューム201又は実ボリューム202のいずれであるかを示す。
副ボリュームの装置ID504は、コピーペアに属する副ボリュームを格納するストレージシステムの識別子である。
副ボリュームのボリュームID505は、コピーペアに属する副ボリュームの識別子である。
副ボリュームの種別506は、コピーペアに属する副ボリュームが仮想ボリューム201又は実ボリューム202のいずれであるかを示す。
図5の例では、ペア管理テーブル115の2番目のエントリの正ボリュームの装置ID501、正ボリュームのボリュームID502、正ボリュームの種別503、副ボリュームの装置ID504、副ボリュームのボリュームID505及び副ボリュームの種別506として、それぞれ、「ST01」、「VOL02」、「実」、「ST02」、「VOL12」及び「仮想」が格納されている。例えば、ストレージシステム100Aの識別子が「ST01」、ストレージシステム100Bの識別子が「ST02」、実ボリューム202Aの識別子が「VOL02」、仮想ボリューム201Dの識別子が「VOL12」である場合、この2番目のエントリは、実ボリューム202Aが正ボリューム、仮想ボリューム201Dが副ボリュームであるコピーペアが作成されていることを示す。
次に、仮想ボリューム201へのデータの書き込み及び仮想ボリューム201からの読み出しについて説明する。
図6は、本発明の第1の実施形態において実行されるデータ書き込み処理を示すフローチャートである。
具体的には、図6は、I/O制御プログラム112が仮想ボリューム201を書き込み先として指定するデータ書き込み要求を受信したときに実行する処理を示す。
最初に、I/O制御プログラム112は、データ書き込み要求を受信する(ステップ601)。このデータ書き込み要求は、書き込まれるべきデータ、及び、そのデータの書き込み先のアドレスを指定する情報を含む。
なお、このデータ書き込み要求は、ホスト計算機130から送信されたものであってもよいし、コピーペアにおけるデータのコピーを実行するためにいずれかのストレージシステム100のペア制御プログラム(図示省略)によって送信されたものであってもよいし、テープ記憶媒体からのデータの復元のためにテープライブラリ120又はバックアップ制御装置(図示省略)によって送信されたものであってもよい。
次に、I/O制御プログラム112は、書き込み先のアドレスを含むページに物理的な記憶領域が割り当てられているか否かを判定する(ステップ602)。具体的には、I/O制御プログラム112は、割り当て管理テーブル114を参照して、書き込み先のアドレスを含むページに対応する実ページ402に有効値(すなわちプールボリューム203のいずれかのページのアドレス)が登録されているか否かを判定する。
ステップ602において、書き込み先のアドレスを含むページに対応する実ページ402に無効値が登録されていると判定された場合、書き込み先のアドレスを含むページに物理的な記憶領域が割り当てられていない。この場合、I/O制御プログラム112は、書き込み先のアドレスを含むページに、まだいずれのページにも割り当てられていない物理的な記憶領域を割り当てる(ステップ603)。
具体的には、I/O制御プログラム112は、書き込み先の仮想ボリューム201に対応するプールボリューム203のページのうち、まだいずれの仮想ボリュームのページにも割り当てられていないものを選択し、その選択されたページのアドレスを、書き込み先のアドレスを含むページに対応する実ページ402に登録する。
なお、ステップ603の割り当て処理は、I/O制御プログラム112から指示を受けた割り当て管理プログラム113によって実行されてもよい。
次に、I/O制御プログラム112は、書き込み先のアドレスにデータを書き込む(ステップ604)。具体的には、I/O制御プログラム112は、割り当て管理テーブル114を参照して、書き込み先のアドレスに割り当てられた物理的な記憶領域を特定し、その物理的な記憶領域にデータを書き込む。
一方、ステップ602において、書き込み先のアドレスを含むページに対応する実ページ402に有効値が登録されていると判定された場合、書き込み先のアドレスを含むページに物理的な記憶領域が割り当てられている。この場合、I/O制御プログラム112は、ステップ603を実行せずに、ステップ604を実行する。
以上でデータ書き込み処理が終了する。
上記のように、実際に使用される(すなわちデータが書き込まれる)まで、物理的な記憶領域の論理ボリュームへの割り当てを保留することによって、物理的な記憶領域を有効に利用することができる。このようにデータ書き込み要求に応じて物理的な記憶領域を動的に割り当てる技術は、Allocation on Use(AoU)とも呼ばれる。
ここで、図3及び図4を参照して、データ書き込み処理の具体例を説明する。
例えば、書き込み先としてブロック302Aが指定されている場合、I/O制御プログラム112は、割り当て管理テーブル114を参照して、ブロック302Aを含むページ301Aに、プールボリューム203Aのページ301Cが割り当てられている(すなわち、物理的な記憶領域が割り当てられている)と判定する(ステップ602)。なお、この判定は、指定されたブロック302Aのアドレスが「0x0000」から「0x4FFF」までの範囲に含まれることに基づいて実行される。
この場合、I/O制御プログラム112は、ブロック302Aに割り当てられたブロック302C(より正確には、ブロック302Cに割り当てられた物理的な記憶領域)に、データを書き込む(ステップ604)。
一方、上記の例において、仮想ページ401の値「0x0000」に対応する実ページ402が無効値である場合、ブロック302Aを含むページ301Aに、プールボリューム203Aのページが割り当てられていない。この場合、I/O制御プログラム112は、プールボリューム203Aのページ(例えばページ301C)をページ301Aに割り当てる。具体的には、例えば図4に示すように、ページ301Cの先頭アドレス「0x0000」を仮想ページ401の値「0x0000」に対応する実ページ402として新たに登録する。その後、I/O制御プログラム112は、ブロック302Aに割り当てられたブロック302Cにデータを書き込む(ステップ604)。
図7は、本発明の第1の実施形態において実行されるデータ読み出し処理を示すフローチャートである。
具体的には、図7は、I/O制御プログラム112が仮想ボリューム201を読み出し対象として指定するデータ読み出し要求(すなわち、仮想ボリューム201からデータを読み出す要求)を受信したときに実行する処理を示す。
最初に、I/O制御プログラム112は、データ読み出し要求を受信する(ステップ701)。このデータ読み出し要求は、データの読み出し対象のアドレスを指定する情報(すなわち、どのアドレスに格納されたデータを読み出すかを示す情報)を含む。
なお、このデータ読み出し要求は、ホスト計算機130から送信されたものであってもよいし、コピーペアにおけるデータのコピーを実行するためにペア制御プログラム(図示省略)によって送信されたものであってもよい。
次に、I/O制御プログラム112は、読み出し対象のアドレスを含むページに物理的な記憶領域が割り当てられているか否かを判定する(ステップ702)。この判定は、図6のステップ602と同様に実行される。
ステップ702において、読み出し対象のアドレスを含むページに物理的な記憶領域が割り当てられていると判定された場合、I/O制御プログラム112は、読み出し対象のアドレスからデータを読み出す(ステップ703)。具体的には、I/O制御プログラム112は、割り当て管理テーブル114を参照して、読み出し対象のアドレスに割り当てられた物理的な記憶領域を特定し、その物理的な記憶領域からデータを読み出す。
一方、ステップ702において、読み出し対象のアドレスを含むページに物理的な記憶領域が割り当てられていないと判定された場合、I/O制御プログラム112は、所定のアドレス範囲に格納された特定のパターンのデータを読み出す(ステップ704)。
次に、I/O制御プログラム112は、ステップ703又はステップ704で読み出されたデータを、データ読み出し要求に対する応答として、要求元に送信する(ステップ705)。
ここで、図3及び図4を参照して、データ読み出し処理の具体例を説明する。
例えば、読み出し対象としてブロック302Aが指定されている場合、I/O制御プログラム112は、割り当て管理テーブル114を参照して、ブロック302Aを含むページ301Aに、プールボリューム203Aのページ301Cが割り当てられている(すなわち、物理的な記憶領域が割り当てられている)と判定する(ステップ702)。
この場合、I/O制御プログラム112は、ブロック302Aに割り当てられたブロック302C(より正確には、ブロック302Cに割り当てられた物理的な記憶領域)に格納されたデータを読み出し(ステップ703)、そのデータを要求元に送信する(ステップ705)。
一方、例えば、読み出し対象としてブロック302Bが指定されている場合、I/O制御プログラム112は、割り当て管理テーブル114を参照して、ブロック302Bを含むページ301Bに、プールボリューム203Aのページが割り当てられていない(すなわち、物理的な記憶領域が割り当てられていない)と判定する(ステップ702)。
この場合、I/O制御プログラム112は、アドレス範囲303に格納された特定のパターンのデータ(例えば、連続する「0」のみからなるデータ)を読み出し(ステップ704)、そのデータを要求元に送信する(ステップ705)。
ここで、上記の例を参照して、本発明が解決しようとする課題、及び、その課題を解決するための本実施形態の概要について説明する。
例えば、仮想ボリューム201に格納されたデータの複製を、バックアップのためにテープ記憶媒体122に書き込む処理が実行される場合がある。この場合、仮想ボリューム201に格納されたデータが、図7に示すように読み出され、テープ記憶媒体122に書き込まれる。このとき、仮想ボリューム201のページのうち、物理的な記憶領域が割り当てられていないページを対象とする読み出し要求に対して、特定のパターンのデータが応答される。このため、物理的な記憶領域が割り当てられていないページから読み出されたデータとして、上記のように応答された特定のパターンのデータがテープ記憶媒体122に格納される。
その後、テープ記憶媒体122に格納されたデータを仮想ボリューム201に復元したい場合、テープ記憶媒体122に格納されたデータが読み出され、仮想ボリューム201に書き込まれる。このとき、テープ記憶媒体122に格納された特定のパターンのデータも全て読み出され、仮想ボリューム201に書き込まれる。このとき、読み出された特定のパターンのデータを書き込む処理が実行されるため、図6に示すように、特定のパターンのデータを格納するための物理的な記憶領域が仮想ボリューム201のページに割り当てられ、特定のパターンのデータが書き込まれる。
このように、復元される前には物理的な記憶領域が割り当てられていなかったページに、復元によって物理的な記憶領域が割り当てられる。これによって、物理的な記憶領域を有効に利用するというAoU技術の特徴が損なわれる。
上記のような問題は、コピーペアにおけるデータコピーによっても発生する。
例えば、正ボリュームが仮想ボリューム201、副ボリュームが実ボリューム202であるようなコピーペアが作成された場合、最初に、仮想ボリューム201に格納された全てのデータが読み出され、実ボリューム202に格納される。このとき、上記のテープ記憶媒体の場合と同様、物理的な記憶領域が割り当てられていないページから読み出されたデータとして、特定のパターンのデータが実ボリューム202に格納される。
その後、副ボリュームのデータが正ボリュームに復元される場合、上記のテープ記憶媒体の場合と同様、実ボリューム202に格納された特定のパターンのデータも全て読み出され、仮想ボリューム201に書き込まれる。このとき、特定のパターンのデータを格納するための物理的な記憶領域が仮想ボリューム201のページに割り当てられる。
このような問題を回避するため、本実施形態では、一旦書き込まれた特定のパターンのデータを検出し、特定のパターンのデータのみが格納されたページへの物理的な記憶領域の割り当てが解除される。以下、そのための処理について説明する。
図8は、本発明の第1の実施形態において実行されるプールJOBを示すフローチャートである。
プールJOBは、各ストレージシステム100の割り当て管理プログラム113によって実行される。
割り当て管理プログラム113は、最初に、所定の条件が満たされたか否かを判定する(ステップ801)。例えば、割り当て管理プログラム113は、各プール204について、そのプール204の全記憶容量に対する、既に仮想ボリューム201に割り当てられたページの容量の合計の割合が所定の閾値を超えた場合に、所定の条件が満たされたと判定してもよい。
ステップ801において、所定の条件が満たされないと判定された場合、所定の条件が満たされるまでステップ801が繰り返される。
ステップ801において、所定の条件が満たされたと判定された場合、割り当て管理プログラム113は、所定の条件が満たされたプール204に対応付けられた仮想ボリューム201の一つを選択する(ステップ802)。
次に、割り当て管理プログラム113は、選択された仮想ボリューム201について、ページ破棄判定処理を実行する(ステップ803)。ページ破棄判定処理については後述する(図9参照)。
次に、割り当て管理プログラム113は、選択された仮想ボリューム201について、ページ破棄処理を実行する(ステップ804)。ページ破棄処理については後述する(図11参照)。
次に、割り当て管理プログラム113は、ステップ801で選択された仮想ボリューム201が最後のものであるか否か、言い換えると、ステップ801で所定の条件が満たされたと判定されたプール204に対応付けられた全ての仮想ボリューム201についてステップ803及びステップ804が実行されたか否かを判定する(ステップ805)。
ステップ805において、ステップ801で選択された仮想ボリューム201が最後のものでないと判定された場合、処理はステップ802に戻る。この場合、ステップ802において、割り当て管理プログラム113は、残りの仮想ボリューム201の一つを選択する。結局、割り当て管理プログラム113は、ステップ801で所定の条件が満たされたと判定されたプール204に対応付けられた全ての仮想ボリューム201についてページ破棄判定処理(ステップ803)及びページ破棄処理が(ステップ804)実行されるまで、ステップ802からステップ805を繰り返す。
ステップ805において、ステップ801で選択された仮想ボリューム201が最後のものであると判定された場合、割り当て管理プログラム113は、プールJOBを終了する。
ここで、ステップ801における判定のバリエーションを説明する。上記の例では、仮想ボリューム201に割り当てられたページの容量の合計の割合が所定の閾値を超えた場合に、所定の条件が満たされたと判定されるが、他の方法によって判定されてもよい。
例えば、ある仮想ボリューム201に定義された全容量に対する、既に物理的な記憶領域が割り当てられたページの容量の合計の割合が所定の閾値を超えた場合に、所定の条件が満たされたと判定されてもよい。この場合、上記の割合が所定の閾値を超えた仮想ボリューム201がステップ802において選択される。
あるいは、所定のタイミングが到来したときに、所定の条件が満たされたと判定されてもよい。より具体的には、前回のプールJOBが実行されてから所定の時間が経過したとき、又は、所定の時刻が到来したときに、ストレージシステム100内の全てのプール204について所定の条件が満たされたと判定されてもよい。この場合、いずれのプール204にも対応付けられていないものを除く全ての仮想ボリュームを対象として、ステップ802からステップ805が繰り返し実行される。
上記の所定のタイミングは、プール最適化処理が実行されるタイミングであってもよい。プール最適化処理とは、仮想ボリューム201の未割り当てのページとプール204内の未割り当てのページとの対応関係をランダム化する処理である。
あるいは、ストレージシステム100のユーザ又は管理者が、プール204又は仮想ボリューム201を指定して、プールJOBの実行を指示してもよい。具体的には、例えば、ユーザ又は管理者は、ホスト計算機130を使用して、プール204又は仮想ボリューム201の指定を含むプールJOB実行指示をストレージシステム100に送信してもよい。この指示を受信したストレージシステムの割り当て管理プログラム113は、指定されたプール204又は仮想ボリューム201について所定の条件が満たされたと判定する(ステップ801)。
あるいは、コピーペアにおいて、実ボリューム202から仮想ボリューム201へのコピーが実行された場合に、所定の条件が満たされたと判定されてもよい。既に説明したように、実ボリューム202から仮想ボリューム201へのコピーによって、特定のパターンのデータを格納するために物理的な記憶領域が割り当てられる場合があるためである。
具体的には、例えば、ステップ801において、割り当て管理プログラム113は、実ボリューム202から仮想ボリューム201へのコピーが実行されたか否かを判定し、実行されたと判定した場合には、さらに、そのコピー元が実ボリューム202であり、かつ、コピー先が仮想ボリューム201であるか否かを判定してもよい。各論理ボリュームがコピーペアに属しているか否か、及び、属している場合、そのコピーペアの属性は、ペア管理テーブル115を参照することによって知ることができる。
上記の判定の結果、コピー元が実ボリューム202であり、かつ、コピー先が仮想ボリューム201であると判定された場合、ステップ802において、コピー先の仮想ボリューム203が選択される。
あるいは、テープ記憶媒体から読み出されたデータが仮想ボリューム201にコピーされた場合、所定の条件が満たされたと判定されてもよい。既に説明したように、テープ記憶媒体から仮想ボリューム201へのコピーによって、特定のパターンのデータを格納するために物理的な記憶領域が割り当てられる場合があるためである。この場合、ステップ802において、コピー先の仮想ボリューム203が選択される。
図9は、本発明の第1の実施形態において実行されるページ破棄判定処理を示すフローチャートである。
図9に示すページ破棄判定処理は、図8に示すプールJOBのステップ803において実行される。
最初に、割り当て管理プログラム113は、ステップ802で選択された仮想ボリューム201の全ページのうち、既に物理的な記憶領域が割り当てられているページに対応する破棄マーク403の値を有効値にする(ステップ901)。例えば、破棄マーク403の値「1」が有効、「0」が無効を表してもよいし、その逆であってもよい。
次に、割り当て管理プログラム113は、選択された仮想ボリューム201のページの一つを選択する(ステップ902)。ページ破棄判定処理の実行が開始されてから初めて実行されるステップ902では、仮想ボリューム201の先頭のページが選択されてもよい。
次に、割り当て管理プログラム113は、選択されたページに対応する破棄マーク403の値が有効であるか否かを判定する(ステップ903)。
ステップ903において、選択されたページに対応する破棄マーク403の値が無効であると判定された場合、そのページは、物理的な記憶領域が割り当てられていないページであるか、又は、物理的な記憶領域の割り当てを解除してはならないページである。このため、割り当て管理プログラム113は、ステップ904以降の処理を実行せず(すなわち、選択されたページに対する物理的な記憶領域の割り当てを解除する処理を実行せず)、ステップ902に戻る。
一方、ステップ903において、選択されたページに対応する破棄マーク403の値が有効であると判定された場合、割り当て管理プログラム113は、選択されたページのスロットの一つを選択し、そのスロットのデータをステージングする(ステップ904)。例えば、ページが選択されてから初めて実行されるステップ904では、選択されたページの先頭のスロットが選択されてもよい。
スロットとは、ページ内のデータの管理単位である。一つのページは所定の数のスロットに分割される。ページに格納されたデータと特定のパターンのデータとの比較は、スロットごとに実行される(図10参照)。
スロットのデータをステージングすることは、スロットのデータを読み出してメモリに一時的に格納することを意味する。スロットから読み出されたデータは、ローカルメモリ107、共有メモリ103又はキャッシュメモリ105に格納されてもよい。
次に、割り当て管理プログラム113は、スロットから読み出されたデータと特定のパターンのデータとを比較し、これらが一致するか否かを判定する(ステップ905)。この比較は、どのような方法によって実行されてもよい。この比較については後で詳細に説明する(図10参照)。
ステップ905において、スロットから読み出されたデータと特定のパターンのデータとが一致しないと判定された場合、選択されたページに割り当てられた物理的な記憶領域には、特定のパターンのデータ以外のデータが格納されている。すなわち、その割り当てを解除することはできない。このため、割り当て管理プログラム113は、選択されたページに対応する破棄マーク403の値を無効値に変更する(ステップ906)。
次に、割り当て管理プログラム113は、選択されたスロットが選択されたページ内の最後のスロットであるか否かを判定する(ステップ907)。
ステップ907において、選択されたスロットが選択されたページ内の最後のスロットでないと判定された場合、選択されたページ内のスロットのうち、まだ特定のパターンのデータとの比較が終了していないスロットが存在する。このため、処理はステップ904に戻る。ステップ904では、まだ選択されていないスロットの一つ(例えば、直前に選択されたスロットの次のスロット)が選択される。
一方、ステップ907において、選択されたスロットが選択されたページ内の最後のスロットであると判定された場合、選択されたページ内の全てのスロット(言い換えると全てのデータ)と特定のパターンのデータとの比較が終了した。この場合、割り当て管理プログラム113は、選択されたページが選択された仮想ボリューム201内の最後のページであるか否かを判定する(ステップ908)。
ステップ908において、選択されたページが選択された仮想ボリューム201内の最後のページでないと判定された場合、選択された仮想ボリューム201内のページのうち、まだ物理的な記憶領域の割り当てを解除するか否かを判定されていないページが存在する。このため、処理はステップ902に戻る。ステップ902では、まだ選択されていないページの一つ(例えば、直前に選択されたページの次のページ)が選択される。
ステップ908において、選択されたページが選択された仮想ボリューム201内の最後のページであると判定された場合、選択された仮想ボリューム201内の全てのページについて、物理的な記憶領域の割り当てを解除するか否かが判定された。この場合、割り当て管理プログラム113は、現在選択されている仮想ボリューム201について、ステップ901が実行された後、その仮想ボリューム201内のいずれかのページに対するデータI/O要求(すなわちデータ書き込み要求又はデータ読み出し要求)が実行されたか否かを判定する(ステップ909)。
ステップ909において、データ書き込み要求が実行されたと判定された場合、そのデータ書き込み要求によって、特定のパターンのデータ以外のデータがページに書き込まれた可能性が高い。一方、データ読み出し要求が実行されたと判定された場合、その読み出しの直後に、データが読み出されたページに対するデータ書き込み要求が実行される可能性が高い。データ書き込み要求を実行する直前に、必ずその書き込み先の領域に対するデータ読み出し要求を実行するように設計されたオペレーティングシステム(OS)が、ホスト計算機130で稼動している可能性があるためである。すなわち、データ読み出し要求が実行された直後にデータ書き込み要求が実行され、それによって特定のパターンのデータ以外のデータがページに書き込まれる可能性がある。
したがって、特定のパターンのデータ以外のデータが格納された物理的な記憶領域のページへの割り当てを解除することを防止するためには、データI/O要求が実行されたページについては、物理的な記憶領域の割り当てを解除しないことが求められる。
このため、ステップ909において、データI/O要求が実行されたと判定された場合、割り当て管理プログラム113は、そのデータI/O要求の対象のページに対応する破棄マーク403の値を無効値に変更する(ステップ910)。
一方、ステップ909において、データI/O要求が実行されていないと判定された場合、割り当て管理プログラム113は、ステップ910を実行しない。
なお、図9の例では、ステップ909及びステップ910がステップ908の後に実行される。しかし、実際には、割り当て管理プログラム113は、ページ破棄判定処理の実行が開始された後、ページ破棄処理の実行が終了するまでの間、常にデータI/O要求の実行の有無を監視し、データI/O要求が実行されたときにその要求の対象のページの破棄マーク403を無効値に変更することが望ましい。
以上で、割り当て管理プログラム113は、ページ破棄判定処理を終了する。
図10は、本発明の第1の実施形態において実行されるデータの比較の説明図である。
図10は、例として、仮想ボリューム201Aにおけるデータの比較を示すが、他の仮想ボリューム201についても同様にデータの比較が実行される。
図3を参照して説明したように、仮想ボリューム201Aは、所定の大きさの複数のページ、例えばページ301A及びページ301B等を含む。各ページは、所定の大きさの複数のスロットを含む。例えば、ページ301Aは、スロット1001A〜1001Cを含む。
例えば、1ページが168スロットを含み、1スロットが512ブロック(すなわち256キロバイト)を含んでもよいが、これらの値は一例であり、どのような値が定められてもよい。
メモリ(例えばローカルメモリ107)には、比較用ワークスロット1002が用意され、そこに特定のパターンのデータが格納される。例えば、所定のアドレス範囲303に格納されたデータが比較用ワークスロット1002にコピーされてもよい。
比較器1003は、各スロットのデータと比較用ワークスロット1002のデータとを比較し、それらが同一であるか否かを判定する。比較器1003は、専用のハードウェアによって実現されても、ソフトウェアによって実現されてもよい。
例えば、最初にスロット1001Aのデータがメモリにコピーされる(ステップ904)。比較器1003は、スロット1001Aのデータと比較用ワークスロット1002に格納された特定のパターンのデータとを比較し、それらが同一であるか否かを判定する(ステップ905)。それらが同一である場合、次のスロット1001Bがメモリにコピーされ、上記の処理が繰り返される。
例えば、スロット1001Bのデータと比較用ワークスロット1002に格納された特定のパターンのデータとが同一でない場合、ページ301Aに対応する破棄マーク403の値が無効に変更される。そして、ページ301Aの残りのスロット(すなわちスロット1001C以降のスロット)について上記の比較を実行することなく、次のページ301Bが選択される。
図11は、本発明の第1の実施形態において実行されるページ破棄処理を示すフローチャートである。
図11に示すページ破棄処理は、図8に示すプールJOBのステップ804において実行される。
最初に、割り当て管理プログラム113は、資源ロックを取得する(ステップ1101)。これは、現在実行されているページ破棄処理以外の処理によるページへの物理的な記憶領域の割り当てを禁止するための処理である。すなわち、資源ロックの取得によって、ページへの物理的な記憶領域の割り当て及びその解除が排他制御される。
次に、割り当て管理プログラム113は、選択された仮想ボリューム201のページの一つを選択する(ステップ1102)。ページ破棄処理の実行が開始されてから初めて実行されるステップ1102では、仮想ボリューム201の先頭のページが選択されてもよい。
次に、割り当て管理プログラム113は、ステップ1102で選択されたページに対応する破棄マーク403の値が有効であるか否かを判定する(ステップ1103)。
ステップ1103において、選択されたページに対応する破棄マーク403の値が有効であると判定された場合、選択されたページには、特定のパターンのデータのみが格納されている。この場合、割り当て管理プログラム113は、選択されたページへの物理的な記憶領域の割り当てを解除する(ステップ1104)。具体的には、割り当て管理プログラム113は、選択されたページに対応する実ページ402の値を無効値に変更する。
次に、割り当て管理プログラム113は、選択されたページが選択された仮想ボリューム201内の最後のページであるか否かを判定する(ステップ1105)。
ステップ1105において、選択されたページが選択された仮想ボリューム201内の最後のページでないと判定された場合、処理はステップ1102に戻る。ステップ1102では、まだ選択されていないページの一つ(例えば、直前に選択されたページの次のページ)が選択される。
ステップ1105において、選択されたページが選択された仮想ボリューム201内の最後のページであると判定された場合、選択された仮想ボリューム201内のページのうち、特定のパターンのデータのみが格納された全てのページについて、物理的な記憶領域の割り当てが解除された。この場合、割り当て管理プログラム113は、資源ロックを開放して(ステップ1106)、ページ破棄処理を終了する。
ステップ1103において、選択されたページに対応する破棄マーク403の値が無効であると判定された場合、選択されたページには、物理的な記憶領域が割り当てられていないか、特定のパターンのデータ以外のデータが含まれているか、又は、ごく近い将来に特定のパターンのデータ以外のデータが書き込まれる可能性が高いか、のいずれかである。このようなページへの物理的な記憶領域の割り当てを解除することは許されない。このため、割り当て管理プログラム113は、ステップ1104を実行せずにステップ1105を実行する。
以上でページ破棄処理についての説明を終了する。
ここで、図8から図11に示した処理の具体例を、図3及び図4を参照しながら説明する。
ステップ802において仮想ボリューム201Aが選択された場合、割り当て管理プログラム113は、仮想ボリューム201A内の全ページのうち、物理的な記憶領域が割り当てられていないページに対応する破棄マーク403として有効値を設定する(ステップ901)。例えば、ページ301A及びページ301Bに対応する仮想ページ401の値がそれぞれ「0x0000」及び「0x5000」である場合、ページ301Aには物理的な記憶領域が割り当てられているが、ページ301Bには割り当てられていない(図4参照)。この場合、割り当て管理プログラム113は、「0x0000」に対応する破棄マーク403に有効値(例えば「1」)を、「0x5000」に対応する破棄マーク403に無効値(例えば「0」)を設定する。
次に、ステップ902においてページ301Aが選択された場合、割り当て管理プログラム113は、ページ301Aの各スロットを順次メモリにコピーして(ステップ904)、特定のパターンのデータとの比較を実行する(ステップ905)。
ページ301A内の全てのスロットのデータが特定のパターンのデータと一致した場合、ページ301Aに対応する破棄マーク403の値は有効値のまま維持され、次のページ301Bが選択される(ステップ902)。一方、特定のパターンのデータと異なるデータを含むスロットがページ301A内に一つでも存在した場合、ページ301Aに対応する破棄マーク403の値は無効値に変更され(ステップ906)、次のページ301Bが選択される(ステップ902)。
上記と同様の処理が仮想ボリューム201Aの残りのページについても実行される。ただし、ページ301Bのように物理的な記憶領域が割り当てられていないものについては、ステップ903で「No」と判定されるため、上記の比較は実行されない。
なお、例えば、ステップ905における比較の結果、ページ301Aに対応する破棄マーク403の値が有効値のまま維持された場合であっても、その後ページ301Aに対するデータI/Oが実行された場合、ページ301Aに対応する破棄マーク403の値は無効値に変更される(ステップ909及びステップ910)。
仮想ボリューム201Aの全てのページについてページ破棄判定処理が終了すると、次に、仮想ボリューム201Aについてページ破棄処理が実行される。例えば、図4に示すように、仮想ページ401の値「0x0000」によって識別されるページ301Aに対応する破棄マーク403の値が有効値「1」である場合、そのページ301Aに対応する実ページ402の値「0x0000」が無効値に変更される(ステップ1103及びステップ1104)。これによって、ページ301Aへの物理的な記憶領域の割り当てが解除される。
同様に、破棄マーク403の値が有効値である全てのページについて、実ページ402の値が無効値に変更されると、ページ破棄処理が終了する。
以上説明したように、本来であれば、特定のパターンのデータは、仮想ボリューム201に格納される必要がないものである。言い換えると、特定のパターンのデータを格納するために、仮想ボリューム201のページに物理的な記憶領域を割り当てる必要がない。しかし、従来は、特定のパターンのデータを格納するために、仮想ボリューム201のページに物理的な記憶領域が割り当てられる場合があり、しかも、その割り当てを解除する方法がなかった。このため、物理的な記憶領域を有効に利用できない場合があった。
これに対して、上記の本発明の第1の実施形態では、特定のパターンのデータは、仮想ボリューム201に一旦格納される。すなわち、特定のパターンのデータを格納するために、仮想ボリューム201のページに物理的な記憶領域が一旦割り当てられる。その後、仮想ボリューム201に格納されたデータと特定のパターンのデータとが比較され、特定のパターンのデータのみが格納されたページに対する物理的な記憶領域の割り当てが事後的に解除される。割り当てを解除された物理的な記憶領域は、新たに別のページに割り当てることができる。このため、物理的な記憶領域を有効に利用することができる。
次に、本発明の第2の実施形態を、図面を用いて詳細に説明する。
本発明の第1の実施形態では、上記のように、特定のパターンのデータを格納するために、仮想ボリューム201のページに物理的な記憶領域が一旦割り当てられ、その後、その割り当てが解除される。これに対して、本発明の第2の実施形態では、仮想ボリューム201への特定のパターンのデータの書き込みが防止される。
本発明の第2の実施形態のハードウェア構成及び基本的な論理構成は、第1の実施形態と同様である。すなわち、図1から図5、図7及び図10は、第2の実施形態にも適用することができる。以下、第2の実施形態が第1の実施形態と相違する点について説明する。
図12は、本発明の第2の実施形態において実行されるデータ書き込み処理を示すフローチャートである。
具体的には、図12は、I/O制御プログラム112が仮想ボリューム201を書き込み先として指定するデータ書き込み要求を受信したときに実行する処理を示す。
最初に、I/O制御プログラム112は、データ書き込み要求を受信する(ステップ1201)。このデータ書き込み要求は、書き込まれるべきデータ、及び、そのデータの書き込み先のアドレスを指定する情報を含む。
以下の説明は、ステップ1201において1ページ分のデータを受信した場合にI/O制御プログラム112が実行する処理についてのものである。複数ページ分のデータが受信された場合には、以下の処理が繰り返し実行される。1ページに満たないデータが受信された場合、第1の実施形態と同様、図6に示す処理が実行される。
次に、I/O制御プログラム112は、書き込み先のアドレスを含むページに物理的な記憶領域が割り当てられているか否かを判定する(ステップ1202)。具体的には、I/O制御プログラム112は、割り当て管理テーブル114を参照して、書き込み先のアドレスを含むページに対応する実ページ402に有効値(すなわちプールボリューム203のいずれかのページのアドレス)が登録されているか否かを判定する。
ステップ602において、書き込み先のアドレスを含むページに対応する実ページ402に無効値が登録されていると判定された場合、書き込み先のアドレスを含むページに物理的な記憶領域が割り当てられていない。この場合、I/O制御プログラム112は、書き込まれるべきデータのうち1スロット分のデータをステージングする(ステップ1203)。この処理は、図9のステップ904と同様に実行される。
次に、I/O制御プログラム112は、ステージングされたデータと特定のパターンのデータとを比較し、これらが一致するか否かを判定する(ステップ1204)。この比較は、図9のステップ905と同様に実行される。
ステップ1204において、1スロット分のデータと特定のパターンのデータとが一致しないと判定された場合、ステップ1201で受信した1ページ分のデータには、特定のパターンのデータと異なるデータが含まれる。この場合、I/O制御プログラム112は、書き込み先として指定されたアドレスに相当するページに物理的な記憶領域を割り当てる(ステップ1206)。この割り当ては、図6のステップ603と同様に実行される。
次に、I/O制御プログラム112は、書き込み先として指定されたアドレスにデータを書き込む(ステップ1207)。この書き込みは、図6のステップ604と同様に実行される。ステップ1207の書き込みが終了すると、I/O制御プログラム112は、データ書き込み処理を終了する。
ステップ1204において、1スロット分のデータと特定のパターンのデータとが一致すると判定された場合、I/O制御プログラム112は、ステップ1203でステージングされたデータが、ステップ1201で受信した1ページ分のデータの最後のスロットに相当するものであるか否かを判定する(ステップ1205)。
ステップ1205において、ステージングされたデータが最後のスロットに相当しないと判定された場合、処理はステップ1203に戻る。ステップ1203において、I/O制御プログラム112は、直前にステージングされたスロットの次のスロットに相当するデータをステージングして、ステップ1204以降の処理を実行する。
ステップ1205において、ステージングされたデータが最後のスロットに相当すると判定された場合、ステップ1201で受信した1ページ分のデータは、特定のパターンのデータと同一のデータのみを含む。この場合、I/O制御プログラム112は、書き込み先として指定されたアドレスに相当するページへの物理的な記憶領域の割り当て、及び、そのページへのデータの書き込みのいずれも実行せずに、データ書き込み処理を終了する。
なお、ステップ1203からステップ1206は、I/O制御プログラム112からの指示を受けた割り当て管理プログラム113によって実行されてもよい。
本実施形態のI/O制御プログラム112は、図12に示すデータ書き込み処理だけでなく、図6に示すデータ書き込み処理を実行する機能を備えてもよい。この場合、例えば、I/O制御プログラム112は、管理者又はユーザからの指示に従って、実行するデータ書き込み処理を切り替えることができる。
上記のデータ書き込み処理は、ホスト計算機130から送信されたデータ書き込み要求を処理するために実行される場合を例として説明した。しかし、コピーペアにおけるデータのコピーが実行される場合(すなわちコピー先の仮想ボリューム201にデータを書き込む場合)、及び、テープ記憶媒体からのデータの復元が実行される場合(すなわちテープ記憶媒体から読み出されたデータを仮想ボリューム201に書き込む場合)にも同様の処理が実行される。
いずれの場合であっても、仮想ボリューム201への特定のパターンのデータの書き込みが防止されるため、物理的な記憶領域を有効に利用することができる。
ただし、コピーペアにおいてデータのコピーが実行される場合、上記のようにコピー先へのデータの書き込みを制御することによってではなく、コピー元からのデータの送信を制御することによって、特定のパターンのデータの書き込みを防止することもできる。以下、それぞれの場合の処理について説明する。
図13は、本発明の第2の実施形態において実行される論理ボリューム間のデータコピーの第1の例を示すフローチャートである。
例えば、二つのストレージシステム100にまたがるコピーペアにおいて、実ボリューム202から仮想ボリューム201へのデータのコピーが実行される場合、コピー元の実ボリューム202を含むストレージシステム100のI/O制御プログラム112は、コピー元の実ボリューム202からデータを読み出し(ステップ1301)、読み出したデータを、コピー先の仮想ボリューム201を含むストレージシステム100に送信する(ステップ1302)。
ステップ1302で送信されたデータを受信したストレージシステム100のI/O制御プログラム112は、図12に示すデータ書き込み処理を実行する(ステップ1303)。これによって、コピー先の仮想ボリューム201への特定パターンのデータの書き込みが防止される。
図14は、本発明の第2の実施形態において実行される論理ボリューム間のデータコピーの第2の例を示すフローチャートである。
図13の場合と同様に、実ボリューム202から仮想ボリューム201へのデータのコピーが実行される場合を説明する。ただし、ここでは、実ボリューム202に格納された全データの仮想ボリューム201へのコピーが実行される場合を例とする。
コピー元の実ボリューム202を含むストレージシステム100のI/O制御プログラム112は、コピー元の実ボリューム202から1ページ分のデータを読み出す(1401)。
次に、I/O制御プログラム112は、読み出された1ページ分のデータのうち1スロット分のデータをステージングする(ステップ1402)。この処理は、図9のステップ904と同様に実行される。
次に、I/O制御プログラム112は、ステージングされたデータと特定のパターンのデータとを比較し、これらが一致するか否かを判定する(ステップ1403)。この比較は、図9のステップ905と同様に実行される。
ステップ1403において、1スロット分のデータと特定のパターンのデータとが一致しないと判定された場合、ステップ1401において読み出された1ページ分のデータには、特定のパターンのデータと異なるデータが含まれる。この場合、I/O制御プログラム112は、ステップ1401において読み出された1ページ分のデータを、コピー先の仮想ボリューム201を含むストレージシステム100に送信する(ステップ1404)。
ステップ1403において、1スロット分のデータと特定のパターンのデータとが一致すると判定された場合、I/O制御プログラム112は、ステップ1402でステージングされたデータが、ステップ1401で読み出された1ページ分のデータの最後のスロットに相当するものであるか否かを判定する(ステップ1405)。
ステップ1405において、ステージングされたデータが最後のスロットに相当しないと判定された場合、処理はステップ1402に戻る。ステップ1402において、I/O制御プログラム112は、直前にステージングされたスロットの次のスロットに相当するデータをステージングして、ステップ1403以降の処理を実行する。
ステップ1405において、ステージングされたデータが最後のスロットに相当すると判定された場合、ステップ1401で読み出された1ページ分のデータは、特定のパターンのデータと同一のデータのみを含む。この場合、I/O制御プログラム112は、ステップ1401で読み出された1ページ分のデータを、コピー先の仮想ボリューム201を含むストレージシステム100に送信せずに、ステップ1406を実行する。
ステップ1406において、I/O制御プログラム112は、ステップ1401で読み出された1ページ分のデータが、コピー元の実ボリューム202の最後のページであるか否かを判定する。
ステップ1406において、読み出されたデータが最後のページでないと判定された場合、処理はステップ1401に戻る。ステップ1401において、I/O制御プログラム112は、直前に読み出されたページの次のページのデータを読み出して、ステップ1402以降の処理を実行する。
ステップ1404において送信されたデータを受信したストレージシステムのI/O制御プログラム112は、図6に示すデータ書き込み処理を実行することによって、受信したデータをコピー先の仮想ボリューム201に書き込む(ステップ1411)。
特定のパターンのデータと同一のデータのみを含むページはステップ1404において送信されないため、ステップ1411において、特定のパターンのデータと同一のデータのみを含むページに物理的な記憶領域を割り当てられることはない。
上記の図13及び図14は、二つのストレージシステム100にまたがるコピーペアにおけるデータのコピーを示したが、一つのストレージシステム100内のコピーペアの場合(すなわち、コピー元の実ボリューム202とコピー先の仮想ボリューム201とが同一のストレージシステム100に格納される場合)にも同様の処理を実行することができる。
なお、図14に示した処理は、第1の実施形態のストレージシステム100において実行されてもよい。図14に示す処理が第1の実施形態のストレージシステム100において実行される場合、論理ボリューム間のコピーのための物理的な記憶領域の割り当ては、図14の処理によって制御され、その他の処理(例えばテープ記憶媒体から読み出されたデータの書き込み)のための物理的な記憶領域の割り当ては、プールJOB(図8等参照)によって制御される。
以上、本発明の第2の実施形態によれば、特定のパターンのデータと同一のデータのみを含むページに物理的な記憶領域の割り当てが防止される。このため、物理的な記憶領域を有効に利用することができる。
上記の第1及び第2の実施形態では、特定のパターンのデータの一例として、連続する「0」のみを含むデータを挙げたが、特定のパターンのデータは、いかなるものであってもよい。物理的な記憶領域をより有効に利用するためには、仮想ボリューム201のページに割り当てられない物理的な記憶領域ができるだけ多くなるように、特定のパターンのデータを選択することが望ましい。具体的には、仮想ボリューム201に対する書き込み要求によって書き込まれるデータのうち、最も出現頻度が高いパターンのデータが、特定のパターンのデータとして選択されることが望ましい。
例えば、仮想ボリューム201の全てのページに物理的な記憶領域が割り当てられている場合、その仮想ボリューム201についてプールJOB(図8〜図11)が実行される前に、割り当て管理プログラム113は、その仮想ボリューム201に格納された全データを読み出して、最も出現頻度が高いパターンのデータを特定してもよい。その場合、最も出現頻度が高いパターンのデータが、特定のパターンのデータとして選択される。
割り当て管理プログラム113は、選択された特定のパターンのデータを、その仮想ボリューム201に対応付けられたプールボリューム203の所定のアドレス範囲303に格納する。
あるいは、図13又は図14に示すようにデータがコピーされる場合、コピー元の実ボリューム202を含むストレージシステム100の割り当て管理プログラム113は、コピー元の実ボリューム202の全データを読み出して、最も出現頻度が高いパターンのデータを特定してもよい。その場合、最も出現頻度が高いパターンのデータが、特定のパターンのデータとして選択される。
コピー元の実ボリューム202を含むストレージシステム100のI/O制御プログラム112は、選択された特定のパターンのデータをあらかじめコピー先の仮想ボリューム201を含むストレージシステム100に送信してもよい。送信先のストレージシステム100のI/O制御プログラムは、選択された特定のパターンのデータを、所定のアドレス範囲303に格納する。
このように、最も出現頻度が高いパターンのデータを特定のパターンのデータとして使用することによって、物理的な記憶領域をより有効に利用することができる。
上記のように、本発明の第1の実施形態及び第2の実施形態のいずれも、物理的な記憶領域を有効に利用することを目的としている。そのために、第1の実施形態では、特定のパターンのデータのみが格納されたページに物理的な記憶領域が一旦割り当てられた後、その割り当てが解除される。一方、第2の実施形態では、特定のパターンのデータのみが格納されたページに初めから物理的な記憶領域が割り当てられないように、データの書き込み処理又はデータの送信処理が制御される。このように、第1の実施形態の技術上の意義と、第2の実施形態のそれとは共通する。
本発明の第1の実施形態の計算機システムの構成を示すブロック図である。 本発明の第1の実施形態のストレージシステムによって管理される論理ボリュームの説明図である。 本発明の第1の実施形態における仮想ボリュームへの物理的な記憶領域の割り当ての説明図である。 本発明の第1の実施形態の割り当て管理テーブルの説明図である。 本発明の第1の実施形態のペア管理テーブルの説明図である。 本発明の第1の実施形態において実行されるデータ書き込み処理を示すフローチャートである。 本発明の第1の実施形態において実行されるデータ読み出し処理を示すフローチャートである。 本発明の第1の実施形態において実行されるプールJOBを示すフローチャートである。 本発明の第1の実施形態において実行されるページ破棄判定処理を示すフローチャートである。 本発明の第1の実施形態において実行されるデータの比較の説明図である。 本発明の第1の実施形態において実行されるページ破棄処理を示すフローチャートである。 本発明の第2の実施形態において実行されるデータ書き込み処理を示すフローチャートである。 本発明の第2の実施形態において実行される論理ボリューム間のデータコピーの第1の例を示すフローチャートである。 本発明の第2の実施形態において実行される論理ボリューム間のデータコピーの第2の例を示すフローチャートである。
符号の説明
100A、100B ストレージシステム
101 コントローラ
110A〜110C ディスクドライブ
111A、111B 論理ボリューム
112 I/O制御プログラム
113 割り当て管理プログラム
114 割り当て管理テーブル
115 ペア管理テーブル
120 テープライブラリ
130 ホスト計算機
140 ネットワーク
201A〜201D 仮想ボリューム
202A、202B 実ボリューム
203A〜203D プールボリューム
204A、204B プール
301A〜301C ページ

Claims (10)

  1. ホスト計算機によって書き込まれたデータを格納するストレージシステムであって、
    前記ストレージシステムは、複数の物理記憶領域を含む記憶媒体と、前記記憶媒体への前記データの書き込み及び前記記憶媒体からの前記データの読み出しを制御するコントローラと、を備え、
    前記コントローラは、第1論理ボリュームを前記ホスト計算機に認識させ、
    前記第1論理ボリュームの記憶領域空間は、複数のアドレス範囲を含み、
    前記コントローラは、
    前記各アドレス範囲への前記各物理記憶領域の割り当てを管理する情報を保持し、
    前記第1論理ボリュームのいずれかの前記アドレス範囲に対するデータ書き込み要求を受信すると、前記受信したデータ書き込み要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記指定されたアドレス範囲に、いずれの前記アドレス範囲にもまだ割り当てられていない前記物理記憶領域を割り当て、
    前記指定されたアドレス範囲に割り当てられた物理記憶領域に、前記データ書き込み要求によって書き込みを要求されたデータを書き込み、
    所定の条件が満たされた場合、前記第1論理ボリュームの前記アドレス範囲に割り当てられた前記物理記憶領域からデータを読み出し、
    前記読み出されたデータが所定のパターンのデータのみを含むか否かを判定し、
    前記読み出されたデータが前記所定のパターンのデータのみを含む場合、前記アドレス範囲への前記物理記憶領域の割り当てを解除し、
    前記第1論理ボリュームのいずれかの前記アドレス範囲に対するデータ読み出し要求を受信すると、前記データ読み出し要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられている場合、前記指定されたアドレス範囲に割り当てられた物理記憶領域からデータを読み出して、前記読み出されたデータを前記データ読み出し要求の送信元に送信し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記所定のパターンのデータを前記データ読み出し要求の送信元に送信することを特徴とするストレージシステム。
  2. 前記コントローラは、前記複数の物理記憶領域のうち、前記第1論理ボリュームの前記アドレス範囲に割り当てられた物理記憶領域の量が所定の閾値を超えた場合、前記所定の条件が満たされたと判定することを特徴とする請求項1に記載のストレージシステム。
  3. 前記コントローラは、さらに、第2論理ボリュームを前記ホスト計算機に認識させ、
    前記第2論理ボリュームの全ての記憶領域空間に、前記物理記憶領域が割り当てられ、
    前記コントローラは、前記第2論理ボリュームから読み出されたデータの前記第1論理ボリュームへの書き込みが実行された場合、前記所定の条件が満たされたと判定することを特徴とする請求項1に記載のストレージシステム。
  4. 前記ストレージシステムには、他のストレージシステムが接続され、
    前記コントローラは、前記他のストレージシステムから読み出されたデータの前記第1論理ボリュームへの書き込みが実行された場合、前記所定の条件が満たされたと判定することを特徴とする請求項1に記載のストレージシステム。
  5. 前記ストレージシステムには、磁気テープ記憶装置が接続され、
    前記磁気テープ記憶装置には、データを格納する一つ以上の磁気テープ記憶媒体を備え、
    前記コントローラは、前記磁気テープ記憶媒体に格納されたデータの前記第1論理ボリュームへのコピーが実行された場合、前記所定の条件が満たされたと判定することを特徴とする請求項1に記載のストレージシステム。
  6. 前記ストレージシステムには、他のストレージシステムが接続され、
    前記コントローラは、
    前記物理記憶領域に格納されたデータを前記他のストレージシステムにコピーする要求を受信すると、前記物理記憶領域に格納されたデータを読み出し、
    前記読み出されたデータが前記所定のパターンのデータのみを含むか否かを判定し、
    前記読み出されたデータが前記所定のパターンのデータのみを含む場合、前記読み出されたデータを前記他のストレージシステムに送信せず、
    前記読み出されたデータが前記所定のパターン以外のデータを含む場合、前記読み出されたデータを前記他のストレージシステムに送信することを特徴とする請求項1に記載のストレージシステム。
  7. 前記所定のパターンのデータは、0のみを含むデータであることを特徴とする請求項1に記載のストレージシステム。
  8. 前記所定のパターンのデータは、前記第1論理ボリュームの前記アドレス範囲に割り当てられた全ての前記物理記憶領域に格納されたデータのうち、最も出現頻度の高いデータと同一のパターンのデータであることを特徴とする請求項1に記載のストレージシステム。
  9. ホスト計算機によって書き込まれたデータを格納するストレージシステムであって、
    前記ストレージシステムは、複数の物理記憶領域を含む記憶媒体と、前記記憶媒体への前記データの書き込み及び前記記憶媒体からの前記データの読み出しを制御するコントローラと、を備え、
    前記コントローラは、論理ボリュームを前記ホスト計算機に認識させ、
    前記論理ボリュームの記憶領域空間は、複数のアドレス範囲を含み、
    前記コントローラは、
    前記アドレス範囲への前記物理記憶領域の割り当てを管理する情報を保持し、
    いずれかの前記アドレス範囲に対するデータ書き込み要求を受信すると、前記受信したデータ書き込み要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記データ書き込み要求によって書き込みを要求されたデータが所定のパターンのデータのみを含むか否かを判定し、
    前記書き込みを要求されたデータが前記所定のパターンのデータのみを含む場合、前記指定されたアドレス範囲に前記物理記憶領域を割り当てず、
    前記データ書き込み要求によって書き込みを要求されたデータが前記所定のパターン以外のデータを含む場合、前記指定されたアドレス範囲に、いずれの前記アドレス範囲にもまだ割り当てられていない前記物理記憶領域を割り当て、
    前記指定されたアドレス範囲に割り当てられた物理記憶領域に、前記書き込みを要求されたデータを書き込み、
    いずれかの前記アドレス範囲に対するデータ読み出し要求を受信すると、前記データ読み出し要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられている場合、前記指定されたアドレス範囲に割り当てられた物理記憶領域からデータを読み出して、前記読み出されたデータを前記データ読み出し要求の送信元に送信し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記所定のパターンのデータを前記データ読み出し要求の送信元に送信することを特徴とするストレージシステム。
  10. ホスト計算機によって書き込まれたデータを格納するストレージシステムであって、
    前記ストレージシステムは、
    複数の物理記憶領域を含む記憶媒体と、前記記憶媒体への前記データの書き込み及び前記記憶媒体からの前記データの読み出しを制御するコントローラと、を備え、
    他のストレージシステム及び磁気テープ記憶装置に接続され、
    前記コントローラは、第1論理ボリューム及び第2論理ボリュームを前記ホスト計算機に認識させ、
    前記第1論理ボリュームの記憶領域空間は、複数のアドレス範囲を含み、
    前記第2論理ボリュームの全ての記憶領域空間に、前記物理記憶領域が割り当てられ、
    前記コントローラは、
    前記各アドレス範囲への前記各物理記憶領域の割り当てを管理する情報を保持し、
    前記第1論理ボリュームのいずれかの前記アドレス範囲に対するデータ書き込み要求を受信すると、前記受信したデータ書き込み要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記指定されたアドレス範囲に、いずれの前記アドレス範囲にもまだ割り当てられていない前記物理記憶領域を割り当て、
    前記指定されたアドレス範囲に割り当てられた物理記憶領域に、前記データ書き込み要求によって書き込みを要求されたデータを書き込み、
    前記複数の物理記憶領域のうち、前記第1論理ボリュームの前記アドレス範囲に割り当てられた物理記憶領域の量が所定の閾値を超えたか、前記第2論理ボリュームから読み出されたデータの前記第1論理ボリュームへの書き込みが実行されたか、前記他のストレージシステムから読み出されたデータの前記第1論理ボリュームへの書き込みが実行されたか、又は、前記磁気テープ記憶装置に格納されたデータの前記第1論理ボリュームへのコピーが実行された場合、前記第1論理ボリュームの前記アドレス範囲に割り当てられた前記物理記憶領域からデータを読み出し、
    前記読み出されたデータが所定のパターンのデータのみを含むか否かを判定し、
    前記読み出されたデータが前記所定のパターンのデータのみを含む場合、前記アドレス範囲への前記物理記憶領域の割り当てを解除し、
    前記第1論理ボリュームのいずれかの前記アドレス範囲に対するデータ読み出し要求を受信すると、前記データ読み出し要求によって指定されたアドレス範囲に前記物理記憶領域が割り当てられているか否かを判定し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられている場合、前記指定されたアドレス範囲に割り当てられた物理記憶領域からデータを読み出して、前記読み出されたデータを前記データ読み出し要求の送信元に送信し、
    前記指定されたアドレス範囲に前記物理記憶領域が割り当てられていない場合、前記所定のパターンのデータを前記データ読み出し要求の送信元に送信し、
    前記物理記憶領域に格納されたデータを前記他のストレージシステムにコピーする要求を受信すると、前記物理記憶領域に格納されたデータを読み出し、
    前記読み出されたデータが前記所定のパターンのデータのみを含むか否かを判定し、
    前記読み出されたデータが前記所定のパターンのデータのみを含む場合、前記読み出されたデータを前記他のストレージシステムに送信せず、
    前記読み出されたデータが前記所定のパターン以外のデータを含む場合、前記読み出されたデータを前記他のストレージシステムに送信し、
    前記所定のパターンのデータは、0のみを含むデータであることを特徴とするストレージシステム。
JP2008256314A 2008-10-01 2008-10-01 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム Active JP4762289B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008256314A JP4762289B2 (ja) 2008-10-01 2008-10-01 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム
US12/292,604 US8793461B2 (en) 2008-10-01 2008-11-21 Storage system for controlling assignment of storage area to virtual volume storing specific pattern data
US13/238,870 US9047016B2 (en) 2008-10-01 2011-09-21 Storage system for controlling assignment of storage area to virtual volume storing specific pattern data
US14/703,263 US20150234748A1 (en) 2008-10-01 2015-05-04 Storage system for controlling assignment of storage area to virtual volume storing specific pattern data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008256314A JP4762289B2 (ja) 2008-10-01 2008-10-01 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム

Publications (2)

Publication Number Publication Date
JP2010086394A true JP2010086394A (ja) 2010-04-15
JP4762289B2 JP4762289B2 (ja) 2011-08-31

Family

ID=42058817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008256314A Active JP4762289B2 (ja) 2008-10-01 2008-10-01 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム

Country Status (2)

Country Link
US (3) US8793461B2 (ja)
JP (1) JP4762289B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2372005A1 (en) 2010-04-02 2011-10-05 Chisso Corporation Processing apparatus for hot-air treatment of fiber constituting nonwoven fabric to produce nonwoven fabric, and processing process for the same
WO2013072968A1 (en) 2011-11-18 2013-05-23 Hitachi, Ltd. Storage system and management method therefor
JP2014194664A (ja) * 2013-03-28 2014-10-09 Fujitsu Ltd ストレージ装置、割当解放制御方法及び割当解放制御プログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015430B2 (en) * 2010-03-02 2015-04-21 Symantec Corporation Copy on write storage conservation systems and methods
US8713266B2 (en) * 2010-04-15 2014-04-29 Hitachi, Ltd. Storage apparatus and method including page discard processing for primary and secondary volumes configured as a copy pair
US9152573B2 (en) * 2010-11-16 2015-10-06 Vmware, Inc. Sharing memory pages having regular expressions within a virtual machine
WO2013153581A1 (en) 2012-04-13 2013-10-17 Hitachi, Ltd. Storage apparatus and data management method
US9165406B1 (en) 2012-09-21 2015-10-20 A9.Com, Inc. Providing overlays based on text in a live camera view
US9047326B2 (en) 2012-10-12 2015-06-02 A9.Com, Inc. Index configuration for searchable data in network
EP2907034A4 (en) * 2012-10-12 2016-05-18 A9 Com Inc INDEX CONFIGURATION FOR SEARCHABLE DATA IN A NETWORK
US9507750B2 (en) 2012-10-12 2016-11-29 A9.Com, Inc. Dynamic search partitioning
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102760A (ja) * 2005-10-03 2007-04-19 Hitachi Ltd ストレージエリアネットワークにおけるボリュームの自動割り当て
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2007199922A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd 記憶システム及びそのデータ復元方法
JP2008146574A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623693A (en) * 1994-02-17 1997-04-22 International Business Machines Corporation System for performing action by sorting actions into immediate and deferred queues, processing immediate queue while still sorting, and appending deferred queue to immediate after sorting
US6092168A (en) * 1996-10-25 2000-07-18 Hewlett-Packard Co. Data storage system and method for deallocating space by writing and detecting a predefined data pattern
US6070174A (en) * 1997-09-30 2000-05-30 Infraworks Corporation Method and apparatus for real-time secure file deletion
US5953729A (en) 1997-12-23 1999-09-14 Microsoft Corporation Using sparse file technology to stage data that will then be stored in remote storage
US6745305B2 (en) 2000-12-13 2004-06-01 Ncr Corporation Zeroed block optimization in disk mirroring applications
CA2446584A1 (en) * 2001-05-09 2002-11-14 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
US7032093B1 (en) * 2002-08-08 2006-04-18 3Pardata, Inc. On-demand allocation of physical storage for virtual volumes using a zero logical disk
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7024526B2 (en) * 2002-10-31 2006-04-04 Hitachi, Ltd. Apparatus and method of null data skip remote copy
US6823442B1 (en) 2003-05-12 2004-11-23 3Pardata, Inc. Method of managing virtual volumes in a utility storage server system
US20050091215A1 (en) * 2003-09-29 2005-04-28 Chandra Tushar D. Technique for provisioning storage for servers in an on-demand environment
JP4646526B2 (ja) 2004-02-18 2011-03-09 株式会社日立製作所 記憶制御システム及び同システムの制御方法
US7231504B2 (en) * 2004-05-13 2007-06-12 International Business Machines Corporation Dynamic memory management of unallocated memory in a logical partitioned data processing system
US7225314B1 (en) 2004-05-26 2007-05-29 Sun Microsystems, Inc. Automatic conversion of all-zero data storage blocks into file holes
CN1977331A (zh) * 2004-06-30 2007-06-06 皇家飞利浦电子股份有限公司 用于存储介质的缺陷管理
US7441096B2 (en) * 2004-07-07 2008-10-21 Hitachi, Ltd. Hierarchical storage management system
JP4340616B2 (ja) 2004-10-04 2009-10-07 富士通株式会社 ディスクアレイ装置
US7603532B2 (en) 2004-10-15 2009-10-13 Netapp, Inc. System and method for reclaiming unused space from a thinly provisioned data container
US7584341B2 (en) * 2005-11-15 2009-09-01 Sanrad, Ltd. Method for defragmenting of virtual volumes in a storage area network (SAN)
JP4749140B2 (ja) * 2005-12-05 2011-08-17 株式会社日立製作所 データマイグレーション方法及びシステム
US20070150690A1 (en) * 2005-12-23 2007-06-28 International Business Machines Corporation Method and apparatus for increasing virtual storage capacity in on-demand storage systems
JP5037881B2 (ja) * 2006-04-18 2012-10-03 株式会社日立製作所 ストレージシステム及びその制御方法
US7822921B2 (en) 2006-10-31 2010-10-26 Netapp, Inc. System and method for optimizing write operations in storage systems
GB0623255D0 (en) 2006-11-22 2007-01-03 Ibm Apparatus and method for resource reclamation in data storage
JP4331220B2 (ja) * 2007-03-07 2009-09-16 株式会社東芝 未使用物理領域自律管理機能を持つストレージ装置
US8738588B2 (en) 2007-03-26 2014-05-27 International Business Machines Corporation Sequential media reclamation and replication
US20080282047A1 (en) 2007-05-08 2008-11-13 Hitachi, Ltd. Methods and apparatus to backup and restore data for virtualized storage area
US8566502B2 (en) 2008-05-29 2013-10-22 Vmware, Inc. Offloading storage operations to storage hardware using a switch
US7949637B1 (en) 2007-06-27 2011-05-24 Emc Corporation Storage management for fine grained tiered storage with thin provisioning
US7822939B1 (en) 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US7934072B2 (en) 2007-09-28 2011-04-26 Lenovo (Singapore) Pte. Ltd. Solid state storage reclamation apparatus and method
US20100011368A1 (en) * 2008-07-09 2010-01-14 Hiroshi Arakawa Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102760A (ja) * 2005-10-03 2007-04-19 Hitachi Ltd ストレージエリアネットワークにおけるボリュームの自動割り当て
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2007199922A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd 記憶システム及びそのデータ復元方法
JP2008146574A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2372005A1 (en) 2010-04-02 2011-10-05 Chisso Corporation Processing apparatus for hot-air treatment of fiber constituting nonwoven fabric to produce nonwoven fabric, and processing process for the same
WO2013072968A1 (en) 2011-11-18 2013-05-23 Hitachi, Ltd. Storage system and management method therefor
US9128819B2 (en) 2011-11-18 2015-09-08 Hitachi, Ltd. Storage system and management method therefor
JP2014194664A (ja) * 2013-03-28 2014-10-09 Fujitsu Ltd ストレージ装置、割当解放制御方法及び割当解放制御プログラム

Also Published As

Publication number Publication date
US20100082896A1 (en) 2010-04-01
JP4762289B2 (ja) 2011-08-31
US20120011311A1 (en) 2012-01-12
US20150234748A1 (en) 2015-08-20
US8793461B2 (en) 2014-07-29
US9047016B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
JP4762289B2 (ja) 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム
US8375167B2 (en) Storage system, control apparatus and method of controlling control apparatus
JP6114397B2 (ja) 複合型ストレージシステム及び記憶制御方法
JP4890033B2 (ja) 記憶装置システム及び記憶制御方法
JP5437373B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
US7895394B2 (en) Storage system
US8316203B2 (en) Storage system and method implementing online volume and snapshot with performance/failure independence and high capacity efficiency
WO2017022002A1 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
JP4818395B2 (ja) ストレージ装置及びデータコピー方法
JP5250869B2 (ja) ストレージシステム、論理記憶領域割り当て方法及び計算機システム
JP5315348B2 (ja) シン・プロビジョニングの移行および取り消しのための方法および装置
JP4884041B2 (ja) 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP5075699B2 (ja) ストレージ容量拡張方法及びその方法を使用するストレージシステム
US8332601B2 (en) Storage controller having virtual volume
JP4893716B2 (ja) バックアップ装置、バックアップ方法およびバックアッププログラム
US20110238915A1 (en) Storage system
US8732422B2 (en) Storage apparatus and its control method
US20100223442A1 (en) Computer system and data erasing method
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP2020027433A (ja) 情報システム
JP6138318B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5945040B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
WO2014115184A1 (en) Storage system and control method for storage system
JP6657990B2 (ja) ストレージ装置、仮想ボリューム制御システム、仮想ボリューム制御方法および仮想ボリューム制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4762289

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150