JP7015776B2 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP7015776B2
JP7015776B2 JP2018226116A JP2018226116A JP7015776B2 JP 7015776 B2 JP7015776 B2 JP 7015776B2 JP 2018226116 A JP2018226116 A JP 2018226116A JP 2018226116 A JP2018226116 A JP 2018226116A JP 7015776 B2 JP7015776 B2 JP 7015776B2
Authority
JP
Japan
Prior art keywords
storage
data protection
protection level
pool
data
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.)
Active
Application number
JP2018226116A
Other languages
English (en)
Other versions
JP2020087378A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018226116A priority Critical patent/JP7015776B2/ja
Priority to US16/568,543 priority patent/US10983720B2/en
Publication of JP2020087378A publication Critical patent/JP2020087378A/ja
Application granted granted Critical
Publication of JP7015776B2 publication Critical patent/JP7015776B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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

Description

本発明はストレージシステムに関し、例えば複数のストレージノードを含んで構成されるストレージシステムに適用して好適なものである。
近年、SDS(Software Defined Storage)の開発が進められている。SDSのシステムでは、複数のストレージノードに跨ったデータ保護機能を提供している。かかる構成によれば、例えば1つのストレージノードに障害が発生したとしても、残りのストレージノードにてシステムを継続して動作させることができる。
また、SDSのシステムでは、システムが提供するデータ(例えば、ボリューム)のデータ保護レベルが拡張されたり、ストレージノードが増減したりする。このような変更に応じて、SDSのシステムでは、既に用いているデータ保護レベルを、拡張されたデータ保護レベルに変更したり、より効率的なデータ保護レベルに変更したりするために、データ保護レベルの変換が求められている。
この点、ストレージノード内で、データ保護レベルが異なるプールを構成し、第1のプールのボリュームのデータを別の第2のプールのボリュームに移行するボリュームマイグレーション(Volume Migration)を行い、データ保護レベルを変換する技術が開示されている(特許文献1参照)。
特開2006-277723号公報
しかしながら、特許文献1に示されるような単一のストレージノード内のボリュームマイグレーションでは、複数のストレージノードに跨ったデータ保護レベルを変換することができないという問題がある。
本発明は以上の点を考慮してなされたもので、複数のストレージノードに跨ったデータ保護レベルの変換を実現し得るストレージシステムを提案しようとするものである。
かかる課題を解決するため本発明においては、複数のストレージノードを含んで構成されるストレージシステムであって、データ保護レベルの変換に係る情報に基づいて、前記複数のストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノードを選定する選定部を備え、前記選定部により選定されたストレージノードは、変換後のデータ保護レベルでデータを管理するようにした。
上記構成によれば、変換後のデータ保護レベルを構成するために必要なストレージノードを選定し、選定したストレージノードに対して変換後のデータ保護レベルでデータを管理するように指示を与えることで、複数のストレージノードに跨ったデータ保護レベルの変換を行うことができる。
本発明によれば、複数のストレージノードに跨ったデータ保護レベルの変換を実現し得るストレージシステムを実現することができる。
第1の実施の形態によるストレージシステムに係る構成の一例を示す図である。 第1の実施の形態によるストレージノードのハードウェア資源に係る構成の一例を示す図である。 第1の実施の形態によるメモリに記憶されるデータの一例を示す図である。 第1の実施の形態によるストレージノード管理表の一例を示す図である。 第1の実施の形態によるチャンクグループ管理表群の一例を示す図である。 第1の実施の形態による論理チャンク管理表群の一例を示す図である。 第1の実施の形態によるプール管理表群の一例を示す図である。 第1の実施の形態によるプール管理表群の一例を示す図である。 第1の実施の形態によるプール管理表群の一例を示す図である。 第1の実施の形態によるボリューム管理表群の一例を示す図である。 第1の実施の形態によるデータ保護レベルの変換のイメージ図である。 第1の実施の形態によるクラスタ制御部が実行する処理に係るフローチャートの一例を示す図である。 第1の実施の形態によるデータ移行処理に係るフローチャートの一例を示す図である。 第1の実施の形態によるコピー要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。 第1の実施の形態による移行先プール論理チャンク割当処理に係るフローチャートの一例を示す図である。 第1の実施の形態によるチャンクグループ作成処理に係るフローチャートの一例を示す図である。 第1の実施の形態によるプール縮小処理に係るフローチャートの一例を示す図である。 第1の実施の形態によるプール削除処理に係るフローチャートの一例を示す図である。 第1の実施の形態によるチャンク削除処理に係るフローチャートの一例を示す図である。 第1の実施の形態によるコピー不要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。 第2の実施の形態によるデータ保護レベルの変換のイメージ図である。 第3の実施の形態によるデータ保護レベルの変換のイメージ図である。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
図1において、100は全体として第1の実施の形態によるストレージシステムを示す。ストレージシステム100は、例えばSDSが導入されたシステムであり、コンピュートノード(Compute Node)110と、ストレージノード(Storage Node)120とを含んで構成される。ストレージシステム100では、データを保護するレベル(データ保護レベル)の変換が可能であり、データ保護レベルを変換するために必要なストレージノード120を選定し、選定したストレージノード120に対してデータ保護レベルの変換の指示を出すことを特徴とする。
データ保護レベルとしては、例えば、二重化(Mirror)、三重化(Triplication)、EC(Erasure Coding)、保護無しなどがある。なお、ECは、m個のデータ領域の内、n個の障害に耐える構成(mDnPと呼び、mとnは、m≧nとなる任意の数値)のデータ保護レベルがある。なお、本実施の形態は、上述したデータ保護レベルに限られるものではなく、様々なデータ保護レベルに対応可能であり、例えば、四重化以上のレプリケーションにも適用できる。
ストレージシステム100では、データ保護レベルを変換可能である。ストレージシステム100では、例えば、二重化からECへのデータ保護レベルの変換が行われる。また、例えば、ストレージシステム100では、二重化から保護なしへのデータ保護レベルの変換が行われる。
また、変換の単位(変換の対象)は、ストレージシステム100全体であってもよいし、ストレージクラスタ130のサブセット(例えば、後述のプロテクションドメイン)単位であってもよいし、プール単位であってもよいし、ボリューム単位であってもよい。例えば、変換の単位がストレージシステム100全体である場合、全てのストレージノード120を対象としてデータ保護レベルの変換が行われる。また、例えば、変換の単位がストレージクラスタ130のサブセットである場合、サブセットに属するストレージノード120を対象としてデータ保護レベルの変換が行われる。また、例えば、変換の単位がプールである場合、指定されたプールに係るストレージノード120を対象としてデータ保護レベルの変換が行われる。また、例えば、変換の単位がボリュームである場合、指定されたボリュームが設けられたストレージノード120を対象としてデータ保護レベルの変換が行われる。
ここで、図1に示すように、ストレージシステム100では、複数のストレージノード120を含んでストレージクラスタ130が構成されている。ストレージクラスタ130では、ストレージクラスタ130内でデータの分散する範囲を示すプロテクションドメイン(図示は省略)が定義されている。プロテクションドメインには、一または複数のストレージノード120が含まれる。なお、プロテクションドメインは、定義されていなくてもよい。これは、ストレージクラスタ130で1つプロテクションドメインが1つ定義されていることと等しいとも言い得る。
また、コンピュートノード110とストレージノード120とは、フロントエンドネットワーク140(ストレージサービスネットワーク)を介して互いに通信可能に接続されている。また、ストレージノード120間は、バックエンドネットワーク150を介して互いに通信可能に接続されている。
なお、フロントエンドネットワーク140とバックエンドネットワーク150とは、同一でもあってもよい。また、フロントエンドネットワーク140とバックエンドネットワーク150の他に、管理用ネットワークが設けられていてもよい。例えば、ストレージノード120と管理ノード(例えば、後述の管理ノード1110)とは、管理用ネットワークを介して互いに通信可能に接続されていてもよい。
ネットワーク(フロントエンドネットワーク140とバックエンドネットワーク150と管理用ネットワークとのうち少なくとも1つ)は、冗長化されていてもよい。ネットワークは、有線であってもよいし、無線であってもよい。また、ネットワークは、異なる種類のネットワークであってもよい。
図2は、ストレージノード120のハードウェア資源に係る構成の一例を示す図である。
ストレージノード120は、例えば、一般的な汎用コンピュータ(例えば、サーバ装置)である。ストレージノード120は、CPU(Central Processing Unit)210、メモリ220、ドライブ230、第1の通信装置240、および第2の通信装置250を含んで構成される。各構成要素は、内部バス260を介して接続されている。
ドライブ230は、SAS(Serial Attached SCSI)またはSATA(Serial Advanced Technology Attachment)接続のHDD(Hard Disk Drive)やSSD(Solid State Drive)、NVMe(Non-Volatile Memory Express)接続のSSDの他、不揮発メモリ(SCM:Storage Class Memory)等であってもよく、記憶装置の一例である。
第1の通信装置240は、フロントエンドネットワーク140向けであり、例えば、HBA(Host Bus Adapter)やNIC(Network Interface Card)である。なお、第1の通信装置は、FC(Fibre Channel)、Ethernet(登録商標)、InfiniBandなどに対応可能な装置であり、特に制限されるものではない。第2の通信装置250は、バックエンドネットワーク150向けであり、例えば、HBAやNICである。なお、第2の通信装置250は、FC、Ethernet、InfiniBandなどに対応可能な装置であり、特に制限されるものではない。
ストレージノード120では、各ハードウェア資源(CPU210、メモリ220等)が1つ設けられる例を示したが、各ハードウェア資源の個数は、特に限定されるものではなく、1つであってもよいし、複数であってもよい。また、管理ネットワーク向けであり、管理ノード(例えば、後述の管理ノード1110)と通信可能な第3の通信装置が設けられていてもよい。
図3は、メモリ220に記憶されるデータの一例を示す図である。
クラスタ制御部310は、例えば、各ストレージノード120の死活情報、CPU負荷、メモリ使用量、ネットワーク使用量、IOPS(Input / Output Per Second)、ハード構成などのモニタリングを行う。また、例えば、クラスタ制御部310は、管理者からの要求に基づいて、ボリュームの作成、プールの作成などの構成変更の指示を各ストレージノード120に通知する。
IO制御部320は、ストレージ制御ソフトである。例えば、IO制御部320は、コンピュートノード110からのリクエストを受け付け、I/O処理を行い、データ保護制御部330を介してドライブ230にデータを格納する。また、例えば、IO制御部320は、シン・プロビジョニング(Thin-Provisioning)、階層制御、スナップショット、圧縮、重複排除、リモートコピー、暗号化など、ストレージ制御に必要な処理を行う。
データ保護制御部330は、クラスタ制御部310より指示されたデータ保護レベルでストレージノード120間でデータを冗長化して保護(管理)する。
ストレージノード120の機能(クラスタ制御部310、IO制御部320、データ保護制御部330など)は、例えば、CPU210がプログラムをメモリ220に読み出して実行すること(ソフトウェア)により実現される。ただし、ソフトウェアによる実現に限られるものではなく、例えば、専用の回路などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、ストレージノード120の機能の一部は、ストレージノード120と通信可能な他のコンピュータにより実現されてもよい。なお、クラスタ制御部310は、全てのストレージノード120に設けられていてもよいし、特定のストレージノード120に設けられていてもよい。
また、メモリ220には、ストレージノード管理表340、チャンクグループ管理表群350、論理チャンク管理表群360、プール管理表群370、ボリューム管理表群380等が記憶される。ストレージノード管理表340については、図4を用いて後述する。チャンクグループ管理表群350については、図5を用いて後述する。論理チャンク管理表群360については、図6を用いて後述する。プール管理表群370については、図7~図9を用いて後述する。ボリューム管理表群380については、図10を用いて後述する。
図4は、ストレージノード管理表340の一例を示す図である。ストレージノード管理表340は、ストレージノード120を管理するための表(テーブル)である。ストレージノード管理表340には、IO制御部320により取得されたストレージノード120の構成要素の性能に係る情報(性能情報)がクラスタ制御部310により登録される。なお、クラスタ制御部310が全てのストレージノード120に設けられる場合は、全てのクラスタ制御部310にて各IO制御部320で取得された性能情報が共有される。他方、クラスタ制御部310が特定のストレージノード120に設けられる場合は、各ストレージノード120のIO制御部320から性能情報が収集されて登録される。
ストレージノード管理表340には、ストレージノードID401、状態402、ドメインID403、容量404、使用容量405、CPU負荷406、メモリ量407、使用メモリ量408、通信帯域409、および使用通信帯域410の情報が対応付けられて格納される。
ストレージノードID401は、ストレージシステム100においてストレージノード120を一意に識別可能な識別子を示す項目である。状態402は、ストレージノード120の状態(正常、障害など)を示す項目である。ドメインID403は、ストレージクラスタ130内でデータの分散する範囲を示すプロテクションドメインをストレージシステム100において一意に識別可能な識別子を示す項目である。容量404は、ストレージノード120が有するドライブ230の容量を示す項目である。使用容量405は、使用される容量(後述するチャンクグループに割り当てられている物理チャンクの容量)を示す項目である。CPU負荷406は、実行中のプログラムがCPU210の処理時間を占有している割合を示す項目である。メモリ量407は、メモリ220の容量を示す項目である。使用メモリ量408は、使用されているメモリ220の容量を示す項目である。通信帯域409は、ネットワークの帯域を示す項目である。使用通信帯域410は、使用されているネットワークの帯域を示す項目である。付言するならば、通信帯域409および使用通信帯域410については、第1の通信装置240および第2の通信装置250のうち、何れか一方または両方に対応して設けられる。
図5は、チャンクグループ管理表群350の一例を示す図である。チャンクグループ管理表群350は、チャンクグループを構成する物理チャンクの対応を管理するための表群である。チャンクグループ管理表群350は、例えば、クラスタ制御部310、IO制御部320等により管理される。
チャンクグループは、ストレージサブシステムのRAIDグループ(Redundant Arrays of Inexpensive Disks Group)、パリティグループ(Parity Group)と同様の考え方であり、複数のストレージノード120のドライブ230のデータ格納領域(物理チャンク)から構成される。例えば、データ保護レベルが二重化である場合、異なるストレージノード120のドライブ230から確保した2つの物理チャンクでチャンクグループを構成する。また、例えば、データ保護レベルが4D1Pである場合、異なるストレージノード120のドライブ230から確保した5つの物理チャンクでチャンクグループを構成する。
チャンクグループ管理表群350は、チャンクグループ管理表510と、物理領域管理表520とを含んで構成される。なお、物理領域管理表520は、チャンクグループ毎に設けられる。
なお、本実施の形態では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、物理領域管理表を区別しない場合には、「物理領域管理表520」と表記し、物理領域管理表を区別する場合には、「物理領域管理表520A」、「物理領域管理表520B」のように表記することがある。
チャンクグループ管理表510には、チャンクグループID511、状態512、データ保護レベル513、および実効容量514の情報が対応付けられて格納される。
チャンクグループID511は、ストレージシステム100においてチャンクグループを一意に識別可能な識別子を示す項目である。状態512は、チャンクグループの状態を示す項目である。チャンクグループの状態としては、「正常」、「1障害」、「2障害」、「1リビルド」、「2リビルド」、「閉塞」などがある。例えば、「1障害」は、チャンクグループを構成する1つの物理チャンクに障害が発生している状態を示す。「1リビルド」は、ドライブ230の故障、ストレージノード120の故障などによって壊れた1つの物理チャンクをリビルドしている状態を示す。「閉塞」は、例えば4D1Pにおいて、1つのチャンクグループで2つの物理チャンクが使用不可になり、回復できない状態を示す。データ保護レベル513は、データ保護レベルを示す項目である。実効容量514は、チャンクグループにおいて利用可能な容量を示す項目である。
物理領域管理表520には、ストレージノードID521、ドライブID522、物理チャンクID523、物理容量524、状態525の情報が対応付けられて格納される。
ストレージノードID521は、ストレージシステム100においてストレージノード120を一意に識別可能な識別子を示す項目である。ドライブID522は、ストレージノード120においてドライブ230を一意に識別可能な識別子を示す項目である。物理チャンクID523は、ドライブ230において物理チャンクを一意に識別可能な識別子を示す項目である。物理容量524は、チャンクグループに割り当てられる物理チャンクの容量を示す項目である。状態525は、物理チャンクの状態(正常、障害など)を示す項目である。
なお、図5では、ストレージシステム100で物理チャンクの容量が固定(100GB)である例を示したが、これに限られるものではない。例えば、物理チャンクの容量は、チャンクグループ毎に物理容量(サイズ)を異ならせてもよい。
図6は、論理チャンク管理表群360の一例を示す図である。論理チャンク管理表群360は、切り出された論理チャンクを管理するための表群である。論理チャンク管理表群360は、例えば、クラスタ制御部310、IO制御部320等により管理される。
論理チャンクは、各チャンクグループから切り出された各ストレージノード120のプールに容量を割り当てる単位である。1つのチャンクグループから1つの論理チャンクを切り出してもよいし、複数の論理チャンクを切り出してよい。付言するならば、パリティグループ(RAIDグループ)から論理ユニット(LU:Logical Unit)を切り出すことと同様の考え方である。
論理チャンク管理表群360は、チャンクグループ毎に論理チャンク管理表600を含んで構成される。論理チャンク管理表600には、論理チャンクID601および容量602の情報が対応付けられて格納される。
論理チャンクID601は、ストレージシステム100において論理チャンクを一意に識別可能な識別子を示す項目である。容量602は、論理チャンクの容量を示す項目である。例えば、図5に示すように、チャンクグループID「3」では、実効容量514が「800GB」であるが、図6では、容量602Cが「80GB」の論理チャンクを3つしか切り出していないので、「80GB」の論理チャンクを7つ追加で切り出すことができることが分かる。なお、図6の例では、一のチャンクグループで容量602が同じ値(100GBまたは80GB)として示しているが、これに限られるものではなく、一のチャンクグループでも容量602の値が異なっていてもよい(同じチャンクグループでも異なる容量の論理チャンクが混在していてもよい)。
図7~図9は、プール管理表群370の一例を示す図である。プール管理表群370は、プールを管理するための表群である。プール管理表群370は、例えば、IO制御部320により管理される。
プール管理表群370は、ストレージノード120に設けられるプールを管理するためのプール管理表710と、プールに割り当てられた論理チャンクを管理するためのプール割当論理チャンク管理表720とを含んで構成される。プール管理表710およびプール割当論理チャンク管理表720は、ストレージノード120毎に設けられる。
プール管理表710には、プールID711、容量712、および使用容量713の情報が対応付けられて格納される。
プールID711は、ストレージノード120においてプールを一意に識別可能な識別子を示す項目である。容量712は、プールに割り当てられている論理チャンクの容量の合計を示す項目である。使用容量713は、実際に使用されている容量を示す項目である。
プール割当論理チャンク管理表720は、論理チャンクID721の情報が格納されている。論理チャンクID721は、ストレージシステム100において論理チャンクを一意に識別可能な識別子を示す項目である。なお、データを格納するためには、プールに1つ以上の論理チャンクが割り当てられている必要がある。
ここで、図7は、データ保護レベルの変換の単位がストレージシステム100全体であるときのデータ保護レベルの変換前のプール管理表群370の一例を示す図である。
本例では、ストレージシステム100において、ストレージノードID「1」のストレージノード120(第1のストレージノード120)には、論理チャンクID「11」の論理チャンクおよび論理チャンクID「14」の論理チャンクが割り当てられたプールID「1」のプールが設けられている。また、ストレージシステム100において、ストレージノードID「2」のストレージノード120(第2のストレージノード120)には、論理チャンクID「12」の論理チャンクが割り当てられたプールID「1」のプールが設けられている。また、ストレージシステム100において、ストレージノードID「3」のストレージノード120(第3のストレージノード120)には、論理チャンクID「13」の論理チャンクが割り当てられたプールID「1」のプールが設けられている。
また、本例では、第1のストレージノード120のプールと、第2のストレージノード120のプールと、第3のストレージノード120のプールとにおいて、同じデータ保護レベル(例えば、二重化のデータ保護レベル)が設定され、データ保護レベルの変換の単位がストレージシステム100全体であるので、これらのプールに対して、指定されたデータ保護レベル(例えば、4D1Pのデータ保護レベル)への変換が実施される。なお、この際、各プールにおけるデータ保護レベルの変換(例えば、データの移行)は、並列に行われてもよいし、直列に(順次に)行われてもよい。
ここで、データ保護レベルの変換においては、例えば、移行元のプールに対応して、移行先のプールが設けられる。例えば、データ保護レベルの変換中は、図8に示すように、移行元のプール(プールID「1」のプール)に係る情報と移行先のプール(プールID「2」のプール)に係る情報とがプール管理表群370に格納される。
図8は、データ保護レベルの変換の単位がストレージシステム100全体であるときのデータ保護レベルの変換中のプール管理表群370の一例を示す図である。本例では、第1のストレージノード120、第2のストレージノード120、第3のストレージノード120の各々において、プールID「1」のプール(移行元のプール)に対してプールID「2」のプール(移行先のプール)が作成されていることが示されている。
また、データ保護レベルの変換後は、図9に示すように、移行元のプールに係る情報がプール管理表群370から削除される。
図9は、データ保護レベルの変換の単位がストレージシステム100全体であるときのデータ保護レベルの変換後のプール管理表群370の一例を示す図である。本例では、第1のストレージノード120、第2のストレージノード120、第3のストレージノード120の各々において、プールID「1」のプール(移行元のプール)が削除されていることが示されている。
なお、図7~図9では、各ストレージノード120にプールID「1」(移行元のプール)およびプールID「2」(移行先のプール)が設けられる例を示したが、移行元のプールおよび移行先のプールは、ストレージノード120内に複数存在することもある。
図10は、ボリューム管理表群380の一例を示す図である。ボリューム管理表群380は、プールから切り出されたボリュームを管理するための表群である。ボリューム管理表群380は、例えば、IO制御部320により管理される。ボリューム管理表群380は、ストレージノード120のプールごとにボリューム管理表1000を含んで構成される。
ボリューム管理表1000には、ボリュームID1001、容量1002、使用容量1003の情報が対応付けられて格納される。
ボリュームID1001は、ストレージシステム100においてボリュームを一意に識別可能な識別子を示す項目である。容量1002は、ボリュームの容量を示す項目である。使用容量1003は、実際に使用されている容量を示す項目である。
本実施の形態では、ストレージシステム100において、データ保護レベルの変換は、例えば、図11に示す手順で行われる。
図11は、データ保護レベルの変換のイメージ図である。データ保護レベルの変換を行う単位としては、ストレージシステム100全体、ストレージクラスタ130のサブセット(例えば、プロテクションドメイン)、プール、またはボリュームが選択可能である。図11では、管理ノード1110を介して、データ保護レベルの変換を行う単位としてプール1120Cが選択され、データ保護レベルを4D1Pに変換するように指示されたケースを示す。
(手順1101:データ保護レベルの変換の指定)
管理者が操作する管理ノード1110は、クラスタ制御部310Aに対して、テータ保護レベルに係る情報(本例では、データ保護レベルの変換を行う単位としてプール1120Cが選択されていることを示す情報、データ保護レベルを4D1Pに変換することを示す情報など)を含む変換指示(要求の一例)を出す。
(手順1102:ストレージノード120の選定)
クラスタ制御部310Aは、変換指示に基づいて、変換後のデータ保護レベルの設定に必要なストレージノード数(例えば、二重化の場合、「2」以上、ECの場合、m個のデータ領域の内、n個の障害に耐える構成(mDnP)では、m+n以上)をストレージクラスタ130内またはプロテクションドメイン内から選択する。
(手順1103:チャンクグループの生成)
クラスタ制御部310Aは、変換後のデータ保護レベルを構成するチャンクのチャンクグループを生成し、チャンクグループを組むように、選択した各ストレージノード120のデータ保護制御部330に指示を出す。また、クラスタ制御部310Aは、移行元のプールから移行先のプールにデータを移行するようにIO制御部320Cに指示を出す。
(手順1104:データの移行)
IO制御部320Cは、変換後のデータ保護レベルに対応したプール1130Cを作成し、プール1120Cからプール1130Cへのボリュームのマイグレーションを実行する。なお、ボリュームのマイグレーションについては、既知の技術を採用可能であり、ボリュームのマイグレーション中は、コンピュートノード110からのIOが引き継がれる。
ここで、図11において、各ストレージノード120の「Drive1」および「Drive2」には、データ領域の一部(物理チャンク)が示されている。かかる物理チャンクに付したPx-yにおけるyは、物理チャンクを構成するチャンクグループのチャンクグループIDを示し、xは、チャンクグループから切り出された論理チャンクが割り当てられたプールのプールIDを示す。
なお、ストレージノード120Aにクラスタ制御部310Aが設けられる構成を示したが、全てのストレージノード120にクラスタ制御部310が設けられていてもよい。
次に、データ保護レベルの変換に係る処理について図12~図18を用いて説明する。
図12は、クラスタ制御部310が実行する処理に係るフローチャートの一例を示す図である。
まず、クラスタ制御部310は、管理ノードから変換指示を受信する(ステップS1201)。変換指示には、例えば、データ保護レベルの変換の単位が選択されていることを示す情報(ストレージシステム100全体、プロテクションドメインID、プールID、またはボリュームIDの情報)と、変換前のデータ保護レベルを示す情報(データ保護レベル(例えば、二重化)、ストレージノードIDの情報など)と、変換後のデータ保護レベルを示す情報(データ保護レベル(例えば、4D1P)など)とが含まれる。なお、予め指定された単位での変換とする場合、データ保護レベルの変換の単位が選択されていることを示す情報は含まれていなくてもよい。
続いて、クラスタ制御部310は、移行元(変換対象)のプールが設定されているストレージノード120に対して移行先のプールを作成するように指示(プール作成指示)を出す(ステップS1202)。
例えば、クラスタ制御部310は、データ保護レベルの変換の単位として、ストレージシステム100全体が選択されている場合、ストレージシステム100において、変換前のデータ保護レベルが設定されているプールが設けられるストレージノード120全てに対して移行先のプールを作成するように指示を出す。
また、例えば、クラスタ制御部310は、データ保護レベルの変換の単位として、プロテクションドメインが選択されている場合、当該プロテクションドメインにおいて、変換前のデータ保護レベルが設定されているプールが設けられるストレージノード120全てに対して移行先のプールを作成するように指示を出す。
また、例えば、クラスタ制御部310は、データ保護レベルの変換の単位として、プールが選択されている場合、当該プールが設けられるストレージノード120に対して移行先のプールを作成するように指示を出す。
また、例えば、クラスタ制御部310は、データ保護レベルの変換の単位として、ボリュームが選択されている場合、当該ボリュームが切り出されたプールが設けられるストレージノード120に対して移行先のプールを作成するように指示を出す。
なお、プール作成指示を受信したストレージノード120のIO制御部320は、移行先のプールを作成する。この際、IO制御部320は、変換後のデータ保護レベルが設定されているプールが既に存在する場合、プールを作成しなくてもよい。
続いて、クラスタ制御部310は、チャンクグループ作成処理を行う(ステップS1203)。チャンクグループ作成処理では、クラスタ制御部310は、変換後のデータ保護レベルの設定に必要なストレージノード数をストレージクラスタ130内またはプロテクションドメイン内から選択したり、変換後のデータ保護レベルを構成する物理チャンクのチャンクグループを生成したりする。
ここで、チャンクグループ作成処理については、上述したように、変換指示に基づいて必要となるデータ量のチャンクグループを予め作成し、かつ、後述するように、コピー要のデータ保護レベル変換処理におけるコピー処理の進捗に合わせて必要に応じて作成してもよいし、何れか一方のタイミングでチャンクグループ作成処理を行うようにしてもよい。なお、チャンクグループ作成処理については、図16を用いて後述する。
クラスタ制御部310は、移行元のプールおよび移行先のプールが設定されているストレージノード120に対して移行元のプールから移行先のプールにデータを移行するように指示(データ移行指示)を出す(ステップS1204)。データ移行指示を受信したストレージノード120は、後述する図13に示すデータ移行処理を実行する。データ移行処理では、移行元のプールから移行先のプールにデータが移行される。
クラスタ制御部310は、作成したチャンクグループに係る各ストレージノード120(ステップS1203で選択したストレージノード120)のデータ保護制御部330に対して、チャンクグループを組むように指示(チャンクグループ設定指示)を出す(ステップS1205)。
チャンクグループ設定指示を受信したデータ保護制御部330は、変換後のデータ保護レベルに対応したチャンクグループを組むことで、変換後のデータ保護レベルでIO制御部320から受け取ったデータを管理(保護)する。
図13は、クラスタ制御部310から送信されるデータ移行指示に基づいて、IO制御部320が実行するデータ移行処理に係るフローチャートの一例を示す図である。なお、移行元のプールが複数ある場合は、データ移行処理は、移行元のプールの数分、繰り返される。
ここで、データ移行指示には、例えば、移行元のデータ保護レベル、移行元のストレージノードID、移行元のプールID、移行先のデータ保護レベル、移行先のストレージノードID、移行先のプールIDの情報が含まれる。
まず、IO制御部320は、データ保護レベルの変換にデータのコピーが必要であるか否か(変換前のデータ保護レベルのデータと変換後のデータ保護レベルのデータとが一致するか否か)を判定する(ステップS1301)。IO制御部320は、必要であると判定した場合、ステップS1302に処理を移し、必要でないと判定した場合、ステップS1303に処理を移す。例えば、IO制御部320は、移行元のデータ保護レベルを二重化、三重化などのレプリケーションから、移行先のデータ保護レベルを保護無しにする場合、データ保護レベルの変換にデータのコピーが必要でないと判定する。
ステップS1302では、IO制御部320は、コピー要のデータ保護レベル変換処理を行い、データ移行処理を終了する。コピー要のデータ保護レベル変換処理では、例えば、移行元のプールの全ボリュームが移行先にマイグレーション(コピー)される。なお、コピー要のデータ保護レベル変換処理については、図14~図17Cを用いて後述する。
ステップS1303では、IO制御部320は、コピー不要のデータ保護レベル変換処理を行い、データ移行処理を終了する。コピー不要のデータ保護レベル変換処理では、移行元のプールを構成する全ての論理チャンクが移行先のプールに付け替えられ、データのコピーが行われない。なお、コピー不要のデータ保護レベル変換処理については、図18を用いて後述する。
図14は、コピー要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。なお、移行先のプールについては、適宜のタイミングで作成されているものとしてコピー要のデータ保護レベル変換処理を説明する。
まず、IO制御部320は、ボリューム管理表1000に基づいて移行元のプールから切り出されたボリュームのボリュームIDのリストを作成する(ステップS1401)。
ステップS1402では、IO制御部320は、ボリュームIDのリストから先頭のボリュームIDを取得する。
続いて、IO制御部320は、プール管理表810の容量および使用容量と、ボリューム管理表1000の使用容量とに基づいて、取得したボリュームIDのボリューム(当該ボリューム)をマイグレーションする容量があるか否かを判定する(ステップS1403)。IO制御部320は、容量があると判定した場合、ステップS1405に処理を移し、容量がないと判定した場合、ステップS1404に処理を移す。
ステップS1404では、IO制御部320は、移行先プール論理チャンク割当処理を行い、ステップS1405に処理を移す。移行先プール論理チャンク割当処理では、移行先のプールに論理チャンクが割り当てられたり、チャンクグループが作成されたりする。なお、移行先プール論理チャンク割当処理については、図15を用いて後述する。
ステップS1405では、IO制御部320は、移行先のプールに当該ボリュームをマイグレーション(コピー)する。
続いて、IO制御部320は、移行元のプールから当該ボリュームを削除し、ボリュームIDのリストから当該ボリュームのボリュームIDを削除する(ステップS1406)。
続いて、IO制御部320は、プール縮小処理を実施するか否かを判定する(ステップS1407)。IO制御部320は、実施すると判定した場合、ステップS1408に処理を移し、実施しないと判定した場合、ステップS1409に処理を移す。例えば、IO制御部320は、ノード単位でデータ保護レベル変換処理を行う際に、変換前に加えて変換後のデータの容量を格納できない場合(例えば、データ保護レベル変換前のノードの使用容量が全容量の50%を超えているような場合)、プール縮小処理を実施すると判定する。
ステップS1408では、IO制御部320は、プール縮小処理を行う。プール縮小処理では、IO制御部320は、例えば、移行元のプールの空き容量が削除対象の論理チャンクの空き容量以上ある場合、プール内でデータを移動して削除対象の論理チャンクを空にする。なお、プール縮小処理については、図17Aを用いて後述する。
続いて、IO制御部320は、ボリュームIDのリストが空であるか否かを判定する(ステップS1409)。IO制御部320は、空であると判定した場合、ステップS1410に処理を移し、空でないと判定した場合、ステップS1402に処理を移す。
ステップS1410では、IO制御部320は、プール削除処理を行い、コピー要のデータ保護レベル変換処理を終了する。プール削除処理では、IO制御部320は、例えば、プールに論理チャンクが残っている場合は、全て削除してからプールを削除する。なお、プール削除処理については、図17Bを用いて後述する。
図15は、移行先プール論理チャンク割当処理に係るフローチャートの一例を示す図である。
まず、IO制御部320は、チャンクグループ管理表510に基づいて、データ保護レベルが合致するチャンクグループのチャンクグループIDのリストを作成する(ステップS1501)。
ステップS1502では、IO制御部320は、チャンクグループIDのリストから先頭のチャンクグループIDを取得する。
続いて、IO制御部320は、チャンクグループ管理表510の実効容量と、論理チャンク管理表600の容量とに基づいて、取得したチャンクグループIDのチャンクグループ(当該チャンクグループ)から、マイグレーションに必要な容量以上の論理チャンクを切り出せるか否か(作れるか否か)を判定する(ステップS1503)。IO制御部320は、切り出せると判定した場合、ステップS1506に処理を移し、切り出せないと判定した場合、ステップS1504に処理を移す。
ステップS1504では、IO制御部320は、チャンクグループIDのリストが空であるか否かを判定する。IO制御部320は、空であると判定した場合、ステップS1505に処理を移し、空でないと判定した場合、当該チャンクグループのチャンクグループIDをリストから削除し、ステップS1502に処理を移す。
ステップS1505では、IO制御部320は、チャンクグループ作成処理を行う。チャンクグループ作成処理では、チャンクグループが作成される。なお、チャンクグループ作成処理については、図16を用いて後述する。
ステップS1506では、IO制御部320は、プール管理表群370を更新し、論理チャンクをプールに割り当て、移行先プール論理チャンク割当処理を終了する。
図16は、チャンクグループ作成処理に係るフローチャートの一例を示す図である。なお、以下では、処理の主体をIO制御部320として説明するが、ステップS1203から呼び出されたときは、処理の主体がクラスタ制御部310となる。
まず、IO制御部320は、ストレージノード管理表340に基づいて、移行元のプールが設定されているストレージノード120が属するプロテクションドメインのドメインID(当該ドメインID)が対応付けられているストレージノードIDのリストを作成する(ステップS1601)。
続いて、IO制御部320は、指定されたデータ保護レベル(変換後のデータ保護レベル)の設定に必要な数のストレージノード120(ストレージノード数)があるか否かを判定する(ステップS1602)。IO制御部320は、ストレージノード数があると判定した場合、ステップS1603に処理を移し、ストレージノード数がないと判定した場合、エラー処理を行い、チャンクグループ作成処理を終了する。例えば、エラー処理では、所定の時間経過後、上述したように各ストレージノード120における空き容量が変更され得るので、再びチャンクグループ作成処理が行われるようにしてもよい。
ステップS1603では、IO制御部320は、ストレージノード管理表340に基づいて、ストレージノードIDのリストをストレージノード120の空き容量(=容量-使用容量)が多い順にソートする。
続いて、IO制御部320は、ストレージノードIDのリストの先頭から、データ保護レベルの設定に必要なストレージノード数でチャンクグループを作成する(ステップS1604)。かかる処理によれば、空き容量の多いストレージノード120から用いられるので、ストレージノード120の使用容量を平準化できるようになる。なお、この際、例えば、IO制御部320は、作成したチャンクグループに係る各ストレージノード120のデータ保護制御部330に対して、チャンクグループを組むように指示(チャンクグループ設定指示)を出す。
続いて、IO制御部320は、作成したチャンクグループの情報を、チャンクグループ管理表群350に登録し(ステップS1605)、チャンクグループ作成処理を終了する。
図17Aは、プール縮小処理に係るフローチャートの一例を示す図である。
まず、IO制御部320は、プール管理表810に基づいて移行元のプール(当該プール)の論理チャンクIDのリストを作成する(ステップS1701)。
続いて、IO制御部320は、論理チャンクIDのリストが空であるか否かを判定する(ステップS1702)。IO制御部320は、空であると判定した場合、プール縮小処理を終了し、空でないと判定した場合、ステップS1703に処理を移す。
ステップS1703では、IO制御部320は、論理チャンクIDのリストから先頭の論理チャンクIDを取得する。
続いて、IO制御部320は、取得した論理チャンクIDの論理チャンク(当該論理チャンク)の容量がプールの空き容量より小さいか否かを判定する(ステップS1704)。IO制御部320は、小さいと判定した場合、ステップS1705に処理を移し、小さくないと判定した場合、ステップS1708に処理を移す。
ステップS1705では、IO制御部320は、当該論理チャンクに使用中のページがあるか否かを判定する。IO制御部320は、あると判定した場合、ステップS1706に処理を移し、ないと判定した場合、ステップS1707に処理を移す。
ステップS1706では、IO制御部320は、当該論理チャンクのページを他の論理チャンクへコピーする。
ステップS1707では、IO制御部320は、チャンク削除処理を行う。チャンク削除処理では、当該論理チャンク(削除対象の論理チャンク)が削除される。なお、チャンク削除処理については、図17Cを用いて後述する。
ステップS1708では、IO制御部320は、論理チャンクIDのリストから先頭の論理チャンクIDを削除し、ステップS1702に処理を移す。
図17Bは、プール削除処理に係るフローチャートの一例を示す図である。
まず、IO制御部320は、プール管理表810に基づいて移行元のプール(当該プール)の論理チャンクIDのリストを作成する(ステップS1711)。
続いて、IO制御部320は、論理チャンクIDのリストが空であるか否かを判定する(ステップS1712)。IO制御部320は、空であると判定した場合、ステップS1716に処理を移し、空でないと判定した場合、ステップS1713に処理を移す。
ステップS1713では、IO制御部320は、論理チャンクIDのリストから先頭の論理チャンクIDを取得する。
続いて、IO制御部320は、チャンク削除処理を行う(ステップS1714)。チャンク削除処理では、取得した論理チャンクIDの論理チャンク(削除対象の論理チャンク)が削除される。なお、チャンク削除処理については、図17Cを用いて後述する。
続いて、IO制御部320は、論理チャンクIDのリストから先頭の論理チャンクIDを削除し(ステップS1715)、ステップS1712に処理を移す。
ステップS1716では、IO制御部320は、プール管理表810から当該プールの情報を削除し、プール削除処理を終了する。
図17Cは、チャンク削除処理に係るフローチャートの一例を示す図である。
まず、IO制御部320は、移行元のプールに属する論理チャンクを割り当てたチャンクグループのチャンクグループID(当該チャンクグループID)の論理チャンク管理表600を更新し、削除対象の論理チャンクの情報を削除する(ステップS1721)。
続いて、IO制御部320は、当該チャンクグループIDの論理チャンクがあるか否かを判定する(ステップS1722)。IO制御部320は、あると判定した場合、チャンク削除処理を終了し、ないと判定した場合、ステップS1723に処理を移す。
ステップS1723では、IO制御部320は、当該チャンクグループIDの論理チャンク管理表600に論理チャンクがなくなったので、チャンクグループ管理表群350の当該チャンクグループIDの物理領域管理表520を更新し、物理チャンクの情報を削除し、チャンクグループ管理表510を更新し、チャンクグループの情報を削除する。
続いて、IO制御部320は、ストレージノード管理表340の中で、情報を削除した物理チャンクを持つストレージノード120の使用容量を更新し(ステップS1724)、チャンク削除処理を終了する。なお、IO制御部320は、物理チャンクの容量だけ、使用容量を減らす。かかる処理によれば、データ移行の進捗に合わせて、ストレージノード120の使用容量が更新されるので、データ移行のために確保が必要となる容量を低減することができるようになる。
図18は、コピー不要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。
まず、IO制御部320は、プール管理表群370に基づいて、移行元のプールの論理チャンクIDのリストを作成する(ステップS1801)。
ステップS1802では、IO制御部320は、論理チャンクIDのリストから先頭の論理チャンクIDを取得する。
続いて、IO制御部320は、チャンクグループ管理表群350を更新し、取得した論理チャンクID(当該論理チャンクID)が属するチャンクグループの物理チャンクを1つだけ残して削除し、チャンクグループのデータ保護レベルを保護無し(No Protection)に変更する(ステップS1803)。
続いて、IO制御部320は、プール管理表群370を更新し、移行元のプールに属する論理チャンク(当該論理チャンク)を移行元のプールから削除し、移行先のプールに追加する(ステップS1804)。
続いて、IO制御部320は、論理チャンクIDのリストから先頭の論理チャンクIDを削除する(ステップS1805)。
続いて、IO制御部320は、論理チャンクIDのリストが空であるか否かを判定する(ステップS1806)。IO制御部320は、空であると判定した場合、ステップS1807に処理を移し、空でないと判定した場合、ステップS1802に処理を移す。
ステップS1807では、IO制御部320は、図17Bに示すプール削除処理を行い、コピー不要のデータ保護レベル変換処理を終了する。
本実施の形態では、変換後のデータ保護レベルを構成するために必要なストレージノード120を選定し、選定した全てのストレージノード120に対して変換後のデータ保護レベルでデータを保護するように指示を与えることで、複数のストレージノード120に跨ったデータ保護レベルの変換を行うことができる。
(2)第2の実施の形態
本実施の形態では、異なるストレージノードで異なるデータ保護レベルのプールを設定している際に、ストレージノードを跨ってボリュームをマイグレーションすることでデータ保護レベルを変換する点が第1の実施の形態と主に異なる。以下では、第1の実施の形態と異なる構成について主に説明する。なお、第1の実施の形態と同じ構成については、同じ符号を用いてその説明を適宜省略する。
図19は、データ保護レベルの変換のイメージ図である。
ストレージシステム1900は、コンピュートノード110と、ストレージノード120と、管理ノード1110とを含んで構成される。
ストレージシステム1900において、各ストレージノード120では、1種類のデータ保護レベルが設定されていている。例えば、ストレージノード120Cでは、データ保護レベルとして二重化が対応付けられている。ストレージノード120Dでは、データ保護レベルとして4D1Pが対応付けられている。付言するならば、ストレージシステム1900では、同じデータ保護レベルが設定されたストレージノード120が複数あってもよい。
また、図19では、ストレージノード120Cにプール1910Cが設けられ、ストレージノード120Dにプール1910Dが設けられる例を示したが、これに限られるものではない。全てのストレージノード120にプールが設けられていてもよいし、ストレージノード120に複数のプールが設けられていてもよい。
(手順1901:データ保護レベルの変換の指定)
管理者が操作する管理ノード1110は、クラスタ制御部310Aに対して、テータ保護レベルに係る情報(本例では、データ保護レベルの変換を行う単位としてプール1910Cが選択されていることを示す情報、データ保護レベルを4D1Pに変換することを示す情報など)を含む変換指示(要求の一例)を出す。
(手順1902:ストレージノード120の選定)
クラスタ制御部310Aは、変換指示に基づいて、変換後のデータ保護レベルの設定に必要なストレージノード数(例えば、mDnPの場合、m+n以上)をストレージクラスタ130内またはプロテクション内から選択する。
(手順1903:チャンクグループの生成)
クラスタ制御部310Aは、変換後のデータ保護レベルを構成するチャンクのチャンクグループを生成し、チャンクグループを組むように、選択した各ストレージノード120のデータ保護制御部330に指示を出す。また、クラスタ制御部310Aは、移行元のプールから移行先のプールにデータを移行するようにIO制御部320CおよびIO制御部320Dに指示を出す。
(手順1904:データの移行)
IO制御部320Dは、変換後のデータ保護レベルに対応したプール1910Dを作成する。IO制御部320CとIO制御部320Dとは、プール1910Cからプール1910Dへのボリュームのマイグレーションを実行する。
上述した構成では、異なるストレージノードで異なるデータ保護レベルのプールを設定しているケースであっても、複数のストレージノード120に跨ったデータ保護レベルの変換を行うことができる。
(3)第3の実施の形態
本実施の形態では、各プロテクションドメインで異なるデータ保護レベルを設定している際に、プロテクションドメインを跨ってボリュームをマイグレーションすることでデータ保護レベルを変換する点が第1の実施の形態と主に異なる。以下では、第1の実施の形態と異なる構成について主に説明する。なお、第1の実施の形態と同じ構成については、同じ符号を用いてその説明を適宜省略する。
図20は、データ保護レベルの変換のイメージ図である。
ストレージシステム2000は、コンピュートノード110と、ストレージノード120と、管理ノード1110とを含んで構成される。
ストレージシステム2000では、複数のプロテクションドメイン2010が定義され、各プロテクションドメインでは、異なるデータ保護レベルが設定されている。なお、図20では、第1のプロテクションドメイン2010A、第2のプロテクションドメイン2010B、および第3のプロテクションドメイン2010Cが示されている。
第1のプロテクションドメイン2010Aでは、データ保護レベルとして二重化が設定されている。第2のプロテクションドメイン2010Bでは、データ保護レベルとして4D1Pが設定されている。第3のプロテクションドメイン2010Cでは、データ保護レベルとして4D2Pが設定されている。
なお、図20では、ストレージノード120Bにプール2020Bが設けられ、ストレージノード120Fにプール2020Fが設けられる例を示したが、これに限られるものではない。全てのストレージノード120にプールが設けられていてもよいし、ストレージノード120に複数のプールが設けられていてもよい。
(手順2001:データ保護レベルの変換の指定)
管理者が操作する管理ノード1110は、クラスタ制御部310Aに対して、テータ保護レベルに係る情報(本例では、データ保護レベルの変換を行う単位としてプール2020Bが選択されていることを示す情報、データ保護レベルを4D1Pに変換することを示す情報など)を含む変換指示を出す。
(手順2002:プロテクションドメイン2010の選定)
クラスタ制御部310Aは、変換指示に基づいて、変換後のデータ保護レベルを提供しているプロテクションドメイン2010Bをストレージクラスタ130内から選択する。なお、クラスタ制御部310Aは、変換指示に基づいて、変換後のデータ保護レベルの設定に必要なストレージノード数(例えば、mDnPの場合、m+n以上)をストレージクラスタ130内またはプロテクションドメイン2010内から選択してもよい。
また、クラスタ制御部310Aは、移行元のプールから移行先のプールにデータを移行するようにIO制御部320BおよびIO制御部320Fに指示を出す。なお、クラスタ制御部310Aは、予め設けられたプール2020Fを用いる構成に限られるものではなく、プールを新規に作成してもよい。例えば、クラスタ制御部310Aは、選択したプロテクションドメイン2010Bに属するストレージノード120のうち最もCPU負荷が低いストレージノード120を選定するようにしてもよい。この場合、選定されたストレージノード120のIO制御部320は、変換後のデータ保護レベルに対応したプールを作成する。
(手順2003:データの移行)
IO制御部320BとIO制御部320Fとは、プール2020Bからプール2020Fへのボリュームのマイグレーションを実行する。
上述した構成では、プロテクションドメインごとにデータ保護レベルが設定されているので、1つのストレージノード120に異なるデータ保護レベルに係る物理チャンクが混在することがなく、より適切にデータを保護できるようになる。
(4)他の実施の形態
なお上述の実施の形態においては、本発明をストレージシステムに適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のシステム、装置、方法、プログラムに広く適用することができる。
また上述の実施の形態においては、クラスタ制御部310、IO制御部320、データ保護制御部330の各々の処理を分けて述べたが、本発明はこれに限らず、クラスタ制御部310、IO制御部320、データ保護制御部330の各々の処理については、何れの制御部が実行してもよい。なお、各制御部は、ハイパーバイザに含まれて動作するものであってもよいし、ハイパーバイザ上で動作するものであってもよい。
また上述の実施の形態においては、説明の便宜上、XXテーブルを用いて各種のデータを説明したが、データ構造は限定されるものではなく、XX情報などと表現してもよい。なお、各テーブルの構成は、一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
また、上記の説明において各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記憶装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
また上述した構成については、例えば、下記のような特徴を有する。
(第1の特徴的構成)
複数のストレージノード(例えば、ストレージノード120)を含んで構成されるストレージシステム(ストレージシステム100、ストレージシステム1900、ストレージシステム2000等)であって、データ保護レベルの変換に係る情報(例えば、変換指示)に基づいて、上記複数のストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノード(二重化の設定の場合、データ移行に必要な容量を有するストレージノード120を2つ、4D1Pの設定の場合、データ移行に必要な容量を有するストレージノード120を5つ等)を選定する選定部(例えば、クラスタ制御部310、IO制御部320)を備え、上記選定部により選定されたストレージノード(例えば、データ保護制御部330)は、変換後のデータ保護レベルでデータを管理することを特徴とする。
上記構成では、変換後のデータ保護レベルの設定に必要なストレージノードが選定され、選定されたストレージノードにおいて変換後のデータ保護レベルでデータが管理されるので、例えば、複数のストレージノードに跨ったデータ保護レベルの変換を実現できる。
(第2の特徴的構成)
上記複数のストレージノードは、複数のサブセット(例えば、プロテクションドメイン)を含む所定のストレージクラスタに属し、上記選定部は、データ保護レベルの変換が指定されたデータを扱うストレージノードが属するサブセットの中からストレージノードを選定することを特徴とする。
上記構成では、例えば、管理者は、変換後のデータ保護レベルにおいてデータが拡散する範囲を容易に把握できるようになる。
(第3の特徴的構成)
上記選定部は、空き容量が大きいストレージノードから順にストレージノードを選定することを特徴とする。
上記構成では、例えば、ストレージノードの使用容量を平準化できるようになる。
(第4の特徴的構成)
所定のストレージノードは、データ保護レベルが設定されたストレージプールのデータを移行する制御部(例えば、IO制御部320)を備え、第1のデータ保護レベルが設定された第1のストレージプール(例えば、プール1120C、プール1910C、プール2020B)と、第2のデータ保護レベルが設定された第2のストレージプール(例えば、プール1130C、プール1910D、プール2020F)とが設けられ、上記制御部は、データ保護レベルを変換する旨の要求が上記第1のデータ保護レベルを上記第2のデータ保護レベルに変換する旨の要求である場合、上記第1のストレージプールから上記第2のストレージプールにデータを移行することを特徴とする。
上記構成では、例えば、第1のストレージプールから第2のストレージプールにデータを移行することで、変換前のデータ保護レベルのデータが変換後のデータ保護レベルのデータに変換される。
(第5の特徴的構成)
上記第1のストレージプールには、複数の物理容量(例えば、物理チャンク、論理チャンク)が割り当てられ、上記制御部は、上記第1のストレージプールから上記第2のストレージプールにデータをコピーして上記データを削除することにより、上記第1のストレージプールから上記第2のストレージプールにデータを移行する際、上記第1のストレージプールから上記第2のストレージプールに移行したデータの容量に応じて、上記第1のストレージプールから割り当てられている物理容量を外すことを特徴とする。
上記構成では、例えば、データ保護レベルの変換中であっても、外された物理容量を利用できるようになる。
(第6の特徴的構成)
上記所定のストレージノードには、第1のストレージノードと、第2のストレージノードとが含まれ、上記第1のストレージノードの上記制御部が上記第1のストレージプールから上記第2のストレージプールにデータを移行する処理と、上記第2のストレージノードの上記制御部が上記第1のストレージプールから上記第2のストレージプールにデータを移行する処理とが並列に行われることを特徴とする。
上記構成では、例えば、第1のストレージノードのデータを移行する処理と、第2のストレージノードのデータを移行する処理とが並列に行われるので、データ保護レベルの変換においてデータの移行にかかる処理時間を短縮できるようになる。
(第7の特徴的構成)
上記第1のストレージプールには、物理容量が割り当てられ、上記制御部は、データ保護レベルを変換する旨の要求(例えば、変換指示)に基づいて、変換前のデータ保護レベルのデータと変換後のデータ保護レベルのデータとが一致するか否かを判定し、一致すると判定した場合、上記第2のストレージプールに上記第1のストレージプールの物理容量を割り当てるように、ストレージプールと物理容量とが対応付けられている管理情報(例えば、プール管理表群370)を変更することで、上記第1のストレージプールから上記第2のストレージプールにデータを移行することを特徴とする。
上記構成では、例えば、変換前のデータ保護レベルのデータと変換後のデータ保護レベルのデータとが一致する場合、第1のストレージプールから第2のストレージプールにデータをコピーする必要がなくなるので、データ保護レベルの変換においてデータの移行にかかる処理時間を短縮できるようになる。
(第8の特徴的構成)
データ保護レベルの変換に係る情報には、データ保護レベルの変換を行う単位としてストレージシステム全体、ストレージクラスタのサブセット、ストレージプール、またはボリュームが選択されていることを示す情報が含まれることを特徴とする。
上記構成では、例えば、データ保護レベルの変換を行う単位を指定することができるので、複数のストレージノードに跨ったデータ保護レベルの変換を適切に実行できる。
上記構成によれば、容量効率や信頼性などの要件に基づいてデータ保護レベルを柔軟に変更できるストレージシステムを実現することができる。
100……ストレージシステム、110……コンピュートノード、120……ストレージノード。

