JP6375886B2 - パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム - Google Patents

パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム Download PDF

Info

Publication number
JP6375886B2
JP6375886B2 JP2014232052A JP2014232052A JP6375886B2 JP 6375886 B2 JP6375886 B2 JP 6375886B2 JP 2014232052 A JP2014232052 A JP 2014232052A JP 2014232052 A JP2014232052 A JP 2014232052A JP 6375886 B2 JP6375886 B2 JP 6375886B2
Authority
JP
Japan
Prior art keywords
parity
data
local
layout
layouts
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.)
Expired - Fee Related
Application number
JP2014232052A
Other languages
English (en)
Other versions
JP2016095719A (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.)
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 JP2014232052A priority Critical patent/JP6375886B2/ja
Priority to US14/814,564 priority patent/US9690659B2/en
Publication of JP2016095719A publication Critical patent/JP2016095719A/ja
Application granted granted Critical
Publication of JP6375886B2 publication Critical patent/JP6375886B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本発明は、パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステムに関する。
従来、ストレージシステムでは、レプリケーションによってデータの信頼性および可用性を保証することができる。また、ストレージシステムでは、パリティディスクを追加することにより一定の信頼性を確保するRAID(Redundant Arrays of Inexpensive Disks)技術も使用されている。また、ストレージシステムでは、全てのデータからではなく一部のデータから計算されたローカルパリティを使って、一定の信頼性を確保する技術も使用されている。
関連する先行技術としては、例えば、複数の記憶装置のうち最も小さな容量を容量Aとするとき、複数の記憶装置のそれぞれにおける容量Aの領域を利用して一つ以上のパリティグループを構成する技術がある。また、複数ブロックのデータに記憶装置上の記憶領域を割り当てるときに、キャッシュに入れられるデータの大きさを単位として、ディスク記憶装置内の物理的な連続領域に配置するデータブロックの数を決めて、記憶領域を割り当てる技術がある。
特開平8−249132号公報 特開平8−185275号公報
しかしながら、従来技術では、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することが困難な場合がある。例えば、ローカルパリティの計算範囲の長さを可変にすると、構成可能なパリティレイアウトの数が増え、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することができない場合がある。
1つの側面では、本発明は、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することを可能とするパリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステムを提供することを目的とする。
1つの態様では、複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するパリティレイアウト決定プログラムおよびパリティレイアウト決定方法が提案される。
また、1つの態様では、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成される、複数のデータを冗長化して記憶するためのローカルパリティレイアウトに基づく記憶領域を有するストレージ装置およびストレージシステムが提案される。
1つの側面では、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することを可能とするという効果を奏する。
図1は、実施の形態にかかるパリティレイアウト決定方法の一実施例を示す説明図である。 図2は、実施の形態にかかるストレージシステム200のシステム構成例を示す説明図である。 図3は、実施の形態にかかるパリティレイアウト決定装置101のハードウェア構成例を示すブロック図である。 図4は、実施の形態にかかるパリティレイアウト400の一例を示す説明図である。 図5は、実施の形態にかかるパリティレイアウト決定装置101の機能的構成例を示すブロック図である。 図6は、実施の形態にかかるパリティレイアウト決定装置101のパリティレイアウト決定処理動作の一例を示すフローチャートである。 図7は、実施の形態にかかるパリティレイアウト決定装置101の効果を示すプロパティマップの一例を示す説明図である。
以下に、図面を参照して、本発明にかかるパリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかるパリティレイアウト決定方法の一実施例を示す説明図である。図1において、パリティレイアウト決定装置101は、パリティレイアウトを決定するコンピュータである。
ここで、パリティレイアウトとは、複数のデータを冗長化して記憶するためのレイアウトである。例えば、パリティレイアウトは、記憶領域にどのようにデータおよびパリティを記憶させるかと、パリティをどのようなデータの範囲から計算するかという、データおよびパリティの記憶領域への配置パターンである。また、計算されるパリティが、全てのデータからではなく一部のデータから計算されることを含む場合、ローカルパリティレイアウトと呼ばれる。
また、パリティレイアウトは、例えば、利用者がデータチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cを指定することにより作成できる。ここで、k、m、cは、1以上の正の整数である。データチャンクとは、データを記憶する記憶領域であり、データチャンク数とは、データを記憶する記憶領域の数である。例えば、記憶領域がディスク、例えば、HDD(Hard Disk Drive)である場合、データチャンク数はディスクの数である。パリティチャンクとは、パリティを記憶する記憶領域であり、パリティチャンク数の合計値とは、パリティを記憶する記憶領域の数である。
信頼性指数の合計値cとは、データの冗長度を示す数である。例えば、信頼性指数の合計値cである場合、k+m個の記憶領域において発生した障害の数がc以下である場合、障害が発生した記憶領域の情報が、復旧可能であることを示す。例えば、データチャンク数が4であり、パリティチャンク数の合計値が1である、RAID5では、信頼性指数の合計値は1になる。
また、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cから作成されるローカルパリティレイアウトは、SHEC(Shingled Erasure Code)(k、m、c)と呼ばれることがある。ここで、SHEC(k、m、c)の作成は、例えば、参考文献に記載されている。
(参考文献:Erasure Code with Shingled Local Parity Groups for Efficient Recovery from Multiple Disk Failures,https://www.usenix.org/conference/hotdep14/workshop−program/presentation/miyamae)
例えば、ローカルパリティレイアウトSHEC(k、m、c)は、ローカルパリティの計算範囲をお互いに部分的に重なり合うようにずらすことにより作成される。これにより、ローカルパリティレイアウトは、ローカルパリティでありながら、一定個数までの記憶領域に障害が発生した場合の復旧に対応する。また、ローカルパリティレイアウトは、障害が発生した場合、一部のデータを読み出して復旧することが可能であるため、パリティをすべてのデータから作成したパリティレイアウトより、データの効率的な復旧が可能である。以下、パリティをすべてのデータから作成したパリティレイアウトを、グローバルパリティレイアウトと呼ぶ場合がある。
しかしながら、ローカルパリティレイアウトにおいて、ローカルパリティの計算範囲を同じ長さに設定すると、グローバルパリティレイアウトより多重障害でのリカバリ効率は優れているが、単一障害時では、容量効率と信頼性が劣る場合がある。また、ローカルパリティレイアウトとグローバルパリティレイアウトとを容量効率と信頼性を同一の値に揃えた時、ローカルパリティレイアウトは、リカバリ効率でグローバルパリティレイアウトより、劣る場合がある。
ここで、容量効率とは、全体の記憶領域の中でデータを記憶する領域の割合である。例えば、容量効率は、データチャンク数kとパリティチャンク数の合計値mとから、k/(k+m)で計算することができる。また、信頼性とは、記憶される情報が復旧できない障害が発生する確率を示す。リカバリ効率とは、リカバリ時にデータを記憶する領域またはパリティを記憶する領域に記憶される情報を復旧するための平均データ量の比率を示す。リカバリ効率がよいほど、リカバリ時に転送されるデータの転送量が少なくなる。
このため、ローカルパリティレイアウトにおいて、各パリティの計算範囲の長さを可変することが考えられる。この場合、構成可能なレイアウト数が増え過ぎてしまい、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成することができない場合がある。ここで、許容時間とは、ストレージシステムを構築するために認められた時間である。
そこで、実施の形態では、パリティレイアウト決定方法は、ローカルパリティレイアウトを、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する。これにより、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないローカルパリティレイアウトを作成できる。このため、パリティレイアウト決定方法は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよいローカルパリティレイアウトを作成できる。また、組み合わせるローカルパリティレイアウトのいずれか1つが、ローカルパリティレイアウトであればよく、他のものはグローバルパリティレイアウトであってもよい。
以下、パリティレイアウト決定方法のパリティレイアウトの決定について説明する。実施の形態におけるパリティレイアウト決定方法は、例えば、ストレージ装置の制御部で実行することができる。また、パリティレイアウト決定方法は、例えば、ストレージ装置と独立したコンピュータで実行することができる。
(1)パリティレイアウト決定装置101は、ローカルパリティレイアウト121を作成する。パリティレイアウト決定装置101は、例えば、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cを指定することにより、ローカルパリティレイアウト121を作成する。
図1のローカルパリティレイアウト121は、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cとして、k=4、m=3、c=2が指定された例である。ここで、ローカルパリティレイアウト121は、記憶領域がディスク111〜117から構成され、ディスク111〜114がデータを記憶する記憶領域であり、ディスク115〜117がパリティを記憶する記憶領域であることを示す。また、図1のローカルパリティレイアウト121は、ディスク115のパリティを計算するデータの範囲がディスク111〜113であり、ディスク116のパリティを計算するデータの範囲がディスク112〜114であることを示す。また、図1のローカルパリティレイアウト121は、ディスク117のパリティを計算するデータの範囲がディスク111、113および114であることを示す。ここで、ローカルパリティレイアウト121は、データチャンク数が4であり、パリティチャンク数の合計値が3であり、信頼性指数の合計値は2であるため、SHEC(4、3、2)と呼ばれる。
ここで、ローカルパリティを計算する計算範囲の長さとは、ローカルパリティを計算する記憶領域の大きさである。例えば、記憶領域がディスクである場合、計算範囲の長さは、ディスクの数となる。図1のローカルパリティレイアウト121では、それぞれ3つのディスクからローカルパリティが計算されるため、ローカルパリティを計算する計算範囲の長さは3である。
(2)パリティレイアウト決定装置101は、ローカルパリティレイアウト121とローカルパリティを計算する計算範囲の長さが異なるローカルパリティレイアウト122を作成する。パリティレイアウト決定装置101は、例えば、ローカルパリティレイアウト121と同様にして、ローカルパリティレイアウト122を作成することができる。
図1のローカルパリティレイアウト122は、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cとして、k=4、m=1、c=1が指定された例である。ここで、ローカルパリティレイアウト122は、記憶領域がディスク111〜114、118から構成され、ディスク111〜114がデータを記憶する記憶領域であり、ディスク118がパリティを記憶する記憶領域であることを示す。また、図1のローカルパリティレイアウト122は、ディスク118のパリティを計算するデータの範囲がディスク111〜114であることを示す。図1のローカルパリティレイアウト122では、ローカルパリティレイアウト121とはローカルパリティを計算する計算範囲が異なり、ローカルパリティを計算する計算範囲の長さは4である。ここで、ローカルパリティレイアウト122は、データチャンク数が4であり、パリティチャンク数の合計値が1であり、信頼性指数の合計値は1であるため、SHEC(4、1、1)と呼ばれる。
(3)パリティレイアウト決定装置101は、ローカルパリティレイアウト121とローカルパリティレイアウト122とを組み合わせることにより、ローカルパリティレイアウト123を作成する。ローカルパリティレイアウト121とローカルパリティレイアウト122とでは、ローカルパリティの計算範囲が同じ長さでないため、パリティレイアウト決定装置101は、ローカルパリティの計算範囲が同じ長さでないローカルパリティレイアウト123を作成することができる。
また、ローカルパリティレイアウトを組み合わせたものは、組み合わせる前の信頼性指数の合計値の加算したものになるという性質を有している。このため、組み合わせることより、信頼性指数の合計値の大きいローカルパリティレイアウト123を作成することができる。
図1の例では、ローカルパリティレイアウト123は、記憶領域がディスク111〜118から構成され、ディスク111〜114がデータを記憶する記憶領域であり、ディスク115〜118がパリティを記憶する記憶領域であることを示す。また、ディスク115〜118のディスク毎のパリティを計算するデータの範囲は、ローカルパリティレイアウト121およびローカルパリティレイアウト122と同じである。
ローカルパリティレイアウト123は、ローカルパリティを計算する計算範囲の長さは、ディスク115〜117では3であり、ディスク118では4である。このように、図1の例では、ローカルパリティを計算する計算範囲の長さが、3と4の異なる長さのローカルパリティレイアウト123を作成することができる。ここで、ローカルパリティレイアウト123では、データチャンク数が4であり、パリティチャンク数の合計値が4である。また、ローカルパリティレイアウト123では、信頼性指数の合計値が、ローカルパリティレイアウト121およびローカルパリティレイアウト122の信頼性指数の合計値3である。また、ローカルパリティレイアウト123は、SHEC(4、3、2)とSHEC(4、1、1)を組み合わせたものであり、ローカルパリティの計算範囲が異なるものを組み合わせたものであるため、multipleSHEC(4、3−1、2−1)と呼ばれる。
以上説明したように、パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウト123を、ローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウト121、122を組み合わせることにより作成する。
このように、パリティレイアウト決定方法は、ローカルパリティの計算範囲の長さを固定にして作成したものを組み合わせることで、ローカルパリティの計算範囲の長さが異なるローカルパリティレイアウト123を作成できる。これにより、構成可能なレイアウト数が増え過ぎることがないため、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成できる。このため、パリティレイアウト決定方法は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよいパリティレイアウトを作成できる。パリティレイアウト決定方法が作成したパリティレイアウトは、リカバリ効率がよいため、リカバリ時のデータ転送量が少なくなり、復旧時間を短縮できる。
(ストレージシステム200の一例)
次に、図2を用いて、図1に示したパリティレイアウト決定方法を適用したストレージシステム200の一例について説明する。
図2は、実施の形態にかかるストレージシステム200のシステム構成例を示す説明図である。図2の例では、ストレージシステム200は、パリティレイアウト決定装置101と、複数の記憶領域を有するストレージ装置201と、複数のホストコンピュータ202と、を含む。ストレージシステム200は、例えば、FibreChannel、SAS、iSCSI等のインターフェースで複数のホストコンピュータ202に接続される。また、ストレージシステム200は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークを介して複数のホストコンピュータ202に接続されてもよい。
パリティレイアウト決定装置101は、パリティレイアウト決定方法を実行するコンピュータである。また、パリティレイアウト決定装置101は、ストレージシステム200全体の制御を行うストレージ制御装置と同じ装置であることもできる。
ストレージ装置201は、記憶領域として磁気ディスクドライブ(HDD)と、磁気ディスクとを有する。磁気ディスクドライブは、ストレージ制御装置の制御にしたがって磁気ディスクに対するデータのリード/ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。ストレージシステム200は、SSD(Solid State Drive)を備えてもよい。
複数のホストコンピュータ202は、ストレージ装置201にデータのリード/ライトを要求するコンピュータである。ホストコンピュータ202は、例えば、サーバやPC(Personal Computer)である。
(パリティレイアウト決定装置101のハードウェア構成例)
図3は、実施の形態にかかるパリティレイアウト決定装置101のハードウェア構成例を示すブロック図である。パリティレイアウト決定装置101は、CPU(Central Processing Unit)301と、メモリ302と、IOC(Input Output Controller)303と、I/F304と、を有する。CPU301と、メモリ302と、IOC303と、I/F304とは、バス300によってそれぞれ接続される。
ここで、CPU301は、パリティレイアウト決定装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
IOC303は、複数のホストコンピュータ202に接続され、複数のホストコンピュータ202とデータのリード/ライトの制御を行う。また、IOC303は、ストレージ装置201に接続され、ストレージ装置201とデータのリード/ライトの制御を行う。
I/F304は、通信回線を通じてネットワークに接続され、ネットワークを介して他のコンピュータに接続される。そして、I/F304は、ネットワークと内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F304には、例えば、モデムやLANアダプタなどを採用することができる。また、I/F304は、複数のホストコンピュータ202に接続され、複数のホストコンピュータ202とデータのリード/ライトの制御を行うこともできる。
パリティレイアウト決定装置101は、上述した構成部のほか、例えば、SSD、キーボード、マウス、ディスプレイなどを有することにしてもよい。
(パリティレイアウト400の一例)
図4は、実施の形態にかかるパリティレイアウト400の一例を示す説明図である。図4において、パリティレイアウト400は、例えば、パリティレイアウト決定装置101によって作成、更新され、パリティレイアウト決定装置101のメモリ302に記憶される。
図4は、データチャンク数として、k=9、パリティチャンク数の合計値として、m=5、信頼性指数の合計値として、c=4、およびレイアウトの段数として、n=2の場合に作成されるパリティレイアウト400の一例である。ここで、レイアウトの段数とは、組み合わせるパリティレイアウトの数である。図4において、データを記憶するデータ領域は、ディスク401〜ディスク409であり、パリティを記憶するパリティ領域は、ディスク410〜ディスク414である。
また、ディスク401〜ディスク414は、同じ記憶容量を有するディスクであり、以下の説明では、ディスク401〜ディスク414の記憶容量を1とすることがある。単位は、例えばTB(Tera Byte)である。
ここで、パリティレイアウト400は、レイアウトの段数nが2で、m=m1+m2とc=c1+c2を満たす(m1、c1)=(3、2)、(m2、c2)=(2、2)の組み合わせから作成されるローカルパリティレイアウトの例である。(m1、c1)=(3、2)からローカルパリティレイアウト415が作成され、(m2、c2)=(2、2)からローカルパリティレイアウト416が作成される。ローカルパリティレイアウト400は、ローカルパリティレイアウト415とローカルパリティレイアウト416を組み合わせることにより作成される。
ここで、ローカルパリティレイアウト415において、パリティの計算範囲の長さは6である。ディスク410は、ディスク401〜ディスク406のパリティを記憶し、ディスク411は、ディスク404〜ディスク409のパリティを記憶し、ディスク412は、ディスク401〜ディスク403およびディスク407〜ディスク409のパリティを記憶する。
このため、ローカルパリティレイアウト415では、信頼性の合計値が2になり、ディスク401〜ディスク409のうち2つのディスクに障害が発生した場合でも、データを復旧することができる。ローカルパリティレイアウト415は、データチャンク数が9であり、パリティチャンク数の合計値が3であり、信頼性指数の合計値が2であるため、SHEC(9、3、2)と呼ばれる。
また、ローカルパリティレイアウト416において、パリティの計算範囲の長さは9である。ディスク413は、ディスク401〜ディスク409のパリティを記憶し、ディスク414は、ディスク401〜ディスク409のパリティを記憶する。
このため、ローカルパリティレイアウト416では、信頼性の合計値が2になり、ディスク401〜ディスク409のうち2つのディスクに障害が発生した場合でも、データを復旧することができる。ローカルパリティレイアウト416は、データチャンク数が9であり、パリティチャンク数の合計値が2であり、信頼性指数の合計値が2であるため、SHEC(9、2、2)と呼ばれる。
また、ローカルパリティレイアウト400は、ローカルパリティレイアウト415とローカルパリティレイアウト416を組み合わせたものであるため、パリティの計算範囲の長さが異なる。また、ローカルパリティレイアウト400は、ローカルパリティレイアウト415とローカルパリティレイアウト416を組み合わせたものであるため、信頼性の合計値は4になる。このため、ディスク401〜ディスク409のうち4つのディスクに障害が発生した場合でも、データを復旧することができる。ローカルパリティレイアウト400は、データチャンク数が9であり、パリティチャンク数の合計値が5であり、信頼性指数の合計値が4である。また、SHEC(9、3、2)とSHEC(9、2、2)を組み合わせたものであるため、multipleSHEC(9、3−2、2−2)と呼ばれる。
(パリティレイアウト決定装置101の機能的構成例)
次に、図2に示したパリティレイアウト決定装置101の機能的構成例について説明する。図5は、実施の形態にかかるパリティレイアウト決定装置101の機能的構成例を示すブロック図である。図5においてパリティレイアウト決定装置101は、取得部501と、作成部502と、算出部503と、選択部504と、を含む構成である。取得部501と、作成部502と、算出部503と、選択部504と、を含む制御部は、具体的には、例えば、図3に示したメモリ302などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302などの記憶装置に記憶される。
取得部501は、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cおよびレイアウトの段数nを取得する機能を有する。例えば、取得部501は、パリティレイアウト決定装置101のキーボードで利用者が入力することで、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cおよびレイアウトの段数nを取得することができる。また、例えば、取得部501は、パリティレイアウト決定装置101と通信可能な端末装置からデータチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cおよびレイアウトの段数nを取得することもできる。
取得部501は、取得したデータチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cおよびレイアウトの段数nを作成部502に通知する。ここで、k、m、c、nは、1以上の正の整数である。例えば、取得部501は、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cおよびレイアウトの段数nとして、それぞれk=9、m=5、c=4、n=2を取得し、それぞれの値を作成部502に通知する。
作成部502は、取得部501から通知されたデータチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cおよびレイアウトの段数nからローカルパリティレイアウトを作成する機能を有する。また、作成部502は、作成したローカルパリティレイアウトを算出部503に通知する。
作成部502は、レイアウトの段数nに基づき、パリティチャンク数の合計値m、信頼性指数の合計値cをそれぞれn分割して、(m1、c1)、…、(mn、cn)の組み合わせをすべて抽出する。この際、作成部502は、m=Σmi、c=Σciを満たすようにn分割する。ここで、Σの和を取る範囲はi=1〜nまでであり、m1〜mnおよびc1〜cnは、1以上の正の整数である。
作成部502は、抽出した(mi、ci)(i=1〜n)の組み合わせから、n個のローカルパリティレイアウトを作成する。作成部502は、作成したn個のローカルパリティレイアウトを組み合わせたローカルパリティレイアウトを作成し、作成したローカルパリティレイアウトを算出部503に通知する。
より詳細には、作成部502は、以下のようにしてローカルパリティレイアウトを作成する。作成部502は、データチャンク数kと、パリティチャンク数の合計値と信頼性指数の合計値の(m1、c1)の組み合わせから1つのローカルパリティレイアウトSHEC(k、m1、c1)を作成する。同様にして、データチャンク数kと、パリティチャンク数の合計値と信頼性指数の合計値の(m2、c2)から1つのローカルパリティレイアウトSHEC(k、m2、c2)を作成する。作成部502は、同様の処理を(mn、cn)まで行い、n個のローカルパリティレイアウトSHEC(k、m1、c1)〜SHEC(k、mn、cn)を作成する。
作成部502は、n個のローカルパリティレイアウトSHEC(k、m1、c1)〜SHEC(k、mn、cn)を組み合わせて、1つのローカルパリティレイアウトSHEC(k、m1−・・・−mn、c1−・・・−cn)を作成する。このように、作成部502は、1つの(m1、c1)、…、(mn、cn)の組み合わせから、1つのローカルパリティレイアウトmultipleSHEC(k、m1−・・・−mn、c1−・・・−cn)を作成する。
例えば、作成部502は、取得部501からk=9、m=5、c=4、n=2が通知された場合、レイアウトの段数n=2に基づき、パリティチャンク数の合計値m、信頼性指数の合計値cをそれぞれ2分割する。具体的には、作成部502は、(m1、c1)、(m2、c2)の組み合わせとして、
(1)(1、1)、(4、3)
(2)(1、2)、(4、2)
(3)(1、3)、(4、1)
(4)(2、1)、(3、3)
(5)(2、2)、(3、2)
(6)(2、3)、(3、1)
(7)(3、1)、(2、3)
(8)(3、2)、(2、2)
(9)(3、3)、(2、1)
(10)(4、1)、(1、3)
(11)(4、2)、(1、2)
(12)(4、3)、(1、1)
の12個を抽出する。
作成部502は、例えば、(1)(1、1)、(4、3)の場合、(1、1)の組み合わせから、ローカルパリティレイアウトSHEC(9、1、1)を作成し、(4、3)の組み合わせから、ローカルパリティレイアウトSHEC(9、4、3)を作成する。作成部502は、2つのローカルパリティレイアウトSHEC(9、1、1)とローカルパリティレイアウトSHEC(9、4、3)を組み合わせて、1つのローカルパリティレイアウトmultipleSHEC(9、1−4、1−3)を作成する。
作成部502は、同様にして、以下の12個の組み合わせから、以下のそれぞれ2つのローカルパリティレイアウトを作成して、作成したローカルパリティレイアウトを組み合わせて、1つのローカルパリティレイアウトを作成する。
(1) SHEC(9、1、1)+SHEC(9、4、3)
(2) SHEC(9、1、2)+SHEC(9、4、2)
(3) SHEC(9、1、3)+SHEC(9、4、1)
(4) SHEC(9、2、1)+SHEC(9、3、3)
(5) SHEC(9、2、2)+SHEC(9、3、2)
(6) SHEC(9、2、3)+SHEC(9、3、1)
(7) SHEC(9、3、1)+SHEC(9、2、3)
(8) SHEC(9、3、2)+SHEC(9、2、2)
(9) SHEC(9、3、3)+SHEC(9、2、1)
(10)SHEC(9、4、1)+SHEC(9、1、3)
(11)SHEC(9、4、2)+SHEC(9、1、2)
(12)SHEC(9、4、3)+SHEC(9、1、1)
ここで、「+」は、ローカルパリティレイアウトを組み合わせることを意味する。
ここで、(8)のSHEC(9、3、2)は、図4のローカルパリティレイアウト415に対応し、(8)のSHEC(9、2、2)は、図4のローカルパリティレイアウト416に対応する。SHEC(9、3、2)、SHEC(9、2、2)を組み合わせたmultipleSHEC(9、3−2、2−2)は、図4のローカルパリティレイアウト400に対応する。
算出部503は、作成部502から通知されたローカルパリティレイアウトのリカバリ効率を算出する機能を有する。例えば、算出部503は、障害となったデータチャンクまたはパリティチャンクに記憶される情報を復旧するための平均データ量を算出し、算出した平均データ量をデータチャンクおよびパリティチャンクの容量で除算し、除算した結果の逆数を算出する。算出部503は、除算した結果の逆数をリカバリ効率とすることができる。ここで、平均データ量は、データチャンクまたはパリティチャンク毎に記憶される情報を復旧するためのデータ量を算出し、データチャンクおよびパリティチャンクの容量で除算したものを、加えることにより算出できる。算出部503は、ローカルパリティレイアウト毎に算出されたリカバリ効率を選択部504に通知する。
ここで、算出部503は、同じリカバリ効率が算出されるローカルパリティレイアウトのリカバリ効率を算出しないことができる。例えば、SHEC(9、1、3)+SHEC(9、4、1)とSHEC(9、4、1)+SHEC(9、1、3)のような対称なローカルパリティレイアウトでは、同じリカバリ効率が算出される。このため、算出部503は、SHEC(9、1、3)+SHEC(9、4、1)のリカバリ効率を算出後、SHEC(9、4、1)+SHEC(9、1、3)のリカバリ効率を算出しないことができる。
例えば、図4のローカルパリティレイアウト400の場合、リカバリ効率は以下のように算出される。
(1)ディスク401に記憶される情報は、例えば、ディスク402〜406およびディスク410の情報から復旧できる。このため、復旧するためのデータ量は6になる。ディスク402〜412も同様でデータ量は6になる。このように、データ量6で復旧できるディスクは12である。
(2)ディスク413に記憶される情報は、例えば、ディスク401〜409の情報から復旧できる。このため、復旧するためのデータ量は9になる。ディスク414も同様でデータ量は9になる。このように、データ量9で復旧できるディスクは2である。
(3)データチャンクおよびパリティチャンクの容量は14であるため、平均データ量は、(6/14)×12+(9/14)×2となる。
(4)データチャンクおよびパリティチャンクの容量は14であるため、リカバリ効率は、(6×12/14+9×2/14)/14の逆数となる。
選択部504は、通知されたローカルパリティレイアウト毎に算出されたリカバリ効率から、リカバリ効率が最もよいローカルパリティレイアウトを選択する機能を有する。例えば、リカバリ効率は、復旧に要するデータ量が多いほど大きくなるため、選択部504は、リカバリ効率が最小のローカルパリティレイアウトを選択する。
(パリティレイアウト決定処理動作の一例)
図6は、実施の形態にかかるパリティレイアウト決定装置101のパリティレイアウト決定処理動作の一例を示すフローチャートである。図6において、パリティレイアウト決定装置101は、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値cおよびレイアウトの段数nを取得する(ステップS601)。
パリティレイアウト決定装置101は、m=Σmi、c=Σciを満たす(m1、c1)、…、(mn、cn)の組み合わせをすべて抽出する(ステップS602)。ここで、Σの和を取る範囲はi=1〜nまでであり、m1〜mnおよびc1〜cnは、1以上の正の整数である。
パリティレイアウト決定装置101は、データチャンク数kと抽出されたそれぞれの(m1、c1)、…、(mn、cn)の組み合わせから作成されるすべてのローカルパリティレイアウトのリカバリ効率を算出する(ステップS603)。
例えば、パリティレイアウト決定装置101は、すべての(mi、ci)(i=1〜n)の組み合わせから、n個のローカルパリティレイアウトSHEC(k、m1、c1)〜SHEC(k、mn、cn)をすべて作成する。パリティレイアウト決定装置101は、n個のローカルパリティレイアウトSHEC(k、m1、c1)〜SHEC(k、mn、cn)を組み合わせることで、ローカルパリティレイアウトmultipleSHEC(k、m1−・・・−mn、c1−・・・−cn)をすべて作成する。パリティレイアウト決定装置101は、作成したすべてのローカルパリティレイアウトmultipleSHEC(k、m1−・・・−mn、c1−・・・−cn)のリカバリ効率を算出する。
パリティレイアウト決定装置101は、算出されたリカバリ効率が最もよい(m1、c1)、…、(mn、cn)の組み合わせを選択する(ステップS604)。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、パリティレイアウト決定装置101は、リカバリ効率が最もよいローカルパリティレイアウトを決定することができる。
(プロパティマップの一例)
図7は、実施の形態にかかるパリティレイアウト決定装置101の効果を示すプロパティマップの一例を示す説明図である。ここで、プロパティマップとは、容量効率c_eを横軸で、リカバリ数r_e1を縦軸で、信頼性を図形で表したもので、原点から遠ざかるところにプロットされたレイアウトほど全体的なバランスから見て性能が優れていることを示す。また、プロパティマップは、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値c、記憶領域を構成するディスクの信頼性等を入力して、容量効率c_e、リカバリ数r_e1および信頼性を計算したものである。
ここで、容量効率c_eは、全体の記憶領域の中でデータを記憶する領域の割合である。例えば、容量効率c_eは、データチャンク数kとパリティチャンク数の合計値mとから、k/(k+m)で計算することができる。容量効率c_eは、0に近いほどデータを記憶するための容量が少なく、データを記憶する効率がよくないことを示す。
また、リカバリ数r_e1とは、障害となったデータチャンクまたはパリティチャンクに記憶される情報を復旧するための平均チャンク数である。リカバリ数r_e1は大きいほど、障害となったデータチャンクまたはパリティチャンクに記憶される情報を復旧するデータ量が多く、リカバリ効率がよくないことを示す。例えば、データチャンクの1つに記憶される情報を復旧するため、6つのデータチャンクまたはパリティチャンクを使用する場合、リカバリ数r_e1は6になる。
また、信頼性は、ローカルパリティレイアウトに基づく記憶領域を有するストレージ装置に、記憶される情報が復旧できない障害が発生する確率を示す。信頼性の値が低いほど、ストレージ装置の信頼性は高くなる。例えば、1e−4とは、1年間で、記憶される情報が復旧できない障害が発生する確率は1万分の1であることを示す。信頼性は図形で表され、例えば、×で表されるローカルパリティレイアウトに基づく記憶領域を有するストレージ装置の信頼性は、1e−4である。
また、プロパティマップにおいて、信頼性を表す図形に○が付いているものは、グローバルパリティの構成であり、信頼性を表す図形に○が付いていないものは、ローカルパリティの構成である。
図7において、図7(a)は、SHECの構成であり、図7(b)は、実施の形態のmultipleSHECの構成である。図7(a)と図7(b)を比較すると、図形で○が付いていないローカルパリティの構成は、プロットの位置が全体的に上の方向に移動している。このため、実施の形態のmultipleSHECは、SHECの構成より、リカバリ数が改善していることがわかる。
以上説明したように、パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウト123を、ローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウト121、122を組み合わせることにより作成する。
このように、パリティレイアウト決定方法は、ローカルパリティの計算範囲の長さを固定にして作成したものを組み合わせることで、ローカルパリティの計算範囲の長さが異なるローカルパリティレイアウト123を作成できる。これにより、構成可能なレイアウト数が増え過ぎることがないため、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成できる。このため、パリティレイアウト決定方法は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよいパリティレイアウトを作成できる。パリティレイアウト決定方法が作成したパリティレイアウトは、リカバリ効率がよいため、リカバリ時のデータ転送量が少なくなり、復旧時間を短縮できる。
また、パリティレイアウト決定方法は、データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得することができる。パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、次の3つの条件をすべて満たす複数のローカルパリティレイアウトから作成することができる。
(1)複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得したデータ領域の数である。
(2)複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得したパリティ領域の数である。
(3)複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した信頼性指数の数である。
これにより、パリティレイアウト決定方法は、パリティチャンク数の合計値、信頼性指数の合計値を保ちながらパリティレイアウトを作成するため、パリティの計算範囲の長さを可変することに比べて、作成するパリティレイアウトの数は増大しない。このため、パリティレイアウト決定方法は、許容時間内に、リカバリ時のデータ転送量が少ないパリティレイアウトを作成できる。また、パリティレイアウト決定方法は、利用者が指定したデータ領域の数、パリティ領域の数および信頼性指数を満たすローカルパリティレイアウトを作成することができる。
また、パリティレイアウト決定方法は、ローカルパリティレイアウト毎に、データ領域およびパリティ領域の容量に対して、データ領域またはパリティ領域に記憶される情報を復旧するための平均データ量の比率を示すリカバリ効率を算出できる。パリティレイアウト決定方法は、算出したリカバリ効率が最もよいローカルパリティレイアウトを選択することができる。
これにより、パリティレイアウト決定方法は、複数のデータを冗長化して記憶するためのローカルパリティレイアウトが複数作成された場合、リカバリ効率が最もよいパリティレイアウトを選択することができる。パリティレイアウト決定方法では、パリティレイアウトの選択肢が増えているため、ローカルパリティを計算する計算範囲の長さが同じローカルパリティレイアウトを利用者に提供する場合と比べ、ほとんどのケースでリカバリ効率が向上する。また、利用者には、データチャンク数k、パリティチャンク数の合計値m、信頼性指数の合計値c等のパラメータの組み合わせ1つにつき、1つのローカルパリティレイアウトを提供する。このため、利用者に提供するローカルパリティレイアウトの総数は、ローカルパリティを計算する計算範囲の長さが同じローカルパリティレイアウトを提供する場合と等しい。従って、レイアウトの解析が複雑にならない。
また、ストレージ装置201は、複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成されるローカルパリティレイアウトに基づく記憶領域を有することができる。このため、ストレージ装置201は、容量効率と信頼性を同一の値に揃えた時、リカバリ効率がよい記憶領域を有することができる。
なお、本実施の形態で説明したパリティレイアウト決定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。パリティレイアウト決定プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、パリティレイアウト決定プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、
処理をコンピュータに実行させることを特徴とするパリティレイアウト決定プログラム。
(付記2)前記コンピュータに、
データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得する処理を実行させ、
前記作成する処理は、
前記ローカルパリティレイアウトを、
前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから作成することを特徴とする付記1に記載のパリティレイアウト決定プログラム。
(付記3)前記コンピュータに、
前記ローカルパリティレイアウトが複数作成された場合、
前記ローカルパリティレイアウト毎に、前記データ領域および前記パリティ領域の容量に対して、前記データ領域または前記パリティ領域に記憶される情報を復旧するための平均データ量の比率を示すリカバリ効率を算出し、
前記算出したリカバリ効率が最もよいローカルパリティレイアウトを選択する、
処理を実行させることを特徴とする付記2に記載のパリティレイアウト決定プログラム。
(付記4)複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、
処理をコンピュータに実行させるパリティレイアウト決定プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
(付記5)複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、
処理をコンピュータが実行することを特徴とするパリティレイアウト決定方法。
(付記6)複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成される、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトに基づく記憶領域を有することを特徴とするストレージ装置。
(付記7)複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算する計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成する、制御装置と、
前記ローカルパリティレイアウトに基づく記憶領域を有する、ストレージ装置と、
を含むことを特徴とするストレージシステム。
101 パリティレイアウト決定装置
201 ストレージ装置
202 ホストコンピュータ
501 取得部
502 作成部
503 算出部
504 選択部

Claims (5)

  1. データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
    データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するにあたり、
    前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、前記ローカルパリティレイアウトを作成する、
    処理をコンピュータに実行させることを特徴とするパリティレイアウト決定プログラム。
  2. 前記コンピュータに、
    前記ローカルパリティレイアウトが複数作成された場合、
    前記ローカルパリティレイアウト毎に、当該ローカルパリティレイアウトのデータ領域およびパリティ領域の容量に対して、前記データ領域または前記パリティ領域に記憶される情報を復旧するための平均データ量の比率を示すリカバリ効率を算出し、
    前記算出したリカバリ効率が最もよいローカルパリティレイアウトを選択する、
    処理を実行させることを特徴とする請求項1に記載のパリティレイアウト決定プログラム。
  3. データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
    データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するにあたり、
    前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、前記ローカルパリティレイアウトを作成する、
    処理をコンピュータが実行することを特徴とするパリティレイアウト決定方法。
  4. データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトであって、
    データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
    複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成され、
    前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、作成された前記ローカルパリティレイアウトに基づく記憶領域を有することを特徴とするストレージ装置。
  5. データ領域の数、パリティ領域の数およびデータの冗長度を示す信頼性指数を取得し、
    データおよびパリティの記憶領域への配置パターンであり、複数のデータのうちの全てのデータからではなく一部のデータから前記パリティが計算されることを含む、前記複数のデータを冗長化して記憶するためのローカルパリティレイアウトを、前記複数のデータのうちローカルパリティを計算するデータ領域の数である計算範囲の長さが異なる複数のローカルパリティレイアウトを組み合わせることにより作成するにあたり、
    前記複数のローカルパリティレイアウトのそれぞれのデータ領域の数が、取得した前記データ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれのパリティ領域の数の総和が、取得した前記パリティ領域の数であり、かつ、
    前記複数のローカルパリティレイアウトのそれぞれの信頼性指数の総和が、取得した前記信頼性指数の数であることを満たす前記複数のローカルパリティレイアウトから、前記ローカルパリティレイアウトを作成する、制御装置と、
    前記ローカルパリティレイアウトに基づく記憶領域を有する、ストレージ装置と、
    を含むことを特徴とするストレージシステム。
JP2014232052A 2014-11-14 2014-11-14 パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム Expired - Fee Related JP6375886B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014232052A JP6375886B2 (ja) 2014-11-14 2014-11-14 パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム
US14/814,564 US9690659B2 (en) 2014-11-14 2015-07-31 Parity-layout generating method, parity-layout generating apparatus, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014232052A JP6375886B2 (ja) 2014-11-14 2014-11-14 パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム

Publications (2)

Publication Number Publication Date
JP2016095719A JP2016095719A (ja) 2016-05-26
JP6375886B2 true JP6375886B2 (ja) 2018-08-22

Family

ID=55961781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014232052A Expired - Fee Related JP6375886B2 (ja) 2014-11-14 2014-11-14 パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム

Country Status (2)

Country Link
US (1) US9690659B2 (ja)
JP (1) JP6375886B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10365836B1 (en) * 2015-01-27 2019-07-30 Western Digital Technologies, Inc. Electronic system with declustered data protection by parity based on reliability and method of operation thereof
CN106662983B (zh) * 2015-12-31 2019-04-12 华为技术有限公司 分布式存储系统中的数据重建的方法、装置和系统
JP6470200B2 (ja) * 2016-02-16 2019-02-13 日本電信電話株式会社 FlatXOR符号の設計方法、FlatXOR符号の設計装置及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579475A (en) * 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
JP3371044B2 (ja) 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
US7346733B2 (en) * 2004-09-09 2008-03-18 Hitachi, Ltd. Storage apparatus, system and method using a plurality of object-based storage devices
JP2006178926A (ja) * 2004-10-18 2006-07-06 Hitachi Ltd 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法
TWI350526B (en) * 2005-11-21 2011-10-11 Infortrend Technology Inc Data access methods and storage subsystems thereof
US8156405B1 (en) * 2007-12-07 2012-04-10 Emc Corporation Efficient redundant memory unit array
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8959390B2 (en) * 2012-11-12 2015-02-17 Facebook, Inc. Directory-level RAID
US9495246B2 (en) * 2013-01-21 2016-11-15 Kaminario Technologies Ltd. Raid erasure code applied to partitioned stripe

Also Published As

Publication number Publication date
JP2016095719A (ja) 2016-05-26
US20160139991A1 (en) 2016-05-19
US9690659B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
CN107526531B (zh) 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备
US10387248B2 (en) Allocating data for storage by utilizing a location-based hierarchy in a dispersed storage network
US10210045B1 (en) Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system
JP5923964B2 (ja) ディスクアレイ装置、制御装置、およびプログラム
US9251154B2 (en) Priority based reliability mechanism for archived data
US9996283B2 (en) Handling storage unit latency in a dispersed storage network
US8433685B2 (en) Method and system for parity-page distribution among nodes of a multi-node data-storage system
US9690657B2 (en) Writing data across storage devices in an erasure-coded system
CN109213619B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US20170034271A1 (en) Reallocating storage in a dispersed storage network
CN109725830B (zh) 管理独立磁盘冗余阵列的方法、设备和存储介质
US10048999B2 (en) Method and apparatus for optimizing recovery of single-disk failure
US11218174B2 (en) Method and system for storing data locally repairable and efficient multiple encoding
US8484506B2 (en) Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality
CN107203442B (zh) 独立磁盘冗余阵列的重建性能的评估方法和设备
WO2016082156A1 (zh) 元数据的恢复方法及装置
JP2021503115A (ja) Raidのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラムおよびコンピュータ・システム
US9569307B2 (en) Mitigating the impact of a single point of failure in an object store
JP6375886B2 (ja) パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム
US9400620B2 (en) Storage system
US11561859B2 (en) Method, device and computer program product for managing data
JP2013050836A (ja) ストレージシステムとデータ・インテグリティのチェック方法並びにプログラム
CN104102558A (zh) 一种基于纠删码的文件追加方法
US11157362B2 (en) Elastic storage in a dispersed storage network
WO2023082629A1 (zh) 数据存储方法及装置、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180614

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180709

R150 Certificate of patent or registration of utility model

Ref document number: 6375886

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees