JP4939271B2 - ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置 - Google Patents

ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置 Download PDF

Info

Publication number
JP4939271B2
JP4939271B2 JP2007087911A JP2007087911A JP4939271B2 JP 4939271 B2 JP4939271 B2 JP 4939271B2 JP 2007087911 A JP2007087911 A JP 2007087911A JP 2007087911 A JP2007087911 A JP 2007087911A JP 4939271 B2 JP4939271 B2 JP 4939271B2
Authority
JP
Japan
Prior art keywords
management
svp
management device
data
standby
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.)
Expired - Fee Related
Application number
JP2007087911A
Other languages
English (en)
Other versions
JP2008250421A (ja
Inventor
高広 藤田
博和 池田
伸之 大崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007087911A priority Critical patent/JP4939271B2/ja
Priority to CN2007101946237A priority patent/CN101277217B/zh
Priority to US12/007,334 priority patent/US7836333B2/en
Priority to EP08250108A priority patent/EP1975802B1/en
Publication of JP2008250421A publication Critical patent/JP2008250421A/ja
Priority to US12/915,961 priority patent/US8078904B2/en
Application granted granted Critical
Publication of JP4939271B2 publication Critical patent/JP4939271B2/ja
Expired - Fee Related 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2041Error 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 processing functionality is redundant with more than one idle spare processing component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0695Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • 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/0617Improving the reliability of storage systems in relation to availability
    • 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/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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

本願明細書で開示される技術は、ストレージシステムの保守・管理装置の冗長化方法に関する。
複数の計算機と複数のストレージシステムとの間を通信線(ストレージエリアネットワーク(SAN))で接続し、高信頼、高機能のストレージシステムを複数の計算機で共有する計算機システムが普及している。計算機システムの大規模化、複雑化に伴って、保守・管理作業の重要性が増している。SANにおいて、ストレージシステムは、複数の計算機によって共有されている。このため、ストレージシステムの保守及び管理は、計算機システムの保守及び管理作業において、最も重要であるもののひとつである。
ストレージシステムの保守及び管理の信頼性を向上させる技術は、例えば特許文献1に開示されている。特許文献1によれば、保守・管理対象の装置に備えられる保守管理処理部が多重化される。保守管理処理部の一つに障害が発生した場合、他の保守管理処理部を使用することができるため、保守及び管理の信頼性が向上する(特許文献1の図1参照)。
特許第3771162号明細書
計算機システムの大規模化及びデータ量の増大によって、ストレージシステムの数が増大している。これに伴い、保守・管理装置の二重化によってストレージシステムの保守・管理の信頼性を向上させた場合、多数の保守・管理装置が計算機システムに存在することになる。
保守・管理装置を二重化すると、正の保守・管理装置に障害が発生した場合、副の保守・管理装置がフェイルオーバーすることによって、保守・管理機能を継続して使用できる。しかしながら、副の保守・管理装置によるフェイルオーバー後、副の保守・管理装置が計算機システムに存在しているにもかかわらず、フェイルオーバーした保守・管理装置は冗長化されていない。すなわち、フェイルオーバーした副の保守・管理装置がSPOF(Sigle Point Of Failure、単一障害点)となるため、保守・管理機能の信頼性が低下する。
本願で開示する代表的な発明は、複数のストレージシステムと、前記複数のストレージシステムを管理する複数の管理装置と、を備える計算機システムを制御する方法であって、前記各ストレージシステムは、データを格納する記憶装置と、前記記憶装置へのデータの格納を制御する制御装置と、を備え、前記各管理装置は、前記ストレージシステムから取得されたデータを受信する第1インターフェイスと、前記第1インターフェイスに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、前記第1インターフェイスは、前記複数の管理装置を通信可能に接続する第1ネットワークに接続され、前記複数の管理装置は、第1管理装置、第2管理装置及び第3管理装置を含み、前記第1管理装置、前記第2管理装置及び前記第3管理装置を含む前記複数の管理装置は、それぞれ、前記ストレージシステムから取得した前記管理データを他の前記管理装置に送信する稼動管理装置、又は、前記稼動管理装置から送信された前記管理データを受信する待機管理装置のいずれかであり、前記ストレージシステムは、第1ストレージシステムを含み、前記第1管理装置及び前記第2管理装置は、前記第1ストレージシステムの識別子及び前記第1ストレージシステムから取得した管理データを保持し、前記方法は、前記第1管理装置に障害が発生した場合、前記複数の管理装置のうち、保持している前記管理データの取得元である前記ストレージシステムの数が最も少ない前記待機管理装置を前記第3管理装置として選択する手順と、前記第2管理装置に保持されている前記第1ストレージシステムの識別子及び前記第1ストレージシステムから取得した前記管理データを、前記第2管理装置から、前記選択された第3管理装置に送信する手順と、前記第2管理装置から送信された前記第1ストレージシステムの識別子及び前記管理データを前記選択された第3管理装置が保持する手順と、を含むことを特徴とする。
本発明の一実施形態によれば、正の保守・管理装置に障害が発生し、副の保守・管理装置がフェイルオーバーした後、冗長構成を再構成することによって、保守・管理装置がSPOF(Sigle Point Of Failure)となることを回避する結果、保守・管理機能の信頼性を向上させることができる。
また、副の保守・管理装置に障害が発生した場合も、冗長構成を再構成することによって、正の保守・管理装置がSPOF(Sigle Point Of Failure)となることを避けることができる。
本発明の実施の形態を、図面を参照しながら説明する。
<全体図>
図1は、本発明の実施の形態の計算機システム1の構成を示すブロック図である。
計算機システム1は、複数の計算機200、管理計算機600、ファイバーチャネルスイッチ100、複数のストレージシステム400、及び複数のSVP(Service Processor)500を備える。
計算機200とストレージシステム400は、ファイバーチャネルスイッチ100を介して接続されている。
ストレージシステム400とSVP500は、ネットワーク20によって互いに接続されている。
また、計算機200、管理計算機600、ファイバーチャネルスイッチ100及びSVP500は、ネットワーク10によって互いに接続されている。
<ファイバーチャネルスイッチ100>
ファイバーチャネルスイッチ100は、複数のインターフェイス102及び一つ以上のインターフェイス104を備える。各インターフェイス102は、計算機200又はストレージシステム400に接続される。インターフェイス104は、ネットワーク10に接続される。
<計算機200>
計算機200は、制御部206、メモリ210、記憶装置212、表示部208、インターフェイス202及びインターフェイス204を備える。インターフェイス202は、ファイバーチャネルスイッチ100と接続される。インターフェイス204は、ネットワーク10と接続される。
例えば、記憶装置212にはアプリケーションプログラム(図示省略)が格納されてもよい。アプリケーションプログラムは、必要に応じてメモリ210に読み込まれ、制御部206によって実行される。アプリケーションプログラムを実行する制御部206は、必要に応じて、ストレージシステム400に対するデータ書き込み(ライト)及び読み出し(リード)を実行することができる。データのライト及びリード要求は、インターフェイス202から、ファイバーチャネルスイッチ100を経由してストレージシステム400に送信される。
<管理計算機600>
管理計算機600は、制御部606、メモリ610、記憶装置612、表示部608及びインターフェイス604を備える。インターフェイス604は、ネットワーク10と接続される。
図1には一つの管理計算機600のみを示すが、計算機システム1は、ネットワーク10に接続された複数の管理計算機600を備えてもよい。
管理計算機600は、ネットワーク10を介してSVP500と通信することができる。後述するように、SVP500は、ストレージシステム400から、ストレージシステム400を管理するための情報(例えば、ストレージシステム400の性能情報等)を取得する。管理計算機600は、それらの情報を、ネットワーク10を介して一つ又は複数のSVP500から取得することができる。このため、管理計算機は、複数のストレージシステム400から取得された情報を一元的に管理することができる。
あるいは、管理計算機600は、SVP500から種々の通知を受信することができる。その場合、管理計算機600は、通知を受信したことを、表示部608に表示することによって、計算機システム1の管理者又はユーザに通知することができる。
さらに、管理計算機600は、SVP500に種々の指示及び情報を送信することができる。計算機システム1の管理者又はユーザは、管理計算機600を操作することによって、SVP500を制御することができる。
<ストレージシステム400>
ストレージシステム400は、記憶制御装置420及び記憶装置410を備える。
記憶制御装置420は、プロセッサ430、制御メモリ440、不揮発メモリ450、キャッシュメモリ460、ファイバーチャネルインターフェイス470、ファイバーチャネルインターフェイス480及びネットワークインターフェイス490を備え、これらは互いに接続されている。
記憶装置410は、記録媒体を含み、記憶制御装置420からの要求に従って、記録媒体に対してデータのリード及びライトを行う。
ファイバーチャネルインターフェイス480は、記憶装置410に接続される。
記憶制御装置420は、ファイバーチャネルインターフェイス480を介して、記憶装置410に対してデータを入出力する。
なお、ファイバーチャネルインターフェイス480は、ATA、シリアルATA、パラレルSCSI、シリアルSCSI等のインターフェイスによって置き換えられてもよい。
記憶制御装置420は、記憶装置410を冗長性のあるRAID(Redundant Arrays of Inexpensive Disks)として制御することで、ストレージシステム400の信頼性及び性能を向上させることができる。
なお、ストレージシステム400は、一つ又は複数の記憶装置410を備えることができる。記憶装置410は、例えばハードディスクドライブ(HDD)のような磁気記憶装置であってもよいし、その他の種類の記憶装置(例えば、光学記憶装置又は半導体記憶装置)であってもよい。
記憶装置410には、物理的又は論理的な記憶領域(例えば、物理ボリューム又は論理ボリューム等のボリューム。以後、この記憶領域をボリュームと称する)が設定される。各ボリュームは、記憶領域識別子によってストレージシステム400内にて一意に識別される。
ファイバーチャネルインターフェイス470は、ファイバーチャネルスイッチ100に接続される。記憶制御装置420は、ファイバーチャネルインターフェイス470を介して、ファイバーチャネルスイッチ100に接続されるホスト計算機200からのデータ入出力要求を受け付ける。このデータ入出力要求は、前記記憶領域に対して行われる。
ネットワークインターフェイス490は、ネットワーク20に接続される。
記憶装置410と記憶制御装置420間のデータ転送は、記憶制御装置420内のデータ転送に比べて遅い。このため、記憶制御装置420は、頻繁にアクセスされるデータをキャッシュメモリ460上に格納することによって、データ転送性能を向上させることができる。キャッシュメモリ460は、例えばDRAMのような半導体メモリであってもよい。
上記動作は、不揮発メモリ450に格納されるプログラムを制御メモリ440に読み込み、プロセッサ430がこれを実行することによって実現される。不揮発メモリ450は、例えばHDDであってもよいし、フラッシュメモリのような不揮発性の半導体メモリであってもよい。制御メモリ440は、例えばDRAMのような半導体メモリであってもよい。
なお、記憶制御装置420は、シングルプロセッサであるが、マルチプロセッサ構成であってもよい。すなわち、記憶制御装置420は、一つ又は複数のプロセッサ430を備えてもよい。
<SVP500>
SVP500は、ストレージシステム400を保守及び管理するためにネットワーク20を介してストレージシステム400と接続される装置である。SVP500は、制御部506、表示部508、メモリ510、記憶装置512、第1のインターフェイス502及び第2のインターフェイス504を備える。
第1のインターフェイス502は、ネットワーク10に接続される。管理計算機600とSVP500は、第1のインターフェイス502及びネットワーク10を介して通信する。
第2のインターフェイス504は、ネットワーク20に接続される。ストレージシステム400とSVP500は、第2のインターフェイス504及びネットワーク20を介して通信する。また、SVP500同士は、第2のインターフェイス及びネットワーク20を介して、互いに通信する。
次に、図2を使用して、SVP500を詳しく説明する。
図2は、本発明の実施の形態のSVP500の構成を示すブロック図である。
メモリ510には、管理DKCテーブル2100、待機SVPテーブル2200、冗長構成稼動SVPテーブル2300、稼動SVP−DKC管理テーブル2400、SVP状態テーブル2500及び冗長再構成計算テーブル2600が格納される。
記憶装置512には、監視プログラム3000、稼動SVP監視プログラム4000、待機SVP監視プログラム6000、冗長再構成可否応答プログラム8000、SVPフェイルバックプログラム10000及びDKCデータ取得プログラム30000が格納される。これらのプログラムは、制御部506によって、記憶装置512からメモリ510に読み出され、実行される。
<DKCデータリポジトリ50000>
さらに、記憶装置512には、DKCデータリポジトリ50000が格納される。DKCデータリポジトリ50000には、ストレージシステム400に関するデータが格納される。具体的には、SVP500は、ストレージシステム400からストレージシステム400を管理するために使用されるデータ(例えば、構成データ及び性能データ等)を取得する。
SVP500は、これらのデータを定期的にストレージシステム400から取得し、DKCデータリポジトリ50000に格納する。DKCデータリポジトリ50000は、一定の期間の過去に取得されたデータを保持している。ある一定の期間以上のデータが蓄積されると、最も古いデータがDKCデータリポジトリ50000から削除され、ストレージシステム400から取得した最新のデータが、DKCデータリポジトリ50000に格納される。
DKCデータリポジトリ50000に格納されるデータは、例えば、プロセッサ430に障害が発生したか否かを示すデータ、キャッシュメモリ460の使用率を示すデータ、インターフェイス470におけるデータ入出力回数を示すデータ、記憶装置410に対するデータ入出力回数を示すデータ、のうち少なくとも一つを含んでもよい。
SVP500は、ストレージシステム400からのデータ取得だけではなく、ストレージシステム400に対する設定(例えば、ストレージシステム400の起動、停止及び構成変更等)も行う。
SVP500と、そのSVP500がデータを取得するストレージシステム400との組み合わせは、管理DKCテーブル2100によって管理される。管理DKCテーブル2100については、後で説明する(図4等参照)。ストレージシステム400からデータを定期的に取得しているSVP500を、稼動SVPと呼ぶ。
本実施の形態の計算機システム1は、ストレージシステム400の数より多い数のSVP500を備える。このため、ストレージシステム400からデータを取得しないSVP500も存在する。このようなSVP500は、稼動SVPに障害が発生したときに、稼動SVPの動作を引継ぐために待機(すなわち冗長化)しているものである。このようなSVP500を、待機SVPと呼ぶ。
SVP500が、稼動SVPとして動作するか、待機SVPとして動作するかは、SVP状態テーブル2500によって管理される。SVP500は、稼動SVPとしても、待機SVPとしても動作することができる。SVP状態テーブル2500については、後で説明する(図4等参照)。
<論理図1>
図3は、本発明の実施の形態のストレージシステム400とSVP500との関係を論理的に示す説明図である。
図3(a)は、障害が発生する前の状態を示し、図3(b)は、SVP1に障害が発生し、SVPAがフェイルオーバー(引継ぎ)し、SVPBを待機SVPとする冗長構成700が再構成された後の状態を示す。
図3において、ストレージシステム400と、そのストレージシステム400を管理するSVP500(すなわち稼動SVP)とは、線によって結合されている。
例えば、SVP500a(SVP1)は、稼動SVPとして動作しており、ストレージシステム400a(DKC1)を管理している。なお、以下の説明において、「管理」は、「保守」の概念をも含む用語として記載される。
ここで、図3に表示されるSVP1〜SVP5及びSVPA〜SVPDは、それぞれ、SVP500の識別子である。SVP500a〜SVP500kは、それぞれ、図1に示す複数のSVP500のうちいずれかに相当する。同様に、DKC1〜DKC6は、それぞれ、ストレージシステム400の識別子である。ストレージシステム400a〜ストレージシステム400fは、それぞれ、図1に示す複数のストレージシステム400のうちいずれかに相当する。
図3に示す角丸四角形は、冗長構成700を表す。冗長構成700とは、一つ以上の稼動SVPと、それらの稼動SVPを冗長化する一つ以上の待機SVPとを含むSVP500の集合である。各冗長構成700を区別して記載する場合、「a」又は「b」のような添字を使用する。例えば、SVP500a(SVP1)とSVP500b(SVPA)が冗長構成700aを構成している。SVP500b(SVPA)は、SVP500a(SVP1)の待機SVPとして動作している。すなわち、後述するように、SVP500a(SVP1)に障害が発生すると、SVP500b(SVPA)はSVP500a(SVP1)をフェイルオーバーして、その後、ストレージシステム400a(DKC1)を管理する。
また、SVP500e(SVP3)は、ストレージシステム400c(DKC3)を管理する稼動SVPであり、SVP500g(SVP4)は、ストレージシステム400d(DKC4)を管理する稼動SVPである。SVP500f(SVPC)は、SVP500e(SVP3)及びSVP500g(SVP4)と冗長構成700cを構成する待機SVPである。すなわち、SVP500e(SVP3)又はSVP500g(SVP4)の一方に障害が発生すると、SVP500f(SVPC)はその障害が発生したSVP500をフェイルオーバーして、その後、ストレージシステム400c(DKC3)又はストレージシステム400d(DKC4)を管理する。
<SVPが保持するテーブルの例>
ここで、SVP500のメモリ510に格納される管理DKCテーブル2100、待機SVPテーブル2200、冗長構成稼動SVPテーブル2300、稼動SVP−DKC管理テーブル2400及びSVP状態テーブル2500について説明する。
図3(a)の稼動SVPであるSVP500a(SVP1)及び待機SVPであるSVP500b(SVPA)を例にして、図4、図5を使って説明する。
図4は、本発明の実施の形態の稼動SVPであるSVP500a(SVP1)が保持するテーブルの説明図である。
図5は、本発明の実施の形態の待機SVPであるSVP500b(SVPA)が保持するテーブルの説明図である。
待機SVPが保持するテーブルは、それぞれ、稼動SVPが保持するテーブルと同様の項目を有する。
<管理DKCテーブル2100>
管理DKCテーブル2100は、SVP500が、ストレージシステム400を管理するために使用する。SVP500は、管理DKCテーブル2100に設定されたストレージシステム400から、データを取得する。
SVP500が稼動SVPとして動作しているときには、管理DKCテーブル2100にエントリがあるが、待機SVPとして動作しているときには、管理DKCテーブル2100にエントリはない。SVP500が稼動SVPとして動作しているとき、管理DKCテーブル2100は、一つ又は複数のエントリを含んでもよい。なお、各テーブルのエントリは、図4等に示す各テーブルの行に対応する。管理DKCテーブル2100が複数のエントリを含む場合、SVP500は、複数のストレージシステム400を管理する。
管理DKCテーブル2100は、DKC_ID2101及びDKC_Addr2102を管理する。DKC_ID2101は、SVP500が管理し、データを取得するストレージシステム400を、少なくとも計算機システム1で一意に識別する識別子である。DKC_Addr2102は、DKC_ID2101で識別されるストレージシステム400のインターフェイス490のアドレスである。SVP500は、このアドレスを使用して、ストレージシステム400と通信し、データを取得する。
なお、図4等には、例えばDKC_ID2101aのように、各項目を識別する番号にアルファベットの添字(例えば、「a」又は「b」等)が付与されている。この添字は、各項目が、どのSVP500が保持するテーブルに属するかを示すものである。例えば、DKC_ID2101aは、SVP500a(SVP1)が保持する管理DKCテーブル2100のDKC_ID2101を示す。他の項目についても同様である。
図4に示す管理DKCテーブル2100aは、稼動SVPであるSVP500a(SVP1)が保持する管理DKCテーブル2100である。管理DKCテーブル2100aのDKC_ID2101a及びDKC_Addr2102aには、それぞれ、SVP500a(SVP1)が管理するストレージシステム400aの識別子である「DKC1」、及び、ストレージシステム400aのインターフェイス490のアドレス「AddrD1」が設定されている。
図5に示す管理DKCテーブル2100bは、待機SVPであるSVP500b(SVPA)が保持する管理DKCテーブル2100である。SVP500b(SVPA)は、ストレージシステム400を管理していないため、管理DKCテーブル2100bにエントリはない。
<待機SVPテーブル2200>
待機SVPテーブル2200は、稼動SVPが、自身に障害が発生したときに動作を引継ぐ待機SVPを管理するために使用する。
稼動SVPの待機SVPテーブル2200には、通常、エントリがある。一方、待機SVPの待機SVPテーブル2200には、エントリがない。
稼動SVPの待機SVPテーブル2200にエントリがない場合、その稼動SVP障害が発生したときに動作を引継ぐ待機SVPがない状態である。すなわち、その稼動SVPがSPOF(Sigle Point Of Failure、単一障害点)となっている。
待機SVPテーブル2200は、待機SVP_ID2201、SVP_Addr2_2202及び監視2203を管理する。
待機SVP_ID2201は、待機SVPとして動作しているSVP500を、少なくとも計算機システム1で一意に識別する識別子である。SVP_Addr2_2202は、待機SVP_ID2201によって識別されるSVP500の第2のインターフェイス504のアドレスである。監視2203には、稼動SVPが、待機SVPが正常に動作していることを監視するか否かを示す値が設定される。監視2203が「Y」に設定されているとき、稼動SVPは、対応する待機SVPを監視する。一方、監視2203が「N」に設定されているとき、稼動SVPは、待機SVPを監視しない。稼動SVPは、は、例えば、ネットワーク20を経由するハートビートによって待機SVPを監視してもよい。
待機SVPテーブル2200aは、稼動SVPであるSVP500a(SVP1)が保持する待機SVPテーブル2200である(図4)。待機SVPテーブル2200aの待機SVP_ID2201a及びSVP_Addr2_2202aには、それぞれ、SVP500b(SVPA)の識別子である「SVPA」、及び、SVP500b(SVPA)の第2のインターフェイス504のアドレス「AddrSA2」が設定されている。これは、SVP500a(SVP1)が、SVP500b(SVPA)によって冗長化されていることを示す。言い換えると、SVP500a(SVP1)とSVP500b(SVPA)が冗長構成700aを構成する。SVP500b(SVPA)は、SVP500a(SVP1)を冗長化するための待機SVPである。
待機SVPテーブル2200aの監視2203aには、「Y」が設定されている。これは、SVP500a(SVP1)が、待機SVPテーブル2200aを使用して、SVP500b(SVPA)の障害を監視することを示す。
待機SVPテーブル2200bは、待機SVPであるSVP500b(SVPA)が保持する待機SVPテーブル2200であるため、エントリを含まない(図5)。
<冗長構成稼動SVPテーブル2300>
冗長構成稼動SVPテーブル2300は、待機SVPが、その待機SVPによって動作を引継がれる稼動SVPを管理するために使用する。
待機SVPの冗長構成稼動SVPテーブル2300には、通常、エントリがある。一方、稼動SVPの冗長構成稼動SVPテーブル2300には、エントリがない。
待機SVPは、冗長構成稼動SVPテーブル2300に設定された稼動SVPを監視する。そして、稼動SVPに障害が発生した場合、待機SVPがその稼動SVPの動作を引継ぐ(以降、これをフェイルオーバーとよぶ)。
稼動SVPの数に対して、待機SVPの数が多い場合、エントリのない冗長構成稼動SVPテーブル2300を保持する待機SVPが存在する場合がある。エントリがない冗長構成稼動SVPテーブル2300を保持する待機SVPは、待機SVPのスペアである。
冗長構成稼動SVPテーブル2300は、稼動SVP_ID2301、SVP_Addr1_2302、SVP_Addr2_2303、監視2304及びDKC数2305を管理する。
稼動SVP_ID2301は、稼動SVPとして動作しているSVP500を、少なくとも計算機システム1で一意に識別する識別子である。
SVP_Addr1_2302及びSVP_Addr2_2303は、それぞれ、稼動SVP_IDによって識別されるSVP500の第1のインターフェイス502のアドレス、及び、第2のインターフェイス504のアドレスである。
監視2304には、稼動SVP_ID2301によって識別される稼動SVPが正常に動作していることを、待機SVPが監視するか否かを示す値が設定される。監視2304に「Y」が設定されているとき、待機SVPは、対応する稼動SVPを監視する。一方、監視2304に「N」が設定されているとき、待機SVPは、稼動SVPを監視しない。待機SVPは、例えば、ネットワーク20を経由するハートビートによって稼動SVPを監視する。
DKC数2305には、稼動SVP_ID2301によって識別される稼動SVPが管理するDKC台数が設定される。
冗長構成稼動SVPテーブル2300aは、稼動SVPであるSVP500a(SVP1)が保持する冗長構成稼動SVPテーブル2300であるため、エントリを含まない(図4)。
冗長構成稼動SVPテーブル2300bは、待機SVPであるSVP500b(SVPA)が保持する冗長構成稼動SVPテーブル2300である(図5)。稼動SVP_ID2301b、SVP_Addr1_2302b及びSVP_Addr2_2303bには、それぞれ、SVP500a(SVP1)の識別子である「SVP1」、SVP500a(SVP1)の第1のインターフェイス502のアドレス「AddrS11」、及び、SVP500a(SVP1)の第2のインターフェイス504のアドレス「AddrS12」が設定される。
監視2304bには、「Y」が設定される。DKC数2305bには、SVP500a(SVP1)が管理するストレージシステム400の台数である「1」が設定される。これは、SVP500b(SVPA)が、SVP500a(SVP1)を監視し、SVP500a(SVP1)が1台のストレージシステム400を管理していることを示す。
<稼動SVP−DKC管理テーブル2400>
稼動SVP−DKC管理テーブル2400は、待機SVPが、その待機SVPとともに冗長構成700を構成している稼動SVPと、その稼動SVPが管理するストレージシステム400と、を管理するために使用する。
稼動SVPが保持する稼動SVP−DKC管理テーブル2400には、エントリがない。一方、待機SVPが保持する稼動SVP−DKC管理テーブル2400には、通常、エントリがある。しかし、スペアとなっている待機SVPが保持する稼動SVP−DKC管理テーブル2400には、エントリがない。スペアとなっている待機SVPが保持する管理DKCテーブル2100、待機SVPテーブル2200、冗長構成稼動SVPテーブル2300及び稼動SVP−DKC管理テーブル2400にはエントリがない。
稼動SVP−DKC管理テーブル2400は、待機SVPが、フェイルオーバー後、冗長構成700を再構成するときに使用される。このとき、待機SVPは、他の待機SVPが自身の待機SVPとなるように、冗長構成700を再構成する。冗長構成700の再構成については、監視プログラム3000の処理フローの説明の中で明らかにする(図6〜図9参照)。
稼動SVP−DKC管理テーブル2400は、稼動SVP_ID2401、DKC_ID2402及びDKC_Addr2403を管理する。稼動SVP_ID2401は、稼動SVPとして動作しているSVP500を少なくとも計算機システム1で一意に識別することができる識別子である。DKC_ID2402は、稼動SVPが管理し、データを取得するストレージシステム400を、少なくとも計算機システム1で一意に識別する識別子である。DKC_Addr2403は、DKC_IDで識別されるストレージシステム400のインターフェイス490のアドレスである。
稼動SVP−DKC管理テーブル2400aは、稼動SVPであるSVP500a(SVP1)が保持する稼動SVP−DKC管理テーブル2400であるため、エントリを含まない(図4)。
稼動SVP−DKC管理テーブル2400bは、待機SVPであるSVP500b(SVPA)が保持する稼動SVP−DKC管理テーブル2400である(図5)。
稼動SVP_ID2401aには、SVP500a(SVP1)の識別子である「SVP1」が設定される。この設定は、SVP500b(SVPA)がSVP500a(SVP1)を監視することを示す。
DKC_ID2402a及びDKC_Addr2403aには、それぞれ、SVP500a(SVP1)が管理するストレージシステム400a(DKC1)の識別子である「DKC1」、及び、ストレージシステム400a(DKC1)のインターフェイス490のアドレス「AddrD1」が設定されている。これらの設定は、SVP500a(SVP1)がストレージシステム400a(DKC1)を管理すること、及び、ストレージシステム400a(DKC1)のインターフェイス490のアドレスが「AddrD1」であることを示す。
<SVP状態テーブル2500>
SVP状態テーブル2500は、SVP500が、自身の状態を管理するテーブルである。稼動SVP、待機SVP、及びスペアとなっている待機SVPのいずれのSVP500も、自身の状態を管理するために、SVP状態テーブル2500を使用する。
SVP状態テーブル2500は、SVP_ID2501、SVP_Addr1_2502、SVP_Addr2_2503、状態2504、再構成可否2505及び設置階数2506を管理する。
SVP_ID2501は、自SVP500(すなわちそのSVP状態テーブル2500を保持しているSVP500)を少なくとも計算機システム1で一意に識別することができる識別子である。
SVP_Addr1_2502及びSVP_Addr2_2503は、それぞれ、SVP500の第1のインターフェイス502のアドレス、及び、第2のインターフェイス504のアドレスである。
状態2504には、自SVP500が稼動SVPであるか、稼動SVPであるかを示す値が設定される。SVP500は、状態2504に「稼動」が設定されているとき、稼動SVPとして動作し、「待機」が設定されているとき、待機SVPとして動作する。
再構成可否2505は、冗長構成700の再構成要求に対して、応答するか否かを示す値が設定される。SVP500は、再構成可否2505に「可」が設定されている場合、再構成要求に対して応答し、「不可」が設定されている場合、再構成要求に対して応答しない。冗長構成700の再構成をしないSVP500については、再構成可否を「不可」に設定することで、冗長構成700を再構成されることを防ぐことができる。
設置階数2506には、SVP500の設置時に、SVPが設置される(建物の)階数が、管理者によって設定される。
SVP状態テーブル2500aは、稼動SVPであるSVP500a(SVP1)が保持するSVP状態テーブル2500である。SVP_ID2501a、SVP_Addr1_2502a及びSVP_Addr2_2503aには、それぞれ、SVP500a(SVP1)自身の識別子である「SVP1」、SVP500a(SVP1)自身の第1のインターフェイス502のアドレス「AddrS11」、及び第2のインターフェイス504のアドレス「AddrS12」が設定される。これらのアドレスを変更すると、第1のインターフェイス502及び第2のインターフェイス504のアドレスが変更される。状態2504aには、SVP500a(SVP1)が稼動SVPとして動作することを示す「稼動」が設定される。再構成可否2505aには、SVP500aが待機SVPではないため、再構成要求に対して応答しないことを示す「不可」が設定される。設置階数2506aには、「3」が設定されている。これは、SVP500a(SVP1)が3階に設置されていることを示す。
SVP状態テーブル2500bは、待機SVPであるSVP500b(SVPA)が保持するSVP状態テーブル2500である。SVP_ID2501b、SVP_Addr1_2502b及びSVP_Addr2_2503bには、それぞれ、SVP500b(SVPA)自身の識別子である「SVPA」、SVP500b(SVPA)自身の第1のインターフェイス502のアドレス「AddrSA1」、及び第2のインターフェイス504のアドレス「AddrSA2」が設定される。これらのアドレスを変更すると、第1のインターフェイス502及び第2のインターフェイス504のアドレスが変更される。状態2504bには、SVP500b(SVPA)が待機SVPとして動作することを示す「待機」が設定される。再構成可否2505bには、SVP500b(SVPA)が再構成要求に対して応答することを示す「可」が設定される。設置階数2506bには、「3」が設定されている。これは、SVP500b(SVPA)が3階に設置されていることを示す。
なお、本実施の形態のSVP状態テーブル2500は、SVP500が設置されている位置を示す情報として、設置階数2506を管理している。しかし、設置階数2506はSVP500が設置されている位置を示す情報の一例であり、その他の位置を示す情報が管理されてもよい。例えば、SVP状態テーブル2500は、SVP500が設置されている位置の座標を示す情報を管理してもよい。
<監視プログラム3000>
監視プログラム3000は、SVP500が、他のSVP500を監視するために実行されるプログラムである。監視プログラム3000は、SVP500の制御部506によって、記憶装置512から読み出され、ある一定時間ごとに定期的に実行される。
SVP500は、そのSVP500が稼動SVPである場合、ストレージシステム400からデータを取得し、待機SVPを監視する。一方、SVP500は、そのSVP500が待機SVPである場合、稼動SVPを監視する。
図6は、本発明の実施の形態において実行される監視プログラム3000の処理を示すフローチャートである。
図6に示す各ステップは、監視プログラム3000を実行する制御部506によって実行される。
制御部506は、ステップ3010において、SVP状態テーブル2500を参照する。
制御部506は、ステップ3020において、SVP状態テーブル2500の状態2504が「稼動」であるか否かを判定する。状態2504が「稼動」である場合、自SVP500が稼動SVPである。この場合、制御部506は、待機SVP監視プログラム60000を実行し(ステップ3030)、次にDKCデータ取得プログラム30000を実行し(ステップ3040)、処理を終了する。
一方、ステップ3020において、SVP状態テーブル2500の状態2504が「稼動」でない場合、自SVP500が待機SVPである。この場合、制御部506は、稼動SVP監視プログラム4000を実行し(ステップ3050)、処理を終了する。稼動SVP監視プログラム4000については、後に図8を参照して詳細に説明する。
例えば、SVP500aの制御部506は、SVP状態テーブル2500aの状態2504aを参照する。この場合、状態2504aに「稼動」が設定されているため、SVP500aの制御部506は、自身が稼動SVPであると判定する。
一方、SVP500bの制御部506は、SVP状態テーブル2500bの状態2504bを参照する。この場合、状態2504bに「待機」が設定されているため、SVP500bの制御部506は、自身が稼動SVPでない(すなわち、待機SVPである)と判定する。
DKCデータ取得プログラム30000、待機SVP監視プログラム6000及び稼動SVP監視プログラム4000については、後で説明する(図7から図9及び図12参照)。
<DKCデータ取得プログラム30000>
DKCデータ取得プログラム30000は、稼動SVPがストレージシステム400のデータを取得し、取得したデータを自身のDKCデータリポジトリ50000に格納し、さらに、冗長構成700を構成している待機SVPのDKCデータリポジトリ50000に格納するためのプログラムである。DKCデータ取得プログラム30000は、SVP500の制御部506によって記憶装置512から読み出され、実行される。DKCデータ取得プログラム30000は、監視プログラム3000のステップ3040において、稼動SVPの制御部506によって実行される。例えば、図3(a)のSVP500a(SVP1)の制御部506がDKCデータ取得プログラム30000を実行する。
図7は、本発明の実施の形態において実行されるDKCデータ取得プログラム30000の処理を示すフローチャートである。
図7は、例として、SVP500a(SVP1)の制御部506がDKCデータ取得プログラム30000を実行する場合について説明する。
制御部506は、管理DKCテーブル2100aを参照し、データを取得するストレージシステム400a(DKC1)の識別子(すなわち、「DKC1」)を取得する(ステップ30010)。
次に、制御部506は、ステップ30010において取得した識別子によって識別されるストレージシステム400a(DKC1)から、データを取得し、DKCデータリポジトリ50000aに、取得したデータを格納する(ステップ30020)。
次に、制御部506は、待機SVPテーブル2200aを参照し、待機SVPであるSVPA(SVP500b)のDKCデータリポジトリ50000bに、ステップ30010にて取得した、ストレージシステム400a(DKC1)のデータを格納する(ステップ30030)。そして、制御部506は処理を終了する。
<稼動SVP監視プログラム4000>
稼動SVP監視プログラム4000は、待機SVPが稼動SVPの稼動状況を監視するためのプログラムである。稼動SVP監視プログラム4000は、SVP500の制御部506によって記憶装置512から読み出され、実行される。稼動SVP監視プログラム4000は、監視プログラム3000のステップ3050において、待機SVPの制御部506によって実行される。例えば、SVP500b(SVPA)の制御部506が稼動SVP監視プログラム4000を実行する。
図8は、本発明の実施の形態において実行される稼動SVP監視プログラム4000の処理を示すフローチャートである。
図8は、例として、図3(a)のSVP500b(SVPA)の制御部506が稼動SVP監視プログラム4000を実行する場合について説明する。後述する図9についても同様である。
制御部506は、ステップ4010において、冗長構成稼動SVPテーブル2300bから、稼動SVP_ID2301bに設定された「SVP1」及びSVP_Addr2_2303bに設定された「AddrS12」を取得する。
制御部506は、ステップ4020において、ネットワーク20を介して、ステップ4010において取得した稼動SVPに対して、稼動状況の応答を要求する。このとき、制御部506は、要求の送信先としてSVP_Addr2「AddrS12」を使用する。なお、ステップ4010において取得した稼動SVPとは、識別子SVP1で識別されるSVP500aである。以下の説明にでは、簡単のため、識別子SVP1で識別されるSVP500aを単にSVP1と記載する。
制御部506は、ステップ4020において送信された要求に対する応答を受信したか否かを判定する(ステップ4030)。ステップ4030において、応答があると判定された場合、処理はステップ4040に進む。一方、応答がないと判定された場合、処理は図9のステップ5010に進む(A)。応答がある場合、SVP1が正常に動作していることを示す。応答がない場合、SVP1に障害が発生していることを示す。ステップ4020における稼動状況応答要求とそれに対する応答は、例えば、ネットワーク20を介したハートビートである。
ステップ4030において応答があると判定された場合、制御部506は、冗長構成稼動SVPテーブル2300bの全ての稼動SVPに対して処理を完了したか否かを判定する(ステップ4040)。ステップ4040において、冗長構成稼動SVPテーブル2300bの全ての稼動SVPに対して処理を完了したと判定された場合、制御部506は処理を終了する。一方、冗長構成稼動SVPテーブル2300bに未処理の稼動SVPがあると判定された場合、制御部506は、ステップ4010以降の処理を繰り返す。冗長構成稼動SVPテーブル2300bの例では、一つの稼動SVP(すなわちSVP1)のみが設定されている。このため、この例では、SVP1を処理したところで、処理が終了する。
図9は、本発明の実施の形態において実行される稼動SVP監視プログラム4000の処理のうち、稼動SVPに障害が発生した場合に実行される処理を示すフローチャートである。
図8のステップ4030において、応答がなかった場合、処理は図9のステップ5010に進む(A)。
ステップ5010において、制御部506は、冗長構成稼動SVPテーブル2300bに設定されている稼動SVPのうち、ステップ4030において応答しなかった稼動SVP以外の稼動SVPが保持する待機SVPテーブル2200から、自SVP500(すなわち、稼動SVP監視プログラム4000を実行しているSVP500)に関するエントリを削除する(ステップ5010)。自SVP500に関するエントリとは、待機SVP_ID2201として自SVP500の識別子が設定されているエントリである。
ステップ5010は、自SVP500が稼動SVPにエントリを削除する要求を送信することによって実行される。この要求を受信した稼動SVPは、要求されたエントリの削除を実行する。
待機SVPが、ステップ4030において応答しなかった稼動SVPをフェイルオーバーすることによって稼動SVPとなると、その待機SVPが冗長化している他の稼動SVPの待機SVPではなくなる(すなわち、稼動SVPは、他のSVP500をフェイルオーバーすることができない)。このため、他の稼動SVPの待機SVPテーブル2200から自SVP500のエントリが削除される。冗長構成稼動SVPテーブル2300bには、稼動SVPが一つのみ設定されているため、ステップ5010は実行されない。
ステップ5010を説明するために、図3(a)のSVP500f(SVPC)を取り挙げる。SVP500f(SVPC)は、2つの稼動SVP、すなわちSVP500e(SVP3)及びSVP500g(SVP4)を冗長化している待機SVPである。言い換えると、SVP500e(SVP3)及びSVP500g(SVP4)のいずれかに障害が発生すると、SVP500f(SVPC)がその障害が発生したSVP500をフェイルオーバーする。
SVP500f(SVPC)にて、稼動SVP監視プログラム4000が実行される。ステップ4030において、SVP500e(SVP3)からの応答がない場合、ステップ5010において、SVP500f(SVPC)は、冗長構成稼動SVPテーブル2300fを参照する。冗長構成稼動SVPテーブル2300fは図示されていないが、これがSVP500fによって保持されるテーブルであることは、添字「f」から理解されるであろう。以下、番号の後の添字(例えば、「e」又は「g」等)は、テーブルを保持しているSVP500を示す。
なお、ステップ5010が実行された時点で、冗長構成稼動SVPテーブル2300fは、二つのエントリを含む。それら二つのエントリの稼動SVP_ID2301には、それぞれ、「SVP3」及び「SVP4」が設定されている。
一方、SVP500e(SVP3)が保持する待機SVPテーブル2200eは、一つのエントリのみを含む。そのエントリの待機SVP_ID2201には、「SVPC」が設定されている。同様に、SVP500g(SVP4)が保持する待機SVPテーブル2200gは、一つのエントリのみを含む。そのエントリの待機SVP_ID2201には、「SVPC」が設定されている。
SVP500f(SVPC)は、応答のなかったSVP500e(SVP3)以外の稼動SVPであるSVP500g(SVP4)の待機SVPテーブル2200gから、自SVP500の識別子であるSVPCを含むエントリを削除する。
ステップ5010の結果、自SVP500が属する冗長構成700に含まれる稼動SVPのうち、障害が発生したものを除く全ての稼動SVPの待機SVPテーブル2200から、自SVP500の識別子を含むエントリが削除される。
以下、再びSVP500b(SVPA)を例として、ステップ5020以降の処理を説明する。
SVP500b(SVPA)の制御部506は、ステップ5020において、冗長構成稼動SVPテーブル2300bを参照し、ステップ4030において応答しなかった稼動SVP1のアドレスである「AddrS11」を取得する。そして、制御部506は、取得したアドレス「AddrS11」をSVP状態テーブル2500bのSVP_Addr1_2302bに設定する。さらに、制御部506は、稼動SVP−DKC管理テーブル2400bを参照し、ステップ4030において応答しなかった稼動SVP1が管理していたストレージシステム400の識別子及びアドレスを管理DKCテーブル2100bに設定する。具体的には、稼動SVP1は、識別子「DKC1」で識別されるストレージシステム400aを管理していた。このため、制御部506は、識別子「DKC1」に対応するDKC_ID2402b及びDKC_Addr2403bに設定されている「DKC1」及び「AddrD1」を、それぞれ、管理DKCテーブル2100bのDKC_ID2101b及びDKC_Addr2102bに設定する。さらに、制御部506は、SVP状態テーブル2500bの状態2504bを、「稼動」に設定し、再構成可否2505bを「不可」に設定する。これによって、ステップ4030において応答しなかった稼動SVP1の動作をSVP500b(SVPA)が引継ぐ。
フェイルオーバーが実行される前、管理計算機600は、アドレス「AddrS11」を使用して、稼動SVP1にアクセスしていた。その後、フェイルオーバーが実行されると、ステップ5020において、SVP500b(SVPA)は、応答しない稼動SVP1のアドレス「AddrS11」を引継ぐ。その結果、管理計算機600は、フェイルオーバーが実行される前に使用していたものと同じアドレス「AddrS11」を使用して、SVP500b(SVPA)にアクセスすることができる。つまり、透過的にフェイルオーバーが実行される。
次に、制御部506は、冗長再構成可否応答要求を、ネットワーク20を介してブロードキャストする(ステップ5030)。
次に、制御部506は、ステップ5030において送信した要求に対して応答があるか否かを判定する(ステップ5040)。要求に対して応答があると判定された場合、処理はステップ5050に進む。一方、応答がないと判定された場合、処理はステップ5300に進む。
ステップ5040において、応答がないと判定された場合、自SVP500(この例において、SVP500b(SVPA))を冗長化することができる待機SVPが、計算機システム1内に存在しない。すなわち、この場合、自SVP500がSPOF(Sigle Point Of Failure、単一障害点)となる。このため、制御部506は、SPOFを管理者に通知し(ステップ5300)、ステップ5090に進む。ステップ5300において、例えば、管理者が使用する管理計算機600に障害状態が表示され、さらに、管理者に電子メールが送信される。
ステップ5040において、応答があると判定された場合、制御部506は、冗長再構成計算テーブル2600bを作成し、DKC台数が最も小さい待機SVPを取得する(ステップ5050)。
ここで、図10を参照して、ステップ5050においてSVP500bが作成する冗長再構成計算テーブル2600bを説明する。なお、冗長再構成計算テーブル2600bは、SVP500bが作成する冗長再構成計算テーブル2600である。
図10は、本発明の実施の形態の冗長再構成計算テーブル2600の説明図である。
冗長再構成可否応答要求に対する応答には、応答したSVP500の識別子であるSVP_ID、第2のインターフェイスのアドレスAddr2、応答したSVP500によって冗長化されている稼動SVPの数である稼動SVP台数、及び、それらの稼動SVPが管理するストレージシステム400の数であるDKC台数が含まれる。冗長再構成可否応答プログラム8000については、後で説明する(図13参照)。
例として、ステップ5040において、待機SVPであるSVP500d(SVPB)、SVP500f(SVPC)及びSVP500k(SVPD)から応答があったと仮定する。冗長再構成計算テーブル2600bは、SVP_ID2601b、Addr2_2602b、稼動SVP台数2603b、DKC台数2604b及び設置階数2605bを含む。
図3(a)に示すように、SVP500d(SVPB)は、識別子「SVPB」によって識別される。SVP500d(SVPB)は、一つの稼動SVP(すなわちSVP500c(SVP2))を冗長化する。SVP500c(SVP2)は、一つのストレージシステム400(すなわちストレージシステム400b(DKC2))を管理する。さらに、この例において、SVP500d(SVPB)の第2のインターフェイスのアドレスAddr2が「AddrSB2」であり、SVP500d(SVPB)が4階に設置されていると仮定する。この場合、SVP500d(SVPB)は、SVP_IDとして「SVPB」、Addr2として「AddrSB2」、稼動SVP台数として「1」、DKC台数として「1」、設置階数として「4」を応答する。これらが、冗長再構成計算テーブル2600bのカラム2601bから2605bに格納される。
SVP500f(SVPC)及びSVP500k(SVPD)からの応答に含まれる値も、同様に冗長再構成計算テーブル2600bに格納される。ステップ5050において選択される待機SVPは、DKC台数2604bが最も少ないSVP500d(SVPB)である。
結局、DKC台数2604bは、待機SVPがDKCデータリポジトリ50000に保持しているデータの取得元であるストレージシステム400の数である。例えば、図3(a)によれば、SVP500d(SVPB)は、SVP500c(SVP2)がストレージシステム400b(DKC2)から取得した管理のためのデータをDKCデータリポジトリ50000dに保持している。このため、SVP500d(SVPB)が保持するデータの取得元であるストレージシステム400の数は、「1」である。一方、SVP500f(SVPC)は、SVP500e(SVP3)がストレージシステム400c(DKC3)から取得した管理のためのデータ、及び、SVP500g(SVP4)がストレージシステム400d(DKC4)から取得した管理のためのデータをDKCデータリポジトリ50000fに保持している。このため、SVP500f(SVPC)が保持するデータの取得元であるストレージシステム400の数は、「2」である。
再び図9を参照して、ステップ5060以降の処理を説明する。
SVPA(SVP500b)の制御部506は、稼動SVP−DKC管理テーブル2400bを参照する。その結果、ステップ5040にて応答しなかった稼動SVPであるSVP1が、ストレージシステム400a(DKC1)を管理していたこと、すなわち、SVP1が、ストレージシステム400a(DKC1)からデータを取得していたことがわかる。このため、制御部506は、SVP1がストレージシステム400a(DKC1)から取得したデータの複製を、SVPA(SVP500b)のDKCデータリポジトリ50000bから、SVPB(SVP500d)のDKCデータリポジトリ50000dにコピーする(ステップ5060)。ここで、SVPB(SVP500d)は、ステップ5050において選択された待機SVPである。SVP1がストレージシステム400a(DKC1)から取得したデータの複製は、図7のステップ30030においてSVPA(SVP500b)のDKCデータリポジトリ50000bに格納されたものである。
なお、SVP500間のデータのコピーは、インターフェイス504及びネットワーク20を介してSVP500がデータを送受信することによって実行される。あるいは、インターフェイス502及びネットワーク10を介してデータが送受信されてもよい。
次に、SVPA(SVP500b)の制御部506は、ステップ5050において選択された待機SVPであるSVPB(SVP500d)上の冗長構成稼動SVPテーブル2300d及び稼動SVP−DKC管理テーブル2400dに、エントリを追加する(ステップ5070)。
具体的には、制御部506は、ステップ5020で設定した管理DKCテーブル2100b及びSVP状態テーブル2500bを参照する。その結果、自SVP500の識別子が「SVPA」であり、自SVP500がストレージシステム400a(DKC1)をこれから管理する(すなわち、その管理をSVP1から引継いだ)ことがわかる。そして、制御部506は、冗長構成稼動SVPテーブル2300dに、SVPAを稼動SVP_ID2301dとして含むエントリを追加する。さらに、制御部506は、SVPA及びDKC1をそれぞれ稼動SVP_ID2401d及びDKC_ID2402dとして含むエントリを追加する。
これらのエントリの追加は、例えば、SVPA(SVP500b)がSVPB(SVP500d)に追加の指示を送信することによって実行される。この指示を受信したSVPB(SVP500d)の制御部506は、指示に従ってエントリを追加する。その結果、SVPAの待機SVPとなるSVPBの冗長構成稼動SVPテーブル2300d及び稼動SVP−DKC管理テーブル2400dに、SVPA及びDKC1に関するエントリが追加される(図11参照)。
すなわち、ステップ5070が実行された結果、SVPB(SVP500d)の制御部506は、自SVP500がSVPA(SVP500b)を冗長化していること、言い換えると、SVPA(SVP500b)に障害が発生したとき、自SVP500が、ストレージシステム400a(DKC1)の管理をSVPA(SVP500b)から引継ぐ必要があることを知ることができる。
次に、SVPA(SVP500b)の制御部506は、ステップ5050において選択した待機SVPの識別子「SVPB」を、待機SVPテーブル2200bに追加する(ステップ5080)。
以上の処理によって、ステップ4030において応答しなかった稼動SVPであるSVP1の動作が、SVPB(SVP500d)に引継がれ、さらに、冗長構成700が再構成される。上記のように、SVP1に障害が発生し、SVPAがフェイルオーバーした後、SVPBを待機SVPとする冗長構成700が再構成された状態を図3(b)に示す。SVPA(SVP500b)がDKC1を管理し、SVP2がDKC2を管理し、SVPAとSVP2がSVPBによって、冗長化されている。
このように、例えばSVP1に障害が発生すると、SVPA(SVP500b)がSVP1をフェイルオーバーすることによって、新たな稼動SVPとして動作する。このため、SVPA(SVP500b)が属する冗長構成700aは、待機SVPを含まなくなる。この場合、一つ以上の待機SVPを含むように、冗長構成700が再構成される。具体的には、SVP1及びSVPA(SVP500b)からなる冗長構成700a、及び、SVP2(SVP500c)及びSVPB(SVP500d)からなる冗長構成700bが解除され、これらの四つのSVP500を含む新たな冗長構成700eが構成される。冗長構成700eは、二つの稼動SVP(すなわちSVPA(SVP500b)及びSVP2(SVP500c))と、これらの稼動SVPを冗長化する一つの待機SVP(すなわちSVPB(SVP500d))と、を含む。
図11は、本発明の実施の形態において冗長構成が再構成された後の待機SVPであるSVP500d(SVPB)が保持するテーブルの説明図である。
具体的には、図11は、SVPB(SVP500d)が保持する管理DKCテーブル2100d、待機SVPテーブル2200d、冗長構成稼動SVPテーブル2300d、稼動SVP−DKC管理テーブル2400d及びSVP状態テーブル2500dを示す。これらのテーブルが管理する項目の概要は、図4及び図5において説明した通りである。以下、上記の例における冗長構成700eのSVPB(SVP500d)において、これらのテーブルに設定される具体的な値を説明する。
SVPB(SVP500d)は待機SVPであるため、管理DKCテーブル2100d及び待機SVPテーブル2200dは、エントリを含まない。
SVPB(SVP500d)は二つのSVPを冗長化している。このため、冗長構成稼動SVPテーブル2300dは、二つのエントリを含む。
第1のエントリの稼動SVP_ID2301d、SVP_Addr1_2302d、SVP_Addr2_2303d、監視2304d及びDKC数2305dには、それぞれ、「SVP2」、「AddrS21」、「AddrS22」、「Y」及び「1」が設定される。
「SVP2」は、SVPB(SVP500d)によって冗長化されるSVP2(SVP500c)の識別子である。「AddrS21」は、SVP2(SVP500c)の第1のインターフェイス502のアドレスである。「AddrS22」は、SVP2(SVP500c)の第2のインターフェイス504のアドレスである。監視2304dの値「Y」は、SVPB(SVP500d)がSVP2(SVP500c)を監視することを示す。SVP2(SVP500c)が一つのストレージシステム400b(DKC2)のみを管理しているため、DKC数2305dには「1」が設定される。
第2のエントリの稼動SVP_ID2301d、SVP_Addr1_2302d、SVP_Addr2_2303d、監視2304d及びDKC数2305dには、それぞれ、「SVPA」、「AddrS11」、「AddrSA2」、「Y」及び「1」が設定される。
「SVPA」は、SVPB(SVP500d)によって冗長化されるSVPA(SVP500b)の識別子である。「AddrS11」は、SVPA(SVP500b)の第1のインターフェイス502のアドレスである。この「AddrS11」は、「AddrS11」は、障害が発生したSVP1において設定されていたものと同じアドレスである。(図9のステップ5020参照)「AddrSA2」は、SVPA(SVP500b)の第2のインターフェイス504のアドレスである。監視2304dの値「Y」は、SVPB(SVP500d)がSVPA(SVP500b)を監視することを示す。SVPA(SVP500b)が一つのストレージシステム400a(DKC1)のみを管理しているため、DKC数2305dには「1」が設定される。
SVPB(SVP500d)は二つのSVPを冗長化しており、これらのSVPはそれぞれ一つのストレージシステムを管理している。このため、稼動SVP−DKCテーブル2400dは、二つのエントリを含む。
第1のエントリの稼動SVP_ID2401d、DKC_ID2402d及びDKC_Addr2403dには、それぞれ、「SVP2」、「DKC2」及び「AddrD2」が設定される。
「SVP2」は、SVPB(SVP500d)によって冗長化されるSVP2(SVP500c)の識別子である。「DKC2」は、SVP2(SVP500c)が管理しているストレージシステム400b(DKC2)の識別子である。「AddrD2」は、ストレージシステム400b(DKC2)のインターフェイス490のアドレスである。
第2のエントリの稼動SVP_ID2401d、DKC_ID2402d及びDKC_Addr2403dには、それぞれ、「SVPA」、「DKC1」及び「AddrD1」が設定される。
「SVPA」は、SVPB(SVP500d)によって冗長化されるSVPA(SVP500b)の識別子である。「DKC1」は、SVPA(SVP500b)が管理しているストレージシステム400a(DKC1)の識別子である。「AddrD1」は、ストレージシステム400a(DKC1)のインターフェイス490のアドレスである。
SVP状態テーブル2500dは、SVPB(SVP500d)が保持するSVP状態テーブル2500である。SVP_ID2501d、SVP_Addr1_2502d及びSVP_Addr2_2503dには、それぞれ、SVPB(SVP500d)の識別子である「SVPB」、SVPB(SVP500d)の第1のインターフェイス502のアドレス「AddrSB1」、及び第2のインターフェイス504のアドレス「AddrSB2」が設定される。状態2504dには、SVPB(SVP500d)が待機SVPとして動作することを示す「待機」が設定される。再構成可否2505dには、再構成要求に対して応答することを示す「可」が設定される。設置階数2506dには、「4」が設定されている。これは、SVPB(SVP500d)が4階に設置されていることを示す。
一方、冗長構成700の再構成の結果、新たな稼動SVPとなったSVPA(500b)が保持するテーブルは、次のように更新される。
DKC管理テーブル2100bのDKC_ID2101b及びDKC_Addr2102bは、それぞれ、「DKC1」及び「AddrD1」に更新される。これらは、障害が発生したSVP1において設定されていたものと同じである。
待機SVPテーブル2200bの待機SVP_ID2201b、SVP_Addr2_2202b及び監視2203bは、それぞれ、「SVPB」、「AddrSB2」及び「Y」に更新される。「SVPB」及び「AddrSB2」は、新たな待機SVP(すなわち、SVPA(500b)に障害が発生したときにSVPA(500b)をフェイルオーバーするSVP500)の識別子、及び、そのアドレスである。
冗長構成稼動SVPテーブル2300b及び稼動SVP−DKC管理テーブル2400bは、エントリを削除された結果、エントリを含まなくなる。
SVP状態テーブル2500bのSVP_Addr1_2502b、状態2504b及び再構成可否2505bは、それぞれ、「AddrS11」、「稼動」及び「不可」に更新される。
再び図9を参照して、ステップ5090以降の処理を説明する。
図3のSVPC(SVP500f)のように、一つの待機SVPが複数の稼動SVPを冗長化している場合がある。このような場合に、待機SVPが一つの稼動SVPをフェイルオーバーすると、冗長構成700の中の残りの稼動SVPを冗長化する待機SVPは存在しなくなる。すなわち、それらの残りの稼動SVPは、SPOFとなる。このような場合、フェイルオーバーして新たな稼動SVPとなるSVP500は、残りの稼動SVPがSPOFとならないように、冗長構成700を再構成する。
なお、図3(a)の例において、SVPAは、SVP1以外の稼動SVPを冗長化していなかったため、この処理は実行されない。以下、SVPC(SVP500f)を例にして説明する。具体的には、図3(a)においてSVP3(SVP500e)に障害が発生し、SVPC(SVP500f)がフェイルオーバーし、SVPB(SVP500d)がフェイルオーバーしたSVPCの待機SVPとして選択された場合を例として説明する。この場合、以下の処理によって、残りの稼動SVPであるSVP4(SVP500g)を冗長化する待機SVPを含む冗長構成700が再構成される。
なお、SVP3(SVP500e)、SVP4(SVP500g)、SVPC(SVP500f)及びSVPD(SVP500k)が保持するテーブルについては、図示を省略する。以下の説明において、これらのテーブルがどのSVP500によって保持されているかは、テーブルの名称の末尾に付加された「e」、「g」、「f」及び「k」の添字によって識別される。
SVPC(SVP500f)の制御部506は、冗長構成稼動SVPテーブル2300f及び稼動SVP−DKC管理テーブル2400fから、ステップ4030において応答しなかった稼動SVPであるSVP3(SVP500e)のエントリを削除する(ステップ5090)。
次に、制御部506は、冗長構成稼動SVPテーブル2300fを参照し、冗長構成稼動SVPテーブル2300fにエントリがあるか否かを判定する(ステップ5100)。冗長構成稼動SVPテーブル2300fにエントリがあると判定された場合、処理はステップ5110に進む。エントリがないと判定された場合、処理を終了する(B)。
ステップ5100において、エントリがあると判定された場合、フェイルオーバーした待機SVPは、ステップ4030において応答しなかった稼動SVP以外の稼動SVPの待機SVPにもなっている。すなわち、フェイルオーバーした待機SVPが属する冗長構成700は、障害が発生したSVP500のほかにも、その待機SVPによって冗長化される稼動SVPを含んでいる。例えば、冗長構成700cは、障害が発生したSVP3(SVP500e)のほかにも、SVPC(SVP500f)によって冗長化されるSVP4(SVP500g)を含んでいる。この場合、これらの稼動SVPについても、冗長構成700を再構成する。つまり、冗長構成稼動SVPテーブル2300fには、SVP3(SVP500e)のエントリが削除された後にも、SVP4のエントリがあるため、ステップ5110に進む。そして、SVP4(SVP500g)についても、冗長構成700が再構成される。現時点では、SVP3(SVP500e)をフェイルオーバーしたSVPC(SVP500f)は、SVPB(SVP500d)によって冗長化されているが、SVP4(SVP500g)は冗長化されていない状態である。
SVPC(SVP500f)の制御部506は、冗長構成稼動SVPテーブル2300fから、稼動SVPの識別子であるSVP4を取得する(ステップ5110)。そして、制御部506は、冗長再構成可否応答要求を、ネットワーク20を介してブロードキャストする(ステップ5120)。
制御部506は、ステップ5120の要求に対する応答があるか否かを判定する(ステップ5130)。ステップ5130において、応答があると判定された場合、処理はステップ5140に進む。応答がないと判定された場合、処理はステップ5400に進む。
ステップ5130において、応答がないと判定された場合、稼動SVPであるSVP4(SVP500g)を冗長化することができない。すなわち、SVP4(SVP500g)はSPOFとなる。この場合、制御部506は、SPOFを管理者に通知し(ステップ5400)、ステップ5180に進む。管理者への通知において、管理者が使用する管理計算機600での障害状態の表示、及び、管理者への電子メールの送付が行われる。
ステップ5130において、応答があると判定された場合、受信した応答に基づいて冗長再構成計算テーブル2600fを作成し、DKC台数が最も小さい待機SVPを選択する(ステップ5140)。
例として、ステップ5120において、SVPC(SVP500f)からの要求に対して、SVPA(SVP500b)、SVPB(SVP500d)及びSVPD(SVP500k)が応答し、ステップ5140においてSVPD(SVP500k)が選択されたと仮定する。
制御部506は、稼動SVP−DKC管理テーブル2400fを参照する。その結果、ステップ5110において取得した稼動SVPであるSVP4(SVP500g)がストレージシステム400d(DKC4)を管理していることがわかる。このため、制御部506は、SVP4(SVP500g)がストレージシステム400d(DKC4)から取得したデータの複製を、SVP4(SVP500g)のDKCデータリポジトリ50000gから、ステップ5140において選択された待機SVPであるSVPD(SVP500k)のDKCデータリポジトリ50000kにコピーする(ステップ5150)。
次に、制御部506は、ステップ5140において選択された待機SVPであるSVPD(SVP500k)上の冗長構成稼動SVPテーブル2300k、稼動SVP−DKC管理テーブル2400kに、ステップ5110において取得した稼動SVPであるSVP4(SVP500g)のエントリを追加する(ステップ5160)。つまり、SVP4の待機SVPとなるSVPDの冗長構成稼動SVPテーブル2300kと稼動SVP−DKC管理テーブル2400kに、SVP4とDKC4のエントリを追加する。この追加は、ステップ5070と同様の方法によって実行される。
次に、制御部506は、ステップ5110において取得した稼動SVPであるSVP4(SVP500g)上の待機SVPテーブル2200gのエントリを、ステップ5140において選択された待機SVPであるSVPD(SVP500k)のエントリに変更する(ステップ5170)。つまり、制御部506は、SVP4の待機SVPとして設定されていたSVPCを、SVPDに変更する。
次に、制御部506は、稼動SVP−DKC管理テーブル2400fを参照し、ステップ5110において取得した稼動SVPであるSVP4が管理するストレージシステム400d(DKC4)から取得したデータを、DKCデータリポジトリ50000fから削除する(ステップ5180)。
次に、制御部506は、冗長構成稼動SVPテーブル2300fと稼動SVP−DKC管理テーブル2400fから、ステップ5110において取得した稼動SVPであるSVP4(SVP500g)のエントリを削除する(ステップ5190)。
ステップ5140において、DKC台数の最も小さい待機SVPを取得し、冗長構成700を再構成することで、待機SVPが冗長化のために格納する、ストレージシステム400から取得したデータが、待機SVPに略均等に分散される。これによって、待機SVPの負荷が分散される。
また、SVP500が備えるDKCデータリポジトリ50000に格納できるデータの容量は有限である。このため、DKCデータリポジトリ50000に格納されたデータ量が所定の値を超えると、古いデータから順に削除される。多くのストレージシステム400から取得されたデータを保持するSVP500であるほど、1台のストレージシステム400からのデータを格納するために割り当てられるDKCデータリポジトリ50000の容量は小さくなる。したがって、そのようなSVP500は、ストレージシステム400から取得されたデータを長期間保持することができない。上記のようにストレージシステム400から取得されたデータを各SVP500に適切に分散することによって、容量が有限であるDKCデータリポジトリ50000に格納するストレージシステム400の1台あたりのデータ量を大きく(すなわちデータの蓄積期間を長く)することができる。
なお、ステップ5050又はステップ5140において、DKC台数が最も少ない待機SVPが複数存在する場合、新たな稼動SVPと地理的に近い位置に設置された待機SVPが選択されてもよい。地理的な位置は、いかなる座標によって表現されてもよい。例えば、計算機システム1に含まれるSVP500が、一つの建物の複数の階に設置されている場合、設置階数が最も近い待機SVPが選択されてもよい。このように、地理的に近い待機SVPを選択することで、SVP500自体の機器保守など直接SVP機器を扱う作業が必要であるときに、作業者が冗長構成700に含まれる複数のSVP500の間を移動する手間を省くことができる。
<待機SVP監視プログラム6000>
待機SVPは、ストレージシステム400を管理しない。しかし、待機SVPに障害が発生すると、その後稼動SVPに障害が発生したときにフェイルオーバーすることができない。言い換えると、待機SVPに障害が発生すると、その待機SVPによって冗長化されている稼動SVPはSPOFとなる。このため、稼動SVPは、待機SVPを監視し、待機SVPに障害が発生したときに冗長構成700を再構成する必要がある。
待機SVP監視プログラム6000は、稼動SVPが待機SVPの稼動状況を監視するためのプログラムである。待機SVP監視プログラム6000は、SVP500の制御部506によって、記憶装置512から読み出され、実行される。待機SVP監視プログラム6000は、稼動SVPの制御部506によって、監視プログラム3000のステップ3030において実行される。例えば、図3(a)のSVP500a(SVP1)が実行する。
図12は、本発明の実施の形態の待機SVP監視プログラム6000の処理を示すフローチャートである。
例として、SVP500a(SVP1)の制御部506によって実行される場合について説明する。
最初に、制御部506は、ステップ6010にて、待機SVPテーブル2200aから、待機SVPの識別子すなわちSVPA(SVP500b)を取得する。
次に、制御部506は、ステップ6010にて取得した待機SVPであるSVPA(SVP500b)に対して、稼動状況応答を要求する(ステップ6020)。
次に、制御部506は、ステップ6020の要求に対して応答があるか否かを判定する(ステップ6030)。ステップ6020の要求に対して応答があると判定された場合、ステップ6010にて取得した待機SVPであるSVPA(SVP500b)は正常に稼動している。この場合、冗長構成700を再構成する必要がないため、制御部506は処理を終了する。ここで、稼動状況応答要求及びそれに対する応答は、例えば、ネットワーク20を介したハートビートである。
ステップ6030において、応答がないと判定された場合、ステップ6010にて取得した待機SVPであるSVPA(SVP500b)に障害が発生している。この場合、制御部506は、冗長再構成可否応答要求をブロードキャストする(ステップ6040)。
次に、制御部506は、ステップ6040の冗長再構成可否応答要求に対して応答があるか否かを判定する(ステップ6050)。ステップ6040の冗長再構成可否応答要求に対して応答があると判定された場合、処理はステップ6060に進む。一方、応答がないと判定された場合、処理はステップ6100に進む。
ステップ6050において、応答があると判定された場合、制御部506は、応答に基づいて冗長再構成計算テーブル2600aを作成し、DKC台数2604の最も小さい待機SVPを選択する(ステップ6060)。ここで、例として、SVP1(SVP500a)からの要求に対して、SVPB、SVPC及びSVPDが応答し、ステップ6060においてSVPBが選択されたと仮定する。
制御部506は、ステップ6060において選択された待機SVPであるSVPB(SVP500d)の冗長構成稼動SVPテーブル2300d及び稼動SVP−DKC管理テーブル2400dに、自SVP500すなわちSVP1(SVP500a)及び自SVP500が管理するストレージシステム400a(DKC1)のエントリを追加する(ステップ6070)。この追加は、図9のステップ5070と同様の方法で実行されてもよい。
次に、制御部506は、管理DKCテーブル2100aを参照する。その結果、自SVP500がストレージシステム400a(DKC1)を管理していることがわかる。制御部506は、ステップ6060において選択された待機SVPであるSVPB(SVP500d)のDKCデータリポジトリ50000dに、自SVP500が管理するストレージシステム400a(DKC1)から取得したデータを、DKCデータリポジトリ50000aからコピーする(ステップ6080)。
次に、制御部506は、待機SVPテーブル2200aの待機SVP_ID2201aを、ステップ6030において応答しなかった待機SVPであるSVPA(SVP500b)から、ステップ6060において選択された待機SVPであるSVPB(SVP500d)に変更し(ステップ6090)、処理を終了する。
ステップ6050において、応答がないと判定された場合、稼動SVPを冗長化することができない。すなわち、稼動SVPであるSVP1(SVP500a)は、SPOFとなる。この場合、制御部506は、待機SVPテーブル2200aから、ステップ6030において応答しなかった待機SVPであるSVPA(SVP500a)のエントリを削除し、SPOFを管理者に通知する(ステップ6100)。管理者への通知では、管理者が使用する管理計算機600での障害状態の表示、及び、管理者への電子メールの送付が行われる。
ステップ6050において、DKC台数の最も小さい待機SVPを取得し、冗長構成700を再構成することで、待機SVPが冗長化のために格納する、ストレージシステム400から取得したデータが、待機SVPに略均等に分散される。これによって、待機SVPの負荷が分散される。
また、図9において説明したように、限られた記憶領域に格納するストレージシステム400の1台あたりのデータ量を大きく(すなわちデータの蓄積期間を長く)することができる。
なお、図9において説明したように、ステップ6060において、DKC台数が最も少ない待機SVPが複数存在する場合、稼動SVPと地理的に近い位置に設置された待機SVPが選択されてもよい。地理的な位置は、いかなる座標によって表現されてもよい。例えば、計算機システム1に含まれるSVP500が、一つの建物の複数の階に設置されている場合、SVP状態テーブル2500の設置階数2506と冗長再構成計算テーブルの設置階数2604とを比較し、それらの設置階数が同じ又は最も近い待機SVPを選択してもよい。このように、地理的に近い待機SVPを選択することで、SVP自体の機器保守など直接SVP機器を扱う作業が必要であるときに、作業者が冗長構成700に含まれる複数のSVP500の間を移動する手間を省くことができる。
<冗長再構成可否応答プログラム8000>
冗長再構成可否応答プログラム8000は、SVP500の制御部506によって、記憶装置512から読み出され、実行される。
冗長再構成可否応答プログラム8000は、SVP500が、他のSVP500からネットワーク20を介して冗長再構成可否応答要求を受けたときに、制御部506によって実行される。
図13は、本発明の実施の形態の冗長再構成可否応答プログラム8000の処理を示すフローチャートである。
制御部506は、ステップ8010にて、冗長再構成可否応答要求を受け付ける。
次に、制御部506は、SVP状態テーブル2500の再構成可否2505を参照し、再構成できるか否かを判定する(ステップ8020)。
ステップ8020において、SVP状態テーブル2500の再構成可否2505が「不可」であると判定された場合、制御部506は処理を終了する。
ステップ8020において、SVP状態テーブル2500の再構成可否2505が「可」であると判定された場合、制御部506は、SVP状態テーブル2500のSVP_ID2501、SVP_Addr2_2503、設置階数2506及び冗長構成稼動SVPテーブル2300を参照し、稼動SVP数とDKC数2305の合計を要求元に応答し(ステップ8030)、処理を終了する。稼動SVP数とは、冗長構成稼動SVPテーブル2300に含まれるエントリの数である。DKC数2305の合計とは、冗長構成稼動SVPテーブル2300に含まれるエントリのDKC数2305の合計値である。
例えば、SVP500bの制御部506が冗長再構成可否応答プログラム8000を実行する場合を例として説明する。この場合、制御部506は、ステップ8030においてSVP状態テーブル2500bを参照し、SVP_ID2501としてSVPA、SVP_Addr2_2503としてAddrSA2、設置階数2506として3を応答する。さらに、制御部506は、冗長構成稼動SVPテーブル2300bを参照し、稼動SVP数として1、DKC数の合計として1を応答する。
稼動SVP数及びDKC数の合計は、待機SVPが複数の稼動SVPを冗長化している場合には、複数となる。例えば、図3(a)のSVP500f(SVPC)であれば、稼動SVP数は2、DKC数の合計は2である。
また、冗長構成稼動SVPテーブル2300にエントリがない場合には、稼動SVP数及びDKC数の合計はいずれも0となる。
<論理図2>
図14は、本発明の実施の形態のストレージシステム400とSVP500との関係を論理的に示す説明図である。
図14(a)は、図3(a)と同じである。図14(b)は、図14(a)に新しくSVPE(SVP500m)を追加し、冗長構成700を再構成した後の状態である。図14(c)は、図14(b)に、さらにSVPG(SVP500n)を追加した後の状態である。SVPGは、待機SVPのスペアとなっており、冗長構成700は再構成されていない。
このように、新規にSVP500を計算機システム1に追加したとき、又は、障害の発生したSVP500を復旧させる(フェイルバックする)ときに実行されるSVPフェイルバックプログラム10000を次に説明する。
<SVPフェイルバックプログラム10000>
SVPフェイルバックプログラム10000は、SVP500の制御部506によって、記憶装置512から読み出され、実行される。
SVPフェイルバックプログラム10000は、新規にSVP500を計算機システム1に追加したとき、又は、障害の発生したSVP500を復旧させる(フェイルバックする)ときに、管理者が管理計算機600から新規に追加したSVP500、又は復旧したSVP500を指定して実行する。あるいは、管理者が新規に追加したSVP500、又は復旧したSVP500を直接使用して実行してもよい。
図15は、本発明の実施の形態のSVPフェイルバックプログラム10000の処理を示す説明図である。
例として、図14(a)に示す計算機システム1に、SVP500m(SVPE)を追加する場合について説明する。
管理者は、SVPフェイルバックプログラム10000の実行前に、SVP500mを識別する識別子「SVPE」、SVP500m(SVPE)の第1のインターフェイスのアドレス「AddrSE1」、第2のインターフェイスのアドレス「AddrSE2」、状態「待機」、及び再構成可否「可」をSVP状態テーブル2500m(図示省略)に設定する。
SVPフェイルバックプログラム10000が実行されると、SVP500m(SVPE)の制御部506は、ネットワーク20を介して、冗長再構成可否応答要求をブロードキャストする(ステップ10010)。
制御部506は、冗長再構成可否応答要求に対して応答があるか否かを判定する(ステップ10020)。冗長再構成可否応答要求に対して応答があると判定された場合、処理はステップ10030に進む。応答がないと判定された場合には制御部506は処理を終了する。
ステップ10020にて応答があると判定された場合、制御部506は、応答に基づいて冗長再構成計算テーブル2600を作成し、稼動SVP台数2603が2台以上かつDKC台数2604が最も多いSVP_ID2601を取得する(ステップ10030)。稼動SVPは、冗長再構成可否応答要求に対して応答しないため、ステップ10030で取得されるのは、待機SVPである。
例えば、ステップ10020において、待機SVPであるSVP500b(SVPA)、SVP500d(SVPB)、SVP500f(SVPC)及びSVP500k(SVPD)から応答があったと仮定する。図14(a)に示すように、SVPAは、稼動SVP台数として1、DKC台数として1を応答する。SVPBは、稼動SVP台数として1、DKC台数として1を応答する。SVPCは、稼動SVP台数として2、DKC台数として2を応答する。SVPDは、稼動SVP台数として1、DKC台数として2を応答する。制御部506は、受信した応答に含まれる上記の稼動SVP台数及びDKC台数を、それぞれ、冗長再構成計算テーブル2600の稼動SVP台数2603及びDKC台数2604として設定する。ステップ10030において、選択される待機SVPは、稼動SVPが2台以上かつDKC台数が最も多いSVPCである。
制御部506は、ステップ10030の条件に該当する待機SVPがあるか否かを判定する(ステップ10040)。該当する待機SVPがあると判定された場合、処理はステップ10050に進む。該当する待機SVPがないと判定された場合、制御部506は処理を終了する。図14(a)にSVP500m(SVPE)を追加した場合は、前記のように待機SVPとしてSVPCが条件に該当する。ステップ10030の条件に該当する待機SVPがない場合については、後で説明する。
ステップ10040において、ステップ10030の条件に該当する待機SVPがある場合、該当する待機SVPに負荷が集中していると考えられる。すなわち、該当する待機SVPのデータリポジトリ50000には、多くのストレージシステム400から取得されたデータが格納されるため、データの蓄積期間が他の待機SVPと比較して短くなっている。この場合、追加されたSVP500m(SVPE)を用いて、該当する待機SVPの負荷が分散するように、冗長構成700が再構成される。
制御部506は、該当する待機SVP(すなわちステップ10030にて取得した待機SVP)であるSVPC(SVP500f)の冗長構成稼動SVPテーブル2300fを取得する(ステップ10050)。
次に、制御部506は、ステップ10050において取得したSVPCの冗長構成稼動SVPテーブル2300fに含まれるエントリを、それぞれのグループにおけるDKC数2305の合計が均等になるように、二つのグループに分割する(ステップ10060)。完全に均等に分割できない場合、最も均等に近くなるように分割されてもよい。このような分割は、例えば、DKC数2305が少ないエントリから順に、二つのグループに交互に分けてゆくことによって実行されてもよい。
SVPCの例では、冗長構成稼動SVPテーブル2300fは、稼動SVP_ID2301がSVP3であるエントリと、SVP4であるエントリの二つを含む。SVP3はDKC3を、SVP4はDKC4を管理している。この場合、SVP3のエントリからなるグループとSVP4のエントリからなるグループに分けられる。そして、制御部506は、各グループに含まれる稼動SVPを取得する。この例では、一方のグループに属するSVP3と、もう一方のグループに属するSVP4とが取得される。
制御部506は、ステップ10060において二つのグループに分割した稼動SVPのうち、DKC数2305の合計がより小さい方のグループに属する稼動SVPを選択する。上記の例ではDKC数2305の合計がともに1であるため、どちらを選択してもよい。ここでは、SVP4が選択された場合について説明する。
制御部506は、ステップ10030にて取得した待機SVP(すなわちSVPC(SVP500f))が保持する冗長構成稼動SVPテーブル2300f及び稼動SVP−DKC管理テーブル2400fのエントリのうち、SVP4(SVP400g)に関するエントリ(すなわち、稼動SVP_IDとして「SVP4」が設定されているエントリ)を、SVPフェイルバックプログラム10000を実行するSVPE(SVP500m)の待機SVPの冗長構成稼動SVPテーブル2300m及び稼動SVP−DKC管理テーブル2400mに追加(コピー)する(ステップ10070)。このコピーは、ステップ10030にて取得した待機SVPに、必要なエントリのデータを送信させる要求を、SVPフェイルバックプログラム10000を実行するSVPE(SVP500m)が送信することによって実行されてもよい。
つまり、SVP4(SVP400g)の待機SVPをSVPC(SVP500f)からSVPE(SVP500m)に変更するために、制御部506は、SVPC(SVP500f)の冗長構成稼動SVPテーブル2300f及び稼動SVP−DKC管理テーブル2400fから、SVPE(SVP500m)の冗長構成稼動SVPテーブル2300m及び稼動SVP−DKC管理テーブル2400mに、SVP4(SVP400g)に関するエントリをコピーする。
次に、制御部506は、ステップ10030において取得したSVPC(SVP500f)のDKCデータリポジトリ50000fから、ステップ10070にてエントリを追加されたSVP4(SVP400g)が管理するストレージシステム400d(DKC4)から取得されたデータを、SVPフェイルバックプログラムを実行するSVPE(SVP500m)のDKCデータリポジトリ50000mにコピーする(ステップ10080)。このコピーも、ステップ10070と同様、送信要求を送信することによって実行されてもよい。
次に、制御部506は、ステップ10070にて、SVP4(SVP400g)の待機SVPテーブル2200gの待機SVP_ID2201gを、SVPC(SVP500f)から、SVPフェイルバックプログラムを実行するSVPE(SVP500m)に変更する(ステップ10090)。
次に、制御部506は、ステップ10030において取得した待機SVPであるSVPC(SVP500f)の冗長構成稼動SVPテーブル2300f及び稼動SVP−DKC管理テーブル2400fから、稼動SVPであるSVP4(SVP500g)に関するエントリを削除する(ステップ10100)。その結果、それまでSVPC(SVP500f)によって冗長化されていたSVP4(SVP500g)は、SVPE(SVP500m)によって冗長化される。
以上で、制御部506は処理を終了する。
SVPE(SVP500m)の追加及びSVPフェイルバックプログラム10000の実行によって、図14(a)に示す稼動SVP3、稼動SVP4及び待機SVPCによる冗長構成700cが、図14(b)に示す稼動SVP3と待機SVPCとによる冗長構成700f、及び、SVP4とSVPEとによる冗長構成700gに再構成される。
上記図14及び図15は、SVPE(SVP500m)が新たに追加された場合を例として説明したが、SVPE(SVP500m)が障害から回復した場合にも同様の処理が実行される。
SVPフェイルバックプログラム10000の実行によって、新規のSVP500の追加及び障害から回復したSVP500のフェイルバックを、管理者がストレージシステム400とSVP500の構成を手動にて変更することなく、容易に自動的に行うことができる。
また、ステップ10030において、DKC台数の最も多い待機SVPを選択し、冗長構成700を再構成することで、待機SVPが冗長化のために格納するストレージシステム400のデータが待機SVPに均等に分散される。これによって、待機SVPの負荷が分散され、また、限られた記憶領域に格納するストレージシステム400の1台あたりのデータ量を大きく(すなわちデータの蓄積期間を長く)することができる。
さらに、ステップ10030において、DKC台数が最も多い待機SVPが複数存在する場合、新たに追加されたSVP500と地理的に近い位置に設置された待機SVPが選択されてもよい。地理的な位置は、いかなる座標によって表現されてもよい。例えば、計算機システム1に含まれるSVP500が、一つの建物の複数の階に設置されている場合、新たに追加されたSVP500のSVP状態テーブル2500の設置階数2506と冗長再構成計算テーブル2600の設置階数2605とを比較してもよい。この場合、設置階数2506と同じ又は最も近い設置階数2605を有する待機SVPを選択してもよい。このように、地理的に近い待機SVPを選択することで、SVP自体の機器保守など直接SVP機器を扱う作業が必要であるときに、作業者が冗長構成700となる複数のSVP500の間を移動する手間を省くことができる。
ステップ10040において、該当する待機SVPがないと判定された場合について、説明する。図14(b)に示す計算機システム1に、さらにSVPG(SVP500n)を追加した場合を例にして説明する。
管理者は、SVPG(SVP500n)を追加するとき、SVPE(SVP500m)の場合と同様、SVPフェイルバックプログラム10000の実行前に、SVP500nを識別する識別子「SVPG」、第1のインターフェイスのアドレス「AddrSG1」、第2のインターフェイスのアドレス「AddrSG2」、状態「待機」及び再構成可否「可」を、SVP状態テーブル2500n(図示省略)に設定する。
ステップ10010において、SVPG(SVP500n)の制御部506が、冗長再構成可否応答要求をブロードキャストする。
ステップ10020において、待機SVPであるSVP500b(SVPA)、SVP500d(SVPB)、SVP500f(SVPC)、SVP500k(SVPD)及びSVP500m(SVPE)から応答があったと仮定する。図14(b)に示すように、SVPAは、稼動SVP台数として1、DKC台数として1を応答する。SVPBは、稼動SVP台数として1、DKC台数として1を応答する。SVPCは、稼動SVP台数として2、DKC台数として1を応答する。SVPDは、稼動SVP台数として1、DKC台数として2を応答する。SVPEは、稼動SVP台数として1、DKC台数として1を応答する。
ステップ10030において、選択される待機SVPの条件である、稼動SVPが2台以上かつDKC台数が最も多い待機SVPが選択される。しかし、上記の例では稼動SVPが2台以上の待機SVPがない。このため、ステップ10040において、該当する待機SVPがないと判定され、処理が終了する。
その結果、SVPG(SVP500n)の冗長構成稼動SVPテーブル2300n及び稼動SVP−DKC管理テーブル2400nにはエントリがないため、SVPG(SVP500n)によって冗長化される稼動SVPはない。言い換えると、SVPG(SVP500n)は、冗長構成700を構成しない待機SVPとなる。このようなSVPは、待機SVPのスペアである(以降、このような待機SVPを待機SVPスペアと呼ぶ)。図14(c)は、このような待機SVPスペアであるSVPG(SVP500n)を含む計算機システム1を示す図である。
待機SVPスペアであるSVPG(SVP500n)は、冗長構成稼動SVPテーブル2300nにエントリを含まない。このため、SVPG(SVP500n)の制御部506は、冗長再構成可否応答要求を受けたとき、冗長再構成可否応答プログラム8000を実行することによって、稼動SVP数として0、DKC数として0を応答する。
稼動SVP監視プログラム4000及び待機SVP監視プログラム6000によれば、冗長再構成可否応答要求に対して、DKC台数の最も小さい待機SVPが選択される。このため、稼動SVP又は待機SVPに障害が発生し、冗長構成が再構成されるときに、優先的に待機SVPスペアが選択され、待機SVPスペアを含む冗長構成700が再構成される。
以上、本発明の一実施形態によれば、保守・管理装置は、別の保守・管理装置の異常を検出すると、冗長構成を再構成することによって、異常が発生した保守・管理装置によって発生するSPOFを回避する。
具体的には、正の保守・管理装置に異常が発生すると、副の保守・管理装置は、正の保守・管理装置を交代(フェイルオーバー)するとともに、計算機システムに存在する別の副の保守・管理装置を用いて、冗長構成を再構成する。
一方、副の保守・管理装置に異常が発生すると、正の保守・管理装置は、計算機システムに存在する別の副の保守・管理装置を用いて、冗長構成を再構成する。
上記のように、正又は副の保守・管理装置の一方に異常が発生すると、SPOFの発生を回避するため、別の副の保守・管理装置を含む冗長構成が再構成される。
このため、本発明の一実施形態によれば、ストレージシステムを管理する装置に障害が発生し、待機の管理装置がフェイルオーバーした後も、管理者の手動による設定を要することなく、SPOF(Sigle Point Of Failure)を回避することができる。このため、ストレージシステム管理の信頼性をより向上させることができる。
本発明の実施の形態の計算機システムの構成を示すブロック図である。 本発明の実施の形態のSVPの構成を示すブロック図である。 本発明の実施の形態のストレージシステムとSVPとの関係を論理的に示す説明図である。 本発明の実施の形態の稼動SVPが保持するテーブルの説明図である。 本発明の実施の形態の待機SVPが保持するテーブルの説明図である。 本発明の実施の形態において実行される監視プログラムの処理を示すフローチャートである。 本発明の実施の形態において実行されるDKCデータ取得プログラムの処理を示すフローチャートである。 本発明の実施の形態において実行される稼動SVP監視プログラムの処理を示すフローチャートである。 本発明の実施の形態において実行される稼動SVP監視プログラムの処理のうち、稼動SVPに障害が発生した場合に実行される処理を示すフローチャートである。 本発明の実施の形態の冗長再構成計算テーブルの説明図である。 本発明の実施の形態において冗長構成が再構成された後の待機SVPが保持するテーブルの説明図である。 本発明の実施の形態の待機SVP監視プログラムの処理を示すフローチャートである。 本発明の実施の形態の冗長再構成可否応答プログラムの処理を示すフローチャートである。 本発明の実施の形態のストレージシステムとSVPとの関係を論理的に示す説明図である。 本発明の実施の形態のSVPフェイルバックプログラムの処理を示す説明図である。
符号の説明
1 計算機システム
100 ファイバーチャネルスイッチ
200 計算機
400 ストレージシステム
410 記憶装置
420 記憶制御装置
500 SVP
600 管理計算機
700 冗長構成
2100 管理DKCテーブル
2200 待機SVPテーブル
2300 冗長構成稼動SVPテーブル
2400 稼動SVP−DKC管理テーブル
2500 SVP状態テーブル
2600 冗長再構成計算テーブル
3000 監視プログラム
4000 稼動SVP監視プログラム
6000 待機SVP管理プログラム
8000 冗長再構成可否応答プログラム
10000 SVPフェイルバックプログラム
30000 DKCデータ取得プログラム
50000 DKCデータリポジトリ

Claims (15)

  1. 複数のストレージシステムと、前記複数のストレージシステムを管理する複数の管理装置と、を備える計算機システムを制御する方法であって、
    前記各ストレージシステムは、データを格納する記憶装置と、前記記憶装置へのデータの格納を制御する制御装置と、を備え、
    前記各管理装置は、前記ストレージシステムから取得されたデータを受信する第1インターフェイスと、前記第1インターフェイスに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記第1インターフェイスは、前記複数の管理装置を通信可能に接続する第1ネットワークに接続され、
    前記複数の管理装置は、第1管理装置、第2管理装置及び第3管理装置を含み、
    前記第1管理装置、前記第2管理装置及び前記第3管理装置を含む前記複数の管理装置は、それぞれ、前記ストレージシステムから取得した前記管理データを他の前記管理装置に送信する稼動管理装置、又は、前記稼動管理装置から送信された前記管理データを受信する待機管理装置のいずれかであり、
    前記ストレージシステムは、第1ストレージシステムを含み、
    前記第1管理装置及び前記第2管理装置は、前記第1ストレージシステムの識別子及び前記第1ストレージシステムから取得した管理データを保持し、
    前記方法は、
    前記第1管理装置に障害が発生した場合、前記複数の管理装置のうち、保持している前記管理データの取得元である前記ストレージシステムの数が最も少ない前記待機管理装置を前記第3管理装置として選択する手順と、
    前記第2管理装置に保持されている前記第1ストレージシステムの識別子及び前記第1ストレージシステムから取得した前記管理データを、前記第2管理装置から、前記選択された第3管理装置に送信する手順と、
    前記第2管理装置から送信された前記第1ストレージシステムの識別子及び前記管理データを前記選択された第3管理装置が保持する手順と、を含むことを特徴とする方法。
  2. 前記複数のストレージシステムは、さらに第2ストレージシステムを含み、
    前記複数の管理装置は、さらに第4管理装置及び第5管理装置を含み、
    前記第1管理装置は、前記第1ストレージシステムから取得した前記管理データを前記第2管理装置に送信し、
    前記第4管理装置は、前記第2ストレージシステムから取得した前記管理データを前記第2管理装置に送信し、
    前記第2管理装置は、前記第1管理装置及び前記第4管理装置から前記管理データを受信し、前記受信した管理データを保持し、前記第1ストレージシステムの識別子及び前記第2ストレージシステムの識別子を保持し、
    前記方法は、さらに、
    前記第1管理装置に障害が発生した場合、前記複数の管理装置から前記第5管理装置を選択する手順と、
    前記第2管理装置に保持されている、前記第2ストレージシステムの識別子、及び、前記第4管理装置から受信した管理データを、前記第2管理装置から前記第5管理装置に送信する手順と、
    前記第2管理装置から送信された前記第2ストレージシステムの識別子及び前記管理データを前記第5管理装置が保持する手順と、を含み、
    前記複数の管理装置から前記第5管理装置を選択する手順は、保持している前記管理データの取得元である前記ストレージシステムの数が最も少ない前記待機管理装置を選択することによって実行されることを特徴とする請求項1に記載の方法。
  3. 前記各管理装置は、所定の要求に対して応答するか否かを示す情報を保持し、
    前記方法は、さらに、
    前記複数の管理装置から前記第3管理装置を選択する手順は、
    前記所定の要求を前記第2管理装置から前記複数の管理装置に送信する手順と、
    前記所定の要求に対して応答することを示す前記情報を保持する前記管理装置が応答を送信する手順と、
    前記所定の要求に対する応答を送信した前記複数の管理装置から前記第3管理装置を選択する手順と、を含み、
    前記応答は、前記応答を送信した前記管理装置の前記第1インターフェイスのアドレスと、前記応答を送信した前記管理装置が保持する前記管理データの取得元である前記ストレージシステムの数と、を含み、
    前記稼動管理装置が保持する前記情報は、前記所定の要求に対して応答しないことを示すことを特徴とする請求項1に記載の方法。
  4. 前記複数の管理装置は、さらに第6管理装置を含み、
    前記方法は、さらに、
    複数の前記稼動管理装置から前記管理データを取得する前記待機管理装置のうち、保持している前記管理データの取得元である前記ストレージシステムの数が最も多い前記待機管理装置を選択する手順と、
    前記選択された待機管理装置に前記管理データを送信している前記複数の稼動管理装置のうち少なくとも一つを選択する手順と、
    前記選択された少なくとも一つの稼動管理装置が前記管理データを取得している前記ストレージシステムの識別子を、前記選択された待機管理装置から前記第6管理装置に送信する手順と、
    前記選択された待機管理装置が保持する前記管理データのうち、前記選択された少なくとも一つの稼動管理装置から送信された前記管理データを、前記選択された待機管理装置から前記第6管理装置に送信する手順と、
    前記選択された待機管理装置から送信された前記ストレージシステムの識別子及び前記管理データを前記第6管理装置が保持する手順と、を含むことを特徴とする請求項1に記載の方法。
  5. 前記計算機システムが、複数の前記稼動管理装置から前記管理データを取得する前記待機管理装置を備えない場合、前記管理データの取得元である前記ストレージシステムの数が最も多い前記待機管理装置を選択する手順と、前記複数の稼動管理装置のうち少なくとも一つを選択する手順と、前記選択された少なくとも一つの稼動管理装置から送信された前記管理データを前記選択された待機管理装置から前記第6管理装置に送信する手順と、送信された前記管理データを前記第6管理装置が保持する手順と、が実行されないことを特徴とする請求項4に記載の方法。
  6. 前記複数の管理装置は、さらに第6管理装置を備え、
    前記方法は、さらに、
    複数の前記稼動管理装置から前記管理データを取得する前記待機管理装置のうち、前記第6管理装置と最も近い位置に設置されている前記待機管理装置を選択する手順と、
    前記選択された待機管理装置に前記管理データを送信している前記複数の稼動管理装置のうち少なくとも一つを選択する手順と、
    前記選択された少なくとも一つの稼動管理装置が前記管理データを取得している前記ストレージシステムの識別子を、前記選択された待機管理装置から前記第6管理装置に送信する手順と、
    前記選択された待機管理装置が保持する前記管理データのうち、前記選択された少なくとも一つの稼動管理装置から送信された前記管理データを、前記選択された待機管理装置から前記第6管理装置に送信する手順と、
    前記選択された待機管理装置から送信された前記ストレージシステムの識別子及び前記管理データを前記第6管理装置が保持する手順と、を含むことを特徴とする請求項1に記載の方法。
  7. 前記ストレージシステムの前記制御装置は、計算機に接続される第3インターフェイスと、前記第3インターフェイスに接続される第2プロセッサと、前記第2プロセッサに接続され、データを一時的に格納するキャッシュメモリと、を備え、
    前記管理データは、前記第2プロセッサに障害が発生したか否かを示すデータ、前記キャッシュメモリの使用率を示すデータ、前記第3インターフェイスにおけるデータ入出力回数を示すデータ、前記記憶装置に対するデータ入出力回数を示すデータ、のうち少なくとも一つを含むことを特徴とする請求項1に記載の方法。
  8. 計算機システムに含まれる複数のストレージシステムのうち少なくとも一つを管理する管理装置であって、
    前記ストレージシステムは、第1ストレージシステムを含み、
    前記計算機システムは、前記管理装置に加えて、前記複数のストレージシステムのうち少なくとも一つを管理する複数の他の管理装置を備え、
    前記複数の他の管理装置は、第1管理装置及び第2管理装置を含み、
    前記管理装置、及び、前記第1管理装置及び前記第2管理装置を含む前記複数の他の管理装置は、それぞれ、前記ストレージシステムから取得した前記管理データを前記管理装置又は前記他の管理装置に送信する稼動管理装置、又は、前記稼動管理装置から送信された前記管理データを受信する待機管理装置のいずれかであり、
    前記管理装置は、
    前記ストレージシステムから取得されたデータを受信する第1インターフェイスと、前記際1インターフェイスに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記第1ストレージシステムから取得した管理データを保持し、
    前記第1インターフェイスに接続された第1ネットワークを介して前記複数の他の管理装置と通信可能に接続され、
    前記第1管理装置は、前記第1ストレージシステムの識別子及び前記第1ストレージシステムから取得した管理データを保持し、
    前記プロセッサは、
    前記第1管理装置に障害が発生した場合、前記複数の他の管理装置のうち、保持している前記管理データの取得元である前記ストレージシステムの数が最も少ない前記待機管理装置を前記第2管理装置として選択し、
    前記管理装置に保持されている前記第1ストレージシステムの識別子及び前記第1ストレージシステムから取得した前記管理データを、前記第1ネットワークを介して前記選択された第2管理装置に送信することを特徴とする管理装置。
  9. 請求項8に記載の管理装置であって、
    前記複数のストレージシステムは、さらに第2ストレージシステムを含み、
    前記複数の他の管理装置は、さらに第3管理装置及び第4管理装置を含み、
    前記管理装置は、
    前記第1管理装置が前記第1ストレージシステムから取得した前記管理データを前記第1管理装置から受信し、
    前記第3管理装置が前記第2ストレージシステムから取得した前記管理データを前記第3管理装置から受信し、
    前記受信した管理データ、前記第1ストレージシステムの識別子、及び、前記第2ストレージシステムの識別子を保持し、
    前記プロセッサは、さらに、
    前記第1管理装置に障害が発生した場合、前記複数の他の管理装置のうち、保持している前記管理データの取得元である前記ストレージシステムの数が最も少ない前記待機管理装置を前記第4管理装置として選択し、
    前記管理装置に保持されている、前記第2ストレージシステムの識別子、及び、前記第3管理装置から受信した管理データを、前記第1ネットワークを介して前記第4管理装置に送信することを特徴とする管理装置。
  10. 請求項8に記載の管理装置であって、
    前記管理装置は、所定の要求に対して応答するか否かを示す情報を保持し、
    前記プロセッサは、
    前記所定の要求を前記第1インターフェイスを介して前記複数の他の管理装置に送信し、
    前記所定の要求に対する応答を送信した前記複数の他の管理装置から前記第2管理装置を選択することを特徴とする管理装置。
  11. 請求項10に記載の管理装置であって、
    前記第1インターフェイスを介して前記所定の要求を受信した前記プロセッサは、前記情報が前記所定の要求に対して応答することを示す場合、前記所定の要求に対する応答を送信し、
    前記応答は、前記応答を送信した前記管理装置の前記第1インターフェイスのアドレスと、前記応答を送信した前記管理装置が保持する前記管理データの取得元である前記ストレージシステムの数と、を含み、
    前記管理装置が前記稼動管理装置である場合、前記情報は、前記所定の要求に対して応答しないことを示すことを特徴とする管理装置。
  12. 請求項8に記載の管理装置であって、
    前記プロセッサは、
    複数の前記稼動管理装置から前記管理データを取得する前記待機管理装置のうち、保持している前記管理データの取得元である前記ストレージシステムの数が最も多い前記待機管理装置を選択し、
    前記選択された待機管理装置に前記管理データを送信している前記複数の稼動管理装置のうち少なくとも一つを選択し、
    前記選択された少なくとも一つの稼動管理装置が前記管理データを取得している前記ストレージシステムの識別子を、前記管理装置に送信することを前記選択された待機管理装置に要求し、
    前記選択された待機管理装置が保持する前記管理データのうち、前記選択された少なくとも一つの稼動管理装置から送信された前記管理データを、前記管理装置に送信することを前記選択された待機管理装置に要求し、
    前記選択された待機管理装置から送信された前記管理データを保持することを特徴とする管理装置。
  13. 請求項12に記載の管理装置であって、
    前記計算機システムが、複数の前記稼動管理装置から前記管理データを取得する前記待機管理装置を備えない場合、前記プロセッサは、前記管理データの取得元である前記ストレージシステムの数が最も多い前記待機管理装置の選択する手順と、前記複数の稼動管理装置のうち少なくとも一つを選択する手順と、前記選択された少なくとも一つの稼動管理装置から送信された前記管理データを前記管理装置に送信することを前記選択された待機管理装置に要求する手順と、送信された前記管理データを保持する手順と、を実行しないことを特徴とする管理装置。
  14. 請求項8に記載の管理装置であって、
    前記プロセッサは、
    複数の前記稼動管理装置から前記管理データを取得する前記待機管理装置のうち、前記管理装置と最も近い位置に設置されている前記待機管理装置を選択し、
    前記選択された待機管理装置に前記管理データを送信している前記複数の稼動管理装置のうち少なくとも一つを選択し、
    前記選択された少なくとも一つの稼動管理装置が前記管理データを取得している前記ストレージシステムの識別子を、前記管理装置に送信することを前記選択された待機管理装置に要求し、
    前記選択された待機管理装置が保持する前記管理データのうち、前記選択された少なくとも一つの稼動管理装置から送信された前記管理データを、前記管理装置に送信することを前記選択された待機管理装置に要求し、
    前記選択された待機管理装置から送信された前記管理データを保持することを特徴とする管理装置。
  15. 請求項8に記載の管理装置であって、
    前記ストレージシステムの前記制御装置は、計算機に接続される第3インターフェイスと、前記第3インターフェイスに接続される第2プロセッサと、前記第2プロセッサに接続され、データを一時的に格納するキャッシュメモリと、を備え、
    前記管理データは、前記第2プロセッサに障害が発生したか否かを示すデータ、前記キャッシュメモリの使用率を示すデータ、前記第3インターフェイスにおけるデータ入出力回数を示すデータ、前記記憶装置に対するデータ入出力回数を示すデータ、のうち少なくとも一つを含むことを特徴とする管理装置。
JP2007087911A 2007-03-29 2007-03-29 ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置 Expired - Fee Related JP4939271B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007087911A JP4939271B2 (ja) 2007-03-29 2007-03-29 ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置
CN2007101946237A CN101277217B (zh) 2007-03-29 2007-11-27 存储维护·管理装置的冗余化方法及使用该方法的装置
US12/007,334 US7836333B2 (en) 2007-03-29 2008-01-09 Redundant configuration method of a storage system maintenance/management apparatus
EP08250108A EP1975802B1 (en) 2007-03-29 2008-01-10 Redundant configuration method of a storage system maintenance/management apparatus
US12/915,961 US8078904B2 (en) 2007-03-29 2010-10-29 Redundant configuration method of a storage system maintenance/management apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007087911A JP4939271B2 (ja) 2007-03-29 2007-03-29 ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置

Publications (2)

Publication Number Publication Date
JP2008250421A JP2008250421A (ja) 2008-10-16
JP4939271B2 true JP4939271B2 (ja) 2012-05-23

Family

ID=39643840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007087911A Expired - Fee Related JP4939271B2 (ja) 2007-03-29 2007-03-29 ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置

Country Status (4)

Country Link
US (2) US7836333B2 (ja)
EP (1) EP1975802B1 (ja)
JP (1) JP4939271B2 (ja)
CN (1) CN101277217B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4939271B2 (ja) * 2007-03-29 2012-05-23 株式会社日立製作所 ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置
CN101741698B (zh) * 2008-11-13 2012-05-30 英业达股份有限公司 一种共享储存设备的计算器系统及其共享方法
EP2471220B1 (en) * 2009-08-28 2018-05-30 EntIT Software LLC Automatic redundant logical connections
WO2012023183A1 (ja) * 2010-08-18 2012-02-23 富士通株式会社 計算機管理装置、計算機管理システム及び計算機システム
JP5754704B2 (ja) * 2011-04-19 2015-07-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数の産業制御システム間の通信を制御するシステム
EP2771790A4 (en) * 2011-10-28 2015-07-22 Hewlett Packard Development Co METHOD AND SYSTEM FOR SINGLE POINT ERROR ANALYSIS AND RENOVATION
US20130326053A1 (en) * 2012-06-04 2013-12-05 Alcatel-Lucent Usa Inc. Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications
CN104597814B (zh) * 2014-12-24 2017-10-24 重庆川仪自动化股份有限公司 一种高稳定性的控制系统冗余的系统和方法
CN112436955B (zh) * 2020-10-16 2022-05-24 苏州浪潮智能科技有限公司 一种复杂网络的数据分布式采集方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61239353A (ja) * 1985-04-03 1986-10-24 Fujitsu Ltd サ−ビスプロセツサ構成方式
US5408649A (en) * 1993-04-30 1995-04-18 Quotron Systems, Inc. Distributed data access system including a plurality of database access processors with one-for-N redundancy
JPH08185330A (ja) * 1994-12-28 1996-07-16 Nippon Telegr & Teleph Corp <Ntt> 冗長コンピュータシステム切り替え方法
US5790775A (en) * 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
US5875242A (en) * 1996-07-26 1999-02-23 Glaser; Lawrence F. Telecommunications installation and management system and method
US5996086A (en) * 1997-10-14 1999-11-30 Lsi Logic Corporation Context-based failover architecture for redundant servers
EP0987630B1 (en) * 1998-09-08 2005-09-14 Fujitsu Services Limited Resilience in a multi-computer system
US6578158B1 (en) * 1999-10-28 2003-06-10 International Business Machines Corporation Method and apparatus for providing a raid controller having transparent failover and failback
US6691244B1 (en) 2000-03-14 2004-02-10 Sun Microsystems, Inc. System and method for comprehensive availability management in a high-availability computer system
US6625753B1 (en) * 2000-05-09 2003-09-23 International Business Machines Corporation Recovery facility for an SNA communication network
JP4457185B2 (ja) 2001-02-13 2010-04-28 ネットアップ,インコーポレイテッド シリコンベースのストレージ仮想化サーバ
JP3771162B2 (ja) * 2001-10-03 2006-04-26 株式会社日立製作所 保守管理方法、保守管理システム、情報処理システムおよびコンピュータプログラム
US7003688B1 (en) * 2001-11-15 2006-02-21 Xiotech Corporation System and method for a reserved memory area shared by all redundant storage controllers
JP2004341982A (ja) * 2003-05-19 2004-12-02 Hitachi Ltd 記憶制御装置の保守管理方式
US7428214B2 (en) * 2004-03-04 2008-09-23 Cisco Technology, Inc. Methods and devices for high network availability
JP4939271B2 (ja) * 2007-03-29 2012-05-23 株式会社日立製作所 ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置

Also Published As

Publication number Publication date
JP2008250421A (ja) 2008-10-16
US20110047410A1 (en) 2011-02-24
US7836333B2 (en) 2010-11-16
US20080244580A1 (en) 2008-10-02
CN101277217B (zh) 2011-07-13
EP1975802A2 (en) 2008-10-01
EP1975802A3 (en) 2010-05-26
EP1975802B1 (en) 2013-01-02
US8078904B2 (en) 2011-12-13
CN101277217A (zh) 2008-10-01

Similar Documents

Publication Publication Date Title
JP4939271B2 (ja) ストレージ保守・管理装置の冗長化方法、及びその方法を使用する装置
JP4480756B2 (ja) ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
EP1760591B1 (en) System and method of managing access path
US7296126B2 (en) Storage system and data processing system
US9182918B2 (en) Network storage systems having clustered raids for improved redundancy and load balancing
US9794342B2 (en) Storage system and control method for storage system
JP4920248B2 (ja) サーバの障害回復方法及びデータベースシステム
US7865767B2 (en) Storage system and method for copying data to plurality of sites
JP4958673B2 (ja) ストレージシステム及びこれの管理方法
JP4711688B2 (ja) ストレージシステム
WO2016166844A1 (ja) 分散処理システム、タスク処理方法、記憶媒体
WO2011135636A1 (ja) 計算機システム及びその制御方法
US7886186B2 (en) Storage system and management method for the same
JP4318211B2 (ja) 高信頼システム、冗長構成制御方法及びプログラム
JP2006114064A (ja) 記憶サブシステム
US20170344313A1 (en) Storage system and control method therefor
JP5947974B2 (ja) 情報処理装置及び情報処理装置の交換支援システム並びに交換支援方法
JP2007334764A (ja) Nasシステムおよびnasシステムの情報処理方法
CN112445652A (zh) 远程复制系统
WO2013073022A1 (ja) 計算機システム及び障害検出方法
JP2010033379A (ja) 仮想化システム及び仮想化の復旧方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120118

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees