JP2020154587A - 計算機システム及びデータ管理方法 - Google Patents

計算機システム及びデータ管理方法 Download PDF

Info

Publication number
JP2020154587A
JP2020154587A JP2019051435A JP2019051435A JP2020154587A JP 2020154587 A JP2020154587 A JP 2020154587A JP 2019051435 A JP2019051435 A JP 2019051435A JP 2019051435 A JP2019051435 A JP 2019051435A JP 2020154587 A JP2020154587 A JP 2020154587A
Authority
JP
Japan
Prior art keywords
storage area
data
management unit
control policy
node
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.)
Pending
Application number
JP2019051435A
Other languages
English (en)
Inventor
梓 神
Azusa Jin
梓 神
秀雄 斎藤
Hideo Saito
秀雄 斎藤
隆喜 中村
Takayoshi Nakamura
隆喜 中村
匡邦 揚妻
Masakuni Agetsuma
匡邦 揚妻
司 柴山
Tsukasa Shibayama
司 柴山
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 JP2019051435A priority Critical patent/JP2020154587A/ja
Priority to US16/560,302 priority patent/US11128535B2/en
Publication of JP2020154587A publication Critical patent/JP2020154587A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ミドルウェアの設定を変更することなく、システムの可用性を維持し、かつ、記憶容量を有効に活用したデータ制御を実現する。【解決手段】記憶装置と、サービスを提供するシステムの可用性を実現するためのデータ保護機能を有するデータ管理部に記憶装置に基づく記憶領域を提供し、記憶領域のデータ制御機能を有する記憶領域管理部と、記憶領域の配置及び前記記憶領域に適用するデータ制御ポリシを管理する制御部と、を備える計算機システムであって、制御部は、サービスを提供するシステムの可用性及びサービスの性能に関する設定情報を取得し、設定情報に基づいて、記憶領域に適用するデータ制御ポリシを決定し、記憶領域管理部は、データ制御ポリシに基づいて記憶領域に対する制御を行う。【選択図】図1

Description

本発明は、記憶領域の制御に関する。
近年、様々なデータを活用し、新たな知見の提供等を行うサービスが提供されている。このようなサービスでは、大量のデータを蓄積し、また、管理する必要がある。そのため、業務システムで扱われるデータの蓄積及びアクセスを管理するミドルウェアが稼働するノードと、業務システムにおいて扱われるデータを格納する記憶領域を管理するストレージ管理ソフトウェアが稼働するノードとが連携した計算機システムが採用される。
ミドルウェアはレプリケーション機能等を用いてデータを冗長化するデータ保護機能を有し、ストレージ管理ソフトウェアはErasure Cording機能及びMirroring機能等を用いてデータを冗長化するデータ保護機能を有する。これらのデータ保護機能を用いることによって可用性が高い業務システム(サービス)を実現できる。
例えば、特許文献1には、「分散型ストレージシステムにおいて、少なくとも3以上のノードを含む第1ノードグループが予め定義されている。第1ノードグループのノードそれぞれは、その管理しているストレージデバイスに格納するデータを、第1ノードグループに属する他ノードに送信する。第1ノードは、第1ノードグループの2以上の他ノードから受信したデータの組み合わせを使用して冗長コードを生成し、上記生成した冗長コードを、上記冗長コードを生成したデータを格納するストレージデバイスとは異なるストレージデバイスに格納する。第1のノードが生成する冗長コードのうち、少なくとも二つの冗長コードのデータ組み合わせは、構成するデータの論理アドレスの組み合わせが異なる、分散型ストレージシステム」が記載されている。
国際公開第2016/052665号
ミドルウェア及びストレージ管理ソフトウェアの各々のデータ保護機能を利用した場合、データを格納する記憶容量が大量に必要になるという問題がある。例えば、データを二重化するために、ミドルウェアのレプリケーション機能及びストレージ管理ソフトウェアのMirroring機能を有効化した場合、オリジナルデータのデータ量の4倍の記憶容量が必要となる。また、データ保護機能の処理負荷等によって、サービスの性能及び品質等が低下する可能性がある。
ミドルウェアの設定等を変更して、ミドルウェアのデータ保護機能を無効化し、ストレージソフトウェアのErasure Cording機能のみを有効化した場合、記憶容量の消費量を削減することができる。しかし、ミドルウェアのデータ保護機能を無効化した場合、ミドルウェア層の障害に対する業務システムの可用性が確保できない可能性がある。また、ミドルウェアの設定の変更にはコストがかかるため、現実的ではない。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、記憶装置と、サービスを提供するシステムの可用性を実現するためのデータ保護機能を有するデータ管理部に前記記憶装置に基づく記憶領域を提供し、前記記憶領域のデータ制御機能を有する記憶領域管理部と、前記記憶領域の配置及び前記記憶領域に適用するデータ制御ポリシを管理する制御部と、を備える計算機システムであって、前記制御部は、前記サービスを提供するシステムの可用性及び前記サービスの性能に関する第1の設定情報を取得し、前記第1の設定情報に基づいて、前記記憶領域に適用する前記データ制御ポリシを決定し、前記記憶領域管理部は、前記データ制御ポリシに基づいて、前記記憶領域に対する制御を行う。
本発明の一形態によれば、ミドルウェア(データ管理部)の設定を変更することなく、サービスを提供するシステムの可用性を維持し、かつ、記憶容量を有効に活用したデータ制御を実現できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1の計算機システムの構成例を示す図である。 実施例1のコントローラノードのメモリに格納されるプログラム及び情報の一例を示す図である。 実施例1のストレージノードのメモリに格納されるプログラム及び情報の一例を示す図である。 実施例1のクラスタ管理情報のデータ構造の一例を示す図である。 実施例1のミドルウェア管理情報のデータ構造の一例を示す図である。 実施例1のボリューム管理情報のデータ構造の一例を示す図である。 実施例1のコントローラノードが実行するボリューム初期配置処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行する通常配置処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行する分散配置処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行する集約配置処理の一例を説明するフローチャートである。 実施例1のストレージノードが実行するボリューム生成処理の一例を説明するフローチャートである。 実施例1のストレージノードが実行するWrite処理の一例を説明するフローチャートである。 実施例1のストレージノードが実行するWrite処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行するボリューム移動判定処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行するボリューム移動判定処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行する第1の移動判定処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行する第2の移動判定処理の一例を説明するフローチャートである。 実施例1のコントローラノードが実行する第3の移動判定処理の一例を説明するフローチャートである。
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
図1は、実施例1の計算機システムの構成例を示す図である。
計算機システムは、コントローラノード100、複数の計算機ノード110、及び複数のストレージノード120から構成される。コントローラノード100、複数の計算機ノード110、及び複数のストレージノード120は、ネットワーク150を介して互いに接続される。
ネットワーク150は、WAN(Wide Area Network)、LAN(Local Area Network)、SAN(Storage Area Network)等が考えられる。ネットワーク150の接続方式は無線及び有線のいずれでもよい。また、計算機ノード110及びストレージノード120を接続するネットワーク、コントローラノード100及び計算機ノード110を接続するネットワーク、並びにコントローラノード100及びストレージノード120を接続するネットワークは、それぞれ異なる種別のネットワーク及び接続方式でもよい。
コントローラノード100は、計算機ノード110に提供されるボリューム(記憶領域)に関する管理を行うプログラムが稼働するノードである。
コントローラノード100は、CPU101、メモリ102、記憶装置103、及びネットワークインタフェース104を有する。各ハードウェアはバスを介して互いに接続される。なお、コントローラノード100は、キーボード、マウス、タッチパネル等の入力装置、及びディスプレイ、プリンタ等の出力装置を有してもよい。
CPU101は、メモリ102に格納されるプログラムを実行する。CPU101がプログラムにしたがって処理を実行することによって、特定の機能を実現するモジュールとして動作する。以下の説明では、プログラムを主語に処理を説明する場合、CPU101がプログラムを実行していることを示す。
メモリ102は、CPU101が実行するプログラム及び情報を格納する。また、メモリ102は、プログラムが使用するワークエリアを含む。メモリ102に格納されるプログラム及び情報の詳細は図2を用いて説明する。
記憶装置103は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等、データを永続的に記憶する装置である。メモリ102に格納されるプログラム及び情報は、記憶装置103に格納されてもよい。この場合、CPU101が、記憶装置103からプログラム及び情報を読み出してメモリ102にロードし、ロードされたプログラムを実行する。
ネットワークインタフェース104は、ネットワーク150を介して他のノードと接続するためのインタフェースである。
計算機ノード110は、データの蓄積及びアクセスの制御を行うサービスを提供するミドルウェア(図示省略)が稼働するノードである。少なくとも一つの計算機ノード110から業務システムが構成される。なお、ミドルウェアは、レプリケーション機能等を用いてデータを冗長化するデータ保護機能を有するものとする。
計算機ノード110は、CPU111、メモリ112、記憶装置113、及びネットワークインタフェース114を有する。各ハードウェアはバスを介して互いに接続される。なお、計算機ノード110は入力装置及び出力装置を有してもよい。
CPU111、メモリ112、記憶装置113、及びネットワークインタフェース114は、CPU101、メモリ102、記憶装置103、及びネットワークインタフェース104と同様のハードウェアである。
ストレージノード120は、計算機ノード110に対してデータを格納するためのボリュームを提供するプログラムが稼働するノードである。複数のストレージノード120からストレージシステムが構成される。なお、ストレージノード120上で稼働するプログラムは、Erasure Cording機能及びMirroring機能等を用いてデータを冗長化するデータ保護機能、並びに、重複排除処理及び圧縮処理等のデータ容量削減機能を含むデータ制御機能を有するものとする。
ストレージノード120は、CPU121、メモリ122、複数の記憶装置123、及びネットワークインタフェース124を有する。各ハードウェアはバスを介して互いに接続される。
CPU121、メモリ122、記憶装置123、及びネットワークインタフェース124は、CPU101、メモリ102、記憶装置103、及びネットワークインタフェース104と同様のハードウェアである。メモリ122に格納されるプログラム及び情報の詳細は図3を用いて説明する。
ストレージノード120は、複数の記憶装置123からRAIDグループを生成し、RAIDグループから計算機ノード110に提供するボリューム、例えば、LDEVを生成する。なお、複数のストレージノード120は、互いに連携して、記憶領域をプールとして管理してもよい。なお、ボリュームは、LU(Logical Unit)単位の記憶領域又はページ単位の記憶領域から構成される。
実施例1では、一つの計算機(例えば、ベアメタルサーバ)を一つの計算機ノード110として記載しているがこれに限定されない。例えば、仮想計算機又はコンテナを計算機ノード110としてもよい。この場合、一つの計算機には複数の計算機ノード110が含まれる。すなわち、一つの計算機上で複数のミドルウェアが稼働する。
実施例1では、一つのストレージ装置を一つのストレージノード120として記載しているがこれに限定されない。例えば、仮想的なストレージ装置をストレージノード120としてもよい。この場合、一つのストレージ装置には複数のストレージノード120が含まれる。すなわち、一つのストレージ装置上で複数のストレージ管理プログラムが稼働する。
また、計算機ノード110及びストレージノード120は、別々の構成として記載しているがこれに限定されない。計算機ノード110及びストレージノード120を一つの構成としてもよい。例えば、計算機及びストレージ装置を統合したHyper Converged Infrastructureを用いてもよい。
図2は、実施例1のコントローラノード100のメモリ102に格納されるプログラム及び情報の一例を示す図である。
メモリ102は、制御ポリシ決定プログラム201、初期配置制御プログラム202、ボリューム移動制御プログラム203、クラスタ管理情報211、及びミドルウェア管理情報212を格納する。なお、メモリ102には、図示しないプログラム及び情報が格納されてもよい。
制御ポリシ決定プログラム201は、計算機ノード110(ミドルウェア)に割り当てられた記憶領域に対して適用する、ストレージノード120のデータ制御ポリシを決定するプログラムである。
初期配置制御プログラム202は、新たに生成するボリュームの配置を制御するプログラムである。
ボリューム移動制御プログラム203は、ボリュームの移動を制御するプログラムである。ボリューム移動制御プログラム203は、イベントの発生を監視し、当該イベントの発生を検出した場合、ボリュームの移動を制御する。具体的には、ボリューム移動制御プログラム203は、ストレージノード120を監視し、当該監視結果に基づいて重複排除条件及び負荷条件のいずれかを満たすか否かを判定する。
クラスタ管理情報211は、一つの業務システムを構成する計算機ノード110のグループ(クラスタ)を管理するための情報である。クラスタ管理情報211のデータ構造の詳細は図4を用いて説明する。
ミドルウェア管理情報212は、計算機ノード110上で稼働するミドルウェアを管理するための情報である。ミドルウェア管理情報212のデータ構造の詳細は図5を用いて説明する。
なお、コントローラノード100が有する各プログラムについては、複数のプログラムを一つのプログラムにまとめてもよいし、一つのプログラムを機能毎に複数のプログラムに分けてもよい。例えば、制御ポリシ決定プログラム201、初期配置制御プログラム202、及びボリューム移動制御プログラム203をまとめて一つの制御プログラムとしてもよい。
図3は、実施例1のストレージノード120のメモリ122に格納されるプログラム及び情報の一例を示す図である。
メモリ122は、ボリューム生成プログラム301、ボリューム移動プログラム302、I/O処理プログラム303、重複排除/圧縮プログラム304、Erasure Cordingプログラム305、Mirroringプログラム306、及びボリューム管理情報311を格納する。なお、メモリ122には、図示しないプログラム及び情報が格納されてもよい。
ボリューム生成プログラム301は、ボリュームを生成するプログラムである。
ボリューム移動プログラム302は、ボリュームの移動を行うプログラムである。
I/O処理プログラム303は、ボリュームに対するI/Oを処理するプログラムである。
重複排除/圧縮プログラム304は、データ量を削減するために、重複するデータの排除及びデータの圧縮を行うプログラムである。
Erasure Cordingプログラム305は、Erasure Cordingを用いたデータの書込み及び読出しを行うプログラムである。
Mirroringプログラム306は、Mirroringを用いたデータの書込みを行うプログラムである。
ボリューム管理情報311は、ボリュームを管理するための情報である。ボリューム管理情報311のデータ構造の詳細は図6を用いて説明する。
なお、ストレージノード120が有する各プログラムについては、複数のプログラムを一つのプログラムにまとめてもよいし、一つのプログラムを機能毎に複数のプログラムに分けてもよい。例えば、ボリューム生成プログラム301、ボリューム移動プログラム302、I/O処理プログラム303、重複排除/圧縮プログラム304、Erasure Cordingプログラム305、Mirroringプログラム306をまとめて一つの記憶領域管理プログラムとしてもよい。
図4は、実施例1のクラスタ管理情報211のデータ構造の一例を示す図である。
クラスタ管理情報211は、クラスタID401、計算機ノードID402、コンテナID403、ストレージノードID404、ボリュームID405、容量406、及びIO負荷407から構成されるエントリを格納する。
クラスタID401は、クラスタの識別情報を格納するフィールドである。クラスタID401には、例えば、数値が格納される。クラスタの識別情報は、コントローラノード100が設定してもよいし、業務システムを運用するユーザが手動で設定してもよい。
計算機ノードID402は、計算機ノード110の識別情報を格納するフィールドである。計算機ノードID402には、例えば、計算機ノード110の型番及び識別子等が格納される。計算機ノード110の識別情報は、コントローラノード100が設定してもよいし、業務システムを運用するユーザが手動で設定してもよい。
コンテナID403は、ミドルウェアが稼働するコンテナ(図示省略)の識別情報を格納するフィールドである。コンテナID403には、例えば、コンテナの識別子等が格納される。コンテナの識別情報は、コントローラノード100が設定してもよいし、業務システムを運用するユーザが手動で設定してもよい。
ストレージノードID404は、計算機ノード110にボリュームを提供するストレージノード120の識別情報を格納するフィールドである。ストレージノードID404には、例えば、ストレージノードID404の型番及び識別子等が格納される。計算機ノード110の識別情報は、コントローラノード100が設定してもよいし、ストレージシステムを運用するユーザが手動で設定してもよい。
ボリュームID405は、計算機ノード110に提供されるボリュームの識別情報を格納するフィールドである。ボリュームID405には、例えば、数値が格納される。ボリュームの識別情報は、ストレージノード120が設定してもよいし、ストレージシステムを運用するユーザが手動で設定してもよい。なお、ボリュームの識別情報は、ストレージノード120内でボリュームを識別するための情報であるため、ストレージノード120間で重複する可能性がある。
容量406は、ボリュームの容量を格納するフィールドである。
IO負荷407は、ボリュームに対するIOの負荷を示す情報を格納するフィールドである。本実施例のIO負荷407には「Hot」及び「Cold」のいずれかが格納される。「Hot」は頻繁にIO要求を受け付けている状態を示し、「Cold」は、IO要求がない又はIO要求の数が少ない状態を示す。例えば、単位時間当たりのIO要求の数が閾値より大きい場合、IO負荷407には「Hot」が設定され、単位時間当たりのIO要求の数が閾値以下の場合、IO負荷407には「Cold」が設定される。なお、IO負荷407に格納される値は一例であってこれに限定されない。例えば、IO負荷407にはIO要求の数が格納されてもよい。
実施例1では、一つのコンテナ上で一つのミドルウェアが稼働するためエントリにはコンテナID403が含まれる。一つの計算機ノード110上で一つのミドルウェアが稼働する場合、コンテナID403はエントリに含まれない。また、一つの仮想計算機上で一つのミドルウェアが稼働する場合、エントリには、コンテナID403の代わりに仮想計算機IDが含まれる。
図5は、実施例1のミドルウェア管理情報212のデータ構造の一例を示す図である。
ミドルウェア管理情報212は、クラスタID501、レプリケーション数502、モード503、コンテナID504、ミドルウェア505、及び属性506から構成されるエントリを格納する。
クラスタID501はクラスタID401と同一のフィールドであり、コンテナID504はコンテナID403と同一のフィールドである。
レプリケーション数502は、ミドルウェアのレプリケーション機能を用いて生成するレプリカの数を格納するフィールドである。実施例1では、レプリケーション数502の値と同数のコンテナが一つのクラスタを構成する。
モード503は、ミドルウェアを用いて提供される業務システムに要求される性能に関する情報を格納するフィールドである。実施例1のモード503には、「性能重視」及び「容量重視」のいずれかが格納される。「性能重視」は、アクセス性能を重視した業務システムであることを示し、「容量重視」は、ボリュームの容量の効率的な利用を重視した業務システムであることを示す。なお、モード503に格納される情報は一例であってこれに限定されない。
ミドルウェア505は、コンテナID504に対応するコンテナ上で稼働するミドルウェアの種別を示す情報を格納するフィールドである。
属性506は、クラスタ内におけるミドルウェアの属性を格納するフィールドである。属性506には、例えば、「Primary」及び「Secondary」のいずれで稼働しているか示す情報が格納される。
なお、クラスタ管理情報211及びミドルウェア管理情報212は一つにまとめてもよい。
図6は、実施例1のボリューム管理情報311のデータ構造の一例を示す図である。
ボリューム管理情報311は、ボリュームID601、容量602、データ制御ポリシ603、データ保護レベル604、及び重複排除パターン605から構成されるエントリを格納する。
ボリュームID601及び容量602は、ボリュームID405及び容量406と同一のフィールドである。
データ制御ポリシ603は、計算機ノード110(ミドルウェア)に割り当てられた記憶領域に対して適用するストレージノード120のデータ制御ポリシを示す情報を格納する。すなわち、ボリュームに適用するストレージシステムのデータ制御機能を設定するためのフィールドである。
実施例1のデータ制御ポリシ603には、「Dedupe+EC」、「No Protection」、「Mirroring」、及び「EC」が格納される。「Dedupe+EC」は重複排除機能及びErasure Cording機能を適用することを示す。「No Protection」は、ストレージシステムのデータ保護機能を適用しないことを示す。「Mirroring」はMirroring機能を適用することを示す。また、「EC」は、Erasure Cording機能を適用することを示す。
データ保護レベル604は、Erasure Cording機能の設定を格納するフィールドである。Erasure Cording機能が適用されないボリュームのデータ保護レベル604は空欄となる。
重複排除パターン605は、重複排除処理の実行タイミングを示す情報を格納するフィールドである。実施例1の重複排除パターン605には「インライン」及び「ポストプロセス」のいずれかが格納される。「インライン」はボリュームのIOと同期して重複排除処理を実行することを示す。「ポストプロセス」はボリュームのIOと非同期で重複排除処理を実行することを示す。
次に、計算機システムにおいて実行される処理の詳細について説明する。まず、ボリュームの生成時に実行される処理について説明する。
図7は、実施例1のコントローラノード100が実行するボリューム初期配置処理の一例を説明するフローチャートである。
計算機ノード110は、ボリュームが必要な場合、コントローラノード100に対してボリューム生成要求を送信する。
実施例1のボリューム生成要求には、クラスタに関する情報、ボリュームの容量、モードに関する情報、サービスを提供する業務システムの可用性に関する情報、及び重複排除パターンに関する情報が含まれる。
クラスタに関する情報は、クラスタの識別情報、クラスタを構成する計算機ノード110の識別情報、コンテナの識別情報、ミドルウェアの種別、及びミドルウェアの属性等を含む。モードに関する情報は、「性能重視」又は「容量重視」のいずれかを含む。サービスを提供する業務システムの可用性に関する情報は、ミドルウェア層におけるデータ保護機能に関する設定情報として、レプリケーション機能の有効又は無効を示す値、及びレプリケーション数等を含む。重複排除パターンに関する情報は、Null、「インライン」、及び「ポストプロセス」のいずれかを含む。以下の説明では、モードに関する情報をモード情報と記載し、サービスを提供する業務システムの可用性に関する情報を可用性情報と記載する。
コントローラノード100は、計算機ノード110からボリューム生成要求を受信した場合(ステップS101)、クラスタ管理情報211及びミドルウェア管理情報212を更新する(ステップS102)。具体的には、以下のような処理が実行される。
制御ポリシ決定プログラム201は、クラスタ管理情報211にエントリを追加し、追加されたエントリのクラスタID501にクラスタの識別情報を設定する。制御ポリシ決定プログラム201は、追加されたエントリに、クラスタに含まれる計算機ノード110の数だけ行を生成し、生成された行の計算機ノードID402及びコンテナID403に値を設定する。
制御ポリシ決定プログラム201は、ミドルウェア管理情報212にエントリを追加し、追加されたエントリのクラスタID501にクラスタの識別情報を設定し、モード503にモードを設定する。
制御ポリシ決定プログラム201は、レプリケーション機能が有効である場合、追加されたエントリのレプリケーション数502にレプリケーション数を設定し、コンテナID504、ミドルウェア505、及び属性506に、レプリケーションの数だけ行を生成する。制御ポリシ決定プログラム201は、生成された行のミドルウェア505にミドルウェアの識別情報を設定し、当該行の属性506に属性の値を設定する。
制御ポリシ決定プログラム201は、レプリケーション機能が無効である場合、追加されたエントリのレプリケーション数502に「1」を設定し、コンテナID504、ミドルウェア505、及び属性506に一つの行を生成する。制御ポリシ決定プログラム201は、生成された行のミドルウェア505にミドルウェアの識別情報を設定し、当該行の属性506に属性の値を設定する。
制御ポリシ決定プログラム201は、クラスタ、計算機ノード110、コンテナ、及びミドルウェアから構成されるエントリを含む参照リストを生成し、ワークエリアに格納する。以上がステップS102の処理の説明である。
次に、コントローラノード100は、レプリケーション機能が有効であるか否かを判定する(ステップS103)。
具体的には、制御ポリシ決定プログラム201は、ミドルウェア管理情報212に追加されたエントリのレプリケーション数502が「1」であるか否かを判定する。レプリケーション数502が「1」である場合、制御ポリシ決定プログラム201は、レプリケーション機能が無効であると判定する。
レプリケーション機能が無効であると判定された場合、コントローラノード100は、通常配置処理を実行する(ステップS104)。その後、コントローラノード100はボリューム初期配置処理を終了する。通常配置処理の詳細は図8を用いて説明する。
レプリケーション機能が有効であると判定された場合、コントローラノード100は、モードを判別する(ステップS105)。
モードが「性能重視」であると判定された場合、コントローラノード100は分散配置処理を実行する(ステップS106)。その後、コントローラノード100はボリューム初期配置処理を終了する。分散配置処理の詳細は図9を用いて説明する。
モードが「容量重視」であると判定された場合、コントローラノード100は集約配置処理を実行する(ステップS107)。その後、コントローラノード100はボリューム初期配置処理を終了する。集約配置処理の詳細は図10を用いて説明する。
図8は、実施例1のコントローラノード100が実行する通常配置処理の一例を説明するフローチャートである。
コントローラノード100は、ボリューム生成要求に含まれる情報に基づいて、データ制御ポリシを決定する(ステップS201)。具体的には、以下のような処理が実行される。
ミドルウェア層のデータ保護機能が無効化されているため、制御ポリシ決定プログラム201は、業務システムの可用性を確保可能なデータ制御ポリシを設定する。すなわち、制御ポリシ決定プログラム201は、モードが「性能重視」である場合、データ制御ポリシを「Mirroring」に決定し、モードが「容量重視」である場合、データ制御ポリシを「EC」に決定し、また、Erasure Cording機能の設定情報を生成する。当該設定情報には、例えば、複数のノードに分割して保持するデータ数、及びデータの復元に用いるパリティ数が含まれる。データ数をD、パリティ数をPとして場合、4D2P等と表現される。
制御ポリシ決定プログラム201は、「Mirroring」、又は、「EC」及びErasure Cording機能の設定情報を含むデータ制御ポリシ情報を生成する。
なお、可用性情報に、ストレージシステム層におけるデータ保護機能に関する情報を設定し、当該情報に基づいてデータ制御ポリシを決定してもよい。この場合、モードは考慮しなくてもよい。ストレージシステム層におけるデータ保護機能に関する情報には、Erasure Cording機能及びMirroring機能の有効又は無効を示す値、及び、Erasure Cording機能の設定情報等が含まれる。以上がステップS201の処理の説明である。
次に、コントローラノード100は、参照リストを参照して計算機ノード110を選択する(ステップS202)。また、コントローラノード100は、選択された計算機ノード110に割り当てるボリュームの配置先のストレージノード120を選択する(ステップS203)。
具体的には、初期配置制御プログラム202は、参照リストからエントリを一つ選択する。また、初期配置制御プログラム202は、任意の選択アルゴリズムにしたがって、ストレージノード120を選択する。このとき、初期配置制御プログラム202は、選択されたエントリに含まれるクラスタの識別情報及び計算機ノード110の識別情報と、選択されたストレージノード120の識別情報とで構成される一時データをメモリ102に格納する。
ボリュームの配置先のストレージノード120を選択する方法としては、例えば、以下のような三つの選択方法が考えられる。
(方法1)初期配置制御プログラム202は、ラウンドロビン方式でボリュームの配置先のストレージノード120を選択する。
(方法2)初期配置制御プログラム202は、ストレージノード120の使用容量又はIO負荷に基づいてボリュームの配置先のストレージノード120を選択する。
(方法3)初期配置制御プログラム202は、I/O性能に基づいてボリュームの配置先のストレージノード120を選択する。例えば、計算機ノード110及びストレージノード120が別々の計算機である場合、ボリューム生成要求を送信した計算機ノード110と物理的な距離又は通信応答が速いストレージノード120をボリュームの配置先として選択する。また、ハイパーコンバージドインフラストラクチャの場合、計算機ノード110と同一の筐体のストレージノード120をボリュームの配置先として選択する。
次に、コントローラノード100は、参照リストに登録された全ての計算機ノード110について処理が完了したか否かを判定する(ステップS204)。
参照リストに登録された全ての計算機ノード110について処理が完了していないと判定された場合、コントローラノード100はステップS202に戻り、同様の処理を実行する。
参照リストに登録された全ての計算機ノード110について処理が完了したと判定された場合、コントローラノード100は、決定されたストレージノード120にボリューム生成指示を送信する(ステップS205)。
具体的には、初期配置制御プログラム202が、一時データに基づいて、ストレージノード120にボリューム生成指示を送信する。ボリューム生成指示には、ボリューム生成要求に含まれるボリュームの容量、選択された計算機ノード110の識別情報、及びデータ制御ポリシ情報が含まれる。
次に、コントローラノード100は、ストレージノード120から、計算機ノード110の識別情報、ストレージノード120の識別情報、ボリュームの識別情報、及びボリュームの容量等が含まれる生成完了通知を受信した場合、クラスタ管理情報211を更新する(ステップS206)。具体的には、以下のような処理が実行される。
初期配置制御プログラム202は、ステップS102において、クラスタ管理情報211に追加されたエントリの各行を参照し、計算機ノードID402が生成完了通知に含まれる計算機ノード110の識別情報に一致するエントリを検索する。
初期配置制御プログラム202は、検索された行のストレージノードID404、ボリュームID405、及び容量406に、生成完了通知に含まれる値を設定する。このとき、IO負荷407は空欄のままである。以上がステップS206の処理の説明である。
コントローラノード100は、生成指示を送信した全てのストレージノード120から生成完了通知を受信した場合、通常配置処理を終了する。
図9は、実施例1のコントローラノード100が実行する分散配置処理の一例を説明するフローチャートである。
コントローラノード100は、ボリューム生成要求に含まれる情報に基づいて、データ制御ポリシを決定する(ステップS301)。具体的には、以下のような処理が実行される。
ミドルウェア層のデータ保護機能は有効化され、かつ、モードは「性能重視」である。したがって、ボリュームへのデータの書込み及び読出しを高速に行うために、制御ポリシ決定プログラム201は、ストレージシステム層のデータ制御機能を無効化する。すなわち、制御ポリシ決定プログラム201は、データ制御ポリシを「No Protection」に決定する。
制御ポリシ決定プログラム201は、「No Protection」を含むデータ制御ポリシ情報を生成する。以上がステップS301の処理の説明である。
次に、コントローラノード100は、参照リストを参照して計算機ノード110を選択する(ステップS302)。また、コントローラノード100は、選択された計算機ノード110に割り当てるボリュームの配置先のストレージノード120を選択する(ステップS303)。ステップS302及びステップS303の処理はステップS202及びステップS203の処理と同一である。
次に、コントローラノード100は、同一のクラスタの二つ以上のボリュームの配置先として選択されたストレージノード120が存在するか否かを判定する(ステップS304)。具体的には以下のような処理が実行される。
初期配置制御プログラム202は、クラスタ管理情報211を参照し、クラスタID401が、参照リストから選択されたエントリに含まれるクラスタの識別情報に一致するエントリを検索する。初期配置制御プログラム202は、検索されたエントリに含まれる行を参照し、ストレージノードID404に選択されたストレージノード120の識別情報が設定された行が存在するか否かを判定する。
前述の条件を満たす行が存在する場合、初期配置制御プログラム202は、同一のクラスタの二つ以上のボリュームの配置先として選択されたストレージノード120が存在すると判定する。
前述の条件を満たす行が存在しない場合、初期配置制御プログラム202は、メモリ102に格納される一時データを参照し、クラスタの識別情報及びストレージノード120の識別情報の組合せが、参照リストから選択されたエントリに含まれるクラスタの識別情報及び選択されたストレージノード120の識別情報の組合せと一致する一時データが存在するか否かを判定する。
前述の条件を満たす一時データが存在する場合、初期配置制御プログラム202は、同一のクラスタの二つ以上のボリュームの配置先として選択されたストレージノード120が存在すると判定する。
前述の条件を満たす一時データが存在しない場合、初期配置制御プログラム202は、同一のクラスタの二つ以上のボリュームの配置先として選択されたストレージノード120が存在しないと判定する。
ステップS304は、以下のような理由で実行される。分散配置処理が実行される状況下では、ミドルウェア層のデータ保護機能のみを用いて業務システムの可用性が確保される。したがって、同一のストレージノード120に複数のボリュームを生成した場合、ストレージシステム側の障害によって業務システムが停止する可能性がある。コントローラノード100は、前述のような可用性の低下を回避するために、異なるストレージノード120にボリュームが配置されるように制御する。以上がステップS304の処理の説明である。
同一のクラスタの二つ以上のボリュームの配置先として選択されたストレージノード120が存在すると判定された場合、コントローラノード100はステップS303に戻り、同様の処理を実行する。
同一のクラスタの二つ以上のボリュームの配置先として選択されたストレージノード120が存在しないと判定された場合、コントローラノード100は、参照リストに登録された全ての計算機ノード110について処理が完了したか否かを判定する(ステップS305)。
参照リストに登録された全ての計算機ノード110について処理が完了していないと判定された場合、コントローラノード100はステップS302に戻り、同様の処理を実行する。
参照リストに登録された全ての計算機ノード110について処理が完了したと判定された場合、決定されたストレージノード120にボリューム生成指示を送信する(ステップS306)。ステップS306の処理はステップS205の処理と同一である。
次に、コントローラノード100は、ストレージノード120から生成完了通知を受信した場合、クラスタ管理情報211を更新する(ステップS307)。ステップS307の処理はステップS206と同一の処理である。
コントローラノード100は、生成指示を送信した全てのストレージノード120から生成完了通知を受信した場合、分散配置処理を終了する。
図10は、実施例1のコントローラノード100が実行する集約配置処理の一例を説明するフローチャートである。
コントローラノード100は、ボリューム生成要求に含まれる情報に基づいて、データ制御ポリシを決定する(ステップS401)。具体的には、以下のような処理が実行される。
ミドルウェア層のデータ保護機能は有効化され、かつ、モードは「容量重視」である。そのため、コントローラノード100は、データ容量削減機能の有効化を決定する。一方、データ容量削減機能によるデータの削除に伴う可用性の低下を回避する必要がある。したがって、コントローラノード100は、データ保護機能の有効化を決定する。したがって、制御ポリシ決定プログラム201は、データ制御ポリシを「Dedupe+EC」に決定する。
また、制御ポリシ決定プログラム201は、Erasure Cording機能の設定情報及び重複排除の設定情報を含むデータ制御ポリシ情報を生成する。制御ポリシ決定プログラム201は、データ制御ポリシ、Erasure Cording機能の設定情報、及び重複排除の設定情報を含むデータ制御ポリシ情報を生成する。
なお、可用性情報に、ストレージシステム層におけるデータ保護機能及びデータ容量削減機能に関する情報を設定してもよい。この場合、制御ポリシ決定プログラム201は、可用性情報に基づいて、Erasure Cording機能の設定情報、及び重複排除の設定情報を生成する。以上がステップS401の処理の説明である。
次に、コントローラノード100は、参照リストを参照して計算機ノード110を選択する(ステップS402)。
次に、コントローラノード100は、選択された計算機ノード110と同じクラスタに所属する計算機ノード110のボリュームが生成されたストレージノード120が存在するか否かを判定する(ステップS403)。具体的には、以下のような処理が実行される。
初期配置制御プログラム202は、クラスタ管理情報211を参照し、クラスタID401がターゲットクラスタの識別情報に一致するエントリが存在するか否かを判定する。初期配置制御プログラム202は、検索されたエントリに含まれる行を参照し、ストレージノードID404に選択されたストレージノード120の識別情報が設定された行が存在するか否かを判定する。
前述の条件を満たすエントリが存在する場合、初期配置制御プログラム202は、選択された計算機ノード110と同じクラスタに所属する計算機ノード110のボリュームが生成されたストレージノード120が存在すると判定する。
前述の条件を満たすエントリが存在しない場合、初期配置制御プログラム202は、メモリ102に、ターゲットクラスタの識別情報が設定された一時データが存在するか否かを判定する。
前述の条件を満たす一時データが存在する場合、初期配置制御プログラム202は、選択された計算機ノード110と同じクラスタに所属する計算機ノード110のボリュームが生成されたストレージノード120が存在すると判定する。
前述の条件を満たす一時データが存在しない場合、初期配置制御プログラム202は、選択された計算機ノード110と同じクラスタに所属する計算機ノード110のボリュームが生成されたストレージノード120が存在しないと判定する。以上がステップS403の処理の説明である。
条件を満たすストレージノード120が存在しないと判定された場合、コントローラノード100は、選択された計算機ノード110に割り当てるボリュームの配置先のストレージノード120を選択し(ステップS404)、その後、ステップS408に進む。ステップS404の処理は、ステップS203と同一の処理である。
条件を満たすストレージノード120が存在すると判定された場合、コントローラノード100は、当該ストレージノード120にボリュームを生成できるか否かを判定する(ステップS405)。
具体的には、初期配置制御プログラム202は、ストレージノード120の空き容量、性能、及びストレージノード120間の負荷に基づいて、ストレージノード120にボリュームを生成できるか否かを判定する。
条件を満たすストレージノード120にボリュームを生成できると判定された場合、コントローラノード100は、当該ストレージノード120を選択し(ステップS406)、その後、ステップS408に進む。このとき、コントローラノード100は、選択されたエントリに含まれるクラスタの識別情報及び計算機ノード110の識別情報と、選択されたストレージノード120の識別情報とで構成される一時データをメモリ102に格納する。
条件を満たすストレージノード120にボリュームを生成できないと判定された場合、コントローラノード100は、当該ストレージノード120を除くストレージノード120の中から、選択された計算機ノード110に割り当てるボリュームの配置先のストレージノード120を選択し(ステップS407)、その後、ステップS408に進む。このとき、コントローラノード100は、選択されたエントリに含まれるクラスタの識別情報及び計算機ノード110の識別情報と、選択されたストレージノード120の識別情報とで構成される一時データをメモリ102に格納する。
ステップS407では、(方法1)、(方法2)、及び(方法3)の他に、ボリュームの属性に基づいて、ストレージノード120を選択する方法も考えられる。例えば、ターゲット計算機ノード110の割り当てるボリュームの属性が「Secondary」である場合、初期配置制御プログラム202は、属性が「Primary」であるボリュームが生成されたストレージノード120と物理的な距離又は通信応答が速いストレージノード120を選択する。
ステップS404、ステップS406、又はステップS407の処理が実行された後、コントローラノード100は、参照リストに登録された全ての計算機ノード110について処理が完了したか否かを判定する(ステップS408)。
参照リストに登録された全ての計算機ノード110について処理が完了していないと判定された場合、コントローラノード100はステップS402に戻り、同様の処理を実行する。
参照リストに登録された全ての計算機ノード110について処理が完了したと判定された場合、決定されたストレージノード120にボリューム生成指示を送信する(ステップS409)。ステップS409の処理はステップS205の処理と同一である。なお、設定情報に含めるデータ及びパリティの数はユーザが入力したものでもよい。また、ミドルウェアのレプリケーション数から可用性を維持できるパリティ数が自動的に決定されてもよい。
次に、コントローラノード100は、ストレージノード120から生成完了通知を受信した場合、クラスタ管理情報211を更新する(ステップS410)。ステップS410の処理はステップS206と同一の処理である。
コントローラノード100は、生成指示を送信した全てのストレージノード120から生成完了通知を受信した場合、分散配置処理を終了する。
図11は、実施例1のストレージノード120が実行するボリューム生成処理の一例を説明するフローチャートである。
ストレージノード120は、ボリューム生成指示を受信した場合、以下で説明する処理を開始する。
ストレージノード120は、ボリューム生成指示に含まれるデータ制御ポリシ情報を参照し、データ制御ポリシが「No Protection」であるか否かを判定する(ステップS501)。
データ制御ポリシが「No Protection」でないと判定された場合、ストレージノード120は、データ制御ポリシに応じたデータ制御機能の設定を行い、また、ボリュームを生成する(ステップS502)。その後、ストレージノード120はステップS504に進む。
例えば、ボリューム生成プログラム301は、重複排除/圧縮プログラム304又はErasure Cordingプログラム305を実行するために必要な情報を設定する。
データ制御ポリシが「No Protection」であると判定された場合、ストレージノード120は、ボリュームを生成する(ステップS503)。その後、ストレージノード120はステップS504に進む。
ステップS502又はステップS503の処理が実行された後、ストレージノード120は、ボリューム管理情報311を更新する(ステップS504)。
具体的には、ボリューム生成プログラム301は、ボリューム管理情報311にエントリを生成し、生成されたエントリのボリュームID601に生成されたボリュームの識別情報を設定する。ボリューム生成プログラム301は、追加されたエントリの容量602に、ボリューム生成指示に含まれる容量を設定する。また、ボリューム生成プログラム301は、ボリューム生成指示に含まれるデータ制御ポリシ情報に基づいて、生成されたエントリのデータ制御ポリシ603、データ保護レベル604、及び重複排除パターン605に値を設定する。
次に、ストレージノード120は、コントローラノード100に生成完了通知を送信する(ステップS505)。その後、ストレージノード120はボリューム生成処理を終了する。
次に、ストレージノード120が、計算機ノード110からWrite要求を受信した場合に実行する処理について説明する。
図12A及び図12Bは、実施例1のストレージノード120が実行するWrite処理の一例を説明するフローチャートである。
ストレージノード120は、計算機ノード110からWrite要求を受信した場合、Write処理を開始する。なお、Write要求には、計算機ノード110のアドレス、計算機ノード110の識別情報、コンテナの識別情報、ミドルウェアの識別情報、ボリュームの識別情報、及び、書き込むデータ等が含まれる。
ストレージノード120は、Write要求に基づいて、ターゲットボリュームを特定する(ステップS601)。
具体的には、I/O処理プログラム303は、Write要求からボリュームの識別情報を取得する。
次に、ストレージノード120は、データ制御ポリシが「Dedupe+EC」であるか否かを判定する(ステップS602)。
具体的には、I/O処理プログラム303は、ボリューム管理情報311を参照し、ボリュームID601にターゲットボリュームの識別情報が設定されるエントリを検索する。I/O処理プログラム303は、検索されたエントリのデータ制御ポリシ603に「Dedupe+EC」が設定されているか否かを判定する。
ターゲットボリュームのデータ制御ポリシが「Dedupe+EC」であると判定された場合、ストレージノード120は、ターゲットボリュームの重複排除パターンが「インライン」であるか否かを判定する(ステップS603)。
具体的には、I/O処理プログラム303は、ステップS602において検索されたエントリの重複排除パターン605が「インライン」であるか否かを判定する。
ターゲットボリュームの重複排除パターンが「インライン」でないと判定された場合、ストレージノード120はステップS606に進む。
ターゲットボリュームの重複排除パターンが「インライン」であると判定された場合、ストレージノード120は、ボリュームに重複データが存在するか否かを判定する(ステップS604)。
具体的には、I/O処理プログラム303は、ボリュームに格納されるデータのハッシュ値を比較することによってボリュームに重複データが存在するか否かを判定する。なお、本発明は重複データの判定方法に限定されない。
ボリュームに重複データが存在しないと判定された場合、ストレージノード120はステップS606に進む。
ボリュームに重複データが存在すると判定された場合、ストレージノード120は、データ容量削減処理を実行する(ステップS605)。その後、ストレージノード120はステップS606に進む。
具体的には、I/O処理プログラム303は、重複排除/圧縮プログラム304に実行指示を出力する。重複排除/圧縮プログラム304は、実行指示を受け付けた場合、重複排除処理及び圧縮処理の少なくともいずれかを実行する。重複排除処理及び圧縮処理は、公知の技術であるため詳細な説明は省略する。
ステップS603の判定結果がNo、ステップS604の判定結果がNo、又は、ステップS605の処理が実行された後、ストレージノード120は、データ冗長化処理を実行する(ステップS606)。その後、ストレージノード120はステップS607に進む。
具体的には、I/O処理プログラム303は、Erasure Cordingプログラム305にデータ保護レベル604に設定された値を含む実行指示を出力する。Erasure Cordingプログラム305は、I/O処理プログラム303から入力された値に基づいてErasure Cordingを用いたデータ冗長化処理を実行する。Erasure Cordingを用いたデータ冗長化処理は公知の技術であるため詳細な説明は省略する。
ステップS602において、データ制御ポリシが「Dedupe+EC」でないと判定された場合、ストレージノード120は、データ制御ポリシが「No Protection」であるか否かが判定される(ステップS608)。
具体的には、I/O処理プログラム303は、ステップS602において検索されたエントリのデータ制御ポリシ603に「No Protection」が設定されているか否かを判定する。
データ制御ポリシが「No Protection」であると判定された場合、I/O処理プログラム303は、ターゲットボリュームにデータを書き込む(ステップS609)。その後、ストレージノード120はステップS607に進む。
データ制御ポリシが「No Protection」でないと判定された場合、I/O処理プログラム303は、データ冗長化処理を実行する(ステップS610)。その後、ストレージノード120はステップS607に進む。
具体的には、I/O処理プログラム303は、データ制御ポリシが「EC」である場合、Erasure Cordingプログラム305に実行指示を出力し、データ制御ポリシが「Mirroring」である場合、Mirroringプログラム306に実行指示を出力する。Erasure Cordingプログラム305はErasure Cordingを用いたデータ冗長化処理を実行し、Mirroringプログラム306はMirroringを用いたデータ冗長化処理を実行する。
ステップS607では、ストレージノード120は、Write要求を送信した計算機ノード110に対してWrite完了通知を送信し(ステップS607)、その後、Write処理を終了する。
なお、ターゲットボリュームの重複排除パターンが「ポストプロセス」である場合、ストレージノード120は、Erasure Cording処理が実行された後(ステップS606)、バックグラウンドで重複排除処理/圧縮処理を実行する。
以上で説明したように、コントローラノード100は、ボリュームの生成時に、モード情報及び可用性情報に基づいて、ミドルウェアに割り当てられたボリュームに対して適用するストレージノード120のデータ制御ポリシを決定し、ストレージノード120に通知する。ストレージノード120は、ボリューム及びデータ制御ポリシを対応づけて管理することによって、各ボリュームに適した処理を実行する。これによって、業務システムの可用性を維持し、かつ、記憶容量を有効に活用したシステムを実現できる。特に、データ制御ポリシとして「No Protection」及び「Dedupe+EC」を採用することに特徴がある。
ミドルウェアのデータ保護機能が有効化され、かつ、サービスの性能が重視されている業務システムの場合、ストレージシステムにはデータ容量の削減及びサービスの性能の両立が要求される。この場合、ストレージノード120がデータの冗長化等を行わないように制御するために、コントローラノード100は、データ制御ポリシを「No Protection」に決定する。以上の制御によって、データ容量を抑えつつ、可用性を維持し、かつ、高い性能のサービスを提供できる業務システムを実現できる。
ただし、レプリケーション機能によってデータが書き込まれたボリュームが同一のストレージノード120に配置された場合、ストレージノード120の障害等によって、サービスが停止する。そのため、コントローラノード100は、データ制御ポリシが「No Protection」であるボリューム群が異なるストレージノード120に配置されるように制御する。
ミドルウェアのデータ保護機能が有効化され、かつ、容量が重視されている業務システムの場合、ストレージシステムにはデータ容量の削減及び可用性の維持の両立が要求される。この場合、重複するデータを削減し、かつデータの削除による可用性の低下を回避するように制御するために、コントローラノード100は、データ制御ポリシを「Dedupe+EC」に決定する。Erasure Cording機能を用いてボリュームのデータを複数のストレージノード120に書き込むことによって、重複したデータが削除されてもサービスの長時間の停止を回避できる。以上の制御によって、データ容量を抑え、かつ可用性を維持した業務システムを実現できる。
ただし、重複したデータを高速に検索及び削除を実現するために、コントローラノード100は、データ制御ポリシが「Dedupe+EC」であるボリューム群が同一のストレージノード120に配置されるように制御する。
次に、ボリュームを用いた業務システムの運用時に実行される処理について説明する。
図13A及び図13Bは、実施例1のコントローラノード100が実行するボリューム移動判定処理の一例を説明するフローチャートである。
コントローラノード100のボリューム移動制御プログラム203は、コントローラノード100の起動後にボリューム移動判定処理を開始する。
コントローラノード100は、ストレージノード120の状態を監視する(ステップS701)。監視のタイミングは、周期的でもよいし、また、I/O要求の発生時でもよい。
コントローラノード100は、監視結果に基づいて、重複排除条件を満たすクラスタが存在するか否かを判定する(ステップS702)。
具体的には、ボリューム移動制御プログラム203は、IO負荷407が全て「Cold」であるクラスタが存在する場合、又は、閾値より大きいサイズのデータのWrite要求が発行された場合、重複排除条件を満たすクラスタが存在すると判定する。なお、重複排除条件は一例であってこれに限定されない。
重複排除条件を満たすクラスタが存在すると判定された場合、コントローラノード100は、ターゲットボリューム群を特定する(ステップS703)。
具体的には、ボリューム移動制御プログラム203は、クラスタ管理情報211を参照し、クラスタID401に、重複排除条件を満たすクラスタの識別情報が設定されたエントリを検索する。ボリューム移動制御プログラム203は、検索されたエントリに含まれる各行のボリュームID405を取得し、ボリュームの識別情報から構成されるボリュームリストを生成し、ワークエリアに格納する。
次に、コントローラノード100は、ターゲットボリューム群の移動先のストレージノード120を決定する(ステップS704)。
具体的には、ボリューム移動制御プログラム203は、ストレージノード120の空き容量及び負荷に基づいて、ボリュームの配置先となるストレージノード120が少なくなるように、配置先のストレージノード120を決定する。
例えば、「Primary」及び「Secondary」の属性があるミドルウェアの場合、ボリューム移動制御プログラム203は、「Primary」のミドルウェアが稼働する計算機ノード110と物理的な距離又は通信応答が速いストレージノード120をボリュームの移動先として選択する方法が考えられる。なお、前述した決定方法は一例であってこれに限定されない。
なお、ボリューム移動制御プログラム203は、ボリューム単位で移動先のストレージノード120を決定してもよいし、LU単位又はページ群単位で移動先のストレージノード120を決定してもよい。
次に、コントローラノード100は、ターゲットボリューム群から一つのターゲットボリュームを選択し(ステップS705)、当該ターゲットボリュームの移動元のストレージノード120に、計算機ノード110の識別情報、ボリュームの識別情報、及び移動先のストレージノード120の識別情報を含む移動指示を送信する(ステップS706)。
ターゲットボリュームの移動元のストレージノード120のボリューム移動プログラム302は、移動指示にしたがって、ボリュームの移動処理を実行する。ボリュームの移動処理では、データのコピー、移動元のボリュームの削除、ボリューム管理情報311の更新等が行われる。なお、ボリュームの移動処理は公知の技術であるため詳細な説明は省略する。なお、ボリュームの移動に伴って、移動元のストレージノード120及び移動先のストレージノード120のボリューム管理情報311が更新される。
移動元のストレージノード120のボリューム移動プログラム302は、ボリュームの移動処理が終了した後、ストレージノード120の識別情報、計算機ノード110の識別情報、及びボリュームの識別情報を含む移動完了通知をコントローラノード100に送信する。
次に、コントローラノード100は、ボリュームリストに登録された全てのボリュームの移動が完了したか否かを判定する(ステップS707)。
ボリュームリストに登録された全てのボリュームの移動が完了していないと判定された場合、コントローラノード100は、ステップS705に戻り、同様の処理を実行する。
ボリュームリストに登録された全てのボリュームの移動が完了したと判定された場合、コントローラノード100は、クラスタ管理情報211を更新する(ステップS708)。その後、コントローラノード100は、ステップS701に戻り、同様の処理を実行する。
具体的には、ボリューム移動制御プログラム203は、ステップS702において検索されたエントリに含まれる各行のストレージノードID404及びボリュームID405に、移動完了通知に含まれる値を設定する。
ステップS702において、重複排除条件を満たすクラスタが存在しないと判定された場合、コントローラノード100は、負荷条件を満たすストレージノード120が存在するか否かを判定する(ステップS709)。
具体的には、ボリューム移動制御プログラム203は、記憶領域の使用量又はI/O負荷が閾値より大きいストレージノード120が存在するか否かを判定する。なお、負荷条件は一例であってこれに限定されない。
負荷条件を満たすストレージノード120が存在しないと判定された場合、コントローラノード100は、ステップS701に戻り、同様の処理を実行する。
負荷条件を満たすストレージノード120が存在すると判定された場合、コントローラノード100は、ターゲットストレージノード120を特定する(ステップS710)。
具体的には、ボリューム移動制御プログラム203は、負荷条件を満たすストレージノード120をターゲットストレージノード120として特定する。このとき、ボリューム移動制御プログラム203は、ターゲットストレージノード120を除くストレージノード120の識別情報から構成されるストレージノードリストを生成し、ワークエリアに格納する。
負荷条件を満たすストレージノード120が複数存在する場合、ボリューム移動制御プログラム203は、負荷が最も高いストレージノード120をターゲットストレージノード120として特定する。なお、ボリューム移動制御プログラム203は、負荷が大きい順に所定の数のストレージノード120を、ターゲットストレージノード120として特定してもよい。
次に、コントローラノード100は、ターゲットストレージノード120に配置されたボリュームの中からターゲットボリュームを選択し(ステップS711)、ターゲットボリュームに対応づけられるデータ制御ポリシを判定する(ステップS712)。
具体的には、ボリューム移動制御プログラム203は、クラスタ管理情報211を参照し、ストレージノードID404にターゲットストレージノード120の識別情報が設定された行を検索する。ボリューム移動制御プログラム203は、検索された行の容量406を参照し、容量406の値が最も大きい行を選択する。ボリューム移動制御プログラム203は、選択された行のボリュームID405に対応するボリュームをターゲットボリュームとして選択する。
なお、容量406の値が最も大きい行が複数存在する場合、ボリューム移動制御プログラム203は、ラウンドロビン方式でボリュームを選択してもよいし、ストレージノード120の負荷に基づいてボリュームを選択してもよい。
ターゲットボリュームに対応づけられるデータ制御ポリシが「No Protection」である場合、コントローラノード100は第1の移動判定処理を実行する(ステップS713)。コントローラノード100は、第1の移動判定処理が終了した後、ステップS716に進む。第1の移動判定処理の詳細は図14を用いて説明する。
ターゲットボリュームに対応づけられるデータ制御ポリシが「Dedupe+EC」である場合、コントローラノード100は第2の移動判定処理を実行する(ステップS714)。コントローラノード100は、第2の移動判定処理が終了した後、ステップS716に進む。第2の移動判定処理の詳細は図15を用いて説明する。
ターゲットボリュームに対応づけられるデータ制御ポリシが「EC」及び「Mirroring」のいずれかである場合、コントローラノード100は第3の移動判定処理を実行する(ステップS715)。コントローラノード100は、第3の移動判定処理が終了した後、ステップS716に進む。第3の移動判定処理の詳細は図16を用いて説明する。
ステップS716では、コントローラノード100は、ターゲットボリュームを移動できるか否かを判定する(ステップS716)。
具体的には、ボリューム移動制御プログラム203は、各移動判定処理の処理結果に基づいてターゲットボリュームを移動できるか否かを判定する。移動判定処理を実行することによって「移動可」を示す処理結果が出力された場合、ボリューム移動制御プログラム203は、ターゲットボリュームを移動できると判定する。
ターゲットボリュームの移動できないと判定された場合、コントローラノード100は、ステップS711に戻り、同様の処理を実行する。
ターゲットボリュームを移動できると判定された場合、コントローラノード100は、ターゲットボリュームの移動元及び移動先のストレージノード120に、計算機ノード110の識別情報及びボリュームの識別情報を含む移動指示を送信する(ステップS717)。ステップS717の処理はステップS706と同一の処理である。
次に、コントローラノード100は、クラスタ管理情報211を更新する(ステップS718)。その後、コントローラノード100は、ステップS701に戻り、同様の処理を実行する。ステップS718の処理はステップS708の処理と同一である。
図14は、実施例1のコントローラノード100が実行する第1の移動判定処理の一例を説明するフローチャートである。
コントローラノード100は、ストレージノードリストを参照し、選択されていないストレージノード120が存在するか否かを判定する(ステップS801)。
選択されていないストレージノード120が存在しないと判定された場合、コントローラノード100は、ステップS806に進む。
選択されていないストレージノード120が存在すると判定された場合、コントローラノード100は、最も負荷が低いストレージノード120を候補ストレージノード120として選択する(ステップS802)。
具体的には、ボリューム移動制御プログラム203は、ストレージノード120のリストを参照し、選択されていないストレージノード120を特定する。ボリューム移動制御プログラム203は、特定されたストレージノード120の監視結果に基づいて、負荷が最も低いストレージノード120を選択する。
次に、コントローラノード100は、候補ストレージノード120に、ターゲットボリュームが割り当てられた計算機ノード110と同じクラスタに所属する計算機ノード110のボリュームが存在するか否かを判定する(ステップS803)。具体的には、以下のような処理が実行される。
ボリューム移動制御プログラム203は、クラスタ管理情報211を参照し、ストレージノードID404及びボリュームID405にターゲットストレージノード120及びターゲットボリュームの識別情報が設定された行を検索する。
ボリューム移動制御プログラム203は、検索された行を含むエントリのストレージノードID404を参照し、候補ストレージノード120の識別情報が設定された行が存在するか否かを判定する。前述した条件を満たす行が存在する場合、ボリューム移動制御プログラム203は、候補ストレージノード120に、ターゲットボリュームが割り当てられた計算機ノード110と同じクラスタに所属する計算機ノード110のボリュームが存在すると判定する。
なお、ステップS803が実行されるのは、ステップS304と同一の理由である。以上がステップS803の処理の説明である。
ステップS803の条件を満たすボリュームが存在すると判定された場合、コントローラノード100は、ストレージノード120のリストから選択されたストレージノード120を削除した後、ステップS801に戻り、同様の処理を実行する。
ステップS803の条件を満たすボリュームが存在しないと判定された場合、コントローラノード100は、候補ストレージノード120のターゲットボリュームを移動できるか否かを判定する(ステップS804)。
具体的には、ボリューム移動制御プログラム203は、候補ストレージノード120にターゲットボリュームを移動させた後の空き容量又はI/O負荷が閾値より小さい場合、候補ストレージノード120のターゲットボリュームを移動できると判定する。なお、前述の判定方法は一例であって、これに限定されない。
候補ストレージノード120のターゲットボリュームを移動できると判定された場合、コントローラノード100は、ターゲットストレージノード120の識別情報、ターゲットボリュームの識別情報、候補ストレージノード120の識別情報、及び「移動可」を含む処理結果を出力し(ステップS805)、第1の移動判定処理を終了する。
ステップS801又はステップS804の判定結果がNoである場合、コントローラノード100は、「移動不可」を含む処理結果を出力し(ステップS806)、第1の移動判定処理を終了する。
図15は、実施例1のコントローラノード100が実行する第2の移動判定処理の一例を説明するフローチャートである。
コントローラノード100は、ターゲットボリュームが割り当てられた計算機ノード110と同じクラスタに所属する計算機ノード110のボリューム群を特定する(ステップS901)。
具体的には、ボリューム移動制御プログラム203は、クラスタ管理情報211を参照し、ストレージノードID404及びボリュームID405にターゲットストレージノード120及びターゲットボリュームの識別情報が設定された行を検索する。ボリューム移動制御プログラム203は、検索された行を含むエントリのストレージノードID404及びボリュームID405の組を取得する。
第2の移動判定処理では、ボリューム群単位でボリュームの移動が行われる。なるべく同一のストレージノード120にボリュームを集約することによって、効率的に容量を削減するためである。
次に、コントローラノード100は、最も負荷が低いストレージノード120を候補ストレージノード120として選択する(ステップS902)。ステップS902の処理はステップS802の処理と同一である。
次に、コントローラノード100は、ボリューム群を移動できるか否かを判定する(ステップS903)。
具体的には、ボリューム移動制御プログラム203は、候補ストレージノード120にボリューム群を移動させた後の空き容量又はI/O負荷が閾値より小さいか否かを判定する。候補ストレージノード120にボリューム群を移動させた後の空き容量又はI/O負荷が閾値より小さい場合、ボリューム移動制御プログラム203は、ボリューム群を移動できると判定する。なお、前述の判定方法は一例であって、これに限定されない。
ボリューム群を移動できると判定された場合、コントローラノード100は、ターゲットストレージノード120の識別情報、ターゲットボリュームの識別情報、候補ストレージノード120の識別情報、及び「移動可」を含む処理結果を出力し(ステップS904)、第2の移動判定処理を終了する。
ボリューム群を移動できないと判定された場合、コントローラノード100は、コントローラノード100は、「移動不可」を含む処理結果を出力し(ステップS905)、第2の移動判定処理を終了する。
図16は、実施例1のコントローラノード100が実行する第3の移動判定処理の一例を説明するフローチャートである。
コントローラノード100は、最も負荷が低いストレージノード120を候補ストレージノード120として選択する(ステップS1001)。ステップS1001の処理はステップS802の処理と同一である。
次に、コントローラノード100は、候補ストレージノード120のターゲットボリュームを移動できるか否かを判定する(ステップS1002)。ステップS1002の処理はステップS804の処理と同一である。
候補ストレージノード120のターゲットボリュームを移動できると判定された場合、コントローラノード100は、ターゲットストレージノード120の識別情報、ターゲットボリュームの識別情報、候補ストレージノード120の識別情報、及び「移動可」を含む処理結果を出力し(ステップS1003)、第3の移動判定処理を終了する。
候補ストレージノード120のターゲットボリュームを移動できると判定された場合、コントローラノード100は、コントローラノード100は、「移動不可」を含む処理結果を出力し(ステップS1004)、第3の移動判定処理を終了する。
以上で説明したように、コントローラノード100は、ボリュームに対応づけられたデータ制御ポリシに基づいて、ボリュームを配置するストレージノード120を決定する。これによって、業務システムの可用性を維持し、かつ、記憶容量を有効に活用したシステムを実現できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 コントローラノード
110 計算機ノード
120 ストレージノード
150 ネットワーク
101、111、121 CPU
102、112、122 メモリ
103、113、123 記憶装置
104、114、124 ネットワークインタフェース
201 制御ポリシ決定プログラム
202 初期配置制御プログラム
203 ボリューム移動制御プログラム
211 クラスタ管理情報
212 ミドルウェア管理情報
301 ボリューム生成プログラム
302 ボリューム移動プログラム
303 I/O処理プログラム
304 重複排除/圧縮プログラム
305 Erasure Cordingプログラム
306 Mirroringプログラム
311 ボリューム管理情報

Claims (12)

  1. 記憶装置と、サービスを提供するシステムの可用性を実現するためのデータ保護機能を有するデータ管理部に前記記憶装置に基づく記憶領域を提供し、前記記憶領域のデータ制御機能を有する記憶領域管理部と、前記記憶領域の配置及び前記記憶領域に適用するデータ制御ポリシを管理する制御部と、を備える計算機システムであって、
    前記制御部は、
    前記サービスを提供するシステムの可用性及び前記サービスの性能に関する第1の設定情報を取得し、
    前記第1の設定情報に基づいて、前記記憶領域に適用する前記データ制御ポリシを決定し、
    前記記憶領域管理部は、前記データ制御ポリシに基づいて、前記記憶領域に対する制御を行うことを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記記憶領域管理部は、前記記憶領域を管理するための記憶領域管理情報を保持し、
    前記制御部は、
    第1のデータ管理部から、前記第1の設定情報を含む、第1の記憶領域の生成要求を受け付けた場合、前記第1の記憶領域を配置する前記記憶装置を管理する前記記憶領域管理部を決定し、
    前記第1の設定情報に基づいて、前記第1の記憶領域に適用する前記データ制御ポリシを決定し、
    前記データ制御ポリシを含む前記第1の記憶領域の生成要求を、前記決定された記憶領域管理部に送信し、
    前記記憶領域管理部は、
    前記第1の記憶領域の生成要求を受信した場合、前記データ制御ポリシに基づいて、前記データ制御機能の設定を行い、
    前記第1の記憶領域を生成し、
    前記第1の記憶領域の情報及び前記第1の記憶領域に適用する前記データ制御ポリシを対応づけた管理データを前記記憶領域管理情報に追加し、
    前記記憶領域管理情報に基づいて、前記第1の記憶領域に対する制御を行うことを特徴とする計算機システム。
  3. 請求項1に記載の計算機システムであって、
    前記記憶領域管理部は、前記記憶領域及び前記記憶領域に適用する前記データ制御ポリシを対応づけた管理データを格納する記憶領域管理情報を保持し、
    前記制御部は、
    前記記憶領域管理部の状態を監視し、
    前記監視の結果、第2のデータ管理部に提供される第2の記憶領域の移動イベントが検出された場合、前記記憶領域管理情報を参照し、
    前記第2の記憶領域に対して適用される前記データ制御ポリシに基づいて、前記第2の記憶領域の移動先の前記記憶装置を管理する前記記憶領域管理部を決定し、
    前記第2の記憶領域が配置された移動元の前記記憶領域管理部及び移動先の前記記憶領域管理部に、前記第2の記憶領域の移動指示を送信することを特徴とする計算機システム。
  4. 請求項2に記載の計算機システムであって、
    前記データ制御ポリシは、データ冗長化処理及びデータ容量削減処理を行う第1の方式、前記データ制御機能を無効化した第2の方式、データ冗長化処理を行う第3の方式を含むことを特徴とする計算機システム。
  5. 請求項4に記載の計算機システムであって、
    前記制御部は、
    前記データ制御ポリシが前記第1の方式である場合、一つの前記記憶領域管理部が管理するように前記記憶領域を管理する前記記憶領域管理部を決定し、
    前記データ制御ポリシが前記第2の方式である場合、前記複数の記憶領域管理部が管理するように前記記憶領域を管理する前記記憶領域管理部を決定し、
    前記データ制御ポリシが前記第3の方式である場合、任意のアルゴリズムに基づいて前記記憶領域を管理する前記記憶領域管理部を決定することを特徴とする計算機システム。
  6. 請求項4に記載の計算機システムであって、
    前記第1の方式のデータ冗長化処理は、Erasure Cordingを用いたデータ冗長化処理であり、
    前記第1の方式のデータ容量削減処理は、重複排除処理及び圧縮処理の少なくともいずれかであり、
    前記第3の方式のデータ冗長化処理は、Erasure Cording及びMirroringのいずれかを用いたデータ冗長化処理であることを特徴とする計算機システム。
  7. 記憶装置と、サービスを提供するシステムの可用性を実現するためのデータ保護機能を有するデータ管理部に前記記憶装置に基づく記憶領域を提供し、前記記憶領域のデータ制御機能を有する記憶領域管理部と、前記記憶領域の配置及び前記記憶領域に適用するデータ制御ポリシを管理する制御部と、を備える計算機システムのデータ管理方法であって、
    前記データ管理方法は、
    前記制御部が、前記サービスを提供するシステムの可用性及び前記サービスの性能に関する第1の設定情報を取得し、前記第1の設定情報に基づいて、前記記憶領域に適用する前記データ制御ポリシを決定する第1のステップと、
    前記記憶領域管理部が、前記データ制御ポリシに基づいて、前記記憶領域に対する制御を行う第2のステップと、を含むことを特徴とするデータ管理方法。
  8. 請求項7に記載のデータ管理方法であって、
    前記記憶領域管理部は、前記記憶領域を管理するための記憶領域管理情報を保持し、
    前記第1のステップは、
    前記制御部が、第1のデータ管理部から、前記第1の設定情報を含む、第1の記憶領域の生成要求を受け付けた場合、前記第1の記憶領域を配置する前記記憶装置を管理する前記記憶領域管理部を決定するステップと、
    前記制御部が、前記第1の設定情報に基づいて、前記第1の記憶領域に適用する前記データ制御ポリシを決定するステップと、
    前記制御部が、前記データ制御ポリシを含む前記第1の記憶領域の生成要求を、前記決定された記憶領域管理部に送信するステップを含み、
    前記第2のステップは、
    前記記憶領域管理部が、前記第1の記憶領域の生成要求を受信した場合、前記データ制御ポリシに基づいて、前記データ制御機能の設定を行うステップと、
    前記記憶領域管理部が、前記第1の記憶領域を生成するステップと、
    前記記憶領域管理部が、前記第1の記憶領域の情報及び前記第1の記憶領域に適用する前記データ制御ポリシを対応づけた管理データを前記記憶領域管理情報に追加するステップと、
    前記記憶領域管理部が、前記記憶領域管理情報に基づいて、前記第1の記憶領域に対する制御を行うステップと、を含むことを特徴とするデータ管理方法。
  9. 請求項7に記載のデータ管理方法であって、
    前記記憶領域管理部は、前記記憶領域及び前記記憶領域に適用する前記データ制御ポリシを対応づけた管理データを格納する記憶領域管理情報を保持し、
    前記データ管理方法は、
    前記制御部が、前記記憶領域管理部の状態を監視するステップと、
    前記制御部が、前記監視の結果、第2のデータ管理部に提供される第2の記憶領域の移動イベントが検出された場合、前記記憶領域管理情報を参照し、前記第2の記憶領域に対して適用される前記データ制御ポリシに基づいて、前記第2の記憶領域を移動先の前記記憶装置を管理する前記記憶領域管理部を決定するステップと、
    前記制御部が、前記第2の記憶領域が配置された移動元の前記記憶領域管理部及び移動先の前記記憶領域管理部に、前記第2の記憶領域の移動指示を送信するステップと、を含むことを特徴とするデータ管理方法。
  10. 請求項8に記載のデータ管理方法であって、
    前記データ制御ポリシは、データ冗長化処理及びデータ容量削減処理を行う第1の方式、前記データ制御機能を無効化した第2の方式、データ冗長化処理を行う第3の方式を含むことを特徴とするデータ管理方法。
  11. 請求項10に記載のデータ管理方法であって、
    前記記憶領域を配置する前記記憶領域管理部を決定する処理は、
    前記データ制御ポリシが前記第1の方式である場合、前記制御部が、一つの前記記憶領域管理部が管理するように前記記憶領域を管理する前記記憶領域管理部を決定するステップと、
    前記データ制御ポリシが前記第2の方式である場合、前記制御部が、前記複数の記憶領域管理部が管理するように前記記憶領域を管理する前記記憶領域管理部を決定するステップと、
    前記データ制御ポリシが前記第3の方式である場合、前記制御部が、任意のアルゴリズムに基づいて前記記憶領域を管理する前記記憶領域管理部を決定するステップと、を含むことを特徴とするデータ管理方法。
  12. 請求項10に記載のデータ管理方法であって、
    前記第1の方式のデータ冗長化処理は、Erasure Cordingを用いたデータ冗長化処理であり、
    前記第1の方式のデータ容量削減処理は、重複排除処理及び圧縮処理の少なくともいずれかであり、
    前記第3の方式のデータ冗長化処理は、Erasure Cording及びMirroringのいずれかを用いたデータ冗長化処理であることを特徴とするデータ管理方法。
