[go: up one dir, main page]

JP2013161148A - 仮想ストレージ装置,制御装置及び制御プログラム - Google Patents

仮想ストレージ装置,制御装置及び制御プログラム Download PDF

Info

Publication number
JP2013161148A
JP2013161148A JP2012020587A JP2012020587A JP2013161148A JP 2013161148 A JP2013161148 A JP 2013161148A JP 2012020587 A JP2012020587 A JP 2012020587A JP 2012020587 A JP2012020587 A JP 2012020587A JP 2013161148 A JP2013161148 A JP 2013161148A
Authority
JP
Japan
Prior art keywords
area
management unit
releasable
data
management
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
JP2012020587A
Other languages
English (en)
Other versions
JP5853734B2 (ja
Inventor
Motohiro Sakai
基裕 酒井
Akito Kobayashi
明人 小林
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 JP2012020587A priority Critical patent/JP5853734B2/ja
Priority to US13/687,615 priority patent/US8966214B2/en
Priority to EP12197467.9A priority patent/EP2624136A3/en
Publication of JP2013161148A publication Critical patent/JP2013161148A/ja
Application granted granted Critical
Publication of JP5853734B2 publication Critical patent/JP5853734B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ストレージ領域を効率的に使用できるようにする。
【解決手段】仮想論理ボリュームを構成する管理単位領域毎に、管理単位領域に対する物理領域の割り当て状態を示す割当情報と、管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報171を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定する解放可能領域判定部11と、解放可能領域として判定された管理単位領域に対して、管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断する判断部12と、オールゼロ領域であると判断された管理単位領域に対する物理領域の割り当てを解放する解放処理部13とをそなえる。
【選択図】図1

Description

本件は、仮想ストレージ装置,制御装置及び制御プログラムに関する。
一般に、ストレージ装置の信頼性を高めるために、RAID(Redundant Array of Independent Disks)技術が普及している。特に、近年では、記憶領域や管理費用を削減するために、RAID技術にシンプロビジョニング機能を加えたストレージ装置が採用されている。
シンプロビジョニング機能とは、ストレージシステムにおいて、物理ボリューム容量以上の容量をサーバに見せる技術であって、サーバ等の上位装置から見えるボリューム容量を仮想化する機能である。
一般に、ストレージの容量を増設しようとした場合に、ストレージ装置に新規に作成したLUN(Logical Unit Number)を上位装置側で認識させようとすると、上位装置側ではOS(Operating System)の再起動、すなわちサービスの停止が必要となる。しかし、シンプロビジョニング機能を用いた場合、初めからLUNのサイズを実際より大きくOSに見せかけることが可能である。これにより、LUNの使用率が上がってきた時点でストレージ装置内に物理ディスクを無停止で増設することで、OS側に影響を与えることなく物理ディスク容量の増設が可能である。このように、シンプロビジョニング機能によれば、拡張性に優れるという利点がある。
また、シンプロビジョニング機能を利用しない旧来のLUNでは、LUNを作成する場合に、LUNサイズに必要な物理ディスクを導入時にあらかじめ準備しておく必要があった。しかし、シンプロビジョニング機能では、導入時は必要最小限の物理ディスクのみで運用し、LUNの使用率が上がってきたところで物理ディスクを増設するといった対応を取ることで、低コストでの運用が可能となる。又、物理ディスクの使用効率を向上させることもできる。
このように、シンプロビジョニング機能は、例えば、クラウドストレージの実現において課題とされる、予測不能なストレージ拡張要求(拡張性)に対して、サービスを停止せずに安価に対応できる機能として活用されている。
以下に、シンプロビジョニング機能の動作を説明する。以下、シンプロビジョニング機能により仮想化したLUNを、TPV(シンプロビジョニングボリューム)と表現する。
TPVに対して、上位装置からI/O(Input/Output)要求が来た場合のストレージ装置の動作は次のようになる。
先ず、上位装置からリード要求が来た場合に、物理ディスク領域が割り当てられていない領域に対するI/Oであれば、ストレージ装置は、上位装置に対して、未使用部分を示すALL 0データを応答する。一方、物理ディスク領域が割り当てられている領域に対するI/Oであれば、ストレージ装置は、その物理ディスク領域上のデータを読み込み、上位装置に転送する。
次に、TPVに対し、上位装置からデータのライトが行なわれた場合には、ストレージ装置は、上位装置からライトされた量に応じて必要な物理ディスク領域をTPVに一定の管理単位ごとに割り当て、その後、物理ディスクにデータを書き込む。
特開2011−159241号公報 特開2011−13800号公報
しかしながら、ストレージシステムにおいては、上位装置のOSから初期化を行なう際やバックアップデータのリストアを行なう際に、物理ディスク領域に未使用部分を示すデータとしてALL0データが書き込まれることがある。
このように、TPVに対して上位装置からALL0データが書き込まれた場合には、このALL0が書き込まれた領域に実際にデータが書き込まれていないにもかかわらず、物理ディスク領域が割り当てられてしまう。すなわち、ディス領域を効率的に使用することができないという課題がある。又、これにより、物理ディスクの使用効率を向上させ、低コストでの運用を実現するというシンプロビジョニング機能の効果を有効に発揮できない。
本件の目的の一つは、ストレージ領域を効率的に使用できるようにすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、この仮想ストレージ装置は、上位装置に対して仮想論理ボリュームを提供する仮想ストレージ装置であって、前記仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定する解放可能領域判定部と、前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断する判断部と、前記判断部によりオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する解放処理部とをそなえる。
また、この制御装置は、仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定する解放可能領域判定部と、前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断する判断部と、前記判断部によりオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する解放処理部とをそなえる。
さらに、この制御プログラムは、仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定し、解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断し、オールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する、処理をコンピュータに実行させる。
開示の技術によれば、オールゼロ領域の解放処理の高速化することができる。
実施形態の一例としての仮想ストレージ装置の機能構成を示す図である。 実施形態の一例としての仮想ストレージ装置のハードウェア構成を模式的に示す図である。 (a),(b)は実施形態の一例としての仮想ストレージ装置におけるチャンク管理テーブルを説明する図である。 実施形態の一例としての本仮想ストレージ装置におけるデータライト時の処理を説明するためのフローチャートである。 実施形態の一例としての仮想ストレージ装置における解放可能領域判定部による解放可能領域の判定処理を説明するためのフローチャートである。 実施形態の一例としての仮想ストレージ装置における、割当解放処理指示の受信に伴う割当解放処理を説明するためのフローチャートである。
以下、図面を参照して本仮想ストレージ装置、制御装置及び制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
図1は実施形態の一例としての仮想ストレージ装置の機能構成を示す図、図2はそのハードウェア構成を模式的に示す図である。
本仮想ストレージ装置1は、図2に示すディスクエキスパンダ(DE:Disk Expander)30−1〜30−4に格納された図示しない記憶装置(実ストレージ環境)を仮想化して、仮想ストレージ環境を形成する。そして仮想ストレージ装置1は、仮想ボリュームを上位装置であるホストコンピュータ2に提供する。
本仮想ストレージ装置1は、図2に示すように、1以上(図1に示す例では1つ)のホスト装置2に対して通信可能に接続されている。ホスト装置2と仮想ストレージ装置1とは、例えばiSCSIにより接続されている。
ホストコンピュータ2は、例えば、サーバ機能をそなえた情報処理装置であり、仮想ストレージ装置1との間において、SCSIコマンドやレスポンス等の各種データをTCP/IPを用いて送受信する。このホスト装置2は、ストレージ装置10に対してリード/ライト等のディスクアクセスコマンドを送信することにより、仮想ストレージ装置1が提供する仮想ボリュームにデータの書き込みや読み出しを行なう。
そして、本仮想ストレージ装置1は、ホストコンピュータ2から仮想ボリュームに対して行なわれる入出力要求(例えば、リードコマンドやライトコマンド)に応じて、この仮想ボリュームに対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。なお、ホストコンピュータ2からの入出力要求のことをI/Oコマンドという場合がある。
本仮想ストレージ装置1は、図2に示すように、複数(本実施形態では2つ)のCM(Control Module)100a,100b及び複数のデバイスエンクロージャ30−1,30−2,30−3,30−4をそなえる。
デバイスエンクロージャ30−1〜30−4は、それぞれ1以上の記憶装置(物理ディスク;図示省略)を搭載可能であり、これらの記憶装置の記憶領域(実ボリューム)を、本仮想ストレージ装置1に対して提供する。例えば、各デバイスエンクロージャ30−1〜30−4は、それぞれ10段のスロットをそなえ、これらのスロットに、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置を挿入することにより、実ボリューム容量を随時変更することができる。本仮想ストレージ装置1においては、複数の記憶装置をアレイ状に配列することにより、RAIDが形成されている。
なお、記憶装置としては、種々の記憶装置を用いることができるが、本実施形態においては、これらの記憶装置として、SAS(Serial Attached SCSI)の規格に基づいて接続されたSASディスクを用いた例について説明する。
各デバイスエンクロージャ30−1〜30−4は、それぞれCM100aのエキスパンダ(EXP)102,102とCM100bのエキスパンダ102,102と接続されている。そして、これらの各デバイスエンクロージャ30−1〜30−4には、CM100a,100bのいずれからもアクセスして、データの書き込みや読み出しを行なうことができる。すなわち、これらの各デバイスエンクロージャ30−1〜30−4の記憶装置に対して、CM100a,100bのそれぞれを接続することにより、記憶装置へのアクセス経路が二重化されている。
なお、以下、便宜上、本仮想ストレージ装置1において、I/Oコマンドの送信元であるホストコンピュータ側を上流側といい、ディスクアクセスコマンドに基づいて作成されるディスクアクセスコマンドの送信先側を下流側という。
デバイスエンクロージャ30−1〜10−4は、上述したCM100a,100bの下流側に配設され、これらのCM100a,100bのエキスパンダ102,102にSASワイドリンク等のデータパスを介して接続されている。
デバイスエンクロージャ30−1〜10−4は、互いにほぼ同様の構成を有している。以下、デバイスエンクロージャを示す符号としては、複数のデバイスエンクロージャのうち1つを特定する必要があるときには符号30−1〜30−4を用いるが、任意のデバイスエンクロージャを指すときには符号30を用いる。
CM100a,100bは、仮想ストレージ装置1内の動作を制御するコントローラ(制御装置)であり、ホストコンピュータから送信されるI/Oコマンドに従って、デバイスエンクロージャ30の記憶装置へのアクセス制御等、各種制御を行なう。又、CM100a,100bは互いにほぼ同様の構成を有している。以下、CMを示す符号としては、複数のCMのうち1つを特定する必要があるときには符号100a,100bを用いるが、任意のCMを指すときには符号100を用いる。
また、図中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
CM100a,100bはCA101を介して、それぞれネットワーク50に接続される。そして、これらのCM100a,100bは、ホストコンピュータ2から送信されるリード/ライト等のコマンドを受信し、エキスパンダ30等を介して記憶装置の制御を行なう。又、CM100a,100bは、PCIeインタフェース104を介して相互に接続されている。
CM100は、図2に示すように、複数(図2に示す例では2つ)のCA(Channel Adapter)101,101と、複数(図2に示す例では2つ)のエキスパンダ(EXP)102,102とをそなえるとともに、CPU(Central Processing Unit)110,ROM103,PCIeインタフェース104及びRAM105をそなえる。
CA101は、ホストコンピュータ2等と通信可能に接続するインタフェースコントローラ(通信アダプタ)である。CM100は、このCA101によりホストコンピュータ2等と通信ケーブル50を介して接続され、I/Oコマンドの受信やデータの送受信等を行なう。図2に示す例においては、CM100a,100bのそれぞれに2つのCA101,101がそなえられている。
CA101は、ホストコンピュータ2等から送信されたデータを受信したり、CM100から出力するデータをホストコンピュータ2等に送信する。すなわち、CA101は、ホストコンピュータ2等の外部装置との間でのデータの入出力(I/O)を制御する。
また、CA101は、CRC(Cyclic Redundancy Check:巡回冗長検査)機能をそなえる。CA101は、ホストコンピュータ2から1LBA(Logical Block Address)単位で受信するライトデータに対してCRCコードを算出(生成)し、その生成したCRCコードをデータに付加する。すなわち、CA101は、ホストコンピュータから受信するライトデータに対して巡回冗長検査を行なう検査部として機能する。
なお、このCA101によるCRCコードの生成方法は既知の種々の手法で実現することができ、その詳細な説明は省略する。又、CRCとしては、例えば、CRC−16やCRC−32等、既知の種々の技術を用いることができ、使用する多項式等に限定されるものではない。
PCIeインタフェース104は、他のCM100との通信を実現するインタフェースであり、PCI Expressの規格に則って他のCM100との間でデータ等の送受信を実現する。
エキスパンダ102は、ドライブエンクロージャ30や記憶装置等と通信可能に接続するためのインタフェースであり、デバイスアダプタ等をそなえる。エキスパンダ102には、デバイスエンクロージャ30の記憶装置が接続され、ホストコンピュータから受信したI/Oコマンドに基づき、これらの記憶装置に対するアクセス制御を行なう。
CM100は、このエキスパンダ102を介して、記憶装置に対するデータの書き込みや読み出しを行なう。又、図2に示す例においては、CM100a,100bのそれぞれに2つのエキスパンダ102,102がそなえられている。そして、CM100a,100bのそれぞれにおいて、一方のエキスパンダ102にはデバイスエンクロージャ30−1,30−2が、又、他方のエキスパンダ102にはデバイスエンクロージャ30−3,30−4がそれぞれ接続されている。
これにより、各デバイスエンクロージャ30の記憶装置には、CM100a,100bのいずれからもデータの書き込みや読み出しを行なうことができる。
ROM103は、CPU110が実行するプログラムや種々のデータを格納する記憶装置である。
RAM105は、種々のデータやプログラムを一時的に格納する記憶装置であり、メモリ領域(Memory)106及びキャッシュ領域(Cache)107をそなえる。キャッシュ領域107は、ホストコンピュータ2から受信したデータや、ホストコンピュータ2に対して送信するデータを一時的に格納する。メモリ領域106には、CPU110がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。又、このメモリ領域106には、後述するボリューム制御部10によって用いられるチャンク管理テーブル171(チャンク管理テーブル群17)が格納される(図1参照)。
CPU110は、種々の制御や演算を行なう処理装置であり、ROM103に格納されたプログラムを実行することにより、種々の機能を実現する。例えば、CPU110は、RAIDの実現やホストコンピュータ2からのホストI/Oに応じた記憶装置へのアクセス制御等、既知のディスクRAIDコントローラとしての種々の機能を実現する。更に、CPU110は、図1に示すように、排他制御部20,キャッシュ制御部22,コピー制御部23,ディスク制御部24及びボリューム制御部10として機能する。
排他制御部20は、CA101を介して複数のホストコンピュータ2が接続されている場合において、これらの複数のホストコンピュータ2からデバイスエンクロージャ30の記憶装置に対するライト処理についての排他制御を行なう。
ディスク制御部24は、デバイスエンクロージャ30の記憶装置に対するデータの書き込み及び読み出しを制御する。すなわち、キャッシュ領域107のデータを記憶装置に書き込んだり、又、記憶装置から読み出したデータをキャッシュ領域107に格納する。
コピー制御部23は、論理ボリューム間でのデータのコピーを制御する。コピー制御部23は、ボリューム間でのコピー処理を、所定サイズのブロック単位(例えば、512〜2048バイト)で行なう。
キャッシュ制御部22は、RAM105のキャッシュ領域107へのデータの書き込み及び読み出しを制御する。すなわち、キャッシュ制御部22は、記憶装置から読み出したデータやホストコンピュータ2から受信したデータをキャッシュ領域107に書き込んだり、又、キャッシュ領域107に格納されたデータを読み出す。
ボリューム制御部10は、ホストコンピュータ2に対してシンプロビジョニング型の仮想ボリュームを提供する。
ボリューム制御部10は、本仮想ストレージ装置1にそなえられる記憶装置(物理ディスク)をストレージプールとして管理する。すなわち、物理ディスクの記憶領域(物理領域)は共有のディスクプールとして管理され、仮想ボリュームに書き込まれたデータ量に応じて割り当てられる。これにより、使用されない物理ディスクの無駄をなくし、効率的な運用が可能となる。
ボリューム制御部10は、ホストコンピュータ2から仮想ボリュームに対する新規データの書き込み要求を検出すると、この新規データを仮想ボリューム内の仮想領域に対応付ける。仮想ボリュームは、ホストコンピュータ2からのアクセス対象となる仮想的な記憶部であり、シンプロビジョニング型のボリュームである。以下、シンプロビジョニング機能により仮想化した論理ボリュームをシンプロビジョニングボリューム(TPV)という場合がある。なお、仮想ボリュームは、ホストコンピュータ2に対して1つであっても良いし、2つ以上であっても良い。
ボリューム制御部10は、ホストコンピュータ2に対しては、そのホストコンピュータ2からの要求通りのサイズで論理(仮想)ボリュームを提供する。一方、ボリューム制御部10は、仮想ボリュームにアサインした容量を、初期はストレージ内部でアロケートせずに、ホストコンピュータ2からの書き込み要求に応じて、プールボリュームから「チャンク」と呼ばれる所定の論理ブロックサイズの固まり単位で、仮想ボリュームへアロケートする。一般にチャンクのサイズ(論理ブロックサイズ)は数百KBから数百MBの間で設定される。本実施形態においては、チャンクのサイズは、例えば、32Mbyteである。
シンプロビジョニング機能においては、上述のごとく、LUNをある論理ブロックサイズ(チャンク)ごとに分割し、各チャンクに物理領域を割り当てて管理している。シンプロビジョニング機能によりLUNを作成した直後(初期状態)は、どのチャンクにも物理領域は割り当てられていない。ホストコンピュータ2からライト要求が来たときは、そのライト範囲に含まれるチャンクに対して、ストレージプールのプール領域から物理領域を割り当て、その物理領域にデータを書き込む。
これにより、ホストコンピュータ2が書き込みを行なった容量のみ記憶装置内部の容量を消費することになり、無駄なストレージ容量を削減することが可能となる。
なお、ボリューム制御部10によるホストコンピュータ2に対するシンプロビジョニング機能を用いた仮想ボリュームの提供手法は、既知の種々の手法で実現することができ、その説明は省略する。
ボリューム管理部10は、図1に示すように、解放可能領域判定部11,判断部12,解放処理部13,チャンクテーブル管理部14及び予測情報出力部15としての機能をそなえる。
チャンクテーブル管理部14は、チャンク管理テーブル群17を管理する。すなわち、ボリューム制御部10は、チャンクに対する物理領域の割り当てをチャンク管理テーブル群17を用いて管理する。
図3(a),(b)は実施形態の一例としての仮想ストレージ装置1におけるチャンク管理テーブル群17を説明する図であり、(a)はTPVを模式的に例示する図、(b)は(a)のTPVに対応するチャンク管理テーブルを例示する図である。
チャンク管理テーブル群17は複数のチャンク管理テーブル171の集合体である。チャンク管理テーブル171は、TPVを構成するチャンクの状態を示す情報であり、チャンクを識別する情報(a1〜a12)に対して、割当済みフラグ(割当済)及びCRCゼロフラグ(CRC=0)を対応付けている。
図3(a)に示す例においては、符号a1〜a12で示される12個のチャンクをそなえたTPVを示している。この図3(a)に示すTPVは、チャンクa2,a3,a5〜a7,a9及びa11には物理領域が割り当てられており(物理領域割り当て済み)、チャンクa1,a4,a8,a10及びa12には物理領域が割り当てられていない(物理領域未割り当て)。
図3(b)には、図3(a)のチャンクa1〜a12にそれぞれ対応する、12個のチャンク管理テーブル171をそなえるチャンク管理テーブル群17を示す。
割当済みフラグは、そのチャンクに対して物理領域が割り当てられているか否かを示す。例えば、そのチャンクの少なくとも一部に対して物理領域が割り当てられている場合には“1”が、又、そのチャンクに対して物理領域が割り当てられていない場合には“0”が設定される。
図3(b)に例示する各チャンク管理テーブル171においては、割当済フラグとして、チャンクa2,a3,a5〜a7,a9及びa11に対して“1”が設定されており、又、チャンクa1,a4,a8,a10及びa12に対しては“0”が設定されている。
このように、割当済みフラグは、仮想論理ボリュームを構成するチャンク(管理単位領域)毎に、このチャンクに対する物理領域の割り当て状態を示す割当情報として機能する。
CRCゼロフラグは、そのチャンクに格納されているデータのCRCが0であるか否かを表す。すなわち、そのチャンクに格納されている、ホストコンピュータ2から受信した1LBA単位の各データのCRCの値が全て0の場合に、CRCゼロフラグとして“1”が設定される。具体的には、そのチャンクに格納されている、ホストコンピュータ2から受信した1LBA単位の各データのCRCの値の論理和(OR)の値が0の場合に“1”が設定される。以下、このCRCゼロフラグに“1”を設定することをフラグをオン(ON)にするという場合がある。
一方、そのチャンクに格納されている、ホストコンピュータ2から受信した1LBA単位の各データの少なくともいずれか1つのCRCの値が0でない場合に、CRCゼロフラグとして“0”が設定される。具体的には、そのチャンクに格納されている、ホストコンピュータ2から受信した1LBA単位の各データのCRCの値の論理和(OR)の値が1の場合に“0”が設定される。以下、このCRCゼロフラグに“0”を設定することを、フラグをオフ(OFF)にする、もしくはフラグを落とすという場合がある。
上述したチャンクに格納されている1LBA単位の各データのCRCの値は、前述したCA101によって当該データに付加される。
図3(b)に例示する各チャンク管理テーブル171においては、CRCゼロフラグとして、チャンクa3,a6,a7及びa11に対して“1”が設定されており、又、チャンクa2,a5及びa9に対して“0”が設定されている。
このように、CRCゼロフラグは、仮想論理ボリュームを構成するチャンク(管理単位領域)毎に、このチャンクが解放候補領域であるか否かを表す解放候補領域情報として機能する。
そして、チャンク管理テーブル171(チャンク管理テーブル群17)は、仮想論理ボリュームを構成するチャンク毎に、割当済フラグと、CRCゼロフラグとを関連付ける管理情報として機能する。
また、チャンクテーブル管理部(更新処理部)14は、CA101により受信したライトデータのCRCの結果に基づいて、ライトデータに対応するチャンクのチャンク管理テーブル171を更新する。
例えば、物理ディスク領域の割り当てが行なわれていないTPVに対して、新規にホストコンピュータ2からデータ(1LBAのデータ)の書き込みが行なわれた場合には、チャンクテーブル管理部14は以下のようにしてチャンク管理テーブル群17を更新する。
すなわち、チャンクテーブル管理部14は、当該TPVにおける、当該書き込みが行なわれたデータが含まれるチャンクに対応するチャンク管理テーブル171に対して、割当済みフラグをONに設定する。又、チャンクテーブル管理部14は、書き込まれたデータのCRCの値をチェックし、CRC=0の場合に、CRCゼロフラグをONに設定する。
一方、既に物理ディスク領域の割り当てが行なわれているTPVに対してホストコンピュータ2からデータ(1LBAのデータ)の書き込みが行なわれた場合には、チャンクテーブル管理部14は、以下のようにしてチャンク管理テーブル群17を更新する。
すなわち、チャンクテーブル管理部14は、当該TPVにおける、当該書き込みが行なわれたデータが含まれるチャンクに対応するチャンク管理テーブル171に対して、割当済みフラグをONのままとする。
また、チャンクテーブル管理部14は、データが書き込まれた領域(チャンク)のCRCゼロフラグの状態と、書き込まれたデータのCRCの値とに基づいて、以下に示すようにチャンク管理テーブル群17を更新する。
(1)書き込み先のチャンクのCRCゼロフラグが“1”の場合
書き込み先のチャンクのCRCゼロフラグが“1”の場合、すなわち、割当済みの領域のデータがCRC=0データの場合において、書き込まれたデータのCRCが0の場合には、チャンクテーブル管理部14は、そのチャンクに対応するチャンク管理テーブル171のCRCゼロフラグは変更しない。つまり、CRCゼロフラグを“1”のまま変更しない。
一方、書き込み先のチャンクのCRCゼロフラグが“1”の場合、すなわち、割当済みの領域のデータがCRC=0データの場合において、書き込まれたデータのCRCが0でない場合には、チャンクテーブル管理部14は、そのチャンクに対応するチャンク管理テーブル171のCRCゼロフラグのフラグを落とす。つまり、CRCゼロフラグを“0”に設定する。
(2)書き込み先のチャンクのCRCゼロフラグが“0”の場合
書き込み先のチャンクのCRCゼロフラグが“0”の場合、すなわち、割当済みの領域のデータがCRC≠0データの場合には、チャンクテーブル管理部14は、そのチャンクに対応するチャンク管理テーブル171において、書き込まれたデータのCRCが0の場合も0でない場合も、CRCゼロフラグを落とす。つまり、CRCゼロフラグを“0”に設定する。本手法においては、チャンク単位でチェックを行なうので、チャンク内のどのLBAにアクセスがあったかまでは管理できず、当該チャンクにおけるどのLBAがCRC≠0であるかが不明であるからである。
また、チャンクテーブル管理部14によるチャンク管理テーブル171の更新手法の詳細は後述する。
解放可能領域判定部11は、チャンク管理テーブル171(チャンク管理テーブル群17)を参照して、解放可能領域を判定する。
すなわち、解放可能領域判定部11は、チャンク管理テーブル171において、割当済みフラグ及びCRCゼロフラグにそれぞれ“1”が設定されているチャンクが、当該領域に格納されている全データが0(ALL0)であるALL0領域(0データ領域)の可能性が高い領域であると判定する。以下、このALL0領域(0データ領域)の可能性が高い領域を解放可能領域という。
0のデータのCRCは0となる。従って、CRCが0となる場合、当該データは0である可能性がある。又、ALL0領域のデータのCRCは0である。すなわち、CRCゼロフラグに“1”が設定されているチャンクには、ALL0が格納されている可能性が高い。ただし、「ALL0データのCRCは0になる」と言うことは可能であるが、「CRCが0となるデータは必ずALL0である」とは言えない。
また、解放可能領域判定部11は、解放可能領域カウンタを用いて解放可能領域と判定されるチャンクの数を管理する。解放可能領域カウンタは、例えば、RAM105のメモリ領域106に形成される。解放可能領域判定部11は、管理テーブル群17において、割当済フラグ及びCRCゼロフラグにそれぞれ“1”が設定されているチャンクを計数して解放可能領域カウンタに格納する。
さらに、ボリューム制御部10は、ストレージプールの容量監視機能をそなえる。この容量監視機能は、ストレージプールにおいて、全体のストレージ容量に対する割り当て済みの物理ボリュームの容量の割合が、予め設定された閾値に達した状態を検出する。
判断部12は、解放可能領域判定部11により解放可能領域として判定されたチャンクに対して、そのチャンクの全データがゼロデータ(ALL0)であるオールゼロ領域であるかを判断する。
具体的には、判断部12は、解放可能領域と判断されたチャンク内の全データに対して、順次、0データであるか否か、すなわち格納されているデータが0であるか否かを判断する。なお、チャンク内の各データが0データであるか否かの判断手法は、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
解放処理部13は、判断部12によりオールゼロ領域であると判断されたチャンクについて、物理領域の割り当てを解放する。すなわち、解放処理部13は、チャンクに割り当てられていた物理領域をプールに戻す。
解放処理部13は、例えば、ホストコンピュータ2からUNMAPコマンドやWRITE SAMEコマンド等の既知の割当解放コマンドを受信した時と同様の処理を自律的に行なうことにより、チャンクに割り当てられていた物理領域を解放する。以下、チャンクに割り当てられている物理領域を解放することを割当解放という場合がある。
また、解放可能領域判定部11は、チャンク管理テーブル171における、当該チャンクの割当済みフラグを“1”から“0”に書き換えることより、当該チャンクの状態を未割当の状態に変更する。
かかる解放処理部13による割当解放は、オペレータが任意のタイミングで指示を行なうことにより開始してもよく、又、予め規定された所定条件が満たされたことが検知されたタイミングで自動的に開始してもよい。
本仮想ストレージ装置1においては、例えば、以下に示す(i)〜(iv)の4つの条件が割当解放を自動的に開始する所定条件として用いられる。解放可能領域判定部11は、これらの条件のうち少なくともいずれか1つの条件が満たされたことを検知したタイミングで割当解放を開始する。
(i)本仮想ストレージ装置1がそなえるコピー機能によるコピーがされた後
一般に、データの読み書きが,ある大きさのブロック単位(例えば、512〜2048バイト)でランダムに行なわれるブロックデバイスにおいては、コピー処理はブロックレベルで行なわれる。
そのため、あるLUNのデータを他のLUNへコピーした場合に、そのコピー元LUNにおける未使用領域は、コピー先のボリュームにおいては0データとして書き込まれる。そのため、コピー処理が行なわれた後のコピー先のLUNでは0データ領域が発生している可能性が高い。
本仮想ストレージ装置1においては、LUNのコピー処理が完了した後に割当解放を実施することにより、コピー処理によって生じる0データ領域を解消することができ、効率的である。
(ii)LUNの全領域にLBAが連続でライトされた後
LUNのバックアップを行なう際に、バックアップ元のLUNにおいて未使用領域があった場合には、該当未使用領域はバックアップ先のLUNに0データとしてバックアップされる。そして、この0データの領域がリストアされると、0データがそのままリストア先のLUNに書き込まれ、0データ領域が生成される。
LUNの全面リストアは、仮想ストレージ装置1においてはシーケンシャルライトに見える。 そのため、LUNの全面に対してシーケンシャルライトが行なわれた場合は、全面リストアが実行されたと判断し、割当解放処理を自動で実行する。これにより、全面リストアにより生じる0データ領域を解消することができる。
(iii)ホストコンピュータ2からLUNの初期化が実施された後
例えば、NTFSのディスクフォーマット手法においては、全領域をゼロクリアする機能がそなえられている。かかる機能を用いてLUNの初期化(ディスクフォーマット)を実行した場合は、上記(2)の全面リストアと同様に、仮想ストレージ装置1としてはシーケンシャルライトに見える。LUNの全面に対してシーケンシャルライトがされた場合は、全面リストアがされたと判断し、割当解放処理を自動で実行する。これによっても、全面リストアにより生じる0データ領域を解消することができる。
そこで、ホストコンピュータ2からLUNの初期化(ファイルシステム作成やボリュームマネージャによるボリュームの作成)が実施された場合は、全面リストアが実行されたと判断し、割当解放処理を自動で実行する。これにより、全面リストアにより生じる0データ領域を解消することができる。
(iv)ストレージプールの容量監視でアラームが生じた時
前述したボリューム制御部10の容量監視機能により、ディスクプールにおいて、プール全体の容量に対する割当済みの物理領域の量が所定のしきい値に達した場合にアラームを生じさせ、割当解放処理を実行する。
すなわち、プールの空き容量が少なくなってきた場合に割当解放処理を実施することにより、そのチャンクに割り当てられていた物理領域がプールに戻され、ストレージプールの容量を増やすことができる。
仮想ストレージ装置1において、LUNへの0データの割り当ては空き容量を減少させる要因となる。従って、ストレージプールの容量監視機能により、ストレージプール全体の容量に対する割当済みの物理領域の量が所定のしきい値に達したことを検知した場合に割当解放処理を実行して0データ領域を解放する。これにより、ストレージプールの使用効率を高めることが可能となる。
解放処理部13は、これらの(i)〜(iv)所定条件のうち少なくとも1つが検知された場合に、割当解放処理指示が行なわれたと判断し、割当解放を開始する。又、オペレータが図示しない入力装置を用いて割当解放処理指示を入力した場合も、解放処理部13は割当解放を開始する。
予測情報出力部15は、解放可能領域判定部11により解放可能領域として判定されたチャンクについての情報を予測情報として出力する。例えば、予測情報出力部15は、解放可能領域判定部11により解放可能領域として判定されたチャンクの数に相当する領域の容量を、解放可能と予測される容量として、例えば、図示しないディスプレイ等に出力(通知)する。
すなわち、割当済みフラグ及びCRCゼロフラグがいずれも“1”であるチャンクについて、当該チャンク数にチャンクサイズを乗算した値を解放可能予測容量として算出し、通知する。この解放可能予測容量の通知は、例えば、図示しないディスプレイ等に表示することにより行なう。又、割当済みフラグ及びCRCゼロフラグがいずれも“1”であるチャンクの数は、解放可能領域判定部11により解放可能領域カウンタに格納されている。予測情報出力部15は、この解放可能領域カウンタ値を用いて解放可能予測容量を算出する。
このように、本仮想ストレージ装置1においては、物理ディスク上のデータをチェックすることなく、メモリ上のチェックのみで、解放可能な領域をある程度予測することができる。
そして、CM100のCPU110が、制御プログラムを実行することにより、上述した、排他制御部20,キャッシュ制御部22,コピー制御部23,ディスク制御部24及びボリューム管理部10(解放可能領域判定部11,判断部12,解放処理部13,チャンクテーブル管理部14及び予測情報出力部15)として機能する。
なお、これらの排他制御部20,キャッシュ制御部22,コピー制御部23,ディスク制御部24及びボリューム管理部10(解放可能領域判定部11,判断部12,解放処理部13,チャンクテーブル管理部14及び予測情報出力部15)としての機能を実現するためのプログラム(制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
排他制御部20,キャッシュ制御部22,コピー制御部23,ディスク制御部24及びボリューム管理部10(解放可能領域判定部11,判断部12,解放処理部13,チャンクテーブル管理部14及び予測情報出力部15)としての機能を実現する際には、内部記憶装置(本実施形態ではCM100のRAM105やROM103)に格納された制御プログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU110)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、CM100がコンピュータとしての機能を有しているのである。
上述の如く構成された、実施形態の一例としての本仮想ストレージ装置1におけるデータライト時の処理を、図4に示すフローチャート(ステップA10〜A100)に従って説明する。
先ず、本仮想ストレージ装置1においてホストコンピュータ2からライト要求を受信する(ステップA10)。
ボリューム制御部10は、ボリューム制御部10は、そのライト要求に基づいてチャンク管理テーブル171の割当済フラグを参照して、その書き込み先のTPVのチャンク(ライト対象チャンク)に物理領域が割り当てられているか否かを判断する(ステップA20)。
ライト対象チャンクに物理領域が割り当てられていない場合は(ステップA20のNOルート参照)、ストレージプールからそのライト対象チャンクに物理領域を割り当てる(ステップA30)。又、チャンクテーブル管理部14はチャンク管理テーブル171において、当該チャンクの割当済フラグをONにする(ステップA40)。
その後、ホストコンピュータ2からライトデータを受信し、CA101は受信した1LBA単位のデータに対してCRCを行ない、そのチェック結果を当該データに付加する(ステップA50)。キャッシュ制御部22は、受信したデータをキャッシュ領域107に格納する。
また、ステップA20において、ライト対象チャンクに物理領域が既に割り当てられている場合は(ステップA20のYESルート参照)、ステップA50に移行する。
チャンクテーブル管理部14は、受信したデータのCRCが0であるか否かを確認する(ステップA60)。受信したデータのCRCが0である場合には(ステップA60のYESルート参照)、チャンクテーブル管理部14は、当該データの格納先のチャンク(ライト対象チャンク)のチャンク管理テーブル171において、CRCゼロフラグをオンにする(ステップA70)。その後、ボリューム制御部10は、ホストコンピュータ2に対してライトの完了を応答し(ステップA80)、処理を終了する。
一方、受信したデータのCRCが0でない場合には(ステップA60のNOルート参照)、チャンクテーブル管理部14は、ライト対象チャンクのチャンク管理テーブル171において、CRCゼロフラグを確認する(ステップA90)。すなわち、チャンクテーブル管理部14は、ライト対象チャンクのCRCゼロフラグがONであるか否かを確認する。CRCゼロフラグがオンである場合には(ステップA90のYESルート参照)、チャンクテーブル管理部14はライト対象チャンクのチャンク管理テーブル171においてCRCゼロフラグをオフにして(ステップA100)、ステップA80に移行する。
また、CRCゼロフラグがオンでない場合には(ステップA90のNOルート参照)、そのまま、すなわち、ライト対象チャンクのチャンク管理テーブル171においてCRCゼロフラグをオフにしたまま、ステップA80に移行する。
次に、実施形態の一例としての仮想ストレージ装置1における解放可能領域判定部11による解放可能領域の判定処理を、図5に示すフローチャート(ステップB10〜B60)に従って説明する。
解放予測は、例えば、オペレータが本仮想ストレージ装置1において解放可能な物理領域の容量を確認したい場合に、オペレータが対象とするTPVのLUNの指定とともに指示を行なうこと等により開始される。
解放可能領域判定部11は、指定されたLUNについて、チャンク管理テーブル群17の先頭のチャンク管理テーブル171のチャンクを対象チャンクとして確認する(ステップB10)。
解放可能領域判定部11は、対象チャンクのチャンク管理テーブル171において、割当済フラグがオンであるか否かを確認する(ステップB20)。対象チャンクの割当済フラグがオンでない場合には(ステップB20のNOルート参照)、チャンク管理テーブル群17における次のチャンク管理テーブル171のチャンクを対象チャンクとして(ステップB60)、ステップB20に戻る。
対象チャンクの割当済フラグがオンである場合には(ステップB20のYESルート参照)、次に、解放可能領域判定部11は、対象チャンクのチャンク管理テーブル171においてCRCゼロフラグがオンであるか否かを確認する(ステップB30)。対象チャンクのCRCゼロフラグがオンでない場合には(ステップB30のNOルート参照)、ステップB60に移行する。
対象チャンクのCRCゼロフラグがオンである場合には(ステップB30のYESルート参照)、解放可能領域判定部11は、解放可能領域カウンタをインクリメントする(ステップB40)。その後、解放可能領域判定部11は、チャンク管理テーブル群17における全てのチャンクを対象チャンクとして確認処理を行なったか否かを確認する(ステップB50)。全てのチャンクに対する確認が終了していない場合には(ステップB50のNOルート参照)、ステップB60に移行する。
また、全てのチャンクに対する確認が終了した場合には(ステップB50のYESルート参照)、解放可能領域の判定処理を終了する。
予測情報出力部15は、ステップB40において解放可能領域判定部11によって算出された解放可能領域カウンタの値を用いて、解放可能予測容量を算出し、ディスプレイ等に出力する。
これにより、オペレータは、解放可能と予測される物理領域の容量を容易に把握することができ、利便性が高い。
次に、実施形態の一例としての仮想ストレージ装置1における、割当解放処理指示の受信に伴う割当解放処理を、図6に示すフローチャート(ステップC10〜C100)に従って説明する。
例えば、前述した4つの所定条件のうち少なくともいずれか1つが検知され、解放可能領域判定部11が割当解放処理指示を受信すると(ステップC10)、解放可能領域判定部11は、指定されたLUNについて、そのチャンク管理テーブル群17の先頭のチャンク管理テーブル171のチャンクを対象チャンクとして確認する(ステップC20)。
解放可能領域判定部11は、対象チャンクのチャンク管理テーブル171において、割当済フラグがオンであるか否かを確認する(ステップC30)。対象チャンクの割当済フラグがオンでない場合には(ステップC30のNOルート参照)、解放可能領域判定部11は、チャンク管理テーブル群17の全てのチャンクを対象チャンクとして確認処理を行なったか否かを確認する(ステップC90)。
ここで、全てのチャンクに対する確認が終了した場合には(ステップC90のYESルート参照)、解放可能領域の判定処理を終了する。又、全てのチャンクに対する確認が終了していない場合には(ステップC90のNOルート参照)、チャンク管理テーブル群17における次のチャンク管理テーブル171のチャンクを対象チャンクとして(ステップC100)、ステップC30に戻る。
対象チャンクの割当済フラグがオンである場合には(ステップC30のYESルート参照)、次に、解放可能領域判定部11は、対象チャンクのチャンク管理テーブル171においてCRCゼロフラグがオンであるか否かを確認する(ステップC40)。対象チャンクのCRCゼロフラグがオンでない場合には(ステップC40のNOルート参照)、ステップC90に移行する。
対象チャンクのCRCゼロフラグがオンである場合には(ステップC40のYESルート参照)、判断部12は、その対象チャンクの全てのデータをチェックする(ステップC50)。判断部12は、対象チャンクの全てのデータが0であるか否か、すなわち、ALL0であるか否かを判断する(ステップC60)。対象チャンクの全データが0(ALL0)でない場合は(ステップC60のNOルート参照)、ステップC90に移行する。
一方、対象チャンクの全データがゼロデータである場合は(ステップC60のYESルート参照)、その対象チャンクの物理割当を解放して(ステップC70)、チャンク管理テーブル171において、対象チャンクの割当済フラグをリセットし“0”を設定してから(ステップC80)、ステップC90に移行する。
このように、実施形態の一例としての仮想ストレージ装置1によれば、解放可能領域判定部11が、チャンク管理テーブル171において、割当済みフラグ及びCRCゼロフラグにそれぞれ“1”が設定されているチャンクが、当該領域に格納されているデータがALL0であるALL0領域の可能性が高い領域(解放可能領域)であると判定する。そして、判断部12が、解放可能領域判定部11により解放可能領域として判定されたチャンクに対して、そのチャンクの全データがゼロデータ(ALL0)であるオールゼロ領域であるかを判断する。
これにより、判断部12がTPVにおける全てのチャンクに対してゼロデータであるか否かの判断を行なう必要がなく、ALL0データ領域解放処理の高速化を図ることができる。又、CM100のCPU110の付加を軽減することができる。
また、本仮想ストレージ装置1においては、CRCが0となる場合に当該データは0である可能性があるというCRCの特性を利用している。そして、ホストコンピュータ2から転送されたデータに対して、CA101がデータ整合性の保証を行なうために付加するCRCの値を利用する。これにより、既存のCRC機能を用いて実現することができ、新たなオーバーヘッドが生じることがなく、導入コストを低減することができる。
さらに、予測情報出力部15が、解放可能領域判定部11により解放可能領域として判定されたチャンクの数に相当する領域の容量を、解放可能と予測し通知することができる。これにより、予め、オールゼロ領域の解放により確保することができる容量を容易に知ることができ利便性が高い。
また、(i)本仮想ストレージ装置1がそなえるコピー機能によるコピーがされた後,(ii)LUNの全領域にLBAが連続でライトされた後,(iii)ホストコンピュータ2からLUNの初期化が実施された後、及び(iv)ストレージプールの容量監視でアラームが生じた時、のいずれかを検知したタイミングで割当解放を行なう。これにより、効率的に割当解放を行なうことができる。
また、ボリューム制御部10が、ホストコンピュータ2に対してシンプロビジョニング型の仮想ボリュームを提供する。これにより、LUNの使用率が上がってきた時点でデバイスエンクロージャ30に記憶装置を無停止で増設することで、OS側に影響を与えることなく物理ディスク容量の増設が可能である。又、また、導入時は必要最小限の物理ディスクのみで運用し、LUNの使用率が上がってきたところで物理ディスクを増設するといった対応を取ることで、低コストでの運用が可能であり、更に、物理ディスクの使用効率を向上させることもできる。
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
上位装置に対して仮想論理ボリュームを提供する仮想ストレージ装置であって、
前記仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定する解放可能領域判定部と、
前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断する判断部と、
前記判断部によりオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する解放処理部とをそなえることを特徴とする、仮想ストレージ装置。
(付記2)
前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域についての情報を予測情報として出力する、予測情報出力部を備えることを特徴とする、付記1記載の仮想ストレージ装置。
(付記3)
前記管理情報が、前記管理単位領域のデータに対する巡回冗長検査の結果が0である場合に、当該管理単位領域にかかる前記解放候補領域情報が解放候補領域を示すことを特徴とする、付記1又は2記載の仮想ストレージ装置。
(付記4)
前記上位装置から受信するライトデータに対して巡回冗長検査を行なう検査部と、
前記検査部による巡回冗長検査の結果に基づいて、前記ライトデータに対応する管理単位領域に関して、前記管理情報を更新する更新処理部とをそなえることを特徴とする、付記1〜3のいずれか1項に記載の仮想ストレージ装置。
(付記5)
前記仮想論理ボリュームに対してデータコピーが行なわれたことが検知されると、前記解放可能領域判定部が前記解放可能領域の判定を行ない、前記判断部が前記オールゼロ領域であるかの判定を行ない、前記解放処理部がオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放することを特徴とする、付記1〜4のいずれか1項に記載の仮想ストレージ装置。
(付記6)
前記仮想論理ボリュームの全域に対して連続してデータライトが行なわれたことが検知されると、前記解放可能領域判定部が前記解放可能領域の判定を行ない、前記判断部が前記オールゼロ領域であるかの判定を行ない、前記解放処理部がオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放することを特徴とする、付記1〜5のいずれか1項に記載の仮想ストレージ装置。
(付記7)
前記仮想論理ボリュームの定義に用いる実ストレージ資源を管理するストレージプールの空き容量が所定値以下となったことが検知されると、前記解放可能領域判定部が前記解放可能領域の判定を行ない、前記判断部が前記オールゼロ領域であるかの判定を行ない、前記解放処理部がオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放することを特徴とする、付記1〜6のいずれか1項に記載の仮想ストレージ装置。
(付記8)
仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定する解放可能領域判定部と、
前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断する判断部と、
前記判断部によりオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する解放処理部とをそなえることを特徴とする、制御装置。
(付記9)
前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域についての情報を予測情報として出力する、予測情報出力部を備えることを特徴とする、付記8記載の制御装置。
(付記10)
前記管理情報が、前記管理単位領域のデータに対する巡回冗長検査の結果が0である場合に、当該管理単位領域にかかる前記解放候補領域情報が解放候補領域を示すことを特徴とする、付記8又は9記載の制御装置。
(付記11)
前記上位装置から受信するライトデータに対して巡回冗長検査を行なう検査部と、
前記検査部による巡回冗長検査の結果に基づいて、前記ライトデータに対応する管理単位領域に関して、前記管理情報を更新する更新処理部とをそなえることを特徴とする、付記8〜10のいずれか1項に記載の制御装置。
(付記12)
前記仮想論理ボリュームに対してデータコピーが行なわれたことが検知されると、前記解放可能領域判定部が前記解放可能領域の判定を行ない、前記判断部が前記オールゼロ領域であるかの判定を行ない、前記解放処理部がオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放することを特徴とする、付記8〜11のいずれか1項に記載の制御装置。
(付記13)
前記仮想論理ボリュームの全域に対して連続してデータライトが行なわれたことが検知されると、前記解放可能領域判定部が前記解放可能領域の判定を行ない、前記判断部が前記オールゼロ領域であるかの判定を行ない、前記解放処理部がオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放することを特徴とする、付記8〜12のいずれか1項に記載の制御装置。
(付記14)
前記仮想論理ボリュームの定義に用いる実ストレージ資源を管理するストレージプールの空き容量が所定値以下となったことが検知されると、前記解放可能領域判定部が前記解放可能領域の判定を行ない、前記判断部が前記オールゼロ領域であるかの判定を行ない、前記解放処理部がオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放することを特徴とする、付記8〜13のいずれか1項に記載の制御装置。
(付記15)
仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定し、
解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断し、
オールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する、
処理をコンピュータに実行させる制御プログラム。
(付記16)
解放可能領域として判定された前記管理単位領域についての情報を予測情報として出力する、
処理をコンピュータに実行させることを特徴とする、付記15記載の制御プログラム。
(付記17)
前記管理情報が、前記管理単位領域のデータに対する巡回冗長検査の結果が0である場合に、当該管理単位領域にかかる前記解放候補領域情報が解放候補領域を示すことを特徴とする、付記15又は16記載の制御プログラム。
(付記18)
前記上位装置から受信するライトデータに対して行なわれた巡回冗長検査の結果に基づいて、前記ライトデータに対応する管理単位領域に関して、前記管理情報を更新する、
処理をコンピュータに実行させることを特徴とする、付記15〜17のいずれか1項に記載の制御プログラム。
(付記19)
前記仮想論理ボリュームに対してデータコピーが行なわれたことが検知されると、前記解放可能領域の判定を行ない、前記オールゼロ領域であるかの判定を行ない、オールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する、
処理をコンピュータに実行させることを特徴とする、付記15〜18のいずれか1項に記載の制御プログラム。
(付記20)
前記仮想論理ボリュームの全域に対して連続してデータライトが行なわれたことが検知されると、前記解放可能領域の判定を行ない、前記オールゼロ領域であるかの判定を行ない、オールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する、
処理をコンピュータに実行させることを特徴とする、付記15〜19のいずれか1項に記載の制御プログラム。
(付記21)
前記仮想論理ボリュームの定義に用いる実ストレージ資源を管理するストレージプールの空き容量が所定値以下となったことが検知されると、前記解放可能領域の判定を行ない、前記オールゼロ領域であるかの判定を行ない、オールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する、
処理をコンピュータに実行させることを特徴とする、付記15〜20のいずれか1項に記載の制御プログラム。
1 仮想ストレージ装置
2 ホストコンピュータ(上位装置)
10 ボリューム制御部
11 解放可能領域判定部
12 判断部
13 解放処理部
14 チャンクテーブル管理部
15 予測情報出力部
17 チャンク管理テーブル群
20 排他制御部
22 キャッシュ制御部
23 コピー制御部
24 ディスク制御部
30−1〜30−4,30 デバイスエンクロージャ
50 ネットワーク
100a,100b,100 CM(制御装置)
101 CA(検査部)
102 エキスパンダ
104 PCIeインタフェース
105 RAM
106 メモリ領域
107 キャッシュ領域
110 CPU
171 チャンク管理テーブル

Claims (6)

  1. 上位装置に対して仮想論理ボリュームを提供する仮想ストレージ装置であって、
    前記仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定する解放可能領域判定部と、
    前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断する判断部と、
    前記判断部によりオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する解放処理部とをそなえることを特徴とする、仮想ストレージ装置。
  2. 前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域についての情報を予測情報として出力する、予測情報出力部を備えることを特徴とする、請求項1記載の仮想ストレージ装置。
  3. 前記管理情報が、前記管理単位領域のデータに対する巡回冗長検査の結果が0である場合に、当該管理単位領域にかかる前記解放候補領域情報が解放候補領域を示すことを特徴とする、請求項1又は2記載の仮想ストレージ装置。
  4. 前記上位装置から受信するライトデータに対して巡回冗長検査を行なう検査部と、
    前記検査部による巡回冗長検査の結果に基づいて、前記ライトデータに対応する管理単位領域に関して、前記管理情報を更新する更新処理部とをそなえることを特徴とする、請求項1〜3のいずれか1項に記載の仮想ストレージ装置。
  5. 仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定する解放可能領域判定部と、
    前記解放可能領域判定部により解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断する判断部と、
    前記判断部によりオールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する解放処理部とをそなえることを特徴とする、制御装置。
  6. 仮想論理ボリュームを構成する管理単位領域毎に、当該管理単位領域に対する物理領域の割り当て状態を示す割当情報と、当該管理単位領域が解放候補領域であるか否かを表す解放候補領域情報とを関連付ける管理情報を参照して、物理領域が割り当てられており、且つ、解放候補領域である管理単位領域を解放可能領域として判定し、
    解放可能領域として判定された前記管理単位領域に対して、当該管理対象領域内の全データがゼロデータであるオールゼロ領域であるかを判断し、
    オールゼロ領域であると判断された前記管理単位領域に対する物理領域の割り当てを解放する、
    処理をコンピュータに実行させる制御プログラム。
JP2012020587A 2012-02-02 2012-02-02 仮想ストレージ装置,制御装置及び制御プログラム Expired - Fee Related JP5853734B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012020587A JP5853734B2 (ja) 2012-02-02 2012-02-02 仮想ストレージ装置,制御装置及び制御プログラム
US13/687,615 US8966214B2 (en) 2012-02-02 2012-11-28 Virtual storage device, controller, and computer-readable recording medium having stored therein a control program
EP12197467.9A EP2624136A3 (en) 2012-02-02 2012-12-17 Virtual storage device, controller, and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012020587A JP5853734B2 (ja) 2012-02-02 2012-02-02 仮想ストレージ装置,制御装置及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2013161148A true JP2013161148A (ja) 2013-08-19
JP5853734B2 JP5853734B2 (ja) 2016-02-09

Family

ID=47738954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012020587A Expired - Fee Related JP5853734B2 (ja) 2012-02-02 2012-02-02 仮想ストレージ装置,制御装置及び制御プログラム

Country Status (3)

Country Link
US (1) US8966214B2 (ja)
EP (1) EP2624136A3 (ja)
JP (1) JP5853734B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015203908A (ja) * 2014-04-11 2015-11-16 富士通株式会社 ストレージ管理装置及びストレージ管理プログラム
WO2016129053A1 (ja) * 2015-02-10 2016-08-18 株式会社日立製作所 ストレージ装置の管理計算機

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514142B (zh) * 2013-11-26 2015-12-21 Synology Inc 儲存系統及其控制方法
US11188229B2 (en) 2015-09-25 2021-11-30 Hitachi Vantara Llc Adaptive storage reclamation
JP6569477B2 (ja) * 2015-11-02 2019-09-04 富士通株式会社 ストレージ制御装置、および制御プログラム
US10296214B2 (en) 2016-10-31 2019-05-21 International Business Machines Corporation Storage pool selection for provisioning volumes in an over-allocation system
CN107203477A (zh) * 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
JP2022099948A (ja) * 2020-12-23 2022-07-05 株式会社日立製作所 ストレージシステムおよびストレージシステムにおけるデータ量削減方法
CN115712500A (zh) * 2022-11-10 2023-02-24 阿里云计算有限公司 内存释放、内存恢复方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146574A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法
WO2011024239A1 (en) * 2009-08-31 2011-03-03 Hitachi, Ltd. Storage system having plurality of flash packages

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269464B1 (en) * 1997-06-18 2001-07-31 Sutmyn Storage Corporation Error checking technique for use in mass storage systems
US20020035664A1 (en) * 1997-07-09 2002-03-21 Neville Yates Native image data storage on a virtual tape storage system
US6324497B1 (en) * 1998-07-15 2001-11-27 Sutmyn Storage Corporation Tape drive emulation system including tape library interface
US20090089516A1 (en) 2007-10-02 2009-04-02 Greg Pelts Reclaiming storage on a thin-provisioning storage device
JP2009116809A (ja) 2007-11-09 2009-05-28 Hitachi Ltd 記憶制御装置、ストレージシステム及び仮想ボリュームの制御方法
US8239648B2 (en) 2009-04-13 2012-08-07 Microsoft Corporation Reclamation of thin provisioned disk storage
JP4905511B2 (ja) 2009-06-30 2012-03-28 富士通株式会社 記憶装置の制御部及び制御方法
JP5540636B2 (ja) 2009-10-02 2014-07-02 日本電気株式会社 ストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラム
JP5532982B2 (ja) 2010-02-03 2014-06-25 富士通株式会社 ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法
US9965224B2 (en) 2010-02-24 2018-05-08 Veritas Technologies Llc Systems and methods for enabling replication targets to reclaim unused storage space on thin-provisioned storage systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146574A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法
WO2011024239A1 (en) * 2009-08-31 2011-03-03 Hitachi, Ltd. Storage system having plurality of flash packages

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015203908A (ja) * 2014-04-11 2015-11-16 富士通株式会社 ストレージ管理装置及びストレージ管理プログラム
WO2016129053A1 (ja) * 2015-02-10 2016-08-18 株式会社日立製作所 ストレージ装置の管理計算機

Also Published As

Publication number Publication date
US20130205111A1 (en) 2013-08-08
EP2624136A3 (en) 2013-11-27
JP5853734B2 (ja) 2016-02-09
US8966214B2 (en) 2015-02-24
EP2624136A2 (en) 2013-08-07

Similar Documents

Publication Publication Date Title
JP5853734B2 (ja) 仮想ストレージ装置,制御装置及び制御プログラム
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
US9563377B2 (en) Computer system and method of controlling computer system
US9733862B1 (en) Systems and methods for reverse point-in-time copy management in a storage system
CN102150144B (zh) 使用写入配置快照的动态存储分层的方法和系统
CN102209952B (zh) 存储系统和用于操作存储系统的方法
US8346934B2 (en) Method for executing migration between virtual servers and server system used for the same
US8032689B2 (en) Techniques for data storage device virtualization
JP5271424B2 (ja) ダイナミックストレージ階層化によるオンラインデータ配置をボリュームに提供するためのアロケートオンライトのスナップショット機構
US9229870B1 (en) Managing cache systems of storage systems
JP6409613B2 (ja) 情報処理装置,マルチパス制御方法及びマルチパス制御プログラム
CN103946846A (zh) 使用虚拟驱动作为用于raid组的热备用
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP2020533694A (ja) クラウド・ベースのランクを使用するデータの動的再配置
TWI544401B (zh) 有效率釋出序列輸人輸出串流的方法、儲存控制器及系統
US8799573B2 (en) Storage system and its logical unit management method
US20130080725A1 (en) Control apparatus, control method, and storage apparatus
JP6451770B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2017211920A (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US10402107B2 (en) Determining tracks to release in a source volume being copied to a target volume
US20160224273A1 (en) Controller and storage system
JP2007280111A (ja) ストレージシステム及びその性能チューニング方法
JP6427913B2 (ja) ストレージシステム、制御装置、ストレージ装置、入出力制御方法、及びプログラム
JP5606583B2 (ja) ストレージ装置及び同装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151123

R150 Certificate of patent or registration of utility model

Ref document number: 5853734

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees