WO2018131127A1 - ストレージ装置及び分散ストレージシステム - Google Patents

ストレージ装置及び分散ストレージシステム Download PDF

Info

Publication number
WO2018131127A1
WO2018131127A1 PCT/JP2017/000883 JP2017000883W WO2018131127A1 WO 2018131127 A1 WO2018131127 A1 WO 2018131127A1 JP 2017000883 W JP2017000883 W JP 2017000883W WO 2018131127 A1 WO2018131127 A1 WO 2018131127A1
Authority
WO
WIPO (PCT)
Prior art keywords
capacity
raid group
storage
group
raid
Prior art date
Application number
PCT/JP2017/000883
Other languages
English (en)
French (fr)
Inventor
鎮平 野村
昌弘 鶴谷
彬史 鈴木
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2017/000883 priority Critical patent/WO2018131127A1/ja
Priority to US16/325,286 priority patent/US10768838B2/en
Publication of WO2018131127A1 publication Critical patent/WO2018131127A1/ja

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Definitions

  • Patent Document 1 describes a technique for providing a logical capacity larger than the physical capacity of a semiconductor storage medium included in the SSD by compressing data stored in the SSD and reducing the capacity of the semiconductor storage medium used. ing.
  • the nonvolatile semiconductor memory that is an SSD storage medium. That is, the SSD has a lifetime. For example, when the number of times of rewriting with respect to the nonvolatile semiconductor memory exceeds a predetermined upper limit number, data reading / writing with respect to the nonvolatile semiconductor memory cannot be performed normally. In addition, the non-volatile semiconductor memory has a large variation in quality due to progress in miniaturization. Therefore, some nonvolatile semiconductor memories inside the SSD may not be usable.
  • FIG. 1 shows a configuration diagram of a storage apparatus 101 according to the first embodiment of the present invention.
  • the storage apparatus 101 includes a storage controller 201 and a plurality of storage devices 401 connected to the storage controller 201 as shown in FIG.
  • One or more hosts (host computers) 102 are connected to the storage apparatus 101.
  • a management terminal 104 is connected to the storage apparatus 101.
  • the switch 206 connects the CPU 202, the memory 203, the host I / F 204, the device I / F 205, and the management I / F 207 in the storage controller 201 to each other. Ting.
  • a set of data blocks used for generating a parity block and redundant data stored in the parity block (for example, element 802 in FIG. 3) is referred to as a “RAID stripe”.
  • FIG. 6 is a diagram illustrating a configuration example of the address space of the storage device 401.
  • a logical address space 601 and a physical address space 701 exist for the storage device 401.
  • the logical address space 601 is a unique address space provided to the host device such as the storage controller 201 by the storage device 401, and is an address space for identifying a logical storage area.
  • the physical address space 701 is an address space for identifying a physical storage area in which actual data is stored.
  • the device controller 402 divides the logical address space 601 into logical pages 602-0 to 602-2, which are a plurality of areas having the same size as the physical page 504, for example. A certain physical page 504-0 to physical page 504-2 is allocated.
  • the storage device 401 has a data compression function and a capacity virtualization function.
  • compressed data 603-0 to compressed data 603-2 are stored in CW505-0 to CW505-3, respectively. Since the compression rate changes depending on the data pattern or the like, the size of the compressed data is not necessarily constant and has an arbitrary size. Thus, in the storage device 401 having the compression function, the number of physical pages to be used can be saved by storing data associated with a plurality of logical pages in one physical page. Furthermore, the storage device 401 has a capacity virtualization function and provides a logical space larger than the physical space to the outside. For example, the logical address space has a larger number of logical pages than the number of physical pages, and the logical address space 601 is expanded until the physical address space 701 is filled with compressed data. That is, when all the physical address spaces are stored with the data having the maximum compression rate, the maximum logical address space can be provided to the outside.
  • each RAID group 804 can be managed as an independent logical address space using a plurality of logical address spaces 601 provided by the storage device 401.
  • FIG. 7 shows an example in which each storage device provides an independent logical address space to each RAID group in the RAID configuration shown in FIG.
  • storage devices 401-4 to 401-9 have 1 TB logical address space 601-40 to 601-90 in RAID group 804-1 and 1 TB logical address space 601-41 in RAID group 804-2. 601-71 are provided.
  • the storage devices 401-4 to 401-7 that belong to the RAID group 804-1 (first subgroup) and also belong to the RAID group 804-2 (second subgroup) Logical address spaces 601-40 to 601-70 and logical address spaces 601-41 to 601-71 which are independent logical address spaces are provided.
  • the size of the logical address space is actually different from the logical capacity 750 GB allocated to each RAID group, but it is not necessary to allocate the actual page 504 to all the logical pages 602 constituting the logical address space. There is no problem even if the logical address space is enlarged unless data with a size exceeding 1 is written.
  • This logical capacity is managed by a storage device management table 1301 described later.
  • FIG. 10 is a diagram for explaining the configuration of the pool management table.
  • the pool is managed by a pool management table 1101.
  • the pool management table 1101 has columns of pool # 1102, RG # 1103, chunk # 1104, RG LBA 1105, status 1106, and pool remaining capacity 1107.
  • each record is for storing information about the chunk 803.
  • RG # 1103 of each record represents the RAID group number of the RAID group 804 to which the chunk 803 belongs
  • pool # 1101 represents the pool number of the pool 901 to which the chunk 803 belongs. Further, it can be said that the pool # 1101 represents the pool number to which the RAID group 804 specified by the RG # 1103 belongs.
  • FIG. 11 is a diagram for explaining the configuration of a RAID group management table.
  • the RAID group 804 is managed by a RAID group management table 1201.
  • the RAID group management table 1201 includes RG # 1202, RAID configuration # 1203, RAID level 1204, RAID configuration 1205, stripe block size 1206, device # 1207, allocated LBA range 1208, allocated capacity 1209, RG total capacity 1210, RG It has columns of remaining capacity 1211 and RG creation allowable group # 1212.
  • the RAID group management table 1201 is also used in the second embodiment related to the distributed storage system to be described later. At this time, the device # 1207 becomes the node # 1207.
  • the free physical capacity 1308 is the physical capacity of the relevant storage device 401 to which valid data is not written, and the used logical capacity is subtracted from the total usable capacity of all the NVM chips 501 mounted on the relevant storage device 401. Calculated.
  • the RG creation permissible group # 1309 indicates the identifier of the RG creation permissible device group 805 to which the corresponding storage device 401 belongs. As will be described later, in the distributed storage system 301 of the second embodiment, the RG creation permission group # 1309 stores the identifier of the RG creation permission node group 806.
  • the storage controller 201 reflects the reduction information notified from the storage device 401-9 in the storage device management table 1301. For example, when the logical capacity is reduced, in the record in which the device # 1302 of the storage device management table 1301 indicates the identifier of the storage device 401-9, the value is reduced from the values of the free logical capacity 1305 and the RG unallocated logical capacity 1306. Subtracted by the specified logical capacity. At this time, priority may be subtracted from the RG unallocated logical capacity 1306. On the other hand, when the physical capacity is reduced, the reduced physical capacity is subtracted from the value of the free physical capacity 1308 for the selected record.
  • the released capacity value is subtracted from the RG remaining capacity 1211, and the released capacity value is evenly allocated to each device, so that the device # 1302 of the storage device management table 1301 becomes the storage device 401. Is added to the value of the RG unallocated logical capacity 1306.
  • the capacity to be released is, for example, (1) a capacity in which the RG unallocated logical capacity of the storage device 401-9 that has notified the reduction information becomes 0 or more after performing this process, or (2) the RG remaining capacity 1211 The capacity of which the value is 0 may be smaller.
  • FIG. 15 shows that the storage controller 201 receives the information on the reduction of the logical capacity provided by the storage device 401-9 from the storage device 401-9 belonging to the RG creation allowable storage device group 805-1, and the storage controller 201 replenishes the above-mentioned RG unallocated capacity.
  • a change in the configuration of the RAID group 804 in the RG creation allowable storage device group 805-1 when the process is executed is shown.
  • the storage controller 201 moves from the RG unallocated logical capacity of the storage devices 401-4 to 401-9 included in the RG creation allowable device group 805-1 to the RAID group 804 of the RAID configuration of the processing target priority. It is determined whether or not a storage area to be added can be secured.
  • processing 1705 When processing 1705 is completed, the processing returns to processing 1704.
  • the storage controller 201 When the storage controller 201 receives increase information indicating that the logical capacity has increased from the device controller 402 of the storage device 401 as a logical capacity change notification, the above-described RG unallocated capacity distribution process (FIG. 16) is executed.
  • a RAID group is reconfigured.
  • the logical capacity of the storage device 401 increases due to data compression, the logical capacity that is not allocated to any RAID group increases, so that the unallocated capacity is also converted into the RAID group by the RG unallocated capacity distribution process.
  • the logical capacity of the RAID group can be increased. That is, the RG unallocated capacity supplement process (FIG. 14) can be omitted.
  • the distributed storage system 301 has a plurality of nodes 302. Each node 302 is interconnected via the SAN 103 and the management NW 105. One or more hosts (host computers) 102 are connected to the distributed storage system 301. A management terminal 104 is connected to the distributed storage system 301.
  • the node 302 and the host 102 are connected via the SAN 309.
  • the SAN 309 is formed by, for example, an Ethernet device.
  • the node 302 and the management terminal 104 are connected via the management NW 310.
  • the management NW 310 is formed by, for example, Ethernet.
  • the RG configuration priority management table 1501 has a higher priority than the RG creation permissible node group 806, so that the 5D1P 6 storage node configuration in RAID5 and the 3D1P 4 node configuration in RAID5 are used. Assume that a RAID configuration is set.

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

不揮発性半導体メモリの論理容量が増加した場合に、RAIDグループに割り当てられているが未使用である論理容量を解放した後に、解放された論理容量及び増加した論理容量を含むようにRAIDグループを再構成する。不揮発性半導体メモリの論理容量が削減された場合に、削減された論理容量をRAIDグループから解放した後に、解放された論理容量でRAIDグループを再構成する。

Description

ストレージ装置及び分散ストレージシステム
 情報処理システム、ストレージ装置及び記憶デバイスに関する。
 NAND型フラッシュメモリを記憶媒体として用いたSSD(Solid State Drive)の普及に伴い、ストレージシステム内の記憶媒体としてHDD(Hard Disk Drive)に代わりSSDの利用が進んでいる。SSDはHDDと比較して高速にアクセスすることができ、ストレージ装置の記憶デバイスとして搭載することで、ストレージ装置を高速化できる。さらに、ReRAM(Resistance Random Access Memory)やPRAM(Phase Change Random Access Memory)等の、フラッシュメモリよりも高速にアクセス可能な不揮発半導体メモリを備えたSSDの実用化に向けた開発が行われている。
 一方で、SSDはHDDより容量当たりの価格が高い。そのため、SSDを用いる場合は、データ圧縮及び重複排除といった格納データの容量を削減する技術が重要である。例えば、特許文献1には、SSDが格納するデータを圧縮し、使用する半導体記憶媒体の容量を削減することで、SSDが有する半導体記憶媒体の物理容量より大きな論理容量を提供する技術が記載されている。
 また、SSDの記憶媒体である不揮発性半導体メモリの書き換え回数には一定の制限がある。すなわちSSDには寿命がある。例えば、不揮発性半導体メモリに対する書き換え回数が所定の上限数を超えると、その不揮発性半導体メモリに対するデータの読み書きを正常に行うことができない。また、加工の微細化が進んだことにより不揮発性半導体メモリの品質のばらつきが大きくなっている。そのため、SSD内部の一部の不揮発性半導体メモリが使用できなくなる場合がある。
 例えば、特許文献2には不揮発性半導体メモリの一部が故障で使用できなくなった場合に、SSDが提供する論理容量を削減し、機能を維持する技術が記載されている。
