JP2023094302A - 情報処理システム及び構成管理方法 - Google Patents

情報処理システム及び構成管理方法 Download PDF

Info

Publication number
JP2023094302A
JP2023094302A JP2021209695A JP2021209695A JP2023094302A JP 2023094302 A JP2023094302 A JP 2023094302A JP 2021209695 A JP2021209695 A JP 2021209695A JP 2021209695 A JP2021209695 A JP 2021209695A JP 2023094302 A JP2023094302 A JP 2023094302A
Authority
JP
Japan
Prior art keywords
logical unit
slu
logical
unit
storage
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
JP2021209695A
Other languages
English (en)
Inventor
司 柴山
Tsukasa Shibayama
貴敦 鈴木
Takanobu Suzuki
彰 出口
Akira Deguchi
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 JP2021209695A priority Critical patent/JP2023094302A/ja
Priority to US17/945,769 priority patent/US12019885B2/en
Publication of JP2023094302A publication Critical patent/JP2023094302A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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/2056Error 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 by mirroring
    • G06F11/2069Management of state, configuration or failover
    • 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/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • 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
    • 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration 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]

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】複数のストレージノードを用いて仮想ボリュームを提供する情報処理システムにおいて、データ制御の冗長化を実現するとともに、システム運用中のIO性能及び信頼性の低下を抑制する。【解決手段】情報処理システム1においては、異なるストレージノード3に実装された複数の制御部(制御ソフト53)が冗長化グループとして管理されると共に、1又は複数の第1の論理ユニット(SLU52)が冗長化グループに対応付けられ、冗長化グループを構成する複数の制御部には、第1の論理ユニットへのIO要求の処理を行うアクティブ制御部と、アクティブ制御部の障害時にその処理を引き継ぐスタンバイ制御部とが含まれる。プロセッサ(構成管理部55)は、アクティブ制御部が存在するストレージノード3に少なくとも1つの第2の論理ユニット(ALU51)を配置し、当該第2の論理ユニットとアクティブ制御部が担当する第1の論理ユニットとを対応付ける。【選択図】図4

Description

