JP2018185757A - ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム - Google Patents

ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Download PDF

Info

Publication number
JP2018185757A
JP2018185757A JP2017088709A JP2017088709A JP2018185757A JP 2018185757 A JP2018185757 A JP 2018185757A JP 2017088709 A JP2017088709 A JP 2017088709A JP 2017088709 A JP2017088709 A JP 2017088709A JP 2018185757 A JP2018185757 A JP 2018185757A
Authority
JP
Japan
Prior art keywords
data
storage
disk
storages
physical address
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.)
Pending
Application number
JP2017088709A
Other languages
English (en)
Inventor
親志 前田
Chikashi Maeda
親志 前田
由嘉莉 土山
Yukari Tsuchiyama
由嘉莉 土山
广宇 周
Guangyu Zhou
广宇 周
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 JP2017088709A priority Critical patent/JP2018185757A/ja
Priority to US15/944,922 priority patent/US20180314609A1/en
Publication of JP2018185757A publication Critical patent/JP2018185757A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

【課題】RAID技術によって制御される複数のストレージのデータの分散レイアウトを変更する際に、データアクセス回数を抑えること。
【解決手段】ストレージ制御装置101は、図1の(1)で示すように、新たなストレージとして、ストレージ102#9を追加する指示を受け付ける。指示を受け付けた場合、ストレージ制御装置101は、図1の(2)で示すように、FR−WideBand内に配置されたデータであって、それぞれが異なるFR−Bandに配置されたデータを、分割数のFR−Unitの各FR−Unitに対応して選択する。そして、ストレージ制御装置101は、図1の(3)で示すように、各FR−Unitに対応して選択したデータを、ストレージ102#9上であって、該当のデータが配置されたrowと同一のrowに移行する。
【選択図】図1

Description