WO2015/008375A1 WO2014/196000A1
 ストレージ装置は、システムの高信頼化のためにRAID(Redundant Array of Independent(or IneXpensive)Disks)という技術を用いる。RAIDでは、複数台の記憶デバイスから記憶領域を予約して、グループ(以下、RAIDグループと記す)として管理する。そして、ライトデータからパリティと呼ばれる冗長データを作成し、ライトデータとそれより作成されたパリティのセット(以下、RAIDストライプと記す)をそれぞれRAIDグループ内の異なる記憶デバイスに格納する。これにより記憶デバイスで障害が発生したときに、RAIDグループに含まれる他の記憶デバイスに格納したデータとパリティから、障害が発生した記憶デバイス内に格納されていたデータを復元可能とする。
 一方、ストレージ装置に上述のように論理記憶容量が変動する記憶デバイスを用いた場合、その変動に適切に対応することが望ましい。また、複数の記憶デバイスを有する複数のノードにより構成される分散ストレージシステムにおいても同様の課題がある。
 本発明の一つの実施形態にかかるストレージ装置は、複数の記憶デバイスと、ホスト計算機に接続され、前記ホスト計算機に前記複数の記憶デバイスを仮想ボリュームとして提供するストレージコントローラと、を備える。前記複数の記憶デバイスの夫々は、複数の不揮発性半導体メモリと、前記複数の不揮発性半導体メモリに関連付けられた論理記憶領域を前記ストレージコントローラに提供するデバイスコントローラと、を含む。前記ストレージコントローラは、前記複数の記憶デバイスを複数のデバイスグループに分けて管理し、前記複数のデバイスグループの中の第1デバイスグループ内の複数の記憶デバイスを含む第1サブグループを使用して第1RAIDグループを構成し、かつ、前記第1デバイスグループ内の複数の記憶デバイスを含む第2サブグループを使用して第2RAIDグループを構成し、前記第1サブグループに属する複数の記憶デバイスのうちの全部または一部の記憶デバイスが、前記第2サブグループにも属していて、前記デバイスコントローラは、前記複数の不揮発性半導体メモリの使用可能な論理容量が増加したことを示す増加情報を前記ストレージコントローラへ送信する。前記ストレージコントローラは、前記第1デバイスグループの記憶デバイスである第1記憶デバイスから前記増加情報を受信したとき、前記第1記憶デバイスの増加した論理容量をRAIDグループに割り当てられていない論理容量である未割当容量に加算し、かつ、前記第1RAIDグループでデータが書き込まれていない論理容量である第1未使用容量と前記第2RAIDグループでデータが書き込まれていない論理容量である第2未使用容量とを、それぞれ前記第1RAIDグループまたは前記第2RAIDグループから解放し、解放された論理容量を前記未割当容量に加算した後、前記未割当容量の一部または全部が前記第1RAIDグループまたは前記第2RAIDグループに割り当てられるように、前記第1RAIDグループ及び前記第2RAIDグループを再構成する。
本発明が適用されるストレージ装置の構成図 記憶デバイスの構成図 ストレージ装置のRAID構成例1 ストレージ装置でのRAID構成例2 論理ボリュームの構成図 記憶デバイス401のアドレス空間の構成例を示す図 各記憶デバイスが各RAIDグループに独立した論理アドレス空間を示す図 ストレージ装置の管理情報の説明図 仮想ボリューム管理テ-ブルの説明図 プ-ル管理テ-ブルの説明図 RAIDグループ管理テ-ブルの説明図 記憶デバイス管理テ-ブルの説明図 RG構成優先度管理テ-ブルの説明図 RG未割当容量補充処理のフローチャート RG未割当容量補充処理後のストレージ装置のRAID構成例 RG未割当容量分配処理のフローチャート RG未割当容量分配処理後のストレージ装置のRAID構成例 本発明が適用される分散ストレージシステムの構成図 分散ストレージシステムでのRAID構成例 分散ストレージシステムの管理情報の説明図 ノード容量管理テ-ブルの説明図 RG未割当容量補充処理後の分散ストレージシステムのRAID構成例 RG未割当容量分配処理後の分散ストレージシステムのRAID構成例
 以下、本発明の実施形態について、図面を用いて説明する。なお、これらの実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではない。
 本発明の一つの実施形態では、不揮発性半導体メモリの論理容量が増加した場合に、RAIDグループに割り当てられているが未使用である論理容量を解放した後に、解放された論理容量及び増加した論理容量を含むようにRAIDグループを再構成する。他の実施形態では、不揮発性半導体メモリの論理容量が削減された場合に、削減された論理容量をRAIDグループから解放した後に、解放された論理容量でRAIDグループを再構成する。
 図1は、本発明の第1の実施形態に係るストレージ装置101の構成図を示す。
 ストレージ装置101は、同図に示すように、ストレージコントローラ201と、ストレージコントローラ201に接続された複数の記憶デバイス401とを有する。ストレージ装置101には、1以上のホスト(ホスト計算機)102が接続される。またストレージ装置101には、管理端末104が接続される。
 ストレージコントローラ201は、CPU202、メモリ203、ホストI/F(ホストインタフェース)204、デバイスI/F(デバイスインタフェース)205及び管理用I/F(管理用インタフェース)207を備える。そして、CPU202、メモリ203、ホストI/F204、デバイスI/F205及び管理用I/F207はスイッチ206を介して相互接続される。
 図1では、これらの構成要素がそれぞれ一つだけ示されているが、高性能化及び高可用性の確保のため、これらの構成要素のそれぞれがストレージコントローラ201内に複数搭載されていてもよい。またスイッチ206ではなく、共通バスを介して各構成要素が相互接続された構成にしてもよい。
 デバイスI/F205は、少なくとも、インタフェースコントローラと転送回路を有する。インタフェースコントローラは、記憶デバイス401が用いているプロトコル(一例ではSAS)をストレージコントローラ201内部で用いられている通信プロトコル(一例としてPCI-EXpress)に変換するためのコンポ-ネントである。転送回路は、ストレージコントローラ201が、記憶デバイス401に対してデータの転送(リ-ド、ライト)を行う際に用いられる。
 ホストI/F204は、デバイスI/F205と同様に、少なくともインタフェースコントローラと転送回路を有する。ホストI/F204が有するインタフェースコントローラは、ホスト102とストレージコントローラ201との間のデータ転送経路で用いられている通信プロトコル(たとえばファイバチャネル)と、ストレージコントローラ201内部で用いられている通信プロトコルとを相互に変換するためのものである。
 CPU202は、ストレージ装置101の各種制御を行う。メモリ203は、CPU202が実行するプログラム、及びCPU202が使用するストレージ装置101の各種管理情報を記憶するために用いられる。またメモリ203は、記憶デバイス401に対するI/O対象データを一時的に記憶するためにも用いられる。メモリ203はDRAM、SRAM等の揮発性記憶媒体で構成されるが、別の実施形態として、不揮発性メモリを用いてメモリ203を構成してもよい。
 スイッチ206は、ストレージコントローラ201内のCPU202、メモリ203、ホストI/F204、デバイスI/F205及び管理用I/F207を互いに接続し、各部位間で交換されるデータをアドレスやIDにしたがってル-ティングする。
 ストレージ装置101とホスト102とは、SAN(Storage Area Network)103を介して接続される。SAN103は、例えばファイバチャネルの規格に従う機器によって形成される。
 ストレージ装置101と管理端末104とは、管理用NW105介して接続される。管理用NW105は、例えばイ-サネット(登録商標)によって形成される。
 尚、SAN103及び管理用NW103は、同一のネットワークとして構成してもかまわない。例えば、イ-サネットで形成されたネットワークにストレージ装置101とホスト102と管理端末104とが接続されても良い。
 ホスト102は、例えばプロセッサ、メモリ、入出力装置及びホストバスアダプタといったハ-ドウェア資源と、デバイスドライバ、オペレ-ティングシステム(OS)及びアプリケ-ションプログラムといったソフトウェア資源とを備えている。ホスト102では、プロセッサがメモリ上のプログラムにしたがってコマンド(例えばリ-ドコマンドやライトコマンド)を生成し、SAN103を介してストレージ装置101へ送信する。
 管理端末104は、ストレージ装置101の管理操作を行うための計算機である。管理端末104は、キーボード及びディスプレイ等の入出力装置を備え、管理者は入出力装置を用いてストレージ装置101に対する設定の指示を行うことができる。また管理端末104は、ストレージ装置101の状態等の情報をディスプレイ等の出力装置に表示することもできる。尚、管理端末104はストレージ装置101に内蔵されていても良い。
 以上が本実施形態の一つであるストレージ装置の説明である。
 図2には、記憶媒体としてNVM(Non Volatile Memory)を用いた記憶デバイス401の構成例を示す。
 記憶デバイス401は、ホスト102などの外部装置からのライトデータを格納するために使用される。記憶デバイス401は一例として、SAS(Serial Attached SCSI)規格に従う伝送線(SASリンク)や、PCI(Peripheral Component InterConnect)規格に従う伝送線(PCIリンク)などによって、ストレージコントローラ201と接続される。
 記憶デバイス401は、記憶デバイスコントローラ402と複数のNVMチップ501から構成される。記憶デバイスコントローラ402は、CPU405、デバイスI/F406、NVMI/F(NVMインタフェース)407、メモリ404を有し、これらはスイッチ403を介して相互接続されている。
 デバイスI/F406は、記憶デバイス401とストレージコントローラ201など上位装置との間の通信を行うためのインタフェースコントローラである。デバイスI/F406は、伝送線(SASリンクや、PCIリンク)を介して、ストレージコントローラ201など上位装置のデバイスI/F205に接続される。
 NVMI/F407は、記憶デバイスコントローラ402とNVMチップ501との間の通信を行うためのインタフェースコントローラである。またNVMI/F407は、ECC(Error Correcting Code)の生成、ECCを用いたエラー検出及びエラー訂正を行う機能を有してもよい。なおECCの一例として、BCH符号やLDPC (Low Density Parity Check)符号などが用いても良い。
 CPU405は、記憶デバイスコントローラ402から受領する各種コマンドに係る処理等を行う。メモリ404は、CPU405が実行するプログラムや、各種管理情報が記憶される。またメモリ404の一部の領域は、ストレージコントローラ201からライトコマンドと共に送信されてくるライトデータまたはNVMチップ501から読み出されたデータを一次的に格納するためのバッファとしても用いられる。メモリ404には、DRAM等の揮発性メモリが用いられる。ただしメモリ404に不揮発性メモリが使用されても良い。
 NVMチップ501は、例えば、NAND型フラッシュメモリ等の不揮発性半導体メモリチップである。NAND型フラッシュメモリ等の不揮発性半導体メモリチップでは、ページ504の単位でデータの読み出し及び書き込みが行われる。またデータ消去は、ページ504の集合であるブロック503の単位で行われる。そして一度書き込みが行われたページ504は上書きが出来ず、一度書き込みが行われたページ504に対して再度書き込みを行うためには、当該ページ504を含むブロック503全体を消去する必要がある。NVMチップ501内には、ブロック503の集合体であるダイ502が複数個存在しており、さらにブロック503には複数のページ504が存在している。各ページ504のサイズは等しく、たとえば8KBである。
 次に、RAIDグループ(RG)内の記憶領域について、図3を用いて説明する。ストレージ装置101は、複数の記憶デバイス401の記憶領域を一つのRAIDグループとして管理する。そしてRAIDグループ内で一つ(あるいは2つ)の記憶デバイス401に障害が発生してデータクセスできなくなった場合に、残りの記憶デバイス401内のデータを用いて、障害が発生した記憶デバイス401に格納されていたデータを復旧できるようにしている。
 図3において、記憶デバイス401-0~記憶デバイス401-3はそれぞれ、記憶デバイス401が提供している論理アドレス空間(LBA空間)を表している。論理アドレスで管理される記憶領域が論理記憶領域である。記憶デバイス401-0~記憶デバイス401-3の上端が、論理アドレス空間の先頭アドレス(LBA=0)を表し、下端が論理アドレス空間の終端である。ストレージコントローラ201は、複数(図3の例では4つ)の記憶デバイス401から一つのRAIDグループ804を構成し、RAIDグループ804に所属する各記憶デバイス401の論理アドレス空間(記憶デバイス401-0~記憶デバイス401-3)を、ストライプブロック801と呼ぶ複数の固定サイズの記憶領域に分割して管理している。
 また図3では、RAIDグループ804のRAIDレベル(RAID技術におけるデータ冗長化方式を表すもので、一般的にはRAID0~RAID6のRAIDレベルがある)がRAID5である場合の例を表している。図3において、RAIDグループ804内の、「0」、「1」、「P」などのボックスがストライプブロック801を表しており、ストライプブロック801のサイズは例えば、64KB、256KB、512KBなどである。また、各ストライプブロック801に付されている、「1」等の番号のことを、「ストライプブロック番号」と呼ぶ。
 図3で、ストライプブロック801のうち、「P」と記載されているストライプブロック801は、冗長データ(パリティ)が格納されるストライプブロック801であり、以降これを「パリティブロック」と呼ぶ。一方、数字(0、1等)が記載されているストライプブロック801は、ホスト102などから書き込まれるデータ(冗長データではないデータ)が格納されるストライプブロック801である。以降ストライプブロック801のことは、「データブロック」と呼ぶ。パリティブロックには、複数のデータブロックを用いて生成される冗長データが格納される。
 以下、パリティブロックと当該パリティブロックに格納される冗長データを生成するために用いられるデータブロックのセット(たとえば図3中の要素802)のことを、「RAIDストライプ」と呼ぶ。
 図3のRAIDグループ804-0では、一つのRAIDストライプ802が3つのデータブロックと一つのパリティブロックから構成されており、このようなRAIDグループを3D1P(3Data+1Parity)構成と呼ぶ。本実施形態に係るストレージ装置101の場合、図3に示されているRAIDストライプのように、一つのRAIDストライプ802に属する各ストライプブロック801は、記憶デバイス401-0~記憶デバイス401-3上の同じ位置(アドレス)に存在するという規則で、RAIDストライプ802が構成される。
 さらにストレージコントローラ201は、RAIDグループ804内に連続配置される複数のRAIDストライプ802を「チャンク」と呼ばれる単位で管理する。図3に示されているように、一つのチャンク803は、複数のRAIDストライプ802を有する。ただし一つのチャンク803が一つのRAIDストライプ802のみを有する構成でもよい。
 各チャンク803には、RAIDグループ内で一意な識別番号が付され、この識別番号はチャンク番号と呼ばれる。RAIDグループの先頭のRAIDストライプ802(記憶デバイス401-0~記憶デバイス401-3の先頭にあるストライプブロック801から構成されるRAIDストライプ)を含むチャンク803のチャンク番号を0とし、それ以降に位置する各チャンク803には、連続した整数値が付される。
 各チャンク803は上で述べたとおり、RAIDグループ804内に規則的に配置されているため、チャンク番号から、そのチャンク803に属する記憶デバイス401のLBA空間上のアドレスは、比較的単純な計算で求められる。逆に記憶デバイス401のLBA空間上のアドレスから、そのアドレスが属するチャンクのチャンク番号も計算で求められる。尚、本発明の実施形態はチャンク803、RAIDストライプ802及びストライプブロック801が規則的にマッピングされる形態に限定されない。例えば、マッピングテ-ブルによりチャンク803、RAIDストライプ802及びストライプブロック801のマッピングを管理しても良い。
 また本実施形態に関わるストレージ装置101では、RAIDグループを構成する記憶デバイス401の組み合わせを限定するために、ストレージコントローラ201が複数のRG作成許容デバイスグループ805を構成する。異なるRG作成許容デバイスグループ805に属する複数の記憶デバイス401間でのRAIDグループの作成が禁止される。
 図4は、ストレージ装置101において構成されるRAIDグループを示す。ストレージ装置101では、容量の異なる記憶デバイス401-4~記憶デバイス401-9によって複数のRAIDグループが構成される。ストレージ装置101は、同じRG作成許容デバイスグループ内の複数の記憶デバイスを使用してRAIDグループが構成される。例えば、ストレージコントローラ201は、一つのRG作成許容デバイスグループ内の複数の記憶デバイスを含む第1サブグループを使用して第1RAIDグループを構成し、かつ、同じRG作成許容デバイスグループ内の複数の記憶デバイスを含む第2サブグループを使用して第2RAIDグループを構成してもよい。第1サブグループに属する複数の記憶デバイスのうちの全部または一部の記憶デバイスが第2サブグループに属していてもよい。図4では、記憶デバイス401-4~記憶デバイス401-9を一つのサブグループとして、記憶デバイス401-4~記憶デバイス401-9の論理アドレス空間の先頭アドレスから750GBの領域を5D1P(5Data+1Parity)構成のRAIDグループ804-1として管理し、記憶デバイス401-4~記憶デバイス401-7を別の一つのサブグループとして、記憶デバイス401-4~記憶デバイス401-7の論理アドレス空間の末尾アドレスから750GBの領域を3D1P構成のRAIDグループ804-2として管理する。また、記憶デバイス401-8の論理アドレス空間の末尾アドレス500GBの空間はRAIDグループ804に組み込まれず、RAIDグループに割り当てられていない未割当領域として扱われデータは格納されない。尚、図4では、RAIDグループ804-1とRAIDグループ804-2として管理される記憶デバイス401-4~記憶デバイス401-7の記憶領域が同一アドレス空間に連続してマッピングされているが、これを異なるアドレス空間へマッピングしても良い。例えば、記憶デバイス401-4のRAIDグループ804-1に含まれる750GBの記憶領域とRAIDグループ804-2に含まれる750GBの記憶領域を、それぞれネームスペースの異なる別のアドレス空間として管理しても良い。本実施形態では、同一の記憶デバイス401で異なるRAIDグループに含まれる複数の記憶領域は、異なる論理アドレス空間にマッピングすることとする。
 図5に、本実施形態における仮想ボリューム902とRAIDグループ804の関係を示す。本実施形態に係るストレージ装置101では、ホスト102に対して、1以上の仮想的な記憶空間(図5中の要素902)を提供する。この仮想的な記憶空間を「仮想ボリューム」と呼ぶ。仮想ボリュームの記憶空間も所定のサイズに分割した領域(図5中の要素903)ごとに管理される。この所定のサイズの領域を「仮想チャンク」と呼ぶ。仮想チャンク903は、仮想ボリューム902への記憶領域の割り当て単位である。
 一つの仮想チャンク903には一つのチャンク803が割り当てられ、ホスト102から仮想チャンク903に対するデータライトがあった時、マップされたチャンク803にデータが格納される。ただし、仮想チャンク903にチャンク803がマップされる時、チャンク803内のデータブロックのみがマップされる。そのため、仮想チャンク903のサイズは、チャンク803に含まれる全データブロックの合計サイズに等しくてよい。ストレージ装置101は、後述する仮想ボリューム管理テ-ブル1001に、仮想チャンク903とチャンク803のマッピングを記録することで、仮想チャンク903に割り当てられる記憶領域(チャンク803)を管理している。
 仮想ボリューム902が定義された直後は、仮想ボリューム902の各仮想チャンク903には、チャンク803がマップされていない。ストレージ装置101は、ホスト102から仮想チャンク902上の領域に対するライト要求を受信した時にはじめて、当該領域に対してライトされたデータの書き込まれるべきRAIDグループ804の論理アドレス空間上の記憶領域(チャンク803に含まれるデータブロック)を決定する。ここで決定されるチャンク803は、まだどの仮想チャンク903にも割り当てられていないチャンク803(未使用チャンク)のなかから一つのチャンク803が決定される。
 本実施形態に係るストレージ装置101では、仮想チャンク902に割り当て可能な記憶領域(チャンク803)を有する一または複数のRAIDグループ804は、プ-ル901という管理単位に登録される。ストレージ装置101は一以上のプ-ル901を管理可能である。ストレージ装置101が複数のプ-ル901を管理する場合、仮想チャンク903に割り当て可能な記憶領域を有する各RAIDグループ804は、複数のプ-ル901のうちいずれか一つのプ-ル901に登録される。以下、あるプ-ル901(仮にプ-ルXと呼ぶ)で管理されるRAIDグループ804(及びこのRAIDグループ804内のチャンク803)のことを、「プ-ルXに属するRAIDグループ(及びチャンク)」と呼ぶ。また、各仮想ボリューム902も複数のプ-ル901のうちいずれか一つのプ-ル901に登録される。仮想ボリューム902の仮想チャンク903にチャンク803を割り当てる時、ストレージ装置101は、あらかじめ仮想ボリューム902が登録されているプ-ル901から未使用チャンク803を一つ選択し、選択されたチャンク803を仮想チャンク903に割り当てる。
 図6は、記憶デバイス401のアドレス空間の構成例を示す図である。記憶デバイス401に関して、論理アドレス空間601と物理アドレス空間701とが存在する。論理アドレス空間601は、記憶デバイス401がストレージコントローラ201など上位装置に対して提供している一意なアドレス空間で、論理記憶領域を識別するためのアドレス空間である。一方、物理アドレス空間701は、実際のデータが格納される物理記憶領域を識別するためのアドレス空間である。デバイスコントローラ402は、論理アドレス空間601を、例えば物理ページ504と同じ大きさを持つ複数個の領域である論理ページ602-0~論理ページ602-2に分割し、それぞれの領域に物理アドレス空間である物理ページ504-0~物理ページ504-2を割り当てる。ここで、本実施形態では記憶デバイス401はデータ圧縮機能および容量仮想化機能を有している。
 デバイスコントローラ402のデータ圧縮機能により、論理ページ毎にデータが圧縮される。例えば、論理ページ602-0~論理ページ602-2のデータは圧縮データ603-0~圧縮データ603-2にそれぞれ変換される。最終的に、圧縮データはコードワード(以下、CW)の単位で物理ページに格納される。圧縮データがCWサイズ以下になった場合は、残りをゼロデータ等でパディングする。
 図中では、圧縮データ603-0~圧縮データ603-2はそれぞれCW505-0~CW505-3に格納される。データパタ-ン等によって、圧縮率が変化するため、圧縮データのサイズは一定とは限らず任意のサイズを持つ。このように、圧縮機能を有する記憶デバイス401では、一つの物理ページに複数個の論理ページに関連付けられたデータを格納することで、使用する物理ページの数を節約することができる。さらに、記憶デバイス401は容量仮想化機能を有し、物理空間よりも大きな論理空間を外部に提供する。例えば、論理アドレス空間は、物理ページ数よりも多い論理ページ数を有しており、物理アドレス空間701が圧縮データで一杯になるまで、論理アドレス空間601が拡張される。すなわち、すべての物理アドレス空間が最大圧縮率のデータで格納された時に、最大の論理アドレス空間を外部に提供することが出来る。
 デバイスコントローラ402は、論理アドレス空間601を構成するアドレス範囲(領域)と物理アドレス空間701を構成するアドレス範囲(領域)とのマッピングを、マッピングテ-ブルを使用して動的に変更することができる。また、デバイスコントローラ402は、図中に示すように複数の論理アドレス空間を作成して上位装置へ提供することが可能である。
 また、デバイスコントローラ402は、データを圧縮して使用可能な論理記憶領域が増加した場合、論理記憶領域が増加したことを示す増加情報をストレージコントローラ201へ送信してもよい。デバイスコントローラ402は、不揮発性半導体メモリの故障などにより一部の領域が使用できなくなくなると、使用可能な論理記憶領域が削減されたことを示す削減情報をストレージコントローラ201へ送信してもよい。
 記憶デバイス401が提供する複数の論理アドレス空間601を使用して、RAIDグループ804ごとの記憶領域を独立した論理アドレス空間として管理することが可能である。図7には図4に示したRAID構成において、各記憶デバイスが各RAIDグループに独立した論理アドレス空間を提供する例を示す。図7では、記憶デバイス401-4~記憶デバイス401-9がRAIDグループ804-1に1TBの論理アドレス空間601-40~601-90を、RAIDグループ804-2に1TBの論理アドレス空間601-41~601-71を提供する。つまり、RAIDグループ804-1(第1サブグループ)に属し、かつ、RAIDグループ804-2(第2サブグループ)にも属する記憶デバイス401-4~401-7が、ストレージコントローラ201に対して、互いに独立した論理アドレス空間である論理アドレス空間601-40~601-70と論理アドレス空間601-41~601-71とを提供する。論理アドレス空間のサイズは、実際それぞれのRAIDグループに割り当てられる論理容量の750GBと異なるが、論理アドレス空間を構成する全ての論理ページ602に実際のページ504を割り当てる必要はないため、実際に論理容量を超えるサイズのデータを書きこまなければ論理アドレス空間を大きくしても問題はない。この論理容量は後述の記憶デバイス管理テーブル1301により管理される。
 図8は、ストレージ装置101のメモリ203に格納される管理情報の内容を表す図である。ストレージ装置101のメモリ203には、少なくとも仮想ボリューム管理テ-ブル1001、プ-ル管理テ-ブル1101、RAIDグループ管理テーブル1201、記憶デバイス管理テ-ブル1301及びRG構成優先度管理テ-ブル1501が格納される。
 図9は、仮想ボリューム管理テ-ブルの構成を説明する図である。仮想ボリューム管理テ-ブル1001は、ストレージ装置101内に定義された各仮想ボリューム902内の仮想チャンク903と、チャンク803とのマッピング関係を管理するためのテ-ブルである。仮想ボリューム管理テ-ブル1001は仮想ボリューム#1002、プ-ル#1003、仮想ボリュームLBA1004、仮想チャンク#1005、RG#1006及びチャンク#1007のカラムを有する。仮想ボリューム管理テ-ブル1001の各行 (レコード)は、仮想ボリューム#1002及び仮想チャンク#1005により特定される仮想チャンク903に対し、RG#1006及びチャンク#1007で特定されるチャンク803がマッピングされていることを表す。なお、以降では、仮想ボリューム管理テ-ブル1001に限らず、各種情報を管理するテ-ブルの各行のことを「レコード」と呼ぶ。
 図10は、プ-ル管理テ-ブルの構成を説明する図である。プ-ルは、プ-ル管理テ-ブル1101によって管理される。プ-ル管理テ-ブル1101は、プ-ル#1102、RG#1103、チャンク#1104、RG LBA1105、ステ-タス1106及びプ-ル残容量1107のカラムを有する。プ-ル管理テ-ブル1101において、各レコードはチャンク803についての情報を格納するためのものである。各レコードのRG#1103は、チャンク803の属しているRAIDグループ804のRAIDグループ番号を表し、プ-ル#1101は、チャンク803の属しているプ-ル901のプ-ル番号を表す。さらにプ-ル#1101は、RG#1103で特定されるRAIDグループ804の属するプ-ル番号を表しているともいえる。
 また、各レコードのRG LBA1105は、チャンク803がRAIDグループ上のノードのLBAに位置づけられているかを表す情報である。ステ-タス1106は、チャンク803が仮想チャンク903に割り当てられているか否かを表す情報である。ステ-タス1106に「割当済」が格納されている場合、チャンク803が仮想チャンク903に割り当てられていることを表す。逆にステ-タス1106に「未割当」が格納されている場合、チャンク803が仮想チャンク903に割り当てられていないことを意味する。プ-ル残容量1107は、ステ-タス1106が「未割当」のチャンクの合計サイズである。ステ-タス1106はまた、プ-ルの未使用容量とも呼ばれる。
 図11は、RAIDグループ管理テ-ブルの構成を説明する図である。RAIDグループ804は、RAIDグループ管理テ-ブル1201によって管理される。RAIDグループ管理テ-ブル1201は、RG#1202、RAID構成#1203、RAIDレベル1204、RAID構成1205、ストライプブロックサイズ1206、デバイス#1207、割り当てLBA範囲1208、割り当て容量1209、RG総容量1210、RG残容量1211及びRG作成許容グループ#1212のカラムを有する。なお、RAIDグループ管理テ-ブル1201は後述する分散ストレージシステムに係る第2の実施形態でも用いられるが、その際、デバイス#1207はノード#1207となる。
 RG#1202にはRAIDグループ804のRAIDグループ番号が格納される。RAID構成#1203は、後述のRG構成優先度管理テ-ブル17の各レコードが示すRAID構成の識別子を表す。RAIDレベル1204は、RG#1202で特定されるRAIDグループ804の冗長化方式を、RAID技術に定められるRAIDレベルによって示す。RAID構成1205は当該RAIDグループ804にてRAIDストライプ802を構成するデータブロック数とパリティブロック数を示す。デバイス#1207には、当該RAIDグループが含む記憶領域を提供するコンポ-ネントの識別子を格納する。ストレージ装置101において、デバイス#1207には、当該のRAIDグループ804に属する記憶デバイス401の識別子が格納される。なお、第2実施形態の分散ストレージシステム301では、カラム1207には当該のRAIDグループ804に属するノード302の識別子(ノード#)が格納される。尚、記憶デバイス401が複数のアドレス空間を提供するとき、カラム#1207にはアドレス空間を表す識別子を合わせて格納しても良い。割り当てLBA範囲1208はデバイス#1207で特定される記憶デバイス401の、当該RAIDグループ804に割り当てる、論理アドレス空間上の領域を示す。割り当て容量1209は、当該記憶デバイス401が、当該RAIDグループ804に割り当てる、記憶領域の容量を示す。RG総容量1210は当該RAIDグループ804でデータを書き込める容量の合計値で、当該RAIDグループ804に属する記憶デバイス401の割り当て容量1209に定められる容量の合計値から、冗長データ分の容量を差し引いた値である。RG残容量1211は、当該RAIDグループ804の未使用部分の論理容量の合計値、つまりRAIDグループ804の全容量から、仮想チャンク903に割り当て済みであるチャンク803の容量を差し引いた値である。RG作成許容グループ#1212は、RG#1202で特定されるRAIDグループ804が所属するRG作成許容デバイスグループ805の識別子を示す。なお、後述するように、第2実施形態の分散ストレージシステム301では、RG作成許容グループ#1212にはRG作成許容ノードグループ806の識別子が格納される。
 図12は、記憶デバイス管理テ-ブル1301の構成を説明する図である。記憶デバイス管理テ-ブル1301は、デバイス#1302、デバイス種別1303、使用中論理容量1304、空き論理容量1305、RG未割当論理容量1306、使用中物理容量1307、空き物理容量1308、及びRG作成許容グループ#1309のカラムを有する。
 デバイス#1302は、記憶デバイス401の識別子が格納される。デバイス種別1303はディスクの種別を表しており、例えば、SSD(SLC)、SSD(MLC)、HDDなどが格納される。使用中論理容量1304は仮想チャンク903へ割り当て済みのチャンク803の占める記憶領域の容量を示す。尚、論理容量は、ストレージコントローラ201などの上位装置から書き込まれた(または今後書き込むことの出来る)データの容量を示す。一方、ストレージコントローラ201などのライトデータに圧縮などのデータ削減処理を実施して、実際にNVMチップへ書き込まれるデータの容量を物理容量と呼ぶ。空き論理容量1305は、仮想チャンク903へチャンク803として割り当てられていない記憶領域の容量を示す。尚、実際に空き論理容量1305に書き込むことの出来るデータ容量は、ライトデータが到着しデータ削減機能を適用してデータを圧縮することで決定される。そのため、空き論理容量1305の値は、一定のポリシ-(例えば、データ削減効果が最も大きかった書き込み可能データ容量など)のもとに計算される。RG未割当論理容量1306は、いずれのRAIDグループ804にも割り当てられていない記憶領域の容量を示す。使用中物理容量1307は実際にNVMチップへ書き込まれた有効なデータの容量を示す。有効なデータとは、上位装置より同一LBAへデータが上書きされておらず、またトリムなどのコマンドによるデータの無効化がされていないデータのことを示す。空き物理容量1308は有効データの書き込まれていない該当記憶デバイス401の物理容量であり、該当記憶デバイス401に搭載される全NVMチップ501の使用可能な容量の合計値から使用中論理容量を差し引いて計算される。RG作成許容グループ#1309は、該当記憶デバイス401が所属するRG作成許容デバイスグループ805の識別子を示す。なお、後述するように、第2実施形態の分散ストレージシステム301では、RG作成許容グループ#1309にはRG作成許容ノードグループ806の識別子が格納される。
 図13は、RG構成優先度管理テ-ブル1501の構成を説明する図である。RG構成優先度管理テ-ブル1501は、RAID構成#1502、RG作成許容グループ#1503、優先度1504、RAIDレベル1505、ストライプ構成1506及び構成デバイス1507のカラムを有する。
 RG構成優先度管理テ-ブル1501において、各レコードはあるRG作成許容グループ805で作成可能なRAIDグループ804のRAIDの構成についての情報を格納するためのものである。RAID構成#1502は、RG構成優先度管理テ-ブル1501の各レコードが示すRAID構成の識別子を表す。RG作成許容グループ#1503にはRG作成許容デバイスグループ805の識別子が格納される。なお、後述するように、第2実施形態の分散ストレージシステム301では、RG作成許容グループ#1503にはRG作成許容ノードグループ806の識別子が格納される。優先度1504は、当該RG作成許容デバイスグループ805で、レコードが示すRAID構成の作成優先度を示す値である。図13の例では、値0が最も低い優先度のRAID構成であることを示し、値が大きくなるにつれて高い優先度を示す。RAIDレベル1505は当該RAID構成の冗長化方式をRAID技術に定められるRAIDレベルによって示す。ストライプ構成1506は、当該RAID構成にてRAIDストライプ802を構成するデータブロック数とパリティブロック数を示す。構成デバイス数1507は、当該RAID構成にてRAIDグループ804を構成する記憶デバイス401の数を示す。第2の実施形態の分散ストレージシステム301では、カラム1507は、構成ノード数1507として当該RAID構成にてRAIDグループ804を構成するノード302の数を示す。
 次に、ストレージ装置101における記憶デバイス401の容量変更時の処理について説明する。ここでは、RG作成許容記憶デバイスグループ805-1に対して、RG構成優先度管理テ-ブル1501にて優先度が高いものから、RAID5での5D1Pの6記憶デバイス構成、及びRAID5での3D1Pの4記憶デバイス構成のRAID構成が予め設定されているものとする。
 まず、図4に示すRG作成許容記憶デバイスグループ805-1に属する記憶デバイス401-9が提供する論理容量を減少させたときの動作を説明する。ストレージコントローラ201が、論理容量の変更通知として、記憶デバイス401-9のデバイスコントローラ402から論理容量が削減されことを示す削減情報を受領すると、削減された論理容量を補うために、後述するようなRG未割当容量補充処理(図14)が実施される。RG未割当容量補充処理によりRAIDグループに割り当てられていない容量を増加させた後、RG未割当容量分配処理(図16)が実行されてRAIDグループの再構成が行われる。
 なお、論理容量が削減される原因として、例えば、NVMチップの部分的な障害などがあり得る。以下の説明では、このようなNVMチップの障害などにより有効データが失われていた場合には、論理容量変更(削減情報)の通知前にRAID技術に基づくリビルド処理によって有効データの復元が完了し、他の記憶領域に格納済みであることを前提とする。
 図14は、RG未割当容量補充処理でのストレージコントローラ201の動作を表すフローチャートを示す。ストレージコントローラ201がいずれかの記憶デバイス401から論理容量の削減を示す削減情報を受け付けると、図14の処理が起動されるようにしてもよい。
 処理1601では、ストレージコントローラ201は、記憶デバイス401-9より通知された削減情報を記憶デバイス管理テ-ブル1301に反映させる。例えば、論理容量が削減されたときは、記憶デバイス管理テ-ブル1301のデバイス#1302が記憶デバイス401-9の識別子を示すレコードにおいて、空き論理容量1305及びRG未割当論理容量1306の値から削減された論理容量だけ減算される。このとき、RG未割当論理容量1306から優先して減算するようにしてもよい。一方、物理容量が削減されたときは、選択したレコードに対して、空き物理容量1308の値から削減された物理容量が減算される。
 処理1602では、ストレージコントローラ201は、処理対象優先度を設定する。ここでは、削減情報を通知した記憶デバイス401-9が属するRG作成許容デバイスグループ805-1で作成可能なRAID構成のうち、最も低い優先度を処理対象優先度に設定する。例えば、RG構成優先度管理テ-ブル1501で、RG作成許容グループ#1503がRG作成許容デバイスグループ805-1を示す識別子であるレコードの中の優先度1504が最低の値が、処理対象優先度を表す変数Nに代入される。
 処理1603では、ストレージコントローラ202は、記憶デバイス管理テ-ブル1301において、削減情報を通知した記憶デバイス401-9のRG未割当論理容量が0未満であるか否かの判定をする。例えば、記憶デバイス管理テ-ブル1301のデバイス#1302が記憶デバイス401-9の識別子を示すレコードにおいて、RG未割当論理容量1306の値が0未満であるか否が判定される。0未満である場合には処理1604へ移行し、0以上である場合には、これ以降のすべての処理を行わず、RG未割当容量補充処理は終了する。
 尚、本実施形態では、処理1603での判定の閾値を0としているが、判定の閾値を別の値としてもよいし、ユ-ザが設定可能な値としてもかまわない。
 処理1604では、ストレージコントローラ202は、RG作成許容デバイスグループ805-1に処理対象優先度のRAID構成のRAIDグループ804が存在するか否かを確認する。例えば、RG構成優先度管理テ-ブル1501で、RG作成許容グループ#1503がRG作成許容デバイスグループ805-1を示す識別子であり、かつ優先度1504が処理対象優先度Nと一致するレコードにおけるRAID構成#1502が、処理1604での対象のRAID構成となる。次に、RAIDグループ管理テ-ブル1201でRG作成許容グループ#1212がRG作成許容デバイスグループ805-1を示す識別子であり、RAID構成#1203が処理1604の対象RAID構成を示すレコードにおいて、デバイス#1207が削減情報を通知した記憶デバイス401-9を示す識別子であるレコードがあるか否かが判定される。該当レコード有りの場合、すなわち、RG作成許容デバイスグループ805-1に処理対象優先度のRAID構成が存在する場合には、そのRG#1202を特定し、処理1605へ移行する。該当レコードなしの場合、すなわち、RG作成許容デバイスグループ805-1に処理対象優先度のRAID構成が存在しない場合には処理1606へ移行する。
 処理1605では、ストレージコントローラ201は、削減情報を通知した記憶デバイス401-9を含み処理対象優先度に該当するRAIDグループ804から、記憶デバイス401-9のRG未割当論理容量が0以上となるか、当該RAIDグループの空き容量が0となるまで、論理容量を解放する。例えば、RAIDグループ管理テ-ブル1201で、処理1604で特定されたRG#の値とRG#1202とが一致するレコードにおいて、解放する論理容量に相当する容量をRAIDグループ804のRG残容量1211から減算する。解放された容量は、選択されたレコードの示すRAIDグループ804に含まれる各記憶デバイス401のRG未割当容量に追加される。このとき、RG残容量1211からは解放された容量の値だけ減算され、解放された容量の値を各デバイスに均等に割り振って、記憶デバイス管理テ-ブル1301のデバイス#1302が当該記憶デバイス401を表すレコードの、RG未割当論理容量1306の値に加算する。解放される容量は、例えば、この処理を行った後に、(1)削減情報を通知した記憶デバイス401-9のRG未割当論理容量が0以上となる容量、または(2)RG残容量1211の値が0となる容量、のいずれか小さい方でよい。処理1605完了後、処理1606へ移行する。
 尚、本実施形態ではRAIDグループ空き領域が0となるまで論理容量を解放するが、例えば、閾値を定めてその値まで論理容量を解放するとしてもかまわない。また、例えば論理容量の解放の単位サイズを定めて、その単位サイズの倍数の論理容量を解放するとしてもかまわない。また、この論理容量の解放の単位サイズを、後述の処理1702や処理1705において適用してかまわない。
 処理1606では、ストレージコントローラ202は、削減情報を通知した記憶デバイス401-9が属するRG作成許容デバイスグループ805-1での処理対象優先度Nより優先度の高いRAID構成の有無を判定する。
 例えば、ストレージコントローラ201は、RG構成優先度管理テ-ブル1501で、RG作成許容グループ#1503がRG作成許容デバイスグループ805-1を示す識別子であり、かつ、優先度1504が処理対象優先度Nを上回るレコードの有無を判定する。該当レコードが存在する場合、処理1607へ移行する。該当レコードが存在しない場合、RG未割当容量補充処理は終了する。
 処理1607では、ストレージコントローラ202は、処理対象優先度を、削減情報を通知した記憶デバイス401-9が属するRG作成許容デバイスグループ805-1で作成可能なRAID構成の残りの優先度の中で最も低い優先度に設定する。例えば、処理1606で特定されたレコードの優先度1504の最小値が処理対象優先度を表す変数Nに代入される。
 処理1607終了後、処理1603へ戻って上述の処理が継続される。
 これにより、記憶デバイスの論理容量が削減されたとき、RAIDグループに割り当てられている論理容量から削減された論理容量に相当する容量が解放され、RAIDグループの論理容量が削減される。このとき、優先度が設定されていれば、優先度の低いRAIDグループから順に論理容量が解放される。
 図15は、RG作成許容記憶デバイスグループ805-1に属する記憶デバイス401-9から、記憶デバイス401-9が提供する論理容量の削減情報を受けて、ストレージコントローラ201が上述のRG未割当容量補充処理を実施したときのRG作成許容記憶デバイスグループ805-1内のRAIDグループ804構成の変化を示す。
 記憶デバイス401-9の論理容量が削減されて、記憶デバイス401-9のRG未割当論理容量が不足するため、ストレージコントローラ201が記憶デバイス401-9を含むRAIDグループ804-1から論理容量を既にRAIDグループに割り当てられている領域の一部を解放する。同図の例では、この論理容量の解放により、論理容量に変化がない記憶デバイス401-4~記憶デバイス401-8は、RG未割当容量が増加する。
 図16は、RG未割当容量分配処理でのストレージコントローラ201の動作を表すフローチャートを示す。RG未割当容量補充処理の終了を契機として、ストレージコントローラ201はRG未割当容量分配処理を実施してもよい。また、後述するように、ストレージコントローラ201が、記憶デバイス401の論理容量が増加したことを示す増加情報の通知を受けたときに、それを契機としてRG未割当容量分配処理が実施されてもよい。
 処理1701では、ストレージコントローラ201は、容量変更(削減情報または増加情報)を通知した記憶デバイス401-9が属するRG作成許容デバイスグループ805-1でRG未割当容量分配条件を満たすか否かを確認する。RG未割当容量分配条件は、例えばRG作成許容デバイスグループ805-1に含まれる、記憶デバイス401-4~記憶デバイス401-9のRG未割当論理容量の合計値が所定の閾値(例えば100GB)以上などである。このようなRG未割当容量分配条件の真偽は、RG構成優先度管理テ-ブル1501や記憶デバイス管理テ-ブル1301の各管理情報に基づいて判定可能である。RG未割当容量分配条件判定が真である場合、処理1702へ移行する。RG未割当容量分配条件が偽である場合、RG未割当容量分配処理を終了する。
 処理1702では、ストレージコントローラ201は、RG作成許容デバイスグループ805-1のRAIDグループでデータが書き込まれていない論理容量である未使用容量を解放し、RG未割当論理容量とする。
 例えば、ストレージコントローラ201は、RAIDグループ管理テ-ブル1201からRG作成許容グループ#1212がRG作成許容デバイスグループ805-1を示す識別子であるレコードを選択する。そして、ストレージコントローラ201は、選択した各レコードが示すRAIDグループ804の未使用容量であるRG残容量1211の一部または全部の容量を解放し、解放された容量を同じRAIDグループに含まれる各記憶デバイス401のRG未割当容量に加算する。このとき、RG残容量1211からは、解放された容量の値だけ減算される。一方、解放された容量を各デバイス数で除算した値が、記憶デバイス管理テ-ブル1301のデバイス#1302が当該記憶デバイス401を表すレコードのRG未割当論理容量1306に加算される。
 処理1703では、処理対象優先度に、RG作成許容デバイスグループ805-1での作成可能なRAID構成の最高優先度が設定される。
 例えば、ストレージコントローラ201は、RG構成優先度管理テ-ブル1501から、RG作成許容グループ#1503がRG作成許容デバイスグループ805-1を示す識別子である一以上のレコードを選択する。次に、ストレージコントローラ201は、選択された一以上のレコードのうちで優先度1504が最大の値を、処理対象優先度を表す変数Nに設定する。
 処理1704では、ストレージコントローラ201は、RG作成許容デバイスグループ805-1に含まれる記憶デバイス401-4~記憶デバイス401-9のRG未割当論理容量から処理対象優先度のRAID構成のRAIDグループ804へ追加する記憶領域を確保できるか否かを判定する。
 例えば、ストレージコントローラ201は、RG構成優先度管理テ-ブル1501から、RG作成許容グループ#1503がRG作成許容デバイスグループ805-1を示す識別子であり、かつ優先度1504が処理対象優先度Nと一致するレコードを選択する。ここで、選択されたレコードのRAID構成#1502が処理1704での対象RAID構成となる。次に、ストレージコントローラ201は、RAIDグループ管理テ-ブル1201からRG作成許容グループ#1212がRG作成許容デバイスグループ805-1を示す識別子であり、かつRAID構成1205が処理1704の対象RAID構成を示すレコードを選択する。ここで、選択されたレコードのRG#1202が処理1704での対象RAIDグループとなる。また、選択されたレコードのデバイス#1207が処理1704での対象記憶デバイスとなる。次に、ストレージコントローラ201は、記憶デバイス管理テ-ブル1301において、デバイス#1302が処理1704の対象記憶デバイスを示すレコードを特定し、そのレコードからRG未割当論理容量1306の値を取得する。処理1704の対象記憶デバイスのすべてでRG未割当論理容量1306の値が0より大きければ、処理対象優先度のRAID構成のRAIDグループ804へ追加する記憶領域が確保され得る。なお、上記のRG未割当論理容量1306の判定に用いる閾値は0でなくとも良い。
 上記の処理1704の判定結果が真であれば処理1705へ移行して、ストレージコントローラ201が、処理1704の対象RAIDグループを示すRG#1202と、処理1704の対象記憶デバイスを示すデバイス#1302とに基づき、既存RAIDグループへの容量追加を行う。処理1704の判定が偽であった場合、処理1706へ移行する。尚、このとき対象記憶デバイスについて、対象RAIDグループに割り当てる論理容量が、対象RAIDグループに提供する論理アドレス空間601のサイズを上回る場合、論理アドレス空間601のサイズを論理容量以上に拡張してもよい。
 上述の処理1704において、処理1704の対象RAIDグループが存在しなかった場合、ストレージコントローラ201は、処理1704の対象RAID構成の新規RAIDグループが作成可能か否かを判定するようにしても良い。このとき、ストレージコントローラ201は、RG作成許容デバイスグループ805-1に含まれる記憶デバイス401-4~記憶デバイス401-9のRG未割当論理容量から、処理1704の対象RAID構成の新規RAIDグループ804を作成するための記憶領域を確保できるか否かを判定する。
 例えば、ストレージコントローラ201は、記憶デバイス管理テ-ブル1301からRG作成許容グループ#1309がRG作成許容デバイスグループ805-1を示すレコードを選択する。次に、ストレージコントローラ201は、選択されたレコードのうちRG未割当論理容量1306の値が大きいものから順に、処理1704の対象RAID構成の構成デバイス数1507の数だけ、レコードを選択する。ここで、選択されたレコードのデバイス#1302が処理1704での対象記憶デバイスとなる。この対象記憶デバイスのすべてのRG未割当論理容量1306の値が0より大きければ、処理対象優先度のRAID構成のRAIDグループ804を追加するための記憶領域が確保され得ると判定される。尚、上記のRG未割当論理容量1306の判定の閾値は0でなくとも良い。この判定が真であれば処理1705へ移行して、ストレージコントローラ201が、処理1704の対象RAID構成を示すRAID構成#1203と、処理1704の対象記憶デバイスを示すデバイス#1302とに基づき、RAIDグループの新規作成を行う。上記のRG未割当論理容量1306の判定が偽であった場合、処理1706へ移行する。
 上述のように、処理1705では、既存RAIDグループへのRG未割当容量の割当て、またはRG未割当容量を使用した新規RAIDグループの作成により、RAIDグループの再構成が行われる。
 処理1705で既存RAIDグループへ割当を行う場合は、ストレージコントローラ201は、処理1704での対象記憶デバイスの中のRG未割当論理容量1306の最小値を特定し、この最小値の容量だけ、処理1704での対象記憶デバイスのそれぞれから処理1704での対象RAIDグループへ追加で割り当ててもよい。
 例えば、ストレージコントローラ201は、記憶デバイス管理テ-ブル1301から、処理1704の対象記憶デバイスデバイス#1302と一致するレコードを選択する。また、ストレージコントローラ201は、RAIDグループ管理テ-ブル1201から、処理1704の対象RAIDグループを示すRG#1202と一致するレコードを選択する。そして、ストレージコントローラ201は、RAIDグループ管理テ-ブル1201から選択したレコードのRG残容量1211へ追加で割り当てた分の容量を加算し、記憶デバイス管理テ-ブル1301から選択したレコードのRG未割当論理容量1306から割り当てた分の容量を減算する。
 一方、処理1705で新規RAIDグループを生成する場合は、ストレージコントローラ201は、処理1704での対象記憶デバイスからRG未割当論理容量1306の最小値を特定し、この最小値の容量だけ、新規に作成したRAIDグループへ割り当ててもよい。
 例えば、ストレージコントローラ201は、記憶デバイス管理テ-ブル1301から、処理1704での対象記憶デバイスのデバイス#1302と一致するレコードを選択する。また、ストレージコントローラ201は、RG構成優先度管理テ-ブル1501から、処理1704での対象RAID構成のRAID構成#1203と一致するレコードを選択する。次に、ストレージコントローラ201は、RAIDグループ管理テーブル1201に、処理1704での対象RAID構成の、処理1704での対象記憶デバイスで構成される割当容量0のRAIDグループを示す新規レコードを作成する。ここで、作成されたレコードのRG#1202が処理1704での対象RAIDグループを示す。そして、ストレージコントローラ201は、記憶デバイス管理テ-ブル1301から選択したレコードにおいてRG未割当論理容量1306の最小値を選択する。ストレージコントローラ201は、各対象記憶デバイスから、それぞれこの最小値の容量だけ、処理1704での対象RAIDグループへ記憶領域を追加で割り当てる。このとき、ストレージコントローラ201は、上記新規レコードのRG残容量1211へ割り当てた分の容量を加算し、処理1704での対象記憶デバイスのRG未割当論理容量1306から、各デバイスが割り当てた分の容量を減算する。
 処理1705が完了すると、処理1704へ戻る。
 処理1704において、RG作成許容デバイスグループ805-1に含まれる記憶デバイス401-4~記憶デバイス401-9のRG未割当論理容量から処理対象優先度のRAID構成のRAIDグループ804へ追加する記憶領域を確保できないときは、処理1706へ移行する。
 処理1706では、ストレージコントローラ202は、RG作成許容デバイスグループ805-1での処理対象優先度Nより優先度の低いRAID構成の有無を判定する。
 例えば、ストレージコントローラ202は、RG構成優先度管理テ-ブル1501から、RG作成許容グループ#1503がRG作成許容デバイスグループ805-1を示す識別子であり、かつ、優先度1504が処理対象優先度Nを下回るレコードの有無を判定する。該当レコードが存在した場合、処理1607へ移行する。該当レコードが存在しない場合、RG未割当容量分配処理は終了する。
 処理1707では、ストレージコントローラ202は、処理対象優先度を、容量変更を通知した記憶デバイス401-9が属するRG作成許容デバイスグループ805-1で作成可能なRAID構成の残りの優先度の中で最も高い優先度を設定する。例えば、処理1706で特定されたレコードの優先度1504最大値を、処理対象優先度を表す変数Nに代入してもよい。
 処理1707終了後、処理1704へ戻って上述の処理が継続される。
 これにより、記憶デバイスのRAIDグループに割り当てられていない領域を既存のRAIDグループに追加するか、または新規のRAIDグループを生成してそれに割り当てることができる。このとき、優先度が設定されていれば、優先度の高いRAIDグループから順に論理容量が割り当てられる。
 図17は、記憶デバイスからの容量変更の通知を受けてRG再構成処理を行った後の構成図である。すなわち、同図は、図4の状態にRG未割当容量処理補充処理(図14)を適用して図15の状態となり、この状態にさらに未割当容量分配処理(図16)を適用した後の記憶デバイス401-9が属するRG作成許容記憶デバイスグループ805-1内のRAIDグループ804構成を示す。記憶デバイス401-4~記憶デバイス401-7のRAIDグループへ未割当であった記憶領域がRAIDグループ804-2へ追加され、RAIDグループ804-2の容量が拡充されている。
 以上、記憶デバイス401の論理容量が削減された場合の処理について説明したが、次に記憶デバイス401の論理容量が増加した場合の処理について説明する。
 ストレージコントローラ201が、論理容量の変更通知として、記憶デバイス401のデバイスコントローラ402から論理容量が増加したことを示す増加情報を受領すると、上述のRG未割当容量分配処理(図16)が実行されてRAIDグループの再構成が行われる。データの圧縮により記憶デバイス401の論理容量が増加すると、いずれのRAIDグループにも割り当てられていない論理容量が増加していることになるので、RG未割当容量分配処理により、未割当容量もRAIDグループに取り込まれて、RAIDグループの論理容量を増加させることができる。つまり、RG未割当容量補充処理(図14)は省略可能である。
 以上が、第1の実施形態に係るストレージ装置101における記憶デバイス401の容変動時処理の説明である。尚、本実施形態で、記憶領域はRAID5での5D1Pの6記憶デバイス構成のRAIDグループ804-1と、RAID5での3D1Pの4記憶デバイス構成のRAID構成のRAIDグループ804-2として管理されるが、これらとは異なるRAID構成であってもよい。例えば、RG作成許容デバイスグループ805-1内のRAIDグループ804-1とRAIDグループ804-2を、いずれも5D1PのRAID構成として管理するため、提供する容量の小さい記憶デバイス401-8と記憶デバイス401-9に0データなどの固定データを格納し、この固定データを含んだ5D1PのRAID構成を実現してもよい。固定データは記憶デバイス401の論理アドレスと物理アドレスのマッピングで、同一物理アドレス領域に固定データの論理アドレスを重複して割り当てることで、物理容量の増加無しにデータの格納が可能である。この際、記憶デバイス401には、特殊コマンドを介して論理アドレスに固定データの割り当てを指示する。
