JP2016012166A - ストレージ管理装置,ストレージ管理プログラム,及び制御方法 - Google Patents

ストレージ管理装置,ストレージ管理プログラム,及び制御方法 Download PDF

Info

Publication number
JP2016012166A
JP2016012166A JP2014132287A JP2014132287A JP2016012166A JP 2016012166 A JP2016012166 A JP 2016012166A JP 2014132287 A JP2014132287 A JP 2014132287A JP 2014132287 A JP2014132287 A JP 2014132287A JP 2016012166 A JP2016012166 A JP 2016012166A
Authority
JP
Japan
Prior art keywords
address
chunk
virtual
physical
pool
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.)
Withdrawn
Application number
JP2014132287A
Other languages
English (en)
Inventor
文博 大場
Fumihiro Oba
文博 大場
秀行 安本
Hideyuki Yasumoto
秀行 安本
尚 小山内
Hisashi Osanai
尚 小山内
俊介 元井
Shunsuke Motoi
俊介 元井
藤田 大輔
Daisuke Fujita
大輔 藤田
中島 哲也
Tetsuya Nakajima
哲也 中島
英治 浜本
Eiji Hamamoto
英治 浜本
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 JP2014132287A priority Critical patent/JP2016012166A/ja
Priority to US14/718,471 priority patent/US9552292B2/en
Publication of JP2016012166A publication Critical patent/JP2016012166A/ja
Withdrawn legal-status Critical Current

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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; CALCULATING OR 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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

【課題】データ格納先の仮想記憶領域の仮想アドレスが物理記憶領域の物理アドレスに割り当てられる場合において、仮想記憶領域へのアクセス性能の低下を抑制する。【解決手段】データの格納先の仮想記憶領域20の仮想アドレスに、物理記憶領域の物理アドレスを割り当てるストレージ管理装置であって、前記物理記憶領域に、複数の物理アドレスが連続する連続領域20bを設定し、設定した連続領域20b内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域20bに割り当てる仮想アドレスの割当範囲を設定する設定部と、設定した割当範囲内の仮想アドレスに前記設定した連続領域20bの物理アドレスを割り当てる割当部と、を有する。【選択図】図7

Description

本発明は、ストレージ管理装置,ストレージ管理プログラム,及び制御方法に関する。
記憶装置の記憶領域をユーザに柔軟に割り当てるため、HDD(Hard Disk Drive)等の物理記憶装置を用いて仮想記憶装置(以下、VDISK(Virtual Disk)ともいう)を提供する仮想ストレージ装置が知られている(例えば、特許文献1〜6参照)。
仮想ストレージ装置では、上位装置の一例である業務サーバによりVDISK上のデータのスナップショット採取(差分コピー)が行なわれることがある。スナップショットでは、スナップショットの領域管理手法を表す図29に例示するように、スナップショット採取時点からの差分データが運用VDISKに格納され、スナップショット採取前のデータはマスタVDISKから読み出される。また、スナップショットの運用VDISKに対するライトは、差分データとなり、仮想ストレージ装置の管理サーバによってひとまとまりのデータ(以下、チャンクという)で管理される。
チャンクは、運用VDISKの空き領域に一意のサイズで獲得される最小単位の論理ブロックであり、物理記憶装置上にはチャンクのインデックス順(I/O(Input/Output)の入力順)に連続で配置される。なお、チャンクのインデックス値は、物理記憶装置の物理アドレスと一致する。
運用VDISKに対する差分データが存在しないオフセット(仮想アドレス)への初めてのライト(ファーストライト)I/Oが発生した際には、管理サーバは、図30に例示するように、新しいチャンクを獲得し、獲得したチャンクにデータをライトする。図30の例では、管理サーバは、運用VDISKに差分データの存在しないオフセット“7”へのライトI/Oに対して、“0x003”のインデックス値(物理アドレス)のチャンクを獲得し、獲得したチャンクにデータをライトする。また、管理サーバは、オフセット(仮想アドレス)と獲得したチャンク位置(物理アドレス)とを、仮想アドレスと物理アドレスとの対応関係を示すV−Rマップに登録する。
また、差分データが存在するオフセットへのライト(2回目以降のライト)I/Oが発生した際には、管理サーバは、図31に例示するように、ライトアドレス(仮想アドレス)に対応付けられたチャンクを獲得し、獲得したチャンクにデータをライトする。図31の例では、管理サーバは、運用VDISKに差分データの存在するオフセット“3”へのライトI/Oに対して、V−Rマップから差分データが格納されている“0x002”のインデックス値のチャンクを獲得し、獲得したチャンクにデータをライト(上書き)する。
スナップショットでは、このような差分コピーにより、業務サーバのI/O負荷を低減させることができる。
特表2012−531653号公報 特開2011−76572号公報 特開2010−86420号公報 特表2007−502470号公報 特開2009−116601号公報 特開2008−65434号公報
差分データが格納される運用VDISKでは、ファーストライトに係る仮想アドレスが、物理アドレスに対してランダムに割り当てられるため、運用VDISKからのデータのリード性能(アクセス性能)が低下する場合がある。
なお、上述した課題は、差分コピーを行なうスナップショットに限られるものではなく、仮想アドレスが物理アドレスにI/Oの入力順に時系列で割り当てられる場合も同様に、仮想記憶装置からのリード性能が低下し得る。
1つの側面では、本発明は、データ格納先の仮想記憶領域の仮想アドレスが物理記憶領域の物理アドレスに割り当てられる場合において、仮想記憶領域へのアクセス性能の低下を抑制することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
本件のストレージ管理装置は、データの格納先の仮想記憶領域の仮想アドレスに、物理記憶領域の物理アドレスを割り当てるストレージ管理装置である。前記ストレージ管理装置は、前記物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域に割り当てる仮想アドレスの割当範囲を設定する設定部を有する。また、前記ストレージ管理装置は、設定した割当範囲内の仮想アドレスに前記設定した連続領域の物理アドレスを割り当てる割当部を有する。
一実施形態によれば、データ格納先の仮想記憶領域の仮想アドレスが物理記憶領域の物理アドレスに割り当てられる場合において、仮想記憶領域へのアクセス性能の低下を抑制することができる。
スナップショットの運用VDISKへのファーストライトがランダムライトの場合の例を説明する図である。 図1においてシーケンシャルリードI/Oが発生した場合の例を説明する図である。 第1実施形態に係るストレージシステムの構成例を示す図である。 第1実施形態の一例としての管理サーバの機能構成例を示す図である。 第1実施形態に係るスナップショットの領域管理手法の一例を示す図である。 図4に示すプール管理テーブルの一例を示す図である。 第1実施形態に係る運用VDISKへのファーストライトがランダムライトの場合の例を説明する図である。 第1実施形態に係る運用VDISKへのファーストライトがランダムライトの場合の例を説明する図である。 図8においてシーケンシャルリードI/Oが発生した場合の例を説明する図である。 仮想アドレスが2つのプールの選択範囲内に含まれる場合の例を説明する図である。 第1実施形態に係る管理サーバにおけるライトI/Oの処理の一例を説明するフローチャートである。 第1実施形態に係るチャンク割当部による未使用チャンクの獲得処理の一例を説明するフローチャートである。 第1実施形態の第1変形例に係る管理サーバの機能構成例を示す図である。 第1実施形態の第1変形例に係るプールの選択範囲を示す図である。 第1実施形態の第1変形例に係るスナップショットの領域管理手法を示す図である。 第1実施形態の第2変形例に係る管理サーバの機能構成例を示す図である。 第1実施形態の第2変形例に係るプール内の仮想アドレスのソート処理を説明する図である。 第1実施形態の第2変形例に係るチャンク更新部によるプール内の仮想アドレスのソート処理を説明するフローチャートである。 第2実施形態の一例としての管理サーバの機能構成例を示す図である。 第2実施形態に係るスナップショットの領域管理手法の一例を示す図である。 第2実施形態に係る運用VDISKへのファーストライトがランダムライトの場合の例を説明する図である。 第2実施形態に係る運用VDISKへのファーストライトがランダムライトの場合の例を説明する図である。 図19に示す論理チャンク管理テーブルの一例を示す図である。 図19に示すビットマップの一例を示す図である。 第2実施形態に係るチャンク割当部による未使用チャンクの獲得処理の一例を説明するフローチャートである。 図22においてシーケンシャルリードI/Oが発生した場合の例を説明する図である。 図22において論理チャンク内の空きチャンクを補完する場合の例を説明する図である。 図3に示す管理サーバのハードウェア構成例を示す図である。 スナップショットの領域管理手法の一例を示す図である。 図29においてファーストライトI/Oが発生した場合の例を説明する図である。 図29において2回目以降のライトI/Oが発生した場合の例を説明する図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕仮想ストレージ装置からのリードについて
上述のように、スナップショットの運用VDISKへのファーストライトがランダムライトの場合、仮想ストレージ装置は、空きチャンクをインデックス順(仮想アドレスのライト順)に使用する。従って、図1に例示するように、V−Rマップ210は、運用VDISK200のランダムな仮想アドレスに対して、シーケンシャルな物理アドレスの割り当てとなる。図1では、オフセット“4”,“3”,“5”,“2”,“1”の順でランダムライトが発生した場合に、これらの仮想アドレスに対して、物理アドレス“0x001”から“0x005”までが順に割り当てられる例を示す。
図1に示すランダムライトが行なわれた後、図2に例示するように、ライト済みの仮想アドレスに対してシーケンシャルリードI/Oが発生した場合を想定する。図2では、オフセット“1”から“5”までのシーケンシャルリードI/Oが発生した場合を示す。
この場合、仮想アドレスでソート後のV−Rマップ210に示すように、チャンクが物理的に不連続に配置されている。すなわち、仮想アドレスをシーケンシャルで見ると、物理アドレスがランダムで配置されることになる。従って、業務サーバからのシーケンシャルリードI/Oは、管理サーバ内部では物理記憶装置(以下、単に記憶装置ともいう)に対するランダムアクセスI/Oとなる。
記憶装置へのアクセスにおいて、物理アドレス順にリードを行なうシーケンシャルリードI/Oは、記憶装置内部での磁気ヘッドの移動が少なく、シーク時間が小さいため、最もI/O性能が良いアクセス方法であるといえる。しかし、業務サーバが仮想記憶装置に対するランダムライトI/O後にライトした領域に対するシーケンシャルリードI/Oを実施すると、上述のように記憶装置に対してはランダムアクセスI/Oとなってしまい、アクセス性能の低下が生じ得る。
このようなアクセス性能の低下が生じ得る状況としては、例えば業務サーバ上で動作するOS(Operating System)又は仮想OS等のホストが複数存在する場合に、これらのホストから1つの仮想記憶装置に同時にファーストライトが行なわれる場合が挙げられる。この場合、各ホストから仮想記憶装置へシーケンシャルライトI/Oが発行されたとしても、管理サーバでは、I/Oの入力順に、仮想アドレスへの物理アドレスの割り当てが行なわれる。
例えば、ホストAによるオフセット“1”から“5”へのファーストライトI/Oと、ホストBによるオフセット“11”から“15”へのファーストライトI/Oとが同時に発行された場合を説明する。この場合、管理サーバは、例えばオフセット“1”,“11”,“2”,“12”,・・・,“5”,“15”のように、I/Oの到着順に(時系列で)チャンク割り当てを行ない、シーケンシャルな物理アドレスに仮想アドレスをランダムで割り当ててしまう。
従来、スナップショットは、記憶装置のディスク容量を節約するために差分データを管理するという側面が強く、多少のI/O性能の低下は止むを得ないものと考えられていた。また、仮想記憶装置へのランダムライトI/O後にシーケンシャルリードI/Oを実行するというアプリケーションが少なく、このような性能劣化が目立たなかった。
そこで、以下の各実施形態では、上述したアクセス性能の低下を抑制するストレージシステムについて詳述する。
〔2〕第1実施形態
以下、第1実施形態に係るストレージシステムについて説明する。なお、以下の例では、ストレージシステム(仮想ストレージ装置)においてチャンク単位で差分コピーを行なうスナップショットが実施される場合について説明する。
第1実施形態に係るストレージシステムでは、スナップショットにおいてファーストライトがランダムライトI/Oであっても、シーケンシャルな仮想アドレスに対して、差分データを記憶装置上に連続で配置するように制御することができる。これにより、ライト後にシーケンシャルリードI/Oが実施されても、管理サーバは記憶装置へシーケンシャルにI/Oを発行することができ、シーケンシャルリードI/Oの性能を向上させることができる。
〔2−1〕ストレージシステムの構成例
図3は、第1実施形態に係るストレージシステムの構成例を示す図である。第1実施形態に係るストレージシステムは、ハードウェアとして、例示的にRAID(Redundant Arrays of Inexpensive Disks)装置1−1〜1−m,管理サーバ2,ネットワーク3,及び業務サーバ4−1〜4−nをそなえることができる。なお、m及びnは、それぞれ2以上の整数とする。本ストレージシステムにそなえられるハードウェアは、例えばデータセンタ等に設置されてよく、或いはこれらのハードウェアの少なくとも一部が他の施設等に設置され、システム内でネットワークを介して通信してもよい。
RAID装置1−1〜1−m(以下の説明においてこれらを区別しない場合には単にRAID装置1という)は、それぞれ1以上(図3の例では複数)の物理ディスク10をそなえるものであり、ストレージ装置の一例である。物理ディスク10は、仮想ストレージ装置として種々のデータやプログラム等を格納するハードウェアである。物理ディスク10としては、例えばHDD等の磁気ディスク装置,SSD(Solid State Drive)等の半導体ドライブ装置,フラッシュメモリ等の不揮発性メモリ等の各種装置が挙げられる。物理ディスク10は、物理記憶装置(記憶装置)の一例である。
業務サーバ4−1〜4−n(以下の説明においてこれらを区別しない場合には単に業務サーバ4という)は、仮想ストレージ装置のユーザが利用する端末(上位装置)の一例である。業務サーバ4は、OS40又は仮想マシン(VM;Virtual Machine)41上で動作する仮想OS42により、例えばネットワーク3を介して仮想ストレージ装置へ種々のアクセス(I/O)を行なうことができる。
また、ホストとしてのOS40及び42は、仮想ストレージ装置により提供される仮想ディスク20に対して、差分コピーを用いたスナップショットを実行することができる。なお、OS40及び42は、仮想ストレージ装置により提供される仮想ディスク20を分割して複数の仮想ディスク20として用いたり、パーティションを作成してもよい。
ネットワーク3は、インターネット若しくはイントラネット、又はこれらの組み合わせを含んでよい。なお、業務サーバ4はネットワーク3を介さずに管理サーバ2と接続されてもよく、ユーザは端末を操作しネットワークを介して業務サーバ4にアクセスしてもよい。
管理サーバ2は、RAID装置1の物理ディスク10を用いて仮想ディスク20を構成し、業務サーバ4(OS40及び42)に提供することができる。このとき、管理サーバ2は、業務サーバ4から仮想ディスク20へのアクセス(I/O)に応じて、データの格納先の仮想記憶領域の仮想アドレスに、データの格納先の物理記憶領域の物理アドレスを割り当てる。
このように、管理サーバ2は、業務サーバ4(OS40及び42)に仮想ディスク20を提供する論理ボリュームマネージャ等の管理装置の一例である。また、RAID装置1及び管理サーバ2は、仮想ストレージ装置であるといえる。
〔2−2〕管理サーバの構成例
管理サーバ2は、図3に示すように、例示的に1以上(図3では2つ)の仮想ディスク20,CPU(Central Processing Unit)2a,及びメモリ2bをそなえることができる。
CPU2aは、種々の制御や演算を行なう演算処理装置(プロセッサ)の一例である。CPU2aは、メモリ2bに格納された管理プログラム21cを実行することにより、管理サーバ2(図4参照)の機能を実現することができる。
メモリ2bは、種々のデータやプログラムを格納する記憶装置である。CPU2aは、プログラムを実行する際に、メモリ2bにデータやプログラムを格納し展開する。メモリ2bは、後述するプール管理テーブル21b及び上述した管理プログラム21cを保持することができる。なお、メモリ2bとしては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。
仮想ディスク20は、CPU2aによって仮想的に構成(設定)される記憶領域である。仮想ディスク20には、仮想領域(仮想記憶装置)の仮想アドレスと物理領域(物理記憶装置)の物理アドレスとの対応関係を示すV−Rマップ21a(図7参照)が含まれてよい。なお、V−Rマップ21aは、メモリ2bに保持されてもよく、また、仮想ディスク20ごとではなく複数の仮想ディスク20全体で1つのV−Rマップ21aとしてもよい。
図3に示す例では、管理サーバ2は、マスタVDISK及び運用VDISKとしての2つの仮想ディスク20をそなえるものとする。なお、管理サーバ2が提供する仮想ディスク20は1つとし、マスタVDISK及び運用VDISKは、業務サーバ4(OS40及び42)により、1つの仮想ディスク20を分割又はパーティション作成することによって生成(設定)されてもよい。
図4は、第1実施形態の一例としての管理サーバ2の機能構成例を示す図である。管理サーバ2は、例示的に、プール管理部22,チャンク割当部23A,及びアクセス処理部24をそなえることができる。なお、以下、管理サーバ2におけるライトI/O受信後の処理について説明する。リードI/Oやその他の管理サーバとしての機能については、既知の手法を用いることができるため、その詳細な説明は省略する。
プール管理部22は、複数のチャンクの集合体(グループ)であるプール20bの管理を行なう。例えば、プール管理部22は、物理ディスク10の連続した空き領域(連続領域)を複数のプール20bに分割し、プール20bごとにstartアドレスとendアドレスとを管理することができる。
図5に第1実施形態に係るスナップショットの領域管理手法の例を示す。例えば、プール管理部22は、図5に示すように、複数(図5では100個)のチャンク20aを1つのプール20bとして管理することができる。なお、チャンク20aは任意のサイズとしてよく、例えば1Mバイト程度のサイズとすることができる。また、プール20bには任意の数のチャンク20aを含めてよい。
プール管理部22は、予め所定数のチャンク20aを含むプール20bを複数仮作成しておくことができる。このとき、プール管理部22は、各プール20b内のチャンク20aを割り当てる仮想アドレスの範囲(startアドレス及びendアドレス)を仮設定してもよい。
図5の例では、プール管理部22は、インデックス値(物理アドレス)“0x001”〜“0x100”のチャンク20aでプール20bを区画することができ、インデックス値“0x101”〜“0x200”のチャンク20aでプール20bを区画することができる。以下、インデックス値“0x001”〜“0x100”のプール20bをプール1といい、インデックス値“0x101”〜“0x200”のプール20bをプール2という場合がある。
プール管理部22は、プール20bを管理するため、仮想ディスク20と物理ディスク10とのマッピング情報を管理するプール管理テーブル21bをメモリ2bに生成・更新して用いることができる。プール管理テーブル21bの一例を図6に示す。
図6に例示するように、プール管理テーブル21bは、プール20bごとに、空きチャンク数,空きチャンク管理テーブル,先頭論理アドレス,最終論理アドレス,及びタイムスタンプが含まれ得る。空きチャンク数は、プール20b内で未割当のチャンク20aの数が設定され、仮想アドレスにチャンク20aが新たに割り当てられる際に更新(減算)される。
空きチャンク管理テーブルは、プール20bに対応する物理ディスク10の記憶領域の情報が設定される。例えば空きチャンク管理テーブルには、プール20bの先頭のインデックス値に対応する先頭物理アドレス,プール20bの最終のインデックス値に対応する最終物理アドレス,及び次に払い出す物理アドレスが含まれ得る。次に払い出す物理アドレスは、次にチャンク20aに割り当てられる物理アドレスを示し、仮想アドレスにチャンク20aが新たに割り当てられる際に更新(次の物理アドレスに変更;例えばアドレスがインクリメント)される。
先頭論理(仮想)アドレス(startアドレス)は、プール20b内の仮想アドレスのうち、最もアドレスの小さい(先頭の)仮想アドレスが設定される。なお、プール管理部22によりプール20bが仮作成されたときには、先頭論理アドレスの値は、設定されなくてもよく、プール管理部22によりstartアドレスが仮設定された場合には当該startアドレスが設定されてもよい。
最終論理(仮想)アドレス(endアドレス)は、プール20b内の仮想アドレスのうち、最もアドレスの大きい(最終の)仮想アドレスが設定される。なお、プール管理部22によりプール20bが仮作成されたときには、最終論理アドレスの値は、設定されなくてもよく、プール管理部22によりendアドレスが仮設定された場合には当該endアドレスが設定されてもよい。
なお、先頭論理アドレス及び最終論理アドレスは、start及びendアドレスが仮設定された場合にはこれらのアドレスの値が設定され得るが、仮想アドレスの割当範囲はファーストライト時に決定されることが好ましい。これは、start及びendアドレスが予め設定されることで、仮想アドレスがどのプール20bにも該当しないケースが増加し、後述のように仮想アドレスがタイムスタンプの最も古いプール20bに割り当てられるためである。すなわち、仮想アドレスの割当範囲がファーストライト時に決定されることで、プール20b内の仮想アドレスの割当範囲の拡大を抑制し、シーケンシャルな仮想アドレスへのリードI/Oの際に物理ディスク10のシーク量を小さく抑えることができる。
チャンク割当部23Aがプール20b内の空きチャンク20aを新たな仮想アドレスに割り当てる際に、新たな仮想アドレスの値が先頭論理アドレスよりも小さい場合、プール管理部22は、先頭論理アドレスを新たな仮想アドレスに置き換える。また、新たな仮想アドレスの値が最終論理アドレスよりも大きい場合、プール管理部22は、最終論理アドレスを新たな仮想アドレスに置き換える。なお、全てのチャンク20aが未割当であった場合(当該プール20bから初めてチャンク20aが割り当てられた場合)、プール管理部22は、先頭論理アドレス及び最終論理アドレスを新たな仮想アドレスに置き換える。
タイムスタンプには、当該プール20bの情報の作成又は更新時刻が設定される。なお、プール管理部22は、図6に示すプール管理テーブル21bの情報を、配列により管理することができる。
チャンク割当部23Aは、受信したライトI/Oで指定されるライトアドレス(仮想アドレス)に基づいて、ライトアドレスに割り当てるチャンク20aを獲得する。
例えば、チャンク割当部23Aは、V−Rマップ21aにライトアドレスと同じ仮想アドレスが存在するか否かを判定する。ライトアドレスと同じ仮想アドレスがV−Rマップ21aに存在する場合、当該ライトI/Oは2回目以降の差分データのライトである。そこで、チャンク割当部23Aは、V−Rマップ21aからライトアドレスに対応する物理アドレスを取得し(チャンク20aを獲得し)、当該物理アドレスの情報をアクセス処理部24に通知する。
一方、ライトアドレスと同じ仮想アドレスがV−Rマップ21aに存在しない場合、当該ライトI/Oは差分データのファーストライトである。そこで、チャンク割当部23Aは、プール管理テーブル21bを参照して、ライトアドレス(仮想アドレス)をキーに、プール20bの選択及び選択したプール20b内のチャンク20aの選択(獲得)を行なう。
例えばチャンク割当部23Aは、チャンク20aの選択に、ライトアドレスと、プール管理テーブル21b内の各プール20bの先頭論理アドレスから所定の閾値を減算した値(アドレス)及び最終論理アドレスに所定の閾値を加算した値(アドレス)とを用いる。
一例として、図7及び図8に示すように、ファーストライトがランダムライト(オフセット“103”,“5”,“11”,“110”,“13”,及び“12”の仮想アドレスへのライト)の場合について説明する。なお、前提として、運用VDISK20では全プール20bで仮想アドレスにチャンク20aが未割当であり、所定の閾値が“20”であるものとする。
(1)オフセット“103”のライトI/Oに対して
チャンク割当部23Aは、プール管理テーブル21bを参照し、ライトアドレス“103”が“先頭論理アドレス所定の閾値(但し最小値を“0”とする)”から“最終論理アドレス+所定の閾値”の範囲内となるプール20bを探索する。しかし、前提条件から全プール20bで仮想アドレスにチャンク20aが未割当のため、先頭論理アドレス及び最終論理アドレスはいずれも未設定(“0”)であり、各プール20bの仮想アドレスの割当範囲は“0”から“20”となる。
ライトアドレス“103”を格納可能なプール20bが無いため、チャンク割当部23Aは、ライトアドレス“103”に空きプール20bの先頭のチャンク20aを割り当てる(図7中、運用VDISK20のプール1,インデックス値“0x001”参照)。このとき、チャンク割当部23Aは、プール管理テーブル21bの空きチャンク管理テーブルを参照し、先頭物理アドレスが最も小さい空きプール20bを選択し、次に払い出す物理アドレス(=先頭物理アドレス)を先頭のチャンク20aと判断する。
なお、このとき、プール管理部22は、プール管理テーブル21bに対して、プール1に係る空きチャンク数を1減算し、先頭論理アドレス及び最終論理アドレスに“103”を設定し、タイムスタンプに更新時刻を設定する。また、プール管理部22は、プール管理テーブル21bの空きチャンク管理テーブルに対して、次に払い出す物理アドレスに、チャンク割当部23Aが割り当てたチャンク20aのインデックス値の次のインデックス値“0x002”を設定する。
また、チャンク割当部23Aは、アクセス処理部24によりチャンク20aにライトデータがライトされると、V−Rマップ21aに対して、割り当てを行なった仮想アドレス“103”と物理アドレス“0x001”とを登録する(図7のV−Rマップ21a参照)。
(2)オフセット“5”のライトI/Oに対して
次のライトI/Oを受信すると、チャンク割当部23Aは、上記(1)と同様にプール管理テーブル21bを参照し、ライトアドレス“5”を割当範囲に含むプール20bを探索する。プール1は、上記(1)において割当範囲が“103-20=83”から“103+20=123”になっているため選択されない。そこで、チャンク割当部23Aは、割当範囲が“0”から“20”(初期範囲)であるプール2を選択する。
そして、チャンク割当部23Aは、図7に示すように、プール2の次に払い出す物理アドレスに基づき、ライトアドレス“5”にプール2の先頭のチャンク20a(インデックス値“0x101”)を割り当てる。なお、上記(1)と同様に、プール管理部22はプール管理テーブル21bを更新し、チャンク割当部23Aはライトデータのライト後にV−Rマップ21aを更新する。
(3)オフセット“11”のライトI/Oに対して
次のライトI/Oを受信すると、チャンク割当部23Aは、上記(1)及び(2)と同様にプール管理テーブル21bを参照し、ライトアドレス“11”を割当範囲に含むプール20bを探索する。そして、チャンク割当部23Aは、割当範囲が“5-20=0”から“5+20=25”でありライトアドレス“11”を含むプール2を選択する。
チャンク割当部23Aは、図7に示すように、プール2の次に払い出す物理アドレスに基づき、ライトアドレス“5”にプール2の次のチャンク20a(インデックス値“0x102”)を割り当てる。なお、上記(1)及び(2)と同様に、プール管理部22はプール管理テーブル21bを更新し、チャンク割当部23AはV−Rマップ21aを更新する。このとき、プール管理部22は、プール管理テーブル21bの最終論理アドレスを“5”から“11”に置き換える。これにより、次回以降のライトI/Oでは、プール2の割当範囲が“5-20=0”から“11+20=31”となる。
(4)オフセット“110”のライトI/Oに対して
この場合、ライトアドレス“110”は、割当範囲“103-20=83”から“103+20=123”であるプール1のインデックス値“0x002”のチャンク20aに割り当てられ、プール1の最終論理アドレスが“103”から“110”に置き換えられる(図8参照)。
(5)オフセット“13”のライトI/Oに対して
この場合、ライトアドレス“13”は割当範囲“5-20=0”から“11+20=31”であるプール2のインデックス値“0x103”のチャンク20aに割り当てられ、プール2の最終論理アドレスが“11”から“13”に置き換えられる(図8参照)。
(6)オフセット“12”のライトI/Oに対して
この場合、ライトアドレス“12”は割当範囲“5-20=0”から“13+20=33”であるプール2のインデックス値“0x104”のチャンク20aに割り当てられる(図8参照)。なお、ライトアドレス“12”は先頭論理アドレス“5”よりも大きく最終論理アドレス“13”よりも小さいため、先頭論理アドレス及び最終論理アドレスは更新されない。
以上のように、チャンク割当部23Aは、仮想アドレスに新しくチャンク20aを割り当てる場合、ライトする仮想アドレスをキーにして、“先頭論理アドレス閾値”から“最終論理アドレス+閾値”の間となるプール20bから空きチャンク20aを割り当てる。このとき、チャンク割当部23Aは、割当範囲が拡がる場合には、先頭論理アドレス及び最終論理アドレスの少なくとも一方を更新する。
これにより、チャンク割当部23Aによれば、近くの仮想アドレスに対して同一のプール20bのチャンク20aを割り当てることができる。従って、図9に例示するように、ランダムライトI/O以降に発生したシーケンシャルリードI/Oの実施時に、物理ディスク10へのシーク量を減らすことができ、アクセス性能を向上させることができる。
なお、図9では、図8のライトI/O(6)の実施後に、オフセット“11”,“12”,及び“13”へのシーケンシャルリードI/Oが発生した場合を示す。このとき、シーケンシャルリードI/Oに係る全ての仮想アドレスに、プール2の物理アドレスが割り当てられている。
従って、管理サーバ2がRAID装置1(物理ディスク10)からデータをリードする際に、物理ディスク10では、物理アドレス(物理領域)が互いに近傍の“0x102”,“0x104”,及び“0x103”から順にリードデータを読み出せばよい。これにより、物理ディスク10では、シーク量の小さいアクセスを行なえばよく、リードデータを高速に読み出すことができ、リードI/Oの発行元である業務サーバ4への応答性能を向上させることができる。
また、チャンク割当部23Aは、仮想アドレスにプール20bからチャンク20aが割り当てられる都度、当該プール20bの仮想アドレスへの割当範囲の更新を試みる。これにより、仮想アドレスの割当範囲をライトI/Oの都度、オフセットを考慮して適切に拡張することができ、ライトI/Oに係るライトアドレスが割当範囲から外れる可能性を低下させるとともに、近傍の仮想アドレスを1つのプール20bに集約させることができる。
さらに、チャンク割当部23Aは、先頭論理アドレス及び最終論理アドレスによる割当範囲の判定でライトアドレスに割り当てるプール20bが存在しないと判断すると、未使用のプール20bを選択する。このとき、未使用のプール20bが存在しなければ、チャンク割当部23Aは、タイムスタンプに基づき最も更新時刻の古いプール20bを選択することができる。
これにより、ライトアドレスに割当可能なプール20bが存在しない場合でも、割当範囲が拡張することの影響が少ないプール20bからライトアドレスに割り当てるチャンク20aを選択できる。従って、当該プール20bについて先頭論理アドレス及び最終論理アドレスの少なくとも一方が更新されて、割当範囲が拡張しても、シーケンシャルリードI/Oの性能低下を最小限に抑えることができる。
なお、チャンク割当部23Aは、ライトアドレスが複数(例えば2つ)のプール20bの割当範囲内にあるとき、ライトアドレスにより近い(近傍の)プール20bを選択することができる。例えば、管理サーバ2が図10に示すプール20bを管理している場合、オフセット“65”のライトアドレス(仮想アドレス)に対して、プール2が選択される。図10では、各プール20bについて、チャンク割当部23Aが先頭論理アドレス及び最終論理アドレスのうちのライトアドレスに近い方のアドレスとライトI/Oに係るライトアドレスとの差を算出し、算出した差が小さいプール20bを選択する例を示している。これにより、近傍の仮想アドレスを1つのプール20bに集約させることができ、シーケンシャルリードI/Oの性能を向上させることができる。
また、チャンク割当部23Aは、ライトアドレスが割当範囲に含まれるプール20bを探索する際に、ライトアドレスが先頭論理アドレスと最終論理アドレスとの間に含まれるプール20bを検出した場合、当該プール20bからチャンク20aを選択してもよい。この場合、ライトアドレスが他のプール20bの割当範囲に含まれる可能性は低く、含まれたとしても他のプール20bでは所定の閾値による割当範囲の拡張が行なわれている(検出したプール20bが最もライトアドレスに近い)からである。なお、このとき、チャンク割当部23Aは、他のプール20bの探索を打ち切ってよい。これにより、プール20bの探索負荷を低減し、探索処理にかかる時間を短縮することができる。
以上のように、プール管理部22は、物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、設定した連続領域に割り当てる仮想アドレスの割当範囲を設定する設定部の一例であるといえる。また、チャンク割当部23Aは、設定した割当範囲内の仮想アドレスに設定した連続領域の物理アドレスを割り当てる割当部の一例であるといえる。
図4の説明に戻り、チャンク割当部23Aは、上述のようにして獲得したチャンク20aの情報をアクセス処理部24に通知する。
アクセス処理部24は、チャンク割当部23Aから通知されたチャンク20aに対してアクセスを行ない、ライトI/Oに係るライトデータのライトを行なう。なお、アクセス処理部24は、ファーストライトの場合であって、ライトデータがチャンクサイズに満たない場合には、コピーオンライト操作(処理)を行なうことができる。
コピーオンライト操作では、アクセス処理部24は、ライトデータをチャンク20aにライトする際に不足する分のデータをマスタVDISK20からリードして、メモリ2bに格納し、ライトデータとマージしてチャンク20aサイズのデータを生成する。そして、アクセス処理部24は、生成したデータをチャンク割当部23Aから通知されたチャンク20aにライトする。
〔2−3〕管理サーバの動作例
次に、上述の如く構成された管理サーバ2の動作例を、図11及び図12を参照して説明する。
はじめに、図11に示すフローチャートを参照して、管理サーバ2におけるライトI/Oの処理の動作例について説明する。
まず、図11に示すように、ライトI/Oが入力されると、管理サーバ2のチャンク割当部23Aが、V−Rマップ21aにライトI/Oに係る仮想アドレスが存在するか否かを判定する(ステップS1)。V−Rマップ21aにライトI/Oに係る仮想アドレスが存在しない場合(ステップS1のNoルート)、チャンク割当部23Aは、複数のプール20bのうちの1つのプール20bから未使用のチャンク20aを獲得する(ステップS2)。
次いで、チャンク割当部23Aは、獲得したチャンク20aをアクセス処理部24に通知する。アクセス処理部24は、通知されたチャンク20aにライトデータを書き込む。このとき、ライトデータがチャンク20aサイズ未満であれば、コピーオンライト操作を行ない、ライトデータにマスタVDISK20からリードした不足分のデータをマージしてチャンク20aにライトする(ステップS3)。
そして、チャンク割当部23Aは、V−Rマップ21aに対して、割り当てを行なった(ライトが行なわれた)仮想アドレスと物理アドレスとを登録(更新)し(ステップS4)、処理が終了する。
一方、V−Rマップ21aにライトI/Oに係る仮想アドレスが存在する場合(ステップS1のYesルート)、チャンク割当部23Aは、当該仮想アドレスに対応する物理アドレス(チャンク20a)をV−Rマップ21aから取得(獲得)する(ステップS5)。
そして、チャンク割当部23Aは、獲得したチャンク20aをアクセス処理部24に通知する。アクセス処理部24は、通知されたチャンク20aにライトデータを書き込み(ステップS6)、処理が終了する。以上により、管理サーバ2におけるライトI/Oの処理が終了する。
次に、図12に示すフローチャートに従って、チャンク割当部23A(及びプール管理部22)による未使用チャンク20aの獲得処理の動作例(図11のステップS2の詳細例)を説明する。
図12に示すように、チャンク割当部23Aが、複数のプール20bから1つのプール20bを選択し、選択したプール20bに空きチャンク20aがあるか否かを判定する(ステップS11)。選択したプール20bに空きチャンク20aがある場合(ステップS11のYesルート)、チャンク割当部23Aは、プール管理テーブル21bを参照し、選択したプール20bに係る先頭/最終論理アドレスを取得する。そして、チャンク割当部23Aは、ライトI/Oに係るライトアドレス(仮想アドレス)が先頭論理アドレスと最終論理アドレスとの間にあるか否かを判定する(ステップS12)。
ライトアドレスが先頭及び最終論理アドレス間にある場合(ステップS12のYesルート)、処理がステップS19に移行する。一方、ライトアドレスが先頭及び最終論理アドレス間にない場合(ステップS12のNoルート)、チャンク割当部23Aは、ライトアドレスが“先頭論理アドレス−閾値”と“最終論理アドレス+閾値”との間にあるか否かを判定する(ステップS13)。
ライトアドレスが所定の閾値を考慮した先頭/最終論理アドレス間にある場合(ステップS13のYesルート)、チャンク割当部23Aは、選択したプール20bを選択候補リストに記憶し(ステップS14)、処理がステップS15に移行する。一方、ライトアドレスが所定の閾値を考慮した先頭/最終論理アドレス間にない場合(ステップS13のNoルート)、処理がステップS15に移行する。なお、ステップS11において、選択したプール20bに空きチャンク20aがない場合(ステップS11のNoルート)にも、処理がステップS15に移行する。
ステップS15では、チャンク割当部23Aは、全てのプール20bについて判断(ステップS11〜S13の少なくとも一部の判断)したか否かを判定する。全てのプール20bについて判断をしていない場合(ステップS15のNoルート)、処理がステップS11に移行する。
ステップS15において、全てのプール20bについて判断した場合(ステップS15のYesルート)、チャンク割当部23Aは、プール20bの選択候補リストが存在するか否かを判定する(ステップS16)。選択候補リストがある場合(ステップS16のYesルート)、チャンク割当部23Aは、選択候補リストから、ライトアドレスが先頭又は最終論理アドレスに最も近いプール20bを選択し(ステップS17)、処理がステップS19に移行する。
一方、選択候補リストがない場合(ステップS16のNoルート)、チャンク割当部23Aは、複数のプール20bから、空きチャンク20aが存在するプール20bであって、タイムスタンプの時刻が最も古いプール20bを選択する(ステップS18)。そして、チャンク割当部23Aは、選択したプール20bから空きチャンク20aを獲得する(ステップS19)。このとき、チャンク割当部23Aは、獲得したチャンク20aをアクセス処理部24に通知する。
なお、ステップS17経由で実行されるステップS19では、チャンク割当部23Aは、選択候補リストの中から選択されたプール20bから、空きチャンク20aを獲得する。また、ステップS12のYesルート経由で実行されるステップS19では、チャンク割当部23Aは、ライトアドレスが先頭及び最終論理アドレス間にあるプール20b(ステップS11で選択したプール20b)から、空きチャンク20aを獲得する。
そして、プール管理部22は、チャンク割当部23Aにより獲得されたチャンク20aを含むプール20bについて、プール管理テーブル21bを更新し(ステップS20)、処理が終了する。なお、ステップS20では、プール管理部22は、空きチャンク数の減算及びタイムスタンプの更新を行なう。また、ライトアドレスが先頭論理アドレスよりも小さい場合には先頭論理アドレスを更新し、ライトアドレスが最終論理アドレスよりも大きい場合には最終論理アドレスを更新する。以上により、チャンク割当部23A(及びプール管理部22)による未使用チャンク20aの獲得処理が終了する。
〔2−4〕第1実施形態の効果
第1実施形態に係る仮想ストレージ装置によれば、プール20b(連続領域)内のチャンク20a(物理アドレス)に最初に割り当てられた仮想アドレスに基づき、プール20bに割り当てる仮想アドレスの割当範囲が設定される。そして、設定した割当範囲内の仮想アドレスにプール20bのチャンク20aが割り当てられる。従って、差分データが存在する仮想アドレスへのシーケンシャルリードI/Oのアクセス性能を、物理ディスク10でのシーク時間を小さくさせることで向上(低下を抑制)させることができる。
また、プール20bに含まれない(割当範囲外の)仮想アドレスについても、他の該当するプール20bのチャンク20aが割り当てられるため、仮想アドレスの割当範囲ごとに物理的に連続する連続領域が割り当てられることになる。従って、仮想ディスク20全体に亘ってシーケンシャルリードI/Oのアクセス性能を向上させることができる。
なお、従来、仮想アドレスには、仮想アドレスへのライトI/O順にチャンクが割り当てられるため、シーケンシャルな仮想アドレスに対して差分データが物理ディスク上で物理的にランダムに配置されることがある。このとき、シーケンシャルリードI/Oは、仮想ストレージ装置では物理ディスクに対するランダムリードI/Oとなり、アクセス性能が低下する。
一方、第1実施形態に係る管理サーバ2では、仮想アドレスへのライトI/Oが発生すると、仮想アドレスをキーとして差分データを格納するチャンク20aが選択される。そして、管理サーバ2は、シーケンシャルな仮想アドレスに対して複数の差分データが物理ディスク10上の近傍のブロック(チャンク20a)に配置されるように制御を行なうことで、上述したアクセス性能を向上させることができるのである。
さらに、例えば業務サーバ4のOS40又は42は、同じスナップショットディスク(仮想ディスク20)を分割、又は、同じスナップショットディスクをパーティション分割して、複数のアプリケーションで同時に使用する場合がある。この場合においても、従来の手法では仮想ストレージ装置ではファーストライトがランダムアクセスとなり、以降のシーケンシャルリードI/Oで性能劣化が見られるが、第1実施形態に係る管理サーバ2によれば、アクセス性能を向上させることができる。
また、管理サーバ2によれば、仮想アドレスに物理アドレスを割り当てる際に、リアルタイムで略シーケンシャルな配置が行なえるため、デフラグのように後からデータを整列する場合と比較して、割り当て直後からアクセス性能を向上させることができる。
〔2−5〕第1実施形態の第1変形例
第1実施形態では、各プール20bの仮想アドレスの範囲を、ファーストライト時に決定するものとして説明したが、これに限定されるものではない。例えば、管理サーバ2は、図13に示すように、プール管理部22に代えて、予め仮想アドレスの範囲を固定に設定するプール管理部22′をそなえることができる。
プール管理部22′は、図14に例示するように、プール20bの作成の際にstart及びendアドレスを仮設定し、上述のようにプール管理テーブル21bの先頭論理アドレス及び最終論理アドレスに当該start及びendアドレスを設定することができる。
図15に示すように、プール管理部22′は、インデックス値(物理アドレス)“0x001”〜“0x100”のチャンク20aで区画したプール20bについて、オフセット(仮想アドレス)“1”〜“50”の範囲を仮設定する。また、プール管理部22′は、インデックス値“0x101”〜“0x200”のチャンク20aで区画したプール20bについて、オフセット“100”〜“150”の範囲を仮設定する。なお、図15の例では、プール20bに含まれるチャンク数が仮想アドレスの数よりも多くなっているが、チャンク数を仮想アドレスの数と同数にしてもよい。
以上のように、第1変形例に係る手法によっても、第1実施形態と同様の効果を奏することができる。また、プール管理部22′がプール20bの割当範囲を仮設定することで、プール管理部22′は、ファーストライト時にプール管理テーブル21bの先頭論理アドレス及び最終論理アドレスの更新を不要とすることができる。従って、仮想アドレスがプール20bの選択範囲内であればプール20bへの割り当て性能を向上させることができる。
〔2−6〕第1実施形態の第2変形例
第1実施形態及び第1変形例では、チャンク割当部23Aは仮想アドレスをプール20bの割当範囲内でファーストアクセス順に割り当てるものとして説明したが、これに限定されるものではない。例えば、図16及び図17に示すように、管理サーバ2は、所定のタイミングで(例えば定期的に)プール20b内の仮想アドレスをソートするチャンク更新部25を更にそなえることができる。
以下、図18に示すフローチャートに従って、チャンク更新部25による仮想アドレスのソート処理の動作例を説明する。
まず、チャンク更新部25は、メモリ2b又は仮想ディスク20等の記憶領域における仮想アドレス退避領域を初期化する(ステップS21)。なお、チャンク更新部25は、仮想アドレス退避領域をメモリ2b又は仮想ディスク20等の記憶領域から新たに確保してもよい。
次に、チャンク更新部25は、プール20bを1つ選択し(ステップS22)、選択したプール20bから1つチャンク20aを選択する(ステップS23)。そして、チャンク更新部25は、V−Rマップ21aから選択したチャンク20a(物理アドレス)に格納されている仮想アドレスを抽出する(ステップS24)。
次いで、チャンク更新部25は、退避領域の仮想アドレス(退避領域に格納されている仮想アドレス)が“0”であるか否か、及び抽出した仮想アドレスが退避領域の仮想アドレスよりも大きいか否かを判定する(ステップS25)。なお、ステップS25では、退避領域の全ての仮想アドレスについて順に判定が行なわれる。
退避領域の仮想アドレスが“0”である、又は抽出した仮想アドレスが退避領域の仮想アドレスよりも大きい場合(ステップS25のYesルート)、チャンク更新部25は、抽出した仮想アドレスを退避領域に格納する(ステップS26)。
そして、チャンク更新部25は、選択したプール20bの全てのチャンク20aについて判定を行なったか否かを判断し(ステップS27)、全てのチャンク20aについて判定を行なっていない場合(ステップS27のNoルート)、処理がステップS23に移行する。一方、全てのチャンク20aについて判定を行なった場合(ステップS27のYesルート)、チャンク更新部25は、全てのプール20bについて判定を行なったか否かを判断する(ステップS28)。全てのプール20bについて判断を行なっていない場合(ステップS28のNoルート)、処理がステップS22に移行する。一方、全てのプール20bについて判定を行なった場合(ステップS28のYesルート)、処理が終了する。
また、ステップS25において、退避領域の仮想アドレスが“0”でなく(値が設定されており)、且つ抽出した仮想アドレスが退避領域の仮想アドレス以下である場合(ステップS25のNoルート)、処理がステップS29に移行する。ステップS29では、チャンク更新部25は、抽出した仮想アドレスに対応する物理アドレスのチャンク20aを退避領域の仮想アドレスに対応する物理アドレスのチャンク20aと入れ替える。
そして、チャンク更新部25は、V−Rマップ21aを更新し(ステップS30)、選択したプール20bのループインデックス値を退避領域の仮想アドレスのインデックス値に変更して(ステップS31)、処理がステップS26に移行する。これにより、抽出した全ての仮想アドレスについて上記の判定を行なわれる。以上により、チャンク更新部25によるプール内の仮想アドレスのソート処理が終了する。
第1実施形態の第2変形例によれば、第1実施形態及び第1変形例と同様の効果を奏することができる。また、チャンク更新部25は、プール20b内の仮想アドレスを定期的にソートすることで、よりシーケンシャルな仮想アドレスの割り当てとなり、シーケンシャルリードI/O実施時のアクセス性能を更に向上させることができる。
〔3〕第2実施形態
次に、第2実施形態に係る管理サーバ2について説明する。図19は第2実施形態の一例としての管理サーバ2の機能構成例を示す図である。図19に例示するように、第2実施形態に係る管理サーバ2は、第1実施形態に係るプール管理部22に代えて、論理チャンク管理部27をそなえるとともに、チャンク割当部23Aとは異なるチャンク割当部23Bをそなえることができる。また、第2実施形態に係る管理サーバ2のメモリ2bは、プール管理テーブル21bに代えて、論理チャンク管理テーブル26a及びビットマップ26bを保持することができる。なお、以下の第2実施形態の説明において、第1実施形態に係る管理サーバ2と共通する機能,処理の重複した説明は省略する。
論理チャンク管理部27は、複数のチャンクの集合体(グループ)である論理チャンク20cの管理を行なう。図20に第2実施形態に係るスナップショットの領域管理手法の例を示す。論理チャンク20cは、図20に示すように、例えば物理ディスク10の連続した4つの空き領域(チャンク20a)を束ねた(纏めた)記憶領域(連続領域)である。なお、論理チャンク20cには、任意の数のチャンク20aを含めてよい。
論理チャンク管理部27は、予め所定数のチャンク20aを含む論理チャンク20cを複数仮作成しておくことができる。このとき、論理チャンク管理部27は、各論理チャンク20c内のチャンク20aを割り当てる仮想アドレスの範囲(startアドレス及びendアドレス)を仮設定する。すなわち、論理チャンク20c内のチャンク数により、1つの論理チャンク20cに格納する仮想アドレスの範囲が決まり(例えば“0x001”〜“0x004”,“0x005”〜“0x008”,・・・)、1つのチャンク20aが使用される際に論理チャンク20cが使用される。
論理チャンク管理部27は、図21に例示するように、チャンク割当部23Bによる1つのチャンク20aの使用後は論理チャンク20c内の残りのチャンク20aを予約状態とする。予約状態のチャンク20aは、図22に例示するように、チャンク割当部23Bにより、使用されたチャンク20aが割り当てられた仮想アドレスに続く(連続した)仮想アドレスにのみ割り当てられる。
例えば、図21において、オフセット“1”のファーストライトI/Oにより、論理チャンク20cのインデックス(物理アドレス)“0x001”が仮想アドレスに割り当てられた場合を説明する。この場合、インデックス値“0x001”を含む論理チャンク20cの残りのチャンク20a(インデックス値“0x002”〜“0x004”)は、オフセット“2”〜“4”のファーストライトI/Oのために予約される。すなわち、図22に示すように、連続して、又はランダムに入力されたオフセット“3”,“4”,“2”に対するファーストライトI/Oに対して、それぞれインデックス値“0x003”,“0x004”,“0x002”のチャンク20aが割り当てられる。
論理チャンク管理部27は、論理チャンク20cを管理するため、論理チャンク20c及び複数のチャンク20aの状態を管理する論理チャンク管理テーブル26aをメモリ2bに生成・更新して用いることができる。論理チャンク管理テーブル26aの一例を図23に示す。
図23に例示するように、論理チャンク管理テーブル26aは、論理チャンク20cごとに、論理チャンク20cの状態,先頭物理アドレス,及び複数の物理アドレスの使用状態が含まれ得る。論理チャンク20cの状態は、全てのチャンク20aが未使用,少なくとも1のチャンク20aが使用中,論理チャンク20cが解体されている状態(解体),及び全ての論理チャンク20cに空きがない状態(空きなし)のいずれかを設定される。論理チャンク20cの状態は、チャンク20aが使用される(仮想アドレスに割り当てられる)際等に更新される。
先頭物理アドレスは、論理チャンク20cの先頭の物理アドレスを設定される。物理アドレス使用状態は、論理チャンク20c内の各チャンク20a(物理アドレス)について、仮想アドレスに割り当てられている使用,他のチャンク20aが使用されていることによる予約,及び空きが設定される。チャンク20aの状態は、チャンク20aが使用される(仮想アドレスに割り当てられる)際等に更新される。なお、論理チャンク管理部27は、図23に示す論理チャンク管理テーブル26aの情報を、配列により管理することができる。
また、論理チャンク管理部27は、図24に例示するビットマップを管理することができる。ビットマップ26bは、図24に示すように、1つの論理チャンク20cで使用する物理チャンク(チャンク20a)群の使用状態をチャンク20a単位で管理する。ビットマップ26bが“0”の位置のチャンク20aは予約又は空きの状態である未使用状態を示し、“1”の位置のチャンク20aは使用状態を示す。図24の例では、1つの論理チャンク20cに含まれる100個のチャンク20aが全て未使用状態であることを示している。論理チャンク管理部27は、後述するように、使用中の論理チャンク20cを解体するか否かを判定するためにビットマップ26bを用いることができる。
チャンク割当部23Bは、受信したライトI/Oで指定されるライトアドレス(仮想アドレス)に基づいて、ライトアドレスに割り当てるチャンク20aを獲得する。例えば、チャンク割当部23Bは、論理チャンク管理テーブル26a及びビットマップ26bを用いて、ライトI/O(ファーストライトI/O)のライトアドレスに割り当てる論理チャンク20c及び論理チャンク20cの物理チャンク(チャンク20a)を判定する。
なお、チャンク割当部23Bは、チャンク20aの割り当ての際に仮想アドレスを予約したチャンク20aがなく、且つ未使用の論理チャンク20cがない場合は、論理チャンク20c内のチャンク使用率が低い論理チャンク20cを解体することができる。そして、チャンク割当部23Bは、解体した論理チャンク20cから空きチャンク20aを仮想アドレスに割り当てる。これにより、未使用の記憶領域が発生しないように制御することができる。
以下、チャンク割当部23B(及び論理チャンク管理部27)の処理を、図25に示すフローチャート(図11のステップS2の詳細例)に沿って説明する。なお、以下の処理は、ライトI/OがファーストライトI/Oである、つまりオフセット(ライトアドレス)と同じ仮想アドレスがV−Rマップ21aに存在しない場合に実行されるものとする。
図25に示すように、例えば、チャンク割当部23Bは、オフセットを論理チャンク20c内の物理チャンク数で除算して、除算結果(商)である論理チャンク番号を取得する。また、チャンク割当部23Bは、オフセットを論理チャンク20c内の物理チャンク数で除算して、除算結果(余り)である論理チャンク内位置を取得する(ステップS41)。
なお、論理チャンク番号は、論理チャンク20cを特定する番号であり、論理チャンク内位置は、論理チャンク20cにおけるチャンク20aの位置を特定する情報である。論理チャンク番号及び論理チャンク内位置は、論理チャンク管理部27により設定される。
そして、チャンク割当部23Bは、論理チャンク管理テーブル26aに基づいて、特定した論理チャンク20cの状態が使用中であるか否かを判定する(ステップS42)。使用中である場合(ステップS42のYesルート)、チャンク割当部23Bは、該当する物理チャンクのアドレスを取得してライトアドレスに割り当てる。また、論理チャンク管理部27は物理アドレスの使用状態を予約から使用に変更し(ステップS43)、処理が終了する。
一方、ステップS42において論理チャンク20cが使用中ではない場合(ステップS42のNoルート)、チャンク割当部23Bは、論理チャンク20cの状態が解体であるか否かを判定する(ステップS44)。解体である場合(ステップS44のYesルート)、当該論理チャンク20cは使用率が低く解体されているため、チャンク割当部23Bは、全ての論理チャンク20cから空きの物理チャンクのアドレスを1つ取得してライトアドレスに割り当てる。また、論理チャンク管理部27は、当該物理アドレスの使用状態を空きから使用に変更し(ステップS45)、処理が終了する。
また、ステップS44において論理チャンク20cが解体ではない場合(ステップS44のNoルート)、チャンク割当部23Bは、ライトアドレスに対して新たにチャンク20a(論理チャンク20c)を獲得する。例えば、チャンク割当部23Bは、論理チャンク20cの状態に空きがあるか否かを判定する(ステップS46)。空きがない(全論理チャンク20cの状態が空きなしである)場合(ステップS46のNoルート)、全論理チャンク20cは、使用中又は解体された状態である。そこで、チャンク割当部23Bは、全論理チャンク20cのうちの解体状態の論理チャンク20cから空きの物理チャンクのアドレスを1つ取得してライトアドレスに割り当てる。また、論理チャンク管理部27は、当該物理アドレスの使用状態を空きから使用に変更し(ステップS47)、処理が終了する。
なお、ステップS45又はS47における全ての又は解体状態の論理チャンク20cからの空きの物理チャンクのアドレスの取得は、任意の物理チャンクを取得してもよいし、第1実施形態の手法を用いてもよい。すなわち、第1実施形態のチャンク割当部23Aのように、論理チャンク20cの仮想アドレスの割当範囲がライトアドレス(オフセット)に最も近い論理チャンク20cから物理チャンクを取得してもよい。この場合、管理サーバ2のメモリ2bに論理チャンク20c用のプール(論理チャンク)管理テーブル21bをそなえてもよい。
ステップS46において論理チャンク20cに空きがある(状態が空きなしではない論理チャンク20cがある)場合(ステップS46のYesルート)、チャンク割当部23Bは、空きの論理チャンク20cを用いるか、使用中の論理チャンク20cを解体して用いる。例えば、チャンク割当部23Bは、空きチャンク群(空き論理チャンク20c)の獲得を試み、獲得できたか否かを判定する(ステップS48)。
空きチャンク群を獲得できなかった場合(ステップS48のYesルート)、チャンク割当部23Bは、全論理チャンク20cのうちの使用中の論理チャンク20cのうち、チャンク20aの使用率が最も低い論理チャンク20cを解体する。例えば、チャンク割当部23Bは、ビットマップ26bを参照し、未使用“0”の比率が最も高い論理チャンク20cを検出する。そして、チャンク割当部23Bは、検出した論理チャンク20cを解体し(ステップS49)、処理がステップS47に移行する。なお、解体処理では、論理チャンク管理部27が、論理チャンク管理テーブル26aの状態を使用中から解体に変更し、当該論理チャンク20c内の物理アドレスの使用状態を予約から空きに変更する。
一方、ステップS48において、空き物理チャンク群を獲得できた場合(ステップS48のYesルート)、論理チャンク管理部27は、論理チャンク管理テーブル26aの状態を未使用から使用中に変更する。また、論理チャンク管理部27は、当該論理チャンク管理テーブル26aの先頭アドレスに論理チャンク20cの新たな先頭の物理アドレスとなる“xxxx”を設定し、物理アドレスの使用状態に予約を設定する(ステップS50)。
そして、チャンク割当部23Bは、該当する物理チャンクのアドレスを獲得する。また、論理チャンク管理部27は、論理チャンク管理テーブル26aの物理アドレスの使用状態を予約から使用に変更し(ステップS51)、処理が終了する。以上により、チャンク割当部23B(及び論理チャンク管理部27)による未使用チャンク20aの獲得処理が終了する。
以上のように、第2実施形態に係る管理サーバ2によれば、物理的に連続した複数のチャンク20aが論理チャンク20cで管理される。これにより、第2実施形態に係る管理サーバ2は、論理チャンク20c内でシーケンシャルな仮想アドレスに対して差分データの物理アドレスも物理ディスク10上に連続して配置されるように制御することができる。
例えば、図22に示すランダムライトI/O後に、オフセット“1”,“2”,“3”の順でシーケンシャルリードI/Oを実施する場合(図26参照)、論理チャンク20c内では物理ディスク10上にリード対象のデータが連続して配置されている。すなわち、第2実施形態に係る管理サーバ2によれば、ランダムライトI/O(アクセス)でばらばらに受信した仮想アドレスであっても、シーケンシャルな仮想アドレスにシーケンシャルな物理アドレスを効率的に割り当てることができる。従って、物理ディスク10内のシーク時間が小さくなりアクセス性能が向上する。
このように、第2実施形態に係る管理サーバ2によれば、第1実施形態と同様の効果を奏することができるほか、データをリアルタイムで整列可能なため、デフラグのように後からデータを整列する場合と比較して、アクセス性能がリアルタイムに向上する。
以上のように、論理チャンク管理部27は、物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、設定した連続領域に割り当てる仮想アドレスの割当範囲を設定する設定部の一例であるといえる。また、チャンク割当部23Bは、設定した割当範囲内の仮想アドレスに設定した連続領域の物理アドレスを割り当てる割当部の一例であるといえる。
〔3−1〕第2実施形態の変形例
第2実施形態に係る管理サーバ2は、物理的に連続した複数のチャンク20aを論理チャンク20cで管理するが、性能向上の効果を高めるには、論理チャンク20c内の全てのチャンク20aに対して差分データがライトされることが望ましい。論理チャンク20c内に抜けのチャンク20aがある場合にシーケンシャルリードI/Oが実行されると、当該抜けのチャンク20aについてはマスタVDISK20からデータがリードされるため、アクセス性能が低下するためである。
例えば、第2実施形態の変形例では、管理サーバ2のチャンク割当部23Bは、一定間隔(所定のタイミング)で論理チャンク20c内のチャンク20aの使用率の確認を行なってもよい。また、チャンク割当部23Bは、使用率が閾値(例えば75%)以上となった論理チャンク20cの予約状態のチャンク20aに対して、マスタVDISK20からデータを読み出し、差分データとして書き込む(補完する)ことができる。
一例として、図27に示すように、チャンク割当部23Bは、一定間隔(例えば数分〜数時間等)で論理チャンク20c内のチャンク20aの使用率をチェックする。“0x005”〜“0x008”の論理チャンク20cにおいて、“0x007”以外のチャンク20aが使用状態である場合、チャンク割当部23Bは、当該論理チャンク20cの使用率が75%、つまり閾値以上であることを検出する。そして、チャンク割当部23Bは、予約状態のインデックス値“0x007”のチャンク20aについて、マスタVDISK20から対応するデータを読み出し、運用VDISK20上の“0x007”のチャンク20aを補完することができる。
これにより、第2実施形態の変形例によれば、第2実施形態と同様の効果を奏することができるほか、論理チャンク20c内の抜けのチャンク20aのデータを補完することができる。従って、シーケンシャルリードI/Oのアクセス性能をさらに向上させることができる。
〔4〕ハードウェア構成例
図28に示すように、上述した第1及び第2実施形態並びに各変形例に係る管理サーバ2は、CPU2a,メモリ2b,記憶部2c,インタフェース部2d,入出力部2e,記録媒体2f,及び読取部2gをそなえることができる。
CPU2aは、種々の制御や演算を行なう演算処理装置(プロセッサ)の一例である。CPU2aは、対応する各ブロック2b〜2gと接続され、メモリ2b,記憶部2c,記録媒体2fや2h,又は図示しないROM(Read Only Memory)等に格納されたプログラムを実行することにより、種々の機能を実現することができる。例えばCPU2aは、メモリ2bに格納された管理プログラム21c(図3参照)(ストレージ管理プログラム)を実行することにより、管理サーバ2の機能を実現することができる。
メモリ2bは、種々のデータやプログラムを格納する記憶装置である。CPU2aは、プログラムを実行する際に、メモリ2bにデータやプログラムを格納し展開する。メモリ2bは、上記管理プログラム21cを保存することができる。なお、メモリ2bとしては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。記憶部2cは、種々のデータやプログラム等を格納するハードウェアである。記憶部2cとしては、例えばHDD等の磁気ディスク装置,SSD等の半導体ドライブ装置,フラッシュメモリ等の不揮発性メモリ等の各種装置が挙げられる。なお、図3に示すRAID装置1の物理ディスク10は、記憶部2cにより実現されてもよい。
インタフェース部2dは、有線又は無線による、ネットワーク(例えばネットワーク3)や他の情報処理装置或いはRAID装置1等との間の接続及び通信の制御等を行なうものである。インタフェース部2dとしては、例えば、LAN(Local Area Network),ファイバチャネル(Fibre Channel;FC),インフィニバンド(InfiniBand)等に準拠したアダプタが挙げられる。入出力部2eは、マウスやキーボード等の入力装置及びディスプレイやプリンタ等の出力装置の少なくとも一方を含むことができる。例えば、入力装置は管理者等による管理サーバ2への各種設定やデータの入力等の作業に用いられてよく、出力装置は管理サーバ2による動作状態や処理結果等の出力に用いられてよい。
記録媒体2fは、例えばフラッシュメモリやROM等の記憶装置であり、種々のデータやプログラムを記録することができる。読取部2gは、コンピュータ読取可能な記録媒体2hに記録されたデータやプログラムを読み出す装置である。記録媒体2f及び2hの少なくとも一方には、本実施形態に係る管理サーバ2の各種機能の全部もしくは一部を実現する管理プログラム21cが格納されてもよい。例えば、CPU2aは、記録媒体2fから読み出した管理プログラム21c、又は、読取部2gを介して記録媒体2hから読み出した管理プログラム21cを、メモリ2b等の記憶装置に展開して実行してもよい。
なお、記録媒体2hとしては、例えばフレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク等の光ディスクや、USB(Universal Serial Bus)メモリやSDカード等のフラッシュメモリが挙げられる。なお、CDとしては、CD−ROM、CD−R(CD-Recordable)、CD−RW(CD-Rewritable)等が挙げられる。また、DVDとしては、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
上述した各ブロック2a〜2g間はバスで相互に通信可能に接続される。また、管理サーバ2の上述したハードウェア構成は例示である。従って、管理サーバ2内でのハードウェアの増減(例えば任意のブロックの追加や省略),分割,任意の組み合わせでの統合,バスの追加又は省略等は適宜行なわれてもよい。
〔5〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、図3,図4,図13,図16,及び図19等に示す管理サーバ2の各機能ブロックは、任意の組み合わせで併合してもよく、分割してもよい。また、ストレージシステムにはRAID装置1及び業務サーバ4がそれぞれ1つずつそなえられてもよい。
また、各実施形態及び各変形例における、チャンク20aのサイズ,プール20bや論理チャンク20cに含まれるチャンク20aの数,プール20bにおける仮想アドレスの割当範囲等は、あくまで例示であり、それぞれ任意の値を設定することができる。
〔6〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
データの格納先の仮想記憶領域の仮想アドレスに、物理記憶領域の物理アドレスを割り当てるストレージ管理装置であって、
前記物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域に割り当てる仮想アドレスの割当範囲を設定する設定部と、
設定した割当範囲内の仮想アドレスに前記設定した連続領域の物理アドレスを割り当てる割当部と、を有する
ことを特徴とする、ストレージ管理装置。
(付記2)
設定した割当範囲外の仮想アドレスに他の連続領域の物理アドレスを割り当てる、
ことを特徴とする、付記1記載のストレージ管理装置。
(付記3)
前記設定部は、前記割当部が仮想アドレスに物理アドレスを割り当てると、割り当てた仮想アドレスに基づき前記連続領域に割り当てる仮想アドレスの割当範囲を更新する、
ことを特徴とする、付記2記載のストレージ管理装置。
(付記4)
前記割当部は、仮想アドレスの割り当て先として複数の連続領域を抽出した場合、前記複数の連続領域に割り当てる仮想アドレスのうち、データの格納先の仮想アドレスにより近い仮想アドレスが割り当てられている連続領域を選択する、
ことを特徴とする、付記1〜3のいずれか1項記載のストレージ管理装置。
(付記5)
連続領域内で割当済の複数の仮想アドレスが連続する物理アドレスに割り当てられるように、前記連続領域内で割当済の複数の仮想アドレスに割り当てられた物理アドレスを変更する、
ことを特徴とする、付記1〜4のいずれか1項記載のストレージ管理装置。
(付記6)
前記割当部は、連続領域に含まれる物理アドレス数に基づいて、データの格納先の仮想アドレスに割り当てる物理アドレスと、他の仮想アドレスのために予約する物理アドレスとを決定する、
ことを特徴とする、付記1又は付記2記載のストレージ管理装置。
(付記7)
前記割当部は、連続領域内で割当済の仮想アドレスと連続する仮想アドレスに対して、前記連続領域内に含まれる物理アドレスが連続するように予約し、仮想アドレスに物理アドレスを割り当てる際に、当該仮想アドレスが予約済の物理アドレスに対応する仮想アドレスである場合、当該仮想アドレスに対して当該予約済の物理アドレスを割り当てる、
ことを特徴とする、付記6記載のストレージ管理装置。
(付記8)
前記割当部は、物理アドレスの割当率が高い連続領域における仮想アドレスへの予約済の未割当の物理アドレスについては、当該物理アドレスに対応する仮想アドレスに関する補完データを書き込み、当該物理アドレスを予約状態から割当済に変更する、
ことを特徴とする、付記6又は付記7記載のストレージ管理装置。
(付記9)
コンピュータに、
データの格納先の仮想記憶領域の仮想アドレスに、物理記憶領域の物理アドレスを割り当て、
前記物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域に割り当てる仮想アドレスの割当範囲を設定し、
設定した割当範囲内の仮想アドレスに前記設定した連続領域の物理アドレスを割り当てる
処理を実行させることを特徴とする、ストレージ管理プログラム。
(付記10)
前記コンピュータに、
設定した割当範囲外の仮想アドレスに他の連続領域の物理アドレスを割り当てる、
処理を実行させることを特徴とする、付記9記載のストレージ管理プログラム。
(付記11)
前記コンピュータに、
仮想アドレスに物理アドレスを割り当てると、割り当てた仮想アドレスに基づき前記連続領域に割り当てる仮想アドレスの割当範囲を更新する、
処理を実行させることを特徴とする、付記10記載のストレージ管理プログラム。
(付記12)
前記コンピュータに、
仮想アドレスの割り当て先として複数の連続領域を抽出した場合、前記複数の連続領域に割り当てる仮想アドレスのうち、データの格納先の仮想アドレスにより近い仮想アドレスが割り当てられている連続領域を選択する、
処理を実行させることを特徴とする、付記9〜11のいずれか1項記載のストレージ管理プログラム。
(付記13)
前記コンピュータに、
連続領域内で割当済の複数の仮想アドレスが連続する物理アドレスに割り当てられるように、前記連続領域内で割当済の複数の仮想アドレスに割り当てられた物理アドレスを変更する、
処理を実行させることを特徴とする、付記9〜12のいずれか1項記載のストレージ管理プログラム。
(付記14)
前記コンピュータに、
連続領域に含まれる物理アドレス数に基づいて、データの格納先の仮想アドレスに割り当てる物理アドレスと、他の仮想アドレスのために予約する物理アドレスとを決定する、
処理を実行させることを特徴とする、付記9又は付記10記載のストレージ管理プログラム。
(付記15)
前記コンピュータに、
連続領域内で割当済の仮想アドレスと連続する仮想アドレスに対して、前記連続領域内に含まれる物理アドレスが連続するように予約し、
仮想アドレスに物理アドレスを割り当てる際に、当該仮想アドレスが予約済の物理アドレスに対応する仮想アドレスである場合、当該仮想アドレスに対して当該予約済の物理アドレスを割り当てる、
処理を実行させることを特徴とする、付記14記載のストレージ管理プログラム。
(付記16)
前記コンピュータに、
物理アドレスの割当率が高い連続領域における仮想アドレスへの予約済の未割当の物理アドレスについては、当該物理アドレスに対応する仮想アドレスに関する補完データを書き込み、当該物理アドレスを予約状態から割当済に変更する、
処理を実行させることを特徴とする、付記14又は付記15記載のストレージ管理プログラム。
(付記17)
データの格納先の仮想記憶領域の仮想アドレスに、物理記憶領域の物理アドレスを割り当て、
前記物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域に割り当てる仮想アドレスの割当範囲を設定し、
設定した割当範囲内の仮想アドレスに前記設定した連続領域の物理アドレスを割り当てる
ことを特徴とする、制御方法。
(付記18)
設定した割当範囲外の仮想アドレスに他の連続領域の物理アドレスを割り当てる、
ことを特徴とする、付記17記載の制御方法。
(付記19)
仮想アドレスに物理アドレスを割り当てると、割り当てた仮想アドレスに基づき前記連続領域に割り当てる仮想アドレスの割当範囲を更新する、
ことを特徴とする、付記18記載の制御方法。
(付記20)
連続領域に含まれる物理アドレス数に基づいて、データの格納先の仮想アドレスに割り当てる物理アドレスと、他の仮想アドレスのために予約する物理アドレスとを決定する、
ことを特徴とする、付記17又は付記18記載の制御方法。
1,1−1〜1−m RAID装置(ストレージ装置)
10 物理ディスク(物理記憶装置)
2 管理サーバ(ストレージ管理装置)
2a CPU
2b メモリ
2c 記憶部
2d インタフェース部
2e 入出力部
2f,2h 記録媒体
2g 読取部
20 仮想ディスク(マスタVDISK,運用VDISK,仮想記憶装置)
20a チャンク
20b プール(連続領域)
20c 論理チャンク(連続領域)
21a,210 V−Rマップ
21b プール管理テーブル
21c 管理プログラム
22,22′ プール管理部
23A,23B チャンク割当部
24 アクセス処理部
25 チャンク更新部
26a 論理チャンク管理テーブル
26b ビットマップ
27 論理チャンク管理部
200 運用VDISK
3 ネットワーク
4,4−1〜4−n 業務サーバ(上位装置)
40,42 OS
41 VM

Claims (8)

  1. データの格納先の仮想記憶領域の仮想アドレスに、物理記憶領域の物理アドレスを割り当てるストレージ管理装置であって、
    前記物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域に割り当てる仮想アドレスの割当範囲を設定する設定部と、
    設定した割当範囲内の仮想アドレスに前記設定した連続領域の物理アドレスを割り当てる割当部と、を有する
    ことを特徴とする、ストレージ管理装置。
  2. 設定した割当範囲外の仮想アドレスに他の連続領域の物理アドレスを割り当てる、
    ことを特徴とする、請求項1記載のストレージ管理装置。
  3. 前記設定部は、前記割当部が仮想アドレスに物理アドレスを割り当てると、割り当てた仮想アドレスに基づき前記連続領域に割り当てる仮想アドレスの割当範囲を更新する、
    ことを特徴とする、請求項2記載のストレージ管理装置。
  4. 前記割当部は、仮想アドレスの割り当て先として複数の連続領域を抽出した場合、前記複数の連続領域に割り当てる仮想アドレスのうち、データの格納先の仮想アドレスにより近い仮想アドレスが割り当てられている連続領域を選択する、
    ことを特徴とする、請求項1〜3のいずれか1項記載のストレージ管理装置。
  5. 連続領域内で割当済の複数の仮想アドレスが連続する物理アドレスに割り当てられるように、前記連続領域内で割当済の複数の仮想アドレスに割り当てられた物理アドレスを変更する、
    ことを特徴とする、請求項1〜4のいずれか1項記載のストレージ管理装置。
  6. 前記割当部は、連続領域に含まれる物理アドレス数に基づいて、データの格納先の仮想アドレスに割り当てる物理アドレスと、他の仮想アドレスのために予約する物理アドレスとを決定する、
    ことを特徴とする、請求項1又は請求項2記載のストレージ管理装置。
  7. コンピュータに、
    データの格納先の仮想記憶領域の仮想アドレスに、物理記憶領域の物理アドレスを割り当て、
    前記物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域に割り当てる仮想アドレスの割当範囲を設定し、
    設定した割当範囲内の仮想アドレスに前記設定した連続領域の物理アドレスを割り当てる
    処理を実行させることを特徴とする、ストレージ管理プログラム。
  8. データの格納先の仮想記憶領域の仮想アドレスに、物理記憶領域の物理アドレスを割り当て、
    前記物理記憶領域に、複数の物理アドレスが連続する連続領域を設定し、設定した連続領域内の物理アドレスに最初に割り当てられた仮想アドレスに基づき、前記設定した連続領域に割り当てる仮想アドレスの割当範囲を設定し、
    設定した割当範囲内の仮想アドレスに前記設定した連続領域の物理アドレスを割り当てる
    ことを特徴とする、制御方法。
JP2014132287A 2014-06-27 2014-06-27 ストレージ管理装置,ストレージ管理プログラム,及び制御方法 Withdrawn JP2016012166A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014132287A JP2016012166A (ja) 2014-06-27 2014-06-27 ストレージ管理装置,ストレージ管理プログラム,及び制御方法
US14/718,471 US9552292B2 (en) 2014-06-27 2015-05-21 Apparatus and method for allocating virtual memory addresses to continuous physical addresses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014132287A JP2016012166A (ja) 2014-06-27 2014-06-27 ストレージ管理装置,ストレージ管理プログラム,及び制御方法

Publications (1)

Publication Number Publication Date
JP2016012166A true JP2016012166A (ja) 2016-01-21

Family

ID=54930671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014132287A Withdrawn JP2016012166A (ja) 2014-06-27 2014-06-27 ストレージ管理装置,ストレージ管理プログラム,及び制御方法

Country Status (2)

Country Link
US (1) US9552292B2 (ja)
JP (1) JP2016012166A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275689B2 (en) 2017-07-05 2022-03-15 Fujitsu Limited Data loading method, data loading apparatus, and recording medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990537B1 (en) 2020-01-07 2021-04-27 International Business Machines Corporation Logical to virtual and virtual to physical translation in storage class memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986016B2 (en) * 2002-09-30 2006-01-10 International Business Machines Corporation Contiguous physical memory allocation
JP2007502470A (ja) 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
US20060294334A1 (en) * 2005-06-23 2006-12-28 International Business Machines Corporation Statement regarding federally sponsored-research or development
US8417915B2 (en) * 2005-08-05 2013-04-09 Arm Limited Alias management within a virtually indexed and physically tagged cache memory
JP2008065434A (ja) 2006-09-05 2008-03-21 Matsushita Electric Ind Co Ltd プログラム起動制御装置
JP4535117B2 (ja) 2007-11-06 2010-09-01 ソニー株式会社 メモリ装置、メモリ管理方法、およびプログラム
JP4905810B2 (ja) 2008-10-01 2012-03-28 日本電気株式会社 ストレージ装置、領域割り当て方法、及びプログラム
JP5540636B2 (ja) 2009-10-02 2014-07-02 日本電気株式会社 ストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラム
EP2450785A1 (en) 2009-10-09 2012-05-09 Hitachi Ltd. Data storage controller and virtual volume control method
US9318168B2 (en) * 2012-11-27 2016-04-19 Samsung Electronics Co., Ltd. Memory system for continuously mapping addresses of a memory module having defective locations
US20140281366A1 (en) * 2013-03-15 2014-09-18 Cognitive Electronics, Inc. Address translation in a system using memory striping
US9483400B2 (en) * 2014-04-21 2016-11-01 Microsoft Technology Licensing, Llc Multiplexed memory for segments and pages

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275689B2 (en) 2017-07-05 2022-03-15 Fujitsu Limited Data loading method, data loading apparatus, and recording medium