JP2019051435A 2019-03-19 2019-03-19 計算機システム及びデータ管理方法 Pending JP2020154587A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019051435A JP2020154587A (ja) 2019-03-19 2019-03-19 計算機システム及びデータ管理方法
US16/560,302 US11128535B2 (en) 2019-03-19 2019-09-04 Computer system and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019051435A JP2020154587A (ja) 2019-03-19 2019-03-19 計算機システム及びデータ管理方法

Publications (1)

Publication Number Publication Date
JP2020154587A true JP2020154587A (ja) 2020-09-24

Family

ID=72516126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019051435A Pending JP2020154587A (ja) 2019-03-19 2019-03-19 計算機システム及びデータ管理方法

Country Status (2)

Country Link
US (1) US11128535B2 (ja)
JP (1) JP2020154587A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022095014A (ja) * 2020-12-16 2022-06-28 株式会社日立製作所 ストレージ管理システム、管理方法
JP2023002151A (ja) * 2021-06-22 2023-01-10 株式会社日立製作所 管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
US11768608B2 (en) 2021-09-29 2023-09-26 Hitachi, Ltd. Computer system, compute node, and data management method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069210B (zh) * 2018-01-23 2021-09-28 杭州海康威视***技术有限公司 一种存储***、存储资源的分配方法及装置
CN112699183A (zh) * 2020-12-31 2021-04-23 浙江集享电子商务有限公司 数据处理方法、***、可读存储介质及计算机设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774466B2 (en) * 2002-10-17 2010-08-10 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed storage area network system
JP5412882B2 (ja) * 2009-03-04 2014-02-12 富士通株式会社 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
US8103904B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US9767098B2 (en) * 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
US8805793B2 (en) * 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US9354683B2 (en) * 2012-08-08 2016-05-31 Amazon Technologies, Inc. Data storage power management
US8959067B1 (en) * 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
JP5941404B2 (ja) * 2012-12-28 2016-06-29 株式会社日立製作所 通信システム、経路切替方法及び通信装置
WO2016051512A1 (ja) 2014-09-30 2016-04-07 株式会社日立製作所 分散型ストレージシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022095014A (ja) * 2020-12-16 2022-06-28 株式会社日立製作所 ストレージ管理システム、管理方法
JP7244482B2 (ja) 2020-12-16 2023-03-22 株式会社日立製作所 ストレージ管理システム、管理方法
JP2023002151A (ja) * 2021-06-22 2023-01-10 株式会社日立製作所 管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
JP7316322B2 (ja) 2021-06-22 2023-07-27 株式会社日立製作所 管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
US11768608B2 (en) 2021-09-29 2023-09-26 Hitachi, Ltd. Computer system, compute node, and data management method

Also Published As

Publication number Publication date
US11128535B2 (en) 2021-09-21
US20200304373A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
JP5124551B2 (ja) ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法
JP2020154587A (ja) 計算機システム及びデータ管理方法
JP6437656B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
JP5099128B2 (ja) ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
JP5320678B2 (ja) データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム
JP4659526B2 (ja) ストレージシステムにインストールされるプログラムのライセンスを管理する管理計算機、計算機システム及び制御方法
JP5228466B2 (ja) バックアップ装置、バックアップ方法およびバックアッププログラム
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
CN105027069A (zh) 卷区域的重复数据删除
JP2008065503A (ja) ストレージシステム及びバックアップ/リカバリ方法
WO2016067388A1 (ja) ストレージ装置およびストレージシステム
JP2010049637A (ja) 計算機システム、ストレージシステム及び構成管理方法
US20200117381A1 (en) Storage system and storage control method
JP5853109B2 (ja) 計算機、計算機システムの制御装置及び記録媒体
JP6025973B2 (ja) 計算機システム及び計算機システムのボリューム管理方法
JP2005092308A (ja) ディスク管理方法およびコンピュータシステム
US10747432B2 (en) Storage device, storage system, and storage control method
JP7437428B2 (ja) ストレージシステム、ドライブ移動方法、及びプログラム
JP7491545B2 (ja) 情報処理方法
CN111124260A (zh) 管理独立盘冗余阵列的方法、电子设备和计算机程序产品
JP2022061706A (ja) 計算機システム及び負荷分散方法
WO2018116392A1 (ja) 情報処理システム、及び、情報処理方法
WO2016208014A1 (ja) 管理計算機及びシステム構成切り替え方法