Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7244482B2 - ストレージ管理システム、管理方法 - Google Patents
[go: Go Back, main page]

JP7244482B2 - ストレージ管理システム、管理方法 - Google Patents

ストレージ管理システム、管理方法 Download PDF

Info

Publication number
JP7244482B2
JP7244482B2 JP2020208086A JP2020208086A JP7244482B2 JP 7244482 B2 JP7244482 B2 JP 7244482B2 JP 2020208086 A JP2020208086 A JP 2020208086A JP 2020208086 A JP2020208086 A JP 2020208086A JP 7244482 B2 JP7244482 B2 JP 7244482B2
Authority
JP
Japan
Prior art keywords
storage
data
data protection
redundancy
management system
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
JP2020208086A
Other languages
English (en)
Other versions
JP2022095014A (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 JP2020208086A priority Critical patent/JP7244482B2/ja
Priority to CN202110979875.0A priority patent/CN114637573B/zh
Priority to US17/470,224 priority patent/US11397643B2/en
Publication of JP2022095014A publication Critical patent/JP2022095014A/ja
Priority to US17/868,984 priority patent/US11797384B2/en
Priority to JP2023036243A priority patent/JP7532581B2/ja
Application granted granted Critical
Publication of JP7244482B2 publication Critical patent/JP7244482B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

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)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、ストレージ管理システム、および管理方法に関する。
複数の物理計算機から構成され、各々の物理計算機ではコンピューティングサービスとストレージサービスとの両方が稼働するハイパーコンバージドインフラストラクチャ(Hyper Converged Infrastructure:HCI)がある。HCIの構成において、コンテナコンピューティングサービスは、物理計算機で稼働するコンテナ基盤上のコンテナとして稼働する場合、物理計算機で稼働するハイパーバイザ上の仮想計算機として稼働する場合がある。ここで、コンピューティングサービスを行うコンテナ、仮想計算機をアプリケーションインスタンスと呼ぶ。
HCIの構成において、ストレージサービスは、物理計算機上で稼働するホストOSやハイパーバイザ上のプロセスとして稼働する場合、物理計算機で稼働するコンテナ基盤上のコンテナとして稼働する場合、物理計算機で稼働するハイパーバイザ上の仮想計算機として稼働する場合がある。ここで、ストレージサービスを行うプロセス、コンテナもしくは仮想計算機をストレージサービスインスタンスと呼ぶ。ストレージサービスインスタンスは、アプリケーションインスタンスに対してボリュームを提供する。ストレージサービスにおけるデータ保護として、たとえば特許文献1に記載の方法が知られている。
米国特許出願公開第2020/0073552号明細書
特許文献1に記載されている発明では、過剰なデータ保護となる可能性がある。
本発明の第1の態様によるストレージ管理システムは、プロセッサを有し、複数のストレージを管理するストレージ管理システムであって、前記ストレージは、複数の種類のコンポーネントを有して、前記複数のコンポーネントを組み合わせて、格納するデータの冗長化を行い、前記コンポーネント自身に設定されている冗長度を示したコンポーネント管理情報を有し、前記プロセッサは、前記コンポーネント管理情報と、前記ストレージに保存するデータに対するデータ保護の要求と、に基づき、前記ストレージにおいてデータを格納する前記コンポーネントの組み合わせを決定し、前記データ保護の要求には、少なくともデータの冗長度の要求が含まれ、前記プロセッサは、前記コンポーネント管理情報に記されるコンポーネント自身の冗長度と、前記複数のコンポーネントを組み合わせて設定する冗長度と、の合計が、前記データ保護の要求に含まれるデータの冗長度を満たすように前記コンポーネントの組み合わせを決定する。
本発明の第2の態様による管理方法は、プロセッサを有し、複数のストレージを管理するストレージ管理システムが実行する管理方法であって、前記ストレージは、複数の種類のコンポーネントを有して、前記複数のコンポーネントを組み合わせて、格納するデータが冗長化され、前記コンポーネント自身に設定されている冗長度を示したコンポーネント管理情報を有し、記コンポーネント管理情報と、前記ストレージに保存するデータに対するデータ保護の要求と、に基づき、前記ストレージにおいてデータを格納する前記コンポーネントの組み合わせを決定する決定処理を含み、前記データ保護の要求には、少なくともデータの冗長度の要求が含まれ、前記決定処理には、前記コンポーネント管理情報に記されるコンポーネント自身の冗長度と、前記複数のコンポーネントを組み合わせて設定する冗長度と、の合計が、前記データ保護の要求に含まれるデータの冗長度を満たすように前記コンポーネントの組み合わせを決定することを含む。
本発明によれば、指定されるデータ保護の要求に基づき、適切にデータ保護を実行できる。
計算機システムの構成図 分離型計算機クラスタの構成図 クラスタ管理用計算機およびノードのハードウェア構成図 ノードのメモリに格納される情報を示す図 クラスタ管理用計算機のメモリに格納される情報を示す図 ノード管理テーブルの一例を示す図 バックエンドデバイス管理テーブルの一例を示す図 クラスタ外データ保護先管理テーブルの一例を示す図 ストレージクラス管理テーブルの一例を示す図 冗長化関係性テーブルの一例を示す図 ボリューム管理テーブルの一例を示す図 ストレージクラス設定プログラムが実行するストレージクラス設定処理を示すフローチャート 図12におけるステップS1230の処理を示すフローチャート 稼働率計算処理を示すフローチャート ボリューム作成プログラムが実行するボリューム作成処理を示すフローチャート データ冗長度維持回復プログラムが実行するデータ冗長度維持回復処理を示すフローチャート 冗長化処理プログラムが実行する冗長化処理を示すフローチャート 変形例1におけるストレージクラス設定処理を示すフローチャート
実施の形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ(たとえばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(たとえばメモリ)および/または通信インタフェース装置(たとえばポート)を用いながら行うため、処理の主体がプロセッサとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサを含む装置が行う処理としてもよい。また、プロセッサが行う処理の一部または全部を行うハードウェア回路を含んでもよい。コンピュータプログラムは、プログラムソースから装置にインストールされてもよい。プログラムソースは、たとえば、プログラム配布サーバ、または、計算機が読み取り可能な記憶メディアであってもよい。
また、以下の説明では、「コンテナ」を管理対象として説明する場合があるが、コンテナの代わりに、物理計算機のハードウェアをエミュレートする仮想化方式である「仮想計算機(VM)」や物理計算機そのものである「ベアメタル」が管理対象であってもよい。
―第1の実施の形態―
以下、図1~図17を参照して、計算機システムの第1の実施の形態を説明する。
図1は、計算機システム100の構成図である。計算機システム100は、第1プライベートクラウド102-1と、第2プライベートクラウド102-2と、第1パブリッククラウド103-1と、第2パブリッククラウド103-2と、を含む。第1パブリッククラウド103-1は、第1サイト104-1および第2サイト104-2を含む。第1サイト104-1は、第1アベイラビリティゾーン105-1と第2アベイラビリティゾーン105-2を含む。図1では図示の都合によりいくつかのサイトおよびアベイラビリティゾーン(以下では「AZ」とも記載する)の記載を省略している。
第1プライベートクラウド102-1には、分離型第1計算機クラスタ111-1および第1ストレージシステム120-1が含まれる。第2プライベートクラウド102-2には、一体型第1計算機クラスタ112-1が含まれる。第1パブリッククラウド103-1における第1アベイラビリティゾーン105-1には、分離型第2計算機クラスタ111-2および第2ストレージシステム120-2が含まれる。第1パブリッククラウド103-1における第2アベイラビリティゾーン105-2には、一体型第2計算機クラスタ112-2が含まれる。第1パブリッククラウド103-1における第2サイト104-2には、一体型第3計算機クラスタ112-3が含まれる。第2パブリッククラウド103-2には、一体型第4計算機クラスタ112-4が含まれる。
以下では、分離型第1計算機クラスタ111-1と分離型第2計算機クラスタ111-2とをあわせて分離型計算機クラスタ111と呼ぶ。第1ストレージシステム120-1と第2ストレージシステム120-2とをあわせてストレージシステム120と呼ぶ。一体型第1計算機クラスタ112-1と、一体型第2計算機クラスタ112-2と、一体型第3計算機クラスタ112-3と、一体型第4計算機クラスタ112-4と、をあわせて一体型計算機クラスタ112と呼ぶ。
図2は、分離型計算機クラスタ111の構成図である。分離型計算機クラスタ111は、1または複数のノード201と、ネットワークスイッチ202と、クラスタ管理用計算機203と、管理用端末204とを含む。ノード201のそれぞれは、1または複数のアプリケーションコンテナ210と、ストレージサービスコンテナ211と、コンテナ管理基盤212とを含む。
図2では、クラスタ管理用計算機203とノード201とが別に構成されている例を示しているが、クラスタ管理用計算機203とノード201とを一つのベアメタル、すなわち物理計算機を用いて構成してもよい。また、ノード201およびクラスタ管理用計算機203は仮想計算機の形態であってもよく、コンテナ仮想化技術により構成されたコンテナの形態であってもよい。また、クラスタ管理用計算機203は必ずしも独立した装置である必要はなく、その機能をノード201のいずれかに内包してもよい。
ストレージサービスコンテナ211は、アプリケーションコンテナ210に対してボリュームサービスを提供する、ストレージサービスインスタンスの一例である。なお、図2のストレージサービスコンテナ211は、独立したOS空間を模擬するコンテナ基盤上で動作する単一のコンテナで構成されているが、物理計算機のハードウェアをエミュレートするハイパーバイザ上で動作する仮想計算機の形態であってもよいし、ベアメタルのハイパーバイザやホストOS上で動作するストレージサービスの形態であってもよい。また複数のコンテナや複数の仮想計算機でストレージサービスを提供する形態であってもよい。
アプリケーションコンテナ210は、ハイパーコンバージドインフラの利用者が利用するコンテナであり、アプリケーションサービスインスタンスの一例である。アプリケーションコンテナ210は、仮想計算機の形態であってもよいし、ベアメタルのハイパーバイザやホストOS上で動作するアプリケーションの形態であってもよい。コンテナ管理基盤212はアプリケーションコンテナ210とストレージサービスコンテナ211を管理する。ストレージサービスとアプリケーションの動作形態に応じて、コンテナ管理基盤212は仮想計算機管理基盤の形態やベアメタル管理基盤の形態であってもよい。
計算機システム100におけるデータ保護処理は、ユーザが管理用端末204を用いてストレージクラスの要件を入力することから始まる。ストレージクラスの要件とは、ストレージに保存するデータに対するデータ保護の要求である。データ保護の要求には、障害の種類と冗長度との組合せ、可用性の確率、およびコストが含まれる。ただしそれぞれのデータ保護の要求には、これら3つのうち少なくとも1つが含まれていればよい。なお以下では、障害の種類と冗長度との組合せを「各コンポーネント観点」と呼ぶことがあり、可用性の確率を「全システム観点」と呼ぶこともある。
計算機システム100は、要件が入力されるとその要件に合致するデータ保護先の候補を算出し、ストレージクラス管理番号とともに記憶する。次にユーザが、ストレージクラス管理番号と必要なボリュームのサイズとを指定すると、計算機システム100はボリュームを作成する。作成されたボリュームには、ユーザが指定するデータやユーザがしてするアプリケーションコンテナ210が生成するデータが格納される。
図3は、クラスタ管理用計算機203およびノード201のハードウェア構成図である。以下では図3を参照してノード201の構成を説明するが、以下に説明する範囲ではクラスタ管理用計算機203のハードウェア構成も同一である。
ノード201は、たとえば、PCやサーバ等の計算機によって構成され、プロセッサ部の一例としてのCPU(Central Processing Unit)301、メモリ302、HBA(Host Bus Adapter)303、NIC(Network Inferface Card)304、USB(Universal Serial Bus)305、VGA(Video Graphics Array)306、およびストレージデバイスを含む。これら構成要素は、内部バスや外部バスで接続されている。ストレージデバイスにはたとえば、NVMe(Non-Volatile Memory express)ドライブ310、SAS(Serial Attached SCSI)ドライブ311、SATA(Serial ATA)ドライブ312等である。
ノード201は、ストレージシステム120とは、NIC304やHBA303を介して接続する。また、NvMeドライブ310などのストレージデバイスは、不図示のRAIDカードを経由してCPU301などと接続されてもよい。
図4は、ノード201のメモリ302に格納される情報を示す図である。ノード201のメモリ302は、コンテナ管理基盤用メモリ領域410と、ストレージサービスコンテナ用メモリ領域420と、アプリケーションコンテナ用メモリ領域430とを含む。ストレージサービスコンテナ用メモリ領域420には、ボリューム管理テーブル421と、ストレージサービス処理プログラム422と、冗長化処理プログラム423と、冗長度回復処理プログラム424と、が格納される。アプリケーションコンテナ用メモリ領域430には、1以上のアプリケーションプログラム431が格納される。
ボリューム管理テーブル421には、ボリュームごとのデータ保護先の情報が格納される。ストレージサービス処理プログラム422は、ハイパーコンバージドインフラストラクチャのサービスを実現するための公知の処理を行うプログラムである。ストレージサービス処理プログラム422は、必要に応じて冗長化処理プログラム423に動作指令を出力する。冗長化処理プログラム423は、冗長化処理を実行するプログラムである。冗長化処理プログラム423の動作は、後に図17を参照して詳述する。冗長度回復処理プログラム424は、データ冗長度維持回復プログラム512から呼び出され、冗長度を回復させるために指定されたデータ保護先へデータの書き込みを行う。
図5は、クラスタ管理用計算機203のメモリ302に格納される情報を示す図である。ノード201のメモリ302には、ノード管理テーブル501と、バックエンドデバイス管理テーブル502と、クラスタ外データ保護先管理テーブル503と、ストレージクラス管理テーブル504と、冗長化関係性テーブル505と、ストレージクラス設定プログラム510と、ボリューム作成プログラム511と、データ冗長度維持回復プログラム512と、が格納される。
ノード管理テーブル501には、特定のクラスタ内の各ノードの情報が記載される。ただしクラスタ管理用計算機203にノード管理テーブル501が格納される代わりに、各ノードのノード管理テーブル501に相当する情報が対応する各ノードの内部に格納されてもよい。バックエンドデバイス管理テーブル502には、特定のクラスタに含まれるすべての機器に関する情報が格納される。ただしクラスタ管理用計算機203にバックエンドデバイス管理テーブル502が格納される代わりに、各ノードのバックエンドデバイス管理テーブル502に相当する情報が対応する各ノードの内部に格納されてもよい。また以下では、バックエンドデバイス管理テーブル502を「コンポーネント管理情報」とも呼ぶ。
クラスタ外データ保護先管理テーブル503には、他のクラスタにおけるデータ保存領域の情報が格納される。ストレージクラス管理テーブル504には、ユーザが要求するデータ保護の要件事のデータ保護先の候補の一覧が格納される。冗長化関係性テーブル505には、冗長性を担保するために、指定されたコンポーネント以外でも同等の冗長性を確保できるコンポーネントが示されている。
ストレージクラス設定プログラム510は、管理用端末204からストレージクラスの要件を受信して動作を開始し、指定された要件を満たす候補をストレージクラス管理テーブル504に記載する。ストレージクラス設定プログラム510の動作は後に図12を参照して詳述する。ボリューム作成プログラム511は、管理用端末204から指定されるボリュームの要件を満たすボリュームを作成する。ボリューム作成プログラム511の動作は後に図15を参照して詳述する。データ冗長度維持回復プログラム512は、障害を検出してデータ冗長の維持回復を行う。データ冗長度維持回復プログラム512の動作は後に図16を参照して詳述する。
図6は、ノード管理テーブル501の一例を示す図である。ノード管理テーブル501は複数のレコードから構成され、各レコードは、ノード番号601、障害耐性リソース602、稼働率603、AFR604、MTBF605、およびMTTR606のフィールドを有する。ノード番号601には、各ノードの識別子が格納される。本実施の形態ではノードの識別子は「N」と数字の組み合わせとする。障害耐性リソース602には、ノードが有する耐性の種類が格納される。たとえば電源が二重化されているノードは、障害耐性リソース602のフィールドに「電源」と記載される。ノード番号「N1」のノードは、電源、ファン、およびネットワークの耐性があることが示されている。
稼働率603には、ノードの稼働率が格納される。AFR604には、ノードの年間平均故障率(Annual Failure Rate)が格納される。MTBF605には、ノードの平均故障間隔(mean time between failures)が格納される。MTTR606には、そのノードの平均復旧時間(Mean Time To Repair)が格納される。
図7は、バックエンドデバイス管理テーブル502の一例を示す図である。バックエンドデバイス管理テーブル502は複数のレコードから構成され、各レコードは、デバイス番号701、ノード番号702、冗長度703、障害耐性リソース704、スナップショットイメージ(SS-IMG)バックアップ705、稼働率706、AFR707、MTBF708、MTTR709、およびコスト710のフィールドを有する。
デバイス番号701には、各デバイスの識別子が格納される。ノード番号702には、デバイスが属するノードの識別子が格納される。この識別子は、図6におけるノード番号601と同じ意味である。冗長度703には、そのデバイスの冗長度合いを示す値が格納される。たとえば、冗長度703が「1」のデバイスは冗長性がないことを意味する。換言すると、冗長度703が「2」以上のデバイスはクラスタ管理用計算機203やストレージサービスコンテナ211が管理しないバックエンドでのデータ保護であるバックエンド保護が実行されている。
障害耐性リソース704には、そのデバイスが有する耐性の種類が格納される。たとえば、あるデバイスがRAIDカードなどを内蔵してデバイス内でミラーリングを行う場合には、障害耐性リソース704に「デバイス」と記載される。また、外部ストレージシステムなどのボリュームを用いる場合に、そのデバイスがクラスタのノード間で冗長化されている場合は、障害耐性リソース704に「ノード」と記載される。
SS-IMGバックアップ705には、デバイスに格納されている情報のスナップショットイメージ(SS-IMG)のバックアップがされているか否かを示す情報が格納される。稼働率706、AFR707、MTBF708、およびMTTR709は、図6における稼働率603、AFR604、MTBF605、およびMTTR606と同一の情報なので説明を省略する。コスト710には、デバイスにデータを保存するコスト、より具体的には1GBのデータを1年間保存するための費用がドル単位で格納される。たとえばデバイスD1を用いて1GBのデータを1年間保存すると0.5ドルの費用が発生することが示されている。
図8は、クラスタ外データ保護先管理テーブル503の一例を示す図である。クラスタ外データ保護先管理テーブル503は複数のレコードから構成され、各レコードは、保護先管理番号801、接続情報802、AZ803、サイト804、サービス事業者805、稼働率806、AFR807、およびコスト808のフィールドを有する。稼働率806、AFR807、およびコスト808は、図7における稼働率706、AFR707、およびコスト710のそれぞれと同一の情報なので説明を省略する。
保護先管理番号801には、クラスタの外部に存在するデータ保護先の識別子が格納される。本実施の形態では、データ保護先の識別子に、「P」と数字との組合せを用いる。接続情報802には、データ保護先の所在地、たとえばIPアドレスが格納される。AZ803には、クラスタ外データ保護先管理テーブル503を有するクラスタとデータ保護先のアベイラビリティゾーンが同一であるか否かを示す情報が格納される。サイト804には、クラスタ外データ保護先管理テーブル503を有するクラスタとデータ保護先のサイトが同一であるか否かを示す情報が格納される。サービス事業者805には、クラスタ外データ保護先管理テーブル503を有するクラスタとデータ保護先のサービス事業者が同一であるか否かを示す情報が格納される。
なおクラスタ外データ保護先管理テーブル503には、MTBFやMTTRなど他の信頼性、可用性に関する指標が含まれてもよい。AZ803、サイト804、およびサービス事業者805には、同一か否かという情報に替えて、何らかの識別子を格納してもよい。その場合は、管理元のストレージクラスタのAZ、サイト、およびサービス事業者のIDを別途管理して、そのIDとの一致、不一致で同一か別かを判断する。
図9は、ストレージクラス管理テーブル504の一例を示す図である。ストレージクラス管理テーブル504は複数のレコードから構成され、各レコードは、ストレージクラス管理番号901、要件902、およびデータ保護先候補903のフィールドを有する。ストレージクラス管理番号901には、ストレージクラスの識別子が格納される。本実施の形態では、ストレージクラスは「C」と数字の組み合わせの識別子を用いる。要件902には、ユーザから指定されたストレージクラスの要件、換言するとストレージに保存するデータに対するデータ保護の要求が格納される。データ保護先候補903には、ユーザから指定された要求を満たすデータ保護先の候補が格納される。この候補は、単独の場合もあるし、組合せの場合もある。
たとえば図9に示す最初のレコードでは、管理番号「C1」のストレージクラスは、ユーザからデバイスおよびAZの障害に耐えられる2冗長が求められており、D3とP5の組合せ、およびD4とP5の組合せのそれぞれで実現できることが示されている。ストレージクラスが追加されたときに、要件を満たす全ての組み合わせがデータ保護先候補903に格納されてもよいし、要件を満たす組合せの一部がデータ保護先候補903に格納されてもよい。後者の場合は、空き容量が所定の閾値よりも減少した際に、データ保護先候補903に新たなデータ保護先が追加される。
図10は、冗長化関係性テーブル505の一例を示す図である。冗長化関係性テーブル505は複数のレコードから構成され、各レコードは、コンポーネント種別1001、および代替種別1002のフィールドを有する。コンポーネント種別1001には、冗長化の対象となるコンポーネントの種別が格納される。代替種別1002には、代替して冗長化が可能となるコンポーネントの種別が格納される。図10に示す最初のレコードは、ストレージデバイスの冗長は、ノードの冗長化で代替可能であることが示されている。なお図10に示されている情報を集約すると、ネットワーク構成における下位のコンポーネントの冗長化は、上位のコンポーネントで代替できることが示されている。
図11は、ボリューム管理テーブル421の一例を示す図である。ボリューム管理テーブル421は複数のレコードから構成され、各レコードは、ボリューム管理番号1101、ストレージクラス管理番号1102、およびデータ保護先1103のフィールドを有する。ボリューム管理番号1101には、ボリュームの識別子が格納される。本実施の形態ではボリュームの識別子に「V」と数字との組合せを用いる。ストレージクラス管理番号1102は、図9におけるストレージクラス管理番号901と同じ意味なので説明を省略する。
データ保護先1103は、ボリュームの情報を格納するデバイス等の識別子が格納される。図11に示す例では、ボリューム管理番号V1~V3のいずれもストレージクラスC1に対応し、V1およびV2はD3とP5の組合せを利用し、V3はD4とP5の組合せを用いることが示されている。なおボリュームの一部ごとに保護先が異なる場合は、データ保護先に複数の情報が格納される。
(フローチャート)
図12は、ストレージクラス設定プログラム510が実行するストレージクラス設定処理を示すフローチャートである。CPU301は、まずステップS1210において、管理用端末204からストレージクラスの要件を受信する。続くステップS1220ではCPU301は、ストレージクラス管理テーブル504を参照して新たな管理番号を決定し、その管理番号をストレージクラス管理テーブル504のストレージクラス管理番号901のフィールドに、ステップS1210において受信した要件を要件902のフィールドに記載する。
続くステップS1230ではCPU301は、後述するように各コンポーネント観点での冗長化先選定処理、すなわち障害の種類と冗長度との組合せの要件を満たすデータ保護先の候補の決定を行う。ただし、ステップS1210において受信した要求にコンポーネント観点での条件が含まれない場合には、CPU301はステップS1230を実行しない。
続くステップS1240ではCPU301は、全システム観点での冗長化先選定処理、すなわち可用性の確率の要件を満たすデータ保護先の候補の決定を行う。具体的にはCPU301は、ステップS1210において受信した要求にシステムの稼働率が含まれる場合に本ステップを実行し、システムの稼働率が要求された値以上となるようにデータ保護先の候補を決定する。なおCPU301は、ノード管理テーブル501およびバックエンドデバイス管理テーブル502のいずれかに稼働率が設定されていないノードまたはデバイスが存在する場合には、後述する処理により稼働率を算出する。
ステップS1250ではCPU301は、システム観点でのコスト評価処理を行う。具体的にはCPU301は、ステップS1210において受信した要求にコストの条件が含まれている場合に実行され、ステップS1230およびステップS1240において選定された候補のそれぞれに対して、それぞれの候補に含まれるデバイスのコストを足し合わせて算出する。
続くステップS1260ではCPU301は、ステップS1210において受信した要件を全て満たす候補をストレージクラス管理テーブル504のデータ保護先候補903に格納して図12に示す処理を終了する。具体的にはCPU301は、ステップS1210において受信した要件が障害の種類と冗長度との組合せのみの場合はステップS1230における選定結果を出力する。CPU301は、ステップS1210において受信した要件が稼働率の要件のみの場合はステップS1240における選定結果を出力する。CPU301は、ステップS1210において受信した要件にコストが含まれる場合は、ステップS1250における選定結果を出力する。
なおストレージクラス設定プログラム510は、ステップS1210においてデータ保護の要求を読み込むので、ストレージクラス設定プログラム510は「読込部」と呼ぶこともできる。またステップS1230~S1250の各ステップでは、コンポーネントの観点、システムの観点、およびコストの観点で、ユーザのデータ保護の要求に基づきストレージのデータ保護の方法を決定するので、ストレージクラス設定プログラム510は「決定部」と呼ぶこともできる。
図13は、図12におけるステップS1230、すなわち各コンポーネント観点での冗長化先選定処理を示すフローチャートである。まずステップS1510ではCPU301は、各コンポーネント観点での要件のリストを作成する。そしてCPU301は作成したリストの各項目を順番に処理対象として、ステップS1520~S1540の処理を実行する。ステップS1520ではCPU301は、処理対象である要件に合致する候補のデバイスをバックエンドデバイス管理テーブル502から抽出して列挙する。
続くステップS1530ではCPU301は、ステップS1520の処理により少なくとも1つの候補が存在するか否かを判断する。CPU301は候補が少なくとも1つは存在すると判断する場合はステップS1550に進み、候補が1つもないと判断する場合はステップS1540に進む。ステップS1540ではCPU301は、冗長化関係性テーブル505を参照し、冗長化が代替可能なコンポーネント種別で、要件に合致する候補を列挙してステップS1550に進む。
ステップS1550ではCPU301は、ステップS1510において作成した要件のリストの全てを処理対象としたか否かを判断する。そしてCPU301は、まだ処理対象としていない要件が存在する場合には、未処理の要件を処理対象としてステップS1520以下の処理を実行する。CPU301はリストの全てを処理対象としたと判断する場合は図13に示す処理を終了する。
図14は、図12におけるステップS1240において必要に応じて呼び出される、稼働率計算処理を示すフローチャートである。CPU301は、稼働率が設定されていない全てのデバイスを対象としてステップS1620~S1640の処理を繰り返す。具体的にはCPU301は、稼働率が設定されていない全てのデバイスを列挙し、その1つずつを処理対象(以下、「処理対象デバイス」と呼ぶ)としてステップS1620~S1640の処理を行う。
ステップS1620ではCPU301は、処理対象デバイスのMTBFと、処理対象デバイスが接続するノードのMTBFとを用いて、直列のMTBFを算出する。処理対象デバイスのMTBFをX、処理対象デバイスが接続するノードのMTBFをY、算出対象である直列のMTBFをZと置くと、(1/Z)=(1/X)+(1/Y)の関係にあるZの値を算出する。
続くステップS1630ではCPU301は、ノード障害が発生した場合の冗長度回復処理に要する時間をMTTRに設定する。続くステップS1640ではCPU301は、MTBFとMTTRとを用いて、ノードとデバイスの直列の稼働率を算出する。具体的にはCPU301は、MTBFの値を、MTBFとMTTRの和で除することにより稼働率の値を得る。CPU301は、稼働率が設定されていない全てのデバイスを対象としてステップS1620~S1640の処理を繰り返すと、ステップS1660に進む。ステップS1660ではCPU301は、各組合せ候補の直列または並列の状況に応じて稼働率を計算し、図14に示す処理を終了する。
図15は、ボリューム作成プログラム511が実行するボリューム作成処理を示すフローチャートである。ボリューム作成プログラム511は、まずステップS1310において、管理用端末204から指定されたボリュームの要件を受信する。この要件には少なくともストレージクラスの管理番号か、過去に伝達済みのストレージクラスの要件が含まれ、ボリュームの容量の指定が含まれてもよい。この要件はたとえば、「管理番号C1に2TBのボリューム」、「デバイスが2冗長、かつAZが2冗長である2TBのボリューム」というものである。なお、図9に示すストレージクラス管理テーブル504を前提とすればこの2つの要件は同一である。
続くステップS1320ではCPU301は、ストレージクラス管理テーブル504を参照し、要件で指定されたストレージクラスの組合せ候補を取得する。たとえば先ほどの例ではCPU301は、D3とP5の組合せ、D4とP5の組合せ、およびD4とP5の組合せを候補として取得する。続くステップS1330ではCPU301は、ステップS1320において取得した少なくとも1つに候補に十分な空き容量があるか否かを判断する。十分な空き容量とは、ステップS1310において容量が指定されている場合にはそれ以上の空き容量であり、ステップS1310において容量が指定されていない場合には、たとえばあらかじめ定められた容量、たとえば1TBの空き容量である。
CPU301は、十分な空き容量があると判断する場合はステップS1340に進み、いずれの候補にも空き容量がないと判断する場合はステップS1360においてエラーを出力して図15に示す処理を終了する。ステップS1340ではCPU301は、ステップS1320において取得した候補のうち、空き容量を満たす組合せ候補をデータ保護先として決定する。続くステップS1350ではCPU301は、ステップS1340において決定したデータ保護先に容量を確保して図15に示す処理を終了する。なお、シックプロビジョニングの場合は決定した保護先の容量を確保し、シンプロビジョニングの場合は必要最低限の領域のみを確保する。
なおステップS1330において、空き容量を満たす単一の組合せ候補がない場合は、サブボリューム毎に異なる組合せ候補を用いてもよい。同じくステップS1330において空き容量が足りないと判断する場合は、エラーとするのではなく、新たに追加されたコンポーネントの有無を確認し、ストレージクラスの仕様を満たす新たな組合せ候補がある場合はストレージクラス管理テーブル504を更新し、ボリューム作成処理を再実行してもよい。
図16は、データ冗長度維持回復プログラム512が実行するデータ冗長度維持回復処理を示すフローチャートである。CPU301は、まずステップS1410において、各表のノード、デバイス、クラスタ外データ保護先の障害を検出する。続くステップS1420ではCPU301は、ステップS1410において何らかの障害が検出されたか否かを判断する。CPU301は何らかの障害を検出したと判断する場合はステップS1430に進み、障害を検出していないと判断する場合はステップS1410に戻る。
ステップS1430ではCPU301は、ボリューム管理テーブル421を参照して障害の発生先がデータ保護先に指定されているボリュームを特定する。たとえばステップS1410においてデバイスD3に障害が検知された場合は、ボリューム管理テーブル421を参照してボリュームV1とV2が特定される。
続くステップS1440ではCPU301は、ステップS1430において特定したボリュームのリストを作成し、各ボリュームを順番に処理対象としてステップS1450~S1470の処理を実行する。ステップS1450ではCPU301は、ストレージクラス管理テーブル504を参照して処理対象のボリュームに対応するストレージクラス管理番号1102を特定し、別のデータ保護先の組合せ候補を特定する。処理対象のボリュームがV1の場合は、同じくストレージクラス管理番号C1のD4+P5が特定される。なおデータ保護先の選択において、元の組合せ候補と重複する複製先が多く含まれている組合せを選択することで、データの冗長度の回復のコストを低減することができる。
続くステップS1460ではCPU301は、ステップS1450において新しく選択したデータ保護先候補を、ボリュームを管理するボリューム管理テーブル421に登録する。続くステップS1470ではCPU301は、ボリュームを管理するノードの冗長度回復処理プログラム424に対して新しく選択したデータ保護先への複製を指示してステップS1480に進む。
ステップS1480ではCPU301は、ステップS1430において特定した全てのボリュームを処理対象としてステップS1450~S1470の処理を実行したか否かを判断する。CPU301は、特定した全てのボリュームを処理対象としてステップS1450~S1470の処理を実行したと判断する場合はステップS1410に戻り、未処理のボリュームが存在すると判断する場合は処理対象を変更してステップS1450に戻る。
図17は、冗長化処理プログラム423が実行する冗長化処理を示すフローチャートである。CPU301はまずステップS1710において、ストレージサービス処理プログラム422から書込データ、すなわち冗長化のために書き込みを行うべきデータを受信する。
続くステップS1720ではCPU301は、ボリューム管理テーブル421を参照し、データ保護先に対してステップS1710において受信した書込データを送信する。続くステップS1730ではCPU301は、同期書き込みが必要な全てのデータ保護先から書き込み完了報告を受信したか否かを判断する。CPU301は、完了報告を受信していないと判断するとステップS1730に留まり、完了報告を受信したと判断すると図17に示す処理を終了する。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)ストレージ管理システムである計算機システム100は、プロセッサであるCPU301を有し、ストレージシステム120や一体型計算機クラスタ112に含まれる複数のストレージを管理する。ストレージは、複数の種類のコンポーネントを有して、前記複数のコンポーネントを組み合わせて、格納するデータの冗長化を行う。計算機システム100は、コンポーネント自身に設定されている冗長度を示したコンポーネント管理情報であるバックエンドデバイス管理テーブル502を有する。CPU301は、バックエンドデバイス管理テーブル502と、ストレージに保存するデータに対するデータ保護の要求と、に基づき、ストレージのデータ保護の方法を設定する(ストレージクラス設定プログラム510:図12のステップS1230~S1250)。そのため、指定されるデータ保護の要求に基づき、適切にデータ保護を実行できる。
(2)CPU301は、バックエンドデバイス管理テーブル502に記されるコンポーネント自身の冗長度と、複数のコンポーネントを組み合わせて設定する冗長度と、の合計が、データ保護の要求に含まれるデータの冗長度を満たすようにストレージのデータ保護の方法を設定する。
(3)データ保護の要求は、データを保護するコンポーネントの障害の種類と、その生涯に対するデータの冗長度との組合せが含まれる。たとえば図9に例示したストレージクラス管理テーブル504のストレージクラス管理番号901がC1とC3のストレージクラスには、障害の種類と冗長度の組合せが含まれる。ストレージクラス設定プログラム510は、図12のステップS1230、すなわち図13に示す処理により、要求された障害の種類と冗長度の組合せを満たすデバイスの組合せを選択する。そのため計算機システム100は、要求された障害の種類と冗長度を満たすデータ保護を実行できる。
(4)データ保護の要求は、可用性の確率が含まれる。たとえば図9に例示したストレージクラス管理テーブル504のストレージクラス管理番号901がC2のストレージクラスには、可用性の確率である稼働率が含まれる。ストレージクラス設定プログラム510は、図12のステップS1240に示す処理、および必要に応じて図14に示す処理により、要求された可用性の確率を満たすデバイスの組合せを選択する。そのため計算機システム100は、要求された可用性の要件を満たすデータ保護を実行できる。
(5)データ保護の要求には、データ保護に要するコストが含まれる。たとえば図9に例示したストレージクラス管理テーブル504のストレージクラス管理番号901がC3のストレージクラスには、コストが含まれる。ストレージクラス設定プログラム510は、図12のステップS1250の処理により、要求されたコストを満たすデバイスの組合せを選択する。そのため計算機システム100は、要求されたコストの要件を満たすデータ保護を実行できる。
(6)複数のストレージに含まれる少なくとも1つのストレージは、ストレージ管理システムが管理しないバックエンドでのデータ保護であるバックエンド保護が実行されている。決定部(ストレージクラス設定プログラム510:図12のステップS1230)は、バックエンド保護とデータ保護の要求とに基づきストレージのデータ保護の方法を決定する。そのため、バックエンド保護がされているデバイスを用いる場合に、過剰な保護を防止できる。たとえば要求された保護の要件がデバイス障害について2冗長である場合に、図7のデバイス番号D2のように「デバイス」の障害耐性を有する場合にはすでに要件を満たしているので、さらなる保護を行わずにデータを保存し過剰な保護を抑制する。たとえば、パブリッククラウドではサービス事業者がデバイスのデータ保護を標準またはオプションで提供し、さらにリージョンやサイトレベルでのバックエンドの保護も提供することがある。このようなパブリッククラウドのデバイスを利用する場合には、バックエンドでの保護を考慮することで過剰な保護を防止できる。
(7)計算機システム100は、複数のストレージにおける障害を検出し、障害が検出されたストレージに格納されていたデータを、当該データに対するデータ保護の要求に応じて、複数のストレージのうち障害が検出されたストレージを除くいずれかのストレージに保存するデータ冗長度維持回復プログラム512を備える。そのため、ストレージに障害が発生した際にも、過不足なく適切なデータ保護を行える。
(8)複数のストレージのそれぞれは、2以上のノードのいずれかによって管理される。決定部(図13のステップS1540)は、ストレージの冗長化の代わりにノードの冗長化を選択可能である。そのため、異なる保護レベルでユーザの要求を満たすことができる。
(9)計算機システム100に含まれるクラスタ管理用計算機203が実行する管理方法は、計算機システム100に含まれる複数のストレージを以下のように管理する。すなわち、複数のストレージに含まれる少なくとも1つのストレージに保存するデータに対するデータ保護の要求を読み込むこと(図12のステップS1210)と、データ保護の要求に基づきストレージのデータ保護の方法を決定すること(図12のステップS1230~S1250)とを含む。そのため、指定されるデータ保護の要求に基づき、適切にデータ保護を実行できる。
(変形例1)
ストレージクラス設定プログラム510は、データを出力するアプリケーションにおけるデータ保護をさらに参酌してもよい。たとえばアプリケーションがデータを複数のアベイラビリティゾーンに保存しており、要求された保護の要件がAZ障害について2冗長である場合は、ストレージクラス設定プログラム510は、冗長度が「1」のデバイスを単独でデータ保護先に用いる。アプリケーションがすでに二重化を行っているので、ストレージクラス設定プログラム510がさらなる保護を行うと過剰になるためである。
本変形例ではユーザは、管理用端末204を用いて、ストレージクラスの要件と、ボリュームの作成と、そのボリュームに書き込みを行うことが想定されているアプリケーション(以下、「想定アプリケーション」と呼ぶ)のデータ保護方式とを入力する。データ保護方式とは、データ保護の要件に対応する概念であり、データをどのように保護するかを示す。たとえばデータ保護方式は、異なるデバイスに同一のデータを格納するデバイス保護、異なるノードに同一のデータを格納するノード保護、異なるAZに同一のデータを格納するAZ保護などである。
なお、ユーザが想定アプリケーションのデータ保護方式を入力する代わりに、想定アプリケーションの識別情報を入力し、ストレージクラス設定プログラム510が不図示であるその識別情報とデータ保護方式との対応表を参照してもよい。
図18は、変形例1におけるストレージクラス設定処理を示すフローチャートであり、第1の実施の形態における図12に相当する。以下では図12との相違点を主に説明する。最初に実行されるステップS1215では、CPU301は、管理用端末204からストレージクラスの要件だけでなく、想定アプリケーションの情報を受信してステップS1220に進む。ステップS1220の次に実行されるステップS1225ではCPU301は、ストレージクラスに作成するボリュームに対して書き込みを行うアプリケーションのデータ保護方式を読み込む。ステップS1215において受信した想定アプリケーションの情報が想定アプリケーションのデータ保護方式である場合にはその情報をそのまま使用する。また、ステップS1215において受信した想定アプリケーションの情報が想定アプリケーションの識別情報である場合には、前述の識別情報とデータ保護方式との対応表を参照してデータ保護の方式を読み込む。ステップS1230およびS1240ではCPU301は、アプリケーションのデータ保護方式とデータ保護の要求とに基づきストレージのデータ保護の方法を決定する。
この変形例1によれば、次の作用効果が得られる。
(10)データ保護の要求には、ストレージを利用することが想定される想定アプリケーションが実施するデータ保護の情報が含まれる。決定部(図18のステップS1530~S1550)は、想定アプリケーションが実施するデータ保護とデータ保護の要求とに基づきストレージのデータ保護の方法を決定する。そのため計算機システム100は、ボリュームに書き込みを行うアプリケーションのデータ保護方式を考慮して過不足のないデータ保護を実現できる。
上述した実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
100…計算機システム
111…分離型計算機クラスタ
112…一体型計算機クラスタ
120…ストレージシステム
201…ノード
203…クラスタ管理用計算機
204…管理用端末
210…アプリケーションコンテナ
211…ストレージサービスコンテナ
410…コンテナ管理基盤用メモリ領域
420…ストレージサービスコンテナ用メモリ領域
421…ボリューム管理テーブル
422…ストレージサービス処理プログラム
423…冗長化処理プログラム
424…冗長度回復処理プログラム
430…アプリケーションコンテナ用メモリ領域
431…アプリケーションプログラム
501…ノード管理テーブル
502…バックエンドデバイス管理テーブル
503…クラスタ外データ保護先管理テーブル
504…ストレージクラス管理テーブル
505…冗長化関係性テーブル
510…ストレージクラス設定プログラム
511…ボリューム作成プログラム
512…データ冗長度維持回復プログラム

