JP2016149048A - ストレージ制御装置、ストレージシステム、および制御プログラム - Google Patents

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

Info

Publication number
JP2016149048A
JP2016149048A JP2015026185A JP2015026185A JP2016149048A JP 2016149048 A JP2016149048 A JP 2016149048A JP 2015026185 A JP2015026185 A JP 2015026185A JP 2015026185 A JP2015026185 A JP 2015026185A JP 2016149048 A JP2016149048 A JP 2016149048A
Authority
JP
Japan
Prior art keywords
storage
data
storage area
ssd
data amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015026185A
Other languages
English (en)
Other versions
JP6476959B2 (ja
Inventor
和晋 須永
Kazukuni Sunaga
和晋 須永
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 JP2015026185A priority Critical patent/JP6476959B2/ja
Priority to US15/041,812 priority patent/US9851907B2/en
Publication of JP2016149048A publication Critical patent/JP2016149048A/ja
Application granted granted Critical
Publication of JP6476959B2 publication Critical patent/JP6476959B2/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • 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
    • 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/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】RAIDグループに属するフラッシュメモリを記憶媒体とする複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達することを抑制すること。
【解決手段】図1の(a)において、ストレージ制御装置101は、書き込みデータ量が閾値Aを超えた複数のストレージ装置としてストレージ装置102#2、3を特定する。そして、ストレージ制御装置101は、特定したストレージ装置102#2、3の間で記憶容量が異なる各々のストレージ装置の一部の記憶領域103#2_1、3_1のデータを、RAIDグループに属さないストレージ装置102#4の記憶領域に移行する。そして、ストレージ制御装置101は、記憶領域103#2_1、3_1に対するアクセスのアクセス先を、一部の記憶領域のデータを移行した移行先の記憶領域に設定する。
【選択図】図1

Description

本発明は、ストレージ制御装置、ストレージシステム、および制御プログラムに関する。
従来、複数のストレージ装置を組み合わせて仮想的なディスクとして運用するRAID(Redundant Arrays of Inexpensive Disks)技術がある。また、RAID技術に適用可能なストレージ装置の一つとして、フラッシュメモリを記憶媒体とするストレージ装置がある。フラッシュメモリは、書き込みを行う度に絶縁体となる酸化膜が貫通する電子によって劣化するため、書き込み可能な上限の回数となる書き込み可能回数が存在する。そこで、フラッシュメモリを記憶媒体とするストレージ装置は、書き込み可能回数に基づいた書き込み可能なデータ量を示すTBW(Total Bytes Written)の情報を有する。
関連する先行技術として、例えば、RAID構成へデータを書き込む際、RAID構成内の書き込み回数が閾値を超えた複数のSSD(Solid State Drive)から1つ選択したSSDのデータをスペアディスクに書き込み、スペアディスクを用いてRAID構成を再形成するものがある。また、第1記憶媒体と第2記憶媒体との書き込み回数の差より、第1記憶媒体と第2記憶媒体内のデータの第3記憶媒体へのコピー後の第3記憶媒体との書き込み回数との差が大きくなるような第2記憶媒体が記憶するデータを第3記憶媒体にコピーする技術がある。
特開2013−206151号公報 特開2013−041394号公報
しかしながら、従来技術によれば、フラッシュメモリを記憶媒体とするストレージ装置により形成されたRAIDグループに属する複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する恐れがある。例えば、RAIDグループが3つのストレージ装置を含む場合、あるストレージ装置のデータをRAIDグループに属さない他のストレージ装置に移行しても、残余の2つのストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する場合がある。
1つの側面では、本発明は、RAIDグループに属するフラッシュメモリを記憶媒体とする複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達することを抑制することができるストレージ制御装置、ストレージシステム、および制御プログラムを提供することを目的とする。
本発明の一側面によれば、フラッシュメモリを記憶媒体とするストレージ装置により形成されたRAIDグループから、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、特定した複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる各々のストレージ装置の一部の記憶領域のデータを、RAIDグループに属さない他のストレージ装置の記憶領域に移行し、一部の記憶領域に対するアクセスのアクセス先を、一部の記憶領域のデータを移行した移行先の記憶領域に設定するストレージ制御装置、ストレージシステム、および制御プログラムが提案される。
本発明の一態様によれば、RAIDグループに属するフラッシュメモリを記憶媒体とする複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達することを抑制することができるという効果を奏する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。 図2は、ストレージシステム200の構成例を示す説明図である。 図3は、CM201aのハードウェア構成例を示すブロック図である。 図4は、CM201aの機能構成例を示すブロック図である。 図5は、各SSDの書き込みデータ量を不均等化する例を示す説明図である。 図6は、仮想ホットスペアを解放する例を示す説明図である。 図7は、移行するデータの一例を示す説明図である。 図8は、SSD書き込みデータ量閾値設定処理手順の一例を示すフローチャートである。 図9は、SSD書き込みデータ量閾値超え判定処理手順の一例を示すフローチャートである。 図10は、SSD書き込みデータ量不均等化処理手順の一例を示すフローチャートである。 図11は、仮想ホットスペア解放処理手順の一例を示すフローチャートである。
以下に図面を参照して、開示のストレージ制御装置、ストレージシステム、および制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。ストレージ制御装置101は、フラッシュメモリを記憶媒体とする複数のストレージ装置102#1〜3と、ストレージ装置102#4とを制御するコンピュータである。具体的には、例えば、ストレージ制御装置101は、ストレージ装置102#1〜3によりRAID技術によるRAIDグループを形成するとともに、ストレージ装置102#4を予備の記憶装置とするホットスペアとする。
RAID技術は、複数のストレージ装置を組み合わせて仮想的なディスクとして運用する技術である。ストレージ制御装置101は、RAID技術を用いて、RAIDグループに属するストレージ装置により、1つの仮想的なディスクを形成する。ここで、RAIDには、仮想的なディスクの形成の仕方を表すRAIDレベルが存在する。RAIDレベルは、RAID0〜RAID6までのRAIDレベルが存在する。また、RAIDには、RAID0+1というように、複数のRAIDレベルを組み合わせたレベルも存在する。ここで、特に、RAIDレベル5、6は、RAIDグループに属するストレージ装置の間の書き込みデータ量が均等になるように設計されている。
ストレージ装置102#1〜3は、フラッシュメモリを記憶媒体とするストレージ装置である。フラッシュメモリには、具体的には、例えば、NOR型のフラッシュメモリとNAND型のフラッシュメモリとがある。フラッシュメモリは、書き込みを行う度に絶縁体となる酸化膜が貫通する電子によって劣化するため、書き込み可能回数が存在する。ここで、書き込み可能回数は、書き込み可能な上限となる回数である。そこで、フラッシュメモリは、保証期間内で、書き込み可能回数に基づいた書き込み可能なデータ量を示すTBWや、1日に自容量の何倍の書き込みが可能かを示すDWPD(Drive Write Per Day)といった指標を有する。また、ストレージ装置102#4は、フラッシュメモリを記憶媒体とするストレージ装置であってもよいし、他のストレージ装置として、HDD(Hard Disk Drive)等でもよい。
ここで、フラッシュメモリを記憶媒体とするストレージ装置によりRAIDグループを形成すると、複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する恐れがある。ここで、書き込み可能なデータ量より小さい上限値を超えた複数のストレージ装置のうちの1つのデータを、他のストレージ装置に移行することが考えられる。しかしながら、この場合、書き込み可能なデータ量より小さい上限値を超えた複数のストレージ装置が3つ以上である場合、データを移行しなかった残りストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する場合がある。
そして、複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達すると、複数のストレージ装置分のホットスペアがなければ、運用を続行することができなくなる。また、RAID5のRAIDグループのうちの1つのストレージ装置が書き込み可能なデータ量に到達した場合、冗長性がない状態で書き込むことが可能であるが、2つ以上のストレージ装置が書き込み可能なデータ量に到達した場合、書き込みができなくなる。
そこで、ストレージ制御装置101は、RAIDグループ内の書き込みデータ量が書込可能なデータ量に近い上限値を超えた複数のストレージ装置の間で記憶容量が異なる一部の記憶領域のデータをストレージ装置102#4に移行し、移行先をアクセス先とする。これにより、ストレージ制御装置101は、ストレージ装置102#1〜3の間で書き込みデータ量に差がつき、ストレージ装置102#1〜3のうちの2つ以上のストレージ装置の書き込みデータ量が同時に書き込み可能なデータ量に到達することを抑制できる。
図1の(a)、(b)を用いてストレージ制御装置101の動作を説明する。図1の(a)において、ストレージ制御装置101は、ストレージ装置102#1〜3によりRAIDグループを形成する。説明の簡略化のため、ストレージ装置102#1〜4の記憶容量は、全て同一であるとする。そして、図1の(a)の状態において、ストレージ装置102#1〜3のそれぞれの書き込みデータ量が、2[PB:PetaByte]であるとする。また、ホットスペアであるストレージ装置102#4の書き込みデータ量は、0[PB]であるとする。
この状態で、ストレージ制御装置101は、RAIDグループから、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定する。ストレージ制御装置101は、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を、例えば、TBWに基づいて設定しておく。以下、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を、「閾値A」と呼称する。
図1の(a)の例では、書き込みデータ量が閾値Aを超えた複数のストレージ装置が、ストレージ装置102#1〜3であるとする。この場合、ストレージ制御装置101は、複数のストレージ装置として、ストレージ装置102#1〜3を特定してもよいし、ストレージ装置102#1〜3のうちの書き込みデータ量が閾値Aを超えたストレージの数未満となる2つを特定してもよい。図1の(a)の例では、ストレージ制御装置101は、ストレージ装置102#2、3を特定する。
次に、ストレージ制御装置101は、特定した複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる各々のストレージ装置の一部の記憶領域のデータを、RAIDグループに属さないストレージ装置102#4の記憶領域に移行する。図1の(a)の例では、ストレージ制御装置101は、一部の記憶領域として、ストレージ装置102#2の一部の記憶領域103#2_1と、ストレージ装置102#3の一部の記憶領域103#3_1とを移行元の記憶領域とする。
ここで、記憶領域103#2_1と、記憶領域103#3_1とは、異なる記憶容量となる。そして、記憶領域103#2_1と記憶領域103#3_1との合計の記憶容量が、ストレージ装置102#4の記憶容量以下となるようにする。例えば、記憶領域103#2_1の記憶容量は、ストレージ装置102#2の1/3であり、記憶領域103#3_1の記憶容量は、ストレージ装置102#3の2/3であるとする。
図1の(a)の例では、ストレージ制御装置101は、記憶領域103#2_1と記憶領域103#3_1とのデータを、それぞれ、ストレージ装置102#4の記憶領域103#4_1、記憶領域103#4_2に移行する。ここで、具体的な移行の方法として、ストレージ制御装置101は、記憶領域103#2_1と記憶領域103#3_1とのデータを、記憶領域103#4_1、記憶領域103#4_2にコピーする。そして、ストレージ制御装置101は、移行元となる記憶領域103#2_1と記憶領域103#3_1とのデータを、物理的に削除してもよいし、参照されることはないので残したままでもよい。
そして、ストレージ制御装置101は、一部の記憶領域に対するアクセスのアクセス先を、一部の記憶領域のデータを移行した移行先の記憶領域に設定する。図1の(a)の例では、ストレージ制御装置101は、記憶領域103#2_1に対するアクセスのアクセス先を、記憶領域103#4_1に設定するとともに、記憶領域103#3_1に対するアクセスのアクセス先を、記憶領域103#4_2に設定する。
より具体的なアクセス先の設定方法として、例えば、ストレージ制御装置101は、ストレージ装置102#2の記憶領域103#2_1以外の記憶領域と、記憶領域103#4_1とを、1つの仮想的なストレージ装置に設定する。仮想的なストレージ装置を設定することにより、ストレージ制御装置101は、記憶領域103#2_1へのアクセスのアクセス先を、記憶領域103#4_1に設定したことになる。同様に、ストレージ制御装置101は、ストレージ装置102#3の記憶領域103#3_1以外の記憶領域と、記憶領域103#4_2とを、1つの仮想的なストレージ装置に設定する。そして、ストレージ制御装置101は、ストレージ装置102#1と、2つの仮想的なストレージ装置とによりRAIDグループを再形成する。
または、仮想的なストレージ装置を設定しない例として、ストレージ制御装置101は、移行元の記憶領域へのアクセスが発生する度に、移行先の記憶領域へのアクセスとなるように設定してもよい。例えば、記憶領域103#2_1に対するアクセスが発生したとする。この場合、ストレージ制御装置101は、アクセス先のストレージ装置をストレージ装置102#4に設定するとともに、アクセス先のアドレスを、ストレージ装置102#2の記憶領域103#2_1以外の記憶領域の記憶容量分減じた値に設定する。
図1の(b)は、アクセス先の設定終了後、ストレージ制御装置101が、RAIDグループによる仮想的なボリュームに対して、0.06*3[PB]の書き込みを受け付けた後の状態である。ここで、0.06*3[PB]の書き込み先は、移行前のストレージ装置102#1〜3に0.06[PB]ずつあるものとする。
図1の(b)において、ストレージ装置102#1は、一部の記憶領域の移行を行っていないため、0.06[PB]新たに書き込まれる。従って、ストレージ装置102#1の書き込みデータ量は、2.06[PB]となる。また、ストレージ装置102#2は、全データの1/3をストレージ装置102#4に移行したため、0.06*(1−1/3)=0.04[PB]新たに書き込まれる。従って、ストレージ装置102#2の書き込みデータ量は、2.04[PB]となる。また、ストレージ装置102#3は、全データの2/3をストレージ装置102#4に移行したため、0.06*(1−2/3)=0.02[PB]新たに書き込まれる。従って、ストレージ装置102#3の書き込みデータ量は、2.02[PB]となる。
また、ストレージ装置102#4の書き込みデータ量は、ストレージ装置102#2、3に本来書き込まれるはずであった0.02[PB]、0.04[PB]の書き込みデータ量の合計0.06[PB]となる。このように、ストレージ装置102#1〜3の書き込みデータは、0.02[PB]ずつの書き込みデータ量の差が生じることになる。従って、ストレージ制御装置101は、ストレージ装置102#1〜3が書き込み可能なデータ量に同時に到達することを抑制することができる。次に、ストレージ制御装置101を、ストレージシステムの制御装置に適用した例を、図2を用いて説明する。
図2は、ストレージシステム200の構成例を示す説明図である。ストレージシステム200は、CM(Controller Module)201a、201bと、CM201a、201bとホストコンピュータ211との接続制御を行うチャネルアダプタ203a〜203dと、デバイスエンクロージャ202とを有する。図2に示すCM201aと、201bとが、図1に示したストレージ制御装置101に相当する。
ストレージシステム200は、内蔵する複数の記憶デバイスに対するデータの入出力を行う。ストレージシステム200は、RAID1〜6等のRAID機能を有し、複数の記憶デバイスをまとめてRAIDを形成することにより、各RAIDをそれぞれ1台の記憶デバイスとして管理する。
CM201a、201bは、ストレージシステム200全体の制御を行う。また、CM201aおよびCM201bは、バス204によって接続される。このバス204を介して、CM201aおよびCM201bの間で、制御情報やデータが通信される。
ホストコンピュータ211は、業務処理を実行するコンピュータであり、ファイバチャネル(Fibre Channel)で形成されたSAN(Storage Area Network)を介してストレージシステム200とデータ通信可能に接続される。ホストコンピュータ211は、業務処理に使用するデータについて、ストレージシステム200への保存およびストレージシステム200からの読み出しを行う。
デバイスエンクロージャ202は、ストレージ装置としてSSD#1〜4および図示しない他の複数の記憶デバイスを含む。デバイスエンクロージャ202内の複数の記憶デバイスにより、RAIDグループが生成される。RAIDグループは、RAIDの技術を用いた論理記憶領域である。以下の説明では、説明の簡略化のため、SSD#1〜3によりRAID5のRAIDグループを形成しており、SSD#4は、SSD#1〜3のホットスペアであるとする。従って、SSD#1〜3が、図1に示したストレージ装置102#1〜3に相当する。そして、SSD#4が、図1に示したストレージ装置102#4に相当する。
SSD#1〜4は、RAIDを構成可能なSSDである。また、SSD#4およびデバイスエンクロージャ202が有する他のストレージ装置は、SSD以外のフラッシュメモリを用いた記憶媒体を用いてもよい。例えば、デバイスエンクロージャ202が有する他のストレージ装置は、EEPROM(Electrically Erasable Programmable Read−Only Memory)等のフラッシュメモリ以外の不揮発性半導体メモリを用いた記憶媒体を用いてもよい。SSD#4およびデバイスエンクロージャ202が有する他のストレージ装置は、磁気記憶媒体にデータを記録するHDDであってもよい。
チャネルアダプタ203a〜203dは、ホストコンピュータ211とCM201a、201bとの接続制御を行う。例えば、チャネルアダプタ203aは、ホストコンピュータ211からの要求を受け付けて、CM201aとの接続制御を行う。CM201a、201bは、それぞれ複数個(図2ではそれぞれ2個)のチャネルアダプタ203a〜203dに接続可能になっている。すなわち、例えばCM201aは、冗長構成が実現されるように、2つの異なるチャネルアダプタ203a、203bにそれぞれ接続される。
なお、チャネルアダプタ203a〜203dとホストコンピュータ211との間の通信は、ファイバチャネルで形成されたSANによって接続されるが、ファイバチャネル以外の接続方式によって接続されてもよい。また、チャネルアダプタ203a〜203dとホストコンピュータ211との間の通信は、専用線やVPN(Virtual Private Network)を用いて、ストレージシステム200をホストコンピュータ211から遠隔地に設置するように構成してもよい。
なお、図2において、CM201a、201bは2個図示しており、およびチャネルアダプタ203a〜203dは、CM201a、201bそれぞれに対してそれぞれ2個ずつ図示したが、これらの数はそれぞれ任意である。また、デバイスエンクロージャ202は、1個図示したが、デバイスエンクロージャの数は任意である。
図3は、CM201aのハードウェア構成例を示すブロック図である。CM201aは、CPU(Central Processing Unit)301a、メモリ302a、およびデバイスインタフェース(Device Interface)303a_a、303a_bを有する。CPU301a〜デバイスインタフェース303a_bは、それぞれ、バス304aにより接続される。
CPU301aは、OS(Operating System)などに従って処理を実行し、各種制御を行う。また、CM201aは、メモリ302a、デバイスエンクロージャ202が有するSSD#1〜4および他のストレージ装置、チャネルアダプタ203a〜203dなどの資源管理を行う。
メモリ302aは、CPU301aがストレージシステム200を制御する際に用いる制御データを記憶する。また、メモリ302aは、デバイスエンクロージャ202が有する各ストレージ装置に読み書きされる入出力データを一時的に記憶する。
デバイスインタフェース303a_a、303a_bは、デバイスエンクロージャ202が有する各ストレージ装置との接続制御を行う。また、CM201a、201bは、制御装置として機能し、ストレージシステム200に対して着脱可能である。ここで、CM201bは、CM201aと同一の構成であるため、説明を省略する。
図4は、CM201aの機能構成例を示すブロック図である。CM201aは、制御部400を含む。そして、制御部400は、特定部401と、移行部402と、設定部403とを含む。制御部400は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したメモリ302などである。また、各部の処理結果は、メモリ302、CPU301のレジスタ、CPU301のキャッシュメモリ等に格納される。また、図4では、制御部400は、CM201aが有する機能であるが、CM201bのCPUが実行することにより、CM201bが有する機能でもよい。
また、図4には図示していないが、CM201aは、管理テーブルにアクセスすることが可能である。管理テーブルは、各SSDのTBWを記憶する。また、管理テーブルは、各SSDが、書き込みデータ量の不均等化を行っている間か否かを示す識別情報を記憶する。
特定部401は、RAIDグループから、閾値Aを超えた書き込みデータ量となった複数のSSDを特定する。また、特定部401は、閾値Aを超えた書き込みデータ量となったSSDのうち、閾値Aを超えた書き込みデータ量となったSSDの数未満となる複数のSSDを特定してもよい。例えば、閾値Aを超えた書き込みデータ量となったSSDの個数がnであれば、特定部401は、閾値Aを超えた書き込みデータ量となったSSDのうち、2以上n−1個のSSDを、複数のSSDとして特定する。
移行部402は、特定部401が特定した複数のSSDの各々のSSDの間で記憶容量が異なる各々のSSDの一部の記憶領域のデータを、RAIDグループに属さないホットスペアの記憶領域に移行する。一部の記憶領域の記憶容量は、各々のSSDの間で可能な限り離れていた方が好ましい。
例えば、特定部401が、複数のSSDとして2つのSSDを特定したとする。そして、移行できる最大の記憶容量が、ホットスペアの記憶容量であるとする。この場合、移行部402は、1つ目のSSDの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量/3とし、2つ目のSSDの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量*2/3とする。この場合、1つ目のSSDと2つ目のSSDとの書き込みデータに、本来の書き込みデータ量×ホットスペアの記憶容量/3分の差を生じさせることができる。
また、特定部401が、複数のSSDとして3つのSSDを特定したとする。そして、移行できる最大の記憶容量が、ホットスペアの記憶容量であるとする。この場合、移行部402は、1つ目のSSDの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量/6とし、2つ目のSSDの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量*2/6とする。さらに、移行部402は、3つ目のSSDの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量*3/6とする。この場合、1つ目のSSDと2つ目のSSDとの書き込みデータと、1つ目のSSDと2つ目のSSDとの書き込みデータに、本来の書き込みデータ量×ホットスペアの記憶容量/6分の差を生じさせることができる。
以上を踏まえて、特定部401が複数のSSDとしてk個のSSDを特定したとする。そして、移行できる最大の記憶容量が、ホットスペアの記憶容量であるとする。この場合、移行部402は、1からkまでのi番目のSSDの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量*i/(1+…+k)とする。以下の記載では、i番目のSSDの移行元となる記憶領域の記憶容量を、規定値tdiと記載する。
また、移行部402は、特定部401が特定した複数のSSDの各々のSSDの一部の記憶領域の記憶容量が異なるものであって、かつ、次に示す2つの条件をともに満たすデータを、ホットスペアの記憶領域に移行してもよい。1つ目の条件は、複数のSSDの各々のSSDの一部の記憶領域のデータが、各々のSSDの間でデータと当該データのパリティの関係でないことである。そして、2つ目の条件は、複数のSSDの各々のSSDの一部の記憶領域のデータが、各々のSSDの間で同一のパリティを形成するデータでないことである。
ここで、移行部402の説明のために、RAIDにおける以下の単語を説明する。RAIDグループを形成するSSDに配置されたデータを横つながりに組み合わせた1つのデータセットを、「ストライプ(stripe)」と呼称する。1ストライプには、データと、データのパリティとが含まれる。例えば、3つのSSDで形成されるRAID5の1ストライプは、2つのデータと、2つのデータのXORとなるパリティとを有する。
そして、移行部402は、規定値td1分のデータであって、各ストライプから1番目のSSDが記憶するデータまたはパリティを、1番目のSSDの移行元の記憶領域のデータとする。そして、移行部402は、規定値td2分のデータであって、1番目のSSDの移行元の記憶領域のデータに含まれるストライプとは別のストライプから2番目のSSDが記憶するデータまたはパリティを、2番目のSSDの移行元の記憶領域のデータとする。このように、移行する一部の記憶領域を既に決定したSSDの一部の記憶領域のデータが含まれるストライプとは別のストライプから、これからSSDの一部の記憶領域のデータを決定することにより、上述の2つの条件を満たすことができる。
また、移行部402は、一部の記憶領域のデータを移行した後、複数のSSDのうちのいずれか2つのSSDの書き込みデータ量の差分が閾値Bを超えた場合、移行先の記憶領域のデータを、一部の記憶領域に移行してもよい。閾値Bは、フラッシュメモリの書き込み可能回数から特定される閾値である。
設定部403は、一部の記憶領域に対するアクセスのアクセス先を、一部の記憶領域のデータを移行した移行先の記憶領域に設定する。設定方法としては、例えば、図1で記載したように、仮想的なストレージ装置に設定する方法や、移行元の記憶領域へのアクセスが発生する度に、移行先の記憶領域へのアクセスとなるように設定する方法がある。
また、設定部403は、移行先の記憶領域のデータを、一部の記憶領域に移行した後、一部の記憶領域に対するアクセスのアクセス先を移行先の記憶領域に設定することを停止してもよい。具体的には、仮想的なストレージ装置に設定する方法を実施していた場合、設定部403は、仮想的なストレージ装置を解放して、元のストレージ装置でRAIDグループを再形成する。また、移行元の記憶領域へのアクセスが発生する度に、移行先の記憶領域へのアクセスとなるように設定する方法を実施していた場合、設定部403は、移行先の記憶領域へのアクセスとなるように設定することを止める。
次に、図5、図6について、RAIDグループに属する各SSDの書き込みデータ量を、仮想ホットスペアを作成して不均等化する例と、十分に書き込みデータ量を不均等化できたため、作成した仮想ホットスペアを解放する例とについて説明する。図5、6で説明するSSD#1〜4は、説明の簡略化のため、同一容量の400[GB]であり、同一モデルであって、書き込み性能が同一であるとする。また、説明の簡略化のため、ホストコンピュータ211によりRAID#1〜3への書き込みデータ量は、SSD#1〜3で同一量であるとする。
また、各SSDの書き込みデータ量を不均等化する処理と、仮想ホットスペアを解放する処理とは、CM201a、201bのいずれが行ってもよい。本実施の形態では、CM201aが実行する例を用いて説明する。また、図5、図6において、黒く塗りつぶした領域は、RAIDとして用いられる記憶領域であることを示し、白塗りの領域は、未使用の領域であることを示す。
図5は、各SSDの書き込みデータ量を不均等化する例を示す説明図である。まず、図5の(a)で示すように、CM201aは、SSD#1〜3によりRAIDレベルがRAID5となるRAIDグループを形成するとともに、SSD#4をホットスペアに設定する。この際に、CM201aは、InquiryコマンドをSSD#1〜4に送信して、SSD#1〜4のTBWを取得して、管理テーブルに記憶する。
そして、CM201aは、SSD#1〜4のTBWに基づいて、閾値Aを決定する。例えば、ストレージシステム200の管理者が、TBWの2/3の値を、閾値Aとするように決定しておく。そして、図5の例において、SSD#1〜4のTBWが全て3[PB]であれば、CM201は、閾値Aを、3*2/3=2[PB]とする。
また、CM201aは、SSD#1〜4の記憶容量に基づいて、閾値Bを決定する。例えば、ストレージシステム200の管理者が、RAIDグループを形成する各ストレージ装置の記憶容量と、ホットスペアの記憶容量との平均値を50倍した値を、閾値Bとするように決定しておく。そして、図5の例において、CM201aは、閾値Bを、SSD#1〜4の記憶容量の平均値400*50=20000[GB]=20[TB]とする。
次に、CM201aは、SSD#1〜4に、1日1回log senseコマンドを発行し、得られたSSD#1〜4の書き込みデータ量と、閾値Aとなる2[PB]とを比較する。図5の例では、SSD#1〜3の書き込みデータ量が、閾値Aを超えたとする。
そして、CM201aは、書き込みデータ量が閾値Aを超えた複数のSSDを特定する。このとき、特定するSSDの個数は、RAIDグループに属する全てのSSDの書き込みデータ量が閾値Aを超えたとしても、RAIDグループに属する全てのSSDの個数−1で十分である。図5の(b)の例では、CM201aは、SSD#2、3を特定する。
次に、CM201aは、特定したSSD#2、3について、SSD#2の規定値td1の記憶容量を有する記憶領域のデータと、SSD#3の規定値td2の記憶容量を有する記憶領域のデータとを、ホットスペアとなるSSD#4に移行する。図5の(b)の例では、CM201aは、規定値td1=400*1/3=133.3[GB]のデータをSSD#4の先頭の記憶領域に移行する。そして、CM201aは、規定値td2=400*2/3=266.7[GB]のデータを、SSD#4の先頭の記憶領域から規定値td1の次の記憶領域に移行する。図5の(b)で、ハッチを付与した領域が、移行元の記憶領域を示す。
ここで、移行する際、SSD#2の移行元の記憶領域は、SSD#2のどの記憶領域でもよく、同様にSSD#3の移行元の記憶領域は、SSD#3のどの記憶領域でもよい。ただし、各SSDの書き込みデータ量の不均等化中の冗長度を低下させないために、SSD#2、3のそれぞれの移行元の記憶領域のデータが、いずれか一方のデータが他方のデータのパリティでなく、かつ、同一のパリティを形成するデータでないことが好ましい。具体的な各SSDの移行元の記憶領域の例を、図7を用いて説明する。
そして、CM201aは、SSD#2の移行元の記憶領域と、SSD#3の移行元の記憶領域へのアクセスのアクセス先を、SSD#4内の移行先の記憶領域に設定する。これにより、ストレージシステム200は、移行後に発生したSSD#2への書き込みのうちの1/3をSSD#4に書き込むようになり、SSD#2への書き込みデータ量は、アクセス先を移行先の記憶領域に設定する前に比べて、2/3に減少する。同様に、ストレージシステム200は、移行後に発生したSSD#3への書き込みのうちの2/3をSSD#4に書き込むようになり、SSD#3への書き込みデータ量は、アクセス先を移行先の記憶領域に設定する前に比べて、1/3に減少する。
次に、CM201aは、SSD#2の移行元の記憶領域と、SSD#3の移行元の記憶領域とを仮想ホットスペアとして割り当てる。図5の(c)の例では、CM201aは、点線501で示した記憶領域を、仮想ホットスペアとして割り当てる。これにより、ストレージシステム200は、SSD#1〜4のいずれかが故障しても、仮想ホットスペアにデータを復元することができる。
例えば、SSD#1が故障した場合、CM201aは、SSD#2〜4のデータを用いて、仮想ホットスペアの記憶領域に、SSD#1のデータを復元することができる。また、SSD#2が故障した場合、CM201aは、SSD#1、3、4のデータを用いて、仮想ホットスペアの記憶領域のうちのSSD#3の記憶領域に、SSD#2のデータを復元することができる。また、SSD#3が故障した場合、CM201aは、SSD#1、2、4のデータを用いて、仮想ホットスペアの記憶領域のうちのSSD#2の記憶領域に、SSD#3のデータを復元することができる。また、SSD#4が故障した場合、移行元の記憶領域のデータが図7で示す条件を満たせば、CM201aは、SSD#1〜3のデータを用いて、仮想ホットスペアの記憶領域に、SSD#4のデータを復元することができる。
図6は、仮想ホットスペアを解放する例を示す説明図である。図6に示す状態は、図5の(c)の後、ストレージシステム200の運用を続けた状態である。CM201aは、定期的に、SSD#1〜3にlog senseコマンドを発行して、SSD#1〜3の書き込みデータ量を取得する。そして、SSD#1がTBWの3[PB]を超えずに、SSD#2、3の書き込みデータ量の差分が閾値Bの20[TB:TeraByte]を超えたとき、CM201aは、移行したデータを移行元の記憶領域に戻す。
図6の(a)で示す例では、CM201aは、SSD#4の先頭から規定値td1までの記憶領域のデータを、SSD#2の仮想ホットスペアとして割り当てた記憶領域に書き込む。次に、CM201aは、SSD#4の規定値td1から規定値td2までの記憶領域のデータを、SSD#3の仮想ホットスペアとして割り当てた記憶領域に書き込む。そして、CM201aは、仮想ホットスペアを解放して、SSD#4をホットスペアに設定する。
図6の(b)では、仮想ホットスペアを解放した後の例を示す。仮想ホットスペアを解放した後の書き込みデータ量は、SSD#1〜4のそれぞれが、2.06[PB]、2.04[PB]、2.02[PB]、0.06[PB]となり、書き込みデータ量の不均等化が行えている。
図7は、移行するデータの一例を示す説明図である。図7では、RAID#1〜3でRAID5のRAIDグループを形成しており、SSD#1は、データdA、dC、パリティpEFを記憶する。また、SSD#2は、データdB、パリティpCD、データdEを記憶する。また、SSD#3は、パリティpAB、データdD、dFを記憶する。ここで、パリティpXYは、データXとデータYとのパリティである。そして、データdA〜dFと、パリティpAB、pCD、pEFとは、全て、SSDの全記憶容量の1/3のデータであるとする。
ここで、図4で説明したストライプを用いて説明すると、データdA、dB、パリティpABが同一ストライプであり、ストライプ1とする。また、データdC、dD、パリティpCDが同一ストライプであり、ストライプ2とする。また、データdE、dF、パリティpEFが同一ストライプであり、ストライプ3とする。
この状態で、CM201aは、冗長度が低下しない条件として、SSD#2、3のそれぞれの移行元の記憶領域のデータが、いずれか一方のデータが他方のデータのパリティでなく、かつ、同一のパリティを形成するデータでないように設定する。例えば、図7の(a)で示すように、CM201aは、SSD#2の規定値td1の記憶容量を有する記憶領域のデータであり、ストライプ1に属するデータdBをSSD#4に移行する。さらに、CM201aは、SSD#3の規定値td2の記憶容量を有する記憶領域のデータであり、ストライプ2に属するデータdDと、ストライプ3に属するデータdFとをSSD#4に移行する。
移行した結果を図7の(b)で示す。これにより、SSD#4が故障しても、SSD#4には、同一のストライプに属するデータまたはパリティが複数存在することがないため、仮想ホットスペアにSSD#4のデータを復元することができる。具体的には、CM201aは、SSD#4が記憶するデータdB、dD、dFを、SSD#1〜3が記憶するデータdA、dC、dEと、パリティpAB、pCD、pEFとを用いて復元する。例えば、CM201aは、データdAとパリティpABのXORにより、データdBを復元する。また、CM201aは、データdCとパリティpCDのXORにより、データdDを復元する。また、CM201aは、データdEとパリティpEFのXORにより、データdFを復元する。
次に、CM201aが実行するフローチャートを、図8〜図11を用いて説明する。
図8は、SSD書き込みデータ量閾値設定処理手順の一例を示すフローチャートである。SSD書き込みデータ量閾値設定処理は、閾値A、Bを設定する処理である。SSD書き込みデータ量閾値設定処理は、複数のSSDによりRAIDグループを形成した際に実行する処理である。
CM201aは、RAIDグループ内の各SSDのTBWの値を、管理テーブルに記憶する(ステップS801)。次に、CM201aは、TBWに基づいて、閾値A、閾値Bを決定する(ステップS802)。ステップS802の処理終了後、CM201aは、SSD書き込みデータ量閾値設定処理を終了する。SSD書き込みデータ量閾値設定処理を実行することにより、CM201aは、閾値A、Bを設定することができる。
図9は、SSD書き込みデータ量閾値超え判定処理手順の一例を示すフローチャートである。SSD書き込みデータ量閾値超え判定処理は、閾値Aを超えたか否かを判定する処理である。
CM201aは、RAIDグループ内の各SSDに、log senseコマンドを発行して、書き込みデータ量を取得する(ステップS901)。次に、CM201aは、書き込みデータ量が閾値Aを超えたか否かを判断する(ステップS902)。書き込みデータ量が閾値Aを超えた場合(ステップS902:Yes)、CM201aは、書き込みデータ量が閾値Aを超えたSSDが2つ以上か否かを判断する(ステップS903)。書き込みデータ量が閾値Aを超えたSSDが2つ以上である場合(ステップS903:Yes)、CM201aは、書き込みデータ量不均等化が未適用か否かを判断する(ステップS904)。書き込みデータ量不均等化が未適用である場合(ステップS904:Yes)、CM201aは、SSD書き込みデータ量不均等化処理を実行する(ステップS905)。ステップS905の処理終了後、CM201aは、SSD書き込みデータ量閾値超え判定処理を終了する。
一方、書き込みデータ量が閾値Aを超えない場合、書き込みデータ量が閾値Aを超えたSSDが2つ未満である場合、書き込みデータ量不均等化が適用済である場合(ステップS902〜S904:No)、CM201aは、ステップS901の処理に移行する。SSD書き込みデータ量閾値超え判定処理を実行することにより、CM201aは、閾値Aを超えた際に、SSD書き込みデータ量不均等化処理を実行することができる。
図10は、SSD書き込みデータ量不均等化処理手順の一例を示すフローチャートである。SSD書き込みデータ量不均等化処理は、各SSDの書き込みデータ量を不均等に設定する処理である。
CM201aは、書き込みデータ量が閾値Aを超えたSSDのうち、最大n−1個のSSDを特定する(ステップS1001)。ここで、特定したSSDに対して、書き込みデータ量不均等化を行うため、CM201aは、管理テーブルの特定したSSDに対して、書き込みデータ量不均等化を適用したことを記録する。
次に、CM201aは、特定したn−1個のSSD(SSD1、…、SSD(nー1))のうち、SSD1の規定値td1の記憶容量を有する記憶領域のデータと、…、SSD(n−1)の規定値tdn-1の記憶容量を有する記憶領域のデータとをホットスペアに移行する(ステップS1002)。そして、CM201aは、SSD1の移行元の記憶領域と、…、SSD(n−1)の移行元の記憶領域と、に対するRAIDグループによるアクセスのアクセス先を、移行先の記憶領域に設定する(ステップS1003)。次に、CM201aは、SSD1の移行元の記憶領域と、…、SSD(n−1)の移行元の記憶領域とを、仮想ホットスペアとして割り当てる(ステップS1004)。
ステップS1004の処理終了後、CM201aは、SSD書き込みデータ量不均等化処理を終了する。SSD書き込みデータ量不均等化処理を実行することにより、このままストレージシステム200を運用し続けることにより、CM201aは、各SSDの書き込みデータ量を不均等化することができる。
図11は、仮想ホットスペア解放処理手順の一例を示すフローチャートである。仮想ホットスペア解放処理は、仮想ホットスペアを解放する処理である。まず、CM201aは、SSD1とSSD2とにlog senseコマンドを発行して、書き込みデータ量を取得する(ステップS1101)。ここで、CM201aは、データを移行した全てのSSDに対して、log senseコマンドを発行しなくてよく、RAIDグループに属するストレージ装置のいずれか2つに対して発行すれば十分である。データを移行したSSDのうちのいずれか2つのSSDの書き込みデータ量が閾値Bを超えている場合、データを移行したSSDのうちの他の2つのSSDの書き込みデータ量も閾値Bを超えている可能性が高いためである。
次に、CM201aは、SSD1とSSD2との書き込みデータ量の差分が閾値Bを超えたか否かを判断する(ステップS1102)。SSD1とSSD2との書き込みデータ量の差分が閾値Bを超えない場合(ステップS1102:No)、CM201aは、一定時間後、ステップS1101の処理に移行する。
一方、SSD1とSSD2との書き込みデータ量の差分が閾値Bを超えた場合(ステップS1102:Yes)、CM201aは、ホットスペア上の規定値td1+…+規定値tdn-1分のデータを、それぞれ、SSD1、…、SSD(n−1)に移行する(ステップS1103)。そして、CM201aは、アクセス先を移行先の記憶領域に設定することを停止する(ステップS1104)。次に、CM201aは、ホットスペアを、仮想ホットスペアから、1つのSSDとなるように設定する(ステップS1105)。ステップS1105の処理終了後、CM201aは、仮想ホットスペア解放処理を終了する。仮想ホットスペア解放処理を実行することにより、CM201aは、各SSDの書き込みデータ量が不均等化した際に、仮想ホットスペアを解放することができる。
以上説明したように、CM201aによれば、SSD#1〜3により形成されたRAIDグループ内における書き込みデータ量が閾値Aを超えた複数のSSDの間で記憶容量が異なる一部の記憶領域のデータをSSD#4に移行し、移行先をアクセス先に設定する。これにより、CM201aは、SSD#1〜3の間で書き込みデータ量に差がつき、SSD#1〜3のうちの2つ以上のSSDの書き込みデータ量が同時に書き込み可能なデータ量に到達することを抑制することができる。また、本実施の形態におけるRAIDグループのRAIDレベルは、RAID0〜RAID6のいずれのレベルであってもよいし、複数のRAIDレベルを組み合わせたレベルであってもよい。
また、CM201aによれば、閾値Aを超えた書き込みデータ量となったSSDのうち、閾値Aを超えた書き込みデータ量となったSSDの数未満となる複数のSSDを特定してもよい。これにより、CM201aは、閾値Aを超えた書き込みデータ量となったSSDの全てを複数のSSDとして特定するよりも、各SSDの書き込みデータ量の差を大きくすることができる。
例えば、閾値Aを超えた書き込みデータ量となったSSDが3つであるとする。このとき、3つのうちの2つを複数のSSDとして特定した場合、CM201は、1つ目のSSDの1/3の記憶領域を移行し、2つ目のSSDの2/3の記憶領域を移行する。これにより、記憶領域を移行しなかったSSDと、記憶領域を1/3分移行したSSDと、記憶領域を2/3分移行したSSDとの間で、それぞれ、移行後の書き込みデータ量の1/3ずつの差ができることになる。
一方、3つ全てを複数のSSDとして特定した場合、CM201は、1つ目のSSDの1/6の記憶領域を移行し、2つ目のSSDの2/6の記憶領域を移行し、3つ目のSSDの3/6の記憶領域を移行する。これにより、記憶領域を1/6分移行したSSDと、記憶領域を2/6分移行したSSDと、記憶領域を3/6分移行したSSDとの間で、それぞれ、移行後の書き込みデータ量の1/6ずつの差ができることになる。このように、特定したSSDの個数が小さいほど、移行後の書き込みデータ量の差を大きくすることができる。
また、CM201aによれば、一部の記憶領域のデータを移行した後、複数のSSDのうちのいずれか2つのSSDの書き込みデータ量の差分が閾値Bを超えた場合、移行先の記憶領域のデータを一部の記憶領域に移行し、アクセス先を変える設定を停止してもよい。これにより、各SSDの書き込みデータ量の差が十分についた状態となったので、CM201aは、アクセス先を変える設定をしなくてよくなり、CM201aにかかる負荷を軽減することができる。
また、CM201aによれば、複数のSSDの各々のSSDの一部の記憶領域のデータが、各々のSSDの間でデータとパリティの関係でなく、かつ、各々のSSDの間で同一のパリティを形成するデータでないようにしてもよい。これにより、移行先には、同一のストライプに属するデータまたはパリティが複数存在することがないため、CM201aは、RAIDグループが有する冗長性を維持することができる。
なお、本実施の形態における制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)フラッシュメモリを記憶媒体とするストレージ装置により形成されたRAIDグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記RAIDグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
制御部を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
前記データ量の上限値を超えた書き込みデータ量となったストレージ装置のうち、前記データ量の上限値を超えた書き込みデータ量となったストレージ装置の数未満となる複数のストレージ装置を特定することを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
前記一部の記憶領域のデータを移行した後、前記複数のストレージ装置のうちのいずれか2つのストレージ装置の書き込みデータ量の差分が前記フラッシュメモリの書き込み可能回数から特定される閾値を超えた場合、前記移行先の記憶領域のデータを、前記一部の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を前記移行先の記憶領域に設定することを停止する、
ことを特徴とする付記1または2に記載のストレージ制御装置。
(付記4)前記制御部は、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なり、かつ、前記各々のストレージ装置の間でデータと当該データのパリティの関係でなく、かつ、前記各々のストレージ装置の間で同一のパリティを形成するデータでない前記各々のストレージ装置の一部の記憶領域のデータを、前記他のストレージ装置の記憶領域に移行することを特徴とする付記1〜3のいずれか一つに記載のストレージ制御装置。
(付記5)フラッシュメモリを記憶媒体とするストレージ装置とストレージ制御装置とを有するストレージシステムであって、
前記ストレージ制御装置は、
前記ストレージ装置により形成されたRAIDグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記RAIDグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
ことを特徴とするストレージシステム。
(付記6)コンピュータに、
フラッシュメモリを記憶媒体とするストレージ装置により形成されたRAIDグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記RAIDグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
処理を実行させることを特徴とする制御プログラム。
(付記7)コンピュータが、
フラッシュメモリを記憶媒体とするストレージ装置により形成されたRAIDグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記RAIDグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
処理を実行することを特徴とする制御方法。
101 ストレージ制御装置
102 ストレージ装置
201 CM
400 制御部
401 特定部
402 移行部
403 設定部

