JP2015528174A - ストレージアレイを管理する方法及び装置 - Google Patents

ストレージアレイを管理する方法及び装置 Download PDF

Info

Publication number
JP2015528174A
JP2015528174A JP2015523390A JP2015523390A JP2015528174A JP 2015528174 A JP2015528174 A JP 2015528174A JP 2015523390 A JP2015523390 A JP 2015523390A JP 2015523390 A JP2015523390 A JP 2015523390A JP 2015528174 A JP2015528174 A JP 2015528174A
Authority
JP
Japan
Prior art keywords
storage device
device group
storage
subsection
wear
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
JP2015523390A
Other languages
English (en)
Other versions
JP5881900B2 (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2015528174A publication Critical patent/JP2015528174A/ja
Application granted granted Critical
Publication of JP5881900B2 publication Critical patent/JP5881900B2/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/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
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本発明の実施の形態は、ストレージアレイを管理するための方法、装置及びコントローラを提供する。ストレージアレイは、ストレージ装置の消耗度に従って第1のストレージ装置群及び第2のストレージ装置群に分割され、第1のストレージ装置群に属するストレージ装置についての最小消耗度は、第2のストレージ装置群に属するストレージ装置についての最大消耗度以上である。第2のストレージ装置群の中のデータは、第1のストレージ装置群に移動させられる、或いは書き込まれるべきデータが第1のストレージ装置群に書き込まれる。従って、第1のストレージ装置群に属するストレージ装置のサービス寿命を短縮することで、第2のストレージ装置群に属するストレージ装置のサービス寿命が相対的に延長され、これにより、第1のストレージ装置群に属するストレージ装置が不具合を起こす時点と第2のストレージ装置群に属するストレージ装置が不具合を起こす時点との間の期間を長くし、消耗度に起因して複数のストレージ装置が同時に不具合を起こすリスクを減らし、データの信頼性を向上させる。

Description

本発明の実施の形態は、ストレージの技術分野に関連し、特にストレージアレイを管理する方法、装置及びコントローラに関連する。
フラッシュメモリは、不揮発性メモリであり、電源が遮断された場合でもデータが失われないという特徴を有し、それ故に外部メモリ及び内部メモリとして広く使用されている。例えば、最近コンピュータシステムで益々使用されているソリッドステートディスク(SSD)はフラッシュメモリに基づいて実現されている。ソリッドステートディスクはソリッドステートドライブ(SSD)とも呼ばれている。フラッシュメモリは、消去回数が限られているという特徴を有する。SSDから/へのリード/ライト動作はそれぞれSSDをある程度消耗する。
大容量データストレージに対する条件を満足するため、一般に、複数のSSDでSSDストレージアレイを形成する必要がある。ウェアレベリング(Wear Leveling)は、SSDストレージアレイのために提案されている方式であり、本質的には、SSDストレージアレイに属する全てのSSDの消耗状態を同様にし、特定のSSDが過剰に頻繁に消去の対象となってしまうことを回避する。しかしながら、従来のウェアレベリングは、複数のSSDが同時に不具合を引き起こす状況を招き、データを喪失してしまうおそれがある。
実施の形態による方法は、
N個のストレージ装置により形成されたストレージアレイを管理する方法であって、
コントローラが、前記N個のストレージ装置の消耗度を求めるステップと、
前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割するステップであって、前記第1のストレージ装置群に属するストレージ装置の最小消耗度は、前記第2のストレージ装置群に属するストレージ装置の最大消耗度以上である、ステップと、
前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる、或いは書き込まれるべきデータを前記第1のストレージ装置群に書き込むステップと
を有する方法である。
本発明の実施の形態によるストレージシステムの構造を示す図。 本発明の実施の形態によるストレージリソースプール方式を説明するための図。 本発明の実施の形態によるウェアレベリングを説明するための図。 本発明の実施の形態による方法のフローチャートを示す図。 本発明の実施の形態による効果を説明するための図。 本発明の実施の形態による別の方法のフローチャートを示す図。 本発明の実施の形態による別の方法のフローチャートを示す図。 本発明の実施の形態による更に別の方法のフローチャートを示す図。 本発明の実施の形態によるアプリケーション状況を説明するための図。 本発明の実施の形態による別のアプリケーション状況を説明するための図。 ストレージアレイを管理する本発明の実施の形態による装置の概略的な構造を示す図。 本発明の実施の形態によるコントローラの概略的な構造を示す図。
<実施の形態の概要>
本発明の実施の形態は、ストレージアレイを管理する方法、装置及びコントローラを提供し、ウェアレベリングに起因して複数のストレージ装置が同時に不具合を起こす危険性を減らす。
第1の実施の形態による方法は、
N個のストレージ装置により形成されたストレージアレイを管理する方法であって、
コントローラが、前記N個のストレージ装置の消耗度を求めるステップと、
前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割するステップであって、前記第1のストレージ装置群に属するストレージ装置の最小消耗度は、前記第2のストレージ装置群に属するストレージ装置の最大消耗度以上である、ステップと、
前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる、或いは書き込まれるべきデータを前記第1のストレージ装置群に書き込むステップと
を有する方法である。
第1の実施の形態において、
前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
前記N個のストレージ装置を前記消耗度の降順に従って並べるステップであって、最大消耗度のストレージ装置の番号を1とし、最小消耗度のストレージ装置の番号をNとする、ステップと、
i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算するステップと(0<i<N)、
前記消耗度間の相違が第1の消耗閾値以下であった場合、1番目ないしi番目のストレージ装置を前記第1のストレージ装置群に設定し、(i+1)番目ないしN番目のストレージ装置を前記第2のストレージ装置群に設定するステップと、
前記消耗度間の相違が前記第1の消耗閾値より大きかった場合、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるステップと
を有してもよい。
第1の実施の形態において、
前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化するステップであって、j番目のサブセクションのストレージ装置のうちの最小の消耗度は、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上である、ステップ(0<j<S)と、
1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出するステップと(0<j<S)、
前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2以上であった場合、前記1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定する、ステップと、
前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2未満であった場合、jに1を加え、前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し続けるステップと
を有してもよい。
第1の実施の形態において、
前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化するステップであって、j番目のサブセクションのストレージ装置のうちの最小の消耗度は、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上である、ステップ(0<j<S)と、
1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定するステップであって、jはS/2以下の数のうち最大の整数(j=|_S/2_|)である、或いはjはS/2以上の数のうち最小の整数(j=|-S/2-|)である、ステップと
を有してもよい。
第1の実施の形態において、
前記N個のストレージ装置をS個のサブセクションにグループ化する前記ステップが、
前記N個のストレージ装置を前記消耗度の降順に従って並べるステップであって、最大消耗度のストレージ装置の番号を1とし、最小消耗度のストレージ装置の番号をNとする、ステップと、
i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算するステップと(0<i<N)、
前記消耗度間の相違が第2の消耗閾値以下であった場合、1番目のストレージ装置を或るサブセクションのグループに入れ、(i+1)のストレージ装置を別のサブセクションのグループに入れ、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるステップと、
前記消耗度間の相違が第2の消耗閾値より大きかった場合、(i+1)番目のストレージ装置を、i番目のストレージ装置が所属するサブセクションのグループに入れ、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるステップと
を有してもよい。
第1の実施の形態において、
前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
消耗度が第3の消耗閾値以上であるストレージ装置により前記第1のストレージ装置群を形成し、消耗度が前記第3の消耗閾値未満であるストレージ装置により前記第2のストレージ装置群を形成するステップ
を有してもよい。
第1の実施の形態において、
前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる場合において、
前記第1のストレージ装置群のフリーストレージ空間FreeSizeについての統計情報を収集し、
前記第2のストレージ装置群に属するストレージ装置各々からFreeSize/(N-X)のデータを抽出し、前記第1のストレージ装置群へデータを移動させ、
Xは前記第1のストレージ装置群に属するストレージ装置の数を示してもよい。
第1の実施の形態において、
前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる場合において、
前記第1のストレージ装置群に属するサブセクション各々に、前記第1のサブセクションから徐々に少なくなる量のデータ又は等しい量のデータを加え、及び
前記第2のストレージ装置群に属する前記S番目のサブセクションないし各サブセクションから徐々に少なくなる量のデータ又は等しい量のデータを抽出してもよい。
第1の実施の形態において、
前記第2のストレージ装置群に属する前記S番目のサブセクションないし各サブセクションから等しい量のデータを抽出する場合に、前記第2のストレージ装置群に属するストレージ装置各々から(FreeSize-FreeSizeA)/(N-X)のデータが抽出されかつ前記第1のストレージ装置群に移動させられ、FreeSizeはデータを移動させる前における前記第1のストレージ装置群のフリーストレージ空間を示し、FreeSizeAはデータを移動させた後における前記第1のストレージ装置群のフリーストレージ空間を示し、Xは前記第1のストレージ装置群に属するストレージ装置の数を示してもよい。
第1の実施の形態において、
前記データを移動させた後の前記第1のストレージ装置群に属するサブセクション各々のフリーストレージ空間が、
FreeSize/X*(u-1)
であり、1≦u≦jであり、jは前記第1のストレージ装置群をなすサブセクションの番号を示し、FreeSizeはデータを移動させる前における前記ストレージ装置群のフリーストレージ空間を示し、Xは前記第1のストレージ装置群に属するストレージ装置の数を示し、
データの移動後に、前記第1のストレージ装置群に属するサブセクション全てのフリーストレージ空間は全部でFreeSizeAであってもよい。
第1の実施の形態において、
前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる前に、当該方法は、前記第2のストレージ装置群に属するストレージ装置の消耗度を第4の消耗閾値と比較するステップを更に有し、
前記第2のストレージ装置群に属する少なくとも1つのストレージ装置の消耗度が前記第4の消耗閾値以上であった場合に、前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させてもよい。
第2の実施の形態による装置は、
N個のストレージ装置により形成されたストレージアレイを管理する装置であって、
前記N個のストレージ装置の消耗度を求めるように形成された捕捉モジュールと、
前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割するように形成された分割モジュールであって、前記第1のストレージ装置群に属するストレージ装置の最小消耗度は、前記第2のストレージ装置群に属するストレージ装置の最大消耗度以上である、分割モジュールと、
前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる、或いは書き込まれるべきデータを前記第1のストレージ装置群に書き込むように形成された処理モジュールと
を有する装置である。
第2の実施の形態において、
前記分割モジュールが、
前記N個のストレージ装置を前記消耗度の降順に従って並べ、最大消耗度のストレージ装置の番号を1とし、最小消耗度のストレージ装置の番号をNとし、
i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し(0<i<N)、
前記消耗度間の相違が第1の消耗閾値以下であった場合、1番目ないしi番目のストレージ装置を前記第1のストレージ装置群に設定し、(i+1)番目ないしN番目のストレージ装置を前記第2のストレージ装置群に設定し、
前記消耗度間の相違が前記第1の消耗閾値より大きかった場合、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるように形成されていてもよい。
第2の実施の形態において、
前記分割モジュールが、
前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化し、j番目のサブセクションのストレージ装置のうちの最小の消耗度を、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上とし、
1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し(0<j<S)、
前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2以上であった場合、前記1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定し、
前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2未満であった場合、jに1を加え、前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し続けるように形成されていてもよい。
第2の実施の形態において、
前記分割モジュールが、
前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化し、j番目のサブセクションのストレージ装置のうちの最小の消耗度を、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上とし(0<j<S)、
1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定するように形成され、
jはS/2以下の数のうち最大の整数(j=|_S/2_|)である、或いはjはS/2以上の数のうち最小の整数(j=|-S/2-|)であってもよい。
第2の実施の形態において、
前記分割モジュールが、
消耗度が第3の消耗閾値以上であるストレージ装置により前記第1のストレージ装置群を形成し、消耗度が前記第3の消耗閾値未満であるストレージ装置により前記第2のストレージ装置群を形成するように形成されていてもよい。
第2の実施の形態において、
前記処理モジュールが、
前記第1のストレージ装置群のフリーストレージ空間FreeSizeについての統計情報を収集し、
前記第2のストレージ装置群に属するストレージ装置各々からFreeSize/(N-X)のデータを抽出し、前記第1のストレージ装置群へデータを移動させるように形成され、
Xは前記第1のストレージ装置群に属するストレージ装置の数を示してもよい。
第2の実施の形態において、
前記第1のストレージ装置群に属するサブセクション各々に加えられるデータの量が、前記第1のサブセクションから徐々に少なくなる量又は等しい量であり、
前記第2のストレージ装置群に属するサブセクション各々から抽出されるデータ量が、前記S番目のサブセクションから徐々に少なくなる量又は等しい量であってもよい。
第2の実施の形態において、
前記処理モジュールが、
前記第2のストレージ装置群に属する各サブセクションから抽出されるデータの量が等しい量である場合に、前記第2のストレージ装置群に属するストレージ装置各々から(FreeSize-FreeSizeA)/(N-X)のデータが抽出されかつ前記第1のストレージ装置群に移動させられ、FreeSizeはデータを移動させる前における前記第1のストレージ装置群のフリーストレージ空間を示し、FreeSizeAはデータを移動させた後における前記第1のストレージ装置群のフリーストレージ空間を示し、Xは前記第1のストレージ装置群に属するストレージ装置の数を示してもよい。
第2の実施の形態において、
当該装置が、前記第2のストレージ装置群に属するストレージ装置の消耗度を第4の消耗閾値と比較する比較モジュールを更に有し、
前記第2のストレージ装置群に属する少なくとも1つのストレージ装置の消耗度が前記第4の消耗閾値以上であった場合に、前記処理モジュールは、前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させてもよい。
第3の実施の形態によるコントローラは、
プロセッサ、メモリ、システムバス及び通信インタフェースを有するコントローラであって、前記プロセッサ、前記メモリ及び前記通信インタフェースは前記システムバスを介して互いに通信可能に接続され、
前記通信インタフェースはストレージ装置と通信するように形成され、
前記メモリは、コンピュータにより実行可能な命令を保存するように形成され、
前記プロセッサは、前記コンピュータにより実行可能な命令を実行し、第1の実施の形態による方法を実行する、コントローラである。
第4の実施の形態によるコンピュータプログラムは、
プログラムコードを保存するコンピュータ読み取り可能な記憶媒体に保存されたコンピュータプログラムであって、前記プログラムコードで形成される命令が、第1の実施の形態による方法を実行するために使用される、コンピュータプログラムである。
本発明の実施の形態において、ストレージアレイは、ストレージ装置の消耗度に従って第1のストレージ装置群及び第2のストレージ装置群に分割され、第1のストレージ装置群に属するストレージ装置についての最小消耗度は、第2のストレージ装置群に属するストレージ装置についての最大消耗度以上であり、第2のストレージ装置群の中のデータは、第1のストレージ装置群に移動させられる、或いは書き込まれるべきデータが第1のストレージ装置群に書き込まれる。従って、第1のストレージ装置群に属するストレージ装置のサービス寿命を短縮することで、第2のストレージ装置群に属するストレージ装置のサービス寿命が相対的に延長され、これにより、第1のストレージ装置群に属するストレージ装置が不具合を起こす時点と第2のストレージ装置群に属するストレージ装置が不具合を起こす時点との間の期間を長くし、消耗度に起因して複数のストレージ装置が同時に不具合を起こすリスクを減らし、データの信頼性を向上させる。
<図面>
本発明の実施の形態による手段をより明確に示すための添付図面(実施の形態又は従来技術に関する添付図面)が「図面の簡単な説明」の欄に列挙されている。当然に以下の説明における添付図面は本発明の実施の形態のうちのいくつかを示しているに過ぎず、当業者は創作的能力を発揮することなく明細書及び添付図面に基づいて他の実施の形態を得ることが可能である。
<実施の形態の詳細な説明>
本発明の実施の形態の課題、技術的解決手段及び有利な効果を更に分かりやすくするため、以下、本発明の実施の形態に関する添付図面を参照しながら本発明の実施の形態による技術的解決手段を明確かつ十分に説明する。当然に、説明される実施の形態は、本発明による実施の形態の全てではなくその一部に過ぎない。本発明の実施の形態に基づいて当業者が創作的能力を発揮することなく把握できる他の全ての実施の形態も、本発明の保護範囲内に属する。
本発明による実施の形態はストレージアレイを管理するための方法、装置及びコントローラを提供し、ウェアレベリングに起因して複数のストレージ装置が同時に不具合を生じてしまうリスクを回避することが可能である。本発明の実施の形態において、ストレージ装置からの読み取り処理、及び/又はストレージ装置への書き込み処理は、ストレージ装置に対する寿命又は消耗(wear)に関連している。ストレージ装置の不具合(failure)はストレージ装置の消尽(wear-out)と言及され、そのストレージ装置は置換されなければならない。
<<本発明の実施の形態によるシステムアーキテクチャ>>
ストレージアレイを管理する本発明の実施の形態による方法は、ストレージシステムで実施されてもよい。図1は、ストレージアレイを管理する本発明の実施の形態による方法を使用するシステムアーキテクチャの概略図を示す。図1に示されているように、ストレージシステムはコントローラ11及びストレージ装置22を含む。本実施の形態において、説明上の一例として、ストレージ装置22はソリッドステートディスク(Solid State Device:SSD)である。ソリッドステートディスクはソリッドステートドライブ(Solid State Drive:SSD)とも呼ばれ、単に「ディスク」のように省略して言及される場合もある。
図1は、具体的なネットワーキング方式を限定するのではなく説明の便宜上の一例を示しているに過ぎず、例えば、カスケード接続されたツリーネットワーキング方式及びリングネットワーキング方式の双方が適用可能である(ただし、コントローラ11及びストレージ装置22が互いに通信できることが仮定されている)。
コントローラ11は、例えばサーバやデスクトップコンピュータ等のような当該技術分野で既知の任意のコンピュータ装置を含んでよい。オペレーティングシステム及びその他のアプリケーションはコントローラの中にインストールされている。コントローラ11は、ストレージ装置22を管理し、例えば、ストレージ装置間のデータ移動(data migration)を管理したり、ストレージ装置の消耗度(degree of wear)を取得したりする。フラッシュメモリは限られた消去回数により特徴付けられるので、ストレージ装置から/への読み取り/書き込みの処理(消去処理と言及されてもよい)は、ストレージ装置をある程度消耗させる。消耗度は、消耗の度合い(wear extent)と言及されてもよく、ストレージ装置のサービス寿命(service life)を測定するのに使用される。消耗度は割合又はパーセンテージ等により表現されてもよい。
ストレージ装置22は、例えば、SSD又はダイレクトアクセスメモリ(Direct Access Storage Device:DASD)等のような当該技術分野で知られているストレージ装置を含んでもよい。図1では、説明の便宜上の一例として、ストレージ装置22はSSDである。N個の物理SSDはストレージアレイ又はストレージの配列を形成している。ストレージアレイの基本概念は、比較的安価なディスクを複数個結合することで、高価な大容量ディスクと同程度のパフォーマンス又はより優れたパフォーマンスさえ提供できるようにすることである。ストレージアレイはN個の物理SSDを含み、それら物理SSDの各々は固有の番号を有し、例えば、図1には物理SSD#1、物理SSD#2、物理SSD#3、...及び物理SSD#Nが示されている。更に、ストレージアレイに属する物理SSDの数Nは所定の下限値(例えば、10)より小さくてはならず、及びストレージアレイに属する物理SSDの数Nは所定の上限値(例えば、30)より大きくてはならない。具体的には、ストレージアレイに属するN個の物理SSDは、モデルが異なりかつ容量も異なるSSD、モデルは異なるが容量が同じSSD、モデルは同じであるが容量が異なるSSD、或いはモデルが同じでありかつ容量も同じであるSSDであってよい。
別段の言及がない限り、本発明の実施の形態におけるSSDは全て物理SSDに関連する。
物理SSDの各々は、細かい同じサイズの(複数の)チャンク(Chunk:CK)221に分割されていてもよい。チャンクも論理SSDと言及されてよい。物理SSD各々の容量を評価する観点からは、物理SSD各々を分割することで得られる論理SSDの数は、物理SSDのウェイトと呼ばれてもよい。例えば、所定のストレージアレイに属する全ての物理SSDがそれぞれ32MBの論理SSDに分割される場合、200GBの容量を有する物理SSDのウェイトは6400であり、100GBの容量を有する物理SSDのウェイトは3200である。
更に、指定されたタイプの独立ディスクの冗長アレイ(Redundant Array of Independent Disks:RAID)に従って、複数のCKが論理空間を形成してもよく、論理空間はチャンク群又はチャンクグループである(Chunk Group:CKG)。独立ディスクの冗長アレイは、低価格ディスクの冗長アレイ(Redundant Array of Inexpensive Disks:RAID)と言及されてもよい。
RAID5が一例として使用される。RAID5方式を実現するには少なくとも3つのディスクが必要とされ、データ及び対応するパリティ情報が、RAID5を形成するディスク各々に保存され、パリティ情報及び対応するデータは異なるディスクに別々に保存される。RAID5のディスクの1つにおけるデータが破損した場合、残りのデータ及び対応するパリティデータが、破損したデータを復元するために使用される。
例えば、25個の物理SSDがストレージアレイ(ディスクグループと言及されてもよい)を形成し、物理SSD各々の容量が100GBであり、論理SSDの容量が32MBであった場合、物理SSD各々のウェイトは3200である。このストレージアレイの論理SSDがRAID5を形成すると仮定する。具体的な形成方法は以下のとおりである:
ストレージアレイに属する25個の物理SSDがrandom_select(25,9)を実行して9個の物理SSDを取得する。random_select(x,y)関数は、y≦xにおいて、y個のオブジェクトがx個のオブジェクトの中からランダムに選択されることを示す。
9個の物理SSDのうちのSSD各々はrandom_select(F,1)を実行し、ここでFはRAIDを形成するためには選択されなかった物理SSD各々の論理SSDを示し、random_select(F,1)はRAIDを形成するためには選択されなかった論理SSDの中から1つの論理SSDが選択されることを示す。9個の物理SSDから選択された9個の論理SSDは記録され、その9個の論理SSDがパリティデータと共にRAID5を形成する。一方、変数RAID_NUMの値が更新され、RAID_NUMは設定されたRAIDの数である。形成されたRAIDは、形成されたRAIDグループと言及されてもよい。
更に、ストレージアレイに属する所定の空間は、ホットバックアップ(hot backup)のために確保されている必要がある。ホットバックアップ空間又はホットバックアップスペースは、データを復元するためにストレージアレイの中で確保又は予約されているストレージ空間である。例えば、1つのディスクが不具合を起こした後にデータの再構築のために少なくともストレージ空間が確保されなければならない場合、その1つのディスクが不具合を起こした後にデータ再構築が確保されたストレージ空間で実行されるか否かをおそらくは決定する必要がある。不使用又は未使用のストレージ空間が1つのディスクの容量よりも大きかった場合、新たなRAIDグループが更に設定されてもよい。不使用のストレージ空間が1つのディスクの容量よりも小さかった場合、それは、別のRAIDグループを設定できないこと及び不使用のストレージ空間がホットバックアップスペースとして使用されなければならないことを示す。不使用ストレージ空間(すなわち、実際にサービスを担うために使用されてはいないストレージ空間)は、自由なストレージ空間又は解放されている空間等と言及されてよい。
先行するステップで設定されたRAID_NUM RAIDグループに関し、ストライプ処理が実行され、各々のストリップ(strip)又はストリップユニットは独立したストレージリソースである。各々のストリップ又はいくつかの隣接するストリップは、ストレージリソースと同じストレージリソースプールに配置される。そして、いくつかのストレージブロックがストレージリソースプールからランダムに選択され、ある論理ユニット番号(Logical Unit Number:LUN)のストレージ空間を形成し、コントローラを支援する。この点については図2に詳細に示されている。
先行する方法を利用することで設定されたストレージアレイにおいて、LUN各々についてのサービスは物理SSD各々に均等に分散され、物理SSD各々のサービス負担は、物理SSD各々のウェイト(容量)に合致するようになる。SSDの容量が異なっていた場合、大きな容量のSSDは相対的に多くのサービスを担う必要があり、小さな容量のSSDは相対的に少ないサービスを担う必要がある。サービス負担は容量に直接的に比例している。従って、全てのSSDの消耗度同士の間の相違は小さくなり、適切なウェアレベリングとなる。
図3に示されているように、同数の論理SSDがRAIDを形成しており、番号が示されていない論理SSDは、その論理SSDが使用されていないことを示す。上記の方法に従って、LUN各々のサービスはSSD各々に均等に分散される。更に、物理SSDの各々を分割することで得られる論理SSDの数が大きいほど、(レベルの)平準化の効果も良くなる。
<<ストレージアレイの管理方法>>
以下、ストレージアレイを管理する本発明の実施の形態により提供される方法を説明する。図4に示されているように、ストレージアレイを管理する本発明の実施の形態による方法のフローチャートが示されている。説明の便宜上、ストレージアレイはN個のストレージ装置により形成されているものとする。本方法は以下のステップを含む。
S102:コントローラが、N個のストレージ装置の消耗度を求める。
消耗度は消耗の度合いと呼ばれてもよく、ストレージ装置のサービス寿命又はライフタイムを評価するのに使用されてもよい。一般に消耗度はパーセンテージで表現される。本発明の実施の形態において、消耗度はTにより表現される。
コントローラは、所定の時間間隔又はタイムインターバルでリクエストコマンドを能動的に送信し、ストレージアレイに属する(1つ以上の)ストレージ装置が各自の消耗度をコントローラに教えるように要求し;例えば、コントローラは、スマートコマンド(SMARTコマンド)をストレージ装置に配信し、ストレージ装置の消耗度を要求する。ストレージ装置は、コントローラからのリクエストに基づかないで、所定の時間間隔で各自の消耗度をコントローラに能動的又は積極的に通知してもよい。N個のストレージ装置の消耗度に関する統計量は、ストレージ装置のサービス期間及び経験値に応じて収集されてもよい。ただし、このことは本発明の実施の形態を限定するものではない。
コントローラは、N個のストレージ装置の消耗度を周期的に取得し、具体的には、コントローラは1週間又は2週間等のような時間間隔でN個のストレージ装置の消耗度を捕捉する。
ストレージ装置の消耗度は、行われているサービスの実際の規模又は処理負担に応じて測定される。
一般に、ストレージアレイに属するストレージ装置の数Nは、所定の下限値(例えば、10)より小さくない方がよく、かつ所定の上限値(例えば、30)より大きくない方がよい。
S104:N個のストレージ装置の消耗度に従って、ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する。第1のストレージ装置群に属するストレージ装置の最小消耗度は、第2のストレージ装置群に属するストレージ装置の最大消耗度以上である。第1のストレージ装置群は、第1の一群のストレージ装置と言及されてもよいし、ストレージ装置の第1のサブセットと言及されてもよい。第2のストレージ装置群は、第2の一群のストレージ装置と言及されてもよいし、ストレージ装置の第2のサブセットと言及されてもよい。
例えば、M個のストレージ装置の消耗度が所定の消耗閾値に等しい又はそれより大きかった場合、N個のストレージ装置の消耗度に従ってストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する処理がイネーブルにされてもよい。ただし、1≦M≦Nである。
具体的には、Mは1に設定されもよく、その場合、所定の消耗閾値を超える消耗度を有するストレージ装置が1つでも存在する限り、ストレージアレイの分割が行われることを示す。
例えば、Mは2に設定されてもよいし或いはN未満の任意の値に設定されもよい。更に、Mは予約された外部インタフェースにより動的に調整されてもよい。例えば、Mが当初は1に設定され、これは、消耗度が所定の消耗閾値に達することが1度でも検出されると、ストレージアレイの分割の処理がイネーブルにされることを示す。その後に、Mは2に設定され、これは、2つのストレージ装置の消耗度が所定の消耗閾値に達したことが検出されると、ストレージアレイの分割の処理がイネーブルにされることを示すようにしてもよい。
具体的には、第2のストレージ装置群に属するストレージ装置の消耗度同士の間の相違とNとに応じて、Mは調整されてもよい。第2のストレージ装置群に属するストレージ装置の消耗度同士の間の相違が適切に比較的小さかった場合、Mは比較的小さな値に設定されてよい(例えば、Mは1に設定される)。この場合、ストレージアレイの分割は低頻度に実行される。第2のストレージ装置群に属するストレージ装置の消耗度同士の間の相違が比較的大きかった場合、Mは比較的大きな値に設定される(例えば、Mは5に設定される)。この場合、ストレージアレイの分割はそのような頻度の方法では実行されない。
所定の消耗閾値は経験値に従って予め設定され、その後に、備わっている外部インタフェースにより動的に調整されてもよい。所定の消耗閾値はパーセンテージで表現されてもよい。ストレージアレイに属する全てのストレージ装置の消耗度が所定の閾値より小さいという状況であった場合、全てのストレージ装置がウェイト値に従ってアレイ全体のサービス負担を適切に担う。1つのディスクにパフォーマンス障害(performance bottleneck)が存在しなかった場合、ストレージアレイの分割は実行されない。
N個のストレージ装置の消耗度に従ってストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する具体的な方法については、図6、図7及び図8に示されている。
具体的には、ストレージアレイ全体が第1のストレージ装置群及び第2のストレージ装置群を形成してもよく;ストレージアレイ全体が第1のストレージ装置群、第2のストレージ装置群及び第3のストレージ装置群を形成してもよく、第3のストレージ装置群内にデータを設定する必要がない場合、移動又はマイグレーションによるデータの出入りを含むデータ移動は実行されない。
好ましくは、本発明の実施の形態において、データマイグレーションが必要とされるストレージ装置のみにより形成されたストレージアレイは、N個のストレージ装置により形成されたストレージアレイと解釈してもよい。
S106:第2のストレージ装置群から第1のストレージ装置群へデータを移動させる;或いは書き込まれるべきデータを第1のストレージ装置群に書き込む。
データの移動を行う具体的な方法については、図6、図7及び図8に示されている。
書き込み動作の各々に関し、元々のアドレス(オリジナルアドレス)がアクセスされた場合、第2のストレージ装置群のデータが第1のストレージ装置群に移動させられ;書き込み動作の各々に関し、新たなアドレスがアクセスされた場合、第2のストレージ装置群から第1のストレージ装置群へデータを移動させるのではなく、書き込まれるべきデータは、第1のストレージ装置群の自由空間に直接的に書き込まれてよい。
従って、第1のストレージ装置群はターゲットストレージ装置群又は移動先ストレージ装置群又は第1部分(first subset)と言及され、第2のストレージ装置群はソースストレージ装置群又は移動元ストレージ装置群又は第2部分と言及されてもよい。
ある期間の後、新たに追加されたストレージ装置の消耗度が何れも所定の閾値以上ではなく、第2のストレージ装置群に属するストレージ装置の消耗度が、第1のストレージ装置群に属するストレージ装置の消耗度以下であった場合、第2のストレージ装置群におけるサービスは第2のストレージ装置群に属するストレージ装置に均等に分散され、第1のストレージ装置群におけるサービスは第1のストレージ装置群に属するストレージ装置に均等に分散され;或いはある期間の後、第2のストレージ装置群がブランクであり、全てのサービスが第1のストレージ装置群に属するストレージ装置に均等に分散される。均等な分散はウェイトに従う分散に関する。
図5は、上記の方法を用いて行われる効果を説明するための図である。当然に図5は単なる一例を示すに過ぎない。図5において暗く着色された領域は消耗度を示し、暗く着色された領域が占める率が高いほど、消耗度が高い。
本発明のこの実施の形態において、ストレージアレイは、ストレージ装置の消耗度に応じて、第1のストレージ装置群と第2のストレージ装置群とに分割され、第1のストレージ装置群に属するストレージ装置の最小の消耗度は、第2のストレージ装置群に属するストレージ装置の最大の消耗度以上であり、第2のストレージ装置群のデータが第1のストレージ装置群に移動させられる(マイグレートされる)。従って、第2のストレージ装置群に属するストレージ装置のサービス寿命は、第1のストレージ装置群に属するストレージ装置のサービス寿命を短縮することで相対的に拡張され、これにより、第1のストレージ装置群に属するストレージ装置が不具合を起こす時点と第2のストレージ装置群に属するストレージ装置が不具合を起こす時点との間の期間を拡大し、消耗度に起因して複数のストレージ装置が同時に不具合を起こすリスクを減らし、データの信頼性を向上させる。
書き込み動作の各々に関し、新たなアドレスがアクセスされた場合、第2のストレージ装置群から第1のストレージ装置群へデータを移動させるのではなく、書き込まれるべきデータは、第1のストレージ装置群の自由空間に直接的に書き込まれてよい。第2のストレージ装置群に属するストレージ装置が担うサービスは、第1のストレージ装置群に属するストレージ装置が担うサービスを増やすことで維持され、第2のストレージ装置群に属するストレージ装置のサービス寿命は、第1のストレージ装置群に属するストレージ装置のサービス寿命を短縮することで相対的に拡張され、これにより、第1のストレージ装置群に属するストレージ装置が不具合を起こす時点と第2のストレージ装置群に属するストレージ装置が不具合を起こす時点との間の期間を拡大し、消耗度に起因して複数のストレージ装置が同時に不具合を起こすリスクを減らし、データの信頼性を向上させる。
本実施の形態では、第1のストレージ装置群に属するストレージ装置が不具合を起こす時点と第2のストレージ装置群に属するストレージ装置が不具合を起こす時点との間の期間を拡大することで、消耗度に起因して複数のストレージ装置が同時に不具合を起こすリスクが減らされる。従って、本実施の形態により説明される方法は、非ウェアレベリング方法(non-wear leveling method)又は反ウェアレベリング方法(anti-wear leveling method)と呼ばれてもよい。本発明の実施の形態において、ストレージ装置の消耗度に応じてストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する処理は、反ウェアレベリングを実行可能にする処理と言及されてもよい。
具体的には、S106が実行される前に、本方法は更に以下のステップを含んでいてもよい。
S105:第2のストレージ装置群に属するストレージ装置の消耗度と第4の消耗閾値とを比較する;すなわち、第2のストレージ装置群に属する全てのストレージ装置の消耗度が、第4の消耗閾値より小さいか否かを判断する(第1ないし第3の消耗閾値については後述する)。第2のストレージ装置群に属する全てのストレージ装置の消耗度が第4の消耗閾値より小さかった場合、S106はもはや実行されない。すなわち、第2のストレージ装置群に属するストレージ装置が担うサービスは重くはなく、従って反ウェアレベリングの処理は一時的に(その時点では)必要ではなく;或いは、本発明の実施の形態で説明されている管理方法を利用することで、データが移動させられた後に、第2のストレージ装置群に属するストレージ装置が担うサービスは重くはなく、従って反ウェアレベリングの処理は一時的に(その時点では)必要ではない。
第2のストレージ装置群に属する少なくとも1つのストレージ装置が第4の消耗閾値以上であった場合に、ステップS106が実行される。
第4の消耗閾値は上記の実施の形態で説明した所定の消耗閾値と同一であってもよいし或いは相違していてもよい。
本発明のこの実施の形態において、反ウェアレベリング調整の頻度は、第2のストレージ装置群に属するストレージ装置の消耗度と第4の消耗閾値とを比較することで減らされてもよい。
N個のストレージ装置の消耗度に応じてストレージアレイを第1のストレージ装置群と第2のストレージ装置群とに分割する仕方、及び第2のストレージ装置群から第1のストレージ装置群へデータを移動させる仕方の具体例による説明は、図6、図7及び図8に示されている。明らかに、本発明は図6、図7及び図8に示す方法に限定されない。
図6に示されているように、以下のステップが含まれている:
S301:消耗度の降順にN個のストレージ装置を並べる。最大の消耗度を有するストレージ装置の番号は1であり、最小の消耗度を有するストレージ装置の番号はNである。
具体的には、並べ替えはコントローラ装置のメモリの中で実行されてもよい。
ストレージ装置群の分割を適切に遂行できる限り、並べ替えは、降順又は昇順に消耗度に従って実行されてもよい。
本発明の実施の形態において、説明の便宜上、降順で実行された並べ替えが具体例として使用されている。
302:i番目のストレージ装置と(i+1)番目のストレージ装置との間の消耗度の相違ΔTを算出する。ただし、0<i<Nである。なお、「i番目の」と「第iの」とは文脈上同義である。
先ずi番目のストレージ装置から計算を開始する(初期値i=1);
消耗度間の相違が第1の消耗閾値以下であった場合、ステップ303を実行する;及び
消耗度間の相違が第1の消耗閾値より大きかった場合、ステップ304を実行する。
具体的には、2つのストレージ装置に不具合が生じると予想される時点の間の予想間隔とストレージ装置のサービス寿命とに従って、第1の消耗閾値が決定されてもよい。第1の消耗閾値を決定する場合、複数の方法が存在する。ここで説明されている方法は単なる一例にすぎず、本発明の実施の形態はこの例に限定されない。ストレージ装置の不具合(failure)はストレージ装置の消尽(wear-out)に関連し、そのストレージ装置は置換されなければならない。2つのストレージ装置が同時には不具合を起こさないと予想され、かつ2つのストレージ装置が不具合を起こす時点の間の予想される期間が2ないし3週間(例えば、
2.6週間)であった場合、第1の消耗閾値は、0.385%*2.6≒1%である。0.385%は、ストレージ装置の1週間当たりの平均消耗度であり、実際のサービスの統計情報を収集することで発見されていると仮定している。当然に、0.385%は単なる一例にすぎず、実際の用途に応じて異なる値が使用されてもよい。2つのストレージ装置が不具合を起こす時点の間の間隔が10日間(例えば、1.5週間)であると予想される場合、第1の消耗閾値は0.385%*1.5≒0.58%である。2つのストレージ装置が不具合を起こす時点の間の具体的な予想される期間は、ストレージ装置を局所的(ローカル)に置換する期間を合理的に考察することで決定されてもよい。
以下の表1は説明の便宜上の一例を示し、N=25、M=2、所定の消耗閾値が70%及び第1の消耗閾値が1%であることが仮定されている。
コントローラは、25個のストレージ装置により形成されるストレージアレイに属する2つのストレージ装置の消耗度が70%を超えていることを検出し、消耗度間の相違の計算を、最大の消耗閾値のストレージ装置から実行し始める。Tiは並べ替えを行った後のi番目のストレージ装置の消耗度を示す。先ず、並べ替えの後、第1のストレージ装置及び第2のストレージ装置から、消耗度間の相違が計算される(ΔT1=T1-T2=80.01%-70.01%=10%)。10%は1%(第1の閾値)より大きいので、ステップ304が実行される。
表1において、第1の行にある「実際のスロット番号」はストレージアレイに属するストレージ装置の実際の物理番号であり;
第2の行の「i」は、消耗度に従って降順に並べられたストレージ装置各々の論理番号であり;かつ
第3の行の「T」はストレージ装置各々の消耗度である。
Figure 2015528174
303:1番目からi番目のストレージ装置を第1のストレージ装置群として設定し、(i+1)番目からN番目のストレージ装置を第2のストレージ装置群として設定する。
S304:iに1を加え、i番目のストレージ装置と(i+1)番目のストレージ装置との間の消耗度の相違の計算を、消耗度間の相違が第1の消耗閾値以下に小さくなるまで、或いはN個全てのストレージ装置の計算が済むまで続ける。
表1に示す例の場合、並べ替えの後に第1のストレージ装置及び第2のストレージ装置の消耗度間の相違は第1の消耗閾値より大きく、iプラス1は2であるので、第2のストレージ装置及び第3のストレージ装置の消耗度間の相違の計算が始まる。ΔT2=T2-T3=70.01%-65.20%=4.81%。4.81%は1%より大きいので、iプラス1が3になった後の計算に続く。この場合、第3のストレージ装置及び第4のストレージ装置の消耗度間の相違の計算が始まる。ΔT3=T3-T4=65.20%-65.17%=0.03%。0.03%は1%より小さいので、4願目のストレージ装置の後に続くストレージ装置の消耗度間の差分の計算は行われず、そのループの計算は終了する。
この例において、1番目からi番目のストレージ装置は第1のストレージ装置群として設定され、(i+1)番目からN番目のストレージ装置は第2のストレージ装置群として設定される。表1に示す例の場合、1番目から3番目のストレージ装置が第1のストレージ装置群1として設定され、4番目から25番目のストレージ装置が第2のストレージ装置群2として設定される。
第1のストレージ装置群及び第2のストレージ装置群は上記のステップ303又は304に関する分割により得られる。第1のストレージ装置群の特徴は:全てのストレージ装置の消耗度間の差分(隣接するストレージ装置の消耗度の相違)が第1の消耗閾値を超えていることである。第2のストレージ装置群の特徴は:第2のストレージ装置群のうち最大の消耗度を有するストレージ装置についての消耗度間の差分と、第1のストレージ装置群のうち最小の消耗度を有するストレージ装置についての消耗度間の差分とが、第1の消耗度閾値を超えないことである。
例えば、表1に示す例の場合、第1のストレージ装置群1に属する全てのストレージ装置の消耗度間の差分は1%を超えており、第2のストレージ装置群2のうち最大消耗度を有するストレージ装置(並べ替えた後の4番目のストレージ装置)についての消耗度の差分と、第1のストレージ装置群1のうちの最小の消耗度を有するストレージ装置(並べ替えた後の3番目のストレージ装置)についての消耗度の差分とが、1%を超えていない。
一般に、同じストレージアレイに属する全てのストレージ装置の消耗度は互いに近接している(同一又は類似する値である)べきである。例えば、同じ時点における消耗度間の差分は2%を超えない(均等に使用されている場合)。表1は、消耗度間の相違が比較的大きくなっている例(不均一な使用状況)を示し、所定の理由で個々のスロットのストレージ装置を置換することを引き起こす、或いはストレージアレイが使用中である場合に新たなストレージ装置をストレージアレイに追加することを引き起こす。
N個のストレージ装置に関する検討が済んだ後でさえ、i番目のストレージ装置と(i+1)番目のストレージ装置との間で第1の消耗閾値以下の消耗度差分が発見されなかった場合、サービスデータ(略して「データ」)の配分が、ストレージ装置各々のウェイトに従って再度調整され、これにより、ウェイトに応じた均等配分を達成する。すなわち、第1のストレージ装置に属するストレージ装置の消耗度間の差分と、第2のストレージ装置に属するストレージ装置の消耗度間の差分とが拡大された後、均等な状態が再び復元される。そして、ある期間の経過後に(例えば、1週間後に)、本プロセスがS102から再開される。
上記の方法では、第1のストレージ装置群に属するストレージ装置の数はXであり、第2のストレージ装置群に属するストレージ装置の数はN-Xであることが、仮定されている。以下、第2のストレージ装置群から第1のストレージ装置群へデータを移動又はマイグレート(migrating)する具体的な方法を説明する。当然に、マイグレーション方法は、説明される以下の例に限定されない。
S305:第1のストレージ装置群におけるフリーストレージ空間に関する統計情報を収集する;第1のストレージ装置群の中で全部でいくつのチャンク(Chunk)がアイドル状態(不使用の状態)のままであるかについての統計情報を収集する。RADIグループが設定されている場合、RAIDグループを形成するのに使用されていないチャンクはアイドル状態であることが、理解されるであろう。統計処理の結果はフリーサイズ(FreeSize)により表現されることが仮定されている。
S306:第2のストレージ装置群の物理SSD各々のFreeSize/(N-X)の論理SSDの中からデータを平均的に取り出し、第1のストレージ装置群の物理SSDにデータを移動させ、これにより、第1のストレージ装置群の物理SSD各々が、十分に(又は完全に)負担を担った形式で動作させる。十分に負荷を担わせる処理は、ストレージ装置の全てのチャンクが占有されることであり、ホットバックアップのためにスペースが確保されていないことである点が、理解されるであろう。このように、ある期間の経過後に、第1のストレージ装置群に属する全ての物理SSDの消耗度は、サービス負荷の間の差分に起因して、第2のストレージ装置群に属する全ての物理SSDの消耗度より高い。
当然に、別の実施の形態によるデータマイグレーション方法が使用されてもよい。
更に、第1のストレージ装置群に属する物理SSDの最小の消耗度と第2のストレージ装置群に属する物理SSDの最大の消耗度との間の相違が急速に拡大することが予想される場合、第2のストレージ装置群のうち最大の消耗度を有する物理SSDから第1のストレージ装置群の物理SSDへ、より多くのデータが更に抽出されてもよい。
例えば、表1に示す例の場合、第1のストレージ装置群には3個のストレージ装置が存在し、第2のストレージ装置群には25-3=22個のストレージ装置が存在する。サービスデータは、FreeSize/22個の論理SSDから平均的に抽出され、第1のストレージ装置群に属する3個のストレージ装置に移されてもよい。実際のスロット番号が14及び7であるSSD(複数)の消耗度間の相違が急速に大きくなる場合については、実際のスロット番号7のサービスデータがより多く抽出され(例えば、1ないし2個多いチャンクのサービスデータが抽出され)、第1のストレージ装置群に属する3個のストレージ装置に移される。
特に、RAIDが形成される場合において、第2のストレージ装置群のデータが第1のストレージ装置群に移動させられる場合、第1のストレージ装置群に属するSSDであってデータの移動先のSSDは、第1のストレージ装置群に属するSSDであってRAIDに含まれているSSDとは異なっている必要がある。その目的は、RAIDに含まれている各々のチャンクが異なるディスクに所属するのを保証することであり、これにより2つのCKのデータが不具合又はディスクの停電に起因して喪失してしまう状況を回避する。
サービス負荷は徐々に移されるので、システム全体のサービスパフォーマンスは影響を受けない。
ステップS306が実行された後、本方法は以下の処理を更に含んでもよい:
S308:第1のストレージ装置群に属する物理SSDの最小の消耗度と第2のストレージ装置群に属する物理SSDの最大の消耗度との間の相違は、既に第1の消耗閾値以上であることが計算により判明した場合、ステップS102を実行するように再開する。
図7に示されている方法は、N個のストレージ装置の消耗度に従ってストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する仕方と、第2のストレージ装置群から第1のストレージ装置群へのデータの移動のさせ方とを示す。
図7に示されているように、以下のステップが含まれている:
S401:N個のストレージ装置の消耗度に従って、N個のストレージ装置をS個のサブセクションにグループ化する(サブセクションは小区分又はグループ等と言及されてもよい)。j番目のサブセクションに属するストレージ装置の最小の消耗度は、(j+1)番目のサブセクションに属するストレージ装置の最大の消耗度以上である(0<j<S)。
各々のサブセクションに属するストレージ装置の消耗度間の相違の全てが第2の消耗閾値を超えていることが好ましい。第2の消耗閾値を決定する際に、第1の消耗閾値が参照されてもよく、第2の消耗閾値は第1の消耗閾値と同一であってもよいし又は相違していてもよい。更に、(j+1)番目のサブセクションのうちの最大消耗度を有するストレージ装置の消耗度との相違、及びj番目のサブセクションのストレージ装置のうち最小消耗度を有するストレージ装置の消耗度との相違は、第2の消耗閾値を超えない。
具体的には、S個のサブセクションにグループ化する手順は以下のとおりである:
S4020:N個のストレージ装置を消耗度の降順に従って並べる。最大の消耗度を有するストレージ装置の番号は1であり、最小の消耗度を有するストレージ装置の番号はNである。
S4021:i番目のストレージ装置の消耗度と(i+1)番目のストレージ装置の消耗度との間の相違ΔTを計算する(0<i<N)。
先ずi番目のストレージ装置から消耗度間の相違ΔTの計算を開始する(初期値i=1);
消耗度間の相違が第2の消耗閾値以下であった場合、ステップ4022を実行する;及び
消耗度間の相違が第2の消耗閾値より大きかった場合、ステップ4023を実行する。
なお、第2の消耗閾値を決定する際に、図6の実施の形態に関する説明が参照されてもよい。
S4022:i番目のストレージ装置を或るサブセクションにグループ化し(そのグループに入れ)、(i+1)番目のストレージ装置を別のサブセクションにグループ化し;iに1を加え、ステップS4021を実行する処理に続く。
S4023:(i+1)番目のストレージ装置を、i番目のストレージ装置が所属しているサブセクションにグループ化し(そのグループに入れ);iに1を加え、ステップS4021を実行する処理に続く。
ストレージアレイは、上記の手順を利用してS個のサブセクションに分割される。
表2を説明の便宜上の1例とする。N=25、M=2、所定の消耗閾値は70%であり、第2の消耗閾値は第1の消耗閾値と同じであることが仮定されている(すなわち、第1及び第2の消耗閾値は1%である)。
Figure 2015528174
先ず、並べ替えた後に、最初に1番目のストレージ装置及び2番目のストレージ装置から、消耗度間の相違の計算が実行される。ΔT1=T1-T2=80.01%-70.01%=10%。10%は1%より大きいので、ステップ4023が実行される。2番目のストレージ装置及び1番目のストレージ装置は同じサブセクションにグループ化され、第1のサブセクション1は{1,2}となる。次に、iプラス1は2になり、2番目のストレージ装置及び3番目のストレージ装置の間の消耗度の相違の計算が始まる。ΔT2=T2-T3=70.01%-65.20%=4.81%。4.81%は1%より大きいので、3番目のストレージ装置及び2番目のストレージ装置は同じサブセクションにグループ化され、その結果、第1のサブセクション1は{1,2,3}となる。次に、3番目のストレージ装置及び4番目のストレージ装置の間の消耗度の相違の計算が始まる。ΔT3=T3-T4=65.20%-65.17%=0.03%。0.03%は1%より小さいので、4番目のストレージ装置は第2のサブセクションにグループ化される。次に、iプラス1は4になり、4番目のストレージ装置及び5番目のストレージ装置の間の消耗度の相違の計算が始まる。ΔT4=T4-T5=65.17%-64.16%=1.01%。1.01%は1%より大きいので、5番目のストレージ装置及び4番目のストレージ装置は同じサブセクションにグループ化され、その結果、第2のサブセクション2は{4,5}となる。次に、5番目のストレージ装置及び6番目のストレージ装置の間の消耗度の相違の計算が始まる。ΔT5=T5-T6=64.16%-64.00%=0.16%。0.16%は1%より小さいので、6番目のストレージ装置は第3のサブセクション3にグループ化される。そして、6番目のストレージ装置及び7番目のストレージ装置の間の消耗度の相違の計算が始まり、全てのストレージ装置が検討されるまで同様な手順が続く。
S402:i番目のサブセクションないしj番目のサブセクション内のストレージ装置の数を算出する(0<j<S)。j=1である場合、第1のサブセクションに属するストレージ装置の数を直接的に算出する;
1番目のサブセクションないしj番目のサブセクション内のストレージ装置の数がN/2以上であった場合、ステップS403を実行し;及び
1番目のサブセクションないしj番目のサブセクション内のストレージ装置の数がN/2より小さかった場合、ステップS404を実行する。
S403:1番目のサブセクションからj番目のサブセクションのストレージ装置を第1のストレージ装置群に設定し、(j+1)番目のサブセクションからS番目のサブセクションのストレージ装置を第2のストレージ装置群に設定する。
S404:次に、jに1を加え、1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2以上になるまで、1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し続け、1番目のサブセクションからj番目のサブセクションのストレージ装置を第1のストレージ装置群に設定し、(j+1)番目のサブセクションからS番目のサブセクションのストレージ装置を第2のストレージ装置群に設定する。
第2のストレージ装置群のデータが第1のストレージ装置群に移動させられる場合、第1のストレージ装置群に属するサブセクション各々に追加されるデータ量は等しい又は1番目のサブセクションから始まって徐々に減少し、第2のストレージ装置群に属するサブセクションから抽出されるデータ量は等しい又はS番目のサブセクションから始まって徐々に減少する。具体的な手順は次のとおりである:
S405:第1のストレージ装置群のフリーストレージ空間に関する統計情報を収集する;すなわち、第1のストレージ装置群の中で合計いくつのチャンクがアイドル状態(未使用状態)のままであるかについての統計情報を収集する。RAIDグループが設定される場合、RAIDグループを形成するのに使用されていないチャンクがアイドル状態にあることが理解されるであろう。統計(情報収集)の結果はFreeSizeにより表現されることが仮定されている。
第1のストレージ装置群に属するストレージ装置の数はXであり、第2のストレージ装置群に属するストレージ装置の数はN-Xであることが仮定されている。第1のストレージ装置群に属する全てのストレージ装置についての平均的なフリースペース(自由空間)は、FreeSize/Xである。
S406:第1のサブセットはj個のサブセクションを含む。全部でFreeSize-FreeSizeAのデータが第1のサブセットへ移動させられることが仮定され、FreeSizeAはデータ移動後の第1のサブセットにおけるフリーストレージ空間を示し、(FreeSize-FreeSizeA)/(N-X)のデータが第2のサブセットに属するストレージ装置各々から抽出され、第1のサブセットに移動させられる。
データの移動後に、第1のサブセットのサブセクション各々のフリーストレージ空間は:
FreeSize/X*(u-1)
である。ただし、1≦u≦jである。
例えば、第1のサブセットは3つのサブセクションを含み、データの移動後に:
第1のサブセクションに属するストレージ装置各々のフリースペースは、(FreeSize/X)*(1-1)=0に調整される;
第2のサブセクションに属するストレージ装置各々のフリースペースは、(FreeSize/X)*(2-1)=FreeSize/Xに調整される;
第3のサブセクションに属するストレージ装置各々のフリースペースは、(FreeSize/X)*(3-1)=2*FreeSize/Xに調整される。
データの移動後に、第1のサブセットに属する全てのサブセクションのフリーストレージ空間は合計FreeSizeAとなる。
当然に、別の実施の形態によるデータ移動方法が使用されてもよい。
図8に示されている方法は、N個のストレージ装置の消耗度に従ってストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する仕方と、第2のストレージ装置群から第1のストレージ装置群へのデータの移動のさせ方とを示す。
S501はS401と同じであるので重複的な説明は行わない。
S502:j=|-S/2-|はS/2を小さく丸めた数、すなわちS/2以下の数のうちの最大の整数を示す(|- -|は床関数を示す)。1番目のサブセクションないしj番目のサブセクションに属するストレージ装置は第1のストレージ装置群に設定され、(j+1)番目のサブセクションないしS番目のサブセクションに属するストレージ装置は第2のストレージ装置群に設定される。
説明の便宜上、表2の例を使用する。S=5、j=|-S/2-|=2を使用することが仮定され、第1のサブセクション及び第2のサブセクションに属するストレージ装置は第1のストレージ装置群として設定され、第3のサブセクションないし第5のサブセクションに属するストレージ装置は第2のストレージ装置群として設定される。
或いは、j=|-S/2-|であってもよく、これはS/2を大きく丸めた数、すなわちS/2以上の数のうちの最小の整数を示す(|- -|は天井関数を示す)。1番目のサブセクションないしj番目のサブセクションに属するストレージ装置は第1のストレージ装置群に設定され、(j+1)番目のサブセクションないしS番目のサブセクションに属するストレージ装置は第2のストレージ装置群に設定される。
従って、第2のストレージ装置群から第1のストレージ装置群へデータを移動させる具体的な手順は次のとおりであってもよい:
S405:第1のストレージ装置群のフリーストレージ空間に関する統計情報を収集する;すなわち、第1のストレージ装置群の中で合計いくつのチャンクがアイドル状態(未使用状態)のままであるかについての統計情報を収集する。RAIDグループが設定される場合、RAIDグループを形成するのに使用されていないチャンクがアイドル状態にあることが理解されるであろう。統計(情報収集)の結果はFreeSizeにより表現されることが仮定されている。
第1のストレージ装置群に属するストレージ装置の数はXであり、第2のストレージ装置群に属するストレージ装置の数はN-Xであることが仮定されている。
S506:第1のサブセットはj個のサブセクションを含む。全部でFreeSize-FreeSizeAのデータが第1のサブセットへ移動させられることが仮定され、FreeSizeAはデータ移動後の第1のサブセットにおけるフリーストレージ空間を示し、(FreeSize-FreeSizeA)/(N-X)のデータが第2のサブセットに属するストレージ装置各々から抽出され、第1のサブセットのストレージ装置に移動させられる。
第2のストレージ装置群から第1のストレージ装置群へデータを移動させる際に、不均等な移動方法が使用されてもよい;すなわち、第1のサブセットに属するサブセクション各々に追加されるサービスデータが、第1のサブセクションから徐々に減少し始め、及び、第2のサブセットに属するサブセクション各々から抽出されるサービスデータが、S番目のサブセクションから徐々に減少し始めてもよい。
説明の便宜上、表2を具体例とする。第2のストレージ装置群から移動して行くサービスデータが、第1のストレージ装置群に移動して来るサービスデータに等しいという前提条件の下で、第1のサブセクション及び第2のサブセクションに属するストレージ装置が第1のストレージ装置群として設定される場合、第1のサブセクションのサービスデータは100%増加し(すなわち、全てのフリースペースが占有され)、第2のサブセクションのサービスデータは90%増加し(すなわち、全てのフリースペースのうち90%しか占有されてず)、及び、第3のサブセクションないし第5のサブセクションに属するストレージ装置が第2のストレージ装置群として設定される場合、第2のストレージ装置群において、第5のサブセクションのサービスデータは30%減少し(全てのデータのうち30%が減少し)、第4のサブセクションのサービスデータは20%減少し(全てのデータのうち20%が減少し)、第3のサブセクションのサービスデータは10%減少する(全てのデータのうち10%が減少する)。
当然に、別の実施の形態によるデータ移動方法が使用されてもよい。
当然に、N個のストレージ装置の消耗度に従ってストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する仕方は、図6、図7、図8に示す例に限定されない。例えば、第3の消耗閾値が設定されもよく;消耗度の順に並べられた後、第3の消耗閾値以上の消耗度のストレージ装置が第1のストレージ装置群を形成し、第3の消耗閾値未満の消耗度のストレージ装置が第2のストレージ装置群を形成してもよい。第3の消耗閾値は経験的な値により予め設定されていてもよいし、可変に調整されてもよく、及び上記の実施の形態で言及した所定の閾値と同一であってもよいし異なっていてもよい。
本発明の実施の形態においては、ストレージアレイは、ストレージ装置の消耗度に従って第1のストレージ装置群及び第2のストレージ装置群に分割され、第1のストレージ装置群に属するストレージ装置についての最小消耗度は、第2のストレージ装置群に属するストレージ装置についての最大消耗度以上であり、第2のストレージ装置群の中のデータは、第1のストレージ装置群に移動させられる、或いは書き込まれるべきデータが第1のストレージ装置群に書き込まれる。従って、第1のストレージ装置群に属するストレージ装置のサービス寿命を短縮することで、第2のストレージ装置群に属するストレージ装置のサービス寿命が相対的に延長され、これにより、第1のストレージ装置群に属するストレージ装置が不具合を起こす時点と第2のストレージ装置群に属するストレージ装置が不具合を起こす時点との間の期間を長くし、消耗度に起因して複数のストレージ装置が同時に不具合を起こすリスクを減らし、データの信頼性を向上させる。
上述した事項は動的な調整方法を含む。一例として、ストレージアレイに属するストレージ装置各々にウェイトが直接的に指定されており、かつ全てのストレージ装置の容量が等しかった場合、様々なウェイトがストレージ装置各々に割り当てられ、ストレージ装置各々のウェイト値が異なることを保証する。
或いは、ストレージアレイに属するストレージ装置の各々にウェイトが割り当てられる場合に、全てのストレージ装置の容量が異なることを保証してもよい。しかしながら、ストレージ装置の各々に同じウェイトが割り当てられてもよい。これは全てのストレージ装置の消耗度を不均一にする。
本発明では様々なデータ保護モデルについてグローバルアンチウェアレベリング(global anti-wear leveling)方法が実現可能であり(データ保護モデルは、データを保護しない場合を含むことに加えて、例えば、ミラー方式のデータ保護、パリティ方式のデータ保護等であるがこれらに限定されない)、説明の便宜上、ストレージ装置がSSDである例を使用する。
以下、説明の便宜上、RAID5又はRAID6のようなパリティ方式のデータ保護を具体例とする。
SSDグループに属する物理SSDが全て或る程度消耗又は疲弊(wear)している場合、システムは更なるサービスを担うために(複数の)物理SSDからいくつかの物理SSDを選択し、その結果、他の物理SSDでなされるサービス負担が減少する。例えば、図3及び図9に示されるRAID5システムにおいて、物理SSD#8の4番目の論理SSDから物理SSD#1の論理SSDへ、データが移動させられる。
先行する処理(又はステップ)において、物理SSD#1は多くのサービス負担を担いながら高速で使用されているが、物理SSD#8は少ないサービス負担しか担っておらずしかも低速でしか使用されていない。ある期間の経過後、物理SSD全体の消耗度は図5に示されているような「階段」を形成し、これにより複数の物理SSDが同時に不具合を起こすことを回避し、システムの信頼性を向上させる。
次に、説明の便宜上、RAID1又はRAID10のようなミラー方式のデータモデルを具体例とする。
SSDグループに属する物理SSDが全て或る程度消耗又は疲弊(wear)している場合、システムは更なるサービスを担うために(複数の)物理SSDからいくつかの物理SSDを選択し、その結果、他の物理SSDでなされるサービス負担が減少する。例えば、図10に示されるRAID1システムにおいて、物理SSD#7及び物理SSD#8の或る論理SSDから物理SSD#1及び物理SSD#2の論理SSDへ、データが移動させられる。
先行する処理(又はステップ)において、物理SSD#1及び物理SSD#2は多くのサービス負担を担いながら高速で使用されているが、物理SSD#7及び物理SSD#8は少ないサービス負担しか担っておらずしかも低速でしか使用されていない(#8が担うサービス負担は#7が担うものよりかなり少なくなる)。ある期間の経過後、物理SSD全体の消耗度は図5に示されているような「階段」を形成し、これにより複数の物理SSDが同時に不具合を起こすことを回避し、システムの信頼性を向上させる。
上記の手順は本発明の実施の形態を適用できる様々な状況を実質的に開示し、当然に、本発明はそれら個々の状況には限定されない。
<<本発明の実施の形態による装置>>
本発明による実施の形態はストレージアレイを管理する装置を提供する。ストレージアレイは、N個のストレージ装置により形成され、図11に示されているように、本装置は以下のモジュールを含む:
N個のストレージ装置の消耗度を求めるように形成された捕捉モジュール1101;
N個のストレージ装置の消耗度に従って、ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割するように形成された分割モジュール1102(第1のストレージ装置群に属するストレージ装置の最小消耗度は、第2のストレージ装置群に属するストレージ装置の最大消耗度以上である);及び
第2のストレージ装置群から第1のストレージ装置群へデータを移動させる、或いは書き込まれるべきデータを前記第1のストレージ装置群に書き込むように形成された処理モジュール1103。
具体的には、分割モジュールは、
N個のストレージ装置を前記消耗度の降順に従って並べ、最大消耗度のストレージ装置の番号を1とし、最小消耗度のストレージ装置の番号をNとし、
i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し(0<i<N)、
消耗度間の相違が第1の消耗閾値以下であった場合、1番目ないしi番目のストレージ装置を第1のストレージ装置群に設定し、(i+1)番目ないしN番目のストレージ装置を第2のストレージ装置群に設定し、
消耗度間の相違が第1の消耗閾値より大きかった場合、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるように形成されている。
或いは、分割モジュールは、
N個のストレージ装置の消耗度に従ってN個のストレージ装置をS個のサブセクションにグループ化し、j番目のサブセクションのストレージ装置のうちの最小の消耗度を、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上とし(0<j<S)、
1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し(0<j<S)、
1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2以上であった場合、1番目のサブセクションないしj番目のサブセクションのストレージ装置を第1のストレージ装置群に設定し、(j+1)番目のサブセクションないしS番目のサブセクションのストレージ装置を第2のストレージ装置群に設定し、
1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2未満であった場合、jに1を加え、1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し続けるように形成されている。
或いは、分割モジュールは、
N個のストレージ装置の消耗度に従ってN個のストレージ装置をS個のサブセクションにグループ化し、j番目のサブセクションのストレージ装置のうちの最小の消耗度を、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上とし(0<j<S)、
1番目のサブセクションないしj番目のサブセクションのストレージ装置を第1のストレージ装置群に設定し、(j+1)番目のサブセクションないしS番目のサブセクションのストレージ装置を第2のストレージ装置群に設定するように形成され、jはS/2以下の数のうち最大の整数(j=|_S/2_|)である、或いはjはS/2以上の数のうち最小の整数(j=|-S/2-|)である。
或いは、分割モジュールは、
消耗度が第3の消耗閾値以上であるストレージ装置により第1のストレージ装置群を形成し、消耗度が前記第3の消耗閾値未満であるストレージ装置により第2のストレージ装置群を形成する。
処理モジュールは、
第1のストレージ装置群のフリーストレージ空間FreeSizeについての統計情報を収集し、
第2のストレージ装置群に属するストレージ装置各々からFreeSize/(N-X)のデータを抽出し、第1のストレージ装置群へデータを移動させるように形成され、Xは第1のストレージ装置群に属するストレージ装置の数を示す。
好ましくは、
第1のストレージ装置群に属するサブセクション各々に加えられるデータの量は、第1のサブセクションから徐々に少なくなる量又は等しい量であり、第2のストレージ装置群に属する各サブセクションから抽出されるデータの量は、S番目のサブセクションから徐々に少なくなる量又は等しい量である。
処理モジュールは、第2のストレージ装置群に属する各サブセクションから抽出されるデータの量が等しい場合、第2のストレージ装置群に属するストレージ装置各々から(FreeSize-FreeSizeA)/(N-X)のデータを抽出しかつ第1のストレージ装置群にデータを移動させるように形成され、FreeSizeはデータを移動させる前における第1のストレージ装置群のフリーストレージ空間を示し、FreeSizeAはデータを移動させた後における第1のストレージ装置群のフリーストレージ空間を示し、Xは第1のストレージ装置群に属するストレージ装置の数を示す。
或いは、本装置は第2のストレージ装置群に属するストレージ装置の消耗度を第4の消耗閾値と比較する比較モジュールを更に有し、
第2のストレージ装置群に属する少なくとも1つのストレージ装置の消耗度が第4の消耗閾値以上であった場合に、処理モジュールが、第2のストレージ装置群から第1のストレージ装置群へデータを移動させる。
本発明の実施の形態により提供される装置には、上記の実施の形態で説明されたコントローラが設けられてもよく、上記の実施の形態により説明されたストレージアレイの管理方法を実行するように形成されてもよい。各ユニットの機の詳細な説明については、上記の方法の実施の形態による説明を参照することが可能であり、重複的な説明は行わない。
図12に示されているように、本発明の実施の形態により提供されるコントローラは、
プロセッサ101、メモリ102、システムバス(又は単に「バス」)105及び通信インタフェース103を有し、プロセッサ101、メモリ102及び通信インタフェース103はシステムバス105を介して互いに通信可能に接続されている。
プロセッサ101は、シングルコア又はマルチコアの中央処理装置又は特定の集積回路でもよいし、或いは本発明の実施の形態を実現する1つ以上の集積回路をなすように形成されていてもよい。
メモリ102は、高速RAMメモリ又は不揮発性メモリであってもよく、例えば少なくとも1つのディスクメモリであってもよい。
通信インタフェース103はストレージ装置と通信するように形成されている。
メモリ102は、コンピュータにより実行可能な命令(コンピュータ実行命令)1021を保存するように形成されている。具体的には、コンピュータ実行命令1021はプログラムコードを含んでいてもよい。
コンピュータが動作すると(走り出すと)、プロセッサ101は、コンピュータ実行命令1021を実行し、図4ないし図10等による何れか1つの方法を実行する。
本発明の実施の形態は、データ処理のためのコンピュータプログラムプロダクトをも提供し、これはプログラムコードを保存するコンピュータ読み取り可能記憶媒体(コンピュータで読み取ることが可能な記憶媒体)を含み、プログラムコードに含まれている命令は、図4ないし図10等による何れか1つの方法を装置に実行させるために使用される。
本発明の実施の形態において、ストレージアレイは、ストレージ装置の消耗度に従って第1のストレージ装置群及び第2のストレージ装置群に分割され、第1のストレージ装置群に属するストレージ装置についての最小消耗度は、第2のストレージ装置群に属するストレージ装置についての最大消耗度以上であり、第2のストレージ装置群の中のデータは、第1のストレージ装置群に移動させられる、或いは書き込まれるべきデータが第1のストレージ装置群に書き込まれる。従って、第1のストレージ装置群に属するストレージ装置のサービス寿命を短縮することで、第2のストレージ装置群に属するストレージ装置のサービス寿命が相対的に延長され、これにより、第1のストレージ装置群に属するストレージ装置が不具合を起こす時点と第2のストレージ装置群に属するストレージ装置が不具合を起こす時点との間の期間を長くし、消耗度に起因して複数のストレージ装置が同時に不具合を起こすリスクを減らし、データの信頼性を向上させる。
本発明の実施の形態の各々又はそれらの形態で使用可能な方法は、システム、方法、コンピュータプログラム、コンピュータプログラムプロダクト又は記憶媒体等として具体的に実現されてよいことを、当業者は理解するであろう。本発明の実施の形態の各々又はそれらの形態で使用可能な方法は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア等を含む)、又はソフトウェア及びハードウェアが組み合わせられた実施形態等の形式を利用してよく、それらは本願においてまとめて「回路」、「モジュール」又は「システム」等と言及されている。更に、本発明の実施の形態の各々又はそれらの形態で使用可能な方法は、コンピュータプログラムプロダクト又は記憶媒体の形式を利用してもよい。コンピュータプログラムプロダクトは、コンピュータプログラムが保存されたコンピュータ読み取り可能媒体に関連する。
コンピュータ読み取り可能媒体は、コンピュータにより読み取ることが可能な記憶媒体又は伝送媒体を含んでよい。コンピュータ読み取り可能な記憶媒体は、電子、磁気、光、電磁場、赤外線、又は半導体システム、デバイス、又は装置、又はそれらの任意の組み合わせによるものを含み、例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能でプログラム可能なリードオンリメモリ(EPROM又はフラッシュメモリ)、光ファイバ、又は携帯用リードオンリメモリ(CD-ROM)等を含むがこれらに限定されない。
コンピュータのプロセッサは、コンピュータ読み取り可能媒体に保存されているコンピュータ読み取り可能なプログラムコードを読み取り、プロセッサは、フローチャートにおける各々のステップ又はステップの組み合わせで特定されている機能処理を実行することが可能であり、かつブロック図における各々のブロック又はブロックの組み合わせで特定されている機能処理を実施する装置を実現する。
コンピュータ読み取り可能なプログラムコードは、ユーザのコンピュータで完全に実行されてもよいし、ユーザのコンピュータで部分的に実行されてもよいし、独立したソフトウェアパッケージとして機能してもよいし、ユーザのコンピュータで部分的に実行されかつリモートコンピュータで部分的に実行されてもよいし、或いはリモートコンピュータ又はサーバで完全に実行されてもよい。フローチャートの各ステップ又はブロック図の各ブロックに示されている機能(部)が、代替的な実現手段におけるフローチャートに示されたシーケンス又は図面に登場しなくてよいことにも留意すべきである。例えば、備わる機能に依存して、連続して登場する2つのステップ又は2つのブロックが実際にはほぼ同時に実行されてもよいし、或いはそれらのブロックはしばしば逆の順序で実行されてもよい。
本願で説明された実施の形態に関して組み合わせ例として登場したユニット及びアルゴリズムのステップは、電子ハードウェアにより実現されてもよいし、コンピュータハードウェア及び電子ハードウェアの組み合わせにより実現されてもよいことを、当業者は認めるであろう。機能がハードウェア方式又はソフトウェア方式の何れにより実行されるかは、具体的なアプリケーション及び技術手段の設計制約条件等に依存する。当業者は、特定のアプリケーション各々について説明された機能を実現するために様々な方法を利用してよいが、そのような実現手段が本発明の範囲を超えるように解釈すべきではない。
以上、本発明に関する単なる具体的な実現手段が説明されてきたが、これらは本発明の保護範囲を限定するようには意図されていない。本願により開示された技術的範囲の中で当業者にとって容易に把握できる変形例や置換例は、本発明の保護範囲内に属する。すなわち、本発明の保護範囲は特許請求の範囲に基づいて定められる。