Claims (9)

  1. プロセッサを有し、複数のストレージを管理するストレージ管理システムであって、
    前記ストレージは、複数の種類のコンポーネントを有して、前記複数のコンポーネントを組み合わせて、格納するデータの冗長化を行い、
    前記コンポーネント自身に設定されている冗長度を示したコンポーネント管理情報を有し、
    前記プロセッサは、前記コンポーネント管理情報と、前記ストレージに保存するデータに対するデータ保護の要求と、に基づき、前記ストレージにおいてデータを格納する前記コンポーネントの組み合わせを決定し、
    前記データ保護の要求には、少なくともデータの冗長度の要求が含まれ、
    前記プロセッサは、前記コンポーネント管理情報に記されるコンポーネント自身の冗長度と、前記複数のコンポーネントを組み合わせて設定する冗長度と、の合計が、前記データ保護の要求に含まれるデータの冗長度を満たすように前記コンポーネントの組み合わせを決定するストレージ管理システム。
  2. 請求項1に記載のストレージ管理システムであって、
    前記複数のストレージに含まれる少なくとも1つのストレージは、前記ストレージ管理システムが管理しないバックエンドでのデータ保護であるバックエンド保護が実行されており、
    記データ保護の要求から前記バックエンド保護により保護される要求を除き、残りの要求を満たすように前記ストレージにおいてデータを格納する前記コンポーネントの組み合わせを決定するストレージ管理システム。
  3. 請求項1に記載のストレージ管理システムであって、
    前記データ保護の要求には、障害の種類と冗長度との組合せが含まれ
    前記プロセッサは、前記データ保護の要求に含まれる前記障害の種類について、前記データ保護の要求に含まれる前記冗長度を有するように前記コンポーネントの組み合わせを決定するストレージ管理システム。
  4. 請求項1に記載のストレージ管理システムであって、
    前記データ保護の要求には、稼働率が含まれ
    前記プロセッサは、前記データ保護の要求に含まれる前記稼働率を満たすように前記コンポーネントの組み合わせを決定するストレージ管理システム。
  5. 請求項1に記載のストレージ管理システムであって、
    前記データ保護の要求には、データ保護に要するコストが含まれ
    前記プロセッサは、前記データ保護の要求に含まれる前記コストの条件を満たすように前記コンポーネントの組み合わせを決定するストレージ管理システム。
  6. 請求項1に記載のストレージ管理システムであって、
    前記データ保護の要求には、前記ストレージを利用することが想定される想定アプリケーションが実施するデータ保護であるアプリ保護の情報が含まれ、
    前記プロセッサは、前記データ保護の要求から前記アプリ保護により保護される要求を除き、残りの要求を満たすように前記ストレージにおいてデータを格納する前記コンポーネントの組み合わせを決定するストレージ管理システム。
  7. 請求項1に記載のストレージ管理システムであって、
    前記複数のストレージにおける障害を検出し、障害が検出されたストレージに格納されていたデータを、当該データに対するデータ保護の要求に応じて、前記複数のストレージのうち前記障害が検出されたストレージを除くいずれかのストレージに保存する回復処理を行うストレージ管理システム。
  8. 請求項1に記載のストレージ管理システムであって、
    前記コンポーネントは、ノード、および、ストレージデバイスを含むストレージ管理システム。
  9. プロセッサを有し、複数のストレージを管理するストレージ管理システムが実行する管理方法であって、
    前記ストレージは、複数の種類のコンポーネントを有して、前記複数のコンポーネントを組み合わせて、格納するデータが冗長化され、
    前記コンポーネント自身に設定されている冗長度を示したコンポーネント管理情報を有し、
    記コンポーネント管理情報と、前記ストレージに保存するデータに対するデータ保護の要求と、に基づき、前記ストレージにおいてデータを格納する前記コンポーネントの組み合わせを決定する決定処理を含み、
    前記データ保護の要求には、少なくともデータの冗長度の要求が含まれ、
    前記決定処理には、前記コンポーネント管理情報に記されるコンポーネント自身の冗長度と、前記複数のコンポーネントを組み合わせて設定する冗長度と、の合計が、前記データ保護の要求に含まれるデータの冗長度を満たすように前記コンポーネントの組み合わせを決定することを含む管理方法。
JP2020208086A 2020-12-16 2020-12-16 ストレージ管理システム、管理方法 Active JP7244482B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2020208086A JP7244482B2 (ja) 2020-12-16 2020-12-16 ストレージ管理システム、管理方法
CN202110979875.0A CN114637573B (zh) 2020-12-16 2021-08-25 存储管理系统、管理方法
US17/470,224 US11397643B2 (en) 2020-12-16 2021-09-09 Storage management system and management method
US17/868,984 US11797384B2 (en) 2020-12-16 2022-07-20 Storage management system and management method
JP2023036243A JP7532581B2 (ja) 2020-12-16 2023-03-09 計算機クラスタ、管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020208086A JP7244482B2 (ja) 2020-12-16 2020-12-16 ストレージ管理システム、管理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023036243A Division JP7532581B2 (ja) 2020-12-16 2023-03-09 計算機クラスタ、管理方法

Publications (2)

Publication Number Publication Date
JP2022095014A JP2022095014A (ja) 2022-06-28
JP7244482B2 true JP7244482B2 (ja) 2023-03-22

Family

ID=81942536

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020208086A Active JP7244482B2 (ja) 2020-12-16 2020-12-16 ストレージ管理システム、管理方法
JP2023036243A Active JP7532581B2 (ja) 2020-12-16 2023-03-09 計算機クラスタ、管理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023036243A Active JP7532581B2 (ja) 2020-12-16 2023-03-09 計算機クラスタ、管理方法

Country Status (3)

Country Link
US (2) US11397643B2 (ja)
JP (2) JP7244482B2 (ja)
CN (1) CN114637573B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878018B (zh) * 2021-09-28 2026-04-28 伊姆西Ip控股有限责任公司 用于管理存储设备的方法、电子设备和计算机程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297427A (ja) 2001-03-30 2002-10-11 Hitachi Ltd データのバックアップのための方法、装置、システム、プログラム及び記憶媒体
JP2004178253A (ja) 2002-11-27 2004-06-24 Hitachi Ltd 記憶デバイス制御装置および記憶デバイス制御装置の制御方法
JP2006302077A (ja) 2005-04-22 2006-11-02 Hitachi Ltd ボリュームマイグレーションシステム、ボリューム再配置方法及びプログラム
JP2020008944A (ja) 2018-07-03 2020-01-16 株式会社日立製作所 ストレージ管理装置及びストレージシステムを管理する方法
JP2020154587A (ja) 2019-03-19 2020-09-24 株式会社日立製作所 計算機システム及びデータ管理方法
JP2020173727A (ja) 2019-04-12 2020-10-22 株式会社日立製作所 ストレージ管理装置、情報システム、及びストレージ管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3865775B2 (ja) * 1995-04-11 2007-01-10 キネテック インコーポレイテッド データ処理システムにおけるデータの識別
JP5046305B2 (ja) 2008-07-30 2012-10-10 Kddi株式会社 階層型冗長ストレージシステムにおける冗長度算出方法、raid装置及びプログラム
JP4722973B2 (ja) * 2008-08-12 2011-07-13 株式会社日立製作所 リクエスト処理方法及び計算機システム
JP5369807B2 (ja) * 2009-03-24 2013-12-18 日本電気株式会社 ストレージ装置
JP2012027829A (ja) * 2010-07-27 2012-02-09 Hitachi Ltd スケールアウト型ストレージシステムを含んだストレージシステム群及びその管理方法
US20120210059A1 (en) 2011-02-11 2012-08-16 Ithaca Technologies, Llc Cascaded raid controller
WO2016051512A1 (ja) * 2014-09-30 2016-04-07 株式会社日立製作所 分散型ストレージシステム
CN105511990B (zh) * 2015-12-09 2019-11-01 浪潮电子信息产业股份有限公司 基于融合架构双冗余度存储控制节点架构的装置
US11150846B2 (en) * 2017-03-28 2021-10-19 Hitachi, Ltd. Storage system, computer-readable recording medium, and control method for system that reconstructs and distributes data
US11237750B2 (en) 2018-08-30 2022-02-01 Portworx, Inc. Dynamic volume replication factor adjustment
JP6957431B2 (ja) 2018-09-27 2021-11-02 株式会社日立製作所 Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297427A (ja) 2001-03-30 2002-10-11 Hitachi Ltd データのバックアップのための方法、装置、システム、プログラム及び記憶媒体
JP2004178253A (ja) 2002-11-27 2004-06-24 Hitachi Ltd 記憶デバイス制御装置および記憶デバイス制御装置の制御方法
JP2006302077A (ja) 2005-04-22 2006-11-02 Hitachi Ltd ボリュームマイグレーションシステム、ボリューム再配置方法及びプログラム
JP2020008944A (ja) 2018-07-03 2020-01-16 株式会社日立製作所 ストレージ管理装置及びストレージシステムを管理する方法
JP2020154587A (ja) 2019-03-19 2020-09-24 株式会社日立製作所 計算機システム及びデータ管理方法
JP2020173727A (ja) 2019-04-12 2020-10-22 株式会社日立製作所 ストレージ管理装置、情報システム、及びストレージ管理方法

Also Published As

Publication number Publication date
US20220358014A1 (en) 2022-11-10
US11397643B2 (en) 2022-07-26
CN114637573A (zh) 2022-06-17
JP2023060889A (ja) 2023-04-28
US20220188190A1 (en) 2022-06-16
US11797384B2 (en) 2023-10-24
JP2022095014A (ja) 2022-06-28
CN114637573B (zh) 2025-04-22
JP7532581B2 (ja) 2024-08-13

Similar Documents

Publication Publication Date Title
US11163472B2 (en) Method and system for managing storage system
CN103098030B (zh) 虚拟机感知复制方法和系统
US8793707B2 (en) Computer system and its event notification method
US9244780B2 (en) Restoring a failed storage volume after removal of a storage device from an array
CN109690494B (zh) 系统存储装置中的分层容错
US11853557B2 (en) Shared drive storage stack distributed QoS method and system
US10503620B1 (en) Parity log with delta bitmap
EP3697024B1 (en) Data processing method, device and distributed storage system
EP3794451B1 (en) Parity log with by-pass
JP7532581B2 (ja) 計算機クラスタ、管理方法
JP6674101B2 (ja) 制御装置および情報処理システム
US20080313378A1 (en) Method And System To Determine Device Criticality For Hot-Plugging In Computer Configurations
CN112783698A (zh) 一种存储系统中的元数据的管理方法及装置
US10162542B1 (en) Data protection and incremental processing for multi-span business applications
CN105138283A (zh) 计算机磁盘、用于计算机磁盘的数据管理方法及装置
US20250370640A1 (en) Allocation area protection groups

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230123

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230309

R150 Certificate of patent or registration of utility model

Ref document number: 7244482

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