Claims (6)

  1. フラッシュメモリを記憶媒体とするストレージ装置により形成されたRAIDグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
    特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記RAIDグループに属さない他のストレージ装置の記憶領域に移行し、
    前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
    制御部を有することを特徴とするストレージ制御装置。
  2. 前記制御部は、
    前記データ量の上限値を超えた書き込みデータ量となったストレージ装置のうち、前記データ量の上限値を超えた書き込みデータ量となったストレージ装置の数未満となる複数のストレージ装置を特定することを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記制御部は、
    前記一部の記憶領域のデータを移行した後、前記複数のストレージ装置のうちのいずれか2つのストレージ装置の書き込みデータ量の差分が前記フラッシュメモリの書き込み可能回数から特定される閾値を超えた場合、前記移行先の記憶領域のデータを、前記一部の記憶領域に移行し、
    前記一部の記憶領域に対するアクセスのアクセス先を前記移行先の記憶領域に設定することを停止する、
    ことを特徴とする請求項1または2に記載のストレージ制御装置。
  4. 前記制御部は、
    特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なり、かつ、前記各々のストレージ装置の間でデータと当該データのパリティの関係でなく、かつ、前記各々のストレージ装置の間で同一のパリティを形成するデータでない前記各々のストレージ装置の一部の記憶領域のデータを、前記他のストレージ装置の記憶領域に移行することを特徴とする請求項1〜3のいずれか一つに記載のストレージ制御装置。
  5. フラッシュメモリを記憶媒体とするストレージ装置とストレージ制御装置とを有するストレージシステムであって、
    前記ストレージ制御装置は、
    前記ストレージ装置により形成されたRAIDグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
    特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記RAIDグループに属さない他のストレージ装置の記憶領域に移行し、
    前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
    ことを特徴とするストレージシステム。
  6. コンピュータに、
    フラッシュメモリを記憶媒体とするストレージ装置により形成されたRAIDグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
    特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記RAIDグループに属さない他のストレージ装置の記憶領域に移行し、
    前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
    処理を実行させることを特徴とする制御プログラム。
JP2015026185A 2015-02-13 2015-02-13 ストレージ制御装置、ストレージシステム、および制御プログラム Active JP6476959B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015026185A JP6476959B2 (ja) 2015-02-13 2015-02-13 ストレージ制御装置、ストレージシステム、および制御プログラム
US15/041,812 US9851907B2 (en) 2015-02-13 2016-02-11 Control device, storage system, and method of controlling a plurality of storage devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015026185A JP6476959B2 (ja) 2015-02-13 2015-02-13 ストレージ制御装置、ストレージシステム、および制御プログラム

Publications (2)

Publication Number Publication Date
JP2016149048A true JP2016149048A (ja) 2016-08-18
JP6476959B2 JP6476959B2 (ja) 2019-03-06

Family

ID=56621087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015026185A Active JP6476959B2 (ja) 2015-02-13 2015-02-13 ストレージ制御装置、ストレージシステム、および制御プログラム

Country Status (2)

Country Link
US (1) US9851907B2 (ja)
JP (1) JP6476959B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228092A (zh) * 2016-12-21 2018-06-29 东芝存储器株式会社 存储系统和非易失性存储器的控制方法
WO2019016911A1 (ja) * 2017-07-20 2019-01-24 株式会社日立製作所 分散ストレージシステム及び分散ストレージ制御方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018116575A (ja) * 2017-01-19 2018-07-26 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
CN110515549B (zh) * 2019-08-16 2022-03-22 浪潮电子信息产业股份有限公司 一种数据迁移方法及装置
US20230305756A1 (en) * 2022-03-22 2023-09-28 Western Digital Technologies, Inc. Virtual Block Pools For Protecting Device Health

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040713A (ja) * 2006-08-04 2008-02-21 Hitachi Ltd 記憶媒体グループの故障を抑えるストレージシステム
JP2008102819A (ja) * 2006-10-20 2008-05-01 Hitachi Ltd 記憶装置及び記憶方法
JP2010015516A (ja) * 2008-07-07 2010-01-21 Toshiba Corp データ制御装置、ストレージシステムおよびプログラム
JP2013206151A (ja) * 2012-03-28 2013-10-07 Nec Corp ストレージ装置及びストレージ装置のデータ保存装置交換方法
US20150006816A1 (en) * 2013-06-29 2015-01-01 Huawei Technologies Co., Ltd. Method, Apparatus, and Controller for Managing Storage Array

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356660B1 (en) * 1997-10-15 2002-03-12 Hewlett-Packard Co. Method for compressing raster data
US7627687B2 (en) * 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for managing data flow in a continuous data replication system having journaling
JP5754292B2 (ja) 2011-08-15 2015-07-29 富士通株式会社 ストレージ装置、およびストレージ装置制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040713A (ja) * 2006-08-04 2008-02-21 Hitachi Ltd 記憶媒体グループの故障を抑えるストレージシステム
JP2008102819A (ja) * 2006-10-20 2008-05-01 Hitachi Ltd 記憶装置及び記憶方法
JP2010015516A (ja) * 2008-07-07 2010-01-21 Toshiba Corp データ制御装置、ストレージシステムおよびプログラム
JP2013206151A (ja) * 2012-03-28 2013-10-07 Nec Corp ストレージ装置及びストレージ装置のデータ保存装置交換方法
US20150006816A1 (en) * 2013-06-29 2015-01-01 Huawei Technologies Co., Ltd. Method, Apparatus, and Controller for Managing Storage Array

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228092A (zh) * 2016-12-21 2018-06-29 东芝存储器株式会社 存储系统和非易失性存储器的控制方法
US10983701B2 (en) 2016-12-21 2021-04-20 Toshiba Memory Corporation Memory system that constructs virtual storage regions for virtual machines
CN108228092B (zh) * 2016-12-21 2021-07-23 东芝存储器株式会社 存储系统和非易失性存储器的控制方法
US11747984B2 (en) 2016-12-21 2023-09-05 Kioxia Corporation Memory system that constructs virtual storage regions for virtual machines
WO2019016911A1 (ja) * 2017-07-20 2019-01-24 株式会社日立製作所 分散ストレージシステム及び分散ストレージ制御方法