本発明は、ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムに関する。
従来、複数のストレージを組み合わせて仮想的なディスクとして運用するRAID(Redundant Arrays of Inexpensive Disks)技術がある。また、データ復元にかかる時間を短縮するために、2以上のいずれかの数の各データで冗長性を担保するデータセットの含まれる各データを分散させる技術がある。また、ストレージに対応する代替ストレージを通電状態で待機しておき、ストレージが故障した際に、故障したストレージの代わりに、ホットスペアと呼ばれる代替ストレージを用いる技術がある。
先行技術として、例えば、ディスク追加後のディスクアレイとしての論理アドレスと各ディスクの物理アドレスのマッピング情報を格納するテーブルを作成し、ディスク追加前に使用された論理アドレスと物理アドレスのマッピングをテーブルに格納するものがある。また、各ディスクの記録領域内にスペア領域を分散配置し、1つのディスクが障害となった際には、他のディスクのスペア領域を代替使用し、ディスクを交換した際には、スペア領域を除いてデータの復旧を行う技術がある。
特開2000−010738号公報 特開2000−200157号公報
しかしながら、従来技術によれば、RAID技術によって制御される複数のストレージに新たなストレージを追加する際や、ホットスペアにデータを移行すると指示された際、データの分散レイアウトを変更しようとすると、データの入れ替えが発生することがある。データの入れ替えが発生すると、データ入れ替えのための一時的な作業用バッファ領域に対する読み書きが発生するため、データアクセス回数が増大する。
1つの側面では、本発明は、RAID技術によって制御される複数のストレージのデータの分散レイアウトを変更する際に、データアクセス回数を抑えることができるストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムを提供することを目的とする。
1つの実施態様では、ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムは、RAID技術によって制御される複数のストレージにアクセス可能なストレージ制御装置であって、2以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる各データが、複数のストレージのそれぞれ異なるストレージ上であって、かつ、データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断した場合に、複数のストレージの各ストレージの分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、いずれかの数のデータセットの各データセットに対応して選択し、各データセットに対応して選択したデータを、データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する。
一つの側面では、本発明は、RAID技術によって制御される複数のストレージのデータの分散レイアウトを変更する際に、データアクセス回数を抑えることが可能となる。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。 図2は、ストレージシステム200の構成例を示す説明図である。 図3は、CM201のハードウェア構成例を示す説明図である。 図4は、本実施の形態におけるディスクプール構成例を示す説明図である。 図5は、CM201の機能構成例を示す説明図である。 図6は、分散レイアウトテーブル512の記憶内容の一例を示す説明図である。 図7は、Rebuild処理の動作例を示す説明図である。 図8は、Rebalance処理の動作例を示す説明図である。 図9は、ディスクプール作成処理手順の一例を示すフローチャート(その1)である。 図10は、ディスクプール作成処理手順の一例を示すフローチャート(その2)である。 図11は、FHS選択テーブル513の記憶内容の一例を示す説明図である。 図12は、ディスクプール処理における分散レイアウトテーブル512と分散管理テーブル514との更新例を示す説明図(その1)である。 図13は、ディスクプール処理における分散レイアウトテーブル512と分散管理テーブル514との更新例を示す説明図(その2)である。 図14は、Rebuild処理手順の一例を示すフローチャート(その1)である。 図15は、Rebuild処理手順の一例を示すフローチャート(その2)である。 図16は、ディスク増設時処理手順の一例を示すフローチャートである。 図17は、FR−WideBand内FHS設定処理手順の一例を示すフローチャートである。 図18は、FR−Band内FR−Unit設定処理手順の一例を示すフローチャートである。 図19は、冗長セットの構成要素がディスクの同一位置に配置されるディスクプール構成の一例を示す説明図である。 図20は、冗長セットの構成要素をディスク番号およびディスク上の位置で管理するディスクプール構成の一例を示す説明図である。 図21は、本実施の形態における効果の一例を示す説明図である。
以下に図面を参照して、開示のストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。ストレージ制御装置101は、複数のストレージを制御するコンピュータである。具体的には、ストレージ制御装置101は、複数のストレージによりRAID技術による仮想的なディスクを生成し、ストレージ制御装置101のユーザに提供する。
RAID技術は、複数のストレージを組み合わせて仮想的なディスクとして運用する技術である。ここで、RAIDには、仮想的なディスクの形成の仕方を表すRAIDレベルが存在する。RAID1以上のRAIDレベルにより形成された仮想的なディスクは冗長性を有しており、いくつかのストレージが故障しても他のストレージからデータを復元することができる。以下、データを復元する処理を、「Rebuild処理」と呼称する。
また、ストレージに対応する代替ストレージを通電状態で待機しておき、ストレージが故障した際に、故障したストレージの代わりに代替ストレージを用いる技術がある。以下、代替ストレージを、「ホットスペア(HS:Hot Spare)」と呼称する。
ここで、ディスク単体の容量伸長率と比較し、ディスクへのアクセス速度の向上率は限定的である。このため、RAID構成におけるディスク故障時のRebuild処理に要する時間は年々増加している。
ここで、Rebuild処理にかかる時間を短縮するため、データの冗長性を担保するデータセットおよびホットスペア領域をRAID内に分散配置させることが考えられる。以下、データの冗長性を担保するデータセットを、「冗長セット」と呼称する。そして、前述した分散配置において、ディスク故障時は復元対象の冗長セットに含まれるデータが格納された各ディスクから読み出してデータ復元し、複数のストレージ上のホットスペアに復元データを書き込むことが考えられる。冗長セットおよびホットスペア領域を分散配置させたRAID構成は、「Fast Recovery RAID」構成と呼称されることがある。また、以下の記載では、冗長セットおよびホットスペア領域を分散配置させたRAID構成を、「ディスクプール構成」と呼称する。
ディスクプール構成について、FR(Fast Recovery)−Depth、FR−Unit、FR−Band、FHS(Fast Hot Spare)を定義する。FR−Depthは、冗長セットのデータ分割単位と同一の容量を有する物理記憶領域である。例えば、3つのユーザデータと、1つのパリティデータとで形成されるRAID5の冗長セットであれば、該当の冗長セットは、4つのFR−Depthに格納される。
FR−Unitは、2以上のいずれかの数のFR−Depthのことである。従って、FR−Unitが、冗長性を担保する単位となる。以下、FR−Unitに含まれるFR−Depthの数を、「分割数」と呼称することがある。そして、同じFR−Unitに属するFR−Depthは、冗長性を低下させないため、同一のストレージに配置しないようにする。
FR−Bandは、ディスクプール構成に属するストレージを通して、同一の物理アドレスを有するFR−Bandの集合である。また、x番目のFR−Bandを、row#xと表記することがある。
FHSは、各FR−Band内にあって、該当のFR−Bandに属するFR−Depthに格納されたデータの退避領域である。FHSは、FR−Depthと同一のサイズである。FHSは、FR−Band内に1以上あればよい。
FR−unitとFHSとの分散配置としては、例えば、下記2つの方法が考えられる。第1の方法は、同一FR−Unitに含まれるFR−Depthを全て同じFR−Bandに配置する方法である。第2の方法は、同一FR−Unitに含まれるFR−Depthを、異なるFR−Bandに配置し、配置したストレージおよびストレージ上におけるデータの位置を管理する方法である。第1の方法によるディスクプール構成については、図19で図示し、第2の方法によるディスクプール構成については、図20で図示する。
第1の方法では、同一FR−Unitに含まれる各FR−Depthの配置先として、各rowでディスク番号だけを管理すればよく、それぞれのディスク上の位置については管理が不要である。また、Rebuild処理時も故障ディスクのデータを別ディスクの同一row内のFHSへ復元すればよい。このため、分散レイアウト管理のためのテーブル容量をスリム化できる。しかしながら、第1の方法では、同一FR−Unitに含まれる各FR−Depthの配置先が同一rowとなるため、ディスクプールへの追加は、FR−Unitに含まれるFR−depthの数単位となり、柔軟性を欠くことになる。
第2の方法では、ディスクプールへの追加は、1本単位で行うことができる。しかしながら、第2の方法では、同一FR−Unitに含まれるFR−Depthの配置先として、ディスク番号およびディスク上の位置を管理することになり、分散レイアウト管理のためのテーブル容量が大きくなる。このため、冗長セットのサイズを大きくするか、管理対象の容量を小さくするなどの制限が発生する。また、第2の方法では、Rebuild処理時の故障ディスクのデータ復元先の決定や、ディスクプールへのディスク追加時の分散レイアウト変更が複雑になる。Rebuild処理完了後または分散レイアウト変更後に、各FR−Unit内のFR−Depthが全て異なるディスクになるためである。このため、予め決定された、いくつかの分散パターンから最もふさわしいパターンを選択するといった管理手法が必要となる。
また、第1の方法、第2の方法ともに、予め決定されているまたは均等な分散パターンを形成する場合や、ディスク追加等に伴い分散レイアウトを変更する場合に、既存データの入れ替えを行うことになる。この場合、データ入れ替えのための一時的な作業用バッファ領域を持つことになり、またデータ入れ替えの際にバッファ領域での読み出しおよび書き込みが余分に発生することになる。
そこで、本実施の形態では、FR−Unitに含まれる各データを、複数のストレージのそれぞれ異なるストレージ上であって、かつ、FR−Unitの同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なるFR−Bandに配置させる。以下、FR−Unitの同一のサイズで分割した分割物理アドレス範囲を、「FR−WideBand」と呼称する。FR−WideBandに含まれるrowの数は、FR−Unitに含まれるFR−depthの数と一致することになる。これにより、ディスクプールへの追加を、1本単位で行うことができる。
また、本実施の形態では、各FR−WideBandのいずれかのストレージに、1つのFR−Unitと同一の記憶容量分の連続したアドレス領域にFHSを配置する。上述したFR−Unitの配置とFHSの配置とにより、冗長セットの要素ごとにストレージ内での位置を管理しなくてよくなり、分散レイアウト管理のためのテーブル容量を小さくすることができる。本実施の形態にかかるディスクプール構成については、図4で示す。
そして、本実施の形態では、ディスクプール構成に新たなストレージを追加する際、FR−WideBand内の分割数分の冗長セットから、それぞれ異なるアドレスのデータを新たなストレージに移行する。これにより、データの入れ替えが発生しないため、ディスクプール構成変更時のデータ移動を極小化することができる。
図1を用いて、ストレージ制御装置101のRebalance処理の動作例について説明する。ここで、Rebalance処理は、Fast Recovery RAID内でのデータ配置の分散度合いを向上させる処理である。ストレージ制御装置101は、複数のストレージとして、ストレージ102#0〜#8にアクセス可能である。以下の説明では、同種の要素を区別する場合には、「ストレージ102#0」、「ストレージ102#1」のように参照符号を使用し、同種の要素を区別しない場合には、「ストレージ102」のように参照符号のうちの共通番号だけを使用することがある。
そして、図1では、FR−Unitに含まれる各データが、ストレージ102#0〜8のそれぞれ異なるストレージ上であって、かつ、FR−WideBand内でそれぞれ異なるFR−Bandに配置された状態である。ここで、図1を含む以下の図に示すディスクプール構成の各データには、白抜き、網掛け、塗りつぶしのいずれかが付与されており、同一の網掛け、または塗りつぶしのデータの組が、1つの冗長セットである。また、白抜きの箇所は、FHSである。
図1の状態では、分割数として4つのFR−Depthで1つのFR−Unitを形成し、FHSが1つある状態である。そして、row#0〜#3で、1つのFR−WideBandを形成する。
図1に示す状態で、ストレージ制御装置101は、新たなストレージまたはFHSとなるストレージをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。例えば、ストレージ制御装置101は、新たなストレージを追加する指示を受け付けた際に、新たなストレージをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。また、FHSにデータを移行する際に、ストレージ制御装置101は、該当のFHSをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断してもよい。FHSにデータを移行する場合とは、例えば、複数のFHSがある場合に、ストレージ制御装置101は、ストレージ制御装置101のユーザから、複数のFHSのいずれかにFHSにもデータを移行するという指示を受け付けた場合である。
図1では、(1)で示すように、ストレージ制御装置101は、新たなストレージとして、ストレージ102#9を追加する指示を受け付けたため、ストレージ102#9をデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。
各データの分散レイアウトの変更を行うと判断した場合、ストレージ制御装置101は、図1の(2)で示すように、FR−WideBand内に配置されたデータであって、それぞれが異なるFR−Bandに配置されたデータを、分割数のFR−Unitの各FR−Unitに対応して選択する。
例えば、図1の例では、ストレージ制御装置101は、row#0に関して、大き目の格子模様の網掛けを付与したFR−Unitに属するストレージ102#5のデータを選択する。また、ストレージ制御装置101は、row#1に関して、右上から左下に向かう斜線の網掛けを付与したFR−Unitに属するストレージ102#7のデータを選択する。また、ストレージ制御装置101は、row#2に関して、斜めの格子模様の網掛けを付与したFR−Unitに属するストレージ102#2のデータを選択する。また、ストレージ制御装置101は、row#3に関して、小さ目の格子模様の網掛けを付与したFR−Unitに属するストレージ102#4のデータを選択する。
そして、ストレージ制御装置101は、図1の(3)で示すように、各FR−Unitに対応して選択したデータを、ストレージ102#9上であって、該当のデータが配置されたrowと同一のrowに移行する。
これにより、ストレージ制御装置101は、既存データを入れ替えずに、データを分散するため、ディスクプール構成変更時のデータ移動を極小化することができる。また、本実施の形態における冗長セットのRAIDレベルは、特に制限はない。また、図1で示した方法は、コピーバック時にも適用することができる。コピーバックとは、故障したストレージまたは減設するストレージのデータを、Rebuild処理によってFHSに復元またはコピーした後に、故障したストレージまたは減設するストレージの代わりとなるストレージに、FHSのデータをコピーすることである。
また、図1で示した方法は、Rebuild処理にも適用することができる。例えば、ストレージ制御装置101が、複数のストレージのうち故障したストレージを検出した、または複数のストレージから減設対象ストレージを取り除く指示を受け付けたとする。この際に、ストレージ制御装置101は、FHSをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。各データの分散レイアウトの変更を行うと判断した場合に、ストレージ制御装置101は、故障したストレージまたは減設対象ストレージの各データを、分割数のFR−Unitの各FR−Unitに対応して選択する。ここで、故障したストレージまたは減設対象ストレージの各データは、FR−WideBand内に配置されたデータであって、それぞれが異なるFR−Bandに配置されたデータとなる。そして、ストレージ制御装置101は、各FR−Unitに対応して選択したデータを、データ移行対象ストレージとなるFHS上であって、該当のデータが配置されたrowと同一のrowに移行する。ここで、データの移行方法として、故障したストレージからはデータを取得できないため、ストレージ制御装置101は、各FR−Unitの選択したデータ以外のデータから、選択したデータを復元し、復元したデータをFHSに書き込めばよい。また、減設対象ストレージからはデータを取得できるため、ストレージ制御装置101は、減設対象ストレージから選択したデータを取得し、取得したデータをFHSに書き込めばよい。次に、ストレージ制御装置101をストレージシステムに適用した例を、図2を用いて説明する。
図2は、ストレージシステム200の構成例を示す説明図である。ストレージシステム200は、CM(Controller Module)201と、ホスト装置202と、複数のディスク203と、管理者端末204とを含む。CM201と管理者端末204とは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワーク210で接続される。CM201は、図1で示したストレージ制御装置101に相当する。また、ディスク203は、図1で示したストレージ102に相当する。
CM201は、ディスクアクセスを制御するコントローラである。また、CM201は、図2の例で示すように、複数個のCM201を有して、CM201を冗長構成としてもよい。CM201の内部のハードウェアについては、図3で説明する。ホスト装置202は、ストレージシステム200が提供するボリュームを利用する装置である。例えば、ホスト装置202は、Webサーバや、DB(DataBase)サーバである。
ディスク203は、ストレージシステム200が提供する記憶領域を有する記憶装置である。ディスク203は、例えば、HDD(Hard Disk Drive)や、SSD(Solid State Drive)を採用することができる。
管理者端末204は、ストレージシステム200を管理する管理者Adにより操作されるコンピュータである。次に、図3を用いて、CM201のハードウェア構成例を示す。
図3は、CM201のハードウェア構成例を示す説明図である。CM201は、CPU(Central Processing Unit)301と、フラッシュROM(Read Only Memory)302と、キャッシュメモリ303と、CA(Channel Adaptor)304と、LANポート305、DI(Disk Interface)306とを有する。
CPU301は、CM201の全体の制御を司る演算処理装置である。フラッシュROM302は、本実施の形態にかかるストレージ制御プログラムを記憶する不揮発性メモリである。フラッシュROM302の記憶媒体としては、例えば、NANDフラッシュを採用することができる。キャッシュメモリ303は、CPU301のワークエリアとして使用される揮発性メモリである。キャッシュメモリ303は、CPU301のワークエリアとして使用される揮発性メモリである。また、キャッシュメモリ303は、フラッシュROM302から読み出したストレージ制御プログラムを記憶する。
CA304は、ホスト装置202と通信する通信インターフェースである。LANポート305は、管理者端末204と接続する通信インターフェースである。DI306は、ディスク203と通信する通信インターフェースである。
また、ホスト装置202は、CPUと、フラッシュROMと、キャッシュメモリと、通信インターフェースとを有する。また、管理者端末204は、CPUと、フラッシュROMと、キャッシュメモリと、通信インターフェースと、ディスプレイと、キーボードと、マウスとを有する。次に、本実施の形態におけるディスクプール構成例について、図4で示す。
図4は、本実施の形態におけるディスクプール構成例を示す説明図である。図4では、本実施の形態におけるディスクプール構成として、冗長セットの構成要素が、各ディスクの異なる位置にあり、かつ、冗長セット内のデータごとに位置を管理しなくてよいディスクプール構成である。FR−Unitの配置パターンは、ディスクプールの作成、ディスク203の故障、交換、追加、削除等のディスクプール構成変更の際に生成される。CM201は、ディスクプール構成変更のトリガとなる事象が発生した際に、以下に示す8つの条件を満たすようなFR−Unitのパターンをヒューリスティックに作成・評価していくことでFR−Unitのパターンを生成する。
第1の条件:1つのFHSを形成するFR−Depthは、全て同一ディスク上に配置しなければならない。
第2の条件:FHSがディスク間でなるべく一様となるようにディスクを選択する。
第3の条件:各ディスクについて、FHSがパターン間でなるべく一様となるようにディスクを選択する。
第4の条件:同一FR−Unitに所属するFR−Depthを同一ディスク上に複数配置してはいけない。
第5の条件:同一FR−Unitに所属するFR−Depthは全て同一FR−WideBand内に存在する。
第6の条件:各ディスクについて、同一FR−Unitに所属する他ディスクが、ディスク間でなるべく一様となるように他ディスクを選択する。
第7の条件:各ディスクについて、同一FR−Unitに所属する他ディスクが、パターン間でなるべく一様となるようにディスクを選択する。
第8の条件:既存の分散レイアウトを変更する場合、既にデータが格納されているFR−Depthを別FR−Depthに置き換えるような変更は行わない。
上述した第8の条件により、CM201は、レイアウト変更の際のデータの入れ替えを抑止し、追加ディスクまたは未使用FHS領域だけをターゲットとしたデータの移動を行うことになる。これにより、CM201は、冗長性を保った状態でレイアウト変更が可能であり、作業バッファを介した余分なRead/Writeを避けることができる。
図5は、CM201の機能構成例を示す説明図である。CM201は、制御部500を有する。制御部500は、I/O制御部501と、構成管理部502と、キャッシュ制御部503と、RAID制御部504と、分散レイアウト管理部505と、RAID Recovery制御部506とを含む。分散レイアウト管理部505は、FR−Unit設定部507と、復元先設定部508とを含む。制御部500は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したフラッシュROM302、キャッシュメモリ303などである。また、各部の処理結果は、キャッシュメモリ303や、CPU301のレジスタ等に格納される。
また、ストレージ制御装置101は、記憶部510にアクセス可能である。記憶部510は、キャッシュメモリ303といった記憶装置に格納されている。そして、記憶部510は、構成テーブル511と、分散レイアウトテーブル512と、FHS選択テーブル513と、分散管理テーブル514を格納するテーブル領域を有する。
構成テーブル511は、RAID構成、ボリューム構成、マッピング等の装置の内部構成を示す情報を有するテーブルである。分散レイアウトテーブル512は、RAIDとしての論理アドレスと、ディスク番号および各ディスク上のアドレスを変換するために用いるテーブルである。分散レイアウトテーブル512の記憶内容の一例は、図6で示す。FHS選択テーブル513と、分散管理テーブル514とは、Rebuild処理とRebalance処理との実行中の情報を記憶するテーブルである。FHS選択テーブル513の記憶内容の一例は、図11で示す。分散管理テーブル514の記憶内容の一例は、図12、図13で示す。
I/O制御部501は、ホスト装置202からのI/O要求および応答を実行する。
構成管理部502は、RAID構成、ボリューム構成、マッピング等の装置の内部構成を管理し、管理する際に用いる情報を、構成テーブル511上に格納する。
キャッシュ制御部503は、受け付けたI/Oデータのキャッシュメモリ303上への配置や、ディスク203からのStaging、ディスク203へのWritebackのタイミングの管理を行う。
RAID制御部504は、分散レイアウト管理部505と連携して各ディスク203へのコマンド発行や、RAIDの負荷管理を行う。
分散レイアウト管理部505は、Fast Recovery RAID内部のデータ分散レイアウトの生成・変更を行う。分散レイアウト管理部505が管理する情報は、分散レイアウトテーブル512に格納される。
RAID Recovery制御部506は、ディスク故障によるRebuild処理や、ディスク交換・追加によるRebalance処理をスケジュールし進捗の管理を行う。
FR−Unit設定部507は、ディスク203が追加された際や、未使用FHS領域にデータを移行すると指示された際に、FR−Unitのデータ分散を行う。例えば、I/O制御部501が、新たなディスク203を追加する指示を受け付けたとする。この場合、FR−Unit設定部507は、FR−WideBand内に配置されたデータであって、それぞれが異なるFR−Bandに配置されたデータを、分割数のFR−Unitの各FR−Unitに対応して選択する。そして、FR−Unit設定部507は、各FR−Unitに対応して選択したデータを、新たなディスク203上であって、該当のデータが配置されたrowと同一のrowに移行するように決定する。FR−Unit設定部507は、移行先についての情報を、分散レイアウトテーブル512に格納する。
また、FR−Unit設定部507は、データが配置されたディスク203と、複数のディスク203に配置された各FR−Unitが配置されたディスク203同士の組み合わせの回数とに基づいて、データを選択してもよい。
例えば、FR−Unit設定部507は、各ディスク203のデータが移動したと仮定して、仮定後のデータが配置されたディスク203と、複数のディスク203に配置された各FR−Unitが配置されたディスク203同士の組み合わせの回数を求めてもよい。FR−Unit設定部507は、各ディスク203の各データに対して、仮定後のディスク203同士の組み合わせの回数を求め、仮定後のディスク203同士の組み合わせの回数が最も少なくなった際における移動したと仮定したデータを選択する。より具体的な方法については、図18のステップS1807の処理で説明する。
また、ディスク203同士の組み合わせの回数が示す事柄について、下記例を用いて説明する。例えば、ディスク203#0〜#3があり、2つのデータを含むFR−Unitが3つあり、FHSが1つあるとする。3つのFR−Unitを、それぞれ、FR−Unit#A、#B、#Cとする。2つのデータを含むFR−Unitであるため、1つのFR−WideBandには、2つのrowが含まれることになる。そして、ディスク203#0、#1、#2、#3の順に、以下のようにFR−UnitとFHSとが配置されているとする。以下の例では、FR−Unit#A、FR−Unit#B、FR−Unit#Cを、単に、「#A」、「#B」、「#C」と記載する。また、FHSを、単に「HS」と記載する。
row#0:#A、#B、#C、HS
row#1:#B、#C、#A、HS
row#2:#C、#A、HS、#B
row#3:#B、#C、HS、#A
この場合、FR−Unit#Aが配置されたディスク203同士の組み合わせは、ディスク203#0、#2と、ディスク203#1、#3とである。また、FR−Unit#Bが配置されたディスク203同士の組み合わせは、ディスク203#0、#1と、ディスク203#1、#3とである。また、FR−Unit#Cが配置されたディスク203同士の組み合わせは、ディスク203#1、#2と、ディスク203#0、#1とである。従って、ディスク203同士の組み合わせの回数について、ディスク203#0、#1の組み合わせが2回となり、ディスク203#2、#3の組み合わせが1回となり、他の組み合わせが1回となる。ここで、組み合わせが2回となったディスク203#0、#1のいずれかが故障した場合、ディスク203#2、#3が故障した場合に比べて、他のディスク203と比較して読み出しが集中するディスク203が発生することになる。
例えば、ディスク203#0が故障した場合、ディスク203#0のrow#0〜#3を復元するため、ディスク203#2のrow#1、ディスク203#1のrow#0、ディスク203#1のrow#3、ディスク203#3のrow#2が読み出される。従って、ディスク203#0が故障した場合、ディスク203#1に対して2回の読み出し要求が発生する。これに対し、ディスク203#2が故障した場合、ディスク203#2のrow#0、#1を復元するため、ディスク203#1のrow#1、ディスク203#0のrow#0が読み出される。このように、ディスク203#2が故障した場合、ディスク203に対して1回の読み出し要求しか発生せず、2回の読み出し要求が発生することはない。従って、ディスク203同士の組み合わせの回数は、Rebuild処理時において、一方のディスク203が故障した際の他方のディスク203に対する読み出し回数を示すともいえる。
上述した例では、FR−Unit設定部507は、組み合わせ回数が最も大きいディスク203#0、#1のうち、ディスク203#0、#1の組み合わせとなったFR−Unitのデータを選択すればよい。例えば、FR−Unit設定部507は、ディスク203#0のrow#2に配置されたFR−Unit#Cのデータを選択する。ディスク203#0のrow#2のデータが移行されることにより、上述した例では、ディスク203#1への読み出しが1回減り、読み出しが集中するディスク203がなくなるため、Rebuild処理にかかる時間を短縮することができる。
復元先設定部508は、Rebuild処理を行う際に、データの復元先を設定する。具体的には、構成管理部502が、複数のディスク203のうち故障したディスク203を検出したこと、または、I/O制御部501が、複数のディスク203から減設対象ディスクを取り除く指示を受け付けたとする。この場合、復元先設定部508は、故障したディスク203または減設対象ディスク203が記憶するデータを、該当のデータを含むFR−Unitに基づいて、FHS上であって、該当のデータと同一のrowのFR−depthに復元するよう設定する。
また、FHSが2以上ある場合もある。この場合、復元先設定部508は、2以上のFHSに対応して、2以上のFHSの各FHSにデータを復元した後の状態における複数のディスク203に配置された各FR−Unitが配置されたディスク203同士の組み合わせの回数を計数してもよい。そして、復元先設定部508は、2以上のFHSのそれぞれに対応して計数した組み合わせの回数に基づいて、2以上のFHSから復元先のFHSを決定する。ディスク203同士の組み合わせの回数については、FR−Unit設定部507と同様の方法である。そして、例えば、復元先設定部508は、2以上のFHSの各FHSに対応して計数した組み合わせの回数から、値が小さい方が多いFHSを、復元先のFHSとして決定する。より具体的な方法については、図14のステップS1408の処理で説明する。
図6は、分散レイアウトテーブル512の記憶内容の一例を示す説明図である。図8に示す分散レイアウトテーブル512は、レコード601−1〜11を有する。
分散レイアウトテーブル512は、はFast Recovery RAID内のディスク番号と、図4で示したルールで生成された分散パターン番号の二次元配列となる。図6で示す分散レイアウトテーブル512は、ディスク203が9本であり、冗長メンバが4であり、FHSが2本分である場合の例を示す。分散レイアウトテーブル512の各メンバは、FR−WideBand内でのFR−Unit番号が格納される。
RAIDとしての論理アドレスは、ディスクのアドレス方向に割り付けていることとする。以下、RAIDとしての論理アドレスを、「RLBA(RAID Logical Block Addressing)」と呼称する。具体的には、RLBAは、以下のような順序となる。
FR−WideBand#0 FR−Unit#0→FR−WideBand#1 FR−Unit#0→…→FR−WideBand#N FR−Unit#0→FR−WideBand#0 FR−Unit#1→FR−WideBand#1 FR−Unit#1→…→FR−WideBand#N FR−Unit#1→…→FR−WideBand#0 FR−Unit#M→FR−WideBand#1 FR−Unit#M→…→FR−WideBand#N FR−Unit#M
このようなアドレッシングにすることにより、CM201は、Fast Recovery RAIDへディスク追加を行った場合に、使用中のRLBAを変更することなく領域を末尾に追加することが可能となる。RLBAをディスク上の物理位置に変換するには、CM201は、以下に示す処理を実施する。
まず、CM201は、RLBAをFR−Unitサイズで割った商と、1ディスク上に存在するFR−WideBand数から、該当するFR−WideBand番号とFR−WideBand内のFR−Unit番号を特定する。次に、CM201は、RLBAをFR−Unitサイズで割った剰余をFR−Depthサイズで割った商から、FR−Unit内のFR−Depth番号を特定する。そして、CM201は、求めたFR−WideBand番号、FR−Unit番号、FR−Depth番号に相当する箇所を分散レイアウトテーブル512から参照し、対応するディスク番号およびディスク上のアドレスを特定する。なお、CM201は、分散レイアウトテーブル512を、ディスク203を通して一意となるように記憶してもよいし、ディスク203をある程度のサイズに分割して周期的に記憶してもよい。
なお、図6より後の図で、分散レイアウトテーブル512を表示する際には、表示の都合上から、「ディスク番号」の記載を省略することがある。
図7は、Rebuild処理の動作例を示す説明図である。ディスク故障が発生した場合、CM201は、故障ディスク上のデータを同一FR−WideBand上のFHSへ復元する。まず、CM201は、構成変更後の分散レイアウトテーブル512を作成する。各FR−WideBand上に複数のFHSが存在する場合、上述の分散パターンの生成要件をなるべく満たすようなFHSを選択する。
Rebuildのスケジュールは、ストレージ装置のコントローラのRAID Recovery制御部506によって行われる。RAID Recovery制御部506は、対象RAIDのFR−BandごとにRebuildの実施か未実施かを示す管理情報を2[bit]用意し、bitmap管理する。ここで、管理情報が2bitのデータサイズを有する理由は、他の構成変更中のディスク故障など3状態以上が混在する場合でも処理を継続させるためである。
図7では、Rebuild処理の動作例を示す。図7で示すディスク構成は、2本分のFHS領域を内包する9ディスク構成のFast Recovery RAIDであり、4つのFR−Bandで1つのFR−WideBandを形成する例である。ディスク故障が発生した場合、RAID Recovery制御部506は、故障ディスク上のデータを同一FR−WideBand上のFHS領域に復元する。FR−Band間でディスク読み出しが分散され、FR−WideBand間でディスク書き込みが分散されることにより、CM201は、ディスク単体のスループット以上のリカバリ速度を実現する。具体的には、FR−Unitの配置パターンの第6の条件および第7の条件により、FR−Band間でディスク読み出しが分散される。また、FR−Unitの配置パターンの第2の条件および第3の条件により、FR−WideBand間でディスク書き込みが分散される。
図7を用いて、Rebuild処理の動作例をより具体的に説明する。図7の上部で示すディスク構成が、故障が発生する前のディスクプール構成である。9ディスク構成であるから、図7で示すディスクプール構成は、ディスク203#0〜#8で形成される。そして、ディスク203#2が故障したとする。図7の下部で示すディスク構成が、ディスク203#2が故障し、Rebuild処理が完了した後のディスクプール構成である。RAID Recovery制御部506は、塗りつぶした矢印が示すように、ディスク203#8のrow#0〜#3、ディスク203#1のrow#4〜#7、ディスク203#0のrow#8〜#11のFHS領域に、ディスク203#2のデータを復元する。
また、図7の下部で示す各データのうち、「R」が記載されたデータは、Rebuild処理中に読み出しが発生するデータであり、「W」が記載されたデータは、Rebuild処理中に書き込みが発生するデータである。図7の下部で示す「R」が記載されたデータの分布が示すように、FR−Band間でディスク読み出しが分散されていることがわかる。また、図7の下部で示す「W」が記載されたデータの分布が示すように、FR−WideBand間でディスク書き込みが分散されていることがわかる。
図8は、Rebalance処理の動作例を示す説明図である。本実施の形態では、故障ディスクの交換または追加を実施した場合に、同一FR−Band上でデータを移動することにより、分散のRebalanceを行う。まず、分散レイアウト管理部505は、上述の分散パターンの生成要件に従って、ディスクプール構成変更後の分散レイアウトテーブル512を作成する。この際に、追加されたディスク上の領域または未使用のFHS領域といった、データが格納されていないFR−Depthだけをデータの移動先として選択することにより、冗長性を保った状態での再配置を実行することができる。ここで、ディスクグループに所属していた故障ディスクを交換した場合も、故障前と同じ分散パターンになるとは限らない。
図8では、ディスク追加して、ユーザ容量を増やすときのRebalance処理の動作例を示す。図8で示すディスクプール構成は、2本分のFHS領域を内包する9ディスク構成のディスクグループであり、4つのFR−Bandで1つのFR−WideBandを形成する例である。ディスク追加を実行した場合、各FR−Band上のデータは、同一FR−Band内の追加ディスクまたは未使用FHS領域を移動先として、必要に応じて再分散される。データ移動が完了した時点で、追加されたFR−Unitの容量が使用可能となる。
図8を用いて、Rebalance処理をより具体的に示す。9ディスク構成であるから、図8で示すディスクプール構成は、ディスク203#0〜#8で形成される。そして、図8の上部で示すように、図8で示すディスクプール構成に、ディスク203#9を追加したとする。RAID Recovery制御部506は、ディスクプール構成変更後の分散レイアウトテーブル512に従って、Rebalance処理を実行する。図8の上部の矢印で示すように、RAID Recovery制御部506は、追加されたディスク上の領域または未使用のFHS領域といった、データが格納されていないFR−Depthだけをデータの移動先とする。
図8の下部では、Rebalance処理終了後、大き目の円による水玉模様の網掛けが付与された冗長セットとして、新規のFR−Unit領域が設定された例を示す。
次に、CM201が行うディスクプール作成処理について、図9と図10とを用いて説明する。
図9は、ディスクプール作成処理手順の一例を示すフローチャート(その1)である。また、図10は、ディスクプール作成処理手順の一例を示すフローチャート(その2)である。CM201は、管理者端末204から、ディスクプール作成のオペレーションを受け付ける(ステップS901)。このとき、管理者端末204は、管理GUI(Graphical User Interface)による入力項目を、管理者端末204のディスプレイに表示する。入力項目は、例えば、ディスクプールに使用するディスクの本数と、スペア領域として使用する容量分のディスク本数と、FR−Unitに含まれるFR−Depth数と、FR−UnitのRAID Levelとを入力する項目である。また、管理者端末204は、全ての入力項目を管理者Adが入力するようにしてもよいし、入力項目に規定値を予め設定しておいてもよい。
次に、分散レイアウト管理部505は、分散レイアウト作成に用いる作業バッファをキャッシュメモリ303上に獲得し、FHS選択テーブル513および分散管理テーブル514を作成し、初期化する(ステップS902)。以降の処理では、ディスクプール作成処理の終了まで、分散レイアウト管理部505がフローの制御を行う。
そして、分散レイアウト管理部505は、レイアウト作成対象を先頭のFR−Bandに設定する(ステップS903)。次に、分散レイアウト管理部505は、今回のFR−BandがFR−WideBand内の先頭か否かを判断する(ステップS904)。今回のFR−BandがFR−WideBand内の先頭である場合(ステップS904:Yes)、分散レイアウト管理部505は、今回のFR−WideBandでのFHS候補ディスクを、未使用ディスクの中から仮設定する(ステップS905)。次に、分散レイアウト管理部505は、比較対象を次の選択可能なディスクに設定し、FHS選択テーブル513を確認する(ステップS906)。そして、分散レイアウト管理部505は、FHS候補ディスクよりも比較対象の方がFHSに相応しいディスクか否かを判断する(ステップS907)。ここで、分散レイアウト管理部505は、FHSに相応しいディスクか否かを、以下の3つの条件の順の優先度で判断する。
第1の条件:分散レイアウトを通してFHSとして設定された回数が少ない。
第2の条件:複数のFHSが存在する場合に、同一FR−WideBand内の他のFHSとの組み合わせ回数が少ない。
第3の条件:以前のFR−WideBandで最後にFHSに設定されてから今回のFR−WideBandまでの位置が遠い。
例えば、分散レイアウト管理部505は、第1の条件において、FHS候補ディスクと比較対象とのFHSの設定回数が同一であれば、第2の条件を用いて判断する。上述した3つの条件について、分散レイアウト管理部505は、FHS選択テーブル513を用いて判断する。FHS選択テーブル513の記憶内容の一例と、具体的な判断内容については、図11で示す。
比較対象の方がFHSに相応しいと判断した場合(ステップS907:Yes)、分散レイアウト管理部505は、比較対象をFHS候補ディスクに設定する(ステップS908)。ステップS908の処理終了後、または、FHS候補ディスクの方がFHSに相応しいと判断した場合(ステップS907:No)、分散レイアウト管理部505は、今回のFHSについて、全ディスクの比較が完了したか否かを判断する(ステップS909)。まだ比較していないディスクがある場合(ステップS909:No)、分散レイアウト管理部505は、ステップS906の処理に移行する。
一方、全ディスクの比較が完了した場合(ステップS909:Yes)、分散レイアウト管理部505は、FHS候補ディスクを今回のFHSディスクとして設定し、FHS選択テーブル513と分散レイアウトテーブル512とを更新する(ステップS910)。FHS選択テーブル513の具体的な更新内容については、図11で示す。また、分散レイアウトテーブル512について、分散レイアウト管理部505は、HSとなったディスクのフィールドを更新する。
次に、分散レイアウト管理部505は、所定数のFHSを設定済みか否かを判断する(ステップS911)。ここで、所定数のFHSとは、ディスクプール内に確保しようとするFHS数であり、ステップS901の処理で設定した、スペア領域として使用する容量分のディスク本数である。所定数のFHSを設定済みでない場合(ステップS911:No)、分散レイアウト管理部505は、ステップS905の処理に移行する。一方、所定数のFHSを設定済みである場合(ステップS911:Yes)、今回のFR−Bandについてデータディスクの分散を求めるため、分散レイアウト管理部505は、確認対象をFR−Band内の先頭FR−Unitに設定する(ステップS912)。また、今回のFR−BandがFR−WideBand内の先頭でない場合(ステップS904:No)も、分散レイアウト管理部505は、ステップS912の処理に移行する。
次に、分散レイアウト管理部505は、FR−Unitの候補ディスクを仮設定する(ステップS1001)。ここで、FR−Unitの候補ディスクとして設定可能なディスクは、同一FR−Bandでまだ使用されていない、かつ同一FR−WideBand内で同一FR−Unitとして選択されていないという条件を満たすディスクである。前述した条件を満たすディスクがないこともある。
そして、分散レイアウト管理部505は、仮設定が成功、すなわち、前述した条件を満たすディスクを設定できたか否かを判断する(ステップS1002)。前述した条件を満たすディスクを設定できていない場合(ステップS1002:No)、分散レイアウト管理部505は、同一FR−Band内で設定済みのFR−Unitに使用するディスクのうち、今回のFR−Unitとして設定可能なものを検索し、入れ替える(ステップS1003)。そして、分散レイアウト管理部505は、入れ替えに応じて分散管理テーブルを再更新する(ステップS1004)。
前述した条件を満たすディスクを設定できた場合(ステップS1002:Yes)、または、ステップS1004の処理終了後、分散レイアウト管理部505は、比較対象として、次の選択可能なディスクを設定し、分散管理テーブル514を確認する(ステップS1005)。分散レイアウト管理部505は、候補ディスクよりも比較対象の方がFR−Unitに相応しいか否かを判断する(ステップS1006)。ここで、分散レイアウト管理部505は、FR−Unitに相応しいか否かを、以下の順の2つの条件の優先度で判断する。
第1の条件:分散レイアウトを通して、同一FR−WideBand内で同じFR−Unitとして特定の他ディスクとの組み合わせ回数が少ない。
第2の条件:以前のFR−WideBandで最後に設定されてから今回のFR−WideBandまでの位置が遠い。
上述した2つの条件について、分散レイアウト管理部505は、分散管理テーブル514を用いて判断する。分散管理テーブル514の記憶内容の一例と、具体的な判断例については、図12、図13で示す。
比較対象の方がFR−Unitに相応しい場合(ステップS1006:Yes)、分散レイアウト管理部505は、今回の比較対象をFR−Unitの候補ディスクに変更する(ステップS1007)。ステップS1007の処理終了後、または、候補ディスクの方がFR−Unitに相応しい場合(ステップS1006:No)、分散レイアウト管理部505は、今回のFR−Unitについて、全てのディスクとの比較が完了したか否かを判断する(ステップS1008)。まだ比較が完了していないディスクがある場合(ステップS1008:No)、分散レイアウト管理部505は、ステップS1005の処理に移行する。
一方、全てのディスクとの比較が完了した場合(ステップS1008:Yes)、分散レイアウト管理部505は、候補ディスクを今回のFR−Unitについて使用するディスクに設定し、設定したディスクに応じて分散管理テーブル514を更新する(ステップS1009)。次に、分散レイアウト管理部505は、今回のFR−Bandについて、所定数のFR−Unitのディスクを設定済みか否かを判断する(ステップS1010)。ここで、所定数は、ステップS901の処理で設定した、使用するディスク本数から、スペア領域として使用する容量分のディスク本数を減じた値である。
所定数のFR−Unitのディスクを設定済みではない場合(ステップS1010:No)、分散レイアウト管理部505は、設定対象を次のFR−Unitに変更する(ステップS1011)。そして、分散レイアウト管理部505は、ステップS1001の処理に移行する。
一方、所定数のFR−Unitのディスクを設定済みである場合(ステップS1010:Yes)、分散レイアウト管理部505は、本FR−BandのFHS以外の設定情報を分散レイアウトテーブル512に反映し、設定対象を次のFR−Bandへ変更する(ステップS1012)。そして、分散レイアウト管理部505は、所定数として、分散レイアウトを決定するために必要なFR−Bandを設定済みか否かを判断する(ステップS1013)。分散レイアウトを決定するために必要なFR−Bandを設定済みでない場合(ステップS1013:No)、分散レイアウト管理部505は、ステップS904の処理に移行する。
一方、分散レイアウトを決定するために必要なFR−Bandを設定済みである場合(ステップS1013:Yes)、分散レイアウト管理部505は、作業バッファを解放する(ステップS1014)。そして、分散レイアウト管理部505は、ディスクプール作成処理を終了する。
図11は、FHS選択テーブル513の記憶内容の一例を示す説明図である。FHS選択テーブル513は、FHS設定回数を管理するテーブル1101と、FHS設定組み合わせ回数を管理するテーブル1102と、最後にFHSに設定されてからの位置を管理するテーブル1103とを有する。
テーブル1101は、各ディスクについて、FHSに設定された回数を記憶する。例えば、図11に示すテーブル1101は、ディスク203#0〜#3が1回ずつFHSに設定された例を示す。そして、分散レイアウト管理部505は、ステップS907の処理の第1の条件として、テーブル1101を参照して、FHS候補ディスクと比較対象との設定回数を比較する。
テーブル1102は、複数のFHSが存在する際に、同一FR−WideBand内の他のFHSとの組み合わせ回数を記憶する。例えば、図11に示すテーブル1102は、ディスク203#0、#1の組み合わせと、ディスク203#2、#3の組み合わせとがFHSとして1回ずつ設定されたことを示す。そして、分散レイアウト管理部505は、ステップS907の処理の第2の条件として、テーブル1102を参照して、FHS候補ディスクの行と、比較対象の行とを取得する。2つの行を取得後、分散レイアウト管理部505は、取得した2つの行の縦方向の数値同士を比較する。
テーブル1103は、以前のFR−WideBandで最後に設定されてから今回のFR−WideBandまでの位置として、以前のFR−WideBandで最後にFHSに設定されてからFHSに設定されていない数を記憶する。例えば、図11に示すテーブル1103は、以前のFR−WideBandで最後にFHSに設定されてからFHSに設定されていない数について、ディスク203#0、#1が0、ディスク203#2、#3が1、ディスク203#4、#5が2であることを示す。そして、分散レイアウト管理部505は、ステップS907の処理の第3の条件として、テーブル1103を参照して、FHS候補ディスクと比較対象との数を比較する。
また、テーブル1101〜1103の更新タイミングとして、分散レイアウト管理部505は、テーブル1101、1102を、ステップS910の処理で更新する。また、分散レイアウト管理部505は、テーブル1103を、ステップS911の処理:Yesとなった後に更新する。具体的には、分散レイアウト管理部505は、テーブル1103について、FHSに選択されたディスク203の数を0クリアし、FHSに選択されなかったディスク203の数を1インクリメントする。
図12は、ディスクプール処理における分散レイアウトテーブル512と分散管理テーブル514との更新例を示す説明図(その1)である。また、図13は、ディスクプール処理における分散レイアウトテーブル512と分散管理テーブル514との更新例を示す説明図(その2)である。
図12と図13とでは、ディスク203の本数が6であり、冗長メンバ数が3であり、FHSの数が1であるとする。また、図12と図13とで示す記憶部510では、分散レイアウトテーブル512と、分散管理テーブル514とを示す。分散管理テーブル514は、ディスク同士の組み合わせを管理するテーブル1201と、ディスク同士の組み合わせの登場頻度を管理するテーブル1202とを有する。テーブル1201、1202の行は、基準となるディスク203を示し、列は、対象となるディスク203を示す。また、図12と図13とで、網掛けを付与した箇所は、更新を行ったことを示す。また、図12テーブル1202内の「FF」は、0xFFであり、無効値であることを示す。
また、FR−Band#0について、FR−WideBand内の先頭に位置するため、分散レイアウト管理部505は、FR−WideBand内でのディスク同士の組み合わせを考慮しない。
図12の上部で示す記憶部510は、FR−Band#1の分散レイアウト作成時における分散レイアウトテーブル512と、分散管理テーブル514との更新状況を示す。分散レイアウト管理部505は、ステップS1009の処理における分散管理テーブル514の更新として、テーブル1201を更新する。そして、具体的なテーブル1201の更新例として、分散レイアウトテーブル512の分散パターン番号#0、#1の行に着目すると、ディスク203#1には、FR−Unit#0、#4が配置される。そして、FR−Unit#0は、ディスク203#2にも配置され、また、FR−Unit#4は、ディスク203#5にも配置される。従って、分散レイアウト管理部505は、ステップS1009の処理における分散管理テーブル514の更新として、テーブル1201のディスク203#1の行について、ディスク203#2、#5を1インクリメントする。
図12の下部で示す記憶部510は、FR−Band#2の分散レイアウト作成時における分散レイアウトテーブル512と、分散管理テーブル514との更新状況を示す。テーブル1202について、分散レイアウト管理部505は、ステップS1012の処理終了時、すなわち、FR−WideBand処理終了時に、テーブル1202を更新する。そして、具体的なテーブル1202の更新方法として、分散レイアウト管理部505は、テーブル1201の各ディスク203の組み合わせで1以上インクリメントしたフィールドに対応するテーブル1202のフィールドを1インクリメントする。図12の下部で示す記憶部510では、テーブル1201のディスク#0に関係しない全てのフィールドが1以上インクリメントされているため、分散レイアウト管理部505は、テーブル1202のディスク#0に関係しない全てのフィールドを1インクリメントする。
図13の上部で示す記憶部510は、FR−Band#4の分散レイアウト作成時における分散レイアウトテーブル512と、分散管理テーブル514との更新状況を示す。具体的な分散管理テーブル514の更新方法については、図12の上部と同一であるため、説明を省略する。
図13の下部で示す記憶部510は、FR−Band#5の分散レイアウト作成時における分散レイアウトテーブル512と、分散管理テーブル514との更新状況を示す。具体的な分散管理テーブル514の更新方法については、図12の下部と同一であるため、説明を省略する。
そして、分散レイアウト管理部505は、ステップS1006の処理について、第1の条件では、テーブル1201の値が小さいディスクを優先し、第2の条件では、値が大きいディスクを優先する。
図14は、Rebuild処理手順の一例を示すフローチャート(その1)である。また、図15は、Rebuild処理手順の一例を示すフローチャート(その2)である。構成管理部502が、ディスク故障発生を検知する、または、CM201は、管理者端末204から、ディスク減設のオペレーションを受け付ける(ステップS1401)。
次に、分散レイアウト管理部505は、分散レイアウト作成に用いる作業バッファをキャッシュメモリ303上に獲得し、分散管理テーブル514を作成し初期化する(ステップS1402)。ここで、分散レイアウト管理部505は、分散管理テーブル514を3面分作成する。1つ目の分散管理テーブル514を、第1の比較用分散管理テーブル514と呼称し、2つ目の分散管理テーブル514を、第2の比較用分散管理テーブル514と呼称し、3つ目の分散管理テーブル514を、バックアップ用分散管理テーブル514と呼称する。また、Rebuild処理では、FHSの設定を行わないため、FHS選択テーブル513を作成しない。以降、Rebuild開始前まで分散レイアウト管理部505がフローの制御を行う。
そして、分散レイアウト管理部505は、ディスクプール内にFHSが複数存在するか否かを判断する(ステップS1403)。ディスクプール内にFHSが複数存在する場合(ステップS1403:Yes)、分散レイアウト管理部505は、分散レイアウト変更対象を先頭のFR−WideBandに設定する(ステップS1404)。次に、分散レイアウト管理部505は、現時点での比較用分散管理テーブル514の内容をバックアップ用分散管理テーブル514に退避し、バックアップ用分散管理テーブル514の内容を第2の比較用分散管理テーブル514へコピーする(ステップS1405)。そして、分散レイアウト管理部505は、データ移動先候補FHSを仮設定し第1の比較用分散管理テーブル514を更新する(ステップS1406)。
次に、分散レイアウト管理部505は、比較対象を次のFHSに設定し、第2の比較用分散管理テーブル514を更新する(ステップS1407)。そして、分散レイアウト管理部505は、今回のデータ復元先候補FHSより、比較対象の方がデータ復元先FHSに相応しいか否かを判断する(ステップS1408)。ここで、分散レイアウト管理部505は、データ復元先FHSに相応しいか否かを、以下の順の2つの条件の優先度で判断する。
第1の条件:分散レイアウトを通して、同一FR−WideBand内で同じFR−Unitとして他ディスクとの組み合わせ回数が少なくなる。
第2の条件:以前のFR−WideBandで最後に選択されてから今回のFR−WideBandまでの位置が遠くなる。
上述した2つの条件について、分散レイアウト管理部505は、分散管理テーブル514を用いて判断する。例えば、分散レイアウト管理部505は、ステップS1406の処理において、データ移動先候補FHSを仮設定したことにより、第1の比較用分散管理テーブル514のテーブル1201のうちで値が良くなった項目、すなわち、値が小さくなった項目の数を数える。同様に、分散レイアウト管理部505は、ステップS1406の処理において、比較対象を仮設定したことにより、第2の比較用分散管理テーブル514のテーブル1201のうちで、値が小さくなった項目の数を数える。そして、分散レイアウト管理部505は、第1の条件として、データ移動先候補FHSの数と、比較対象の数とを比較する。
比較対象の方がデータ復元先FHSに相応しい場合(ステップS1408:Yes)、分散レイアウト管理部505は、比較対象をデータ移動先FHS候補ディスクとし、第1の比較用分散管理テーブルと第2の比較用分散管理テーブルを入れ替える(ステップS1409)。ステップS1409の処理終了後、または、比較対象の方がデータ復元先FHSに相応しくない場合(ステップS1408:No)、分散レイアウト管理部505は、全てのFHSとの比較が完了したか否かを判断する(ステップS1410)。比較が完了していないFHSがある場合(ステップS1410:No)、分散レイアウト管理部505は、バックアップ用分散管理テーブルの内容を第2の比較用分散管理テーブルへコピーする(ステップS1411)。そして、分散レイアウト管理部505は、ステップS1407の処理に移行する。
一方、全てのFHSとの比較が完了した場合(ステップS1410:Yes)、分散レイアウト管理部505は、データ移動先候補FHSをデータ復元用FHSディスクに設定し、本FR−WideBandについて構成変更後の分散レイアウトテーブル512を更新する(ステップS1501)。次に、分散レイアウト管理部505は、所定のFR−WideBandとして、分散レイアウトを決定するために必要な全てのFR−WideBandについて、データ復元用FHSディスクの設定が終了したか否かを判断する(ステップS1502)。データ復元用FHSディスクの設定が終了していないFR−WideBandがある場合(ステップS1502:No)、分散レイアウト管理部505は、分散レイアウト変更対象を次のFR−WideBandに設定する(ステップS1503)。そして、分散レイアウト管理部505は、ステップS1405の処理に移行する。
また、ディスクプール内にFHSが複数存在しない場合(ステップS1403:No)、分散レイアウト管理部505は、ディスクプール内にFHSが無いか否かを判断する(ステップS1504)。ディスクプール内にFHSが無い場合(ステップS1504:Yes)、データ復元を行えないため、分散レイアウト管理部505は、Rebuild処理を終了する。
一方、ディスクプール内にFHSがある場合(ステップS1504:No)、分散レイアウト管理部505は、全FR−WideBandについて構成変更後の分散レイアウトテーブル512を更新する(ステップS1505)。
ステップS1505の処理終了後、または、データ復元用FHSディスクの設定が終了した場合(ステップS1502:Yes)、分散レイアウト管理部505は、作業バッファを解放する(ステップS1506)。そして、RAID Recovery制御部506は、構成変更前後の分散レイアウトテーブル512に従いRebuild処理を実行する(ステップS1507)。ステップS1507の処理終了後、CM201は、Rebuild処理を終了する。
図16は、ディスク増設時処理手順の一例を示すフローチャートである。CM201は、管理者端末204から、ディスク増設のオペレーションを受け付ける(ステップS1601)。このとき、管理者端末204は、管理GUIによる入力項目を、管理者端末204のディスプレイに表示する。入力項目は、増設するディスク本数と、スペア領域として使用する容量分のディスク本数とを入力する項目である。また、管理者端末204は、全ての入力項目を管理者Adが入力するようにしてもよいし、入力項目に規定値を予め設定しておいてもよい。
次に、分散レイアウト管理部505は、分散レイアウト作成に必要な作業バッファをキャッシュメモリ303上に獲得し、FHS選択テーブル513および分散管理テーブル514を作成し初期化する(ステップS1602)。ここで、分散レイアウト管理部505は、FHS選択テーブル513を2面分、分散管理テーブル514を3面分作成する。1つ目のFHS選択テーブル513を第1の比較用FHS選択テーブル513と呼称し、2つ目のFHS選択テーブル513を第2の比較用FHS選択テーブル513と呼称する。また、1つ目の分散管理テーブル514を第1の比較用分散管理テーブル514と呼称し、2つ目の分散管理テーブル514を第2の比較用分散管理テーブル514と呼称し、3つ目の分散管理テーブル514をバックアップ用分散管理テーブル514と呼称する。以降、処理完了まで分散レイアウト管理部505がフローの制御を行う。
そして、分散レイアウト管理部505は、レイアウト作成対象を先頭のFR−Bandに設定する(ステップS1603)。次に、分散レイアウト管理部505は、今回のFR−BandがFR−WideBandの先頭Bandか否かを判断する(ステップS1604)。今回のFR−BandがFR−WideBandの先頭Bandである場合(ステップS1604:Yes)、分散レイアウト管理部505は、FR−WideBand内FHS設定処理を実行する(ステップS1605)。FHS設定処理は、図17で説明する。
ステップS1605の処理終了後、または、今回のFR−BandがFR−WideBandの先頭Bandでない場合(ステップS1604:No)、分散レイアウト管理部505は、今回のディスク増設で、FR−Unit数の追加があるか否かを判断する(ステップS1606)。ここで、FR−Unit数の追加がある場合とは、ステップS1601の処理で得られた、増設するディスク本数から、スペア領域として使用する容量分のディスク本数を減じた値が1以上となる場合である。
FR−Unit数の追加がある場合(ステップS1606:Yes)、分散レイアウト管理部505は、FR−Band内FR−Unit設定処理を実行する(ステップS1607)。FR−Band内FR−Unit設定処理については、図18で説明する。
ステップS1607の処理終了後、または、FR−Unit数の追加がない場合(ステップS1606:No)、分散レイアウト管理部505は、今回のFR−Bandについて、構成変更後の分散レイアウトテーブル512を更新する(ステップS1608)。次に、分散レイアウト管理部505は、所定のFR−Band数分として、分散レイアウトを決定するために必要な全てのFR−Bandについて設定が完了したか否かを判断する(ステップS1609)。分散レイアウトを決定するために必要な全てのFR−Bandについて設定が完了していない場合(ステップS1609:No)、分散レイアウト管理部505は、レイアウト作成対象を次のFR−Bandに設定する(ステップS1610)。そして、分散レイアウト管理部505は、ステップS1604の処理に移行する。
一方、分散レイアウトを決定するために必要な全てのFR−Bandについて設定が完了した場合(ステップS1609:Yes)、分散レイアウト管理部505は、作業バッファを解放する(ステップS1611)。次に、RAID Recovery制御部506は、構成変更前後の分散レイアウトテーブルに従い、Rebalance処理を実行する(ステップS1612)。ステップS1612の処理終了後、CM201は、ディスク増設時処理を終了する。
図17は、FR−WideBand内FHS設定処理手順の一例を示すフローチャートである。分散レイアウト管理部505は、追加されたディスクによってFHS数の増加がある場合は増設ディスクのうち所定数を追加FHSに仮設定し、第1の比較用FHS選択テーブル513を更新する候補ディスクをFR−WideBand内先頭のFHSに設定する(ステップS1701)。次に、分散レイアウト管理部505は、現時点での第1の比較用FHS選択テーブル513の内容を第2の比較用FHS選択テーブル513へコピーする(ステップS1702)。複数本数追加されるFHSを全て仮設定した後に個々のFHSの評価を行うことになるため、分散レイアウト管理部505は、第1の比較用FHS選択テーブル513の更新後に第2の比較用FHS選択テーブル513へのコピーを行う。コピーを行った時点で第2の比較用FHS選択テーブル513は、これまでのFR−WideBandで決定したFHS配置状況に加え、今回のFR−WideBandのFHSの仮設定状況が反映された状態となる。
そして、分散レイアウト管理部505は、今回のFR−WideBandのうち、既にあるFHSのうちの先頭FHSを候補に設定し、比較対象を同一FR−WideBand内のFHSではない先頭のディスクに設定する(ステップS1703)。ここで、FHSではないディスクとは、データがあるディスクである。
次に、分散レイアウト管理部505は、比較対象ディスクをFHSとした場合のディスクプール構成で第2の比較用FHS選択テーブル513を更新する(ステップS1704)。ここで更新の際には、分散レイアウト管理部505は、比較対象FHSの加算に加えて、候補FHSの分の減算も行う。
そして、分散レイアウト管理部505は、第1の比較用FHS選択テーブル513と第2の比較用FHS選択テーブル513とを参照して、候補ディスクよりも比較対象の方がFHSに相応しいか否かを判断する(ステップS1705)。ここで、FHSに相応しいか否かの判断方法は、ステップS907の処理で説明した方法と同一である。
比較対象の方がFHSに相応しい場合(ステップS1705:Yes)、分散レイアウト管理部505は、比較対象をFHS候補ディスクとし、第1の比較用FHS選択テーブルと第2の比較用FHS選択テーブルを入れ替える(ステップS1706)。
ステップS1706の処理終了後、または、候補ディスクの方がFHSに相応しい場合(ステップS1705:No)、分散レイアウト管理部505は、選択中のFHSに対して全ディスクの比較が完了したか否かを判断する(ステップS1707)。選択中のFHSに対して比較が完了していないディスクがある場合(ステップS1707:No)、分散レイアウト管理部505は、比較対象を同一FR−Wideband内のFHSではない次のディスクに設定する(ステップS1708)。次に、分散レイアウト管理部505は、現時点での第1の比較用FHS選択テーブル513の内容を第2の比較用FHS選択テーブル513へコピーする(ステップS1709)。そして、分散レイアウト管理部505は、ステップS1704の処理に移行する。
一方、選択中のFHSに対して全ディスクの比較が完了した場合(ステップS1707:Yes)、分散レイアウト管理部505は、全FHSの比較が完了したか否かを判断する(ステップS1710)。比較が完了していないFHSがある場合(ステップS1710:No)、分散レイアウト管理部505は、候補ディスクを構成変更前の分散レイアウトテーブルでの次のFHSに設定する(ステップS1711)。そして、分散レイアウト管理部505は、ステップS1702の処理に移行する。一方、全FHSの比較が完了した場合(ステップS1710:Yes)、分散レイアウト管理部505は、当該FR−WideBandに関して構成変更後の分散レイアウトテーブル512を更新する(ステップS1712)。ステップS1712の処理終了後、分散レイアウト管理部505は、FR−WideBand内FHS設定処理を終了する。
図18は、FR−Band内FR−Unit設定処理手順の一例を示すフローチャートである。分散レイアウト管理部505は、追加する先頭のFR−Unitの候補として未使用ディスクのうち先頭を仮設定する(ステップS1801)。ここで、未使用ディスクとは、ステップS1601の処理で追加されるディスクのことである。また、FR−Unitの候補ディスクとして設定可能なディスクは、同一FR−WideBand内で、同一ディスクが既に同一FR−UnitのDepthに使用されていないという条件を満たすディスクである。前述した条件を満たすディスクがないこともある。
次に、分散レイアウト管理部505は、仮設定が成功、すなわち、前述した条件を満たすディスクを設定できたか否かを判断する(ステップS1802)。仮設定が成功していない場合(ステップS1802:No)、分散レイアウト管理部505は、同一FR−Band内で設定済みのFR−Unitに使用するディスクのうち、設定可能なものと入れ替える(ステップS1803)。
仮設定が成功した場合(ステップS1802:Yes)、分散レイアウト管理部505は、現時点での第1の比較用分散管理テーブルの内容をバックアップ用分散管理テーブル514に退避し、バックアップ用分散管理テーブル514の内容を第2の比較用分散管理テーブル514へコピーする(ステップS1804)。また、ステップS1803の処理終了後も、分散レイアウト管理部505は、ステップS1804の処理に移行する。
ステップS1804の処理終了後、分散レイアウト管理部505は、仮設定に応じて第1の比較用分散管理テーブル514を更新する(ステップS1805)。次に、分散レイアウト管理部505は、比較対象を次の設定可能なディスクに設定し、第2の比較用分散管理テーブル514を更新する(ステップS1806)。ここで、設定可能なディスクとは、ステップS1801の処理で説明した条件と同一である。
そして、分散レイアウト管理部505は、第1の比較用分散管理テーブル514と第2の比較用分散管理テーブル514とを参照して、候補ディスクよりも比較対象の方がFR−Unitに相応しいか否かを判断する(ステップS1807)。ここで、FR−Unitに相応しいか否かの判断方法は、ステップS1006の処理で説明した方法と同一である。
候補ディスクよりも比較対象の方がFR−Unitに相応しい場合(ステップS1807:Yes)、分散レイアウト管理部505は、比較対象をデータ移動先FHS候補ディスクとし、第1の比較用分散管理テーブルと第2の比較用分散管理テーブルとを入れ替える(ステップS1808)。
ステップS1808の処理終了後、または、候補ディスクよりも比較対象の方がFR−Unitに相応しくない場合(ステップS1807:No)、分散レイアウト管理部505は、今回のFR−Unitについて、全てのディスクとの比較が完了したか否かを判断する(ステップS1809)。まだ比較が完了していないディスクがある場合(ステップS1809:No)、分散レイアウト管理部505は、バックアップ用分散管理テーブル514の内容を第2の比較用分散管理テーブル514へコピーする(ステップS1810)。そして、分散レイアウト管理部505は、ステップS1806の処理に移行する。
一方、全てのディスクとの比較が完了した場合(ステップS1809:Yes)、分散レイアウト管理部505は、今回のFR−Bandについて、所定のFR−Unit数分の処理が完了したか否かを判断する(ステップS1811)。所定のFR−Unit数分の処理が完了していない場合(ステップS1811:No)、分散レイアウト管理部505は、追加する次のFR−Unitの候補として未使用ディスクのうち先頭を仮設定する(ステップS1812)。そして、分散レイアウト管理部505は、ステップS1802の処理に移行する。
一方、所定のFR−Unit数分の処理が完了した場合(ステップS1811:Yes)、分散レイアウト管理部505は、FR−Band内FR−Unit設定処理を終了する。
図19は、冗長セットの構成要素がディスクの同一位置に配置されるディスクプール構成の一例を示す説明図である。図19では、図1で示した第1の方法として、冗長セットの構成要素が、各ディスク上の同一位置に配置される例である。例えば、塗りつぶしたデータとして、ディスク#0のrow#7のデータと、ディスク#1のrow#7のデータと、ディスク#2のrow#7のデータと、ディスク#5のrow#7のデータとが、1つの冗長セットである。
図20は、冗長セットの構成要素をディスク番号およびディスク上の位置で管理するディスクプール構成の一例を示す説明図である。図20では、図1で示した第2の方法として、冗長セットの構成要素を、ディスク番号およびディスク上の位置で管理する例である。例えば、横線の網掛けを付与したデータとして、ディスク#0のrow#6のデータと、ディスク#2のrow#2のデータと、ディスク#5のrow#5のデータと、ディスク#8のrow#1のデータとが、1つの冗長セットである。また、図20で示す各データは、図19より大きく表示しており、冗長セットのサイズが大きいことを示す。
図21は、本実施の形態における効果の一例を示す説明図である。図21で示す表2100は、レコード2101で示す図1で示した第1の方法と、レコード2102で示す図1で示した第2の方法と、レコード2103で示す本実施の形態にかかる方法との特徴をまとめた表である。
第1の方法は、分散レイアウト管理の制御テーブルのためのテーブル領域の容量が小さく、故障時のデータ復元先決定が容易であり、分散レイアウト変更も容易であるが、ディスク追加が、冗長セット構成要素単位となる。
また、第2の方法は、ディスク追加が1本から可能であるが、分散レイアウト管理の制御テーブルのためのテーブル領域の容量が大きく、故障時のデータ復元先決定が複雑であり、分散レイアウト変更も複雑である。
そして、本実施の形態にかかる方法は、ディスク追加が1本から可能であり、分散レイアウト管理の制御テーブルのためのテーブル領域の容量が小さく、故障時のデータ復元先決定が容易であり、分散レイアウト変更も容易である。このように、本実施の形態にかかる方法は、第1の方法や第2の方法よりも効果がある。
以上説明したように、CM201は、ディスクプール構成に新たなディスク203を追加する際、FR−WideBand内の分割数分の冗長セットから、それぞれ異なるrowのデータを新たなディスク203に移行する。これにより、CM201は、ディスクプール構成変更時のデータ移動を極小化できる。
また、CM201は、分割数分の冗長セットからそれぞれ異なるrowのデータを選択する際に、データが配置されたディスク203と、複数のディスク203に配置された各FR−Unitが配置されたディスク203同士の組み合わせの回数とに基づいてもよい。これにより、より均一にデータが分散されるため、CM201は、次のRebuild処理時の読み出し先がより分散されて、次のRebuild処理にかかる時間を短縮することができる。
また、CM201は、Rebuild処理を行う際に、故障したディスク203または減設対象ディスク203が記憶するデータを、該当のデータを含むFR−Unitに基づいて、FHS上であって、該当のデータと同一のrowのFR−depthに復元する。これにより、CM201は、冗長性を失わずにデータを復元することができる。
また、CM201は、FHSが2以上ある場合、以上のFHSに対応して、2以上のFHSの各FHSにデータを復元した後の状態における複数のディスク203に配置された各FR−Unitが配置されたディスク203同士の組み合わせの回数を特定してもよい。これにより、冗長性を失わずにデータを復元することができるうえ、かつ、より均一にデータが分散されるため、CM201は、次のRebuild処理時の読み出し先がより分散されて、次のRebuild処理にかかる時間を短縮することができる。
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)RAID技術によって制御される複数のストレージにアクセス可能なストレージ制御装置であって、
2以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
制御部を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
前記各データの分散レイアウトの変更を行うと判断した場合に、前記各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、当該データが配置されたストレージと、前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数とに基づいて、前記いずれかの数のデータセットの各データセットに対応して選択する、
ことを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
ことを特徴とする付記1または2に記載のストレージ制御装置。
(付記4)前記制御部は、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージの2以上のストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記2以上のストレージの各ストレージに対応して、前記2以上のストレージの各ストレージにデータを復元した後の状態における前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数を計数し、
前記2以上のストレージの各ストレージに対応して計数した組み合わせの回数に基づいて、前記2以上のストレージから復元先のストレージを決定し、
前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、決定した前記復元先のストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
ことを特徴とする付記3に記載のストレージ制御装置。
(付記5)RAID技術によって制御される複数のストレージにアクセス可能なストレージ制御装置が、
2以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
処理を実行することを特徴とするストレージ制御方法。
(付記6)前記ストレージ制御装置が、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
処理を実行することを特徴とする付記5に記載のストレージ制御方法。
(付記7)RAID技術によって制御される複数のストレージにアクセス可能なストレージ制御装置に、
2以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
処理を実行させることを特徴とするストレージ制御プログラム。
(付記8)前記ストレージ制御装置に、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象のストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
処理を実行させることを特徴とする付記7に記載のストレージ制御プログラム。
101 ストレージ制御装置
102 ストレージ
201 CM
500 制御部
501 I/O制御部
502 構成管理部
503 キャッシュ制御部
504 RAID制御部
505 分散レイアウト管理部
506 RAID Recovery制御部
507 FR−Unit設定部
508 復元先設定部
510 記憶部
512 分散レイアウトテーブル