Claims (4)

  1. 複数のストレージノードを含んで構成されるストレージシステムであって、
    データが分散する範囲を示すストレージクラスタのサブセットが、複数のデータ保護レベルの各々に対して設けられ、
    各サブセットには、一または複数のストレージノードが属し、
    変換後のデータ保護レベルを示す情報を含むデータ保護レベルの変換に係る情報に基づいて、変換後のデータ保護レベルが設けられているサブセットを特定し、特定したサブセットに属するストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノードを選定する選定部を備え、
    前記選定部により選定されたストレージノードは、変換後のデータ保護レベルでデータを管理し、
    前記選定部は、前記データ保護レベルの変換に係る情報に、データ保護レベルの変換の単位が選択されていることを示す情報として、所定のストレージプールが選択されていることを示す情報が含まれている場合、前記所定のストレージプールが設けられるストレージノードと、移行先のストレージプールが設けられているストレージノードとに対して、データを移行するように指示を出す、
    とを特徴とするストレージシステム。
  2. 前記選定部は、空き容量が大きいストレージノードから順にストレージノードを選定する、
    ことを特徴とする請求項1に記載のストレージシステム。
  3. 各ストレージノードは、データ保護レベルが設定されたストレージプールのデータを移行する制御部を備え、
    第1のデータ保護レベルが設定された第1のストレージプールと、第2のデータ保護レベルが設定された第2のストレージプールとが設けられ、
    前記第1のストレージプールが設けられているストレージノードの第1の制御部と、前記第2のストレージプールが設けられているストレージノードの第2の制御部とは、データ保護レベルを変換する旨の要求が前記第1のデータ保護レベルを前記第2のデータ保護レベルに変換する旨の要求である場合、前記第1のストレージプールから前記第2のストレージプールにデータを移行する、
    ことを特徴とする請求項1に記載のストレージシステム。
  4. 複数のストレージノードを含んで構成されるストレージシステムであって、
    データが分散する範囲を示すストレージクラスタのサブセットが、複数のデータ保護レベルの各々に対して設けられ、
    各サブセットには、一または複数のストレージノードが属し、
    変換後のデータ保護レベルを示す情報を含むデータ保護レベルの変換に係る情報に基づいて、変換後のデータ保護レベルが設けられているサブセットを特定し、特定したサブセットに属するストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノードを選定する選定部を備え、
    前記選定部により選定されたストレージノードは、変換後のデータ保護レベルでデータを管理し、
    各ストレージノードは、データ保護レベルが設定されたストレージプールのデータを移行する制御部を備え、
    前記選定部は、前記データ保護レベルの変換に係る情報に、データ保護レベルの変換の単位が選択されていることを示す情報として、所定のサブセットが選択されていることを示す情報が含まれている場合、前記所定のサブセットにおいて、変換前のデータ保護レベルが設定されている移行元のストレージプールが複数あるときは、移行元のストレージプールが設けられているストレージノードの制御部と、移行先のストレージプールが設けられているストレージノードの制御部とに、移行元のストレージプールから移行先のストレージプールにデータを移行するように、他の移行の完了を待つことなく指示を出す、
    ことを特徴とするストレージシステム。