Claims (22)

  1. N個のストレージ装置により形成されたストレージアレイを管理する方法であって、
    コントローラが、前記N個のストレージ装置の消耗度を求めるステップと、
    前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割するステップであって、前記第1のストレージ装置群に属するストレージ装置の最小消耗度は、前記第2のストレージ装置群に属するストレージ装置の最大消耗度以上である、ステップと、
    前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる、或いは書き込まれるべきデータを前記第1のストレージ装置群に書き込むステップと
    を有する方法。
  2. 前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
    前記N個のストレージ装置を前記消耗度の降順に従って並べるステップであって、最大消耗度のストレージ装置の番号を1とし、最小消耗度のストレージ装置の番号をNとする、ステップと、
    i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算するステップと(0<i<N)、
    前記消耗度間の相違が第1の消耗閾値以下であった場合、1番目ないしi番目のストレージ装置を前記第1のストレージ装置群に設定し、(i+1)番目ないしN番目のストレージ装置を前記第2のストレージ装置群に設定するステップと、
    前記消耗度間の相違が前記第1の消耗閾値より大きかった場合、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるステップと
    を有する、請求項1に記載の方法。
  3. 前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
    前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化するステップであって、j番目のサブセクションのストレージ装置のうちの最小の消耗度は、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上である、ステップ(0<j<S)と、
    1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出するステップと(0<j<S)、
    前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2以上であった場合、前記1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定する、ステップと、
    前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2未満であった場合、jに1を加え、前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し続けるステップと
    を有する、請求項1に記載の方法。
  4. 前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
    前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化するステップであって、j番目のサブセクションのストレージ装置のうちの最小の消耗度は、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上である、ステップ(0<j<S)と、
    1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定するステップであって、jはS/2以下の数のうち最大の整数(j=|_S/2_|)である、或いはjはS/2以上の数のうち最小の整数(j=|-S/2-|)である、ステップと
    を有する、請求項1に記載の方法。
  5. 前記N個のストレージ装置をS個のサブセクションにグループ化する前記ステップが、
    前記N個のストレージ装置を前記消耗度の降順に従って並べるステップであって、最大消耗度のストレージ装置の番号を1とし、最小消耗度のストレージ装置の番号をNとする、ステップと、
    i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算するステップと(0<i<N)、
    前記消耗度間の相違が第2の消耗閾値以下であった場合、1番目のストレージ装置を或るサブセクションのグループに入れ、(i+1)のストレージ装置を別のサブセクションのグループに入れ、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるステップと、
    前記消耗度間の相違が第2の消耗閾値より大きかった場合、(i+1)番目のストレージ装置を、i番目のストレージ装置が所属するサブセクションのグループに入れ、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるステップと
    を有する、請求項3又は4に記載の方法。
  6. 前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割する前記ステップが、
    消耗度が第3の消耗閾値以上であるストレージ装置により前記第1のストレージ装置群を形成し、消耗度が前記第3の消耗閾値未満であるストレージ装置により前記第2のストレージ装置群を形成するステップ
    を有する、請求項1に記載の方法。
  7. 前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる場合において、
    前記第1のストレージ装置群のフリーストレージ空間FreeSizeについての統計情報を収集し、
    前記第2のストレージ装置群に属するストレージ装置各々からFreeSize/(N-X)のデータを抽出し、前記第1のストレージ装置群へデータを移動させ、
    Xは前記第1のストレージ装置群に属するストレージ装置の数を示す、請求項1−6の何れか1項に記載の方法。
  8. 前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる場合において、
    前記第1のストレージ装置群に属するサブセクション各々に、前記第1のサブセクションから徐々に少なくなる量のデータ又は等しい量のデータを加え、及び
    前記第2のストレージ装置群に属する前記S番目のサブセクションないし各サブセクションから徐々に少なくなる量のデータ又は等しい量のデータを抽出する、請求項3−5の何れか1項に記載の方法。
  9. 前記第2のストレージ装置群に属する前記S番目のサブセクションないし各サブセクションから等しい量のデータを抽出する場合に、前記第2のストレージ装置群に属するストレージ装置各々から(FreeSize-FreeSizeA)/(N-X)のデータが抽出されかつ前記第1のストレージ装置群に移動させられ、FreeSizeはデータを移動させる前における前記第1のストレージ装置群のフリーストレージ空間を示し、FreeSizeAはデータを移動させた後における前記第1のストレージ装置群のフリーストレージ空間を示し、Xは前記第1のストレージ装置群に属するストレージ装置の数を示す、請求項8に記載の方法。
  10. 前記データを移動させた後の前記第1のストレージ装置群に属するサブセクション各々のフリーストレージ空間が、
    FreeSize/X*(u-1)
    であり、1≦u≦jであり、jは前記第1のストレージ装置群をなすサブセクションの番号を示し、FreeSizeはデータを移動させる前における前記ストレージ装置群のフリーストレージ空間を示し、Xは前記第1のストレージ装置群に属するストレージ装置の数を示し、
    データの移動後に、前記第1のストレージ装置群に属するサブセクション全てのフリーストレージ空間は全部でFreeSizeAである、請求項8又は9に記載の方法。
  11. 前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる前に、当該方法は、前記第2のストレージ装置群に属するストレージ装置の消耗度を第4の消耗閾値と比較するステップを更に有し、
    前記第2のストレージ装置群に属する少なくとも1つのストレージ装置の消耗度が前記第4の消耗閾値以上であった場合に、前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる、請求項1−10の何れか1項に記載の方法。
  12. N個のストレージ装置により形成されたストレージアレイを管理する装置であって、
    前記N個のストレージ装置の消耗度を求めるように形成された捕捉モジュールと、
    前記N個のストレージ装置の前記消耗度に従って、前記ストレージアレイを第1のストレージ装置群及び第2のストレージ装置群に分割するように形成された分割モジュールであって、前記第1のストレージ装置群に属するストレージ装置の最小消耗度は、前記第2のストレージ装置群に属するストレージ装置の最大消耗度以上である、分割モジュールと、
    前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる、或いは書き込まれるべきデータを前記第1のストレージ装置群に書き込むように形成された処理モジュールと
    を有する装置。
  13. 前記分割モジュールが、
    前記N個のストレージ装置を前記消耗度の降順に従って並べ、最大消耗度のストレージ装置の番号を1とし、最小消耗度のストレージ装置の番号をNとし、
    i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し(0<i<N)、
    前記消耗度間の相違が第1の消耗閾値以下であった場合、1番目ないしi番目のストレージ装置を前記第1のストレージ装置群に設定し、(i+1)番目ないしN番目のストレージ装置を前記第2のストレージ装置群に設定し、
    前記消耗度間の相違が前記第1の消耗閾値より大きかった場合、iに1を加え、i番目のストレージ装置及び(i+1)番目のストレージ装置の消耗度間の相違を計算し続けるように形成されている、請求項12に記載の装置。
  14. 前記分割モジュールが、
    前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化し、j番目のサブセクションのストレージ装置のうちの最小の消耗度を、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上とし(0<j<S)、
    1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し(0<j<S)、
    前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2以上であった場合、前記1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定し、
    前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数がN/2未満であった場合、jに1を加え、前記1番目のサブセクションないしj番目のサブセクションのストレージ装置の数を算出し続けるように形成されている、請求項12に記載の装置。
  15. 前記分割モジュールが、
    前記N個のストレージ装置の消耗度に従って前記N個のストレージ装置をS個のサブセクションにグループ化し、j番目のサブセクションのストレージ装置のうちの最小の消耗度を、(j+1)番目のサブセクションのストレージ装置のうちの最大の消耗度以上とし(0<j<S)、
    1番目のサブセクションないし前記j番目のサブセクションのストレージ装置を前記第1のストレージ装置群に設定し、前記(j+1)番目のサブセクションないし前記S番目のサブセクションのストレージ装置を前記第2のストレージ装置群に設定するように形成され、
    jはS/2以下の数のうち最大の整数(j=|_S/2_|)である、或いはjはS/2以上の数のうち最小の整数(j=|-S/2-|)である、請求項12に記載の装置。
  16. 前記分割モジュールが、
    消耗度が第3の消耗閾値以上であるストレージ装置により前記第1のストレージ装置群を形成し、消耗度が前記第3の消耗閾値未満であるストレージ装置により前記第2のストレージ装置群を形成するように形成されている、請求項12に記載の装置。
  17. 前記処理モジュールが、
    前記第1のストレージ装置群のフリーストレージ空間FreeSizeについての統計情報を収集し、
    前記第2のストレージ装置群に属するストレージ装置各々からFreeSize/(N-X)のデータを抽出し、前記第1のストレージ装置群へデータを移動させるように形成され、
    Xは前記第1のストレージ装置群に属するストレージ装置の数を示す、請求項12−16の何れか1項に記載の装置。
  18. 前記第1のストレージ装置群に属するサブセクション各々に加えられるデータの量が、前記第1のサブセクションから徐々に少なくなる量又は等しい量であり、
    前記第2のストレージ装置群に属するサブセクション各々から抽出されるデータ量が、前記S番目のサブセクションから徐々に少なくなる量又は等しい量である、請求項14又は15に記載の装置。
  19. 前記処理モジュールが、
    前記第2のストレージ装置群に属する各サブセクションから抽出されるデータの量が等しい量である場合に、前記第2のストレージ装置群に属するストレージ装置各々から(FreeSize-FreeSizeA)/(N-X)のデータが抽出されかつ前記第1のストレージ装置群に移動させられ、FreeSizeはデータを移動させる前における前記第1のストレージ装置群のフリーストレージ空間を示し、FreeSizeAはデータを移動させた後における前記第1のストレージ装置群のフリーストレージ空間を示し、Xは前記第1のストレージ装置群に属するストレージ装置の数を示す、請求項18に記載の装置。
  20. 当該装置が、前記第2のストレージ装置群に属するストレージ装置の消耗度を第4の消耗閾値と比較する比較モジュールを更に有し、
    前記第2のストレージ装置群に属する少なくとも1つのストレージ装置の消耗度が前記第4の消耗閾値以上であった場合に、前記処理モジュールは、前記第2のストレージ装置群から前記第1のストレージ装置群へデータを移動させる、請求項12−19の何れか1項に記載の装置。
  21. プロセッサ、メモリ、システムバス及び通信インタフェースを有するコントローラであって、前記プロセッサ、前記メモリ及び前記通信インタフェースは前記システムバスを介して互いに通信可能に接続され、
    前記通信インタフェースはストレージ装置と通信するように形成され、
    前記メモリは、コンピュータにより実行可能な命令を保存するように形成され、
    前記プロセッサは、前記コンピュータにより実行可能な命令を実行し、請求項1−11の何れか1項に記載の方法を実行する、コントローラ。
  22. プログラムコードを保存するコンピュータ読み取り可能な記憶媒体に保存されたコンピュータプログラムであって、前記プログラムコードで形成される命令が、請求項1−11の何れか1項に記載の方法を実行するために使用される、コンピュータプログラム。
JP2015523390A 2013-06-29 2013-06-29 ストレージアレイを管理する方法及び装置 Active JP5881900B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/078504 WO2014205841A1 (zh) 2013-06-29 2013-06-29 一种存储阵列的管理方法、装置和控制器

Publications (2)

Publication Number Publication Date
JP2015528174A true JP2015528174A (ja) 2015-09-24
JP5881900B2 JP5881900B2 (ja) 2016-03-09

Family

ID=50323328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015523390A Active JP5881900B2 (ja) 2013-06-29 2013-06-29 ストレージアレイを管理する方法及び装置

Country Status (7)

Country Link
US (4) US9292220B2 (ja)
EP (3) EP3905052A1 (ja)
JP (1) JP5881900B2 (ja)
CN (1) CN103688248B (ja)
AU (1) AU2013397052B2 (ja)
CA (1) CA2896128C (ja)
WO (1) WO2014205841A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056218A1 (ja) * 2015-09-30 2017-04-06 株式会社日立製作所 ストレージ運用管理サービス提供装置、ストレージの運用管理サービス提供方法およびストレージ運用管理システム
JP7552141B2 (ja) 2020-08-21 2024-09-18 日本電気株式会社 情報処理装置、情報処理方法およびプログラム

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2672387B1 (en) * 2012-06-04 2018-08-01 Amplidata NV A distributed object storage system
CN105701028B (zh) * 2014-11-28 2018-10-09 国际商业机器公司 分布式存储系统中的磁盘管理方法和设备
JP6476959B2 (ja) * 2015-02-13 2019-03-06 富士通株式会社 ストレージ制御装置、ストレージシステム、および制御プログラム
CN105988727B (zh) * 2015-02-25 2021-04-16 中兴通讯股份有限公司 一种基于raid的存储方法和存储装置
US10296236B2 (en) * 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US20170052911A1 (en) * 2015-08-20 2017-02-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Memory module having a memory controller for controlling non-volatile memory
WO2017048228A1 (en) 2015-09-14 2017-03-23 Hewlett Packard Enterprise Development Lp Memory location remapping and wear-levelling
US10545681B2 (en) 2016-02-08 2020-01-28 International Business Machines Corporation Asymmetric storage data distribution
CN107544747B (zh) * 2016-06-29 2022-06-03 北京忆恒创源科技股份有限公司 磨损逆均衡方法与装置
CN108205423B (zh) * 2016-12-20 2020-06-02 华为技术有限公司 一种物理硬盘磨损均衡方法、装置及系统
CN107122126B (zh) * 2016-12-22 2020-09-08 华为技术有限公司 数据的迁移方法、装置和系统
CN109213428B (zh) * 2017-06-30 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
KR20190026231A (ko) * 2017-09-04 2019-03-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN109725835B (zh) * 2017-10-27 2022-04-29 伊姆西Ip控股有限责任公司 用于管理盘阵列的方法、设备和计算机程序产品
CN110058963B (zh) * 2018-01-18 2023-05-09 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
US11132133B2 (en) * 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays
TWI665550B (zh) 2018-04-27 2019-07-11 威聯通科技股份有限公司 磁碟陣列的資料分佈方法及其資料儲存系統與記錄媒體
CN108958990B (zh) * 2018-07-24 2021-10-15 郑州云海信息技术有限公司 一种提高现场可更换单元信息可靠性的方法和装置
CN111104055B (zh) * 2018-10-29 2023-10-27 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
US10915252B2 (en) * 2019-05-14 2021-02-09 Vmware, Inc. System and method for managing a group of storage devices using their wear levels and a target wearing profile
CN111078133B (zh) * 2019-10-18 2022-08-09 苏州浪潮智能科技有限公司 一种管理全闪存储阵列的空间的方法、设备及介质
KR20210155593A (ko) * 2020-06-16 2021-12-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN114489504B (zh) * 2022-01-21 2023-08-08 苏州浪潮智能科技有限公司 一种ssd数据管理方法及相关组件

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007180610A (ja) * 2005-12-26 2007-07-12 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置における記憶装置の制御方法
JP2010015516A (ja) * 2008-07-07 2010-01-21 Toshiba Corp データ制御装置、ストレージシステムおよびプログラム
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法
WO2012132408A1 (ja) * 2011-03-31 2012-10-04 パナソニック株式会社 アレイ管理装置、アレイ管理方法、コンピュータプログラム、集積回路
JP2012243018A (ja) * 2011-05-18 2012-12-10 Toshiba Corp 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
KR101401560B1 (ko) 2007-12-13 2014-06-03 삼성전자주식회사 반도체 메모리 시스템 및 그것의 마모도 관리 방법
US8135907B2 (en) * 2008-06-30 2012-03-13 Oracle America, Inc. Method and system for managing wear-level aware file systems
CN101640069B (zh) * 2008-08-01 2013-12-18 群联电子股份有限公司 用于闪速存储器的平均磨损方法与平均磨损系统
US20120023144A1 (en) * 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
JP2012033047A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
TWI466121B (zh) * 2010-12-31 2014-12-21 Silicon Motion Inc 用來進行區塊管理之方法以及記憶裝置及控制器
US9208070B2 (en) * 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007180610A (ja) * 2005-12-26 2007-07-12 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置における記憶装置の制御方法
JP2010015516A (ja) * 2008-07-07 2010-01-21 Toshiba Corp データ制御装置、ストレージシステムおよびプログラム
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法
WO2012132408A1 (ja) * 2011-03-31 2012-10-04 パナソニック株式会社 アレイ管理装置、アレイ管理方法、コンピュータプログラム、集積回路
JP2012243018A (ja) * 2011-05-18 2012-12-10 Toshiba Corp 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056218A1 (ja) * 2015-09-30 2017-04-06 株式会社日立製作所 ストレージ運用管理サービス提供装置、ストレージの運用管理サービス提供方法およびストレージ運用管理システム
JP7552141B2 (ja) 2020-08-21 2024-09-18 日本電気株式会社 情報処理装置、情報処理方法およびプログラム

Also Published As

Publication number Publication date
EP3264275A1 (en) 2018-01-03
US20170147242A1 (en) 2017-05-25
AU2013397052A1 (en) 2015-07-02
EP2838025B1 (en) 2017-04-19
EP2838025A4 (en) 2015-02-18
CN103688248A (zh) 2014-03-26
CN103688248B (zh) 2015-09-30
WO2014205841A1 (zh) 2014-12-31
US20150006816A1 (en) 2015-01-01
US10095429B2 (en) 2018-10-09
US9747050B2 (en) 2017-08-29
US9292220B2 (en) 2016-03-22
EP3905052A1 (en) 2021-11-03
JP5881900B2 (ja) 2016-03-09
AU2013397052B2 (en) 2016-09-29
EP2838025A1 (en) 2015-02-18
CA2896128C (en) 2018-04-03
US20170329544A1 (en) 2017-11-16
EP3264275B1 (en) 2021-04-07
US20160170683A1 (en) 2016-06-16
US9696938B2 (en) 2017-07-04
CA2896128A1 (en) 2014-12-31

Similar Documents

Publication Publication Date Title
JP5881900B2 (ja) ストレージアレイを管理する方法及び装置
US9658779B2 (en) Computer system and control method for computer system
US8166232B2 (en) Metrics and management for flash memory storage life
US8918609B2 (en) Storage apparatus and data management method to determine whether to migrate data from a first storage device to a second storage device based on an access frequency of a particular logical area
US8447946B2 (en) Storage apparatus and hierarchical data management method for storage apparatus
US9086807B2 (en) Storage apparatus and tier control method
US20150193154A1 (en) Data Migration Method, Data Migration Apparatus, and Storage Device
US10628088B2 (en) Computer system
JP6216897B2 (ja) ストレージシステム
US9760292B2 (en) Storage system and storage control method
US8775733B2 (en) Distribution design for fast raid rebuild architecture based on load to limit number of redundant storage devices
US9250813B2 (en) Storage system coupled to a host computer and a management device
CN109725835B (zh) 用于管理盘阵列的方法、设备和计算机程序产品
US20150242145A1 (en) Storage apparatus and method of controlling storage apparatus
US20240211390A1 (en) Machine learning-based, system-wide solid-state drive wear-level balancing algorithm to extend the service life of solid-state drives
WO2018116392A1 (ja) 情報処理システム、及び、情報処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160202

R150 Certificate of patent or registration of utility model

Ref document number: 5881900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250