Also Published As

Publication number Publication date
US9552292B2 (en) 2017-01-24
US20150378933A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
US10296237B2 (en) System and method for raid management, reallocation, and restripping
JP4684864B2 (ja) 記憶装置システム及び記憶制御方法
US9183219B1 (en) Data migration between multiple tiers in a storage system using policy based ILM for QOS
US10387038B1 (en) Storage space allocation for logical disk creation
JP4841632B2 (ja) ロジカル・パーティションにプロセッサを割り当てるための方法、装置、およびプログラム
US7966470B2 (en) Apparatus and method for managing logical volume in distributed storage systems
CN106610903B (zh) 层级化存储器系统、存储器控制器和去重及存储器层级化方法
EP3617867A1 (en) Fragment management method and fragment management apparatus
JP6511795B2 (ja) ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
US8768883B2 (en) Storage apparatus and control method of the same
JP6056856B2 (ja) ストレージ制御装置、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
US10235071B2 (en) Tiered storage system, storage controller and tiering control method
US10782922B2 (en) Storage device volume selection for improved space allocation
JP2016012166A (ja) ストレージ管理装置,ストレージ管理プログラム,及び制御方法
CN106970830B (zh) 一种分布式虚拟机的存储控制方法及虚拟机
WO2015140931A1 (ja) トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
JP6022116B1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
JP6536618B2 (ja) 情報処理装置、情報処理システム、及び制御プログラム
JP5821392B2 (ja) ストレージ装置、およびストレージ管理方法
US20130151808A1 (en) Allocation device, allocation method and storage device
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
US11544005B2 (en) Storage system and processing method
JP6657990B2 (ja) ストレージ装置、仮想ボリューム制御システム、仮想ボリューム制御方法および仮想ボリューム制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171106