JP2018226116A 2018-11-30 2018-11-30 ストレージシステム Active JP7015776B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018226116A JP7015776B2 (ja) 2018-11-30 2018-11-30 ストレージシステム
US16/568,543 US10983720B2 (en) 2018-11-30 2019-09-12 System for converting data protection levels of storage nodes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018226116A JP7015776B2 (ja) 2018-11-30 2018-11-30 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2020087378A JP2020087378A (ja) 2020-06-04
JP7015776B2 true JP7015776B2 (ja) 2022-02-03

Family

ID=70850071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018226116A Active JP7015776B2 (ja) 2018-11-30 2018-11-30 ストレージシステム

Country Status (2)

Country Link
US (1) US10983720B2 (ja)
JP (1) JP7015776B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726684B1 (en) * 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244922A (ja) 2001-02-20 2002-08-30 Nec Corp ネットワークストレージシステム
JP2009527824A (ja) 2006-02-16 2009-07-30 アーカイヴァス インコーポレイテッド 固定コンテンツ分散データ・ストレージにおける平均データ・ロス時間改善方法
JP2009238316A (ja) 2008-03-27 2009-10-15 Fujitsu Microelectronics Ltd ストリーム記録制御装置、方法、およびプログラム
WO2014045391A1 (ja) 2012-09-21 2014-03-27 株式会社 東芝 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
JP2016534471A (ja) 2013-10-18 2016-11-04 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited シェアード・ナッシング分散型ストレージ・システムにおけるターゲットにより駆動される独立したデータの完全性および冗長性のリカバリ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162600B2 (en) 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
US9021296B1 (en) 2013-10-18 2015-04-28 Hitachi Data Systems Engineering UK Limited Independent data integrity and redundancy recovery in a storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244922A (ja) 2001-02-20 2002-08-30 Nec Corp ネットワークストレージシステム
JP2009527824A (ja) 2006-02-16 2009-07-30 アーカイヴァス インコーポレイテッド 固定コンテンツ分散データ・ストレージにおける平均データ・ロス時間改善方法
JP2009238316A (ja) 2008-03-27 2009-10-15 Fujitsu Microelectronics Ltd ストリーム記録制御装置、方法、およびプログラム
WO2014045391A1 (ja) 2012-09-21 2014-03-27 株式会社 東芝 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
JP2016534471A (ja) 2013-10-18 2016-11-04 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited シェアード・ナッシング分散型ストレージ・システムにおけるターゲットにより駆動される独立したデータの完全性および冗長性のリカバリ