<第2の実施形態>
 次に、本発明の第2の実施形態に係る分散ストレージシステムについて説明する。以下の説明では、第1の実施形態との相違点を中心に説明をし、第1の実施形態と同等の構成については同じ符号を付して説明を省略する場合がある。
 図18は、本実施形態に係る分散ストレージシステムの構成図を示す。
 本実施形態に係る分散ストレージシステム301は、複数のノード302を有する。各ノード302は、SAN103及び管理用NW105を介して相互接続される。分散ストレージシステム301には、1以上のホスト(ホスト計算機)102が接続される。また分散ストレージシステム301には、管理端末104が接続される。
 ノード302は、CPU303、メモリ304、ホストI/F305、デバイスI/F306、管理用I/F308及び記憶デバイス401を備える。そして、CPU303、メモリ304、ホストI/F305、デバイスI/F306及び管理用I/F308はスイッチ307を介して相互接続される。また記憶デバイス401は、デバイスI/F306に接続される。
 ノード302内のホストI/F305、デバイスI/F306、管理用I/F308及びスイッチ307は、ストレージコントローラ201のホストI/F204、デバイスI/F205、管理用I/F207及びスイッチ206とそれぞれ同等の機能を有する。
 CPU303は、メモリ304に記憶されている所定のプログラムを実行して、同一ノード302内の各構成要素及び分散ストレージシステム301を構成する他のノード302と連携して、分散ストレージシステム301全体の制御を行う。メモリ304は、CPU303が実行するプログラムや、CPU303が使用するノード302の各種管理情報及び分散ストレージシステム301全体に関する管理情報を記憶するために用いられる。またメモリ304は、記憶デバイス401に対するI/O対象データを一時的に記憶するためにも用いられる。メモリ203はDRAM、SRAM等の揮発性記憶媒体で構成されるが、別の実施形態として、不揮発性メモリを用いてメモリ203を構成してもよい。
 ノード302とホスト102とは、SAN309を介して接続される。SAN309は例えばイ-サネット機器によって形成される。
 ノード302と管理端末104とは、管理用NW310を介して接続される。管理用NW310は、例えばイ-サネットによって形成される。
 尚、SAN309及び管理用NW310は、同一のネットワークとして構成してもかまわない。例えば、イ-サネットで形成されたネットワークにノード302とホスト102と管理端末104とが接続されても良い。
 ホスト102及び管理端末104は、第1の実施形態と同様の機能を有する。但し、ホスト102はノード302にて仮想マシンとして存在してもよい。また、ホスト102の代わりにホスト102で実行するアプリケ-ションをノード302で実行してもよい。
 記憶デバイス401は、第1の実施形態と同様の構成を有する。本実施形態では、デバイスコントローラ402は、データを圧縮して使用可能な論理容量が増加した場合、論理容量が増加したことを示す増加情報をマスタノード302へ送信してもよい。デバイスコントローラ402は、不揮発性半導体メモリの故障などにより一部の領域が使用できなくなくなると、使用可能な論理容量が削減されたことを示す削減情報をマスタノード302へ送信してもよい。なお、マスタノード302については後述する。
 図19は、分散ストレージシステム301において構成されるRAIDグループを示す。本実施形態では、複数のノード302が提供する記憶領域がRAIDグループとして管理される。そしてRAIDグループ内で一つ(あるいは2つ)のノード302に障害が発生してデータクセスできなくなった場合に、残りのノード302内のデータを用いて、障害が発生した記憶デバイス401に格納されていたデータを復旧できるようにしている。
 図19において、ノード302-0~ノード302-5はそれぞれ、ノード302が提供している論理アドレス空間(LBA空間)を表している。ノード302-0~ノード302-5の上端が、論理アドレス空間の先頭アドレス(LBA=0)を表し、下端が論理アドレス空間の終端である。分散ストレージシステム301において、複数のノード302の記憶領域が一つのRAIDグループ804を構成し、RAIDグループ804に所属する各ノード302の論理アドレス空間(ノード302-0~ノード302-5)を、ストライプブロック801と呼ぶ複数の固定サイズの記憶領域に分割して管理している。
 また図19においても、図3の例と同様に、ストライプブロック801を構成単位として、RAIDストライプ802、チャンク803及びRAIDグループ804を構成する。
 また本実施形態に関わる分散ストレージシステム301では、RAIDグループを構成するノード302の組み合わせを限定するために、複数のRG作成許容ノードグループ806が構成される。異なるRG作成許容ノードグループ806に属する複数のノード302間でのRAIDグループ804の作成が禁止される。つまり、第1の実施形態では記憶デバイスを単位にして、複数の記憶デバイスでRG作成許容デバイスグループ及びそのサブグループを構成しているのに対して、本実施形態ではノードを単位にして、複数のノードでRG作成許容ノードグループ806及びそのサブグループを構成する。
 例えば、マスタノード302のCPU303は、同じRG作成許容ノードグループ内の複数のノードを使用してRAIDグループを構成する。例えば、マスタノード302のCPU303は、一つのRG作成許容ノードグループ内の複数のノードを含む第1サブグループを使用して第1RAIDグループを構成し、かつ、同じRG作成許容ノードグループ内の複数のノードを含む第2サブグループを使用して第2RAIDグループを構成してもよい。第1サブグループに属する複数のノードのうちの全部または一部のノードが第2サブグループに属していてもよい。
 図20は、分散ストレージシステム301の各ノード302のメモリ304に格納される管理情報の内容を表す図である。分散ストレージシステム301の各ノード302のメモリ304には、少なくとも仮想ボリューム管理テ-ブル1001、プ-ル管理テ-ブル1101、RAIDグループ管理テーブル1201、ノード容量管理テ-ブル1401及びRG構成優先度管理テ-ブル1501が格納される。
 尚、以上の管理情報は、分散ストレージシステム301の全体に関する管理情報を全ノード302に格納されていなくてもよい。例えば、全ノード302のうちいくつかのノード302にのみ分散ストレージシステム301の全体に関する管理情報を格納してもよい。これらのノード302をマスタノード302と呼ぶ。マスタノード302以外のノード302には自ノードを含むRG作成許容ノードグループ806内のノード302の管理情報のみ格納しても良い。また、第1の実施形態においてストレージコントローラ201が行っていた処理は、いずれかのノード302が行うようにしてもよい。例えば、第1の実施形態においてストレージコントローラ201が行っていた処理は、マスタノード302が行うようにしてもよいし、マスタノード302及びマスタノード302以外のノード302が協調して行うようにしてもよい。
 RAIDグループ管理テーブル1201は、図11に示す第1の実施形態と同じ構成を有するが、以下の点で相違する。すなわち、第1の実施形態ではカラム1207には記憶デバイス401の識別子(デバイス#)が格納されるが、第2の実施形態ではノード302の識別子(ノード#)が格納される。従って、第2の実施形態ではカラム1207はノード#1207と表す。
 同様に、RG構成優先度管理テ-ブル1501も、図14に示す第1の実施形態と同じ構成を有するが、以下の点で相違する。すなわち、第1の実施形態ではカラム1507にはRAIDを構成する記憶デバイス401の数が格納されるが、第2の実施形態ではRAIDを構成するノード302の数が格納される。従って、第2の実施形態ではカラム1507はノード数1507と表す。
 図21は、ノード容量管理テ-ブル1401の構成を説明する図である。
 ノード容量管理テ-ブル1401は、ノード#1402、使用中論理容量1403、空き論理容量1404、RG未割当論理容量1405及びRG作成許容グループ#1406のカラムを有する。
 ノード#1402は、ノード302の識別子が格納される。使用中論理容量1403は、仮想チャンク903へ割り当て済みのチャンク803の占める記憶領域の容量を示す。空き論理容量1404は、仮想チャンク903へチャンク803として割り当てられていない記憶領域の容量を示す。RG未割当論理容量1405は、いずれのRAIDグループ804にも割り当てられていない記憶領域の容量を示す。RG作成許容グループ#1406は、該当ノード302が所属するRG作成許容ノードグループ806の識別子を示す。
 第1の実施形態では記憶デバイスを単位にして論理容量の管理をしているのに対して、本実施形態では、ノードを単位にして、各ノード内の記憶デバイスの論理容量の管理を行う。従って、本実施形態におけるRG未割当容量補充処理及びRG未割当容量分配処理では、空き容量及びRG未割当容量などはノードごとに判定される。
 次に、分散ストレージシステム301におけるノード302の容量変更時の処理を示す。ここでは、RG作成許容ノードグループ806に対して、RG構成優先度管理テ-ブル1501にて優先度が高いものから、RAID5での5D1Pの6記憶ノード構成、RAID5での3D1Pの4ノード構成のRAID構成が設定されているものとする。
 まず、図19に示すRG作成許容ノードグループ806に属する、ノード302-5が提供する論理容量を増加させた時の処理について説明する。
 ノード302-5から論理容量の増加を示す増加情報を受領すると、それを契機として分散ストレージシステム301はRG未割当容量分配処理(図16)を実施してもよい。これは第1の実施形態と同様である。但し、第1の実施形態のストレージ装置101が記憶デバイス管理テ-ブル1301を参照していた処理については、分散ストレージシステム301はノード容量管理テ-ブル1401を参照する。尚、分散ストレージシステム301ではRG未割宛容量補充処理を実施するのは、分散ストレージシステム301のいずれのノード302でも良い。例えば、分散システム全体の管理情報を持つマスタノード302が代表して実施しても良い。
 図22は、図19の状態から、マスタノード302がRG未割当容量補充処理を実施した後のRAIDグループ804の構成を示す。このとき、ノード302-5は論理容量を増加させたので、第1の実施形態のようなRG未割当論理容量が減少して0未満になることはないので、RG未割当容量補充処理(図14)は省略可能である。ここでは、RG作成許容ノードグループ806に属するノード302-5から論理容量の増加を示す通知を受けて図16のRG未割当容量分配処理が実施される。
 図23は、図22の状態から、マスタノード302がRG未割当容量分配処理を実施した後のRAIDグループ804の構成を示す。ここでは、RG作成許容ノードグループ806にて最小容量であったノード302-5の容量が増加したため、図16のRG未割当容量分配処理が行われることで、優先度の高いRAID5の5D1P構成のRAIDグループ804-3に割り当てられる記憶容量が増加している。一方で、優先度の低いRAID5の3D1P構成のRAIDグループ804-4に割り当てられる論理容量が減少している。
 次に、図19に示すRG作成許容ノードグループ806に属する、ノード302-5が提供する論理容量が削減された時の処理について説明する。
 ノード302から論理容量の削減を示す削減情報を受領すると、それを契機としてマスタノード302がRG未割当容量補充処理(図14)を実施してもよい。この場合も、マスタノード302が、第1の実施形態における記憶デバイス管理テ-ブル1301の代わりにノード容量管理テ-ブル1401を参照する。RG未割当容量補充処理により、第1の実施形態と同様に、既存のRAIDグループから削減容量に対応する未使用の論理容量が解放され、論理容量の削減によって減少していたRG作成許容ノードグループ806のRG未割当容量が回復する。RG未割当容量補充処理の終了を契機としてマスタノード302がRG未割当容量分配処理(図16)を実施してもよい。RG未割当容量分配処理により、第1の実施形態と同様に、RAIDグループが再構成されてRG未割当容量がRAIDグループに組み入れられる。
101: ストレージ装置
102: ホスト
201: ストレージコントローラ
302: ノード
401: 記憶デバイス
501: NVMチップ
804: RAIDグループ
901: プ-ル
902: 仮想ボリューム

Claims (12)

  1.  複数の記憶デバイスと、
     ホスト計算機に接続され、前記ホスト計算機に前記複数の記憶デバイスを仮想ボリュームとして提供するストレージコントローラと、を備え、
     前記複数の記憶デバイスの夫々は、複数の不揮発性半導体メモリと、前記複数の不揮発性半導体メモリに関連付けられた論理記憶領域を前記ストレージコントローラに提供するデバイスコントローラと、を含み、
     前記ストレージコントローラは、前記複数の記憶デバイスを複数のデバイスグループに分けて管理し、前記複数のデバイスグループの中の第1デバイスグループ内の複数の記憶デバイスを含む第1サブグループを使用して第1RAIDグループを構成し、かつ、前記第1デバイスグループ内の複数の記憶デバイスを含む第2サブグループを使用して第2RAIDグループを構成し、
     前記第1サブグループに属する複数の記憶デバイスのうちの全部または一部の記憶デバイスが、前記第2サブグループにも属していて、
     前記デバイスコントローラは、前記複数の不揮発性半導体メモリの使用可能な論理容量が増加したことを示す増加情報を前記ストレージコントローラへ送信し、
     前記ストレージコントローラは、前記第1デバイスグループの記憶デバイスである第1記憶デバイスから前記増加情報を受信したとき、前記第1記憶デバイスの増加した論理容量をRAIDグループに割り当てられていない論理容量である未割当容量に加算し、かつ、前記第1RAIDグループでデータが書き込まれていない論理容量である第1未使用容量と前記第2RAIDグループでデータが書き込まれていない論理容量である第2未使用容量とを、それぞれ前記第1RAIDグループまたは前記第2RAIDグループから解放し、解放された論理容量を前記未割当容量に加算した後、前記未割当容量の一部または全部が前記第1RAIDグループまたは前記第2RAIDグループに割り当てられるように、前記第1RAIDグループ及び前記第2RAIDグループを再構成する、ストレージ装置。
  2.  前記第1RAIDグループの優先度が前記第2RAIDグループの優先度よりも高いとき、
     前記ストレージコントローラは、前記第1サブグループの前記未割当容量の全部または一部を、前記第1RAIDグループに割り当てるように再構成した後、前記第2サブグループの残りの前記未割当容量の全部または一部を、前記第2RAIDグループに割り当てるように再構成する、請求項1記載のストレージ装置。
  3.  前記デバイスコントローラは、前記複数の不揮発性半導体メモリの使用可能な論理容量が削減されたことを示す削減情報を前記ストレージコントローラへ送信し、
     前記ストレージコントローラは、前記第1サブグループに属し、かつ、前記第2サブグループに属しない記憶デバイスである第2記憶デバイスから前記削減情報を受信したとき、前記第2記憶デバイスの削減された論理容量を削減容量とし、前記第1未使用容量の前記削減容量以上の論理容量を前記第1RAIDグループから解放し、解放された論理容量を前記未割当容量に加算した後、前記未割当容量の一部または全部が前記第2RAIDグループに割り当てられるように、前記第2サブグループを使用して前記第2RAIDグループを再構成する、請求項1記載のストレージ装置。
  4.  前記デバイスコントローラは、前記複数の不揮発性半導体メモリの使用可能な論理容量が削減されたことを示す削減情報を前記ストレージコントローラへ送信し、
     前記ストレージコントローラは、前記第1サブグループ及び前記第2サブグループに属する記憶デバイスである第3記憶デバイスから前記削減情報を受信したとき、前記第3記憶デバイスの削減された論理容量を削減容量とし、
     前記第1RAIDグループの優先度が前記第2RAIDグループの優先度よりも高いときは、前記第2未使用容量の一部またはすべてを前記第2RAIDグループから解放し、前記第2RAIDグループから解放された論理容量が前記削減容量に満たないときは、前記第2RAIDグループから解放された論理容量との合計が前記削減容量以上になるように、前記第1未使用容量を前記第1RAIDグループから解放し、前記第2RAIDグループ及び前記第1RAIDグループから解放された論理容量を前記未割当容量に加算した後、前記未割当容量の一部または全部が前記第1RAIDグループに割り当てられるように、前記第1サブグループを使用して前記第1RAIDグループを再構成する、請求項1記載のストレージ装置。
  5.  前記第1サブグループに属し、かつ、前記第2サブグループにも属する記憶デバイスが、前記ストレージコントローラに対して、互いに独立した前記第1RAIDグループのためのアドレス空間と、前記第2RAIDグループのためのアドレス空間と、を提供する請求項1記載のストレージ装置。
  6.  前記第1RAIDグループのRAID構成及び前記第2RAIDグループのRAID構成の定義情報をさらに有し、
     前記ストレージコントローラは、前記テーブルの定義情報に従ったRAID構成で第1及び第2を構成する、請求項1記載のストレージ装置。
  7.  複数のノードを有する分散ストレージシステムであって、
     前記複数のノードは、それぞれ、CPUと、複数の記憶デバイスとを有し、
     前記複数のノードがそれぞれホスト計算機に接続され、各ノードの前記複数の記憶デバイスが前記ホスト計算機に仮想ボリュームとして提供され、
     前記複数の記憶デバイスの夫々は、複数の不揮発性半導体メモリと、前記複数の不揮発性半導体メモリに関連付けられた論理記憶領域を前記ストレージ管理システムに提供するデバイスコントローラと、を有し、
     前記複数のノードの中の第1ノードのCPUは、
     前記複数のノードを複数のノードグループに分けて管理し、前記複数のノードグループの中の第1ノードグループ内の複数のノードを含む第1サブグループを使用して第1RAIDグループを構成し、かつ、前記第1ノードグループ内の複数のノードを含む第2サブグループを使用して第2RAIDグループを構成し、
     前記第1サブグループに属する複数のノードのうちの全部または一部のノードが、前記第2サブグループにも属していて、
     前記デバイスコントローラは、前記複数の不揮発性半導体メモリの使用可能な論理容量が増加したことを示す増加情報を前記第1ノードのCPUへ送信し、
     前記第1ノードのCPUは、前記第1ノードグループに属するノードの記憶デバイスである第1記憶デバイスから前記増加情報を受信した場合、前記第1記憶デバイスの増加した論理容量をRAIDグループに割り当てられていない論理容量である未割当容量に加算し、かつ、前記第1RAIDグループを構成するノードの記憶デバイスでデータが書き込まれていない論理容量である第1未使用容量と前記第2RAIDグループを構成するノードの記憶デバイスでデータが書き込まれていない論理容量である第2未使用容量とを、それぞれ前記第1RAIDグループまたは前記第2RAIDグループから解放し、解放された論理容量を前記未割当容量に加算した後、前記未割当容量の一部または全部が前記第1RAIDグループまたは前記第2RAIDグループに割り当てられるように、前記第1RAIDグループ及び前記第2RAIDグループを再構成する、分散ストレージシステム。
  8.  前記第1RAIDグループの優先度が前記第2RAIDグループの優先度よりも高いとき、
     前記第1ノードのCPUは、前記第1サブグループの前記未割当容量の全部または一部を、前記第1RAIDグループに割り当てるように再構成した後、前記第2サブグループの残りの前記未割当容量の全部または一部を、前記第2RAIDグループに割り当てるように再構成する、請求項7記載の分散ストレージシステム。
  9.  前記デバイスコントローラは、前記複数の不揮発性半導体メモリの使用可能な論理容量が削減されたことを示す削減情報を前記第1ノードのCPUへ送信し、
     前記第1ノードのCPUは、前記第1サブグループに属し、かつ、前記第2サブグループに属しないノードの記憶デバイスである第2記憶デバイスから前記削減情報を受信したとき、前記第2記憶デバイスの削減された論理容量を削減容量とし、前記第1未使用容量の前記削減容量以上の論理容量を前記第1RAIDグループから解放し、解放された論理容量を前記未割当容量に加算した後、前記未割当容量の一部または全部が前記第2RAIDグループに割り当てられるように、前記第2サブグループを使用して前記第2RAIDグループを再構成する、請求項7記載のストレージ装置。
  10.  前記デバイスコントローラは、前記複数の不揮発性半導体メモリの使用可能な論理容量が削減されたことを示す削減情報を前記第1ノードのCPUへ送信し、
     前記第1ノードのCPUは、前記第1サブグループ及び前記第2サブグループに属する記憶デバイスである第3記憶デバイスから前記削減情報を受信したとき、前記第3記憶デバイスの削減された論理容量を削減容量とし、
     前記第1RAIDグループの優先度が前記第2RAIDグループの優先度よりも高いときは、前記第2未使用容量の一部またはすべてを前記第2RAIDグループから解放し、前記第2RAIDグループから解放された論理容量が前記削減容量に満たないときは、前記第2RAIDグループから解放された論理容量との合計が前記削減容量以上になるように、前記第1未使用容量を前記第1RAIDグループから解放し、前記第2RAIDグループ及び前記第1RAIDグループから解放された論理容量を前記未割当容量に加算した後、前記未割当容量の一部または全部が前記第1RAIDグループに割り当てられるように、前記第1サブグループを使用して前記第1RAIDグループを再構成する、請求項7記載の分散ストレージシステム。
  11.  前記第1サブグループに属し、かつ、前記第2サブグループにも属する複数のノードが、前記第1ノードに対して、互いに独立した前記第1RAIDグループのためのアドレス空間と、前記第2RAIDグループのためのアドレス空間と、を提供する請求項7記載の分散ストレージシステム
  12.  前記第1RAIDグループのRAID構成及び前記第2RAIDグループのRAID構成の定義情報をさらに有し、
     前記ストレージコントローラは、前記テーブルの定義情報に従ったRAID構成で第1及び第2を構成する、請求項7記載の分散ストレージシステム。
PCT/JP2017/000883 2017-01-12 2017-01-12 ストレージ装置及び分散ストレージシステム WO2018131127A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2017/000883 WO2018131127A1 (ja) 2017-01-12 2017-01-12 ストレージ装置及び分散ストレージシステム
US16/325,286 US10768838B2 (en) 2017-01-12 2017-01-12 Storage apparatus and distributed storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/000883 WO2018131127A1 (ja) 2017-01-12 2017-01-12 ストレージ装置及び分散ストレージシステム

Publications (1)

Publication Number Publication Date
WO2018131127A1 true WO2018131127A1 (ja) 2018-07-19

Family

ID=62839791

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/000883 WO2018131127A1 (ja) 2017-01-12 2017-01-12 ストレージ装置及び分散ストレージシステム

Country Status (2)

Country Link
US (1) US10768838B2 (ja)
WO (1) WO2018131127A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020135137A (ja) * 2019-02-14 2020-08-31 株式会社日立製作所 マルチストレージノードシステム、マルチストレージノードシステムの容量管理方法
US10866752B2 (en) * 2018-10-17 2020-12-15 International Business Machines Corporation Reclaiming storage space in raids made up of heterogeneous storage drives

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102631351B1 (ko) 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
US11132256B2 (en) * 2018-08-03 2021-09-28 Western Digital Technologies, Inc. RAID storage system with logical data group rebuild
US10768822B2 (en) * 2019-01-29 2020-09-08 International Business Machines Corporation Increasing storage capacity in heterogeneous storage arrays
US11287994B2 (en) * 2019-12-13 2022-03-29 Samsung Electronics Co., Ltd. Native key-value storage enabled distributed storage system
CN113126891B (zh) * 2020-01-15 2024-05-24 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
US11249654B2 (en) * 2020-02-18 2022-02-15 EMC IP Holding Company LLC Storage system with efficient data and parity distribution across mixed-capacity storage devices
US11061770B1 (en) * 2020-06-30 2021-07-13 EMC IP Holding Company LLC Reconstruction of logical pages in a storage system
CN114518836A (zh) * 2020-11-20 2022-05-20 伊姆西Ip控股有限责任公司 管理存储系统的存储资源池的方法、设备和程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012533099A (ja) * 2009-10-15 2012-12-20 株式会社日立製作所 ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
WO2016181528A1 (ja) * 2015-05-13 2016-11-17 株式会社日立製作所 ストレージ装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9335928B2 (en) * 2011-10-01 2016-05-10 International Business Machines Corporation Using unused portion of the storage space of physical storage devices configured as a RAID
CN104937561B (zh) * 2013-05-17 2018-01-02 株式会社日立制作所 存储装置
JP6055544B2 (ja) 2013-06-03 2016-12-27 株式会社日立製作所 ストレージ装置およびストレージ装置制御方法
JP6381529B2 (ja) 2013-07-19 2018-08-29 株式会社日立製作所 ストレージ装置および記憶制御方法
US20170220282A1 (en) * 2016-01-29 2017-08-03 Dell Products L.P. Dynamic capacity expansion of raid volumes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012533099A (ja) * 2009-10-15 2012-12-20 株式会社日立製作所 ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
WO2016181528A1 (ja) * 2015-05-13 2016-11-17 株式会社日立製作所 ストレージ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866752B2 (en) * 2018-10-17 2020-12-15 International Business Machines Corporation Reclaiming storage space in raids made up of heterogeneous storage drives
JP2020135137A (ja) * 2019-02-14 2020-08-31 株式会社日立製作所 マルチストレージノードシステム、マルチストレージノードシステムの容量管理方法

Also Published As

Publication number Publication date
US20190205053A1 (en) 2019-07-04
US10768838B2 (en) 2020-09-08

Similar Documents

Publication Publication Date Title
WO2018131127A1 (ja) ストレージ装置及び分散ストレージシステム
CN111433732B (zh) 存储设备以及由存储设备执行的计算机实现的方法
JP6403162B2 (ja) メモリシステム
US10162536B2 (en) Storage apparatus and storage control method
US10558383B2 (en) Storage system
US9910748B2 (en) Rebuilding process for storage array
JP6073471B2 (ja) ストレージ装置
CN110858124B (zh) 数据迁移方法及装置
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
US9304714B2 (en) LUN management with distributed RAID controllers
WO2018189858A1 (ja) ストレージシステム
US10545684B2 (en) Storage device
JP2017027388A (ja) メモリシステムおよび不揮発性メモリの制御方法
US20180011642A1 (en) Storage unit
US20180275894A1 (en) Storage system
US20170212705A1 (en) Dynamic Weighting for Distributed Parity Device Layouts
JP6716757B2 (ja) メモリシステムおよび制御方法
US10705907B1 (en) Data protection in a heterogeneous random access storage array
US11520715B2 (en) Dynamic allocation of storage resources based on connection type
KR20220083716A (ko) 블록 디바이스의 구성
KR20220083710A (ko) 블록 디바이스의 구성
JP6649452B2 (ja) メモリシステムおよび不揮発性メモリの制御方法
US10635534B2 (en) Nonvolatile memory module
JPWO2018142622A1 (ja) 計算機
US9620165B2 (en) Banded allocation of device address ranges in distributed parity schemes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17892000

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17892000

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP