JP5583227B1 - 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法 - Google Patents

物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法 Download PDF

Info

Publication number
JP5583227B1
JP5583227B1 JP2012543403A JP2012543403A JP5583227B1 JP 5583227 B1 JP5583227 B1 JP 5583227B1 JP 2012543403 A JP2012543403 A JP 2012543403A JP 2012543403 A JP2012543403 A JP 2012543403A JP 5583227 B1 JP5583227 B1 JP 5583227B1
Authority
JP
Japan
Prior art keywords
physical block
disk
data
block
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012543403A
Other languages
English (en)
Other versions
JPWO2014045391A1 (ja
Inventor
正樹 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of JP5583227B1 publication Critical patent/JP5583227B1/ja
Publication of JPWO2014045391A1 publication Critical patent/JPWO2014045391A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0647Migration mechanisms

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)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

実施形態によれば、ディスクアレイコントローラは、データコピー部と、物理ブロック入れ替え部とを具備する。データコピー部は、マスタ論理ディスクとバックアップ論理ディスクを同期状態にするために前記マスタ論理ディスクから前記バックアップ論理ディスクにデータをコピーする。物理ブロック入れ替え部は、前記マスタ論理ディスクに割り当てられた第1の物理ブロックに対応付けられている前記バックアップ論理ディスクに割り当てられた第2の物理ブロックに代えて第3の物理ブロックに割り当てを入れ替える場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記第3の物理ブロックを前記バックアップ論理ディスクに割り当てる。

Description

本発明の実施形態は、物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法に関する。
一般にディスクアレイ装置は、ハードディスクドライブ(HDD)、或いはソリッドステートドライブ(SSD)のような複数の物理ディスクを備えている。ディスクアレイ装置は、前記複数の物理ディスクの記憶領域が連続した1つの領域として定義される1つ以上のディスクアレイを含む。ディスクアレイ装置のコントローラ(つまりディスクアレイコントローラ)は、前記1つ以上のディスクアレイの記憶領域を用いて1つ以上の論理ディスク(例えば複数の論理ディスク)を定義(構築)する。
また近年は、信頼性の向上のために、任意の論理ディスクのペアをマスタ論理ディスク及びバックアップ論理ディスクとして用いるディスクアレイ装置も知られている。このようなディスクアレイ装置では、レプリケーションとデータ移動(以下、マイグレーションと称する)とが行われる。
レプリケーションとは、マスタ論理ディスクからバックアップ論理ディスクにデータをコピーする動作を指す。コピー完了後、マスタ論理ディスク及びバックアップ論理ディスクは同期状態に移行する。同期状態では、マスタ論理ディスクにライトされたデータは、バックアップ論理ディスクにもライトされる。
マスタ論理ディスクとバックアップ論理ディスクとが論理的に切り離されると、両ディスクはスプリット状態に移行する。スプリット状態においてマスタ論理ディスクまたはバックアップ論理ディスクでデータ更新(つまり単一のデータライト)が行われた場合、ディスクアレイコントローラは、そのデータ更新範囲(ライト範囲)を差分として管理する。具体的にはディスクアレイコントローラは、データ更新範囲を、差分情報により差分領域として管理する。マスタ論理ディスク及びバックアップ論理ディスクを再度同期状態に移行させる際には、ディスクアレイコントローラは差分情報に基づき、当該両ディスク間でデータが不一致となっている領域(つまり差分領域)のみを対象に、マスタ論理ディスクからバックアップ論理ディスクにデータをコピーする。このコピーはレプリケーションコピーまたは差分コピーと呼ばれる。
マイグレーションとは、論理ディスク内の論理ブロックに割り当てられている第1の物理ブロックを当該第1の物理ブロックとは異なる第2の物理ブロックに入れ替える動作を指す。マイグレーションでは、第1の物理ブロック(つまり入れ替え元の物理ブロック)から第2の物理ブロック(つまり入れ替え先の物理ブロック)にデータがコピーされる。このコピーはマイグレーションコピーと呼ばれる。
ディスクアレイコントローラは、マイグレーションコピー中に前記論理ブロックにライトされるべきデータを、前記第1及び第2の物理ブロック双方にライトする。マイグレーションコピーの完了後、ディスクアレイコントローラは、前記論理ブロックに割り当てられている第1の物理ブロックを第2の物理ブロックに入れ替える。つまりディスクアレイコントローラは、論理ブロックと物理ブロックとの対応を表すマッピング情報を入れ替える。
マイグレーションの対象となる物理ブロックの決定には、従来から様々な方法が提案されている。最も単純な方法は、低速な物理ブロックの負荷が高い場合に、当該低速な物理ブロックを高速な物理ブロックに入れ替えることである。これとは逆に、高速な物理ブロックの負荷が低い場合に、当該高速な物理ブロックを低速な物理ブロックに入れ替える方法も適用可能である。
特開2010−122761号公報 特開2008−046763号公報
従来技術では、前記2種類のコピー動作は各々独立して実行される。しかし、ディスクアレイコントローラによるコピー動作は、ホスト装置から当該ディスクアレイコントローラに対して発行されるアクセス要求(データアクセス要求)に対する応答の性能に影響を与える。
本発明が解決しようとする課題は、コピー動作を低減することができる、物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法を提供することにある。
実施形態によれば、ディスクアレイ装置は、複数のディスクアレイと、前記複数のディスクアレイを制御するディスクアレイコントローラとを具備する。前記ディスクアレイコントローラは、論理ブロック管理部と、データコピー部と、物理ブロック入れ替え判定部と、物理ブロック入れ替え部とを具備する。前記論理ブロック管理部は、前記複数のディスクアレイから選択された複数の物理ブロックを割り当てて複数の論理ディスクを定義する。前記データコピー部は、マスタ論理ディスクとバックアップ論理ディスクを同期状態にするために前記マスタ論理ディスクから前記バックアップ論理ディスクにデータをコピーする。前記物理ブロック入れ替え判定部は、前記マスタ論理ディスクに割り当てられた第1の物理ブロックから前記バックアップ論理ディスクに、前記データコピー部によってデータがコピーされる前に、前記第1の物理ブロックまたは前記第1の物理ブロックに対応付けられている前記バックアップ論理ディスクに割り当てられた第2の物理ブロックに代えて、第3の物理ブロックに割り当てを入れ替えるかを判定する。前記物理ブロック入れ替え部は、前記第2の物理ブロックに代えて第3の物理ブロックに割り当てを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、前記第1の物理ブロックを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、且つ前記第1の物理ブロックから前記第3の物理ブロックにデータがコピーされた後に前記マスタ論理ディスクに対する前記第1の物理ブロックの割り当てを前記第3の物理ブロックに入れ替える。
図1は、実施形態に係るストレージシステムの典型的なハードウェア構成を示すブロック図である。 図2は、図1に示されるディスクアレイコントローラの機能構成を主として示すブロック図である。 図3は、RAIDグループにおける物理ブロックを説明するための図である。 図4は、ストレージプールにおけるRAIDグループを説明するための図である。 図5は、論理ディスクの定義を説明するための図である。 図6は、物理ブロック管理データのデータ構造例を示す図である。 図7は、論理ブロック管理データのデータ構造例を示す図である。 図8は、ストレージプール管理データのデータ構造例を示す図である。 図9は、論理−物理マッピングテーブルのデータ構造例を示す図である。 図10は、マスタ論理ディスクからバックアップ論理ディスクへのデータのコピーを説明するための図である。 図11は、レプリケーションの状態遷移を説明するための図である。 図12は、RAIDグループの物理領域の階層化の例を示す図である。 図13は、論理ディスク内の論理ブロックへの異なる階層の物理ブロックの割り当ての例を示す図である。 図14は、論理ディスク内の論理ブロックに割り当てられる物理ブロックを入れ替える処理の概要を説明するための図である。 図15は、同実施形態で適用されるリード処理の典型的な手順を示すフローチャートである。 図16は、同実施形態で適用されるレプリケーションコピー処理の典型的な手順を示すフローチャートである。
以下、実施の形態につき図面を参照して説明する。
図1は、実施形態に係るストレージシステムの典型的なハードウェア構成を示すブロック図である。ストレージシステムは、ディスクアレイ装置10、ホストコンピュータ(以下、ホストと称する)20、及びネットワーク30から構成される。ディスクアレイ装置10は、ネットワーク30を介してホスト20と接続されている。ホスト20は、ディスクアレイ装置10を外部記憶装置として利用する。ネットワーク30は、例えば、ストレージエリアネットワーク(SAN)、インターネット或いはイントラネットである。インターネット或いはイントラネットは、例えばイーサネット(登録商標)により構成される。
ディスクアレイ装置10は、例えば、物理ディスク11−0乃至11−3を含む物理ディスク群と、ディスクアレイコントローラ12と、ディスクインタフェースバス13とを備えている。物理ディスク群は、ソリッドステートドライブ(SSD)群、或いはハードディスクドライブ(HDD)群、或いはSSD群及びHDD群である。本実施形態では、物理ディスク群は、SSD群及びHDD群であるものとする。SSD群の各々は、書き換え可能な不揮発性メモリ(例えばフラッシュメモリ)の集合から構成される。
ディスクアレイコントローラ12は、ディスクインタフェースバス13を介して物理ディスク11−0乃至11−3を含む物理ディスク群と接続されている。ディスクインタフェースバス13のインタフェース種別は、例えば、スモールコンピュータシステムインタフェース(SCSI)、ファイバチャネル(FC)、シリアルアタッチドSCSI(SAS)、或いはシリアルATアタッチメント(SATA)である。
ディスクアレイコントローラ12は、物理ディスク群を制御する。ディスクアレイコントローラ12は、複数の物理ディスクを用いてディスクアレイを構成し且つ管理する。図1の例では、3つのディスクアレイ110−0乃至110−2が示されている。ディスクアレイ110−0乃至110−2は、例えばRAID(Redundant Arrays of Independent DisksまたはRedundant Arrays of Inexpensive Disks)技術を使用して構築されるRAID構成のアレイ(つまりRAIDディスクアレイ)である。ディスクアレイ110−0乃至110−2の各々は、ディスクアレイコントローラ12(ディスクアレイ制御プログラム)によって単一の物理ディスクとして管理される。以下の説明では、ディスクアレイ110−0乃至110−2を特に区別する必要がない場合には、ディスクアレイ110−0乃至110−2の各々をディスクアレイ110−*と表記する。同様に、物理ディスク11−0乃至11−3を特に区別する必要がない場合には、物理ディスク11−0乃至11−3の各々を物理ディスク11−*と表記する
ディスクアレイコントローラ12は、ホストインタフェース(ホストI/F)121と、ディスクインタフェース(ディスクI/F)122と、キャッシュメモリ123と、キャッシュコントローラ124と、フラッシュROM(FROM)125と、ローカルメモリ126と、CPU127と、チップセット128と、内部バス129とを備えている。ディスクアレイコントローラ12は、ホストI/F121によりネットワーク30を介してホスト20と接続される。ホストI/F121のインタフェース種別は、例えば、FC、或いはインターネットSCSI(iSCSI)である。
ホストI/F121は、ホスト20との間のデータ転送(データ転送プロトコル)を制御する。ホストI/F121は、ホスト20によって発行される論理ディスク(論理ボリューム)に対するデータアクセス要求(リード要求またはライト要求)を受信し、当該データアクセス要求に対する応答を返信する。論理ディスクは、1つ以上のディスクアレイ110−*内の少なくとも一部の記憶領域を実体として論理的に実現される。ホストI/F121は、ホスト20からデータアクセス要求を受信すると、当該要求を内部バス129、チップセット128を経由して、CPU127に伝達する。データアクセス要求を受け取ったCPU127は、ディスクアレイ制御プログラムに従い、当該データアクセス要求を処理する。
もし、データアクセス要求がライト要求であれば、CPU127は、当該ライト要求で指定されるアクセス領域(論理ディスク内の論理領域)に割り当てられているディスクアレイ110−*内の物理領域を特定して、データライトを制御する。具体的には、CPU127は、第1のデータライト、または第2のデータライトを制御する。第1のデータライトは、ライトデータを一旦キャッシュメモリ123に格納した後に、当該データをディスクアレイ110−*内の前記特定された物理領域にライトする動作である。第2のデータライトは、ライトデータを即時に前記特定された物理領域に直接ライトする動作である。本実施形態では、第1のデータライトが実施されるものとする。
一方、データアクセス要求がリード要求であれば、CPU127は、当該リード要求で指定されるアクセス領域(論理ディスク内の論理領域)に割り当てられているディスクアレイ110−*内の物理領域を特定して、データリードを制御する。具体的には、CPU127は、第1のデータリード、または第2のデータリードを制御する。前記第1のデータリードは、前記特定された物理領域のデータがキャッシュメモリ123内に格納されている場合に実施される。つまり前記第1のデータリードは、前記特定された物理領域のデータをキャッシュメモリ123からリードして、当該リードされたデータをホストI/F121に返信することにより、当該リードされたデータをホスト20に返信させる動作である。前記第2のデータリードは、前記特定された物理領域のデータがキャッシュメモリ123内に格納されていない場合に実施される。つまり前記第2のデータリードは、ディスクアレイ110−*内の前記特定された物理領域からデータをリードして、当該リードされたデータをホストI/F121に返信することにより、当該リードされたデータをホスト20に返信させる動作である。前記特定された物理領域からリードされたデータはキャッシュメモリ123に格納される。
ディスクI/F122は、CPU127(ディスクアレイ制御プログラム)が受信したホスト20からのデータアクセス要求(論理ディスクに対するライト要求またはリード要求)に従い、ディスクアレイ110−*の物理ディスク11−*に対してライト要求またはリード要求を送信し、その応答を受信する。キャッシュメモリ123は、ホスト20からのデータアクセス要求がホストI/F121で受信された場合に、当該データアクセス要求(ライト要求またはリード要求)に対する完了応答の高速化のためのバッファとして用いられる。
データアクセス要求がライト要求の場合、CPU127はライト処理に時間が掛かるディスクアレイ110−*へのアクセスを避ける。そのためCPU127は、キャッシュコントローラ124を用いて、一旦ライトデータをキャッシュメモリ123に格納することでライト処理を完了させて、ホスト20に応答を返信する。その後CPU127は、任意のタイミングで、前記ライトデータをディスクアレイ110−*の物理ディスク11−*にライトする。そしてCPU127は、前記ライトデータが格納されているキャッシュメモリ123の記憶領域を、キャッシュコントローラ124を用いて開放する。
一方、データアクセス要求がリード要求の場合、要求されたデータ(つまりリードされるべきデータ)がキャッシュメモリ123に格納されているならば、CPU127はリード処理に時間が掛かるディスクアレイ110−*へのアクセスを避ける。そのためCPU127は、要求されたデータを、キャッシュコントローラ124を用いてキャッシュメモリ123から取得して、ホスト20に応答を返信する(第1のデータリード)。
キャッシュコントローラ124は、CPU127(ディスクアレイ制御プログラム)からの命令に従い、キャッシュメモリ123からのデータのリードを実施する。キャッシュコントローラ124はまた、CPU127からの命令に従い、キャッシュメモリ123へのデータのライトも実施する。ここで、キャッシュコントローラ124が、前記リード要求に対して極力キャッシュメモリ123に格納されているデータで応答できるようにするために、物理ディスク11−*から事前にデータをリードしても良い。つまりキャッシュコントローラ124が、今後発生する可能性があるリード要求を予め予測して、物理ディスク11−*から対応するデータを事前にリードし、当該リードされたデータをキャッシュメモリ123に格納しても良い。
FROM125は、書き換えが可能な不揮発性メモリである。FROM125は、CPU127により実行されるディスクアレイ制御プログラムを格納するのに用いられる。CPU127は、ディスクアレイコントローラ12が起動されたときの最初の処理で、FROM125に格納されているディスクアレイ制御プログラムをローカルメモリ126にコピーする。なお、FROM125に代えて読み出し専用の不揮発性メモリ、例えばROMを用いても良い。
ローカルメモリ126は、DRAMのような書き換えが可能な揮発性メモリである。ローカルメモリ126の一部の記憶領域は、FROM125からコピーされたディスクアレイ制御プログラムを格納するのに用いられる。ローカルメモリ126の他の一部の記憶領域は、CPU127のためのワーク領域として用いられる。CPU127は、ローカルメモリ126に格納されたディスクアレイ制御プログラムのプログラムコードに従い、ディスクアレイ装置10全体(特にディスクアレイコントローラ12内の各部)を制御する。つまりCPU127は、ローカルメモリ126に格納されているディスクアレイ制御プログラムを、チップセット128を介してリードして実行することで、ディスクアレイ装置10全体を制御する。
チップセット128は、CPU127及びその周辺回路を内部バス129に結合するブリッジ回路である。内部バス129は汎用バスであり、例えばPCI(Peripheral Component Interconnect)expressバスである。ホストI/F121、ディスクI/F122及びチップセット129は、内部バス210により相互接続されている。また、キャッシュコントローラ124、FROM125、ローカルメモリ126及びCPU127は、チップセット128を介して内部バス129に接続されている。
図2は、図1に示されるディスクアレイコントローラ12の機能構成を主として示すブロック図である。ディスクアレイコントローラ12は、ディスクアレイ管理部201と、論理ディスク管理部202と、レプリケーション管理部203と、差分管理部204と、物理ブロック入れ替え判定部205と、物理ブロック入れ替え部206と、物理ブロック選択部207と、アクセスコントローラ208とを備えている。これらの機能要素201乃至208の機能については後述する。ディスクアレイ管理部201、論理ディスク管理部202及びレプリケーション管理部203は、それぞれ、物理ブロック管理部201a、論理ブロック管理部202a及びデータコピー部203aを含む。ディスクアレイコントローラ12は更に、種々の管理データ(管理データリスト)を格納するための管理データ記憶部209を備えている。管理データについては後述する。管理データ記憶部209は、例えば図1に示されるローカルメモリ126の一部の記憶領域を用いて実現される。
本実施形態において、上述の機能要素201乃至208は、図1に示されるディスクアレイコントローラ12のCPU127が前記ディスクアレイ制御プログラムを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素201乃至208の一部または全部がハードウェアモジュールによって実現されても構わない。
次に、本実施形態で適用されるディスクアレイと論理ディスクとの関係について説明する。
初期のディスクアレイ装置では、単一のディスクアレイの記憶領域が論理ディスクに割り当てられるのが一般的である。つまり、単一のディスクアレイを用いて論理ディスクが定義される。
これに対し、近年のディスクアレイ装置では、複数または単一のディスクアレイが一旦ストレージプールSPを単位にグループ化される。つまり、ストレージプールSPを単位に、複数または単一のディスクアレイが管理される。ストレージプールSP内のディスクアレイ(RAIDディスクアレイ)は、RAIDグループと呼ばれる。論理ディスクは、ストレージプールSP内の1つ以上のディスクアレイ(RAIDグループ)から選択される必要容量を満たす物理リソース(物理ブロック)の集合を用いて定義(構築)され、ホスト20に提供される。本実施形態においても、この方法により論理ディスクが定義される。なお本実施形態では、複数のディスクアレイがストレージプールSPにグループ化されるものとする。
ディスクアレイコントローラ12のディスクアレイ管理部201は、複数の物理ディスクを用いてディスクアレイ(RAIDグループ)を定義する。ディスクアレイ管理部201はまた、各ディスクアレイ(RAIDグループ)の記憶領域を、一定容量(サイズ)の物理ブロックを単位に区分する。これによりディスクアレイ管理部201は、ディスクアレイを物理ブロックの集合体として管理する。ディスクアレイ管理部201の物理ブロック管理部201aは、ディスクアレイの各物理ブロックを後述する物理ブロック管理データPBMDにより管理する。なお、物理ブロックは、物理セグメントまたは物理エクステントと呼ばれることもある。
ディスクアレイコントローラ12の論理ディスク管理部202は、目的の論理ディスクの容量を満たすために必要な数の物理ブロックを算出する。論理ディスク管理部202は、ストレージプールSP内のディスクアレイ(RAIDグループ)から例えば均等に必要な数の物理ブロックを選択して、当該選択された物理ブロックを論理ディスク(より詳細には、論理ディスクの論理ブロック)に関連付ける。これにより論理ディスク管理部202は、論理ディスクを定義し且つ管理する。つまり論理ディスク管理部202は、複数の物理ブロックの論理的な集合体として論理ディスクを定義し且つ管理する。
論理ディスク管理部202の論理ブロック管理部202aは、論理ディスクの各論理ブロックを論理ブロック管理データLBMDにより管理する。論理ブロック管理データLBMDは、後述するように、当該管理データLBMDによって示される論理ブロックに関連付けられている(割り当てられている)物理ブロックを示す物理ブロックポインタ(つまりマッピング情報)を含む。
論理ディスク管理部202によって定義された論理ディスクへのアクセスが要求された場合、アクセスコントローラ208は、要求されたアクセス範囲の論理領域が、どのディスクアレイのどこの物理ブロックに該当するかを判別する。アクセスコントローラ208は、特定された物理ブロックにアクセスする。
本実施形態で適用される論理ディスク定義方法によれば、各ディスクアレイの容量に依存せずに、任意容量の論理ディスクを定義できる。また、前記論理ディスク定義方法によれば、1つの論理ディスクへのアクセスを、複数のディスクアレイの物理ブロックに分散させることができる。これにより、一部のディスクアレイにアクセスが集中するのを防止して、ホスト20からのデータアクセス要求に対するレスポンスを高速化できる。
また、前記論理ディスク定義方法によれば、複数のディスクアレイをそれぞれアクセス性能が異なる物理ディスク(ドライブ)で構築することにより、異なるアクセス速度の物理ブロックを用いて論理ディスクを定義することができる。この場合、論理ブロックの負荷の高低に応じて、当該論理ブロックに最適な性能の物理ブロックを割り当てることで、性能最適化が可能となる。論理ブロックへの物理ブロックの割り当ては動的に変更可能である。例えば、論理ブロックに割り当てられていた第1の物理ブロックを第2の物理ブロックに変更する(入れ替える)ためには、前記第1の物理ブロックに格納されていたデータを前記第2の物理ブロックに移動(コピー)する必要がある。そこで、論理ブロックに割り当てられる物理ブロックを変更する動作は、マイグレーションと呼ばれる。また、前記論理ディスク定義方法において、ホスト装置からのライト要求受信時に物理ブロックを割り当てることにより、実際の物理容量よりサイズの大きい論理ディスクを構成することができる。これは、シンプロビジョニングと呼ばれる。
図3は、RAIDグループ(ディスクアレイ)RGにおける物理ブロックを説明するための図である。RAIDグループRGは、ディスクアレイ管理部201によって、複数の物理ディスクを用いて定義(構築)される。RAIDグループRGが定義される際に、当該RAIDグループRGの記憶領域(物理領域)は、ディスクアレイ管理部201の物理ブロック管理部201aによって、例えば当該記憶領域の先頭から一定容量(サイズ)の物理ブロックを単位に区分される。
よってRAIDグループRGは実質的に、複数の物理ブロック0,1,2,3…から構成される記憶領域を備えている。物理ブロックi(i=0,1,2,3…)は、物理ブロック番号がiの物理ブロックである。つまり、RAIDグループRGの全ての物理ブロックには、先頭の物理ブロックから順に連続する物理ブロック番号が割り当てられる。物理ブロックの容量は、固定であっても、或いはユーザによりパラメータを用いて指定されても構わない。
図4は、ストレージプールSPにおけるRAIDグループを説明するための図である。図4の例では、3つのディスクアレイ(RAIDディスクアレイ)が、ディスクアレイ管理部201によって、ストレージプールSPの要素であるRAIDグループ0(RG0)乃至2(RG2)としてグループ化(定義)されている。換言するならば、ストレージプールSPは、RAIDグループ0(RG0)乃至2(RG2)の集合として定義される。
図4は、RAIDグループ0(RG0)が4つのSSD(ソリッドステートドライブ)から構成されるディスクアレイであることを示している。SSDは、例えば、SASインタフェースを適用するSAS−SSDである。図4は更に、RAIDグループ1(RG1)が3つのHDD(ハードディスクドライブ)から構成されるディスクアレイであり、RAIDグループ2(RG2)が6つのHDDから構成されるディスクアレイであることをも示している。HDDは、例えば、SASインタフェースを適用するSAS−HDDである。
図5は、論理ディスクの定義を説明するための図である。図5に示されるように、論理ディスクLDの記憶領域(論理領域)は、論理ディスク管理部202の論理ブロック管理部202aによって、例えば当該記憶領域の先頭から一定容量(サイズ)の論理ブロックを単位に区分される。この論理ブロックの容量は、前記物理ブロックの容量に等しい。論理ディスクLDは実質的に、複数の論理ブロック0,1,2,3…から構成される記憶領域を備えている。論理ブロックi(i=0,1,2,3…)は、論理ブロック番号がiの論理ブロックである。つまり、論理ディスクLDの全ての論理ブロックには、先頭の論理ブロックから順に連続する論理ブロック番号が割り当てられる。
論理ディスクLDの論理ブロック0,1,2,3…には、論理ディスク管理部202によって例えば図4に示されるストレージプールSP内のRAIDグループRG0(0)乃至RG2(2)から選択された物理ブロックが割り当てられている。つまり論理ディスクLDは、RAIDグループ0乃至2から選択された物理ブロックの集合として論理ディスク管理部202によって定義される。図5の例では、論理ディスクLDの論理ブロック0及び1には、それぞれ、RAIDグループ0の物理ブロック0及びRAIDグループ1の物理ブロック2が割り当てられている。また、論理ディスクLDの論理ブロック2及び3には、それぞれ、RAIDグループ2の物理ブロック0及びRAIDグループ0の物理ブロック1が割り当てられている。
次に、本実施形態で適用される各種の管理データについて説明する。
物理ブロック管理部201aは、ディスクアレイ管理部201によってRAIDグループ(ディスクアレイ)RGが定義される場合に、当該RAIDグループRGの物理ブロック毎に物理ブロック管理データPBMDを生成する。物理ブロック管理データPBMDは、物理ブロックを管理するのに用いられ、管理データ記憶部209に格納される。
図6は、物理ブロック管理データPBMDのデータ構造例を示す。図6に示されるように、物理ブロック管理データPBMDは、RAIDグループ番号、物理ブロック番号、ライトカウント、リードカウント、性能属性及び差分ビットマップから構成される。
RAIDグループ番号は、物理ブロック管理データPBMDによって管理される物理ブロック(以下、対応物理ブロックと称する)を有するRAIDグループRGに割り当てられた番号である。物理ブロック番号は、前記対応物理ブロックを一意に決定する番号である。ライトカウントは前記対応物理ブロックへのデータライトの回数(ライトアクセス頻度)を示す統計値であり、リードカウントは前記対応物理ブロックからのデータリードの回数(リードアクセス頻度)を示す統計値である。
性能属性は、前記対応物理ブロックを有する物理ディスクの例えば種別から決定されるアクセス性能を示す。本実施形態において、性能属性は、属性値が小さいほど高性能であることを示す。本実施形態における性能属性の属性値は、詳細を後述するように、0、1または2であるものとする。差分ビットマップは、前記対応物理ブロックがマスタ論理ディスクまたはバックアップ論理ディスクの論理ブロックに割り当てられている場合に、前記対応物理ブロックのデータとコピー先またはコピー元の物理ブロックのデータとの間の差分を記録するのに用いられる。一般に各物理ブロックは、最小アクセス単位であるセクタの集合から構成される。そこで前記差分ビットマップは、前記対応物理ブロック内のセクタ毎に差分の有無を示すビットの集合から構成される。本実施形態では、差分ビットマップ中の各ビットは“1”の場合に、対応するセクタ間で差分が有ることを示す。
論理ブロック管理部202aは、論理ディスク管理部202によって論理ディスクLDが定義される場合に、当該論理ディスクLDの論理ブロック毎に論理ブロック管理データLBMDを生成する。論理ブロック管理データLBMDは、論理ブロックを管理するのに用いられ、管理データ記憶部209に格納される。
図7は、論理ブロック管理データLBMDのデータ構造例を示す。図7に示されるように、論理ブロック管理データLBMDは、論理ディスク番号、論理ブロック番号、スワップフラグ及び物理ブロックポインタから構成される。
論理ディスク番号は、論理ブロック管理データLBMDによって管理される論理ブロック(以下、対応論理ブロックと称する)を有する論理ディスクLDに割り当てられた番号である。論理ブロック番号は、前記対応論理ブロックを一意に決定する番号である。スワップフラグは、前記対応論理ブロックを有する論理ディスクがマスタ論理ディスクまたはバックアップ論理ディスクの一方である場合に、前記対応論理ブロックに割り当てられている物理ブロックを、マスタ論理ディスクまたはバックアップ論理ディスクの他方の論理ブロックに割り当てられている物理ブロックと入れ替えるべきかを示す。物理ブロックポインタは、前記対応論理ブロックに割り当てられている物理ブロックを管理するための物理ブロック管理データPBMDを指し示すマッピング情報である。
ディスクアレイ管理部201は、複数のディスクアレイ(RAIDグループ)の集合としてストレージプールを定義した場合、当該ストレージプールを管理するためのストレージプール管理データSPMDを生成する。ストレージプール管理データSPMDは、管理データ記憶部209に格納される。
図8は、ストレージプール管理データSPMDのデータ構造例を示す。図8に示されるように、ストレージプール管理データSPMDは、プール番号、フリー物理ブロックリスト*及びフリー数*(但し、*=0,1,2)から構成される。
プール番号は、ストレージプール管理データSPMDによって管理されるストレージプール(以下、対応ストレージプールと称する)に割り当てられた番号である。フリー物理ブロックリスト*及びフリー数*は、前述の性能属性毎に用意される。本実施形態においてストレージプール管理データSPMDは、フリー物理ブロックリスト0,1及び2とフリー数0,1及び2を含む。フリー物理ブロックリスト0,1及び2は、それぞれ、前記対応ストレージプール内のRAIDグループに含まれていて、且つ性能属性の属性値0,1及び2に対応するフリー物理ブロックの物理ブロック管理データPBMDのリストである。以下の説明では、属性値が0,1及び2の性能属性を、それぞれ性能属性(属性)0,1及び2と称する。フリー物理ブロックとは、論理ディスクLDに割り当てられていない物理ブロックを指す。フリー数0,1及び2は、それぞれフリー物理ブロックリスト0,1及び2で示されるフリー物理ブロックの数を示す。
論理ディスク管理部202は、論理ディスクLDの論理ブロックとRAIDグループRGの物理ブロックとの対応を、論理ブロック管理データLBMD及び物理ブロック管理データPBMDが登録された論理−物理マッピングテーブルLPMTにより管理する。論理ブロック管理データLBMDは、例えばハッシュテーブル形式で管理されると良い。しかし、論理ブロック管理データLBMDが必ずしもハッシュテーブル形式で管理される必要はない。
図9は、論理−物理マッピングテーブルLPMTのデータ構造例を示す。図9の例では、論理−物理マッピングテーブルLPMTに登録されている論理ブロック管理データは、論理ブロック管理データLBMD0−0,LBMD0−1及びLBMD0−2を含む。論理ブロック管理データLBMDx−y(x=0,y=0,1,2…)は、論理ディスク番号がxの論理ディスク内の論理ブロック番号がyの論理ブロック(つまり論理ブロックy)を管理するための論理ブロック管理データであることを示す。
また、図9の例では、論理−物理マッピングテーブルLPMTに登録されている物理ブロック管理データは、物理ブロック管理データPBMD0−0,PBMD1−2及びPBMD2−0を含む。物理ブロック管理データPBMDp−q(p=0,1,2,q=0,1,2…)は、RAIDグループ番号がpのRAIDグループ(つまりRAIDグループp)内の物理ブロック番号がqの物理ブロック(物理ブロックq)を管理するための物理ブロック管理データであることを示す。図9の例では、論理ブロック管理データLBMD0−0,LBMD0−1及びLBMD0−2の物理ブロックポインタにより、物理ブロック管理データPBMD0−0,PBMD1−2及びPBMD2−0が指し示されている。
ディスクアレイコントローラ12のレプリケーション管理部203は、レプリケーションの状態をレプリケーション管理テーブル(図示せず)により管理する。レプリケーションは、論理ディスクの複製を生成する機能である。本実施形態は、同期スプリットタイプのレプリケーションを適用する。
以下、同期スプリットタイプのレプリケーションの概要について、図10及び図11を参照して説明する。図10はマスタ論理ディスクMLDからバックアップ論理ディスクBLDへのデータのコピーを説明するための図、図11はレプリケーションの状態遷移を説明するための図である。
まずレプリケーション管理部203は、複製元となるマスタ論理ディスクMLDと複製先となるバックアップ論理ディスクBLDとを、レプリケーション管理テーブルを用いて定義する。レプリケーション管理テーブルのエントリは、マスタ論理ディスクMLD及びバックアップ論理ディスクBLDそれぞれの論理ディスク番号と、レプリケーションの状態を示すステータス情報とを格納する。マスタ論理ディスクMLD及びバックアップ論理ディスクBLDの定義の後、レプリケーション管理部203のデータコピー部203aは、次のようなデータのコピーを行う。即ちデータコピー部203aは、マスタ論理ディスクMLD及びバックアップ論理ディスクBLDのレプリケーションの状態を同期状態ST2に移行させるために、図10において矢印100で示されるように、マスタ論理ディスクMLDからバックアップ論理ディスクBLDへのデータのコピーを行う。ここで、マスタ論理ディスクMLD及びバックアップ論理ディスクBLDの関係を、一般にレプリケーションを構成していると称する。同様に、マスタ論理ディスクMLD及びバックアップ論理ディスクBLD内の相互に対応する物理ブロックの関係も、レプリケーションを構成していると称する。
マスタ論理ディスクMLD及びバックアップ論理ディスクBLDがコピー状態ST1または同期状態ST2にある場合、レプリケーション管理部203は、バックアップ論理ディスクBLDがホスト20からアクセスできないように、アクセスコントローラ208を制御する。また、コピー状態ST1または同期状態ST2においてマスタ論理ディスクMLDへのデータのライトが要求された場合、レプリケーション管理部203はアクセスコントローラ208を制御して、マスタ論理ディスクMLD及びバックアップ論理ディスクBLDの双方に、データをライトする。
コピー完了後、レプリケーション管理部203は、前記レプリケーションの状態をコピー状態ST1から同期状態ST2に移行させる。同期状態ST2におけるマスタ論理ディスクMLDとバックアップ論理ディスクBLDの内容は一致している。
バックアップ論理ディスクBLDに対してホスト20からアクセス可能とするには、レプリケーション管理部203が、前記レプリケーションの状態をコピー状態ST1または同期状態ST2からスプリット状態ST3に遷移させる必要がある。スプリット状態ST3では、マスタ論理ディスクMLDとバックアップ論理ディスクBLDとは論理的に分離されて、各々独立した論理ディスクとして動作する。
ディスクアレイコントローラ12の差分管理部204は、スプリット状態ST3における論理ディスクMLDに対するデータのライトの範囲を、対応する物理ブロック管理データPBMD中の差分ビットマップにより差分(より詳細には、差分有り)として管理する。これによりデータコピー部203aは、次にマスタ論理ディスクMLDからバックアップ論理ディスクBLDにデータをコピーする必要がある場合、両ディスクの対応する物理ブロック間で差分が有る領域のみコピーすれば良い。このような差分コピーにより、不要なコピー動作を低減することができる。
次に、本実施形態において物理ブロックを入れ替えるかの判定に用いられるリードカウント及びライトカウントの更新(インクリメント)について説明する。
ディスクアレイコントローラ12のアクセスコントローラ208は、ホスト20からのリード要求またはライト要求を受信した場合、リードまたはライトされるべき論理ブロックを管理するための論理ブロック管理データLBMDを次のように特定する。ここで、ホスト20からのリード要求またはライト要求は、アクセスされるべき論理ディスクを指定する論理ディスク番号と、当該論理ディスク内のアクセス範囲を指定する情報と、当該アクセス範囲の先頭の論理アドレスLBAとを含む。ここでは説明の簡略化のために、アクセス範囲が、単一の論理ブロックに含まれるものとする。
まずアクセスコントローラ208は、上述のリード要求またはライト要求の示す論理ディスク番号及び論理アドレスLBAに基づき、要求されたアクセス範囲(論理領域)を含む論理ディスク内の論理ブロックを特定する。次にアクセスコントローラ208は、特定された論理ブロックを管理するための論理ブロック管理データLBMDを参照する。次にアクセスコントローラ208は、参照された論理ブロック管理データLBMD内の物理ブロックポインタの指し示す物理ブロック管理データPBMDを参照する。
アクセスコントローラ208は、参照された物理ブロック管理データPBMDに基づき、ホスト20によって要求されたアクセス範囲の論理領域が、どのディスクアレイのどこの物理ブロックに該当するかを判別する。アクセスコントローラ208は、この判別結果に基づき要求されたデータのリードまたはライトを実行する。このときアクセスコントローラ208は、参照された物理ブロック管理データPBMD内のリードカウントまたはライトカウントを1インクリメントする。リードカウント及びライトカウントは、それぞれ対応する物理ブロックへのリードアクセス及びライトアクセスの回数(頻度)を表す統計値である。
物理ブロック入れ替え判定部205は、詳細を後述するように、目的の物理ブロック(例えば、高負荷または低負荷の物理ブロック)のリードカウントまたはライトカウントに基づいて当該物理ブロックを入れ替えるべきかを判定する。物理ブロック入れ替え部206は、この判定の結果に基づいて、目的の物理ブロックを他の物理ブロック(例えば、より高速または低速な物理ブロック)に入れ替える。これによりディスクアレイ装置10における最適な負荷分散、つまりディスクアレイ装置10の性能の最適化を図ることが可能となる。
次に、ストレージプールSP内のRAIDグループの階層化について説明する。
本実施形態においてディスクアレイ管理部201は、ストレージプールSP内の各RAIDグループ(より詳細には、RAIDグループの物理領域)を、性能とコストの最適化のために階層化する。そこで、ディスクアレイ装置10のディスクインタフェースバス13には、少なくとも1階層の高速・高コストな物理ディスク群と、少なくとも1階層の低速・低コストな物理ディスク群が接続される。ディスクアレイ管理部201は、同一階層の複数の物理ディスクを用いてRAIDグループ(ディスクアレイ)を定義する。物理ブロック入れ替え部206は、論理ブロックに割り当てられるべき物理ブロックの階層を、物理ブロック入れ替え判定部205と協働することにより、性能要件またはアクセス頻度に応じて決定する。
図12はRAIDグループの物理領域の階層化について、2階層の場合を例に示す。図12では、図4に示すストレージプールSP内のRAIDグループRG0及びRG1が、それぞれ階層0及び階層1に属していることが示されている。つまり、RAIDグループRG0内の各物理ブロック(図12において黒で塗りつぶされた矩形で示される物理ブロック)は階層0に属し、RAIDグループRG1内の各物理ブロック(図12において白抜きの矩形で示される物理ブロック)は階層1に属す。本実施形態において、階層0の物理ブロックは性能属性0の物理ブロックであり、階層1の物理ブロックは性能属性1の物理ブロックである。
RAIDグループRG0は、SAS−SSDを用いて定義されるSAS−SSD RAIDグループであり、RAIDグループRG1は、SAS−HDDを用いて定義されるSAS−HDD RAIDグループである。図12では、図4に示すRAIDグループRG2は省略されているが、当該RAIDグループRG2は階層2に属しているものとする。但し、以降の説明では、説明の簡略化のために、ストレージプールSP内のRAIDグループが、RAIDグループRG0及びRG1の2つであり、RAIDグループの物理領域が2つの階層に階層化されているものとする。勿論、RAIDグループの物理領域が、3つ以上の階層に階層化されていても構わない。またディスクアレイ管理部201が、この階層化に、RAIDグループ(ディスクアレイ)が適用するRAIDレベルやRAIDグループを構成する物理ディスク台数の相違による性能の違いを考慮しても良い。
図13は、論理ディスクLD内の論理ブロックへの異なる階層の物理ブロックの割り当ての例を示す。図13において、論理ディスクLD内の黒で塗りつぶされた矩形は、階層0の物理ブロックが割り当てられた論理ブロックを示す。この黒で塗りつぶされた矩形で示される論理ブロックは、多数のアクセスが発生して、例えば高負荷である。そこで、この高負荷の論理ブロックには、上述のように階層0の物理ブロック(つまり高速・高コストの物理ブロック)が割り当てられる。また図13において、論理ディスクLD内の白抜きの矩形は、階層1の物理ブロックが割り当てられた論理ブロックを示す。この白抜きの矩形で示される論理ブロックは、例えば低負荷である。そこで、この低負荷の論理ブロックには、上述のように階層1の物理ブロック(つまり低速・低コストの物理ブロック)が割り当てられる。
次に、論理ディスク内の論理ブロックに割り当てられる物理ブロックを、階層を利用して入れ替える処理の概要について、図14を参照して説明する。図14は、物理ブロック入れ替え処理(マイグレーション処理)を説明するための図である。同図(a)は、物理ブロック入れ替え処理の手順の例を示し、同図(b)は、物理ブロック入れ替え前後の論理ブロック管理データと物理ブロック管理データとの関連付けの例を示す。
図14(a)において、論理ディスクLD内の黒で塗りつぶされた矩形は、階層0の物理ブロックが割り当てられた論理ブロックを示す。図14(a)において、論理ディスクLD内の白抜きの矩形は、階層1の物理ブロックが割り当てられた論理ブロックを示す。
今、論理ディスクLD内の論理ブロックLB3に、RAIDグループRG1内の物理ブロックPB2が割り当てられているものとする。この状態の論理ブロックLB3が、図14(a)においてLB3(PB2)で表されている。ここで、論理ディスクLDの論理ディスク番号は0であり、論理ブロックLB3の論理ブロック番号は3である。またRAIDグループRG1のRAIDグループ番号は1であり、物理ブロックPB2の物理ブロック番号は2である。
このとき、論理ブロックLB3を管理するための論理ブロック管理データLBMD0−3内の物理ブロックポインタは、図14(b)において矢印145で示すように、物理ブロックPB2を管理するための物理ブロック管理データPBMD1−2を指している。これにより、論理ブロックLB3と物理ブロックPB2との関連付け(つまりマッピング)が示される。物理ブロック管理データPBMD1−2から明らかなように、物理ブロックPB2の性能属性は1であり、したがって物理ブロックPB2の階層は上述のように1である。
やがて、論理ブロックLB3が高負荷となったものとする。この場合、論理ブロックLB3に割り当てられている物理ブロックPB2の性能属性(階層)が1であることから、物理ブロック入れ替え判定部205は、当該物理ブロックPB2を性能属性(階層)0の物理ブロックに入れ替える必要があると判定する。なお、この判定は、詳細を後述するようにレプリケーションコピー処理の中で行われる。
物理ブロックの入れ替えが必要な場合、物理ブロック選択部207は、ストレージプールSPを管理するためのストレージプール管理データSPMD内の性能属性(階層)0に対応するフリー物理ブロックリスト0を参照する。この参照されたフリー物理ブロックリスト0内の先頭の物理ブロック管理データPBMDが、RAIDグループ番号が0のRAIDグループRG0(0)内の物理ブロック番号が5の物理ブロックPB5(5)を管理するための物理ブロック管理データPBMD0−5であるものとする。
この場合、物理ブロック選択部207は、物理ブロックPB5を選択する。すると論理ディスクLDは、図14(a)において矢印141で示されるように、物理ブロック入れ替えのためのコピーモード(マイグレーションコピーモード)に遷移する。このコピーモードにおいてデータコピー部203aは、現在論理ブロックLB3に割り当てられている物理ブロックPB2のデータを、図14(a)において矢印142で示されるように物理ブロックPB5にコピーする。
すると論理ディスクLDは、図14(a)において矢印143で示されるように、物理ブロック入れ替えモードに遷移する。この物理ブロック入れ替えモードにおいて、物理ブロック入れ替え部206は、論理ブロックLB3に割り当てられる物理ブロックを、図14(a)において矢印144で示されるように、物理ブロックPB2(つまりRAIDグループRG1内の物理ブロックPB2)から物理ブロックPB5(つまりRAIDグループRG0内の物理ブロックPB5)に入れ替える。この入れ替えは、物理ブロック入れ替え部206が、論理ブロック管理データLBMD0−3の物理ブロックポインタ(マッピング情報)を、図14(b)において矢印146で示されるように、物理ブロック管理データPBMD0−5を指し示すように更新することにより実現される。物理ブロック入れ替え部206はまた、物理ブロックPB2をフリーブロックとして、ストレージプール管理データSPMD内のフリー物理ブロックリスト1(つまり、当該物理ブロックPB2の性能属性1に対応するフリー物理ブロックリスト1)の最後に登録する。なお、物理ブロックPB2を物理ブロックPB5に入れ替える動作が、物理ブロックPB2のデータを物理ブロックPB5にコピーする動作よりも先に実行されても良い。
次に本実施形態で適用されるリード処理について図15を参照して説明する。図15は、リード処理の典型的な手順を示すフローチャートである。
今、アクセスコントローラ208が、ホストI/F121を介してホスト20からのリード要求を受信したものとする。するとアクセスコントローラ208は、図15に示すフローチャートに従ってリード処理を次のように実行する。まずアクセスコントローラ208は、前記リード要求の示す論理ディスク番号と論理アドレスLBAとに基づき、前述したように、要求されたアクセス範囲(リード範囲)の論理領域を含む論理ディスク内の論理ブロックを特定する(ステップS1)。
次にアクセスコントローラ208は、特定された論理ブロックを管理するための論理ブロック管理データLBMDを参照する。特定された論理ブロックに割り当てられている物理ブロックを管理するための物理ブロック管理データPBMDは、参照された論理ブロック管理データLBMD内の物理ブロックポインタによって指し示されている。そこでアクセスコントローラ208は、参照された論理ブロック管理データLBMD内の物理ブロックポインタの指し示す物理ブロック管理データPBMDに基づいて、特定された論理ブロックに割り当てられている物理ブロックを特定する(ステップS2)。特定された物理ブロックを物理ブロックAと表記し、物理ブロックAの特定に用いられた物理ブロック管理データPBMD(つまり物理ブロックAを管理するための物理ブロック管理データPBMD)を物理ブロック管理データPBMD_Aと表記する。
次にアクセスコントローラ208は、物理ブロック管理データPBMD_A内のリードカウント(つまり物理ブロックAのリードカウント)を、例えば1インクリメントする(ステップS3)。物理ブロック選択部207は、物理ブロック管理データPBMD_A内の性能属性の属性値を参照することにより、物理ブロックAの性能属性(階層)が1であるかを判定する(ステップS4)。
もし、物理ブロックAの性能属性(階層)が1であるならば(ステップS4のYes)、物理ブロック選択部207は、当該物理ブロックAが低速(より詳細には、低速・低コスト)の物理ブロックであると判定する。この場合、物理ブロック選択部207は、物理ブロックA(より詳細には、物理ブロックAが割り当てられている論理ブロックを含む論理ディスク)が他の物理ブロックとの間でレプリケーションを構成しているかを判定する(ステップS5)。具体的には、物理ブロック選択部207はレプリケーション管理テーブルを参照することにより、物理ブロックAが割り当てられている論理ブロックを含む論理ディスク(つまり、リード要求の示す論理ディスク番号の論理ディスク)がマスタ論理ディスクまたはバックアップ論理ディスクとして定義されているかを判定する。
もし、物理ブロックAがレプリケーションを構成しているならば(ステップS5のYes)、物理ブロック選択部207は、物理ブロックAのレプリケーション先またはレプリケーション元となる物理ブロックを特定する(ステップS6)。物理ブロックAのレプリケーション先またはレプリケーション元となる物理ブロックを物理ブロックBと表記すると、当該物理ブロックBはステップS6において次のように特定される。
まず、物理ブロック選択部207は、レプリケーション管理テーブルを参照することにより、リード要求の示す論理ディスク番号の論理ディスクのレプリケーション先またはレプリケーション元となる論理ディスクの論理ディスク番号を特定する。次に物理ブロック選択部207は、特定された論理ディスク番号とリード要求の示す論理ブロック番号とを含む論理ブロック管理データLBMDを参照する。この論理ブロック管理データLBMDB内の物理ブロックポインタの指し示す物理ブロック管理データPBMDを、物理ブロック管理データPBMD_Bと表記する。この物理ブロック管理データPBMD_Bは、物理ブロックAのレプリケーション先またはレプリケーション元となる物理ブロックBを示す。
物理ブロック選択部207は、物理ブロック管理データPBMD_A及びPBMD_B内の差分ビットマップを参照することにより、物理ブロックA及びBの間に差分が有るかを判定する(ステップS7)。もし、物理ブロックA及びBの間に差分が無いならば(ステップS7のNo)、物理ブロック選択部207は物理ブロック管理データPBMD_B内の性能属性の属性値を参照することにより、物理ブロックBの性能属性(階層)が0であるかを判定する(ステップS8)。
もし、物理ブロックBの性能属性(階層)が0であるならば(ステップS8のYes)、物理ブロック選択部207は、当該物理ブロックBが物理ブロックAよりも高速(より詳細には、高速・高コスト)の物理ブロックであると判定する。この場合、物理ブロック選択部207は、物理ブロックA及びBの間に差分が無いことから(ステップS7のNo)、リードアクセスの対象として、物理ブロックAを選択せずに、当該物理ブロックAよりも高速な物理ブロックBを選択する(ステップS9)。つまり物理ブロック選択部207は、リード要求に基づいてステップS2で特定された物理ブロックAを選択せずに、当該物理ブロックAよりも高速で、且つ当該物理ブロックAと同一のデータを格納している物理ブロックBを選択する。この場合、物理ブロックAが選択される場合と比較して、リード動作の高速化が期待される。
一方、物理ブロックAの性能属性(階層)が1でないならば(ステップS4のNo)、つまり当該物理ブロックAの性能属性(階層)が0であるならば、物理ブロック選択部207は、当該物理ブロックAが高速(より詳細には、高速・高コスト)の物理ブロックであると判定する。この場合、物理ブロック選択部207は、物理ブロックA(つまり、リード要求に基づいてステップS2で特定された物理ブロックA)をリードアクセスの対象として選択する(ステップS10)。
同様に、物理ブロックAがレプリケーションを構成していない場合にも(ステップS5のNo)、物理ブロック選択部207は、物理ブロックAをリードアクセスの対象として選択する(ステップS10)。同様に、物理ブロックA及びBの間に差分が有る場合にも(ステップS7のYes)、物理ブロック選択部207は、物理ブロックAをリードアクセスの対象として選択する(ステップS10)。同様に、物理ブロックBの性能属性(階層)が0でない場合にも(ステップS8のYes)、つまり物理ブロックBの性能が物理ブロックAと同等か低い場合にも、物理ブロック選択部207は、物理ブロックAをリードアクセスの対象として選択する(ステップS10)。
物理ブロック選択部207が物理ブロックAまたはBを選択すると(ステップS9またはS10)、アクセスコントローラ208は、選択された物理ブロックのリード要求の指定するアクセス範囲からデータをリードするためのリード動作を実行する(ステップS11)。このリード動作によってリードされたデータは、ホスト20からのリード要求に対する応答として、ホストI/F121によってホスト20に返される。なお、以上のリード処理は前述の第2のデータリードに相当し、リード要求で指定されたアクセス範囲のデータがキャッシュメモリ123に格納されていない場合に実行される。
本実施形態によれば、物理ブロックAからのデータのリードが要求され、且つ当該物理ブロックAとの間でレプリケーションを構成する物理ブロックBが存在する場合、物理ブロック選択部207は、両ブロックの間の差分の有無及び両ブロックの性能属性に基づいて、実際にデータがリードされるべき物理ブロックを選択する。より具体的に述べるならば、物理ブロックA及びBの間に差分が無いならば、つまり物理ブロックA及びBの内容が一致するならば、物理ブロック選択部207は、物理ブロックAまたはBのうち、高速にアクセス可能な物理ブロックをリードされるべき物理ブロックとして選択する。このように本実施形態によれば、ディスクアレイ装置10の性能を最適化して、リード処理が高速なディスクアレイ装置10を実現することができる。
さて本実施形態は、ステップS8の判定条件に、物理ブロックBの性能属性が0であることを適用することにより、ディスクアレイ装置10の性能を最適化している。しかし、ディスクアレイ装置10における性能最適化の手法は本実施形態に限らない。つまり、ステップS8に他の判定条件を適用することも可能である。例えば、ディスクアレイ管理部201が物理ブロックの性能属性毎に重みを定義するものとする。この場合、物理ブロックA及びBのリードカウント(またはリードカウント及びライトカウントの和)、つまり物理ブロックA及びBを対象とする入出力回数が、当該物理ブロックA及びBの重み(性能の相違度)から決定される比率で配分(負荷分散)されることを判定条件に、物理ブロック選択部207が物理ブロックAまたはBを選択してよい。このような負荷分散によっても、ディスクアレイ装置10の性能を最適化して、リード処理が高速なディスクアレイ装置10を実現することができる。
次に、本実施形態で適用されるライト処理について簡単に説明する。
ライト処理は、主として以下の3つの点でリード処理と相違する。第1の点は、ライト要求で指定される物理ブロックに割り当てられた物理ブロックAが特定された場合、図15のステップS3に相当する処理で、物理ブロック管理データPBMD_A内のライトカウントがインクリメントされることである。また、第2の点は、物理ブロックAがレプリケーションを構成している場合、当該レプリケーションがスプリット状態であったならばライト要求で指定されたアクセス範囲(ライト範囲)が、物理ブロック管理データPBMD_A内の差分ビットマップに記録されることである。第3の点は、図15のステップS11に相当する処理でライト動作が行われる点である。これらの3つの点を除けば、ライト処理もリード処理と同様に実施される。よって、ライト処理の手順を示すフローチャートは省略する。
次に本実施形態で適用されるレプリケーションコピー処理について図16を参照して説明する。図16は、レプリケーションコピー処理の典型的な手順を示すフローチャートである。ここでは、図10に示されるマスタ論理ディスクMLD及びバックアップ論理ディスクBLDの間でコピー動作が実行されるものとする。また、マスタ論理ディスクMLD内の論理ブロック及びバックアップ論理ディスクBLD内の論理ブロックが、いずれもストレージプールSPに属するRAIDグループRG0及びRG1内の物理ブロックを用いて定義されているものとする。
レプリケーション管理部203は、マスタ論理ディスクMLD及びバックアップ論理ディスクBLD各々の論理ブロックを示す論理ブロック番号を0に設定する(ステップS21)。ここで、現在設定されている論理ブロック番号(ここでは0)の示すマスタ論理ディスクMLD内の論理ブロックをターゲットマスタ論理ブロックと称する。同様に、現在設定されている論理ブロック番号の示すバックアップ論理ディスクBLD内の論理ブロックをターゲットバックアップ論理ブロックと称する。また、ターゲットマスタ論理ブロックに割り当てられている物理ブロックをマスタ物理ブロックAと称し、ターゲットバックアップ論理ブロックに割り当てられている物理ブロックをバックアップ物理ブロックBと称する。また、ターゲットマスタ論理ブロックを管理するための論理ブロック管理データLBMDを論理ブロック管理データLBMD_Mと表記し、ターゲットバックアップ論理ブロックを管理するための論理ブロック管理データLBMDを論理ブロック管理データLBMD_Bと表記する。
次にレプリケーション管理部203は、ターゲットマスタ論理ブロックに割り当てられているマスタ物理ブロックAを、前記リード処理におけるステップS2と同様の方法で特定する(ステップS22)。つまりレプリケーション管理部203は、論理ブロック管理データLBMD_Mを参照する。そしてレプリケーション管理部203は、論理ブロック管理データLBMD_M内の物理ブロックポインタの指し示す物理ブロック管理データPBMDに基づいて、マスタ物理ブロックAを特定する。マスタ物理ブロックAの特定に用いられた物理ブロック管理データPBMDを物理ブロック管理データPBMD_Aと表記する。
また、レプリケーション管理部203は、ターゲットバックアップ論理ブロックに割り当てられているバックアップ物理ブロックBを次のように特定する(ステップS23)。つまりレプリケーション管理部203は、論理ブロック管理データLBMD_Bを参照する。そしてレプリケーション管理部203は、論理ブロック管理データLBMD_B内の物理ブロックポインタの指し示す物理ブロック管理データPBMDに基づいて、バックアップ物理ブロックBを特定する。バックアップ物理ブロックBの特定に用いられた物理ブロック管理データPBMDを物理ブロック管理データPBMD_Bと表記する。
次にレプリケーション管理部203は、物理ブロック管理データPBMD_A内の差分ビットマップ及びPBMD_B内の差分ビットマップを参照することにより、マスタ物理ブロックA及びバックアップ物理ブロックBの間に差分が有るかを判定する(ステップS24)。もし、両差分ビットマップの全ビットの少なくとも1ビットが“1”であるならば、レプリケーション管理部203は、マスタ物理ブロックA及びバックアップ物理ブロックBの間に差分が有ると判定する。これに対し、前記両差分ビットマップの全ビットが“0”であるならば、レプリケーション管理部203は、マスタ物理ブロックA及びバックアップ物理ブロックBの間に差分が無いと判定する。
マスタ物理ブロックA及びバックアップ物理ブロックBの間に差分が無い場合(ステップS24のNo)、レプリケーション管理部203はステップS25に進む。ステップS25においてレプリケーション管理部203は、図16のフローチャートに従うレプリケーションコピー処理におけるコピーの累積量が規定値以下であるかを判定する。
もし、コピー累積量が規定値を超えているならば(ステップS25のNo)、レプリケーション管理部203は、レプリケーションコピー処理の負荷が高いと判定する。この場合、レプリケーション管理部203は、次の論理ブロック(ターゲットマスタ論理ブロック及びターゲットバックアップ論理ブロック)の処理のためにステップS34に進む。コピー累積量を示すパラメータは、管理データ記憶部209の所定領域に格納されており、レプリケーションコピー処理の開始時に0に初期設定される。
これに対し、コピー累積量が規定値以下であるならば(ステップS25のYes)、レプリケーション管理部203は、レプリケーションコピー処理の負荷が低いと判定する。この場合、レプリケーション管理部203は物理ブロック入れ替え判定部205に制御を渡す。マスタ物理ブロックA及びバックアップ物理ブロックBの間に差分が有る場合にも(ステップS24のYes)、レプリケーション管理部203は物理ブロック入れ替え判定部205に制御を渡す。
すると物理ブロック入れ替え判定部205は、マスタ物理ブロックAが所定の入れ替え条件を満たすかを、マスタ物理ブロックAの性能属性及びリード/ライトカウントに基づいて判定する(ステップS26)。つまり物理ブロック入れ替え判定部205は、マスタ物理ブロックAのマイグレーションが必要かを判定する。リード/ライトカウントは、リードカウント、またはライトカウント、またはリードカウント及びライトカウントの和のいずれか1つを示す。
なお、ステップS25は必ずしも必要でなく、マスタ物理ブロックA及びバックアップ物理ブロックBの間に差分が無い場合(ステップS24のNo)、レプリケーション管理部203がステップS34に進んでも良い。また、マスタ物理ブロックA及びバックアップ物理ブロックBの間に差分が有るだけでなく、その差分の量が規定値を超える場合に限り、ステップS26の判定が実行されても良い。ここでは、差分の量が規定値以下の場合、直ちに後述するステップS31(コピー動作)が実行されても良い。
本実施形態において入れ替え条件は、マスタ物理ブロックA及びバックアップ物理ブロックBに共通であり、第1及び第2の入れ替え条件から構成される。ここでは説明の都合で、前記入れ替え条件がマスタ物理ブロックAの入れ替え条件であるとする。前記第1の入れ替え条件は、マスタ物理ブロックAのリード/ライトカウントが予め定められた閾値を超えていて、且つ当該マスタ物理ブロックAの性能属性が1であることである。つまり前記第1の入れ替え条件は、マスタ物理ブロックAの負荷が高く、且つ当該マスタ物理ブロックAが低速であることである。前記第2の入れ替え条件は、マスタ物理ブロックAのリード/ライトカウントが前記閾値以下で、且つ当該マスタ物理ブロックAの性能属性が0であることである。つまり前記第2の入れ替え条件は、マスタ物理ブロックAの負荷が低く、且つ当該マスタ物理ブロックAが高速であることである。
物理ブロック入れ替え判定部205は、マスタ物理ブロックAが前記第1の入れ替え条件を満たしている場合(ステップS26のYes)、当該マスタ物理ブロックAを性能属性が0の高速な物理ブロックCに入れ替える必要があると判定する。物理ブロック入れ替え判定部205はまた、マスタ物理ブロックAが前記第2の入れ替え条件を満たしている場合(ステップS26のYes)、当該マスタ物理ブロックAを性能属性が1の低速な物理ブロックCに入れ替える必要があると判定する。いずれの場合にも、物理ブロックCは、マスタ物理ブロックAとは異なる性能属性の物理ブロックである。この物理ブロックCを管理するための物理ブロック管理データPBMDを物理ブロック管理データPBMD_Cと表記する。
マスタ物理ブロックAが前記入れ替え条件(つまり前記第1または第2の入れ替え条件)を満たしている場合(ステップS26のYes)、物理ブロック入れ替え判定部205は物理ブロック入れ替え部206に制御を渡す。すると物理ブロック入れ替え部206は、物理ブロック管理データPBMD_A内のスワップフラグをセットして(ステップS27)、ステップS29に進む。
一方、マスタ物理ブロックAが前記入れ替え条件を満たしていない場合(ステップS26のNo)、物理ブロック入れ替え判定部205は、バックアップ物理ブロックBが前記入れ替え条件(つまり前記第1または第2の入れ替え条件)を満たしているかを判定する(ステップS28)。つまり物理ブロック入れ替え判定部205は、バックアップ物理ブロックBのマイグレーションが必要かを、ステップS26と同様に判定する。必要ならば、ステップS26におけるマスタ物理ブロックAが前記入れ替え条件を満たすかの説明において、当該マスタ物理ブロックAをバックアップ物理ブロックBに読み替えられたい。
物理ブロック入れ替え判定部205は、バックアップ物理ブロックBのリード/ライトカウントが前記閾値を超えていて、且つ当該バックアップ物理ブロックBの性能属性が1である場合(ステップS28のYes)、当該バックアップ物理ブロックBを性能属性が0の高速な物理ブロックCに入れ替える必要があると判定する。物理ブロック入れ替え判定部205はまた、バックアップ物理ブロックBのリード/ライトカウントが前記閾値未満で、且つ当該バックアップ物理ブロックBの性能属性が0である場合(ステップS28のYes)、当該バックアップ物理ブロックBを性能属性が1の低速な物理ブロックCに入れ替える必要があると判定する。
バックアップ物理ブロックBが前記入れ替え条件(つまり前記第1または第2の入れ替え条件)を満たしている場合(ステップS28のYes)、物理ブロック入れ替え判定部205は物理ブロック入れ替え部206に制御を渡す。すると物理ブロック入れ替え部206は、ステップS29に進む。これに対し、バックアップ物理ブロックBが入れ替え条件を満たしていない場合(ステップS28のNo)、つまりマスタ物理ブロックA及びバックアップ物理ブロックBの双方が入れ替え条件を満たしていない場合、物理ブロック入れ替え判定部205はデータコピー部203aに制御を渡す。するとデータコピー部203aは、ステップS31に進む。
さて、ステップS29において物理ブロック入れ替え部206は、ステップS26またはS28の何れの判定がYesであるかに無関係に、バックアップ物理ブロックBを物理ブロックCに入れ替える。物理ブロックCは、ステップS26において物理ブロック入れ替え判定部205によって判定された性能属性が*(*は0または1)の物理ブロックである。物理ブロック選択部207は、物理ブロックCを、ストレージプール管理データSPMD内の性能属性が*のフリー物理ブロックリスト*の先頭から選択する。
ステップS29における物理ブロックの入れ替えは、図14(b)を参照して説明したように、物理ブロックポインタを更新することにより行われる。つまり、物理ブロックB(物理ブロック管理データPBMD_B)を指している論理ブロック管理データLBMD_B内の物理ブロックポインタが、物理ブロックC(物理ブロック管理データPBMD_C)を指すように更新される。これにより、マスタ物理ブロックAに対応するバックアップ物理ブロック(つまり、マスタ物理ブロックAとの間でレプリケーションを構成するバックアップ物理ブロック)が、物理ブロックBから物理ブロックCに切り替えられる。このとき、物理ブロックB(つまり、物理ブロック切り替え時点までバックアップ物理ブロックとして用いられていた物理ブロックB)は、前述の物理ブロックPB2と同様にフリーブロックとして、ストレージプール管理データSPMD内のフリー物理ブロックリストに登録される。
上述したように本実施形態では、ステップS26の判定がYesの場合にも、バックアップ物理ブロックBの入れ替えが行われる。その理由は、次の通りである。まず本実施形態では、ステップS26の判定がYesの場合、物理ブロック管理データPBMD_A内のスワップフラグがセットされる(ステップS27)。この場合、後述するステップS33において、マスタ物理ブロック(=A)を指し示す論理ブロック管理データLBMD_M内の物理ブロックポインタとバックアップ物理ブロックを指し示す論理ブロック管理データLBMD_B内の物理ブロックポインタとが入れ替えられる。つまり、物理ブロック情報(マッピング情報)が入れ替えられる。このとき、論理ブロック管理データLBMD_B内の物理ブロックポインタは、ステップS29の実行により、物理ブロックC(物理ブロック管理データPBMD_C)を指すように更新されている。したがって、ステップS33における物理ブロックポインタ(物理ブロック情報)の入れ替えにより、マスタ物理ブロックは実質的に物理ブロックAから物理ブロックCに入れ替えられることになる。つまり物理ブロックCがマスタ物理ブロックに、物理ブロックAがバックアップ物理ブロックに、それぞれ入れ替えられる。なお、ステップS28の判定がYesの場合には、単にバックアップ物理ブロックが物理ブロックBから物理ブロックCに入れ替えられるだけである。
物理ブロック入れ替え部206は、ステップS29を実行すると、入れ替えの発生したバックアップ物理ブロック(つまり、現在のバックアップ物理ブロックC)に、レプリケーションコピー動作を利用して現在のマスタ論理ブロックAの領域全体(全セクタ)のデータをコピーするために、差分フラッシュを行う(ステップS30)。差分フラッシュとは、物理ブロックAの領域全体(全セクタ)を差分有りの状態にすることである。つまり差分フラッシュとは、物理ブロックAの差分ビットマップ(より詳細には、物理ブロック管理データPBMD_A内の差分ビットマップ)の全ビットを“1”に設定することである。物理ブロック入れ替え部206はステップS30を実行すると、データコピー部203aに制御を渡す。するとデータコピー部203aは、ステップS31に進む。
ステップS31においてデータコピー部203aは、物理ブロック管理データPBMD_A及びPBMD_B内の両差分ビットマップに基づき、マスタ物理ブロックAからバックアップ物理ブロックへ差分領域のデータを次のようにコピーする(ステップS31)。まずデータコピー部203aは、コピー開始時に前記両差分ビットマップをマージする。具体的には、データコピー部203aは前記両差分ビットマップのそれぞれ対応するビットをORすることにより、前記両差分ビットマップをマージする。このマージされた差分ビットマップ内の“1”のビットに対応するマスタ物理ブロックA(コピー元物理ブロック)及びバックアップ物理ブロック(コピー先物理ブロック)内の領域は、両ブロックの間でデータが一致していない差分領域を示す。データコピー部203aは、マージされた差分ビットマップ内の“1”のビットの示す差分に基づき、マスタ物理ブロックAからバックアップ物理ブロックへ差分領域のデータをコピーする。このときデータコピー部203aは、ステップS31で実行したデータコピーの量を、現時点におけるコピー累積量に加算する。
ステップS31がステップS30に続いて実行される場合、バックアップ物理ブロックは物理ブロックCである。また、マスタ物理ブロックAの差分ビットマップ(つまり物理ブロック管理データPBMDA内の差分ビットマップ)の全ビットは、ステップS30で全て“1”に設定されている。この場合、マスタ物理ブロックA及びバックアップ物理ブロックCの領域全体が差分領域と見なされる。よってステップS31がステップS30に続いて実行される場合、マスタ物理ブロックAの領域全体のデータがバックアップ物理ブロックCへコピーされる。
これに対し、ステップS31がステップS28に続いて実行される場合、バックアップ物理ブロックは物理ブロックBである。この場合、マスタ物理ブロックA及び物理ブロックBの間で差分のある領域のデータがマスタ物理ブロックAから物理ブロックBへコピーされる。
物理ブロック入れ替え部206は、データコピー部203aによるデータコピー(ステップS31)の後、物理ブロック管理データPBMD_A内のスワップフラグがセットされているかを判定する(ステップS32)。もし、スワップフラグがセットされているならば(ステップS32のYes)、物理ブロック入れ替え部206はステップS33に進む。
ステップS33において物理ブロック入れ替え部206は、前述したように、マスタ物理ブロックAを指し示す論理ブロック管理データLBMD_M内の物理ブロックポインタとバックアップ物理ブロック(ここでは物理ブロックC)を指し示す論理ブロック管理データLBMD_B内の物理ブロックポインタとを入れ替える。この物理ブロックポインタ(つまり、マッピング情報)の入れ替えにより、現在のマスタ物理ブロックAとバックアップ物理ブロックCとが入れ替えられる。つまり物理ブロックCがマスタ物理ブロックに、物理ブロックAがバックアップ物理ブロックに、それぞれ入れ替えられる。
物理ブロック入れ替え部206はステップS33を実行すると、レプリケーション管理部203に制御を渡す。するとレプリケーション管理部203は、ステップS34に進む。一方、スワップフラグがセットされていないならば(ステップS32のNo)、物理ブロック入れ替え部206は、ステップS33をスキップして、レプリケーション管理部203に制御を渡す。するとレプリケーション管理部203は、ステップS34に進む。
ステップS34においてレプリケーション管理部203は、論理ブロック番号を1インクリメントする。そしてレプリケーション管理部203は、この1インクリメント後の論理ブロック番号に基づき、マスタ論理ディスクMLD及びバックアップ論理ディスクBLDの最終論理ブロックまでレプリケーションコピーが実行されたかを判定する(ステップ35)。もし、最終論理ブロックまでレプリケーションコピーが実行されていないならば(ステップS35のNo)、レプリケーション管理部203はステップS22に戻る。
このようにして、マスタ論理ディスクMLD及びバックアップ論理ディスクBLDの先頭論理ブロックから最終論理ブロックまで、ステップS22から始まる処理が繰り返される。やがて、最終論理ブロックまでレプリケーションコピーが実行されたならば(ステップS35のYes)、レプリケーション管理部203はレプリケーションコピー処理を終了する。
従来の技術では、レプリケーションに伴う物理ブロック間のコピー(レプリケーションコピー)と、物理ブロックのマイグレーションに伴う物理ブロック間のコピー(マイグレーションコピー)とは独立して実行されていた。ところが、ディスクアレイ装置10における物理ブロック間のコピーは、一般にホスト装置20からのアクセス要求に対する応答性能に影響を与える。
これに対して本実施形態では、レプリケーションコピー処理において、論理ブロック単位でマイグレーションが必要か物理ブロック入れ替え判定部205によって判定される。
物理ブロック入れ替え部20は、この判定結果に基づいて、バックアップ物理ブロックを物理ブロックCに入れ替える。物理ブロック入れ替え部20は、この入れ替えに伴うマスタ物理ブロックからバックアップ物理ブロック(つまり物理ブロックC)へのコピー(つまりマイグレーションコピー)に、データコピー部203aによるマスタ物理ブロックからバックアップ物理ブロックへのレプリケーションコピーを利用できるように、このコピーの前に前記入れ替え(バックアップ物理ブロックを物理ブロックCに入れ替える動作)を実行する。つまり本実施形態によれば、前記判定結果に基づいてレプリケーションコピーとマイグレーションコピーとが同時に実行される。これによりディスクアレイ装置10におけるコピー処理を削減できる。よって本実施形態によれば、コピー処理による性能低下を軽減して、高速なディスクアレイ装置10を実現することができる。
以上説明した少なくとも1つの実施形態によれば、コピー動作を低減することができる、物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法を提供できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (6)

  1. 複数のディスクアレイと、
    前記複数のディスクアレイを制御するディスクアレイコントローラとを具備し、
    前記ディスクアレイコントローラは、
    前記複数のディスクアレイから選択された複数の物理ブロックを割り当てて複数の論理ディスクを定義する論理ブロック管理部と、
    マスタ論理ディスクとバックアップ論理ディスクを同期状態にするために前記マスタ論理ディスクから前記バックアップ論理ディスクにデータをコピーするデータコピー部と、
    前記マスタ論理ディスクに割り当てられた第1の物理ブロックから前記バックアップ論理ディスクに、前記データコピー部によってデータがコピーされる前に、前記第1の物理ブロックまたは前記第1の物理ブロックに対応付けられている前記バックアップ論理ディスクに割り当てられた第2の物理ブロックに代えて、第3の物理ブロックに割り当てを入れ替えるかを判定する物理ブロック入れ替え判定部と、
    前記第2の物理ブロックに代えて第3の物理ブロックに割り当てを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、前記第1の物理ブロックを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、且つ前記第1の物理ブロックから前記第3の物理ブロックにデータがコピーされた後に前記マスタ論理ディスクに対する前記第1の物理ブロックの割り当てを前記第3の物理ブロックに入れ替える物理ブロック入れ替え部とを具備する
    ディスクアレイ装置。
  2. 前記ディスクアレイコントローラは、前記物理ブロック毎に、当該物理ブロックへのデータのライトに応じてライト範囲を示す差分情報により差分領域を保持する差分管理部を更に具備し、
    前記データコピー部は、前記差分情報に基づいて前記マスタ論理ディスクから前記バックアップ論理ディスクにデータをコピーし、
    前記物理ブロック入れ替え部は、前記マスタ論理ディスクに対する前記第1の物理ブロックの割り当ての入れ替えが判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記第1の物理ブロックに対応する前記差分情報が前記第1の物理ブロックの領域全体を差分領域として示すように前記差分情報を更新する
    請求項1記載のディスクアレイ装置。
  3. 前記ディスクアレイコントローラは、
    前記論理ディスクにアクセスするアクセスコントローラと、
    リードされるべきデータを持つ前記マスタ論理ディスクに割り当てられた第4の物理ブロックに対応付けられ、前記第4の物理ブロックよりもアクセス性能が高い第5の物理ブロックが存在し、且つ前記第4の物理ブロックに対応する前記差分情報及び前記第5の物理ブロックに対応する前記差分情報によって前記第4の物理ブロック及び前記第5の物理ブロックの間に差分が無いことが示されている場合、前記第5の物理ブロックをリード対象物理ブロックとして選択する物理ブロック選択部と
    を具備し、
    前記アクセスコントローラは、前記第5の物理ブロックが選択された場合、前記第4の物理ブロックからデータをリードする代わりに前記第5の物理ブロックからデータをリードする
    請求項2記載のディスクアレイ装置。
  4. 前記ディスクアレイコントローラは、
    前記論理ディスクにアクセスするアクセスコントローラと、
    リードされるべきデータを持つ前記マスタ論理ディスクに割り当てられた第4の物理ブロックに対応付けられ、前記第4の物理ブロックよりもアクセス性能が高い第5の物理ブロックが存在し、且つ前記第4の物理ブロックに対応する前記差分情報及び前記第5の物理ブロックに対応する前記差分情報によって前記第4の物理ブロック及び前記第5の物理ブロックの間に差分が無いことが示されている場合、前記第4の物理ブロック及び前記第5の物理ブロックに対する負荷が前記物理ブロックの性能毎に定義された重みから決定される比率で配分されるように、前記第4の物理ブロックまたは前記第5の物理ブロックをリード対象物理ブロックとして選択するブロック選択部と
    を具備し、
    前記アクセスコントローラは、前記選択されたリード対象物理ブロックからデータをリードする
    請求項2記載のディスクアレイ装置。
  5. 複数のディスクアレイを制御するディスクアレイコントローラにおいて、
    前記複数のディスクアレイから選択された複数の物理ブロックを割り当てて複数の論理ディスクを定義する論理ブロック管理部と、
    マスタ論理ディスクとバックアップ論理ディスクを同期状態にするために前記マスタ論理ディスクから前記バックアップ論理ディスクにデータをコピーするデータコピー部と、
    前記マスタ論理ディスクに割り当てられた第1の物理ブロックから前記バックアップ論理ディスクに、前記データコピー部によってデータがコピーされる前に、前記第1の物理ブロックまたは前記第1の物理ブロックに対応付けられている前記バックアップ論理ディスクに割り当てられた第2の物理ブロックに代えて、第3の物理ブロックに割り当てを入れ替えるかを判定する物理ブロック入れ替え判定部と、
    前記第2の物理ブロックに代えて、第3の物理ブロックに割り当てを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、前記第1の物理ブロックを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、且つ前記第1の物理ブロックから前記第3の物理ブロックにデータがコピーされた後に前記マスタ論理ディスクに対する前記第1の物理ブロックの割り当てを前記第3の物理ブロックに入れ替える物理ブロック入れ替え部と
    を具備するディスクアレイコントローラ。
  6. 複数のディスクアレイから選択された複数の物理ブロックを割り当てて複数の論理ディスクを定義する論理ブロック管理部を備え、前記複数のディスクアレイを制御するディスクアレイコントローラにおいて、前記物理ブロック間でデータをコピーする方法であって、
    マスタ論理ディスクとバックアップ論理ディスクを同期状態にするために前記マスタ論理ディスクから前記バックアップ論理ディスクにデータをコピーし、
    前記マスタ論理ディスクに割り当てられた第1の物理ブロックから前記バックアップ論理ディスクに、前記同期状態にするためにデータがコピーされる前に、前記第1の物理ブロックまたは前記第1の物理ブロックに対応付けられている前記バックアップ論理ディスクに割り当てられた第2の物理ブロックに代えて、第3の物理ブロックに割り当てを入れ替えるかを判定し、
    前記第2の物理ブロックに代えて第3の物理ブロックに割り当てを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、
    前記第1の物理ブロックを入れ替えると判定された場合、前記第1の物理ブロックから前記バックアップ論理ディスクにデータがコピーされる前に、前記バックアップ論理ディスクに対する前記第2の物理ブロックの割り当てを前記第3の物理ブロックに入れ替え、且つ前記第1の物理ブロックから前記第3の物理ブロックにデータがコピーされた後に前記マスタ論理ディスクに対する前記第1の物理ブロックの割り当てを前記第3の物理ブロックに入れ替える
    方法。
JP2012543403A 2012-09-21 2012-09-21 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法 Active JP5583227B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/074190 WO2014045391A1 (ja) 2012-09-21 2012-09-21 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法

Publications (2)

Publication Number Publication Date
JP5583227B1 true JP5583227B1 (ja) 2014-09-03
JPWO2014045391A1 JPWO2014045391A1 (ja) 2016-08-18

Family

ID=50340082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012543403A Active JP5583227B1 (ja) 2012-09-21 2012-09-21 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法

Country Status (4)

Country Link
US (1) US20140089582A1 (ja)
JP (1) JP5583227B1 (ja)
CN (1) CN103827804B (ja)
WO (1) WO2014045391A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9823974B1 (en) * 2013-03-14 2017-11-21 EMC IP Holding Company LLC Excluding files in a block based backup
WO2015065436A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Target port processing of a data transfer
US10776033B2 (en) 2014-02-24 2020-09-15 Hewlett Packard Enterprise Development Lp Repurposable buffers for target port processing of a data transfer
KR102238650B1 (ko) * 2014-04-30 2021-04-09 삼성전자주식회사 저장 장치, 상기 저장 장치를 포함하는 컴퓨팅 시스템 및 상기 저장 장치의 동작 방법
JP7015776B2 (ja) * 2018-11-30 2022-02-03 株式会社日立製作所 ストレージシステム
KR20200088713A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11163482B2 (en) 2019-06-26 2021-11-02 International Business Machines Corporation Dynamic performance-class adjustment for storage drives
US11049570B2 (en) 2019-06-26 2021-06-29 International Business Machines Corporation Dynamic writes-per-day adjustment for storage drives
US11137915B2 (en) 2019-06-27 2021-10-05 International Business Machines Corporation Dynamic logical storage capacity adjustment for storage drives
US11847324B2 (en) * 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11989449B2 (en) * 2021-05-06 2024-05-21 EMC IP Holding Company LLC Method for full data reconstruction in a raid system having a protection pool of storage units
CN113885808B (zh) * 2021-10-28 2024-03-15 合肥兆芯电子有限公司 映射信息记录方法以及存储器控制电路单元与存储装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302713A (ja) * 2003-03-31 2004-10-28 Hitachi Ltd 記憶システム及びその制御方法
JP2005078507A (ja) * 2003-09-02 2005-03-24 Hitachi Ltd 仮想化制御装置、アクセス経路制御方法及び計算機システム
JP2006260376A (ja) * 2005-03-18 2006-09-28 Toshiba Corp ストレージ装置およびメディアエラー回復方法
JP2008129967A (ja) * 2006-11-24 2008-06-05 Fujitsu Ltd ボリューム移行プログラム及び方法
JP2010277289A (ja) * 2009-05-28 2010-12-09 Fujitsu Ltd 管理プログラム、管理装置および管理方法
JP2012150571A (ja) * 2011-01-17 2012-08-09 Hitachi Ltd 計算機システム、管理計算機およびストレージ管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028154B2 (en) * 2002-06-18 2006-04-11 Hewlett-Packard Development Company, L.P. Procedure to reduce copy time for data backup from short-term to long-term memory
JP2006236001A (ja) * 2005-02-24 2006-09-07 Nec Corp ディスクアレイ装置
JP5801189B2 (ja) * 2009-04-23 2015-10-28 株式会社日立製作所 計算機システム及びその制御方法
CN102214073A (zh) * 2010-04-08 2011-10-12 杭州华三通信技术有限公司 磁盘冗余阵列的热备盘切换控制方法及控制器
US8954669B2 (en) * 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302713A (ja) * 2003-03-31 2004-10-28 Hitachi Ltd 記憶システム及びその制御方法
JP2005078507A (ja) * 2003-09-02 2005-03-24 Hitachi Ltd 仮想化制御装置、アクセス経路制御方法及び計算機システム
JP2006260376A (ja) * 2005-03-18 2006-09-28 Toshiba Corp ストレージ装置およびメディアエラー回復方法
JP2008129967A (ja) * 2006-11-24 2008-06-05 Fujitsu Ltd ボリューム移行プログラム及び方法
JP2010277289A (ja) * 2009-05-28 2010-12-09 Fujitsu Ltd 管理プログラム、管理装置および管理方法
JP2012150571A (ja) * 2011-01-17 2012-08-09 Hitachi Ltd 計算機システム、管理計算機およびストレージ管理方法