Also Published As

Publication number Publication date
US20200174672A1 (en) 2020-06-04
JP2020087378A (ja) 2020-06-04
US10983720B2 (en) 2021-04-20

Similar Documents

Publication Publication Date Title
JP7247290B2 (ja) ストレージシステム
JP7312251B2 (ja) 様々なデータ冗長性スキームを備えた、システムにおける利用可能なストレージ空間を改善すること
US8984221B2 (en) Method for assigning storage area and computer system using the same
JP5221157B2 (ja) コンピュータシステム及び物理ディスク回収方法
JP4977554B2 (ja) キャッシュメモリ上のデータをバックアップする機能を備えたストレージシステム
WO2011104741A1 (en) Management system for storage system and method for managing storage system
JP5221756B2 (ja) データ要素を圧縮して格納するストレージシステム及び記憶制御方法
JP5973089B2 (ja) ストレージシステムの移行方式および移行方法
JP5199465B2 (ja) Raidグループを備えたストレージシステム
CN110383251B (zh) 存储系统、计算机可读记录介质、系统的控制方法
WO2012160589A1 (en) Data storage system and controlling method thereof
CN112306389A (zh) 存储系统和节点管理方法
US9513823B2 (en) Data migration
WO2015198441A1 (ja) 計算機システム、管理計算機、および管理方法
JP5957520B2 (ja) データ管理システム及び方法
JP7015776B2 (ja) ストレージシステム
KR20110007055A (ko) 원격 가상 볼륨들을 로컬 물리 볼륨들로 복사하기 위한 장치 및 방법
JP6772202B2 (ja) ストレージシステム及び記憶制御方法
JP7143268B2 (ja) ストレージシステムおよびデータ移行方法
CN114063896A (zh) 存储系统、协作方法以及程序
JP5947336B2 (ja) スナップショット制御装置、スナップショット制御方法およびスナップショット制御プログラム
JP4375062B2 (ja) 記憶装置システム
JP7261756B2 (ja) ストレージシステム、処理方法
JP2023094302A (ja) 情報処理システム及び構成管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220124

R150 Certificate of patent or registration of utility model

Ref document number: 7015776

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350