本発明は、情報処理システム及び構成管理方法に関し、複数のノードのストレージから仮想的なボリュームを提供する情報処理システム及びその構成管理方法に適用して好適なものである。
近年、汎用のサーバ装置(以下、ストレージノード)にストレージ制御ソフトウェアを実装することにより構築されるSDS(Software Defined Storage)が注目されている。SDSは、専用のハードウェアを必要とせず、拡張性も高いことから、その需要が増加している。SDSを利用した情報処理システムとしては、それぞれ1又は複数のSDSが実装された複数のストレージノードを組み合わせて1つのクラスタを構成し、クラスタを1つのストレージ装置として上位装置(以下、ホスト)に提供する情報処理システムが知られている。
例えば、特許文献1には、SDSが実装された複数のストレージノードから仮想的な論理ボリューム(仮想ボリューム)を提供する情報処理システムが開示されている。特許文献1の情報処理システムは、ストレージコントローラ(制御ソフト)が複数のストレージノードに跨ってアクティブ-スタンバイの組み合わせで冗長化構成され、これらのストレージコントローラの組み合わせがストレージノード間で数珠繋ぎに構成される。さらに、特許文献1の情報処理システムでは、上位装置からストレージノードへの複数のパス(マルチパス)を設定可能とし、アクティブの制御ソフトが存在するストレージノードに対して第1優先パスを設定し、スタンバイの制御ソフトが存在するストレージノードに対して第2優先パスを設定する。特許文献1の情報処理システムは、このようなマルチパスの設定により、アクティブの制御ソフトに障害が発生し、スタンバイの制御ソフトがアクティブに昇格した場合には、優先度に従って使用するパスを切り替えることにより、仮想ボリュームへのIO実行を継続することができるため、パスの冗長化構成を実現することができる。
特開2019-185328号公報
ところで、SCSI(Small Computer System Interface)のConglomerate LUN structureでは、ストレージノードにおいて、物理的な記憶装置に基づく論理ボリュームを提供する1又は複数のSLU(Subsidiary Logical Unit)と、SLUへのIOの受け口となるALU(Administrative Logical Unit)が作成され、ホストからのアクセスは全てALUを介して行われ、ALUが自ALUとバインドされたSLUにIOを振り分けるSCSIアーキテクチャモデルが公開されている。このSCSIアーキテクチャモデルでは、ホストは処理対象のSLUにバインドされたALUさえ認識できれば、当該ALUを経由してSLUとの間でIOを実行することが可能となる。このとき、IOの処理経路(具体的には、ホスト側のイニシエータからストレージノード側のターゲットを経由してALUまでのパスと、ALUからSLUまでのバインド)が異なるストレージノードを跨がないストレートの関係である場合には、データローカリティによる高いIO性能及び高い信頼性に期待できる。
しかし、特許文献1の情報処理システムを上記のSCSIアーキテクチャモデルで実現しようとする場合、通常運用時にはストレートの関係でターゲット、ALU及びSLUを構築できても、ストレージノードの増減設によってストレージ構成が変更された場合には、ストレートの関係が維持できない可能性があった。ストレートの関係が崩れ、ストレージノードを跨いだ接続構成になると、ストレージノード間を接続する外部ネットワークを経由してIO処理が行われることになるため、同一ストレージノードの内部ネットワークを経由してIO処理が行われる場合よりも処理時間が掛かり、IO性能が低下してしまう。また、外部ネットワークを経由することで、信頼性も低下する。
本発明は、以上の点を考慮してなされたもので、複数のノードのストレージから仮想的なボリュームを提供する情報処理システムにおいて、データ制御の冗長化を実現するとともに、システム運用中のIO性能及び信頼性の低下を抑制することが可能な情報処理システム及び構成管理方法を提案しようとするものである。
かかる課題を解決するため本発明においては、それぞれ1又は複数のプロセッサを備える複数のストレージノードと、記憶装置と、を備えた情報処理システムであって、前記複数のストレージノードは、ネットワークで接続されており、前記ストレージノードは、論理記憶領域である第1の論理ユニットと、前記第1の論理ユニットとの間に接続関係が設定され、前記接続関係を有する前記第1の論理ユニットに格納されたデータに対するIO要求の受け口となる第2の論理ユニットと、前記プロセッサ上で稼働し、前記第1の論理ユニットへの前記IO要求の処理を行う制御部と、を有し、異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、1又は複数の前記第1の論理ユニットが前記冗長化グループに対応付けられ、前記冗長化グループを構成する複数の前記制御部には、前記冗長化グループに対応付けられた前記第1の論理ユニットへの前記IO要求の処理を行うアクティブ制御部と、前記アクティブ制御部の障害時にその処理を引き継ぐスタンバイ制御部とが含まれ、前記プロセッサは、前記アクティブ制御部が存在する前記ストレージノードに少なくとも1つの前記第2の論理ユニットを配置し、当該第2の論理ユニットと、前記アクティブ制御部が担当する前記第1の論理ユニットとを対応付ける、情報処理システムが提供される。
また、かかる課題を解決するため本発明においては、それぞれ1又は複数のプロセッサを備える複数のストレージノードと、記憶装置と、を備えた情報処理システムの構成管理方法であって、前記複数のストレージノードは、ネットワークで接続されており、前記ストレージノードは、論理記憶領域である第1の論理ユニットと、前記第1の論理ユニットとの間に接続関係が設定され、前記接続関係を有する前記第1の論理ユニットに格納されたデータに対するIO要求の受け口となる第2の論理ユニットと、前記プロセッサ上で稼働し、前記第1の論理ユニットへの前記IO要求の処理を行う制御部と、を有し、異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、1又は複数の前記第1の論理ユニットが前記冗長化グループに対応付けられ、前記冗長化グループを構成する複数の前記制御部には、前記冗長化グループに対応付けられた前記第1の論理ユニットへの前記IO要求の処理を行うアクティブ制御部と、前記アクティブ制御部の障害時にその処理を引き継ぐスタンバイ制御部とが含まれ、前記プロセッサは、前記アクティブ制御部が存在する前記ストレージノードに少なくとも1つの前記第2の論理ユニットを配置し、当該第2の論理ユニットと、前記アクティブ制御部が担当する前記第1の論理ユニットとを対応付ける、構成管理方法が提供される。
本発明によれば、複数のストレージノードを用いて仮想ボリュームを提供する情報処理システムにおいて、データ制御の冗長化を実現するとともに、システム運用中のIO性能及び信頼性の低下を抑制することができる。
本発明の第1の実施形態に係る情報処理システム1の全体構成例を示すブロック図である。 ホスト2のハードウェア構成例を示すブロック図である。 ストレージノード3のハードウェア構成例を示すブロック図である。 情報処理システム1の論理構成例を示すブロック図である。 情報処理システム1におけるALU及びSLUの仕組みを説明するための図である。 ストレージノード3のメモリ32の論理構成例を示すブロック図である。 システム管理テーブル64の一例を示す図である。 制御ソフト管理テーブル65の一例を示す図である。 ALU管理テーブル62の一例を示す図である。 SLU管理テーブル63の一例を示す図である。 ホスト管理テーブル66の一例を示す図である。 パス管理テーブル67の一例を示す図である。 情報処理システム1においてストレージコントローラをデプロイする処理の処理手順例を示すフローチャートである。 ALU作成処理及びパス設定処理の詳細な処理手順例を示すフローチャートである。 SLU作成処理及びバインド処理の詳細な処理手順例を示すフローチャートである。 第2の実施形態におけるSLU管理テーブル71の一例を示す図である。 第2の実施形態におけるSLU作成処理の処理手順例を示すフローチャートである。 第3の実施形態の第1の変更方法におけるSLU作成処理の処理手順例を示すフローチャートである。 第3の実施形態の第2の変更方法におけるバインド処理の処理手順例を示すフローチャートである。 システム稼働情報管理テーブル72の一例を示す図である。 ノード負荷調整処理の処理手順例を示すフローチャートである。 第5の実施形態に係る情報処理システム8の構成例を示すブロック図である。 第5の実施形態におけるSLU管理テーブル91の一例を示す図である。 第5の実施形態におけるSLU作成処理の処理手順例を示すフローチャートである。
以下、図面を参照して、本発明の実施形態を詳述する。
なお、以下の記載及び図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。本発明が実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。本発明は、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は複数でも単数でも構わない。例えば、以下では本発明に係る複数の実施形態を説明するが、これらの実施形態においては、ある実施形態の構成の一部を他の実施形態の構成に置き換えたり、ある実施形態の構成に他の実施形態の構成を加えたり、各実施形態の構成の一部について他の構成の追加・削除・置換をすることが可能である。
以下の説明では、「テーブル」、「表」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、少なくとも1以上のプロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノード、ストレージシステム、ストレージ装置、サーバ、管理計算機、クライアント、又は、ホストであってもよい。プログラムを実行して行う処理の主体(例えばプロセッサ)は、処理の一部又は全部を行うハードウェア回路を含んでもよい。例えば、プログラムを実行して行う処理の主体は、暗号化及び復号化、又は圧縮及び伸張を実行するハードウェア回路を含んでもよい。プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
なお、以下の各実施形態で用いられるALU(Administrative Logical Unit)及びSLU(Subsidiary Logical Unit)は、SCSI(Small Computer System Interface)アーキテクチャモデルであるConglomerate LUN structureに仕様が定められた論理ユニット(LU)である。上記アーキテクチャモデルにおいて、SLUは実データを格納する記憶装置に基づく仮想的な論理ボリューム(仮想ボリューム)である。言い換えると、SLUは記憶装置の物理記憶領域に基づく論理記憶領域としての論理ユニットである。ALUは、自身と接続関係(バインド)が設定されたSLUに対するホストからのアクセス(IO要求)の受け口となるボリュームであって、受け取ったIO要求をSLUに振り分ける。すなわち、本説明の情報処理システムにおいて、ホストからのIO要求は、対象データを格納するSLUに接続されたALUを宛先として送信され、IO要求を受信したALUがゲートウェイとなって、上記SLUにIO要求を振り分ける。
(1)第1の実施形態
(1-1)システム構成
図1は、本発明の第1の実施形態に係る情報処理システム1の全体構成例を示すブロック図である。図1に示す情報処理システム1は、複数のホスト2と、複数のストレージノード3とを備えて構成される。図2は、ホスト2のハードウェア構成例を示すブロック図であり、図3は、ストレージノード3のハードウェア構成例を示すブロック図である。
各ホスト2及び各ストレージノード3の間は、例えばファイバーチャネル(Fibre Channel)、イーサネット(登録商標)、InfiniBand又は無線LAN(Local Area Network)などから構成されるストレージサービスネットワーク4を介して接続されるとともに、各ストレージノード3の間は、LAN、イーサネット、InfiniBand又は無線LANなどから構成されるバックエンドネットワーク5を介して接続されている。
なお、ストレージサービスネットワーク4及びバックエンドネットワーク5は、同一のネットワークにより構成されていてもよく、また各ホスト2及び各ストレージノード3がストレージサービスネットワーク4やバックエンドネットワーク5以外の管理ネットワーク(不図示)に接続されていてもよい。さらに、管理ネットワークには管理計算機が接続されていてもよい。この場合、ホスト2からストレージノード3への参照リクエストや設定リクエストは、管理ネットワーク経由、あるいは管理計算機経由で実行されるようにしてもよい。また、ストレージサービスネットワーク4及びバックエンドネットワーク5はそれぞれ、冗長化されていてもよい。
ホスト2は、ユーザ操作や実装されたアプリケーションプログラム(以下、これをアプリケーションと呼ぶ)からの要求に応じて、ストレージサービスネットワーク4を介してストレージノード3にデータを読み書きする機能を有する物理的なコンピュータ装置である。なお、ホスト2は、仮想マシン(VM)のような仮想的なコンピュータ装置であってもよく、ホスト2内に1以上の仮想マシンが構築される構成であってもよい。
ホスト2は、図2に示すように、内部ネットワーク20を介して相互に接続された1以上のCPU(Central Processing Unit)21、1以上の記憶装置23及び1以上の通信装置24と、CPU21と接続された1以上のメモリ22とを備える。
CPU21は、ホスト2全体の動作制御を司るプロセッサである。またメモリ22は、SRAM(Static RAM(Random Access Memory))やDRAM(Dynamic RAM)などの揮発性の半導体メモリや、不揮発性の半導体メモリから構成され、CPU21のワークメモリとして利用される。
記憶装置23は、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はSCM(Storage Class Memory)などの大容量の不揮発性の記憶装置から構成され、各種プログラムや制御データ等を長期的に保持するために利用される。記憶装置23に格納されたプログラムがホスト2の起動時や必要時にメモリ22にロードされ、メモリ22にロードされたプログラムをCPU21が実行することにより、後述のようなホスト2全体としての各種処理が実行される。
通信装置24は、ホスト2がストレージサービスネットワーク4を介してストレージノード3と通信を行うためのインタフェースであり、例えばファイバーチャネルカードやイーサネットカード、InfiniBandカード、無線LANカードなどから構成される。通信装置24は、ストレージサービスネットワーク4を介したストレージノード3との通信時におけるプロトコル制御を行う。
ストレージノード3は、ホスト2に対してデータを読み書きするための記憶領域を提供する物理的な汎用のサーバ装置である。なお、ストレージノード3は仮想マシンであってもよい。また、ストレージノード3がホスト2と同一の物理ノードに同居する構成であってもよい。
ストレージノード3は、図3に示すように、内部ネットワーク30を介して相互に接続された1以上のCPU31、複数の記憶装置33、1以上の第1の通信装置34及び1以上の第2の通信装置35と、CPU31と接続された1以上のメモリ32とを備える。このうちCPU31及びメモリ32の機能及び構成は、ホスト2の対応部位(CPU21又はメモリ22)と同様であるため、詳細な説明を省略する。
記憶装置33は、HDD、SSD又はSCMなどの大容量の不揮発性の記憶装置から構成され、NVMe(Non-Volatile Memory Express)やSAS(Serial Attached SCSI(Small Computer System Interface))、SATA(Serial ATA(Advanced Technology Attachment))などのインタフェースを介して第2の通信装置35と接続される。
また第1の通信装置34は、ストレージノード3がストレージサービスネットワーク4を介してホスト2と通信を行うためのインタフェースであり、第2の通信装置35は、ストレージノード3がバックエンドネットワーク5を介して他のストレージノード3と通信を行うためのインタフェースである。これら第1及び第2の通信装置34,35は、ホストの通信装置24と同様の構成を有するものであるため、詳細な説明を省略する。
なお、本実施形態において各ストレージノード3は、図1に示すように、他の1又は複数のストレージノード3と共にクラスタ6と呼ぶグループにまとめられて管理される。図1の例では、クラスタ6が1つのみ設定された場合について例示しているが、情報処理システム1内に複数のクラスタ6を設けるようにしてもよい。1つのクラスタ6を構成する各ストレージノード3は、ホスト2からは1つのストレージ装置として認識される。
図4は、情報処理システム1の論理構成例を示すブロック図である。情報処理システム1は、1以上のホスト2と、ホスト2に接続される複数のストレージノード3とを備えて構成される。
図4に示すように、ホスト2には、当該ホスト2内に作成された論理ユニット(後述する図5の論理ユニットLU)と関連付けられたイニシエータ(Initiator)ITが定義される。イニシエータITは、ホスト2が備える何れかのポートに対応付けられる。一方、各ストレージノード3には、クラスタ(図示省略)内に作成されたSLUがそれぞれ関連付けられたターゲット(Target)TGが定義される。ターゲットTGは、ストレージノード3が備える何れかのポートに対応付けられる。
各ストレージノード3は、前述したターゲットTGの他に、ALU51、1又は複数のSLU52、制御ソフト53、クラスタ制御部54、及び構成管理部55を備えて構成される。ALU51及びSLU52の詳細な仕組みについては、図5を参照しながら後述するが、ストレージノード3には、ホスト2からのIOリクエストの受け口となるALU51とALU51が受けたIOリクエストの処理対象となるSLU52とが存在し、ホスト2は、ALU51を認識するだけで、対応するSLU52とIOを実行することができる。また、クラスタ制御部54及び構成管理部55については、図6を参照しながら後述する。
制御ソフト53は、ストレージ構成やIO(Input/Output)を管理するストレージコントローラ(ソフトウェア)であり、図4に例示したように、複数のストレージノード3に跨って、アクティブ(Active)-スタンバイ(Standby)の組み合わせで冗長化して構成される。アクティブの制御ソフト53は、ホスト2からのIO要求を受け付けることができる現用系の状態(アクティブモード)に設定されていることを意味し、スタンバイの制御ソフト53は、ホスト2からのIO要求を受け付けない予備系の状態(スタンバイモード)に設定されていることを意味する。
また、本実施形態に係る情報処理システム1では、上記のアクティブ-スタンバイの制御ソフト53を組み合わせた冗長化グループ(ストレージコントローラグループ)56が、各ストレージノード3で数珠繋ぎに構成される。なお、図4では、1つの冗長化グループ56に含まれるアクティブの制御ソフト53及びスタンバイの制御ソフト53がそれぞれ1つであるが、本実施形態では、1つの冗長化グループ56が3以上の制御ソフト53(より具体的には、1つのアクティブの制御ソフト53と2以上のスタンバイの制御ソフト53)によって構成されてもよい。
上記のように複数のストレージノード3に跨って、複数の制御ソフト53から形成される冗長化グループ(ストレージコントローラグループ)56が数珠繋ぎに構成されることにより、SLU52に格納された実データは、制御ソフト53によってストレージノード3の間で冗長化して制御される。
本説明においては、イニシエータIT、ターゲットTG、及びALU51の接続をパスと称し(例えば図4における接続57,58)、ALU51及びSLU52の接続をバインドと称する(例えば図4における接続59)。例えば、図4には、ストレージノード#1の制御ソフト53がアクティブであるときの接続として、ホスト#1のイニシエータ(Initiator#1)からストレージノード#1のターゲット(Target#1)を経てALU#1にパスが設定され、ALU#1からSLU#1にバインドが設定されることが、実線で示されている。この接続関係は、ターゲットTGからALU51のパスと、ALU51からSLU52のバインドは、いずれもストレージノード3を跨がないことから、ストレートの関係である。
また、図4には、Initiator#1からTarget#2を経てALU#1にパスが設定され、ALU#1からSLU#1にバインドが設定されることが、破線で示されている。この接続関係は、ストレージノード#1のアクティブな制御ソフト53に障害が発生する等して、当該制御ソフト53とともに冗長化グループ56を形成するスタンバイの制御ソフト53(すなわち、ストレージノード#2の制御ソフト53)がアクティブに昇格した際に用いられるパス及びバインドのイメージを示したものである。
ストレージノード3におけるALU51及びSLU52の情報は、当該ストレージノード3が備える制御ソフト53及びその冗長化グループ56内の制御ソフト53で常に共有される。そして、詳細な説明は省略するが、アクティブの制御ソフト53に障害が発生し、スタンバイの制御ソフト53がアクティブに昇格する場合には、ALU51及びSLU52が動作するストレージノード3も、昇格後の制御ソフト53で動作するように見えるように構成される。この結果、図4を参照して具体的に説明すると、通常時には、ストレージノード#1上のアクティブの制御ソフト53が、ALU#1及びSLU#2を管理しながらストレージノード#1上で動作しているように見える。ここで、アクティブの制御ソフト53に障害が発生し、ストレージノード#2上のスタンバイの制御ソフト53がアクティブに昇格すると、フェイルオーバー処理が行われてALU#1及びSLU#1はストレージノード#2に移動され、ALU#1及びSLU#2はストレージノード#2上で動作するように見える。このとき、ホスト#1からSLU#1へのIOリクエストは、図4に示した破線の接続関係を用いて行われ、Target#2、ALU#1、及びSLU#1は何れもストレージノード#2に存在することから、これらのパス及びバインドはストレートの関係となる。
このように、情報処理システム1では、パス(イニシエータIT及びターゲットTGとALUとの接続)とバインド(ALUとSLUとの接続)の設定次第で、ストレージノード3に跨ったIOを実行することができる。
図5は、情報処理システム1におけるALU及びSLUの仕組みを説明するための図である。説明を簡便にするため、図5には、ホスト2及びストレージノード3を1つしか示していないが、図1に示したように、実際の情報処理システム1は、1又は複数のホスト2と、各ホスト2に対して接続される複数のストレージノード3とを備えてよい。
前述したように、本実施形態で用いられるALU51及びSLU52は、SCSIアーキテクチャモデルであるConglomerate LUN structureに仕様が定められた論理ユニット(LU)である。SLU52は実データを格納する記憶装置33に基づく仮想的な論理ボリューム(仮想ボリューム)を提供し、ALU51は、自身がバインドしているSLU52に対するIO(Input/Output)の受け口となる。すなわち、ホスト2からSLU52へのアクセスは全てALU51を介して行われ、ALU51はバインドされたSLU52にIOを振り分けるゲートウェイとなる。
具体的には、図5に示したように、情報処理システム1において、ストレージノード3内には、1又は複数のSLU52(SLU#1,SLU#2,・・・)と、ホスト2からのIOリクエストの受け口となるALU51とが作成される。また、ホスト2には、各SLU52に対応する仮想的なコンピュータとして1又は複数の仮想マシン(VM)41が構築される。そして、ストレージノード3の各SLU52が提供する仮想ボリュームは、ALU51から論理ユニットLUを介してホスト2(VM41)に提供される。
各VM41は、ユーザ操作や実装されたアプリケーションプログラム(以下、アプリケーションとも呼ぶ)からの要求に応じて、ストレージノード3にIOリクエストを送信する。ここで、本実施形態に係る情報処理システム1では、ストレージノード3では、後述するSLU管理テーブル63により、ALU51とSLU52とのバインド関係が管理される。したがって、ホスト2(VM41)は、IOリクエストを発行する際、SLU52を認識することなく、ALU51をマウントしていればよい。そしてホスト2(VM41)からALU51に送信されたIOリクエストは、構成管理部55によって、ALU51において適切なSLU52に振り分けられることにより、当該IOリクエストの処理対象とされたSLU52に、Read/Write等の各種要求が転送される仕組みとなっている。
図6は、ストレージノード3のメモリ32の論理構成例を示すブロック図である。各ストレージノード3のメモリ32には、図6に示すように、複数の制御ソフト53(1つはアクティブ)、クラスタ制御部54、構成管理部55、個々の制御ソフト53ごとの管理情報60、システム管理テーブル64、制御ソフト管理テーブル65、ホスト管理テーブル66、及びパス管理テーブル67が格納される。
制御ソフト53は、コンピュートノード(ホスト2、VM41)からのリクエストを受け付けてIO処理を行い、ストレージノード3間でデータを冗長化しドライブ(記憶装置33)へデータを格納するソフトウェアである。
制御ソフト53は、複数のストレージノード3に跨るアクティブ-スタンバイの冗長化グループ(ストレージコントローラグループ)56ごとに管理情報60を管理し、同一の冗長化グループ56に属する別のストレージノード3の制御ソフト53が管理する管理情報60と情報を同期して保存する。また、図6に示したように、個々の管理情報60は、当該ストレージノード3における制御ソフト53の状態がアクティブかスタンバイかによって、異なる種類(アクティブ用/スタンバイ用)の管理情報60が存在する。すなわち、図6において、同一のストレージノード3のメモリ32が格納するアクティブ用の管理情報60とスタンバイ用の管理情報60とは、それぞれ別の情報である(含まれるテーブルの構成は共通でもよい)。なお、管理情報60のうち、構成情報61に含まれる論物変換テーブル以外の情報については、同一の冗長化グループ56に属する制御ソフト53同士だけでなく、全てのストレージノード3において同期して保存するようにしてもよいが、本説明では簡便のために、アクティブ-スタンバイの関係を有する冗長化グループ56内だけで同期して保存する構成例を示している。
管理情報60には、構成情報61、ALU管理テーブル62、及びSLU管理テーブル63が含まれる。このうち、構成情報61には、具体的には、シン・プロビジョニング、階層制御、スナップショット、圧縮、重複排除、またはリモートコピー等のストレージ制御に必要な論物変換テーブル等の管理情報が格納されている。なお、構成情報61の具体的なデータ例は公知であるため詳細な説明を省略する。ALU管理テーブル62は、ALU51の管理情報である。後述する図9では、具体例を挙げてALU管理テーブル62を詳しく説明する。SLU管理テーブル63は、SLU52の管理情報であり、ALU51とSLU52のバインド情報を含む。後述する図10では、具体例を挙げてSLU管理テーブル63を詳しく説明する。
クラスタ制御部54は、クラスタ全体の管理(例えば、生死監視やフェイルオーバー処理等)を行うソフトウェアである。クラスタ制御部54は、公知のストレージシステムにおいてクラスタ制御機能を実現するプログラムと同様であることから、詳細な説明を省略する。
構成管理部55は、参照や設定変更等、ストレージシステム(情報処理システム1)における各種運用の管理操作を受け付け、管理情報を更新するソフトウェアである。なお、本実施形態において、構成管理部55は、必ずしもストレージノード3に存在しなくてもよく、例えば、前述した管理計算機上に存在するとしてもよい。
システム管理テーブル64は、情報処理システム1全体の情報を示すものであり、例えば、各ストレージノード3が有するリソースを管理する情報である。システム管理テーブル64は、全てのストレージノード3で情報が同期される。後述する図7では、具体例を挙げてシステム管理テーブル64を詳しく説明する。
制御ソフト管理テーブル65は、各ストレージノード3に配置された制御ソフト53の管理情報であって、全てのストレージノード3で情報が同期される。後述する図8では、具体例を挙げて制御ソフト管理テーブル65を詳しく説明する。
ホスト管理テーブル66は、ホスト2の管理情報であり、全てのストレージノード3で情報が同期される。後述する図11では、具体例を挙げてホスト管理テーブル66を詳しく説明する。
パス管理テーブル67は、パスの管理情報であって、具体的には、ホスト2からストレージノード3のALU51までのIO経路を示す情報を管理する。パス管理テーブル67は、全てのストレージノード3で情報が同期される。後述する図12では、具体例を挙げてパス管理テーブル67を詳しく説明する。
(1-2)データ構成
図7は、システム管理テーブル64の一例を示す図である。システム管理テーブル64は、情報処理システム1全体の情報として、例えば各ストレージノード3が有するリソースを管理する。
図7に示したシステム管理テーブル64は、管理対象のリソース(以下、当該リソース)を保有するストレージノード3の識別子を示すノードID641と、当該リソースの種別を示すリソース種別642と、当該リソースに割り当てられた識別子を示すリソースID643と、当該リソースに関する所定の項目の値を示す値644と、を有して構成される。値644に示される所定の項目は、リソースの種別に応じて予め定められていればよく、具体的には例えば、リソース種別642がポートである場合はポート番号を保持し、リソース種別642がドライブである場合はドライブの容量を保持する等とすればよい。
図8は、制御ソフト管理テーブル65の一例を示す図である。制御ソフト管理テーブル65は、各ストレージノード3に配置された制御ソフト53の管理情報である。
図8に示した制御ソフト管理テーブル65は、ストレージコントローラID651、状態652、SCG ID653、ノードID654、管理容量655、及び空き容量656を有して構成される。
ストレージコントローラID651は、それぞれの制御ソフト53(換言するとストレージコントローラ)に割り当てられた識別子を示す。状態652は、管理対象の制御ソフト53の状態を示すものであり、例えば、アクティブ(Active)、スタンバイ(Standby)の状態だけでなく、障害発生の状態を示すデッド(Dead)などが用意されてもよい。また、予備状態を示すスタンバイだけでなく、待機状態を示すパッシブ(Passive)等が用意されてもよいし、さらに他の値を持ってもよい。
SCG ID653は、管理対象の制御ソフト53が属するストレージコントローラグループIDを示す。ストレージコントローラグループIDは、アクティブ-スタンバイの制御ソフト53の組み合わせを含んで形成される冗長化グループ(ストレージコントローラグループ)56ごとに割当てられた識別子である。ノードID654は、管理対象の制御ソフト53が配置されたストレージノード3の識別子を示す。管理容量655は、管理対象の制御ソフト53が属する冗長化グループ(ストレージコントローラグループ)56単位で管理される容量(プール)の合計値を示す。当該プールは、ドライブ(記憶装置33)から記憶領域を割り当てて利用される。空き容量656は、管理対象の制御ソフト53が属するストレージコントローラグループが作成可能なプールの容量を示す。
図9は、ALU管理テーブル62の一例を示す図である。ALU管理テーブル62は、各ストレージノード3に配置されたALU51の管理情報である。
図9に示すALU管理テーブル62は、管理対象のALU51に割り当てられた識別子を示すALU ID621と、管理対象のALU51の名前を示す名前622と、管理対象のALU51を制御する制御ソフト53が属する冗長化グループ(ストレージコントローラグループ)56の識別子を示すSCG ID623と、を有して構成される。
図10は、SLU管理テーブル63の一例を示す図である。SLU管理テーブル63は、各ストレージノード3に配置されたSLU52の管理情報である。
図10に示すSLU管理テーブル63は、管理対象のSLU52に割り当てられた識別子を示すSLU ID631と、管理対象のSLU52の名前を示す名前632と、管理対象のSLU52が提供する論理ボリュームのサイズを示す容量633と、管理対象のSLU52を制御する制御ソフト53がどの冗長化グループ56に属するかをストレージコントローラグループIDで示すSCG ID634と、管理対象のSLU52とバインド状態になっているALU51のALU IDを示すALU ID635と、を有して構成される。
なお、ALU ID635の値が「N/A」である場合は、管理対象のSLU52がどのALU51ともバインドしていないことを意味する。ストレージノード3においてSLU52とALU51とは、N:M(何れも自然数)のバインド関係を作成することが可能であり、そのため、ALU ID635には複数の値(ALU ID)が設定されてもよい。
図11は、ホスト管理テーブル66の一例を示す図である。ホスト管理テーブル66は、ストレージノード3に上位装置として接続されるホスト2の管理情報である。
図11に示すホスト管理テーブル66は、ホストID661、種別662、パス設定上限数663、及びイニシエータID664を有して構成される。
ホストID661は、ホスト2に割り当てられた識別子を示す。種別662は、対象ホストの種別を示す。具体的には、物理マシンまたは仮想マシン、ハイパーバイザ、あるいはOSの種別等、種別を表現する任意の情報を設定可能とする。パス設定上限数663は、対象のホスト2から1つのLUに設定可能なパス(IO経路)の上限数を示す。イニシエータID664は、ホスト2側に定義されたイニシエータIT(ファイバーチャネルのWWN(World Wide Name)やiSCSIのIQN(iSCSI Qualified Name)等)に割り当てられた識別子を示す。
図12は、パス管理テーブル67の一例を示す図である。パス管理テーブル67は、パスの管理情報であって、ホスト2からストレージノード3のALU51までのIO経路の情報を示す。
図12に示すパス管理テーブル67は、ALU ID671、ホストID672、イニシエータID673、ノードID674、ターゲットID675、及び優先フラグ676を有して構成される。
ALU ID671、イニシエータID673及びターゲットID675は、対象パスに含まれるALU51、イニシエータIT、及びターゲットTGの識別子をそれぞれ示す。ターゲットID675に示されるターゲットTGの識別子は、当該ターゲットTGが定義されたストレージノード3のポートの識別子であり、図7のシステム管理テーブル64におけるポート(Port)のリソースID643あるいは値644(ユニークな値である場合に限る)に対応する値が設定される。
ホストID672は、対象パスに含まれるイニシエータITが定義されたホスト2の識別子を示し、ノードID674は、対象パスに含まれるALU51及びターゲットTGを有するストレージノード3の識別子を示す。なお、イニシエータID673にイニシエータITのポートIDが登録され、このID値がWW(World Wide)でユニークである場合には、パス管理テーブル67はホストID672を持たない構成であってもよい。同様に、ターゲットID675にターゲットTGのポートIDが記録され、このID値がWW(World Wide)でユニークである場合には、パス管理テーブル67はノードID674を持たない構成であってもよい。
優先フラグ676は、ALU ID672から示されるALU51とイニシエータID673から示されるイニシエータITとの間を結ぶパス(IO経路)が2個以上存在する場合に、IOを優先的に処理する経路を特定する情報を示す。具体的には、図12において優先フラグ676に「Yes」が登録されたパスは、IOを優先的に処理する優先パスであることを意味し、「No」が登録されたパスはIOを優先的に処理しない冗長パスであることを意味する。なお、優先フラグ676の情報は、ホスト2側でも保持される。より一般的には、優先フラグ676は、ALUA(Asymmetric Logical Unit Access)機能のPreferred相当のことを示す。
(1-3)処理
以下では、上述した構成を備える情報処理システム1が実行する処理について詳しく説明する。
図13は、情報処理システム1においてストレージコントローラをデプロイする処理の処理手順例を示すフローチャートである。図13には、処理の概要が示されており、詳細な処理手順は、後述する図14及び図15に示される。
図13に示す処理は、情報処理システム1においてストレージコントローラ(制御ソフト53)をデプロイ(配置)するとき、より具体的には、情報処理システム1においてアクティブな制御ソフト53がALU51とSLU52の組み合わせを初めて構築する初回構築時、あるいはストレージノード3の増設によりALU51とSLU52の組み合わせの構成が変更されるノード増設時に実行される。なお、システム管理テーブル64及び制御ソフト管理テーブル65の情報は、図13の処理が開始されるよりも前に、情報処理システム1の機器構成に基づいて設定されている。また、ホスト管理テーブル66の情報も、図13の処理開始前に、管理者等によって事前に設定されているとする。
図13によれば、構成管理部55は、まず、ALU51を作成するためのALU作成処理を実行する(ステップS11)。
次に、構成管理部55は、ステップS11で作成したALU51に対して、アクティブまたはスタンバイの制御ソフト53が存在するポートを含むようにホスト2からのパスを設定するパス設定処理を実行する(ステップS12)。
次に、構成管理部55は、管理者またはホスト2の上位プログラムからの要求に応じてSLU52を作成するためのSLU作成処理を実行する(ステップS13)。
次に、構成管理部55は、ステップS11で作成したALU51とステップS13で作成したSLU52とをバインドするバインド処理を実行し(ステップS14)、全体処理を終了する。
図14は、ALU作成処理及びパス設定処理の詳細な処理手順例を示すフローチャートである。図14に示す処理は、図13のステップS11のALU作成処理とステップS12のパス設定処理に相当するものであり、具体的には例えば、クラスタ環境の構築時、ストレージノード3の増設時、または、ALUやSLUの機能を有効化するとき(当該機能を有効化するライセンスの設定時)等の何れかで呼び出されて実行される。
図14によればまず、構成管理部55は、制御ソフト管理テーブル65を参照し、アクティブな制御ソフト53が存在するストレージノード3の位置を確認する(ステップS101)。以後、アクティブの状態にある制御ソフト53を「アクティブ制御ソフト(Active制御ソフト)」と称し、スタンバイの状態にある制御ソフト53を「スタンバイ制御ソフト(Standby制御ソフト)」と称することがある。
次に、構成管理部55は、アクティブ制御ソフトに対して、ALU51の作成を指示し、作成したALU51について、ALU管理テーブル62を更新する(ステップS102)。構成管理部55は、ステップS101で確認したアクティブな制御ソフト53の全てに対して、ステップS102の処理を実行する。
次に、構成管理部55は、ステップS101で確認したアクティブな制御ソフト53の全てに対してALU51の作成が完了したか否かを確認し(ステップS103)、未完了の制御ソフト53が残っている場合は(ステップS103のNO)、ステップS102に戻り、ALU51の作成を繰り返す。一方、全てのアクティブ制御ソフトにおいてALU51の作成が完了した場合には(ステップS103のYES)、ステップS104に進む。
以上、ステップS101からステップS103でYESと判定されるまでの処理が、ALU作成処理(図13のステップS11)に相当し、ステップS104以降の処理が、パス設定処理(図13のステップS12)に相当する。
ステップS104では、構成管理部55は、制御ソフト管理テーブル65及びシステム管理テーブル64を参照し、アクティブ制御ソフトが存在するストレージノード3のポート情報(リソース種別642の「Port」に紐付けられた情報)と、当該アクティブ制御ソフトと対になるスタンバイ制御ソフトが存在するストレージノード3のポート情報とを取得する。
次に、構成管理部55は、ホスト管理テーブル66を参照して、ホスト2のイニシエータID664を取得し、このターゲットTGからステップS102で作成したALU51に対して、アクティブ制御ソフトが存在するポート(ターゲットTG)を経由するパスと、当該アクティブ制御ソフトと対をなすスタンバイの制御ソフトが存在するポート(ターゲットTG)を経由するパスとを含む、複数個のパスを設定する(ステップS105)。
図4の構成を用いて具体的に説明すると、例えば、ストレージノード#1に存在するアクティブの制御ソフト53とストレージノード#2に存在するスタンバイの制御ソフト53とが同一の冗長化グループ(ストレージコントローラグループ)56を形成している場合、ステップS105では、Initiator#1から上記アクティブ制御ソフトによって作成されたストレージノード#1のALU51に対して、ストレージノード#1のTarget#1を経由してALU51に至るパス(図4に実線で表記されたアクティブ用のパス)と、ストレージノード#2のTarget#2を経由してALU51に至るパス(図4に破線で表記されたアクティブ用のパス)と、が少なくとも設定される。なお、ステップS105において構成管理部55は、上記したアクティブ用のパス及びスタンバイ用のパスの他にも、ホスト管理テーブル66のパス設定上限数663に規定された上限数以下で、イニシエータIDを取得したターゲットTGからステップS102で作成したALU51に対するパスを設定する。
次に、構成管理部55は、ステップS105で設定した各パスについて、その経路を示す情報をパス管理テーブル67に登録する(ステップS106)。このとき、構成管理部55は、アクティブ制御ソフトが存在するストレージノード3のポートを経由するパス(上記したアクティブ用のパス)に対応する優先フラグ676を「Yes」とすることで、当該パスを優先パスとし、スタンバイ制御ソフトが存在するストレージノード3のポートを経由するパス(上記したスタンバイ用のパス)に対応する優先フラグ676を「No」とすることで、当該パスを冗長パスとする。そして、構成管理部55は、これらの登録後のパス管理テーブル67の情報をホスト2に送信し、パス設定処理を終了する。
なお、上述した図14の処理のうち、パス設定処理(ステップS104~S106)は、バインド処理(図15のステップS204~S205)よりも前に実行されていればよく、必ずしもALU作成処理(ステップS101~S103)の完了後に連続して呼ばれる必要はない。例えば、パス設定処理は、ALU作成処理の完了後、管理者またはホスト2の上位プログラムからの要求によってホスト管理テーブル66が更新されるタイミングを契機として呼ばれてもよい。
また、ステップS102で作成するALU51の個数は1個以上であればよい。後述する第3の実施形態では、増設時にALUの個数を指定する処理について説明する。
図15は、SLU作成処理及びバインド処理の詳細な処理手順例を示すフローチャートである。図15に示す処理は、図13のステップS13のSLU作成処理とステップS14のバインド処理に相当するものであり、具体的には例えば、管理者またはホスト2の上位プログラムからSLUの作成が指示されたタイミングで呼び出されて実行される。
図15によればまず、構成管理部55は、管理者またはホスト2の上位プログラムからSLUの作成要求を受信する(ステップS201)。
次に、構成管理部55は、特定のルール(例えば、制御ソフト53(あるいは冗長化グループ)56ごとに定められた容量やSLU52の個数)に従って、SLU52を作成する制御ソフト53を選択する(ステップS202)。ステップS202における特定のルールについて補足すると、具体的には例えば、ボリュームを作成可能な空き容量が最も大きい制御ソフト53を優先的に選択する、あるいは、作成済みのSLU52の個数が最も少ない制御ソフト53を選択する、等のルールが採用される。なお、上記特定のルールは、管理者やホスト2の上位プログラムによって、事前設定されるとしてもよいし、SLU作成処理の開始時等に指定されるとしてもよい。
次に、構成管理部55は、ステップS202で選択した制御ソフト53を指定してSLU52を作成させ、作成されたSLU52に関する情報によってSLU管理テーブル63を更新する(ステップS203)。
以上、ステップS201からステップS203までの処理が、SLU作成処理(図13のステップS13)に相当し、ステップS204以降の処理が、バインド処理(図13のステップS14)に相当する。
バインド処理ではまず、構成管理部55は、ALU管理テーブル62を参照し、ステップS203で作成したSLU52と同一の制御ソフト53によって作成されたALU51(言い換えると、同一の制御ソフト53によって制御されるALU51)を検索する(ステップS204)。なお、検索において複数のALU51が該当する場合には、バインド済みのSLU52の数が最も少ないALU51を、検索結果のALU51に選択する、等としてもよい。他にも、同一の制御ソフト53内の各ALU51の負荷情報を収集し、負荷が少ないALU51を検索結果のALUに選択する等としてもよい。
次に、構成管理部55は、ステップS204で検索したALU51とステップS203で作成したSLU52に対してバインドを実行し、実行したバインドの情報によってSLU管理テーブル63を更新し(ステップS205)、バインド処理を終了する。
なお、上述した図15の処理のうち、バインド処理(ステップS204~S205)は、必ずしもSLU作成処理(ステップS201~S203)の完了後に連続して呼ばれる必要はなく、例えば、管理者またはホスト2の上位プログラムによってバインドが指示されたとき(仮想マシン41の起動時など)を契機として呼ばれてもよい。
以上、図13~図15に示した処理が実行されることにより、本実施形態に係る情報処理システム1は、ストレージコントローラのデプロイ時(初回構築時、ノード増設時)に、ストレージノード3を跨いでアクティブ-スタンバイの制御ソフト53の組み合わせで構成されるストレージコントローラを単位として、少なくとも1つALU51を作成する。このように構成された情報処理システム1によれば、データ制御の冗長化を実現するとともに、システム運用中のIO性能及び信頼性の低下を抑制することができる。
また、本実施形態に係る情報処理システム1では、図13~図15に示した処理が実行されることにより、アクティブな制御ソフト53が存在するストレージノード3(ストレージノード#1)において、ターゲットTGとALU51間のパス及びALU51とSLU52間のバインドの両方を、他のストレージノード3に跨らないストレートな関係で設定することができる。さらに、アクティブな制御ソフト53と対をなすスタンバイ状態の制御ソフト53が存在するストレージノード3(ストレージノード#2)においても、当該ノードのポート(ターゲットTG)を経由して上記のALU51へのパスを設定する。このスタンバイ用のパスが設定されることにより、ストレージノード#1で障害が発生して、ストレージノード#2のスタンバイ状態の制御ソフトがアクティブに昇格し、フェイルオーバーによってストレージノード#1のALU51及びSLU52がストレージノード#2に移動された場合には、ストレージノード#2において、パス及びバインドの両方がストレートな関係となる。
すなわち、本実施形態に係る情報処理システム1によれば、ストレージコントローラがアクティブ-スタンバイの制御ソフト53の組み合わせで構成されることによってデータ制御の冗長化が実現でき、通常構成時にはストレージノード#1におけるストレートなパス及びバインドの構成によって高いIO性能及び信頼性を得られるだけでなく、障害発生によるフェイルオーバー等の構成変更時にも、変更後のストレージノード#2内においてストレートなパス及びバインドが構成されることから、高いIO性能及び信頼性を維持することができる。
(2)第2の実施形態
第2の実施形態に係る情報処理システム1について、第1の実施形態との差分を中心に説明する。第1の実施形態と共通する構成及び処理については、説明の繰り返しを省略する。
第2の実施形態に係る情報処理システム1は、第1の実施形態で図13に示した全体処理を構成する4つの主要処理(ALU作成処理、パス設定処理、SLU作成処理、バインド処理)のうち、SLU作成処理を異なる処理手順で実行する。詳細は後述するが、第2の実施形態におけるSLU作成処理では、SLUを新たに作成する際、当該SLUの利用目的が既に作成済みのSLUと利用目的が同じ場合に、作成済みのSLUと同一のストレージコントローラグループ内に新たなSLUを作成しようとすることを特徴とする。また、第2の実施形態では、上記した新たなSLUの作成時に、空き容量の問題で、作成済みのSLUと同一のストレージコントローラグループにSLUを作成できない場合には、作成済みのSLUのうちから、別のストレージノード3に移動可能なSLUを移動して空き容量を増やした後に、新たなSLUを作成する。
このような第2の実施形態を実現するために、本実施形態の情報処理システム1は、ストレージノード3のメモリ32に第1の実施形態とは異なるデータ構成を有するSLU管理テーブル71を格納し、第1の実施形態とは異なる処理手順でSLU作成処理を実行する。
図16は、第2の実施形態におけるSLU管理テーブル71の一例を示す図である。図16のSLU管理テーブル71において、第1の実施形態で図10に示したSLU管理テーブル63との相違点は、APP ID716が追加されている点であり、その他のデータ項目(SLU ID711、名前712、容量713、SCG ID714、及びALU ID715)が示す情報は、SLU管理テーブル63において同名のデータ項目が示す情報と同様であることから詳細な説明を省略する。
APP ID716は、管理対象のSLU52がどのアプリケーション(例えばホスト2のVM41)で利用されるかを示す識別子であって、アプリケーションごとに付与された識別子(アプリケーションID)を示す。言い換えれば、APP ID716は、管理対象のSLU52にアクセスして動作するアプリケーションを指定する情報である。APP ID716に登録する情報は、SLU52の作成時に、管理者またはホスト2の上位プログラムから与えられる。なお、図16のSLU管理テーブル71では、アプリケーションIDによってSLU52の利用目的を識別しているが、本実施形態のSLU管理テーブル71は、SLU52の利用目的を示す情報を保持していればよく、アプリケーションIDに限定されず、他の形式(例えば、データベースのログ用途)で利用目的を示す情報を保持するようにしてもよい。
図17は、第2の実施形態におけるSLU作成処理の処理手順例を示すフローチャートである。第1の実施形態におけるSLU作成処理と同様、図17に示すSLU作成処理は、構成管理部55によって実行される。
図17によればまず、構成管理部55は、管理者またはホスト2の上位プログラムからSLU52の作成要求を受信する(ステップS301)。このSLU作成要求では、作成するSLU52を利用するアプリケーションのアプリケーションIDと、当該SLUの容量とが指定される。以下、ステップS301で作成が要求されたSLU52を新規SLUと称する。
次に、構成管理部55は、SLU管理テーブル71を参照し、新規SLUと同一の利用目的を有するSLU52が作成済みであるか否かを判定する(ステップS302)。以下、作成済みのSLU52を既存SLUと称する。具体的には、構成管理部55は、SLU管理テーブル71のAPP ID716において、新規SLUを利用するアプリケーションに対応するアプリケーションIDが登録された既存SLUが存在するか否かを判定する。例えば、図16のSLU管理テーブル71において、新規SLUがアプリケーションID「1」のアプリケーションで利用されるとした場合、既存SLUであるSLU#1~SLU#3のうちSLU#1及びSLU#2が、APP ID716にアプリケーションID「1」が登録されていることから、新規SLUと同一の利用目的を有する既存SLUに該当する。
ステップS302において、新規SLUと同一の利用目的(アプリケーションID)を有する既存SLUが存在する場合には(ステップS302のYES)、ステップS303に進み、同一の利用目的(アプリケーションID)を有する既存SLUが存在しない場合には(ステップS302のNO)、ステップS307に進む。
ステップS303では、構成管理部55は、新規SLUと同一の利用目的(アプリケーションID)を有する既存SLUを制御する制御ソフト53におけるボリューム作成の空き容量が、新規SLUに必要な容量よりも大きいか否かを判定し、肯定結果が得られた場合は(ステップS303のYES)、ステップS306に進み、否定結果が得られた場合は(ステップS303のNO)、ステップS304に進む。
ステップS303で否定結果が得られた場合、構成管理部55は、上記した同一の利用目的を有する既存SLUが存在するストレージノード3において、他のストレージノード3(他の制御ソフト53の制御下)に移動可能なSLU群(1以上のSLUを意味する)が存在するか否かを判定する(ステップS304)。
ステップS304の処理は、より具体的には、以下のように実行すればよい。まず、構成管理部55は、SLU管理テーブル71を参照し、ALU ID715が空(N/A)になっており(言い換えれば未バインドであり)、かつ、APP ID716が共通するアプリケーションIDである(新規SLUと同じアプリケーションIDである必要はない)、という条件を満たす既存SLUを検索することにより、移動可能なSLU群を特定する。次いで、構成管理部55は、制御ソフト管理テーブル65を参照して、先の検索で特定した移動可能なSLU群の合計容量と、他の各制御ソフト53の空き容量とを比較する。そして、移動可能なSLU群の合計容量よりも大きい空き容量を有する「他の制御ソフト53」が存在する場合に、構成管理部55は、ステップS304において、当該「他の制御ソフト53」の制御下に移動可能なSLU群が存在する、と判定する。
そして、ステップS304において他の制御ソフト53の制御下に移動可能なSLU群が存在する場合(ステップS304のYES)、構成管理部55は、当該SLU群を他の制御ソフト53の制御下に移動する(ステップS305)。ステップS305の処理によって、移動前にSLU群が存在していた制御ソフト53には新規SLUのために必要な空き容量が確保されるため、ステップS306に進む。一方、ステップS304において他の制御ソフト53の制御下に移動可能なSLU群が存在しない場合には(ステップS304のNO)、ステップS307に進む。
ステップS306の処理は、新規SLUと利用目的が同一の既存SLUが存在し、かつ、この既存SLUを制御する制御ソフト53が新規SLUの作成に必要な空き容量を有している場合に実行される。このとき、構成管理部55は、上記の制御ソフト53、すなわち利用目的が同一の既存SLUを制御する制御ソフト53(例えば、ステップS305を経てステップS306の処理を行う場合には、SLU群の移動元の制御ソフト53)を、新規SLUの作成先に選択する(ステップS306)。
一方、ステップS307の処理は、新規SLUと利用目的が同一の既存SLUが存在しない場合、または、新規SLUと利用目的が同一の既存SLUが存在するが、この既存SLUを制御する制御ソフト53が新規SLUの作成に必要な空き容量を確保できない場合に実行される。このとき、構成管理部55は、特定のルール(例えば、制御ソフト53ごとに定められた容量やSLU52の個数)に従って、新規SLUの作成先とする他の制御ソフト53を選択する(ステップS307)。ステップS307において作成先の制御ソフト53を選択する処理は、図15のステップS202の処理と同様である。
そして、構成管理部55は、ステップS306またはステップS307で選択された制御ソフト53を指定して新規SLUを作成させ、作成されたSLU52に関する情報によってSLU管理テーブル63を更新する(ステップS308)。以上をもってSLU作成処理を終了する。
なお、ステップS307では、利用目的が同一の既存SLUを制御する制御ソフト53によって新規SLUを作成することができない場合に、特定のルールに従って新規SLUの作成先を他の制御ソフト53から選択するとしたが、変形例として、警告を返して上記処理を実行するようにしてもよいし、あるいは、エラーを返してSLU作成処理を中止する等としてもよい。
また、ステップS304及びステップS305の処理は、必ずしも図17のSLU作成処理における一連の処理のなかで実行されなくてもよい。これは、ステップS304,S305の処理が比較的長い処理時間を必要とするためであり、構成管理部55は、これらの処理をSLU作成処理とは同期させずに、定期的に実行する等としてもよい。
以上、図17を参照しながら説明したように、第2の実施形態におけるSLU作成処理は、SLU作成時の作成先の制御ソフト53の選択において、作成する新規SLUと同一の利用目的(アプリケーションID)を有する既存SLUを制御する制御ソフト53を優先して選択し、当該制御ソフト53において空き容量が不足している場合には同一の利用目的を有する既存SLUを別の制御ソフト53の下に移動した上で当該制御ソフト53に新規SLUを作成させる点で、第1の実施形態で図15に示したSLU作成処理とは異なる。
このような第2の実施形態によれば、利用目的(アプリケーションID)が同一の複数のSLU52、言い換えれば同一のアプリケーションを構成する複数のSLU52を、できるだけ、単一の冗長化グループ56(より限定すると単一のストレージノード3)における同一の制御ソフト53の制御下に配置することができる。
ここで、既知の仮想ボリューム提供機能では、1つのVM41を構成するSLUが複数存在する(それぞれ異なるタイプの仮想ボリュームが存在する)ことがある。そしてこれらの複数のSLUが複数のストレージノード3に分散すると、IOのアクセス性能や可用性においてデメリットが存在するため、できるだけ同一ノードに集約されることが好ましい。例えば、可用性のデメリットとしては、1つのVM41を構成するSLUが複数のストレージノード3に分散すると、ノード分散した分だけ、1つのVM41を構成するSLUにノード障害が発生する確率が高まることが挙げられる。
そこで、第2の実施形態では、上述したSLU作成処理を実行することにより、同一の利用目的(アプリケーションID)を有する複数のSLU52、すなわち、同一のVM41によって利用される複数のSLU52が、1つのストレージノード3内の同一の制御ソフト53によって制御されるように構成するため、第1の実施形態によって得られる効果に加えて、上記のIOのアクセス性能や可用性の低下を抑制する効果を得ることができる。
(3)第3の実施形態
第3の実施形態に係る情報処理システム1について、第1の実施形態との差分を中心に説明する。第1の実施形態と共通する構成及び処理については、説明の繰り返しを省略する。
第3の実施形態に係る情報処理システム1は、ストレージノード3の減設を考慮したものであり、第1の実施形態で図13に示した全体処理を構成する4つの主要処理(ALU作成処理、パス設定処理、SLU作成処理、バインド処理)のうち、SLU作成処理及びバインド処理を異なる処理手順で実行する。
一般的に、ストレージシステムにおいてクラスタからストレージノード(以下、ノードと略称する)を減設する際は、減設対象ノードに存在するリソースを別のノードに移動してからノードを減設する。同様に、第1の実施形態に係る情報処理システム1においてノードを減設する場合には、アクティブ制御ソフトに割り当っているALU及びSLUを別の制御ソフトに移動してから、当該アクティブ制御ソフトが存在していたノードをクラスタから減設することになる。ここで、第1の実施形態ではアクティブ制御ソフトが存在するノードにおいてパス及びバインドがストレートに設定されており、この状態でIOを停止することなく、ALU及びSLUを移行しようとすると、ALUとSLUの間のバインド設定を変更せずに、別の制御ソフトに移動することになる。しかし、ノードに作成されたALUの数が少ない(例えば1つ)場合には、ALUとSLUの間のバインド関係を維持したまま別の制御ソフトに移動する際に、ALU及びSLUの塊が非常に大きいことから特定の制御ソフトの容量を過度に消費することになってしまい、別の制御ソフトに分散する効率が悪くなる、という課題が想定される。そこで上記の課題を解消するために、第3の実施形態では、ストレージノード3の減設に際して本実施形態に係るSLU作成処理及びバインド処理を実行することにより、ストレージノード3におけるALU51の数をシステムの運用中に変更(主として増加)可能とする、ことを特徴とする。
第3の実施形態においてALU51の数をシステムの運用中に変更する方法は、SLU作成時に変更する方法(第1の変更方法)、バインド設定時に変更する方法(第2の変更方法)、及び、ノード増設時に変更する方法(第3の変更方法)がある。以下では、第1~第3の変更方法をそれぞれ説明する。なお、下記説明では、ALU51を増やすことについて記載するが、ALU51を減らす場合も同様に考えてよい。
(3-1)第1の変更方法
図18は、第3の実施形態の第1の変更方法におけるSLU作成処理の処理手順例を示すフローチャートである。第1の実施形態におけるSLU作成処理と同様、図18に示すSLU作成処理は、構成管理部55によって実行される。
図18によればまず、構成管理部55は、管理者またはホスト2の上位プログラムからSLU52の作成要求を受信する(ステップS401)。以下、この作成が要求されたSLU52を新規SLUと称する。
次に、構成管理部55は、制御ソフト管理テーブル65及びSLU管理テーブル63を参照し、SLU52の数が所定数以下の制御ソフト53(詳細に言えば、所定数以下のSLU52を制御しているアクティブな制御ソフト53)が存在するか否かを確認する(ステップS402)。
ステップS402の処理を詳しく説明すると、構成管理部55は、SLU管理テーブル63のSLU ID631及びSCG ID634に基づいて、各SLUが所属するストレージコントローラグループを判断し、さらに、制御ソフト管理テーブル65のストレージコントローラID651、状態652、及びSCG ID653に基づいて、各ストレージコントローラグループにおいてアクティブ状態にある制御ソフト53を判断する。この結果、構成管理部55は、各SLU52がどの制御ソフト53に属するかを認識できることから、制御ソフト53ごとに制御しているSLU52の数を認識することができ、「所定数」以下であるか否かを判定することができる。なお、「所定数」は、情報処理システム1において事前に決定された値であるとしてもよいし、SLU作成時等に、管理者またはホスト2の上位プログラム等から指定されて運用中に動的に変更可能な値であるとしてもよい。
また、図18に示したステップS402では、単純にSLU52の数だけを判断基準としているが、変形例として、ALU51とバインド済みのSLU52の数を判断基準にするとしてもよい。
ステップS402においてSLU52の数が所定数以下の制御ソフト53が存在する場合には(ステップS402のYES)、ステップS403に進み、第1の実施形態におけるSLU作成処理と同様(具体的には、図15のステップS202~S203)の処理が行われる。一方、ステップS402においてSLU52の数が所定数以下の制御ソフト53が存在しない場合には(ステップS402のNO)、ステップS404に進む。
ステップS403では、構成管理部55は、特定のルール(例えば、制御ソフト53ごとに定められた容量やSLU52の個数)に従って、SLU52を作成する制御ソフト53を選択する。ステップS403において作成先の制御ソフト53を選択する処理は、図15のステップS202の処理と同様である。ステップS403の終了後は、ステップS406に進む。
ステップS404では、構成管理部55は、新規SLUの容量よりも空き容量が大きい制御ソフト53のうちから、制御するALU51の数が最も少ない制御ソフト53を探索し、該当する制御ソフト53を新規SLUの作成先として選択する。
次いで、構成管理部55は、ステップS404で選択した制御ソフト53に指示して、ALU51の作成、及び作成したALU51とホスト2との間のパス設定を実施させる(ステップS405)。なお、ステップS405におけるパス設定の処理は、図14のステップS104~S106と同様の処理によって実行される。ステップS405の終了後は、ステップS406に進む。
最後に、構成管理部55は、ステップS403またはステップS404で選択された制御ソフト53を指定して新規SLUを作成させ、作成されたSLU52に関する情報によってSLU管理テーブル63を更新し(ステップS406)、SLU作成処理を終了する。
以上のように、第1の変更方法によれば、構成管理部55は、SLUの作成処理において、各制御ソフト53(言い換えると各ストレージコントローラグループ)のSLU及び/またはALUの数に基づいて、SLUの数が少ない制御ソフト53にSLUを作成させるか、あるいは、SLUの数が少ない制御ソフト53が存在しない場合には、ALUの数が少ない制御ソフト53に、新規作成するSLUとストレートにバインドするALUを追加した上で、新規SLUを作成させることができる。すなわち、第1の変更方法においてストレージノード3は、システムの運用中に、SLU作成によるSLUの数の増加に基づいて、ALUを追加作成することを特徴とする。
(3-2)第2の変更方法
図19は、第3の実施形態の第2の変更方法におけるバインド処理の処理手順例を示すフローチャートである。第1の実施形態におけるバインド処理と同様、図19に示すバインド処理は、構成管理部55によって実行される。
図19によればまず、構成管理部55は、管理者またはホスト2の上位プログラムからバインドの実行要求を受信する(ステップS501)。バインドの実行要求ではバインド対象のSLU52が指定される。
次に、構成管理部55は、ALU管理テーブル62を参照し、ステップS501で指定されたSLU52と同一の制御ソフト53に制御されるALU51を検索する(ステップS502)。
次に、構成管理部55は、SLU管理テーブル63を参照して、バインド済みのSLU52の数が所定数以下であるALU51が存在するか否かを判定する(ステップS503)。なお、「所定数」は、情報処理システム1において事前に決定された値であるとしてもよいし、バインド処理またはSLU作成処理の実行時などに、管理者またはホスト2の上位プログラム等から指定されて運用中に動的に変更可能な値であるとしてもよい。
ステップS503で肯定結果が得られた場合は(ステップS503のYES)、構成管理部55は、第1の実施形態におけるバインド処理(具体的には図15のステップS205)と同様に、ステップS502で検索したALU51とステップS501で指定されたSLU52に対してバインドを実行し、実行したバインドの情報によってSLU管理テーブル63を更新し(ステップS504)、バインド処理を終了する。一方、ステップS503において否定結果が得られた場合は(ステップS503のNO)、ステップS505に進む。
ステップS505では、構成管理部55は、ステップS501で指定されたSLU52と同一の制御ソフト53に指示して、ALU51の作成、及び作成したALU51とホスト2との間のパス設定を実施させる(ステップS505)。なお、ステップS505におけるパス設定の処理は、図14のステップS104~S106と同様の処理によって実行される。
次いで、構成管理部55は、ステップS505で作成したALU51とステップS501で指定されたSLU52に対してバインドを実行し、実行したバインドの情報によってSLU管理テーブル63を更新し(ステップS506)、バインド処理を終了する。
以上のように、第2の変更方法においてストレージノード3は、システムの運用中に、現在のALUとSLUのバインド数(ALUとSLUとの間の接続関係の設定数)に基づいて、ALUを追加作成することを特徴とする。
(3-3)第3の変更方法
第3の変更方法は、ストレージノード3(以下、ノード)の増設時にALU51の数を変更する方法であり、以下にその具体的な手順例を説明する。
ノードを増設するとき、構成管理部55は、図14のALU作成処理のステップS102を実行することによってALU51を追加作成する。このとき、第3の変更方法として構成管理部55はまず、制御ソフト管理テーブル65及びALU管理テーブル62を参照して、増設対象のノードで動作する制御ソフト53だけでなく、クラスタ内の全てのノードで動作する制御ソフト53についてALU51の数を調べる。
次に、構成管理部55は、クラスタを構成するノード数をN個としたとき、クラスタ内のALU51の総数が(N-1)個よりも少ない場合に、クラスタ内の各ノードにおいてALU51の総数が(N-1)個となるように制御ソフト53にALUを作成させ、作成したALUと同一ノード内の少なくとも何れかのSLU52との間にバインド処理を行い、さらに、作成したALU51とホスト2との間のパス設定を実施させる。なお、ノード数としたN個は、クラスタ内でアクティブ状態にある制御ソフト53の数と言い換えることもできる。クラスタ内の各ノードにおいて(N-1)個となるようにALU51を作成する理由は、ノード減設をする場合は減設対象ノード以外に(N-1)個のノードが存在することから、このノード数(N-1)に合わせて、ALU51及びSLU52の組の移動先を(N-1)個用意するためである。
すなわち、第3の変更方法においてストレージノード3は、ノードの増設時に、増設後のノード数Nに対して、各ノードにおけるALU51の総数が(N-1)個となるようにALU51を追加作成することを特徴とする。
そして上記のようにクラスタ内の各ノードに(N-1)個のALU51が作成される結果、クラスタ内のN個のノードの何れか1つを減設する場合には、減設するノード内の(N-1)個のALU51にそれぞれバインドされた1以上のSLU52(SLU群)を単位として、減設対象ではない(N-1)個のノード全体に分散することが可能となる。
ここで、ノード減設時にSLU52を他ノードに分散させる具体的な方法は、特定のものに限定されないが、例えば、減設するノード内の各ALU51について、ALU51にバインドされた1以上のSLU52(SLU群)の容量を見て、SLU群の容量合計値が大きいものを、減設対象ではない(N-1)個の他ノードのうち空き容量が大きいノード(アクティブ状態にある制御ソフト53と言い換えてもよい)に移動させる方法が考えられる。この場合、より具体的には、容量合計値が最も大きいSLU群を空き容量が最も大きい他ノードに移動させ、次に容量合計値が大きいSLU群を次に空き容量が大きい残りの他ノードに移動させる、といったように、減設するノード内の各ALU51と組になるSLU群を、容量合計値の大きい順に空き容量の大きい他ノードに移動させる。そして、移動先のノードにおいて、アクティブ状態の制御ソフト53が移動させたSLU群を当該ノードのALU51にバインドする。このような分散方法によれば、減設後のクラスタ内のノード全体における空き容量の偏りを抑制することができ、容量の飽和を避けることができる。
また、他の分散方法の一例として、減設するノード内のALU51にそれぞれバインドされた1以上のSLU52(SLU群)について、SLU群の移動による移動先ノードにおける性能(例えばリソース負荷)の偏りを低減するように、各SLU群を分散させるようにしてもよい。具体的には例えば、減設するノードを含む各ノードにおけるCPU31及びSLU52の負荷を確認し、減設するノードにおいて負荷が高いSLU群から順に、クラスタ内の残りのノードのうちCPU31の負荷が低いノードに移動させる等すればよい。このような分散方法によれば、減設後のクラスタ内のノード全体における負荷の偏りを抑制することができ、ノード全体における性能の向上に期待できる。
以上に説明したように、第3の実施形態では、第1~第3の変更方法の少なくとも何れか、またはこれらの組み合わせを採用することにより、第1の実施形態ではストレージコントローラ(アクティブ-スタンバイの制御ソフト53の組み合わせ)ごとに少なくとも1個のALU51を作成する、としていたところを、システムの運用中に各ストレージノード3におけるALU51の数を変更し、追加作成したALU51に対してホスト2とのパスを設定することができる。
上記のようにALU51が追加作成される情報処理システム1では、ALU51とSLU52の組み合わせを複数に変更することができるため、ノード減設時などにIOを停止することなく減設ノードのALU51及びSLU52を移動させるときでも、移動先ノードでパス及びバインドのストレートな接続を可能にしながら、ALU51及びSLU52の組を効率良く1以上の別の制御ソフト53に分散移動させることができる。
(4)第4の実施形態
第4の実施形態に係る情報処理システム1について、第1の実施形態との差分を中心に説明する。第1の実施形態と共通する構成及び処理については、説明の繰り返しを省略する。
第4の実施形態に係る情報処理システム1は、第1~第3の実施形態に係る情報処理システム1におけるリソース移行時の性能低下を考慮したものであり、ストレージノード3(以下、ノード)の減設時、またはノード間のリソース移行時に、後述するノード負荷調整処理を実行することにより、負荷の高いSLU52を同じALU51にバインド関係をまとめて、別のノードに移行することを特徴とする。
第4の実施形態に係る情報処理システム1は、例えば、第1の実施形態で説明した各情報テーブルに加えて、システム稼働情報管理テーブル72をノードのメモリ32内に保持する。
図20は、システム稼働情報管理テーブル72の一例を示す図である。システム稼働情報管理テーブル72は、情報処理システム1の各ストレージノード3が有する各種リソースについて、その負荷情報を管理するデータである。図20に示すシステム稼働情報管理テーブル72は、ノードID721、リソース種別722、リソースID723、メトリック724、時刻725、及び量726を有して構成される。
ノードID721は、対象リソースを有するストレージノード3の識別子を示す。リソース種別722は、対象リソースの種別を示す。リソース種別722に記録されるリソースは、CPU31、通信装置34,35のポート、記憶装置33のドライブといったストレージノード3のハードウェアリソースに限定されず、ALU51やSLU52といったソフトウェアリソースも対象とされてよい。リソースID723は対象リソースを識別する識別子を示す。メトリック724は、負荷情報のメトリックを示す。時刻725は、負荷情報の計測時刻を示す。量726は、計測された負荷量を示す。なお、ALU51やSLU52における負荷量は、例えば、リードやライトのIOPSのように、アクセス頻度を示す値が用いられる。
なお、システム稼働情報管理テーブル72で管理される情報は、後述するノード負荷調整処理で必要となる情報、または当該情報を算出可能な情報を含むものであればよく、図20に示した具体例に限定されるものではない。
また、図20のシステム稼働情報管理テーブル72では、ALU51やSLU52に関する情報を、制御ソフト管理テーブル65、ALU管理テーブル62、及びSLU管理テーブル63の各SCG IDの情報を参照し、それぞれ同じノードに紐付けてまとめることによって、1つのテーブルに表現しているが、システム稼働情報管理テーブル72とは別のテーブルで、ALU51やSLU52に関する稼働情報(負荷情報)を管理するようにしてもよい。
図21は、ノード負荷調整処理の処理手順例を示すフローチャートである。ノード負荷調整処理は、ノードの減設時、またはノード間のリソース移行時など、システム運用中の所定のタイミングで、構成管理部55によって実行される。ノード負荷調整処理の実行タイミングは、少なくとも、図13のステップS14や図19に示したバインド処理よりも後である、とする。
図21によればまず、構成管理部55は、システム稼働情報管理テーブル72を参照し、各ノードにおけるCPU31及びSLU52の負荷を確認する(ステップS601)。
次に、構成管理部55は、負荷が基準値を超えたSLU52と負荷が基準値以下のSLU52とが同一のALU51にバインドされているか否かを確認する(ステップS602)。なお、SLU52に対する「基準値」は、事前に決定された値であってもよいし、運用中に負荷の高低を分類するための閾値が決定されるとしてもよい。また、上記「基準値」は、管理者やホスト2の上位プログラムが指定する値を利用してもよいし、移行先のノードの負荷情報に基づいて、ノード内の所定のプログラム(例えば構成管理部55)が、移行先のノードで受け入れ可能な負荷量を計算して決定するとしてもよい。また、高負荷を判断する基準値と低負荷を判断する基準値は、重複区間を持たない別の値であってもよい。
ステップS602で肯定結果が得られた場合は(ステップS602のYES)、ステップS603に進み、否定結果が得られた場合は(ステップS602のNO)、後述するステップS605に進む。
ステップS603では、構成管理部55は、システム稼働情報管理テーブル72及びSLU管理テーブル63を参照し、負荷が基準値を下回るSLU52だけがバインドされているALU51を検索する。
次に、構成管理部55は、ステップS602で判定条件に該当した基準値を下回るSLU52(基準値以下のSLU52)を、ステップS603の検索で該当したALU51にリバインド(rebind)する(ステップS604)。リバインドとは、新たな接続先へのバインド(bind)と現在のバインドの解除(unbind)とを連続して実行する処理であって、主に、SLU52にバインドするALU51を変更する際に利用される。ステップS604の処理によって、リバインド先のALU51には、負荷が基準値を下回るSLU52だけがバインドされる。そしてリバインドされなかったALU51には、負荷が基準値を上回るSLU52だけがバインドされる。ステップS604の終了後はステップS605に進む。
ステップS605では、構成管理部55は、負荷が基準値を下回るSLU52だけがバインドされているALU51と、当該ALU51にバインドされたSLU52との塊を、負荷が高いノードに移行する。
次に、構成管理部55は、負荷が基準値を上回るSLU52だけがバインドされているALU51と、当該ALU51にバインドされたSLU52との塊を、負荷が低いノードに移行し(ステップS606)、ノード負荷調整処理を終了する。
なお、ステップS605におけるノードの移行先は、ノード全体において比較的負荷が高いノード群から選択されるとしてもよく、さらに、負荷が基準値を下回るSLU52だけがバインドされているALU51を、比較的負荷が高いノード群に所定の方法に従って分散して移動するようにしてもよい。同様に、ステップS606におけるノードの移行先は、ノード全体において比較的負荷が低いノード群から選択されるとしてもよく、さらに、負荷が基準値を上回るSLU52だけがバインドされているALU51を、比較的負荷が低いノード群に所定の方法に従って分散して移動するようにしてもよい。
以上のように、第4の実施形態に係る情報処理システム1では、ノードの減設時やノード間のリソース移行時などにおいて、ノード負荷調整処理を実行することにより、負荷の高低に基づいて複数のSLU52を別々のALU51にまとめてバインドし、バインドされたALU51及びSLU52の塊を異なるノードに移動することで、ノード全体における負荷の偏りを抑制することができる。この結果、情報処理システム1では、リソース移行時にノード間での性能のバラつきが均質化され、ノード全体における性能の向上に期待できる。
なお、上記説明では、ノード負荷調整処理において負荷の高いSLU52をまとめて別のノードに移行することを説明したが、本実施形態における変形例としては、移動先ノードの負荷(例えばCPU利用率等)を確認し、移動後のノード負荷に耐え得る性能値を有するSLU52(負荷の高低ではなく、負荷の合計値だけを考慮してよい)だけを同一のALU51にまとめて、これらの塊を移動先ノードに移動するようにしてもよい。このような変形例の場合は、SLU52はノード移行後も所定の性能値を確実に発揮することができる。
(5)第5の実施形態
上述した第1~第4の実施形態の情報処理システム1は、IOリクエストを出力する上位プログラム(例えばVM41)を有するホスト2と、IOリクエストの対象となるストレージノード3とが分離した構成であった。しかし、本発明は、ALUとSLUとの構成管理を重要な特徴の1つとしており、その適用可能な範囲は、上記した分離構成による情報処理システムに限定されるものではない。
そこで、第5の実施形態では、第1~第4の実施形態の情報処理システム1とは異なる装置構成を有する情報処理システムに本発明を適用した一例として、ホスト(あるいはVM)とストレージが同一ノードに配置されるHCI(HyperConverged Infrastructure)の構成を有する情報処理システム8について説明する。なお、第5の実施形態は、第1~第4の実施形態との差分を中心に説明するものとし、第1~第4の実施形態と共通する構成要素及び処理については、共通する符号を付して、説明の繰り返しを省略する。
図22は、第5の実施形態に係る情報処理システム8の構成例を示すブロック図である。情報処理システム8は、HCIの構成を有する情報処理システムであって、ノード外部のネットワークを介して接続された複数のハイパーバイザノード80から構成される。
HCIは、物理的な1つの計算機ノード(図22の場合、ハイパーバイザノード80)に、上位ノードとストレージノードの機能を集約した統合型のシステムである。HCIでは、各計算機ノードにインストールされたOSもしくはハイパーバイザの上に、ストレージソフトウェアの他にも、アプリケーション、ミドルウェア、管理ソフト、コンテナ等を動作させることにより、1つの計算機ノードで複数の処理の実施を可能にする。
図22に示した情報処理システム8の場合、各ハイパーバイザノード80は、ベースとなるハイパーバイザの上に、第1~第4の実施形態におけるホスト2に相当しユーザアプリケーション(ユーザAPP84)が動作するユーザAPP用VM82と、第1,第3,第4の実施形態におけるストレージノード3の各種プログラム(制御ソフト53、クラスタ制御部54、及び構成管理部55)が動作するストレージOS用VM83と、が同居して構成される。そして情報処理システム8は、このようなハイパーバイザが複数個並んでクラスタを構成する。また、各ハイパーバイザノード80は、当該ハイパーバイザ上で動作するVM82,83のIOや構成を管理するハイパーバイザ管理部81を備える。ハイパーバイザ管理部81は、一般的なハイパーバイザの管理機能を有するプログラムであるため、詳細な動作の説明は省略する。
ハイパーバイザノード80は、ハイパーバイザノード80が持つ物理的なポートに対応付けられるイニシエータIT(例えばInitiator#1)及びターゲットTG(例えばTarget#1)と、VM82,83が持つ仮想的なポートに対応付けられる仮想的なイニシエータIT(例えばInitiator#11)及びターゲットTG(例えばTarget#11)とを有する。そして、ユーザAPP用VM82とストレージOS用VM83上のALU51とを接続するパスの設定では、上記の仮想的なイニシエータITのポート及び仮想的なターゲットTGのポートを用いてパスの設定を行う。
そして、ストレージOS用VM83内のメモリで管理される各種テーブル(図6に示した各種テーブルと同様)は、上記のような仮想的な情報を管理する。なお、SLU管理テーブルは、第1~第4の実施形態とは異なる構成が必要となり、これについては図23を参照しながら後述する。また、ストレージOS用VM83内のメモリで保持される各種プログラム(制御ソフト53、クラスタ制御部54、及び構成管理部55)は、基本的には第1,第3,第4の実施形態と同様の動作制御を実行する。第5の実施形態における第2の実施形態との差分については、図24を参照しながら後述する。
図23は、第5の実施形態におけるSLU管理テーブル91の一例を示す図である。図23のSLU管理テーブル91において、第2の実施形態で図16に示したSLU管理テーブル71との相違点は、APPノードID917が追加されている点であり、その他のデータ項目(SLU ID911、名前912、容量913、SCG ID914、ALU ID915、及びAPP ID916)が示す情報は、SLU管理テーブル71において同名のデータ項目が示す情報と同様である。例えば、APP ID916は、管理対象のSLU52にアクセスして動作するユーザAPP84を指定する情報である。
APPノードID917は、管理対象のSLU52を利用するユーザアプリケーション(ユーザAPP84)が存在するノード(ハイパーバイザノード80)を示す識別子であって、ハイパーバイザノード80ごとに割当てられたノードIDによって示される。APPノードID917は、図24に示すSLU作成処理においてユーザAPP用VM82と同じノード(ハイパーバイザノード80)に存在する制御ソフト53上にSLU52を作成するために利用される情報であって、管理者またはユーザAPP84によるSLU作成の要求時に指定される。
前述した第2の実施形態では、同一のアプリケーションに利用されるSLU52を同一の制御ソフト53上に作成するとしたが、HCIの構成を有する第5の実施形態に係る情報処理システム8では、同一のアプリケーション(ユーザAPP84)に利用されるSLU52を、当該アプリケーションと同一ノード内の同一の制御ソフト53上に作成することによって、第2の実施形態と同様、あるいはそれ以上の効果に期待できる。すなわち、SLU52が存在するストレージOS用VM83と当該SLU52を利用するユーザAPP用VM82とがノードを跨がる場合には、外部ネットワークを経由してIO処理が実施されるためにIO性能が低下するおそれがあるが、SLU52が存在するストレージOS用VM83と当該SLU52を利用するユーザAPP用VM82とが同じノードにある場合は、ハイパーバイザ内ネットワークを介してIO処理が可能であるため、高いIO性能を得ることができる。そのため、第5の実施形態では、図24に示すSLU作成処理によって、ユーザAPP用VM82と同じノードに存在する制御ソフト53に、そのユーザAPP用VM82を構成するすべてのSLU52を作成する。
図24は、第5の実施形態におけるSLU作成処理の処理手順例を示すフローチャートである。第2の実施形態におけるSLU作成処理(図17参照)と同様、図24に示すSLU作成処理は、構成管理部55によって実行される。
図24に示す第5の実施形態におけるSLU作成処理は、主にステップS701,S703,S704において、図17に示した第2の実施形態におけるSLU作成処理とは異なる処理が行われる。以下、これらの相違する処理について説明する。
ステップS701において構成管理部55は、管理者またはユーザAPP用VM82の上位プログラムからSLU52の作成要求を受信する。このとき、SLU作成要求では、新規SLUの容量、及び新規SLUを利用するアプリケーションのID(APP ID)に加えて、当該アプリケーションが存在するノードのID(APPノードID)が指定される。
ステップS703は、ステップS702において新規SLUと同一の利用目的を有するSLU52(既存SLU)が作成済みであると判定された場合に行われる処理であって、構成管理部55は、ステップS701で指定されたAPP IDが同一の既存SLUが存在する制御ソフト53を、新規SLUの作成先として仮選択する。ステップS703では、APP IDを基準として仮選択する制御ソフト53を決定しているが、APPノードIDを基準として仮選択しても同じ結果となる。
ステップS704は、ステップS702において新規SLUと同一の利用目的を有するSLU52(既存SLU)が作成されていないと判定された場合に行われる処理であって、構成管理部55は、ステップS701で指定されたAPPノードIDが示すノード(ハイパーバイザノード80)においてアクティブな制御ソフト53を、新規SLUの作成先として仮選択する。
上記ステップS703,S704の処理は、APPノードIDが示すノードで新規SLUを作成することができるかを試行するための処理であって、第5の実施形態では、できるだけ、APPノードIDで指定されるノードにおいて動作する制御ソフト53を新規SLUの作成先として選択する。
ステップS705以降の処理は、図17におけるステップS303以降の処理と同様である。概要を説明すると、ステップS703またはステップS704で仮選択した制御ソフト53が新規SLUを作成可能な空き容量を有している場合は、当該制御ソフト53によって新規SLUを作成し(ステップS705のYES~S708~S710)、仮選択した制御ソフトが十分な空き容量を有していない場合は、既存SLUの他の制御ソフト53への移動が可能か判断し、可能であれば移動した上で仮選択した制御ソフト53によって新規SLUを作成し(ステップS705のNO~S706のYES~S707~S708~S710)、移動ができない場合は特定のルールに従って別の制御ソフト53を新規SLUの作成先として選択して新規SLUを作成する(ステップS705のNO~S706のNO~S709~S710)。
以上、図24を参照しながら説明したように、第5の実施形態におけるSLU作成処理は、SLU作成時の作成先の制御ソフト53の選択において、できるだけ、APPノードIDで指定されるノードにおいて動作する制御ソフト53を新規SLUの作成先として選択する、ことを特徴とする。そして、APPノードIDで指定されるノードにおいて動作する制御ソフト53によってSLU52が作成された場合には、当該SLU52が存在するストレージOS用VM83と当該SLU52を利用するユーザAPP用VM82とが同じノードに存在することから、当該SLU52に対するIO処理はハイパーバイザ内ネットワークを介して実行される。したがって、第5の実施形態に係る情報処理システム8は、第2の実施形態に係る情報処理システム1と同様に、高いIO性能及び信頼性を得ることができる。
また、繰り返しになるため詳細な説明は省略するが、第5の実施形態に係る情報処理システム8は、ストレージOS用VM83に、第1,第3,第4の実施形態におけるストレージノード3と同様の動作を実行する各種プログラムを有することにより、第1,第3,第4の実施形態と同様の効果を得ることができる。
なお、第5の実施形態に係る情報処理システム8の変形例として、HCIに代えてコンテナの構成であってもよい。HCIの場合はハイパーバイザがベースとなっていたが、コンテナの場合は、ベアメタルサーバ上にOSが動作し、その上のプロセスの集合として、ストレージOS相当の集合(ストレージOSコンテナ)やユーザAPP用コンテナが動作する、という構成を有する。このようなコンテナの構成であっても、同一ノードにおいてVMとストレージが配置される点はHCIと同様であることから、本発明を適用することができる。
1,8 情報処理システム
2 ホスト
3 ストレージノード
4 ストレージサービスネットワーク
5 バックエンドネットワーク
6 クラスタ
20,30 内部ネットワーク
21,31 CPU
22,32 メモリ
23,33 記憶装置
24,34,35 通信装置
41 仮想マシン(VM)
51 ALU
52 SLU
53 制御ソフト
54 クラスタ制御部
55 構成管理部
56 冗長化グループ(ストレージコントローラグループ)
60 管理情報
61 構成情報
62 ALU管理テーブル
63,71,91 SLU管理テーブル
64 システム管理テーブル
65 制御ソフト管理テーブル
66 ホスト管理テーブル
67 パス管理テーブル
72 システム稼働情報管理テーブル
80 ハイパーバイザノード
81 ハイパーバイザ管理部
82 ユーザAPP用VM
83 ストレージOS用VM
84 ユーザAPP
IT イニシエータ
LU 論理ユニット
TG ターゲット

Claims (15)

  1. それぞれ1又は複数のプロセッサを備える複数のストレージノードと、記憶装置と、を備えた情報処理システムであって、
    前記複数のストレージノードは、ネットワークで接続されており、
    前記ストレージノードは、
    論理記憶領域である第1の論理ユニットと、
    前記第1の論理ユニットとの間に接続関係が設定され、前記接続関係を有する前記第1の論理ユニットに格納されたデータに対するIO要求の受け口となる第2の論理ユニットと、
    前記プロセッサ上で稼働し、前記第1の論理ユニットへの前記IO要求の処理を行う制御部と、
    を有し、
    異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、1又は複数の前記第1の論理ユニットが前記冗長化グループに対応付けられ、
    前記冗長化グループを構成する複数の前記制御部には、前記冗長化グループに対応付けられた前記第1の論理ユニットへの前記IO要求の処理を行うアクティブ制御部と、前記アクティブ制御部の障害時にその処理を引き継ぐスタンバイ制御部とが含まれ、
    前記プロセッサは、前記アクティブ制御部が存在する前記ストレージノードに少なくとも1つの前記第2の論理ユニットを配置し、当該第2の論理ユニットと、前記アクティブ制御部が担当する前記第1の論理ユニットとを対応付ける
    ことを特徴とする情報処理システム。
  2. 前記プロセッサは、前記ストレージノードに前記冗長化グループを配置するとき、
    前記冗長化グループのアクティブ制御部と同じストレージノードに前記第2の論理ユニットを作成する第2論理ユニット作成処理と、
    前記第2論理ユニット作成処理で作成した前記第2の論理ユニットと上位装置との間にIO経路となるパスを設定するパス設定処理と、
    前記アクティブ制御部と同じストレージノードに前記第1の論理ユニットを作成する第1論理ユニット作成処理と、
    前記第1論理ユニット作成処理で作成した前記第1の論理ユニットと同じストレージノード内の前記第2の論理ユニットとの間に接続関係を設定するバインド処理と、
    を実行することを特徴とする請求項1に記載の情報処理システム。
  3. 前記パス設定処理において前記プロセッサは、
    前記上位装置と前記第2の論理ユニットとの間に、複数のストレージノードのいずれかのポートを経由する複数のパスを設定し、
    前記複数のパスが経由するポートは、複数のストレージノードに存在し、
    前記複数のパスが経由するポートが存在するストレージノードには、前記アクティブ制御部が存在する前記ストレージノードと、前記スタンバイ制御部が存在する前記ストレージノードと、が含まれる
    ことを特徴とする請求項2に記載の情報処理システム。
  4. 前記パス設定処理において前記プロセッサは、
    前記設定した複数のパスのうち、前記第2の論理ユニットを制御する前記アクティブ制御部が存在する前記ストレージノードのポートを経由するパスを、優先的に使用する優先パスに設定し、
    前記設定した複数のパスのうち、フェイルオーバーによる構成変更の際に前記アクティブ制御部の処理を引き継ぐ前記スタンバイ制御部が存在するストレージノードを経由するパスを、当該フェイルオーバー時に前記優先パスに変更する冗長パスとして設定する
    ことを特徴とする請求項3に記載の情報処理システム。
  5. 前記第1論理ユニット作成処理において前記プロセッサは、
    作成する前記第1の論理ユニットの容量と冗長化グループにかかる空き容量とに基づいて、前記第1の論理ユニットを作成する前記冗長化グループのアクティブ制御部を選択する
    ことを特徴とする請求項2に記載の情報処理システム。
  6. 前記バインド処理において前記プロセッサは、
    前記第1論理ユニット作成処理で作成した前記第1の論理ユニットと、当該第1の論理ユニットと同一の前記アクティブ制御部に制御される前記第2の論理ユニットとの間に前記接続関係を設定する
    ことを特徴とする請求項2に記載の情報処理システム。
  7. 前記バインド処理において前記プロセッサは、
    前記第1論理ユニット作成処理で作成した前記第1の論理ユニットと同一の前記アクティブ制御部に制御される前記第2の論理ユニットが複数存在する場合は、前記第1の論理ユニットとの前記接続関係の設定数が最も少ない前記第2の論理ユニットに対して前記接続関係を設定する
    ことを特徴とする請求項6に記載の情報処理システム。
  8. 前記第1論理ユニット作成処理において前記プロセッサは、
    作成する新規の前記第1の論理ユニットにアクセスする前記上位装置のアプリケーションが、既存の前記第1の論理ユニットにアクセスしている場合に、当該既存の第1の論理ユニットを制御する前記アクティブ制御部に対応付けて前記新規の第1の論理ユニットを作成する
    ことを特徴とする請求項2に記載の情報処理システム。
  9. 前記第1論理ユニット作成処理において前記プロセッサは、
    前記既存の第1の論理ユニットを制御する前記アクティブ制御部において前記新規の第1の論理ユニットを作成させるために必要な容量が不足している場合には、当該アクティブ制御部が存在するストレージノードの他の前記第1の論理ユニットを他のストレージノードに移動させ、当該アクティブ制御部に対応付けて前記新規の第1の論理ユニットを作成する
    ことを特徴とする請求項8に記載の情報処理システム。
  10. 前記プロセッサは、前記第1の論理ユニットの作成指示に応じて、前記第1論理ユニット作成処理を実行可能であり、
    当該第1論理ユニット作成処理において前記プロセッサは、
    前記複数のストレージノードにおいて前記第1の論理ユニットの制御数が所定数以下である前記アクティブ制御部が存在しない場合に、前記作成指示で指定された新規の第1の論理ユニットに必要な空き容量を有し、かつ前記第2の論理ユニットの制御数が最も少ない前記アクティブ制御部を選択し、前記第2論理ユニット作成処理を実行して前記第2の論理ユニットを作成し、前記作成した第2の論理ユニットに対応付く前記新規の第1の論理ユニットを作成する
    ことを特徴とする請求項2に記載の情報処理システム。
  11. 前記プロセッサは、接続対象の前記第1の論理ユニットが指定された前記接続関係の設定指示に応じて、前記バインド処理を実行可能であり、
    当該バインド処理において前記プロセッサは、
    前記接続対象の第1の論理ユニットと同一の前記アクティブ制御部に制御される前記第2の論理ユニットにおける前記接続関係の設定数が所定数を超えている場合に、前記第2の論理ユニットを作成し、前記作成した第2の論理ユニットに前記接続対象の第1の論理ユニットとの接続関係を移動する
    ことを特徴とする請求項2に記載の情報処理システム。
  12. 前記ストレージノードがN個に増設されるとき、前記プロセッサは、
    各ストレージノードに配置される前記第2の論理ユニットの数がそれぞれN-1個となるように前記第2論理ユニット作成処理を実行し、前記第2論理ユニット作成処理で作成した前記第2の論理ユニットに対して、同一ストレージノード内の前記第1の論理ユニットとの間に接続関係を設定した上で前記パス設定処理を実行し、
    前記N個のうちの何れかの前記ストレージノードが減設されるときには、当該ストレージノードにおける前記第1の論理ユニットを当該ストレージノード以外のN-1個のストレージノードに分散して配置可能とする
    ことを特徴とする請求項2に記載の情報処理システム。
  13. 前記プロセッサは、
    複数の前記第1の論理ユニットを、低負荷の論理ユニット群と高負荷の論理ユニット群とに分類し、分類した論理ユニット群ごとに、異なる前記第2の論理ユニットとの間で前記接続関係を設定し、
    前記低負荷の論理ユニット群と、当該論理ユニット群との間で前記接続関係が設定された前記第2の論理ユニットとを、前記複数のストレージノードのうち負荷が高いストレージノードに移動させ、前記高負荷の論理ユニット群と、当該論理ユニット群との間で前記接続関係が設定された前記第2の論理ユニットとを、前記複数のストレージノードのうち負荷が低いストレージノードに移動させる、ノード負荷調整処理を実行する
    ことを特徴とする請求項2に記載の情報処理システム。
  14. ネットワークを介して接続された複数の計算機ノードから構成される情報処理システムであって、
    それぞれの前記計算機ノードには、ハイパーバイザ上で動作する仮想マシンとして、1の前記ストレージノードに相当する機能を実現するストレージ用仮想マシンと、何れかの前記第1の論理ユニットにアクセスして動作するアプリケーションを有し、1の前記上位装置に相当する機能を実現する上位装置用仮想マシンと、が実装され、
    前記第1論理ユニット作成処理において前記プロセッサは、
    作成する新規の前記第1の論理ユニットにアクセスする前記アプリケーションが、既存の前記第1の論理ユニットにアクセスしている場合に、当該既存の第1の論理ユニットを制御する前記アクティブ制御部に対応付けて前記新規の第1の論理ユニットを作成する
    ことを特徴とする請求項2に記載の情報処理システム。
  15. それぞれ1又は複数のプロセッサを備える複数のストレージノードと、記憶装置と、を備えた情報処理システムの構成管理方法であって、
    前記複数のストレージノードは、ネットワークで接続されており、
    前記ストレージノードは、
    論理記憶領域である第1の論理ユニットと、
    前記第1の論理ユニットとの間に接続関係が設定され、前記接続関係を有する前記第1の論理ユニットに格納されたデータに対するIO要求の受け口となる第2の論理ユニットと、
    前記プロセッサ上で稼働し、前記第1の論理ユニットへの前記IO要求の処理を行う制御部と、
    を有し、
    異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、1又は複数の前記第1の論理ユニットが前記冗長化グループに対応付けられ、
    前記冗長化グループを構成する複数の前記制御部には、前記冗長化グループに対応付けられた前記第1の論理ユニットへの前記IO要求の処理を行うアクティブ制御部と、前記アクティブ制御部の障害時にその処理を引き継ぐスタンバイ制御部とが含まれ、
    前記プロセッサは、前記アクティブ制御部が存在する前記ストレージノードに少なくとも1つの前記第2の論理ユニットを配置し、当該第2の論理ユニットと、前記アクティブ制御部が担当する前記第1の論理ユニットとを対応付ける
    ことを特徴とする構成管理方法。
JP2021209695A 2021-12-23 2021-12-23 情報処理システム及び構成管理方法 Pending JP2023094302A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021209695A JP2023094302A (ja) 2021-12-23 2021-12-23 情報処理システム及び構成管理方法
US17/945,769 US12019885B2 (en) 2021-12-23 2022-09-15 Information processing system and configuration management method including storage nodes connected by network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021209695A JP2023094302A (ja) 2021-12-23 2021-12-23 情報処理システム及び構成管理方法

Publications (1)

Publication Number Publication Date
JP2023094302A true JP2023094302A (ja) 2023-07-05

Family

ID=86897710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021209695A Pending JP2023094302A (ja) 2021-12-23 2021-12-23 情報処理システム及び構成管理方法

Country Status (2)

Country Link
US (1) US12019885B2 (ja)
JP (1) JP2023094302A (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016103416A1 (ja) * 2014-12-25 2016-06-30 株式会社日立製作所 ストレージシステム、ストレージ装置およびアクセス制御方法
WO2018011839A1 (ja) * 2016-07-11 2018-01-18 株式会社日立製作所 情報処理システム、及び、情報処理システムの制御方法
JP2019101702A (ja) * 2017-11-30 2019-06-24 株式会社日立製作所 記憶システム及びその制御方法
JP2019185328A (ja) * 2018-04-06 2019-10-24 株式会社日立製作所 情報処理システム及びパス管理方法
JP2020052730A (ja) * 2018-09-27 2020-04-02 株式会社日立製作所 Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム
JP2021056567A (ja) * 2019-09-27 2021-04-08 株式会社日立製作所 ストレージシステム、パス管理方法、及びパス管理プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180121091A1 (en) * 2015-03-31 2018-05-03 Hitachi, Ltd. Storage apparatus and its control method
US10203890B1 (en) * 2016-09-20 2019-02-12 Tintri Inc. Multi-tier mechanism to achieve high availability in a multi-controller system
US10318393B2 (en) * 2017-02-13 2019-06-11 Hewlett Packard Enterprise Development Lp Hyperconverged infrastructure supporting storage and compute capabilities
US10241874B2 (en) * 2017-05-17 2019-03-26 Stratus Technologies Checkpoint method for a highly available computer system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016103416A1 (ja) * 2014-12-25 2016-06-30 株式会社日立製作所 ストレージシステム、ストレージ装置およびアクセス制御方法
WO2018011839A1 (ja) * 2016-07-11 2018-01-18 株式会社日立製作所 情報処理システム、及び、情報処理システムの制御方法
JP2019101702A (ja) * 2017-11-30 2019-06-24 株式会社日立製作所 記憶システム及びその制御方法
JP2019185328A (ja) * 2018-04-06 2019-10-24 株式会社日立製作所 情報処理システム及びパス管理方法
JP2020052730A (ja) * 2018-09-27 2020-04-02 株式会社日立製作所 Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム
JP2021056567A (ja) * 2019-09-27 2021-04-08 株式会社日立製作所 ストレージシステム、パス管理方法、及びパス管理プログラム

Also Published As

Publication number Publication date
US12019885B2 (en) 2024-06-25
US20230205439A1 (en) 2023-06-29

Similar Documents

Publication Publication Date Title
US11080081B2 (en) Virtual machine and volume allocation in hyperconverged infrastructure environment and storage system
US11636015B2 (en) Storage system and control software deployment method
JP5830599B2 (ja) 計算機システム及びその管理システム
US20190310925A1 (en) Information processing system and path management method
US9639277B2 (en) Storage system with virtual volume having data arranged astride storage devices, and volume management method
US9229645B2 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
US20150153961A1 (en) Method for assigning storage area and computer system using the same
JP5973089B2 (ja) ストレージシステムの移行方式および移行方法
US12118408B2 (en) Techniques for workload balancing using dynamic path state modifications
US20210303178A1 (en) Distributed storage system and storage control method
US20220365692A1 (en) Techniques for storage management
US20150026421A1 (en) Management system for managing a physical storage system, method of determining a resource migration destination of a physical storage system, and storage medium
US11768744B2 (en) Alerting and managing data storage system port overload due to host path failures
JP2023094302A (ja) 情報処理システム及び構成管理方法
JP7057408B2 (ja) 記憶システム及びその制御方法
US11609711B2 (en) Distributed control path
JP2022020926A (ja) ストレージシステム及び処理移行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240724

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20240809