Claims (6)

  1. RAID技術によって制御される複数のストレージにアクセス可能なストレージ制御装置であって、
    2以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
    前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
    制御部を有することを特徴とするストレージ制御装置。
  2. 前記制御部は、
    前記各データの分散レイアウトの変更を行うと判断した場合に、前記各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、当該データが配置されたストレージと、前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数とに基づいて、前記いずれかの数のデータセットの各データセットに対応して選択する、
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記制御部は、
    前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
    前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
    ことを特徴とする請求項1または2に記載のストレージ制御装置。
  4. 前記制御部は、
    前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージの2以上のストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
    前記故障したストレージを検出した、または前記指示を受け付けた場合、前記2以上のストレージの各ストレージに対応して、前記2以上のストレージの各ストレージにデータを復元した後の状態における前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数を計数し、
    前記2以上のストレージの各ストレージに対応して計数した組み合わせの回数に基づいて、前記2以上のストレージから復元先のストレージを決定し、
    前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、決定した前記復元先のストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
    ことを特徴とする請求項3に記載のストレージ制御装置。
  5. RAID技術によって制御される複数のストレージにアクセス可能なストレージ制御装置が、
    2以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
    前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
    処理を実行することを特徴とするストレージ制御方法。
  6. RAID技術によって制御される複数のストレージにアクセス可能なストレージ制御装置に、
    2以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
    前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2017088709A 2017-04-27 2017-04-27 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Pending JP2018185757A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017088709A JP2018185757A (ja) 2017-04-27 2017-04-27 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US15/944,922 US20180314609A1 (en) 2017-04-27 2018-04-04 Apparatus and method to suppress data accesses caused by change in distributed data layout of storages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017088709A JP2018185757A (ja) 2017-04-27 2017-04-27 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Publications (1)