Also Published As

Publication number Publication date
JPWO2014045391A1 (ja) 2016-08-18
US20140089582A1 (en) 2014-03-27
CN103827804B (zh) 2016-08-03
CN103827804A (zh) 2014-05-28
WO2014045391A1 (ja) 2014-03-27

Similar Documents

Publication Publication Date Title
JP5583227B1 (ja) 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
US20200210082A1 (en) Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
JP5707540B1 (ja) 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
WO2017000658A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
WO2012049711A1 (en) Data migration system and data migration method
EP1876519A2 (en) Storage system and write distribution method
JP5816303B2 (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
JP5750513B2 (ja) 不揮発半導体記憶媒体を有するストレージシステム
JP5976980B1 (ja) 階層化ストレージシステム、階層化ストレージ装置を利用するコンピュータ、及びファイルへのアクセスのカウントを補正する方法
US9361033B2 (en) Compound storage system and storage control method
US11740823B2 (en) Storage system and storage control method
US20210117117A1 (en) Construction of a block device
US8732422B2 (en) Storage apparatus and its control method
US20210117320A1 (en) Construction of a block device
JP6022116B1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
JP5355603B2 (ja) ディスクアレイ装置及び論理ボリュームアクセス方法
JP2013122691A (ja) 割り当て装置およびストレージ装置
JP2011242862A (ja) ストレージサブシステム及びその制御方法
US11544005B2 (en) Storage system and processing method
CN112148225B (zh) 一种基于NVMe SSD的块存储缓存系统及其方法
JP5638022B2 (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
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: 20140617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140715

R150 Certificate of patent or registration of utility model

Ref document number: 5583227

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350