Also Published As

Publication number Publication date
US20160239226A1 (en) 2016-08-18
US9851907B2 (en) 2017-12-26
JP6476959B2 (ja) 2019-03-06

Similar Documents

Publication Publication Date Title
JP6569477B2 (ja) ストレージ制御装置、および制御プログラム
JP6476959B2 (ja) ストレージ制御装置、ストレージシステム、および制御プログラム
US10572175B2 (en) Method and apparatus of shared storage between multiple cloud environments
US20170177224A1 (en) Dynamic storage transitions employing tiered range volumes
EP3859507A1 (en) Method for processing stripe in storage device and storage device
US20160342476A1 (en) Solid state drive operations
JP2020533694A (ja) クラウド・ベースのランクを使用するデータの動的再配置
US11320988B2 (en) Method, apparatus and computer program product for managing disk array
US9569135B2 (en) Virtual accounting container for supporting small volumes of data
CN109725823B (zh) 用于管理混合存储盘阵列的方法和设备
JP6515752B2 (ja) ストレージ制御装置、制御方法、および制御プログラム
CN109725838B (zh) 用于管理多个盘的方法、装置以及计算机可读介质
US11899533B2 (en) Stripe reassembling method in storage system and stripe server
US20170220481A1 (en) Raid Data Migration Through Stripe Swapping
US20170262220A1 (en) Storage control device, method of controlling data migration and non-transitory computer-readable storage medium
KR20170135594A (ko) 스토리지 시스템 및 그의 볼륨 관리 방법
CN112748848A (zh) 用于存储管理的方法、设备和计算机程序产品
JP2015052853A (ja) ストレージ制御装置、制御方法及びプログラム
US20200081800A1 (en) Management of backup volume extents via a tiered storage mechanism
US8935488B2 (en) Storage system and storage control method
CN113590378A (zh) 存储管理的方法、设备和计算机程序产品
US11544005B2 (en) Storage system and processing method
CN111124746A (zh) 管理独立盘冗余阵列的方法、设备和计算机可读介质
JP6427913B2 (ja) ストレージシステム、制御装置、ストレージ装置、入出力制御方法、及びプログラム
US11221790B2 (en) Storage system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6476959

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150