Publication Number Publication Date
JP2018185757A true JP2018185757A (ja) 2018-11-22

Family

ID=63917291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017088709A Pending JP2018185757A (ja) 2017-04-27 2017-04-27 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US20180314609A1 (ja)
JP (1) JP2018185757A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149267A (ja) * 2019-03-13 2020-09-17 Necプラットフォームズ株式会社 制御装置、ディスクアレイ装置、制御方法、及びプログラム
JP2022135629A (ja) * 2021-03-05 2022-09-15 株式会社日立製作所 ストレージシステム及びストレージ管理方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318169B2 (en) * 2017-10-27 2019-06-11 EMC IP Holding Company LLC Load balancing of I/O by moving logical unit (LUN) slices between non-volatile storage represented by different rotation groups of RAID (Redundant Array of Independent Disks) extent entries in a RAID extent table of a mapped RAID data storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005099998A (ja) * 2003-09-24 2005-04-14 Nec Corp ディスクアレイ装置および記憶容量拡張方法ならびにプログラム
JP2006506741A (ja) * 2002-11-14 2006-02-23 アイシロン・システムズ・インコーポレーテッド 分散ファイルシステムにおけるファイルの再ストライピングのためのシステム及び方法
JP2011034546A (ja) * 2009-07-30 2011-02-17 Lsi Corp Erasureコード化されたデータストレージ容量及びパワーマネージメント方法及びシステム
JP2015191594A (ja) * 2014-03-28 2015-11-02 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006506741A (ja) * 2002-11-14 2006-02-23 アイシロン・システムズ・インコーポレーテッド 分散ファイルシステムにおけるファイルの再ストライピングのためのシステム及び方法
JP2005099998A (ja) * 2003-09-24 2005-04-14 Nec Corp ディスクアレイ装置および記憶容量拡張方法ならびにプログラム
JP2011034546A (ja) * 2009-07-30 2011-02-17 Lsi Corp Erasureコード化されたデータストレージ容量及びパワーマネージメント方法及びシステム
JP2015191594A (ja) * 2014-03-28 2015-11-02 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149267A (ja) * 2019-03-13 2020-09-17 Necプラットフォームズ株式会社 制御装置、ディスクアレイ装置、制御方法、及びプログラム
JP7056874B2 (ja) 2019-03-13 2022-04-19 Necプラットフォームズ株式会社 制御装置、ディスクアレイ装置、制御方法、及びプログラム
JP2022135629A (ja) * 2021-03-05 2022-09-15 株式会社日立製作所 ストレージシステム及びストレージ管理方法
JP7374944B2 (ja) 2021-03-05 2023-11-07 株式会社日立製作所 ストレージシステム及びストレージ管理方法

