JP2019185328A - 情報処理システム及びパス管理方法 - Google Patents

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

Info

Publication number
JP2019185328A
JP2019185328A JP2018074265A JP2018074265A JP2019185328A JP 2019185328 A JP2019185328 A JP 2019185328A JP 2018074265 A JP2018074265 A JP 2018074265A JP 2018074265 A JP2018074265 A JP 2018074265A JP 2019185328 A JP2019185328 A JP 2019185328A
Authority
JP
Japan
Prior art keywords
path
node
redundancy group
storage
compute node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018074265A
Other languages
English (en)
Other versions
JP6814764B2 (ja
Inventor
美里 吉田
Misato Yoshida
美里 吉田
匡邦 揚妻
Masakuni Agetsuma
匡邦 揚妻
秀雄 斎藤
Hideo Saito
秀雄 斎藤
司 柴山
Tsukasa Shibayama
司 柴山
山本 彰
Akira Yamamoto
山本  彰
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 JP2018074265A priority Critical patent/JP6814764B2/ja
Priority to US16/298,619 priority patent/US20190310925A1/en
Publication of JP2019185328A publication Critical patent/JP2019185328A/ja
Application granted granted Critical
Publication of JP6814764B2 publication Critical patent/JP6814764B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/2058Error 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 using more than 2 mirrored copies
    • 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/2071Error 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 using a plurality of controllers
    • G06F11/2076Synchronous techniques
    • 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
    • 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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】耐障害性の高いマルチパスを設定し得る情報処理システム及びパス管理方法を提案する。【解決手段】ストレージノードに配置され、コンピュートノードからの要求を処理するアクティブモードに設定された制御部と、他のストレージノードに配置され、当該制御部等に障害が発生したときに処理を引き継ぐパッシブモードに設定された制御部とから構成される冗長化グループの構成をストレージノードに問い合せ、問合せ結果に基づいて、自コンピュートノードからその冗長化グループに対応付けられたボリュームへのパスを複数設定すると共に、この際、アクティブモードの制御部が配置されたストレージノードと接続されたパスの優先順位を最も高く設定し、パッシブモードの制御部が配置されたストレージノードと接続されたパスの優先順位を次に高く設定するようにした。【選択図】 図9

Description

本発明は情報処理システム及びパス管理方法に関し、例えば、それぞれ1又は複数のSDS(Software Defined Storage)が実装された複数のストレージノードを備える情報処理システムに適用して好適なものである。
近年、汎用のサーバ装置(以下、これをストレージノードと呼ぶ)にストレージ制御ソフトウェアを実装することにより構築されるSDSの開発が進められている。SDSは、専用のハードウェアを必要とせず、拡張性も高いことから、その需要も増加傾向にある。また、かかるストレージノードを複数組合せて1つのクラスタを構成し、クラスタを1つのストレージ装置として上位装置(以下、これをコンピュートノードと呼ぶ)に提供する情報処理システムの開発も進められている。
このような情報処理システムでは、耐障害性を目的として、マルチパスソフトを利用して複数のストレージノードに複数のパス(マルチパス)を設定することが一般的である。この際、複数のパスのうちの一部が通常利用する優先パスに設定され、残りが障害発生時に利用される冗長パスに設定される。
なお、特許文献1には、このようなマルチパスに関する技術として、コンピュートノード内のミドルウェアがストレージ構造の変化を監視し、ストレージ構造に変化が発生した契機でデバイスをスキャンし直し、スキャン結果に基づいて、新たなストレージ構造をマルチパスソフトウェアに設定し直すことが開示されている。また、この特許文献1には、この際、最短パスも検出し、検出した最短パスを優先パスに設定することも開示されている。
米国特許出願公開第2016/0378342号明細書
ところが、かかる特許文献1では、冗長パス及び優先パスを全ストレージノードに設定するため、優先パス先のノード障害直後に処理速度が遅いパスを一時的に利用することとなる。このためコンピュートノードから見たストレージノードの応答性能が低下する問題や、OS(Operating System)又はマルチパスソフトウェアのリソース制限により全ストレージノードに冗長パスを設定できない問題があった。
また、パスで利用する通信規格がiSCSI(internet SCSI(Small Computer System Interface))の場合、常にセッションが行われ、利用していない冗長パスに不要なパケットが流れ続けることとなるため、特許文献1のように冗長パス及び優先パスを全ストレージノードに設定するものとすると、マルチパス全体として相応のネットワーク帯域を浪費することになる問題もあった。
本発明は以上の点を考慮してなされたもので、耐障害性の高いマルチパスを設定し得る情報処理システム及びパス管理方法を提案しようとするものである。
かかる課題を解決するため本発明においては、情報処理システムにおいて、それぞれ1又は複数の記憶装置が搭載された1又は複数のストレージノードと、前記ストレージノードにデータを読み書きする1又は複数のコンピュートノードとを設け、前記ストレージノードには、1又は複数の制御部がそれぞれ配置され、異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、前記記憶装置から記憶領域が提供される1又は複数のボリュームが前記冗長化グループに対応付けられ、前記冗長化グループを構成する一部の前記制御部が前記コンピュートノードからの前記要求を受け付けるアクティブモードに設定され、当該冗長化グループを構成する残りの前記制御部が当該要求を受け付けないパッシブモードに設定され、前記アクティブモードに設定された前記制御部は、自己が構成する前記冗長化グループと対応付けられた前記ボリュームを対象とする前記コンピュートノードからの要求に応じて当該ボリュームにデータを読み書きし、前記パッシブモードに設定された前記制御部は、前記アクティブモードに設定された前記制御部が前記コンピュートノードからの要求を処理できなくなった場合にアクティブモードに切り替えられ、前記コンピュートノードは、各前記冗長化グループの構成を前記ストレージノードに問い合せ、取得した各前記冗長化グループの構成に基づいて、自コンピュートノードから前記ボリュームへのパスを複数設定すると共に各前記パスに優先順位をそれぞれ設定し、前記ボリュームに対する前記要求を、対応する前記ボリュームへの前記パスのうちの前記優先順位が最も高い利用可能な前記パスを利用して対応する前記ストレージノードに送信し、前記コンピュートノードは、自コンピュートノードから前記ボリュームへのパスを複数設定する際、当該ボリュームと対応付けられた前記冗長化グループを構成する前記アクティブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を最も高く設定し、当該冗長化グループを構成する前記パッシブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を次に高く設定するようにした。
また本発明においては、情報処理システムにおいて実行されるパス管理方法であって、前記情報処理システムは、それぞれ1又は複数の記憶装置が搭載された1又は複数のストレージノードと、前記ストレージノードにデータを読み書きする1又は複数のコンピュートノードとを有し、前記ストレージノードには、1又は複数の制御部がそれぞれ配置され、異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、前記記憶装置から記憶領域が提供される1又は複数のボリュームが前記冗長化グループに対応付けられ、前記冗長化グループを構成する一部の前記制御部が前記コンピュートノードからの前記要求を受け付けるアクティブモードに設定され、当該冗長化グループを構成する残りの前記制御部が当該要求を受け付けないパッシブモードに設定され、前記アクティブモードに設定された前記制御部は、自己が構成する前記冗長化グループと対応付けられた前記ボリュームを対象とする前記コンピュートノードからの要求に応じて当該ボリュームにデータを読み書きし、前記パッシブモードに設定された前記制御部は、前記アクティブモードに設定された前記制御部が前記コンピュートノードからの要求を処理できなくなった場合にアクティブモードに切り替えられ、前記コンピュートノードが、各前記冗長化グループの構成を前記ストレージノードに問い合せ、取得した各前記冗長化グループの構成に基づいて、自コンピュートノードから前記ボリュームへのパスを複数設定すると共に各前記パスに優先順位をそれぞれ設定する第1のステップと、前記ボリュームに対する前記要求を、対応する前記ボリュームへの前記パスのうちの前記優先順位が最も高い利用可能な前記パスを利用して対応する前記ストレージノードに送信する第2のステップとを備え、前記第1のステップにおいて、前記コンピュートノードは、自コンピュートノードから前記ボリュームへのパスを複数設定する際、当該ボリュームと対応付けられた前記冗長化グループを構成する前記アクティブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を最も高く設定し、当該冗長化グループを構成する前記パッシブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を次に高く設定するようにした。
本発明の情報処理システム及びパス管理方法によれば、アクティブモードに設定された制御部がコンピュートノードからの要求を処理できなくなり、それまでパッシブモードに設定されていた制御部がアクティブモードに切り替えられた場合においても、当該制御部がそのときの最短のパスを経由してボリュームにアクセスすることができる。
従って、アクティブモードに設定された制御部等に障害が発生し、パスがそれまでパッシブモードに設定されていた制御部へのパスに切り替えられた場合においてもコンピュートノードから見た応答性能が低下するのを未然かつ有効に防止することができる。
本発明によれば、耐障害性の高いマルチパスを設定し得る情報処理システム及びパス管理方法を実現できる。
本実施形態による情報処理システムの全体構成を示すブロック図である。 コンピュートノードの概略構成を示すブロック図である。 ストレージノードの概略構成を示すブロック図である。 コンピュートノードのメモリの論理構成を示すブロック図である。 ストレージノードのメモリの論理構成を示すブロック図である。 システム構成情報テーブルの構成例を示す図表である。 マルチパス構成情報テーブルの構成例を示す図表である。 マルチパス構成情報テーブルの更新例を示す図表である。 本実施形態によるパス管理機能の説明に供するブロック図である。 本実施形態によるパス管理機能の説明に供するブロック図である。 本実施形態によるパス管理機能の説明に供するブロック図である。 マルチパス設定処理の処理手順を示すフローチャートである。 システム構成情報送信処理の処理手順を示すフローチャートである。 マルチパス構成情報登録処理の処理手順を示すフローチャートである。 パス優先度設定処理の処理手順を示すフローチャートである。 ALUA利用パス優先度設定処理の処理手順を示すフローチャートである。 ALUA非利用パス優先度設定処理の処理手順を示すフローチャートである。
以下、図面を参照して、本発明の一実施形態を詳述する。
なお以下の記載及び図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。本発明が実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。本発明は、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は複数でも単数でも構わない。
以下の説明では、「テーブル」、「表」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、少なくとも1以上のプロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノード、ストレージシステム、ストレージ装置、サーバ、管理計算機、クライアント、又は、ホストであってもよい。プログラムを実行して行う処理の主体(例えばプロセッサ)は、処理の一部又は全部を行うハードウェア回路を含んでもよい。例えば、プログラムを実行して行う処理の主体は、暗号化及び復号化、又は圧縮及び伸張を実行するハードウェア回路を含んでもよい。プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
(1)本実施形態による情報処理システムの構成
図1において、1は全体として本実施形態による情報処理システムを示す。この情報処理システム1は、複数のコンピュートノード2と、複数のストレージノード3とを備えて構成される。
各コンピュートノード2及び各ストレージノード3間は、例えばファイバーチャネル(Fibre Channel)、イーサネット(登録商標)、InfiniBand又は無線LAN(Local Area Network)などから構成されるストレージサービスネットワーク4を介して接続されると共に、各ストレージノード3間は、LAN、イーサネット(登録商標)、InfiniBand又は無線LANなどから構成されるバックエンドネットワーク5を介して接続されている。
ただし、ストレージサービスネットワーク4及びバックエンドネットワーク5が同一のネットワークにより構成されていてもよく、また各コンピュートノード2及び各ストレージノード3がストレージサービスネットワーク4やバックエンドネットワーク5以外の管理用ネットワークに接続されていてもよい。
コンピュートノード2は、ユーザ操作や実装されたアプリケーションプログラム(以下、これをアプリケーションと呼ぶ)からの要求に応じて、ストレージサービスネットワーク4を介してストレージノード3にデータを読み書きする機能を有する物理的なコンピュータ装置である。ただし、コンピュートノード2が仮想マシンのような仮想的なコンピュータ装置であってもよい。
コンピュートノード2は、図2に示すように、内部ネットワーク10を介して相互に接続された1以上のCPU(Central Processing Unit)11、1以上の記憶装置13及び1以上の通信装置14と、CPU11と接続された1以上のメモリ12とを備える。
CPU11は、コンピュートノード2全体の動作制御を司るプロセッサである。またメモリ12は、SRAM(Static RAM(Random Access Memory))やDRAM(Dynamic RAM)などの揮発性の半導体メモリや、不揮発性の半導体メモリから構成され、CPU11のワークメモリとして利用される。
記憶装置13は、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はSCM(Storage Class Memory)などの大容量の不揮発性の記憶装置から構成され、各種プログラムや制御データ等を長期的に保持するために利用される。記憶装置13に格納されたプログラムがコンピュートノード2の起動時や必要時にメモリ12にロードされ、メモリ12にロードされたプログラムをCPU11が実行することにより、後述のようなコンピュートノード2全体としての各種処理が実行される。
通信装置14は、コンピュートノード2がストレージサービスネットワーク4を介してストレージノード3と通信を行うためのインタフェースであり、例えばファイバーチャネルカードやイーサネット(登録商標)カード、InfiniBandカード、無線LANカードなどから構成される。通信装置14は、ストレージサービスネットワーク4を介したストレージノード3との通信時におけるプロトコル制御を行う。
ストレージノード3は、コンピュートノード2に対してデータを読み書きするための記憶領域を提供する物理的なサーバ装置である。ただし、ストレージノード3が仮想マシンであってもよい。またストレージノード3がコンピュートノード2と同一の物理ノードに同居する構成であってもよい。
ストレージノード3は、図3に示すように、内部ネットワーク20を介して相互に接続された1以上のCPU21、複数の記憶装置23、1以上の第1の通信装置24及び1以上の第2の通信装置25と、CPU21と接続された1以上のメモリ22とを備える。このうちCPU21及びメモリ22の機能及び構成は、コンピュートノード2の対応部位(CPU11又はメモリ12)と同様であるため、ここでの説明は省略する。
記憶装置23は、HDD、SSD又はSCMなどの大容量の不揮発性の記憶装置から構成され、NVMe(Non-Volatile Memory Express)やSAS(Serial Attached SCSI(Small Computer System Interface))、SATA(Serial ATA(Advanced Technology Attachment))などのインタフェースを介して第2の通信装置25と接続される。
また第1の通信装置24は、ストレージノード3がストレージサービスネットワーク4を介してコンピュートノード2と通信を行うためのインタフェースであり、第2の通信装置25は、ストレージノード3がバックエンドネットワーク5を介して他のストレージノード3と通信を行うためのインタフェースである。これら第1及び第2の通信装置24,25は、コンピュートノード2の通信装置14と同様の構成を有するものであるため、ここでの説明は省略する。
なお、本実施形態の場合、各ストレージノード3は、図1に示すように、他の1又は複数のストレージノード3と共にクラスタ6と呼ぶグループにまとめられて管理される。図1の例では、クラスタ6が1つのみ設定された場合について例示しているが、情報処理システム1内に複数のクラスタ6を設けるようにしてもよい。1つのクラスタ6を構成する各ストレージノード3は、コンピュートノード2からは1つのストレージ装置として認識される。
(2)本情報処理システムの論理構成
次に、本情報処理システム1の論理構成について説明する。
図4に示すように、各コンピュートノード2のメモリ12には、アプリケーション30、マルチパスソフトウェア(以下、これをマルチパスソフトと呼ぶ)31、マルチパス設定プログラム32及びマルチパス構成情報テーブル33が格納される。
アプリケーション30は、コンピュートノード2のユーザの業務内容に応じた処理を実行するソフトウェアである。図9に示すように、各ストレージノード3内には1又は複数の仮想的な論理ボリューム(以下、これを仮想ボリュームと呼ぶ)が作成され、これら仮想ボリュームが論理ユニットLUを介してアプリケーション30に提供される。そしてアプリケーション30は、所望する仮想ボリュームVVOLにデータを読み書きする場合には、その仮想ボリュームVVOLと対応付けられた論理ユニットLU(結果的には対応する仮想ボリュームVVOL)を対象とするI/O(Input/Output)要求をマルチパスソフト31に送信する。
マルチパスソフト31は、自コンピュートノード2内に作成された論理ユニットLUごとに、その論理ユニットLUから当該論理ユニットLUと対応付けられた仮想ボリュームVVOLへの複数のパスPS(マルチパスMPS)を設定する機能を有するソフトウェアである。
実際上、各コンピュートノード2には、そのコンピュートノード2内に作成された1又は複数の論理ユニットLUとそれぞれ関連付けられた1又は複数のイニシエータITが定義される。これらイニシエータITは、それぞれそのコンピュートノード2が備えるいずれかのポート(図示せず)と対応付けられる。また各ストレージノード3には、クラスタ6内に作成された各仮想ボリュームVVOLがそれぞれ関連付けられた1又は複数のターゲットTGが定義される。これらターゲットTGは、そのストレージノード3が備えるいずれかのポート(図示せず)と対応付けられる。
そしてマルチパスソフト31は、論理ユニットLUごとに、その論理ユニットLUと関連付けられたイニシエータITと、その論理ユニットLUに対応する仮想ボリュームVVOLと関連付けられたターゲットTGとを結ぶパスPSを複数設定する。この際、マルチパスソフト31は、論理ユニットLUごとに、その論理ユニットLUについて設定した複数のパスPSのそれぞれに優先度(以下、これをパス優先度と呼ぶ)を設定する。
そしてマルチパスソフト31は、アプリケーション30からある論理ユニットLUを対象とするI/O要求が与えられた場合には、その論理ユニットLUと対応付けられた仮想ボリュームVVOLについて設定した複数のパスPSの中から、利用可能なパスPSのうちで最もパス優先度が高いパスPSを利用してそのI/O要求を対応するストレージノードに送信する。
なお各ターゲットTGには、それぞれそのターゲットTGを介して仮想ボリュームVVOLにアクセス可能なイニシエータITを設定することができる。これにより、アプリケーション30がアクセス可能な仮想ボリュームVVOLを、アプリケーション30ごとに制限することができる。
マルチパス設定プログラム32及びマルチパス構成情報テーブル33の詳細については、後述する。
一方、各ストレージノード3のメモリ22には、図5に示すように、複数の制御ソフトウェア(以下、これを制御ソフトと呼ぶ)40及びこれら制御ソフト40にそれぞれ対応させて作成された複数の構成情報41と、クラスタ制御部42及びシステム構成情報テーブル43とがそれぞれ格納される。
制御ソフト40は、SDS(Software Defined Storage)のストレージコントローラとして機能するソフトウェアである。制御ソフト40は、コンピュートノード2からのI/O要求を受け付け、対応する記憶装置23(図3)にデータを読み書きする機能を有する。
本実施形態の場合、図9に示すように、ストレージノード3に実装された各制御ソフト40は、それぞれ互いに異なる他のストレージノード3にそれぞれ実装された1又は複数の他の制御ソフト40と共に冗長化のための1つのグループ(以下、これを冗長化グループと呼ぶ)44として管理される。
そして各冗長化グループ44には、それぞれ1又は複数の仮想ボリュームVVOLが対応付けられ、これらの仮想ボリュームVVOLが上述のようにデータをリード/ライトする記憶領域としてコンピュートノード2に提供されて、いずれかのコンピュートノード2内のいずれかの論理ユニットLUとそれぞれ対応付けられる。
この場合、仮想ボリュームVVOL内の記憶領域は所定の大きさの小領域(以下、これを論理ページと呼ぶ)に区分して管理される。またストレージノード3に搭載された各記憶装置23(図3)が提供する記憶領域は論理ページと同じ大きさの小領域(以下、これを物理ページと呼ぶ)に区分されて管理される。ただし、論理ページ及び物理ページは同じサイズでなくてもよい。
かくして、コンピュートノード2のアプリケーション30(図4)は、所望する仮想ボリュームVVOLにデータをリード/ライトする場合、そのデータのリード/ライト先の仮想ボリュームVVOLの識別子(LUN:Logical Unit Number)と、その仮想ボリュームVVOLにおけるそのデータのリード/ライト先の先頭の論理ページと、そのデータのデータ長とを指定したI/O要求をマルチパスソフト31(図4)に発行し、このI/O要求をマルチパスソフト31が対応するパスPSを介して対応するストレージノード3に送信する。
なお図9は、2つの制御ソフト40により冗長化グループ44が構成される場合を示しており、以下においても、2つの制御ソフト40により冗長化グループ44が構成されるものとして説明を進めるが、3つ以上の制御ソフト40により冗長化グループ44が構成されるものとしてもよい。
冗長化グループ44では、少なくとも1つの制御ソフト40が、自冗長化グループ44に対応付けられた仮想ボリュームVVOLを対象とするコンピュートノード2からのI/O要求を受け付けることができる状態(現用系の状態であり、以下、これをアクティブモードと呼ぶ)に設定され、残りの制御ソフト40がかかるI/O要求を受け付けない状態(待機系の状態であり、以下、これをパッシブモードと呼ぶ)に設定される。
従って、2つの制御ソフト40から構成される冗長化グループ44は、これら2つの制御ソフト40の双方がアクティブモードに設定された構成(以下、これをアクティブ−アクティブ構成と呼ぶ)と、一方の制御ソフト40がアクティブモードに設定され、他方の制御ソフト40がそのバックアップとしてパッシブモードに設定された構成(以下、これをアクティブ−パッシブ構成と呼ぶ)とのうちのいずれかの構成をとることになる。
そしてアクティブ−パッシブ構成が採用された冗長化グループ44では、アクティブモードに設定された制御ソフト40又はその制御ソフト40が配置されたストレージノード3に障害が発生した場合や、そのようなストレージノード3がクラスタ6から撤去(ストレージノード3が減設)された場合などに、それまでパッシブモードに設定されていた制御ソフト40の状態がアクティブモードに切り替えられる(フェールオーバ機能)。これにより、アクティブモードに設定された制御ソフト40が稼働し得なくなった場合に、当該制御ソフト40が実行していたI/O処理をそれまでパッシブモードに設定されていた制御ソフト40により引き継ぐことができる。
このようなフェールオーバ機能を実現するため、同じ冗長化グループ44に属する制御ソフト40は、常に同一内容の構成情報41を保持している。構成情報41は、クラスタ内の記憶領域を仮想化してコンピュートノードに提供する容量仮想化機能や、アクセス頻度の多いデータをより応答速度が速い記憶領域に移動させる階層記憶制御機能、格納されたデータの中から重複するデータを削除する重複排除機能、データを圧縮して記憶する圧縮機能、ある時点でのデータの状態を保持するSnapshot(スナップショット)機能、及び、災害対策のために同期あるいは非同期で遠隔地にデータをコピーするリモートコピー機能などの各種機能に関する処理を制御ソフト40が実行するために必要な情報である。例えば、仮想ボリュームVVOLの論理ページと、記憶装置23(図3)の物理ページとの対応関係が登録されるマッピングテーブルなどが構成情報41に含まれる。
そして、冗長化グループ44を構成するアクティブモードの制御ソフト40の構成情報41が更新された場合、更新前後のその構成情報41の差分が差分データとしてその冗長化グループ44を構成する他方の制御ソフト40に転送され、この差分データに基づいて当該他方の制御ソフト40によりその制御ソフト40が保持する構成情報41が更新される。これにより冗長化グループ44を構成する各制御ソフト40がそれぞれ保持する構成情報41が常に同期した状態に維持される。
このように冗長化グループ44を構成する2つの制御ソフト40同士が常に同じ内容の構成情報41を保持することにより、アクティブモードに設定された制御ソフト40や、当該制御ソフト40が配置されたストレージノード3に障害が発生し又は当該ストレージノード3が撤去された場合にも、それまでその制御ソフト40が実行していた処理を、その制御ソフト40と同じ冗長化グループ44内の他方の制御ソフト40が直ちに引き継ぐことが可能となる。
なお上述のフェールオーバ機能によりそれまでパッシブモードに設定されていた制御ソフト40がアクティブモードに切り替えられた場合、当該制御ソフト40が配置されているストレージノード3と、元のアクティブモードの制御ソフト40が配置されているストレージノード3と以外のいずれかのストレージノード3内の未使用の制御ソフト40がパッシブモードで起動されて、アクティブモードに切り替えられた制御ソフト40と共に新たな冗長化グループ44に設定される。
また、かかるアクティブモードに切り替えられた制御ソフト40が保持している構成情報41がバックエンドネットワーク5を介して新たなパッシブモードの制御ソフト40に転送されると共に、元の冗長化グループ44に対応付けられていた仮想ボリュームVVOLの対応先がこの新たな冗長化グループ44に切り替えられる。これにより、元の冗長化グループ44の構成が新たな冗長化グループ44で再現される。
クラスタ制御部42は、コンピュートノード2から与えられたI/O要求を、バックエンドネットワーク5を介して対応するストレージノード3のクラスタ制御部42に転送したり、他のクラスタ制御部42からバックエンドネットワーク5を介して転送されてきたかかるI/O要求を、そのI/O要求の対象となる仮想ボリュームVVOLと対応付けられた冗長化グループ44の制御ソフト40に引き渡す機能を有するプログラムである。
そして、I/O要求を受信し又はクラスタ制御部42からI/O要求を引き渡された制御ソフト40のうち、アクティブモードに設定された制御ソフト40は、このI/O要求に応じた処理を実行する。例えば、制御ソフト40は、I/O要求がライト要求であった場合には、当該I/O要求において指定された仮想ボリュームVVOL内の当該I/O要求において指定された論理ページに対していずれかの物理ページを動的に割り当てた上で、当該物理ページにデータをライトする。また制御ソフト40は、I/O要求がリード要求であった場合には、当該I/O要求においてデータのリード先として指定された仮想ボリュームVVOL上の論理ページに割り当てられた物理ページからデータをリードし、リードしたデータをI/O要求の送信元のコンピュートノード2に転送する。
このような処理を実行するための手段として、クラスタ制御部42は、クラスタ6内に作成された各仮想ボリュームVVOLがそれぞれどの制御ソフト40とどの制御ソフト40とから構成される冗長化グループ44(図9)に対応付けられ、これら制御ソフト40がそれぞれどのストレージノード3に配置されているかといった、仮想ボリュームVVOLごとの対応する冗長化グループ44ごとの構成情報(以下、これをシステム構成情報と呼ぶ)をシステム構成情報テーブル43に格納して管理している。
また本実施形態では、同一クラスタ6内で各ストレージノード3のクラスタ制御部42が常に同一内容のシステム構成情報テーブル43を保持するための手段として、クラスタ6を構成する各ストレージノード3にそれぞれ搭載されたクラスタ制御部42の中から所定の方法により1つのクラスタ制御部42が代表クラスタ制御部42として選定される。
そして代表クラスタ制御部42は、定期的に他のストレージノード3のクラスタ制御部42から必要な情報を収集し、収集した情報に基づいて自己が管理するシステム構成情報テーブル43を必要に応じて更新すると共に、これら収集した情報をそのクラスタ6内の各ストレージノード3のクラスタ制御部42に転送する。かくして、この情報を受信した各クラスタ制御部42は、それぞれ自己が管理するシステム構成情報テーブル43を最新の状態に更新する。
なお、システム構成情報テーブル43の構成例を図6に示す。この図6からも明らかなように、システム構成情報テーブル43は、LUN欄43A、イニシエータID欄43B、制御ソフトモード欄43C、ストレージノードID欄43D、ターゲットID欄43E及びフォルトセットID欄43Fを備えて構成される。
そしてLUN欄43Aには、クラスタ6の各ストレージノード3内にそれぞれ作成された各仮想ボリュームVVOLにそれぞれ付与されたその仮想ボリュームVVOLのLUNがそれぞれ格納され、イニシエータID欄43Bには、対応する仮想ボリュームVVOLへのアクセスが許可されたイニシエータIT(図9)の識別子(イニシエータID)が格納される。
また制御ソフトモード欄43C、ストレージノードID欄43D、ターゲットID欄43E及びフォルトセットID欄43Fは、それぞれ対応する仮想ボリュームVVOLと対応付けられた冗長化グループ44を構成する各制御ソフト40のモード(アクティブモード又はパッシブモード)に対応させて区分されている。
そして制御ソフトモード欄43Cにおける区分された各欄には、それぞれ各制御ソフト40のモードの名称(アクティブモード又はパッシブモード)がそれぞれ格納され、ストレージID欄43Dにおける区分された各欄には、それぞれ対応するモードの制御ソフト40が配置されたストレージノード3に付与されたそのストレージノード3に固有の識別子(ストレージノードID)がそれぞれ格納される。
またターゲットID欄43Eにおける区分された各欄には、それぞれ対応するストレージノード3内に定義された、対応する仮想ボリュームVVOLが関連付けられたターゲットTG(図9)の識別子(ターゲットID)が格納される。
さらにフォルトセットID欄43Fにおける区分された各欄には、それぞれ対応するストレージノード3が属するフォルトセットに付与されたそのフォルトセットに固有の識別子(フォルトセットID)が格納される。ここで「フォルトセット」とは、電源系統やネットワークスイッチを共有するストレージノード3のグループを指す。冗長化グループ44を構成する各制御ソフト40が、それぞれ異なるフォルトセットに属するストレージノード3上で稼動するように制御ソフト40の配置先をそれぞれ選択することにより、より耐障害性の高い冗長化グループ44を構築することができる。
(3)パス管理機能
ところで、かかる構成を有する本実施形態の情報処理システム1では、上述のように冗長化グループ44内のアクティブモードに設定された制御ソフト40に障害が発生した場合に、その冗長化グループ44内のそれまでパッシブモードに設定されていた制御ソフト40がアクティブモードに切り替えられる。
この場合において、コンピュートノード2から仮想ボリュームVVOLまでのパスのうち、その仮想ボリュームVVOLに対するI/O要求を実際に処理する制御ソフト40(つまり、その仮想ボリュームVVOLと対応付けられた冗長化グループ44を構成する2つの制御ソフト40のうちのアクティブモードの制御ソフト40)が配置されたストレージノード3に接続されたパスPSが最短のパスとなる。
従って、上述のように冗長化グループ44のアクティブモードの制御ソフト40の障害等によりその冗長化グループ44のパッシブモードの制御ソフト40がアクティブモードに切り替えられた場合には、その仮想ボリュームVVOLまでのパスも、アクティブモードに切り替えられた制御ソフト40が配置されたストレージノード3に接続されたパスPSに切り替えることが好ましい。
しかしながら、マルチパスソフト31(図4)として既存のマルチパスソフトウェアを利用した場合、そのようなパスの切り替えを自動的に行うことができず、パッシブモードの制御ソフト40がアクティブモードに切り替えられたときに、コンピュートノード2から見たクラスタ6の応答性能が低下するという問題があった。また既存のマルチパスソフトウェアでは、仮想ボリュームVVOLまでのパスPSの数が減った場合に、自動的にパス数を増やすことができないという問題もあった。
そこで、本実施形態のコンピュートノード2には、マルチパスソフト31が仮想ボリュームVVOLまでのマルチパスを設定する際、その仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト40が配置されたストレージノード3と接続されたパスPSを最も優先度の高いパス(以下、これを第1優先パスと呼ぶ)として設定し、当該冗長化グループ44のパッシブモードに設定された制御ソフト40が配置されたストレージノード3までのパスPSを次に優先度の高いパス(以下、これを第2優先パスと呼ぶ)として設定する機能(以下、これをパス管理機能と呼ぶ)が搭載されている。
そしてマルチパスソフト31は、アプリケーション30(図4)から仮想ボリュームVVOLに対するI/O要求が与えられた場合には、その仮想ボリュームVVOLに設定された複数のパスPSのうち、そのとき利用可能な最も優先度が高いパスPSを介してそのI/O要求を対応するストレージノード3に送信する。
これにより本情報処理システム1では、冗長化グループ44のアクティブモードに設定された制御ソフト40等に障害が発生して当該冗長化グループ44のそれまでパッシブモードに設定されていた制御ソフト40がアクティブモードに切り替えられた場合においても、当該切り替え後の最短のパスを介してコンピュートノード2がその冗長化グループ44に対応付けられた仮想ボリュームVVOLにアクセスすることができる。
このようなパス管理機能を実現するための手段として、コンピュートノード2のメモリ12には、図4に示すように、上述したアプリケーション30及びマルチパスソフト31に加えて、マルチパス設定プログラム32及びマルチパス構成情報テーブル33が格納されている。
マルチパス設定プログラム32は、クラスタ6内に新たな仮想ボリュームVVOLが作成された場合などに、その仮想ボリュームVVOLと対応付けられた冗長化グループ44の構成情報を取得し、その仮想ボリュームVVOLへのマルチパスMPS(図9)の構成(各パスPSがそれぞれ接続するイニシエータIT及びターゲットTGイニシエータID及びターゲットIDや、各パスPSのパス優先度など)を策定したり、クラスタ6内のいずれかの冗長化グループ44の構成が変更された場合に、これに応じて対応するマルチパスMPSの新たな構成(以下、マルチパスMPSの構成をマルチパス構成と呼ぶ)を策定する機能を有するプログラムである。
実際上、マルチパス設定プログラム32は、図9に示すように、クラスタ6を構成するいずれかのストレージノード3内のクラスタ制御部(例えば代表クラスタ制御部)42に対して、各仮想ボリュームVVOLとそれぞれ対応付けられた冗長化グループ44の構成を定期的に問い合せる(S1)。
そして、この問合せを受けたクラスタ制御部42は、自ストレージノード3内で保持しているシステム構成情報テーブル43からその冗長化グループ44の構成情報を読み出し、これを問合わせ先のマルチパス設定プログラム32に返信する(S2)。
またマルチパス設定プログラム32は、このようにして取得したかかる冗長化グループ44の構成情報に基づいて、その仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト40が配置されたストレージノード3までのパスPSを第1優先パスに決定し、当該冗長化グループ44のパッシブモードに設定された制御ソフト40が配置されたストレージノード3までのパスを第2優先パスに決定する。
さらにマルチパス設定プログラム32は、例えば、1つの仮想ボリュームVVOLに対するパス数がマルチパスソフト31が対応可能な最大のパス数よりも少ない場合など、設定可能なパス数に余裕がある場合には、第1優先パス及び第2優先パスに加えて冗長パスも決定する。この際、マルチパス設定プログラム32は、その仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト40が配置されたストレージノード3と、当該冗長化グループ44のパッシブモードに設定された制御ソフト40が配置されたストレージノード3とのいずれのストレージノード3も属さないフォルトセットに所属するストレージノード3と接続されたパスPSの中から1つのパスPSを選択し、そのパスPSを冗長パスとして決定する。
そしてマルチパス設定プログラム32は、上述のようにして第1優先パス及び第2優先パスと、可能な場合の冗長パスとを決定すると、決定したこれらパスPSに関する必要な情報を、その仮想ボリュームVVOLと対応付けてマルチパス構成情報としてマルチパス構成情報テーブル33に登録する(S3)。
かくして、マルチパスソフト31は、このマルチパス構成情報テーブル33に登録された仮想ボリュームVVOLのマルチパス構成情報に基づいて、その仮想ボリュームVVOLまでのマルチパスMPSを設定する(S4)。
またマルチパスソフト31は、この後、その仮想ボリュームVVOLと対応付けられた冗長化グループ44のそれまでアクティブモードに設定されていた制御ソフト40又はその制御ソフト40が配置されたストレージノード3に障害が発生した場合などには、図10に示すように、これ以降使用するパスをパス優先度が「第2優先」に設定されたパス(第2優先パス)PSに切り替える一方、図11に示すように、さらに第2優先パスも使用できなくなった場合には、これ以降使用するパスをパス優先度が「冗長パス」に設定されたパス(冗長パス)PSに切り替える。
なお、マルチパス構成情報テーブル33の構成例を図7に示す。上述のようにマルチパス構成情報テーブル33は、マルチパス設定プログラム32により策定された、各仮想ボリュームVVOLへのマルチパスMPSの構成情報(以下、これをマルチパス構成情報と呼ぶ)を保持するために利用されるテーブルである。
マルチパス構成情報テーブル33は、図7に示すように、LUN欄33A、パス優先度欄33B、OS認識パスID欄33C、イニシエータID欄33D及びターゲットID欄33Eを備えて構成される。そしてLUN欄33Aには、クラスタ6内に設定された仮想ボリュームVVOLのLUNが格納される。
また、パス優先度欄33B、OS認識パスID欄33C、イニシエータID欄33D及びターゲットID欄33Eは、それぞれ対応する仮想ボリュームVVOLに対して設定されたマルチパスを構成する各パスにそれぞれ対応させて区分されている。
そしてイニシエータ欄33Dの区分された各欄には、それぞれ対応するパスPSが接続された自コンピュートノード2内のイニシエータITのイニシエータIDが格納され、ターゲットID欄33Eには、クラスタ6内の各ストレージノード3のポートに対して定義されたターゲットTGのうち、マルチパスソフト31により設定された対応するパスPSが接続されるターゲットTGの識別子(ターゲットID)が格納される。
またOS認識パスID欄33Cには、対応するパスPSに付与された、自コンピュートノード2のOSが認識するそのパスPSの識別子(OS認識パスID)が格納され、パス優先度欄33Bには、対応するパスPSに対して設定されたそのパスPSのパス優先度が格納される。
従って、図7の例では、対応するコンピュートノード2から「0」というLUNの仮想ボリュームまでのパスPSとして、「1」というイニシエータIDのイニシエータIT及び「1」というターゲットIDのターゲットTG間を接続し、OSが「a」というパスIDで認識しているパスPSと、「1」というイニシエータIDのイニシエータIT及び「2」というターゲットIDのターゲットTG間を接続し、OSが「b」というパスIDで認識しているパスPSと、「1」というイニシエータIDのイニシエータIT及び「3」というターゲットIDのターゲットTG間を接続し、OSが「c」というパスIDで認識しているパスPSとが存在することが示されている。
また図7では、OS認識パスIDが「a」のパスのパス優先度は「第1優先」に設定され、OS認識パスIDが「b」のパスのパス優先度は「第2優先」に設定され、OS認識パスIDが「c」のパスのパス優先度は「冗長」に設定されていることも併せて示されている。なお、「第1優先」は最も高いパス優先度であり、「第2優先」は次に高いパス優先度である。また「冗長」は、「第2優先」の次に高いパス優先であり、パス優先度が「冗長」に設定されたパスは冗長パスとして利用される。
一方、本情報処理システム1では、上述のように冗長化グループ44のそれまでパッシブモードに設定されていた制御ソフト40がアクティブモードに切り替えられた場合には、新たな制御ソフト40がパッシブモードで起動されて、かかるアクティブモードに切り替えられた制御ソフト40と、かかるパッシブモードで起動された新たな制御ソフト40とによって新たな冗長化グループ44が構成されるなど、各仮想ボリュームVVOLにそれぞれ対応付けられた冗長化グループ44の構成が適宜変更される。
そこでマルチパス設定プログラム32は、上述のように仮想ボリュームVVOLに対するマルチパスMPSを設定した後もクラスタ6内の各冗長化グループ44の構成を監視する。具体的には、マルチパス設定プログラム32は、上述と同様にしてクラスタ6内のいずれかのクラスタ制御部(例えば、代表クラスタ制御部)42に対して各冗長化グループ44の構成を定期的に問い合せる。そしてマルチパス設定プログラム32は、かかる問合せに対するクラスタ制御部42からの応答に基づいて、いずれかの冗長化グループ44の構成変更を検出した場合には、これに応じてマルチパス構成情報テーブル33を更新する。
例えば、LUNが「0」の仮想ボリュームVVOLへのマルチパスMPSの構成が図7のような状態であった場合において、その仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト40又は当該制御ソフト40が配置されたストレージノード3に障害が発生するなどして、それまでパッシブモードに設定されていた制御ソフト40がアクティブモードに切り替えられたことをマルチパス設定プログラム32が検出した場合には、マルチパス構成情報テーブル33におけるその仮想ボリュームVVOLへのマルチパスMPSの構成を例えば図8のように更新する。
図7及び図8の比較からも分かるように、かかる場合には、それまでパス優先度が「第2優先」に設定されていたパス(第2優先パス)PSのパス優先度が「第1優先」に変更される。また図8では、第2優先パスとして、「1」というイニシエータIDのイニシエータIT及び「4」というターゲットIDのターゲットTG間を接続し、OSが「d」というパスIDで認識しているパスPSが設定された例が示されている。
(4)パス管理機能に関する各種処理
次に、上述したパス管理機能に関連して実行される各種処理の具体的な処理内容について説明する。
(4−1)マルチパス設定処理
図12は、かかるパス管理機能に関連してコンピュートノード2のマルチパス設定プログラム32により定期的に実行されるマルチパス設定処理の処理手順を示す。マルチパス設定プログラム32は、この図12に示す処理手順に従って、クラスタ6内に存在するマルチパスMPSが未設定の仮想ボリュームVVOL又は対応する冗長化グループ44の構成が変更された仮想ボリュームVVOLへのマルチパスMPSを策定し、又は策定されたマルチパスMPSの構成を更新する。
実際上、マルチパス設定プログラム32は、このマルチパス設定処理を開始すると、まず、いずれかのストレージノード3内のクラスタ制御部(例えば、代表クラスタ制御部)42(図5)に対し、自コンピュートノード2内に定義されたすべてのイニシエータITのイニシエータIDを特定して、自コンピュートノード2が利用可能な各仮想ボリュームVVOLに関するシステム構成情報(システム構成情報テーブル43におけるその仮想ボリュームVVOLに対応付けられた冗長化グループ44の構成情報)を問い合せる(S10)。
かくして、この問合わせを受けたクラスタ制御部42は、図13について後述するように、そのコンピュートノード2が利用可能な各仮想ボリュームVVOLに関する上述のシステム構成情報をシステム構成情報テーブル43から読み出してマルチパス設定プログラム32に転送する。
続いて、マルチパス設定プログラム32は、ステップS10で取得したシステム構成情報に基づいて、自コンピュートノード2が利用可能な仮想ボリュームVVOLの中から1つの仮想ボリュームVVOLを選択する(S11)。以下においては、この仮想ボリュームVVOLを対象仮想ボリュームVVOLと呼ぶ。
次いで、マルチパス設定プログラム32は、対象仮想ボリュームVVOLへのマルチパスMPSがマルチパス構成情報テーブル33(図7)に未登録、又は、アクティブモードやパッシブモードの制御ソフト40が存在するストレージノード3が変化したなど、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44の構成に何らかの変化があったか否かを判断する(S12)。この判断は、ステップS10で取得した対象仮想ボリュームVVOLに関連するシステム構成情報と、その対象仮想ボリュームVVOLについてシステム構成情報テーブル43(図6)やマルチパス構成情報テーブル33(図7)に登録されている内容とを比較することにより行われる。
そしてマルチパス設定プログラム32は、ステップS12の判断で否定結果を得るとステップS15に進む。またマルチパス設定プログラム32は、ステップS12の判断で肯定結果を得ると、対象仮想ボリュームVVOLへのマルチパスMPSに関するマルチパス構成情報がマルチパス構成情報テーブル33に登録されていない場合には、当該マルチパス構成情報をマルチパス構成情報テーブル33に新規に登録し、対象仮想ボリュームVVOLへのマルチパス構成情報がマルチパス構成情報テーブル33に登録されている場合には、そのマルチパス構成情報を現在の状況に併せて更新する(S13)。
またマルチパス設定プログラム32は、ステップS13で新規登録又は更新した対象仮想ボリュームVVOLに関するマルチパス構成情報に基づいて、自コンピュートノード2におけるその対象仮想ボリュームVVOLと関連付けられたイニシエータITからその対象仮想ボリュームVVOLまでのマルチパスMPSの新規設定又は設定更新をマルチパスソフト31(図4)に指示する(S14)。
続いて、マルチパス設定プログラム32は、ステップS10で取得したシステム構成情報に基づいて、クラスタ6内の自コンピュートノード2が利用可能なすべての仮想ボリュームVVOLについてステップS12〜ステップS14の処理を実行し終えたか否かを判断する(S15)。そしてマルチパス設定プログラム32は、この判断で否定結果を得るとステップS11に戻り、この後、ステップS11で選択する対象仮想ボリュームVVOLを、ステップS12〜ステップS14の処理が未処理の他の該当する仮想ボリュームVVOLに順次切り替えながら、ステップS11〜ステップS15の処理を繰り返す。
そしてマルチパス設定プログラム32は、クラスタ6内の自コンピュートノード2が利用可能なすべての仮想ボリュームVVOLについてステップS12〜ステップS14の処理を実行し終えることによりステップS15で肯定結果を得ると、このマルチパス設定処理を終了する。
(4−2)システム構成情報送信処理
図13は、図12について上述したマルチパス設定処理のステップS10でコンピュートノード2のマルチパス設定プログラム32からの問合せを受領したクラスタ制御部(例えば代表クラスタ制御部)42により実行されるシステム構成情報送信処理を示す。
クラスタ制御部42は、かかる問合せがマルチパス設定プログラム32から与えられると、この図13に示すシステム構成情報送信処理を開始し、まず、問合せ元のコンピュートノード2内に定義されたすべてのイニシエータITのイニシエータIDを確認する(S20)。
続いて、クラスタ制御部42は、システム構成情報テーブル43(図6)を参照して、ステップS20で確認したイニシエータIDの中から1つのイニシエータIDを選択し(S21)、選択したイニシエータIDのイニシエータITから利用可能なすべての仮想ボリュームVVOLを検出し、検出した仮想ボリュームVVOLの中から1つの仮想ボリュームVVOLを選択する(S22)。
具体的に、クラスタ制御部42は、システム構成情報テーブル43のレコード(行)のうち、イニシエータID欄43B(図6)にステップS21で選択したイニシエータIDが格納されたレコードに対応する仮想ボリュームVVOLの中から1つの仮想ボリュームVVOLを選択する。
次いで、クラスタ制御部42は、ステップS22で選択した仮想ボリュームVVOLと対応付けられている冗長化グループ44でアクティブモードに設定された制御ソフト40の位置情報として、その制御ソフト40が配置されたストレージノード3のストレージノードIDと、その仮想ボリュームVVOLと対応付けられたターゲットTGのターゲットIDとを取得する(S23)。
具体的に、クラスタ制御部42は、システム構成情報テーブル43を参照して、ステップS22で選択した仮想ボリュームVVOLのLUNがLUN欄43Aに格納されたレコードであって、制御ソフトモード欄43Cの区分された欄に「アクティブ(Active)」が格納されているレコードを特定し、そのレコードのストレージID欄43D(図6)及びターゲットID欄43E(図6)にそれぞれ格納されているストレージID及びターゲットIDを取得する。
またクラスタ制御部42は、ステップS22で選択した仮想ボリュームVVOLと対応付けられている冗長化グループ44でパッシブモードに設定された制御ソフト40の位置情報として、その制御ソフト40が配置されたストレージノード3のストレージノードIDと、その仮想ボリュームVVOLと対応付けられたターゲットTGのターゲットIDとを取得する(S24)。
具体的に、クラスタ制御部42は、システム構成情報テーブル43を参照して、ステップS22で選択した仮想ボリュームVVOLのLUNがLUN欄43Aに格納されたレコードであって、制御ソフトモード欄43Cの区分された欄に「パッシブ(Passive)」が格納されているレコードを特定し、そのレコードのストレージID欄43D(図6)及びターゲットID欄43E(図6)にそれぞれ格納されているストレージID及びターゲットIDを取得する。
さらにクラスタ制御部42は、ステップS22で選択した仮想ボリュームVVOLへの冗長パスの接続先となり得るターゲットTGの位置情報として、そのターゲットTGが定義されたストレージノード3のストレージノードIDと、そのターゲットTGのターゲットIDとを取得する(S25)。
具体的に、クラスタ制御部42は、システム構成情報テーブル43におけるステップS23で特定したレコードのフォルトセットID欄43F(図6)に格納されているフォルトセットIDが付与されたフォルトセットと、システム構成情報テーブル43におけるステップS24で特定したレコードのフォルトセットID欄43Fに格納されているフォルトセットIDが付与されたフォルトセットとのいずれにも属さないストレージノード3の中から、例えば、負荷が最も少ない1つのストレージノード3を選択する。そしてクラスタ制御部42は、選択したストレージノード3のストレージノードIDと、そのストレージノード3内に定義されたターゲットTGのターゲットIDとをシステム構成情報テーブル43から取得する。
続いて、クラスタ制御部42は、ステップS21で選択したイニシエータITから利用可能なすべての仮想ボリュームVVOLについて、ステップS22以降の処理を実行し終えたか否かを判断する(S26)。
クラスタ制御部42は、この判断で否定結果を得るとステップS22に戻り、この後、ステップS22で選択する仮想ボリュームVVOLを、該当する仮想ボリュームVVOLのうちのステップS23以降が未処理の仮想ボリュームVVOLに順次切り替えながら、ステップS22〜ステップS26の処理を繰り返す。
そしてクラスタ制御部42は、やがてステップS21で選択したイニシエータITから利用可能なすべての仮想ボリュームVVOLについてステップS22以降の処理を実行し終えることによりステップS26で肯定結果を得ると、ステップS20で確認したすべてのイニシエータIDについてステップS22以降の処理を実行し終えたか否かを判断する(S27)。
クラスタ制御部42は、この判断で否定結果を得るとステップS21に戻り、この後、ステップS21で選択するイニシエータIDを、該当するイニシエータIDのうちのステップS22以降が未処理のイニシエータIDに順次切り替えながら、ステップS21〜ステップS27の処理を繰り返す。
そしてクラスタ制御部42は、やがてステップS20で確認したすべてのイニシエータIDについてステップS21以降の処理を実行し終えることによりステップS27で肯定結果を得ると、それまでのステップS20〜ステップS27の処理により得られたすべての情報を問合せ先のコンピュートノード2のマルチパス設定プログラム32(図4)に送信し(S28)、この後、このシステム構成情報送信処理を終了する。
(4−3)マルチパス構成情報登録処理
一方、図14は、図12について上述したマルチパス設定処理のステップS13においてマルチパス設定プログラム32(図4)により実行されるマルチパス構成情報登録処理の処理内容を示す。マルチパス設定プログラム32は、この図14に示す処理手順に従って、対象仮想ボリュームVVOLへのマルチパスMPSの構成情報をマルチパス構成情報テーブル33(図7)に登録する。
実際上、マルチパス設定プログラム32は、マルチパス設定処理のステップS13に進むとこの図14に示すマルチパス構成情報登録処理を開始し、まず、マルチパス設定処理のステップS10で取得したシステム構成情報に基づいて、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト(以下、これを対象仮想ボリュームVVOLの対応アクティブ制御ソフトと呼ぶ)40が配置されたストレージノード3内に定義されたターゲットTGのうち、対象仮想ボリュームVVOLと対応付けられたターゲットTGにログインする(S30)。
このログインにより、このターゲットTGを介して利用可能なすべての仮想ボリュームVVOLについて、その仮想ボリュームVVOLへのパスPS(図9)に関する必要な情報が初期状態の図示しないパスリストに登録される。ここで、マルチパス構成情報テーブル33に登録される「必要な情報」とは、マルチパス構成情報テーブル33のレコードのパス優先度欄33B(図7)に格納するパス優先度以外の情報である。以下においても同様である。なお、マルチパス設定プログラム32がかかるターゲットTGにログイン済みの場合には、このステップS30の処理はスキップされる。
続いて、マルチパス設定プログラム32は、マルチパス設定処理のステップS10で取得したシステム構成情報に基づいて、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44のパッシブモードに設定された制御ソフト(以下、これを対象仮想ボリュームの対応パッシブ制御ソフトと呼ぶ)40が配置されたストレージノード3内に定義されたターゲットTGのうち、対象仮想ボリュームVVOLと対応付けられたターゲットTGにログインする(S31)。
このログインにより、このターゲットTGを介して利用可能なすべての仮想ボリュームVVOLについて、その仮想ボリュームVVOLへのパスPSに関する必要な情報が上述のパスリストに登録される。なお、マルチパス設定プログラム32がかかるターゲットTGにログイン済みの場合には、このステップS31の処理はスキップされる。
次いで、マルチパス設定プログラム32は、ステップS30及びステップS31でパスリストに登録したパスのうち、対象仮想ボリュームVVOL以外の仮想ボリュームVVOLへのパスを当該パスリストから削除する(S32)。またマルチパス設定プログラム32は、この後、対象仮想ボリュームVVOLへのパス数に余裕があるか否かを判断する(S33)。
そしてマルチパス設定プログラム32は、この判断で否定結果を得ると、ステップS35に進む。これに対して、マルチパス設定プログラム32は、ステップS33の判断で肯定結果を得ると、マルチパス設定処理(図12)のステップS10で取得した冗長パス候補の位置情報(図13のステップS25の説明を参照)に基づいて、かかる冗長パス設定候補に対応するターゲットTGにログインする(S34)。
このログインにより、このターゲットTGを介して利用可能なすべての仮想ボリュームVVOLへのパスPSに関する必要な情報が上述のパスリストに登録される。なお、マルチパス設定プログラム32がかかるターゲットTGにログイン済みの場合には、このステップS34の処理はスキップされる。
続いて、マルチパス設定プログラム32は、ステップS34においてパスリストに登録したパスのうち、対象仮想ボリュームVVOL以外の仮想ボリュームVVOLへのパスを当該パスリストから削除する(S35)。この結果、ステップS30〜ステップS35の処理によりパスリストには、対象仮想ボリュームVVOLに関して、以下の(PS1)〜(PS3)の3種類のパスに関する情報が登録されている状態となる。
(PS1)対象仮想ボリュームVVOLの対応アクティブ制御ソフト40が稼動するストレージノード3内に定義されたターゲットTGのうち対象仮想ボリュームVVOLと対応付けられたターゲットTGと、自コンピュートノード2の対応するイニシエータITとの間を接続するパス
(PS2)対象仮想ボリュームVVOLの対応パッシブ制御ソフト40が稼動するストレージノード3内に定義されたターゲットTGのうち対象仮想ボリュームVVOLと対応付けられたターゲットTGと、自コンピュートノード2の当該イニシエータITとの間を接続するパス
(PS3)システム構成情報送信処理(図13)のステップS25で位置情報が取得された冗長パス候補のパス
次いで、マルチパス設定プログラム32は、ステップS30〜ステップS35の処理によりパスリストに登録されている各パスに関する必要な情報をマルチパス構成情報テーブル33に登録すると共に(S36)、これらパスにそれぞれパス優先度を設定し(S37)、この後、このマルチパス構成情報登録処理を終了してマルチパス設定処理(図12)に戻る。
(4−4)パス優先度設定処理
図15は、図14について上述したマルチパス構成情報登録処理のステップS37においてマルチパス設定プログラム32により実行されるパス優先度設定処理の処理手順を示す。マルチパス設定プログラム32は、この図15に示す処理手順に従って、上述のパスリストに登録されている各パスに関する必要な情報をマルチパス構成情報テーブル33(図7)に登録すると共に、これらの各パスに対してパス優先度をそれぞれ設定する。
実際上、マルチパス設定プログラム32は、ストレージノード3の各制御ソフト40がSCSI(Small Computer System Interface)のALUA(Asymmetric Logical Unit Access)規格に対応しているか否かを判断する(S40)。この判断は、マルチパス設定プログラム32が各ストレージノード3の対応する制御ソフト40に問い合わせ、そのとき得られた応答に基づいて行われる。
そしてマルチパス設定プログラム32は、この判断で肯定結果を得ると、自コンピュートノード2内のマルチパスソフト31(図4)と協力して、直前のマルチパス構成情報登録処理(図14)のステップS36の処理でマルチパス構成情報テーブル33に必要な情報を登録した各パスPS(図9)のパス優先度をそのパスPSのALUAのステート(State)に応じたパス優先度に決定し、決定したこれらパスPSのパス優先度をマルチパス構成情報テーブル33の対応するエントリのパス優先度欄33B(図7)に登録する(S41)。そしてマルチパス設定プログラム32は、この後、このパス優先度設定処理を終了してマルチパス構成情報登録処理(図14)に戻る。
これに対して、マルチパス設定プログラム32は、ステップS40の判断で否定結果を得ると、直前のマルチパス構成情報登録処理(図14)のステップS36の処理でマルチパス構成情報テーブル33に必要な情報を登録した各パスPSに対して、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44を構成する各制御ソフト40の配置位置に応じたパス優先度をそれぞれ設定する(S42)。そしてマルチパス設定プログラム32は、この後、このパス優先度設定処理を終了してマルチパス構成情報登録処理(図14)に戻る。
(4−5)ALUA利用パス優先度設定処理
図16は、図15について上述したパス優先度設定処理のステップS41においてマルチパス設定プログラム32により実行される処理(以下、これをALUA利用パス優先度設定処理と呼ぶ)の具体的な処理内容を示す。
マルチパス設定プログラム32は、パス優先度設定処理のステップS41に進むとこの図16に示すALUA利用パス優先度設定処理を開始し、まず、図14について上述したマルチパス構成情報登録処理により上述のパスリストに登録されている各パスに対して、ALUAのステート(State)に応じた優先度を設定するようマルチパスソフト31に指示を与える(S50)。
そして、この指示を受領したマルチパスソフト31は、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44を構成する各制御ソフト40と、冗長パスPSが接続されるターゲットTGを有するストレージノード3内の当該ターゲットTGと接続された制御ソフト40とに対してストレージサービスネットワーク4を介してReport Target Port Groupsコマンドを送信することにより、対応するパスPSのALUAのステートをそれぞれ問い合せる(S51)。
かくして、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト40は、かかるReport Target Port Groupsコマンドを受領すると、対応するパス(対応するコンピュートノード2のイニシエータITと、その制御ソフト40が配置されたストレージノード3内の対象仮想ボリュームVVOLと対応付けられたターゲットTGとを接続するパス)PSのALUAのステートとして、そのパスPSが最高のパフォーマンスが得られるパスであり、I/Oを完了するために上位レベルでのリダイレクトが不要であることを意味する「Active/Optimized」を返信する(S52)。
これに対して、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44のパッシブモードに設定された制御ソフト40は、かかるReport Target Port Groupsコマンドを受領すると、対応するパスPSのALUAのステートとして、I/Oを完了するために上位レベルでのリダイレクトが必要であることを意味する「Active/Non-optimized」を返信する(S52)。
また冗長パスPSと接続されたストレージノード3のReport Target Port Groupsコマンドを受領した制御ソフト40は、その冗長パスPSのALUAのステートとして、サポートされていない状態であることを意味する「Standby」を返信する(S52)。
そしてマルチパスソフト31は、これら制御ソフト40からの応答に基づき、各パスPSのALUAのステートに応じて、図14について上述したマルチパス構成情報登録処理によりマルチパス構成情報テーブル33(図7)に登録された各パスPSに対してパス優先度をそれぞれ設定する(S53)。
具体的に、マルチパスソフト31は、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト40が配置されたストレージノード3を経由するパスPSについてはパス優先度を最も高く設定すべく、マルチパス構成情報テーブル33における対応するレコード(イニシエータID欄33Dに自コンピュートノード2のイニシエータITのイニシエータIDが登録され、ターゲットID欄33Eにそのストレージノード3に定義された対応するターゲットTGのターゲットIDが格納されたレコード)のパス優先度欄33Bに、そのパスPSが第1優先パスであることを意味する「第1優先」を格納する。
またマルチパスソフト31は、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44のパッシブモードに設定された制御ソフト40が配置されたストレージノード3を経由するパスPSについてはパス優先度を次に高く設定すべく、マルチパス構成情報テーブル33における対応するレコードのパス優先度欄33Bに、そのパスPSが第2優先パスであることを意味する「第2優先」を格納する。
さらにマルチパスソフト31は、冗長パスPSについては、パス優先度を第2優先パスの次に高く設定すべく、マルチパス構成情報テーブル33における対応するレコードのパス優先度欄33Bに、そのパスPSが冗長パスであることを意味する「冗長」を格納する。
そしてマルチパス設定プログラム32は、上述のようにしてマルチパスソフト31が各パスPSのパス優先度を設定し終えると、このALUA利用パス優先度設定処理を終了してパス優先度設定処理(図15)に戻る。
(4−6)ALUA非利用パス優先度設定処理
一方、図17は、図15について上述したパス優先度設定処理のステップS42においてマルチパス設定プログラム32により実行される処理(以下、これをALUA非利用パス優先度設定処理と呼ぶ)の具体的な処理内容を示す。
マルチパス設定プログラム32は、パス優先度設定処理のステップS42に進むとこの図17に示すALUA非利用パス優先度設定処理を開始し、まず、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44を構成する制御ソフト40のうち、アクティブモードに設定された制御ソフト40が配置されたストレージノード3に定義された対応するターゲットTGへのパスPSについては、パス優先度を最も高い優先度に設定する(S60)。
具体的に、マルチパス設定プログラム32は、マルチパス構成情報テーブル33における対応するレコード(イニシエータID欄33Dに自コンピュートノード2のイニシエータITのイニシエータIDが登録され、ターゲットID欄33Eにそのストレージノード3に定義された対応するターゲットTGのターゲットIDが格納されたレコード)のパス優先度欄33Bに「第1優先」を格納する。
またマルチパス設定プログラム32は、対象仮想ボリュームVVOLと対応付けられた冗長化グループ44を構成する制御ソフト40のうち、パッシブモードに設定された制御ソフト40が配置されたストレージノード3に定義された対応するターゲットTGへのパスPSについては、パス優先度を次に高い優先度に設定する(S61)。具体的に、マルチパス設定プログラム32は、マルチパス構成情報テーブル33における対応するレコードのパス優先度欄33Bに「第2優先」を格納する。
さらにマルチパス設定プログラム32は、マルチパス構成情報テーブル33におけるそのとき冗長パスに選定されたパスPSに対応するレコードのパス優先度欄33Bに「冗長」を格納する(S62)。
そしてマルチパス設定プログラム32は、この後、このALUA非利用パス優先度設定処理を終了してパス優先度設定処理に戻る。
(5)本実施形態の効果
以上のように本実施形態の情報処理システム1では、仮想ボリュームVVOLへのマルチパスMPSを設定する際、その仮想ボリュームVVOLと対応付けられた冗長化グループ44のアクティブモードに設定された制御ソフト40が配置されたストレージノード3の対応するターゲットTGと接続されたパスPSを第1優先パスに設定し、当該冗長化グループ44のパッシブモードに設定された制御ソフト40が配置されたストレージノード3の対応するターゲットTGと接続されたパスPSを第2優先パスに設定する。
従って、冗長化グループ44においてアクティブモードに設定されていた制御ソフト40又はその制御ソフト40が配置されたストレージノード3に障害が発生し、その冗長化グループ44においてパッシブモードに設定されていた制御ソフト40がアクティブモードに切り替えられた場合においても、コンピュートノード2がそのとき最短のパスPSを経由して仮想ボリュームVVOLにアクセスすることができる。
よって、冗長化グループ44において、かかるモードの切り替え(その冗長化グループ44を構成する制御ソフト40のパッシブモードからアクティブモードへの切り替え)が発生した場合においても、コンピュートノード2から見たクラスタ6の応答性能が低下するのを未然かつ有効に防止することができ、かくして耐障害性の高いマルチパスMPSを設定することができる。
また本情報処理システム1では、1つのコンピュートノード2から必要なターゲットTGに対してのみパスPSを設定するため、例えば、パスで利用する通信規格がiSCSIの場合においても利用していないパスPSに流れ続ける不要なパケット数が少なく、その分、そのパケットによってストレージサービスネットワーク4のネットワーク帯域が浪費されるのを最低限に抑制することもできる。
(6)他の実施形態
なお上述の実施形態においては、本発明を図1のように構成された情報処理システム1に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の情報処理システムに広く適用することができる。
また上述の実施の形態においては、ストレージノード3において、コンピュートノード2からのI/O要求を処理する制御部(制御ソフト40)をソフトウェア構成とするようにした場合について述べたが、本発明はこれに限らず、かかる制御部をハードウェア構成とするようにしてもよい。
本発明は、例えば、1又は複数のSDSが実装された複数のストレージノードを備える情報処理システムに適用することができる。
1……情報処理システム、2……コンピュートノード、3……ストレージノード、11,21……CPU、30……アプリケーション、31……マルチパスソフト、32……マルチパス設定プログラム、33……マルチパス構成情報テーブル、40……制御ソフト、41……構成情報、42……クラスタ制御部、43……システム構成情報テーブル、44……冗長化グループ、IT……イニシエータ、LU……論理ユニット、MPS……マルチパス、PS……パス、TG……ターゲット、VVOL……仮想ボリューム。

Claims (8)

  1. 情報処理システムにおいて、
    それぞれ1又は複数の記憶装置が搭載された1又は複数のストレージノードと、
    前記ストレージノードにデータを読み書きする1又は複数のコンピュートノードと
    を有し、
    前記ストレージノードには、1又は複数の制御部がそれぞれ配置され、
    異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、前記記憶装置から記憶領域が提供される1又は複数のボリュームが前記冗長化グループに対応付けられ、
    前記冗長化グループを構成する一部の前記制御部が前記コンピュートノードからの前記要求を受け付けるアクティブモードに設定され、当該冗長化グループを構成する残りの前記制御部が当該要求を受け付けないパッシブモードに設定され、
    前記アクティブモードに設定された前記制御部は、自己が構成する前記冗長化グループと対応付けられた前記ボリュームを対象とする前記コンピュートノードからの要求に応じて当該ボリュームにデータを読み書きし、前記パッシブモードに設定された前記制御部は、前記アクティブモードに設定された前記制御部が前記コンピュートノードからの要求を処理できなくなった場合にアクティブモードに切り替えられ、
    前記コンピュートノードは、
    各前記冗長化グループの構成を前記ストレージノードに問い合せ、取得した各前記冗長化グループの構成に基づいて、自コンピュートノードから前記ボリュームへのパスを複数設定すると共に各前記パスに優先順位をそれぞれ設定し、
    前記ボリュームに対する前記要求を、対応する前記ボリュームへの前記パスのうちの前記優先順位が最も高い利用可能な前記パスを利用して対応する前記ストレージノードに送信し、
    前記コンピュートノードは、
    自コンピュートノードから前記ボリュームへのパスを複数設定する際、当該ボリュームと対応付けられた前記冗長化グループを構成する前記アクティブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を最も高く設定し、当該冗長化グループを構成する前記パッシブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を次に高く設定する
    ことを特徴とする情報処理システム。
  2. 前記コンピュートノードは、
    自コンピュートノードから前記仮想ボリュームへの前記パスのパス数に余裕がある場合には、当該仮想ボリュームと対応付けられた前記冗長化グループを構成する各前記制御部のいずれも配置されていない前記ストレージノードを経由する前記パスを冗長パスとして設定する
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記コンピュートノードは、
    各前記ストレージノードがそれぞれ属するフォルトセットを管理し、
    前記冗長パスを設定する際、対応する前記冗長化グループを構成するいずれの前記制御部も配置されていない前記ストレージノードであって、当該冗長化グループを構成するいずれかの前記制御部が配置された各前記ストレージノードがそれぞれ属する前記フォルトセットとは異なる前記フォルトセットに属する前記ストレージノードを経由する前記パスを前記冗長パスとして設定する
    ことを特徴とする請求項2に記載の情報処理システム。
  4. 前記コンピュートノードは、
    自コンピュートノードが前記ストレージノードとの間の最適化されたパスを特定するためのプロトコルに対応している場合には、対応する前記仮想ボリュームへの各前記パスの優先度を、それぞれ当該プロトコルのステートに応じて設定する
    ことを特徴とする請求項3に記載の情報処理システム。
  5. 情報処理システムにおいて実行されるパス管理方法であって、
    前記情報処理システムは、
    それぞれ1又は複数の記憶装置が搭載された1又は複数のストレージノードと、
    前記ストレージノードにデータを読み書きする1又は複数のコンピュートノードと
    を有し、
    前記ストレージノードには、1又は複数の制御部がそれぞれ配置され、
    異なる前記ストレージノードに実装された複数の前記制御部が冗長化グループとして管理されると共に、前記記憶装置から記憶領域が提供される1又は複数のボリュームが前記冗長化グループに対応付けられ、
    前記冗長化グループを構成する一部の前記制御部が前記コンピュートノードからの前記要求を受け付けるアクティブモードに設定され、当該冗長化グループを構成する残りの前記制御部が当該要求を受け付けないパッシブモードに設定され、
    前記アクティブモードに設定された前記制御部は、自己が構成する前記冗長化グループと対応付けられた前記ボリュームを対象とする前記コンピュートノードからの要求に応じて当該ボリュームにデータを読み書きし、前記パッシブモードに設定された前記制御部は、前記アクティブモードに設定された前記制御部が前記コンピュートノードからの要求を処理できなくなった場合にアクティブモードに切り替えられ、
    前記コンピュートノードが、各前記冗長化グループの構成を前記ストレージノードに問い合せ、取得した各前記冗長化グループの構成に基づいて、自コンピュートノードから前記ボリュームへのパスを複数設定すると共に各前記パスに優先順位をそれぞれ設定する第1のステップと、
    前記ボリュームに対する前記要求を、対応する前記ボリュームへの前記パスのうちの前記優先順位が最も高い利用可能な前記パスを利用して対応する前記ストレージノードに送信する第2のステップと
    を備え、
    前記第1のステップにおいて、前記コンピュートノードは、
    自コンピュートノードから前記ボリュームへのパスを複数設定する際、当該ボリュームと対応付けられた前記冗長化グループを構成する前記アクティブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を最も高く設定し、当該冗長化グループを構成する前記パッシブモードの前記制御部が配置された前記ストレージノードと接続された前記パスの前記優先順位を次に高く設定する
    ことを特徴とするパス管理方法。
  6. 前記第1のステップにおいて、前記コンピュートノードは、
    自コンピュートノードから前記仮想ボリュームへの前記パスのパス数に余裕がある場合には、当該仮想ボリュームと対応付けられた前記冗長化グループを構成する各前記制御部のいずれも配置されていない前記ストレージノードを経由する前記パスを冗長パスとして設定する
    ことを特徴とする請求項5に記載のパス管理方法。
  7. 前記コンピュートノードは、
    各前記ストレージノードがそれぞれ属するフォルトセットを管理し、
    前記第1のステップにおいて、前記コンピュートノードは、
    前記冗長パスを設定する際、対応する前記冗長化グループを構成するいずれの前記制御部も配置されていない前記ストレージノードであって、当該冗長化グループを構成するいずれかの前記制御部が配置された各前記ストレージノードがそれぞれ属する前記フォルトセットとは異なる前記フォルトセットに属する前記ストレージノードを経由する前記パスを前記冗長パスとして設定する
    ことを特徴とする請求項6に記載のパス管理方法。
  8. 前記第1のステップにおいて、前記コンピュートノードは、
    自コンピュートノードが前記ストレージノードとの間の最適化されたパスを特定するためのプロトコルに対応している場合には、対応する前記仮想ボリュームへの各前記パスの優先度を、それぞれ当該プロトコルのステートに応じて設定する
    ことを特徴とする請求項7に記載のパス管理方法。
JP2018074265A 2018-04-06 2018-04-06 情報処理システム及びパス管理方法 Active JP6814764B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018074265A JP6814764B2 (ja) 2018-04-06 2018-04-06 情報処理システム及びパス管理方法
US16/298,619 US20190310925A1 (en) 2018-04-06 2019-03-11 Information processing system and path management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018074265A JP6814764B2 (ja) 2018-04-06 2018-04-06 情報処理システム及びパス管理方法

Publications (2)

Publication Number Publication Date
JP2019185328A true JP2019185328A (ja) 2019-10-24
JP6814764B2 JP6814764B2 (ja) 2021-01-20

Family

ID=68097158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018074265A Active JP6814764B2 (ja) 2018-04-06 2018-04-06 情報処理システム及びパス管理方法

Country Status (2)

Country Link
US (1) US20190310925A1 (ja)
JP (1) JP6814764B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7377339B2 (ja) 2020-09-29 2023-11-09 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US12019885B2 (en) 2021-12-23 2024-06-25 Hitachi, Ltd. Information processing system and configuration management method including storage nodes connected by network

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10769042B2 (en) * 2018-06-25 2020-09-08 Seagate Technology Llc Single port data storage device with multi-port virtualization
CN111124250B (zh) * 2018-10-30 2023-11-21 伊姆西Ip控股有限责任公司 用于管理存储空间的方法、设备和计算机程序产品
CN111459649B (zh) * 2019-01-21 2023-08-25 伊姆西Ip控股有限责任公司 管理计算资源的存储器的方法、设备和计算机可读介质
CN110333770B (zh) * 2019-07-10 2023-05-09 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US11283716B2 (en) * 2019-10-25 2022-03-22 Dell Products L.P. Asymmetric Logical Unit Access path distribution system
US11093147B2 (en) * 2019-10-25 2021-08-17 Dell Products L.P. Asymmetric logical unit access path distribution system
US11106614B2 (en) * 2019-10-29 2021-08-31 Dell Products L.P. Asymmetric logical unit access path selection system
US11096108B2 (en) * 2019-10-29 2021-08-17 Dell Products L.P. Asymmetric logical unit access path selection system
KR20210077230A (ko) * 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법 및 장치
US11231861B2 (en) * 2020-01-15 2022-01-25 EMC IP Holding Company LLC Host device with active-active storage aware path selection
CN111930312B (zh) * 2020-08-12 2023-10-20 北京计算机技术及应用研究所 一种双控存储阵列异步逻辑单元访问方法
TWI739676B (zh) * 2020-11-25 2021-09-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US11392329B1 (en) * 2021-04-13 2022-07-19 EMC IP Holding Company LLC Uniform host attachment
JP7266060B2 (ja) * 2021-04-30 2023-04-27 株式会社日立製作所 ストレージシステムの構成変更方法及びストレージシステム
JP2022191854A (ja) * 2021-06-16 2022-12-28 株式会社日立製作所 記憶システムおよびデータ処理方法
CN113625944B (zh) * 2021-06-25 2024-02-02 济南浪潮数据技术有限公司 一种基于多路径和远程复制技术的容灾方法、系统
US11789624B1 (en) 2022-05-31 2023-10-17 Dell Products L.P. Host device with differentiated alerting for single points of failure in distributed storage systems

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012531654A (ja) * 2009-10-09 2012-12-10 株式会社日立製作所 ストレージシステム及びストレージシステムの通信パス管理方法
JP2014130387A (ja) * 2012-12-27 2014-07-10 Fujitsu Ltd ストレージコントローラ選択システム、ストレージコントローラ選択方法、およびストレージコントローラ選択プログラム
WO2015025358A1 (ja) * 2013-08-20 2015-02-26 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
WO2016009504A1 (ja) * 2014-07-16 2016-01-21 株式会社日立製作所 ストレージシステム及び通知制御方法
WO2016013116A1 (ja) * 2014-07-25 2016-01-28 株式会社日立製作所 ストレージ装置
US20170255530A1 (en) * 2016-03-07 2017-09-07 International Business Machines Corporation User-defined failure domains for software-defined storage systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012531654A (ja) * 2009-10-09 2012-12-10 株式会社日立製作所 ストレージシステム及びストレージシステムの通信パス管理方法
JP2014130387A (ja) * 2012-12-27 2014-07-10 Fujitsu Ltd ストレージコントローラ選択システム、ストレージコントローラ選択方法、およびストレージコントローラ選択プログラム
WO2015025358A1 (ja) * 2013-08-20 2015-02-26 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
WO2016009504A1 (ja) * 2014-07-16 2016-01-21 株式会社日立製作所 ストレージシステム及び通知制御方法
WO2016013116A1 (ja) * 2014-07-25 2016-01-28 株式会社日立製作所 ストレージ装置
US20170255530A1 (en) * 2016-03-07 2017-09-07 International Business Machines Corporation User-defined failure domains for software-defined storage systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7377339B2 (ja) 2020-09-29 2023-11-09 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US12019885B2 (en) 2021-12-23 2024-06-25 Hitachi, Ltd. Information processing system and configuration management method including storage nodes connected by network

Also Published As

Publication number Publication date
US20190310925A1 (en) 2019-10-10
JP6814764B2 (ja) 2021-01-20

Similar Documents

Publication Publication Date Title
JP6814764B2 (ja) 情報処理システム及びパス管理方法
CN109857445B (zh) 存储系统和控制软件配置方法
US11734137B2 (en) System, and control method and program for input/output requests for storage systems
US7778157B1 (en) Port identifier management for path failover in cluster environments
US6757753B1 (en) Uniform routing of storage access requests through redundant array controllers
US7519769B1 (en) Scalable storage network virtualization
US7337351B2 (en) Disk mirror architecture for database appliance with locally balanced regeneration
JP3843713B2 (ja) 計算機システム及びそのデバイスの割り当て方法
US20070118706A1 (en) Selecting storage clusters to use to access storage
US20140122816A1 (en) Switching between mirrored volumes
JP2005267327A (ja) ストレージシステム
US7895395B2 (en) Managing logical volumes in a storage system with remote copy
JP2007128176A (ja) ログ情報を管理する計算機システム及びログ情報の管理方法
JP2004318741A (ja) ネットワーク管理プログラム、管理計算機及び管理方法
JP7012010B2 (ja) 情報処理システム、及び、情報処理システムの制御方法
US9875059B2 (en) Storage system
JP6961045B2 (ja) システム及びその制御方法並びにプログラム
US20220121382A1 (en) System and method for segmenting volumes across a multi-node storage system
CN114063896A (zh) 存储系统、协作方法以及程序
US10089201B2 (en) Storage device, storage system and non-transitory computer-readable storage medium for mirroring of data
US11372584B2 (en) Storage system, path management method, and recording medium
JP4375121B2 (ja) データベース管理システムにおける処理代行方法
JP7193602B2 (ja) システム及びその制御方法並びにプログラム
JP7511622B2 (ja) システム及びその制御方法並びにプログラム
US11609711B2 (en) Distributed control path

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200818

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201221

R150 Certificate of patent or registration of utility model

Ref document number: 6814764

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150