Also Published As

Publication number Publication date
US20180314609A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
JP4146380B2 (ja) ストレージシステム、ブロック再配置制御方法及びプログラム
US9317436B2 (en) Cache node processing
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
US5301297A (en) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
JP5971354B2 (ja) ストレージシステム
CN106687911B (zh) 不损害数据完整性的在线数据移动
JP5199465B2 (ja) Raidグループを備えたストレージシステム
US8032784B2 (en) Duplication combination management program, duplication combination management apparatus, and duplication combination management method
US20140304469A1 (en) Data storage
JP2014507691A (ja) 情報記憶システム及びストレージシステム管理方法
JP2013506886A (ja) ストレージシステム
JP4261532B2 (ja) 論理ディスク管理方法及び仮想化装置
US11128535B2 (en) Computer system and data management method
JP2018185757A (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
JP7145902B2 (ja) ストレージシステム及びその制御方法
US20100281213A1 (en) Changing the redundancy protection for data associated with a file
CN110297601A (zh) 固态硬盘阵列构建方法、电子设备及存储介质
JP2020144459A (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム
JPH0863298A (ja) ディスクアレイ装置
CN102164165A (zh) 一种网络存储系统的管理方法及装置
CN112379825B (zh) 基于数据特征分池的分布式数据存储方法及装置
WO2016139787A1 (ja) ストレージシステム及びデータ書込み制御方法
JP6772202B2 (ja) ストレージシステム及び記憶制御方法
CN101997919B (zh) 一种存储资源的管理方法及管理装置
CN109189326A (zh) 分布式集群的管理方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210629