JP5074274B2 - 計算機システム及び通信経路の監視方法 - Google Patents

計算機システム及び通信経路の監視方法 Download PDF

Info

Publication number
JP5074274B2
JP5074274B2 JP2008107002A JP2008107002A JP5074274B2 JP 5074274 B2 JP5074274 B2 JP 5074274B2 JP 2008107002 A JP2008107002 A JP 2008107002A JP 2008107002 A JP2008107002 A JP 2008107002A JP 5074274 B2 JP5074274 B2 JP 5074274B2
Authority
JP
Japan
Prior art keywords
computer
virtual
standby
switch
active
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
JP2008107002A
Other languages
English (en)
Other versions
JP2009258978A (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 JP2008107002A priority Critical patent/JP5074274B2/ja
Priority to US12/422,438 priority patent/US7925817B2/en
Publication of JP2009258978A publication Critical patent/JP2009258978A/ja
Application granted granted Critical
Publication of JP5074274B2 publication Critical patent/JP5074274B2/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/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • 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/2025Failover techniques using centralised failover control functionality
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Bus Control (AREA)

Description

本発明は、複数の計算機と複数のPCIデバイスをPCIスイッチで接続した複合型計算機システムに関し、特に、現用系と待機系の計算機を備えて、現用系に障害が発生したときに、待機系を稼動させてPCIデバイスを引き継ぐ制御技術に関するものである。
近年、サーバの管理を容易にするために1つの装置に複数の計算機を搭載したブレードサーバが用いられるようになっている(例えば、特許文献1)。またCPUに複数のプロセッサコアを持つマルチコア化によりCPUの処理性能が向上し、それに伴い効率的にCPUを使用するため1つの計算機に複数の仮想的なサーバを稼動させる仮想サーバ技術が用いられるようになっている。
計算機では他の計算機とのネットワーク通信やストレージ装置の接続にNIC(Network Interface Card)やFC−HBA(Fiber Channel-Host Bus Adapter)等のI/Oデバイスが用いられるが、上記のように1つの計算機に複数のサーバを稼動させる場合は相対的に計算機当りのI/Oデバイス数が不足する。このような問題を補う技術として、複数の計算機と複数のI/OデバイスであるPCI(Peripheral Component Interconnect)デバイス(またはPCIexpressデバイス)とを接続可能とするマルチルートPCIスイッチ技術が知られている。マルチルートPCIスイッチ技術では、1つの計算機に接続可能なPCIデバイスの個数をスケーラブルに変えることが可能である(例えば、特許文献1、特許文献2等)。後者のマルチルートI/O仮想化技術では、1つのPCIデバイスを共有することで仮想的にPCIデバイスの数を増やすことが可能である。これらの技術を用いることで、仮想サーバを用いた場合のI/Oデバイス数の不足を解消することができる。
また、複数の計算機を、業務で利用する現用系と、現用系に障害が発生したときに稼動させる待機系とに分けて運用を行うクラスタシステムが広く知られている。
米国特許第7058738号 米国特許出願公開第2006/242353号明細書
上記従来のクラスタシステムでは、現用系に障害が発生して待機系に切り替える場合、現用系の計算機と待機系の計算機にそれぞれI/Oアダプタ(I/Oデバイス)を備えるため、現用系から待機系に切り替える際には、待機系のI/Oアダプタの識別子を現用系のI/Oアダプタの識別子に変更しなければ、現用系と同じ環境でI/Oデバイスを利用できない、という問題があった。
すなわち、上記従来のクラスタシステムでは計算機とI/Oアダプタの関係が固定されているため、計算機を現用系から待機系に切り替える際には、同時にI/Oアダプタも切り替える必要があった。I/Oアダプタとして、例えば、SAN(Storage Area network)に接続するためのファイバチャネルのホストバスアダプタ(HBA)では、HBAに固有のWWN(World Wide Name)を有し、I/Oアダプタに接続されたストレージ装置は、WWNを使ってアクセス元の計算機を判別しているため、I/Oアダプタを切り替える際にはWWNを現用系のI/Oアダプタの値に書き換える必要がある。このため、上記従来のクラスタシステムでは、WWNを変更できないHBAは利用できないという、制限があった。
この制限を解決するために、上記のようなマルチルートPCIスイッチを利用し、マルチルートPCIスイッチに現用系と待機系の計算機とI/Oアダプタを接続し、現用系から待機系に切り替える際には、現用系の計算機からI/Oアダプタの経路(パス)を、待機系の計算機からI/Oアダプタまでの経路に切り替えることが考えられる。
この場合、待機系の計算機から現用系の計算機で利用しているI/Oアダプタまでの経路に障害が発生していると、さらに他の計算機で現用系の計算機を引き継ぐ必要があるため、現用系の計算機で提供していた業務の停止時間が増大する、という問題があった。
さらに、現用系の計算機はI/Oアダプタを使用中であるため、待機系の計算機からこのI/Oアダプタまでの経路に障害が発生しているか否かを検出することはできないという問題があった。
そこで本発明は、上記問題点に鑑みてなされたもので、現用系の計算機から待機系の計算機へI/Oデバイスを継承する計算機システムにおいて、待機系の計算機から現用系の計算機で利用しているI/Oデバイスまでの経路に障害が発生しているか否かを検出することを目的とする。
本発明は、プロセッサとメモリとインターフェースとを有する複数の計算機と、前記複数の計算機を前記インターフェース経由で接続されたPCIスイッチと、前記PCIスイッチに接続されたI/Oデバイスと、前記PCIスイッチの構成を管理する管理部と、を備えた計算機システムにおいて、前記管理部は、前記複数の計算機のうちの現用系計算機と、前記I/Oデバイスとを接続する第1の通信経路を設定するスイッチ管理部と、前記複数の計算機のうちの前記現用系計算機を引き継ぐ待機系計算機に対して、前記現用系計算機が利用するI/Oデバイスまでのアクセスを指令するホスト管理部と、を有し、前記スイッチ管理部は、前記現用系計算機の前記インターフェースと第1の仮想スイッチを接続する第1の仮想ブリッジと、前記現用系計算機が利用するI/Oデバイスと前記第1の仮想スイッチとを接続する第2の仮想ブリッジから前記第1の通信経路を前記PCIスイッチに設定し、前記待機系計算機の前記インターフェースと第2の仮想スイッチを接続する第3の仮想ブリッジと、前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスと前記第2の仮想スイッチとを接続する第4の仮想ブリッジとから第2の通信経路を前記PCIスイッチに設定し、当該第2の通信経路のうち前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスと第4の仮想ブリッジ間の通信を無効化し、前記ホスト管理部は、前記第2の通信経路が設定された後に、前記待機系計算機に対して前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスに接続された第4の仮想ブリッジまでのアクセスを指令し、前記待機系計算機は、前記ホスト管理部からのアクセスを指令に従って、前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスに接続された前記第4の仮想ブリッジまでアクセスし、前記ホスト管理部は、前記待機系計算機からのアクセス結果をそれぞれ受信して、これらのアクセス結果のうちのひとつに障害があれば、当該待機系計算機での前記現用系計算機の引き継ぎが不能であると判定することを特徴とすることを特徴とする。
また、前記ホスト管理部は、前記第2の計算機から前記第2の通信経路のアクセス結果を受信して、当該第2の通信経路がアクセス可能か否かを示す情報を保持する。
したがって、本発明によれば、第1の計算機で利用中のI/Oデバイスに対して、第2の計算機からi/Oデバイスの直前の仮想ブリッジまでの通信経路について障害の有無を把握することができる。第2の計算機で第1の計算機を引き継ぐ際には、第2の計算機側の通信経路の異常を予め検出でき、第2の計算機側で引き継ぎ時の障害発生を防いで計算機システムの信頼性を向上させることができる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、第1の実施形態を示し、本発明を適用する計算機システムのブロック図である。計算機システムは、業務を実行する現用系計算機100a〜100dと、現用系計算機100a〜100dのいずれかに障害が発生したときに業務を引き継ぐ待機系計算機110e、110fと、各計算機が利用するI/Oデバイス220a−1〜220a−8及び220b−2〜220b−7と、各現用系及び待機系計算機と各I/Oデバイスを接続するPCIスイッチ300a、300bと、PCIスイッチ300a、300bを管理するPCIマネージャ400と、現用系計算機と待機系計算機を管理するサービスプロセッサ150と、を備える。
現用系計算機100a〜100dと待機系計算機110e、110fは、同一の構成であり、以下、現用系計算機100aの構成について説明し、他の計算機に関する説明を省略する。
現用系計算機100aは、演算処理を行うプロセッサ101a−1、101a−2と、データや命令を格納するメモリ105aと、PCIスイッチ300a、300bと通信を行うインターフェースとしてのルートコンプレックス103aと、プロセッサ101a−1、101a−2とメモリ105a及びルートコンプレックス103aを接続するチップセット102aと、サービスプロセッサ150に接続するインターフェースとしての計算機管理用ポート106aと、を備える。
ルートコンプレックス103aは、PCIスイッチ300a、300bと接続するためのインタフェースとしてルートポート104a−aと104a−bを備えており、現用系計算機100aは、これらのルートポート104a−a、104a−bを介してPCIスイッチ300a、300bに接続されたI/Oデバイス220a−1〜220a−8、220b−2〜220b−7にアクセスする。なお、I/Oデバイスとしては、例えば、前記従来例のようなHBAやネットワークインターフェースカードなどで構成することができる。
なお、以下では、現用系計算機100a〜100dの総称を現用系計算機100とし、待機系計算機110e、110fの総称を待機系計算機110として説明する。また、待機系計算機110は、コールドスタンバイとする。
<サービスプロセッサ>
サービスプロセッサ150は、現用系計算機100と待機系計算機110の稼動状態及び業務の割り当てと、現用系計算機100と待機系計算機110の業務の引き継ぎを管理する計算機であり、情報の入出力を行う管理コンソール180を備える。本発明の計算機システムは、現用系計算機100と待機系計算機110で障害による業務の停止を回避するクラスタシステムを構成する。サービスプロセッサ150は、図示しないプロセッサとメモリを備え、ホスト制御パス(ネットワーク)160を介して現用系計算機100及び待機系計算機110に接続される。また、サービスプロセッサ150は、ホスト管理パス170(第2ネットワーク)を介してPCIマネージャ400に接続される。
サービスプロセッサ150は、現用系計算機100の稼動状態を監視し、現用系計算機100に障害が発生すると、待機系計算機110eまたは110fに業務の引き継ぎ(フェイルオーバ)を指令する。この引き継ぎの際に、サービスプロセッサ150は、後述するように、障害が発生した現用系計算機100を引き継ぐことが可能な待機系計算機110をPCIマネージャ400に問い合わせる。そして、サービスプロセッサ150は、PCIマネージャ400から得た応答に基づいて現用系計算機100の業務を引き継ぐ待機系計算機110を決定して、待機系計算機110に引き継ぎを指令する。なお、障害の検知及び引き継ぎの処理については、公知または周知の手法を適用すればよいので、ここでは詳述しない。
<PCIスイッチ>
PCIスイッチ300a、300bは、PCIexpressの規格に準拠した前記従来例と同様のマルチルートPCIスイッチで構成され、複数の現用系計算機100及び待機系計算機110と複数のI/Oデバイス220a−1〜220a−8及び220b−2〜220b−7を接続する。なお、以下では、I/Oデバイス220a−1〜220a−8及び220b−2〜220b−7の総称をI/Oデバイス220とする。PCIスイッチ300aと300bは同一の構成であるので、以下ではPCIスイッチ300aのみについて説明を行い、PCIスイッチ300bの説明を省略する。本実施形態では、現用系計算機100と待機系計算機110のルートポートがそれぞれ2つのPCIスイッチ300a、300bに接続されている例を示す。
PCIスイッチ300aは、現用系計算機100及び待機系計算機110のルートポートに接続される上流ポート301a−〜301a−6と、I/Oデバイス220に接続される下流ポート302a−1〜302a−6と、上流ポート301a−1〜301a−6と下流ポート302a−1〜302a−6の通信経路を設定する仮想スイッチ生成機構310aを備える。なお、以下では、上流ポート301a〜301a−6の総称を上流ポート301とし、下流ポート302a−1〜302a−6の総称を下流ポート302とする。
仮想スイッチ生成機構310aは、後述するように、PCIマネージャ400からの指令に応じて上流ポート301と下流ポート302の通信経路(仮想パス)を設定する。このため、仮想スイッチ生成機構310aは、後述する管理テーブルを備えたコントローラを含む。
PCIスイッチ300a、300bは、PCIマネージャ400に接続するためのスイッチ管理用ポート399a−1、399a−2、399b−1、399b−2を備え、PCIスイッチ300a、300bの内部では、一対のスイッチ管理用ポート399a−1と399a−2及び399b−1と399b−2が接続されており、これらのスイッチ管理用ポートをPCIスイッチ300a、300b同士で接続することで、複数のPCIスイッチをデイジーチェーンで接続することができる。図1においては、スイッチ管理パス410によってPCIスイッチ300bのスイッチ管理用ポート399b−2をPCIマネージャ400に接続し、PCIスイッチ300bと300aを、スイッチ管理用ポート399b−1と399a−2で接続し、PCIスイッチ300aはPCIスイッチ300bを介してPCIマネージャ400と通信可能に構成される。
PCIスイッチ300aは、上流ポート301と下流ポート302の間を、仮想スイッチと仮想ブリッジで接続した仮想パスによって接続し、通信を行う。仮想ブリッジは、物理的な上流ポート301または下流ポート302を仮想スイッチVSに接続し、あるいは仮想スイッチ同士を接続することが可能である。この仮想パスは、仮想スイッチ生成機構310によって動的に変更可能であり、PCIマネージャ400がPCIスイッチ300aに仮想スイッチの設定を指令することで、上流ポート301と下流ポート302の通信経路である仮想スイッチを任意に設定することができる。なお、仮想スイッチ生成機構310の詳細については、後述する。
<PCIマネージャ>
PCIマネージャ400は、図示しないプロセッサとメモリを備えた計算機で構成され、PCIスイッチ300a、300bの構成を管理するスイッチ管理計算機として機能する。PCIマネージャ400は、ホスト管理パス170を介してサービスプロセッサ150の管理コンソール180から受け付けた指令に応じて、PCIスイッチ300a、300bの上流ポートと下流ポートの通信経路(仮想パス)を管理するスイッチ管理部411と、サービスプロセッサ150から現用系計算機100と待機系計算機110の情報を取得して、現用系計算機と待機系計算機の稼動状態を管理し、待機系計算機が引き継ぐI/Oデバイス220までの通信経路の状態を監視するホスト管理部412とを備える。
PCIマネージャ400は、後述するテーブルによって、現用系の計算機と待機系の計算機を識別し、また、現用系計算機100が使用中のI/Oデバイス220を識別する。なお、現用系計算機100に対するI/Oデバイス220の割り当ては、サービスプロセッサ150に接続されたコンソール180から管理者等が予め指定したものである。
ここで、本発明のPCIマネージャ400は、所定のタイミング(例えば、24時間周期)になると、現用系計算機が使用中のI/Oデバイス220について、障害が発生したときに待機系計算機でI/Oデバイス220を引き継ぐ場合の通信経路としての仮想パス(仮想スイッチ)を設定し、待機系計算機110eまたは110fに待機系パスチェックプログラム120を実行させて、待機系計算機から当該I/Oデバイス220に接続する直前(手前)の仮想パスについて障害の有無を検出する。そして、PCIマネージャ400は、各待機系計算機110eまたは110fが実行した待機系パスチェックプログラム120の実行結果を、後述するテーブルに格納して障害を検知した仮想パスを利用する待機系計算機で、現用系計算機の引き継ぎを禁止する。また、待機系パスチェックプログラム120で障害が検出された仮想パスまたは仮想スイッチがあれば、PCIマネージャ400はサービスプロセッサ150に対して待機系パスの障害をサービスプロセッサ150の管理コンソール180に通知する。以下、PCIマネージャ400の詳細について説明する。
図2は、PCIマネージャ400の機能要素を示すブロック図である。
PCIマネージャ400は、スイッチ管理パス410を介してPCIスイッチ300a、300bの上流ポートと下流ポートの通信経路を管理するスイッチ管理部411と、ホスト管理パス170を介して現用系計算機100と待機系計算機110の稼動状態をサービスプロセッサ150から取得して、待機系計算機110が引き継ぐI/Oデバイス220に障害が発生しているか否かを監視するホスト管理部412と、を備える。
まず、スイッチ管理部411は、サービスプロセッサ150を介して管理コンソール180からリソースの割り当てを受け付けるリソース設定インターフェース406を備える。リソース設定インターフェース406は、サービスプロセッサ150を介して管理コンソール180から現用系計算機100(または待機系計算機110)に割り当てられたI/Oデバイス220の関係を受け付ける。スイッチ管理部411は、サービスプロセッサ150から受け付けた計算機とI/Oデバイス220の割り当てを、図4に示すリソース割り当てテーブル430に格納する。
図4は、PCIマネージャ400のリソース割り当てテーブル430の一例を示す説明図である。スイッチ管理部411は、PCIスイッチ300aの識別子431毎に、I/Oデバイス220の識別子432と、計算機(ホスト)の識別子423を1エントリとしてリソース割り当てテーブル430に格納する。
スイッチ管理部411は、リソース設定インターフェース406で新たな計算機とI/Oデバイス220の割り当てを受け付けると、リソース割り当てテーブル430を更新してから、ポート管理テーブル420を更新し、更新した通信経路の設定をPCIスイッチ300aまたは300bに指令する。なお、リソース割り当てテーブル430とポート管理テーブル420の更新は、リソース設定インターフェース406が所定のタイミングでサービスプロセッサ150から取得するようにしても良い。
ポート管理テーブル420は、各PCIスイッチ300a、300bの上流ポート301に接続された計算機の識別子と、下流ポート302に接続されたI/Oデバイスの識別子及び接続先の種別(ホスト、デバイス、PCIスイッチ)を管理する。
図3は、PCIマネージャ400のポート管理テーブル420の一例を示す説明図である。図3において、スイッチ423にはPCIスイッチ300aまたは300bの識別子が格納され、ポート#422には、上流ポート301と下流ポート302の識別子が格納され、方向423には現用系計算機100または待機系計算機110と接続する上流ポート301であれば「up」が設定され、下流ポート302であれば「down」が設定され、種別424には接続先が計算機であれば「ホスト」が設定され、I/Oデバイス220であれば「デバイス」が設定され、PCIスイッチであれば「スイッチ」が設定され、リンク先425には、接続先の識別子が格納される。
ポート管理テーブル420は、サービスプロセッサ150の管理コンソール180から管理者などがスイッチ421のポート#422毎に接続されているデバイスの種別と識別子等を設定することができる。あるいは、PCIスイッチ300a、300bが各ポート毎に接続先を監視した結果をスイッチ管理部411が取得してポート管理テーブル420に反映させるようにしても良い。
スイッチ管理部411は、ポート管理テーブル420に設定された上流ポート301と下流ポート302接続先について、リソース割り当てテーブル430で設定されたホスト433とI/Oデバイス432の関係を満たすように仮想スイッチVSと仮想ブリッジVBを設定し、図2のスイッチ設定インターフェース403からPCIスイッチ300aまたは300bに仮想スイッチVSと仮想ブリッジVBの設定指令する。このとき、スイッチ管理部411は、図6で示すように、仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460を更新する。
図6は仮想スイッチ管理テーブル450及び仮想ブリッジ管理テーブル460の一例を示す説明図である。図6では、PCIスイッチ300a、300bがそれぞれ5つの仮想スイッチVSと、12の仮想ブリッジを備える例を示し、PCIスイッチ300a、300bは、PCIマネージャ400から指示された仮想スイッチVSに割り当てられた仮想ブリッジ間でデータの転送を行う。
図6の仮想スイッチ管理テーブル450は、PCIスイッチ300a、300bの仮想スイッチVS毎に、仮想ブリッジ管理テーブル460のどのエントリが割り当てられて、データの転送が有効か否かを設定するもので、各PCIスイッチ300a、300bの仮想スイッチVS毎にエントリが設定される。
ここで、仮想スイッチVSと仮想ブリッジVBの関係は、図7で示すようなる。図7は、PCIスイッチ300aの仮想スイッチVS#1の一部を示すブロック図である。PCIスイッチ300aの上流ポート301a−1には、仮想ブリッジVB#1が割り当てられ、下流ポート302a−1には仮想ブリッジVB#2が割り当てられ、下流ポート302a−3には仮想ブリッジVB#3が割り当てられている。そして、仮想ブリッジVB#1、VB#2、VB#3は仮想スイッチVS#1に割り当てられている。仮想スイッチVS#1は、仮想ブリッジVB#1から受信したデータ(パケット)をPCIexpressのマルチルートスイッチの規格に従って仮想ブリッジVB#2またはVB#3に転送し、仮想ブリッジVB#2またはVB#3から受信したデータを仮想ブリッジVB#1に転送する。
つまり、仮想スイッチVS#1で接続された上流ポート301a−1と下流ポート302a−1と下流ポート302a−3の間には、仮想ブリッジVB#2を通る仮想パスと、仮想ブリッジVB#3を通る仮想パスが生成され、仮想スイッチVS#1は、受信したパケットの宛先に応じてこれらの仮想パスを切り替えることになる。なお、仮想スイッチVS#1のスイッチ動作についてはPCIexpressのマルチルートスイッチの規格に準拠すればよいので、ここでは詳述しない。
スイッチ管理部411は、ポート管理テーブル420とリソース割り当てテーブル430に基づいて仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460を生成し、これらのテーブルに基づいて仮想スイッチVSで構成された仮想パスを生成する。図6の仮想スイッチ管理テーブル450は、PCIスイッチの識別子を格納するスイッチ451と、仮想スイッチの識別子を格納するVS#452と、仮想スイッチのデータ転送が有効か無効かを示す有効フラグ453と、仮想ブリッジ管理テーブル460上で当該仮想スイッチに割り当てられた仮想ブリッジの開始位置を格納する開始VB#454と、仮想ブリッジ管理テーブル460上で当該仮想スイッチに割り当てられた仮想ブリッジの数を示すエントリ数455から構成される。
仮想スイッチの識別子であるVS#452は、スイッチ管理部411が管理するPCIスイッチ300a、300bの全ての仮想スイッチに対して重複しない値が割り当てられる。
次に、仮想ブリッジ管理テーブル460は、PCIスイッチの識別子を格納するスイッチ461と、仮想ブリッジの識別子を格納するVB#462と、仮想ブリッジのデータ転送が有効か無効かを示す有効フラグ463と、当該仮想ブリッジが上流ポート301側か下流ポート302側かを示す方向464と、当該仮想ブリッジからポートへの通信を許可するか否かを設定するマップ465と、当該仮想ブリッジに割り当てられた上流ポート301または下流ポート302の識別子を格納するポート#466と、を備える。
仮想ブリッジの識別子であるVB#462は、スイッチ管理部411が管理するPCIスイッチ300a、300bの全ての仮想ブリッジに対して重複しない値が割り当てられる。
例えば、図6に示す仮想スイッチ管理テーブル450の仮想スイッチVS#=1は、仮想ブリッジ管理テーブル460の仮想ブリッジ#が「1」からエントリ数455=3の仮想ブリッジ#3までが割り当てられていることを示す。そして、仮想ブリッジ管理テーブル460では、仮想ブリッジ#VB=1は、PCIスイッチ300aの上流ポート301a−1に割り当てられており、仮想ブリッジ#VB=2は、PCIスイッチ300aの下流ポート302a−1に割り当てられ、仮想ブリッジ#VB=3は、PCIスイッチ300aの下流ポート302a−3に割り当てられて、それぞれ有効となっていることを示す。これら設定は、図7に示した仮想スイッチVS#=1と仮想ブリッジ#VB=1〜3の関係を示す。なお、図示はしないが、仮想スイッチVS#=2以降と、仮想ブリッジ#VB=4以降も、図6の仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460に示すとおり、図7のような関係を構成する。
マップ465は、有効フラグ463が「Yes」で当該仮想ブリッジで通信可能なときに、ポート#466で割り当てられた上流ポート301または下流ポート302との通信を許可する場合には「Yes」を設定し、通信を禁止(または無効化)する場合には「No」を設定する。マップ465を「No」に設定した場合は、当該仮想ブリッジのレジスタ(図示省略)の値を読み出すことができる。すなわち、当該ブリッジのポート#466にI/Oデバイス220を接続した下流ポート302を割り当てて、マップ465を「No」に設定し、有効フラグ463を「Yes」に設定すれば、I/Oデバイス220にアクセスすることなく、I/Oデバイス220の直前の通信経路の状態を検出することができる。
スイッチ管理部411は、上記のように仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460を生成して、PCIスイッチ300a、300bの仮想スイッチVSに仮想ブリッジVBを割り当てて、現用系計算機100(または待機系計算機110)とI/Oデバイス220の通信経路を決定する。そして、スイッチ管理部411はスイッチ設定インターフェース403を介して、決定した通信経路をPCIスイッチ300a、300bに指令する。この指令は、ポート管理テーブル420と、仮想ブリッジ管理テーブル460と、仮想スイッチ管理テーブル450を、各スイッチの識別子毎に送信する。
スイッチ管理部411は、PCIスイッチ300a、300bに仮想スイッチVSと仮想ブリッジVBの設定を指令するスイッチ設定インターフェース403に加えて、PCIスイッチ300a、300bから割込信号を受信して所定の処理を実行する割り込みインターフェース404を備える。
次に、PCIマネージャ400のホスト管理部412について説明する。ホスト管理部412は、所定のタイミングになると待機系計算機が引き継ぐI/Oデバイス220までの通信経路の状態を監視し、通信経路に異常が発生したときにはサービスプロセッサ150に異常の発生を通知し、管理コンソール180に異常の発生を出力させる。
ホスト管理部412は、ホスト管理パス170を介してサービスプロセッサ150から現用系計算機100及び待機系計算機110の情報や、通信経路のチェック結果を取得するホスト通知インターフェース402と、所定のタイミングになると待機系計算機110に現用系計算機100で使用中のI/Oデバイス220までの通信経路のチェックの実行を指令するホスト制御インターフェース401と、サービスプロセッサ150から取得した現用系計算機100と待機系計算機110の状態を保持するホスト管理テーブル440と、通信経路の監視対象とチェック結果を保持する待機系ホストアクセスチェックテーブル470と、待機系計算機110で引き継ぎ可能な現用系計算機100のリストを保持する待機系ホスト星取り表480と、所定のタイミングを通知するインターバルタイマ405と、を含む。
ホスト管理部412は、サービスプロセッサ150から取得したホスト計算機(現用系計算機100及び待機系計算機110)の種別をホスト管理テーブル440に格納し、現用系計算機100に割り当てられたI/Oデバイス220を取得してリソース割り当てテーブル430に格納する。ホスト管理テーブル440とリソース割り当てテーブル430を更新するタイミングは、予め設定した周期でサービスプロセッサ150からホスト計算機に関する情報を取得する。あるいは、サービスプロセッサ150からの通知に基づいてホスト管理部412がホスト管理テーブル440を更新するようにしても良い。
また、ホスト管理テーブル440とリソース割り当てテーブル430の更新は、PCIマネージャ400のスイッチ管理部411が、リソース割り当てテーブル430とポート管理テーブル420を更新するときに実施しても良い。
図5は、ホスト管理部412が管理するホスト管理テーブル440の一例を示す説明図である。ホスト管理テーブル440は、ホスト計算機の識別を格納するホスト441と、ホスト計算機の種別が現用系と待機系の何れであるかを格納する現用系/待機系種別442とを含む。図5の例では、図1の構成に対応して、現用系計算機100a〜100dと、待機系計算機110e、110fの情報をサービスプロセッサ150から受け付けた例を示す。
図13は、ホスト管理部412がサービスプロセッサ150に発行するI/Oデバイスリスト490の一例を示す説明図である。I/Oデバイスリスト490は、現用系計算機100の識別子を格納する現用系ホスト491と、現用系計算機100が接続されたPCIスイッチ300の識別子を格納するスイッチ492と、このPCIスイッチ300を介して接続されたI/Oデバイス220の識別子を格納するI/Oデバイス493と、現用系計算機100からこのI/Oデバイス220までの通信経路の識別子を格納する仮想ブリッジID494とをひとつのエントリに含む。なお、図13では、現用系計算機100cのI/Oデバイス220について図示したが、他の現用系計算機100a、100b、100dについても、待機系計算機110から仮想パスのチェック処理を行うときにはそれぞれのI/Oデバイスリスト490がホスト管理部412にて生成され、サービスプロセッサ150に送信される。なお、仮想ブリッジID494は、現用系計算機100からI/Oデバイス220までの通信経路について、PCIマネージャ400が、図6に示した仮想ブリッジVBと仮想スイッチVSの組合せに対して付与した一意の識別子である。
ホスト管理部412は、インターバルタイマ405から所定のタイミングになったことを示す通知を受け付けると、後述するように、現用系計算機100が使用中のI/Oデバイス220について、待機系計算機110から当該I/Oデバイス220までの仮想の通信経路(仮想パス)を設定し、仮想パスの終端となるI/Oデバイス220の手前まで接続する。そして、ホスト管理部412は、待機系計算機110からI/Oデバイス220の手前までの仮想パスについて障害の有無を検知するようサービスプロセッサ150を介して待機系計算機110に指令する。次に、待機系計算機110はI/Oデバイス220の手前までの仮想パスのチェック結果としてのアクセス結果リスト500をサービスプロセッサ150を介してホスト管理部412へ送信する。ホスト管理部412は、受信したアクセス結果リスト500から、待機系ホストアクセスチェックテーブル470を更新し、待機系計算機110で引き継ぎ可能な現用系計算機100を示す待機系ホスト星取り表480を更新する。このとき、待機系計算機110から、チェック対象のI/Oデバイス220までの通信経路で障害を検知した場合には、ホスト管理部412はサービスプロセッサ150を介して管理コンソール180に障害の発生を通知する。なお、待機系計算機110が実行する仮想パスのチェック処理は、各待機系計算機110が全ての現用系計算機100についてそれぞれ実行する。
図14は、待機系パスチェックプログラム120の実行結果として待機系計算機110が生成するアクセス結果リスト500の一例を示す説明図である。アクセス結果リスト500は、現用系計算機100の識別子を格納する現用系ホスト501と、現用系計算機100が接続されたPCIスイッチ300の識別子を格納するスイッチ502と、このPCIスイッチ300を介して接続されたI/Oデバイス220の識別子を格納するI/Oデバイス503と、待機系計算機110からこのI/Oデバイス220までの通信経路のチェック結果を格納するアクセス結果504とをひとつのエントリに含む。なお、図14では、現用系計算機100cのI/Oデバイス220について図示したが、他の現用系計算機100a、100b、100dについても、仮想パスのチェック処理を行った後にそれぞれアクセス結果リスト500が待機系計算機110で生成される。
図15は、ホスト管理部412が管理する待機系ホストアクセスチェックテーブル470の一例を示す説明図である。待機系ホストアクセスチェックテーブル470は、ホスト管理テーブル440の待機系計算機110が各現用系計算機100を引き継いだ場合に、各現用系計算機100のI/Oデバイス220までの通信経路に障害があるか否かを格納するものである。つまり、待機系ホストアクセスチェックテーブル470には、ホスト管理部412が、各待機系計算機110に指令したI/Oデバイス220までの通信経路の監視結果を格納する。
図15において、待機系ホストアクセスチェックテーブル470は、待機系計算機110の識別子を格納する待機系ホスト471と、仮想パスのチェックを行う現用系計算機100の識別子を格納する現用系ホスト472と、当該現用系ホストが接続されたPCIスイッチ300の識別子を格納するスイッチ474と、仮想パスの接続対象となるI/Oデバイス220の識別子を格納するI/Oデバイス474と、当該I/Oデバイス220の手前までの仮想パスのチェック結果を格納するアクセス結果475と、を一つのエントリに含む。
図15の現用系ホスト472とスイッチ473及びI/Oデバイス474は、図1に示した現用系計算機100とI/Oデバイス220の関係を示しており、例えば、現用系計算機100aは、ルートポート104a−aに接続されたPCIスイッチ300aのI/Oデバイス220a−1とI/Oデバイス220a−3を利用していることを示す。
図16は、PCIマネージャ400のホスト管理部412が管理する待機系ホスト星取り表480の一例を示す説明図である。ホスト管理部412は、各待機系計算機110で行ったI/Oデバイス220までの仮想パスのチェック結果を受信すると、上記待機系ホストアクセスチェックテーブル470を更新してから、待機系ホスト星取り表480を更新する。
待機系ホスト星取り表480は、待機系計算機110の識別子を格納する待機系ホスト481に対して、全ての現用系計算機100の識別子を格納する現用系ホスト482と、各現用系計算機100を待機系ホストで引き継ぐことが可能か否かを示すチェック結果483をひとつのエントリに備える。
ホスト管理部412は、待機系ホストアクセスチェックテーブル470を参照して、現用系ホスト472が使用する全てのI/Oデバイス474のアクセス結果475が「OK」であれば、待機系ホスト星取り表480のチェック結果を「OK」に設定し、現用系ホスト472が使用する全てのI/Oデバイス474のアクセス結果475に「NG」の値があれば、チェック結果483に「NG」を設定して、この待機系ホスト481で現用系ホスト482を引き継げないことを示す。
例えば、図15において、待機系ホスト471が「110e」で、現用系ホスト472が「100b」では、I/Oデバイス474が「220b−4」の仮想パスのアクセス結果475が「NG」であるため、待機系ホスト星取り表480において待機系ホスト481が「110e」と現用系ホスト482が「100b」のチェック結果483は「NG」となり、I/Oデバイス220b−4の仮想パスに障害があるため、待機系計算機110eで現用系計算機100bを引き継ぐことができないことを示す。
サービスプロセッサ150は、現用系計算機100に障害が発生すると、PCIマネージャ400のホスト管理部412に引き継ぎ可能な待機系計算機110を問い合わせると、ホスト管理部412は、現用系ホスト482のチェック結果483が「OK」となっている待機系ホスト481をサービスプロセッサ150に応答する。これにより、現用系計算機100に障害が発生したときに、引き継ぎ先の待機系計算機110で障害が発生するのを防いで、業務の停止期間を短縮することができる。
<PCIスイッチの仮想スイッチ生成機構>
PCIマネージャ400のスイッチ管理部411からポートと仮想スイッチVS及び仮想ブリッジVBの設定を受信したPCIスイッチ300a、300bは、仮想スイッチ生成機構310a、310bの各テーブルをそれぞれ更新し、仮想スイッチと仮想ブリッジの設定をそれぞれ更新して仮想パスを生成する。なお、以下では、仮想スイッチ生成機構310a、310bの総称を仮想スイッチ生成機構310とする。また、PCIスイッチ300a、300bの総称をPCIスイッチ300とする。
仮想スイッチ生成機構310は、各PCIスイッチ300がそれぞれ備える制御部であり、仮想スイッチ生成機構310が管理するテーブルを、図8に示す。図8は、仮想スイッチ生成機構310が管理するテーブルの一例を示すブロック図である。
PCIスイッチ300の仮想スイッチ生成機構310は、上記PCIマネージャ400のスイッチ管理部411が管理するテーブルと同様に、ポート管理テーブル320と、仮想ブリッジ管理テーブル340と、仮想ブリッジ管理テーブル320とを備える。なお、以下では、PCIスイッチ300aのテーブルには「a」の添え字を付し、PCIスイッチ300bのテーブルには「b」の添え字を付す。
図9はPCIスイッチ300aのポート管理テーブル320aを示す。ポート管理テーブル320aは、図3に示したPCIマネージャ400のポート管理テーブル420のうち、スイッチ421の識別子が「300a」の部分に相当するもので、ポート#322と、方向323と、種別324とリンク先325のエントリから構成される。
図10はPCIスイッチ300bのポート管理テーブル320bを示す。ポート管理テーブル320bは、図3に示したPCIマネージャ400のポート管理テーブル420のうち、スイッチ421の識別子が「300b」の部分に相当するもので、ポート#322と、方向323と、種別324とリンク先325のエントリから構成される。
図11はPCIスイッチ300aの仮想スイッチ管理テーブル330aと仮想ブリッジ管理テーブル340aを示す。仮想スイッチ管理テーブル330aは、図6に示したPCIマネージャ400の仮想スイッチ管理テーブル450のうち、スイッチ451の識別子が「300a」の部分に相当するもので、VS#332と、有効フラグ333と、開始VB#334とエントリ数335のエントリから構成される。仮想ブリッジ管理テーブル340aは、図6に示したPCIマネージャ400の仮想ブリッジ管理テーブル460のうち、スイッチ461の識別子が「300a」の部分に相当するもので、VS#342と、有効フラグ343と、方向344と、マップ345と、ポート#346と、VH#347のエントリから構成される。
図12はPCIスイッチ300bの仮想スイッチ管理テーブル330bと仮想ブリッジ管理テーブル340bを示す。仮想スイッチ管理テーブル330bは、図6に示したPCIマネージャ400の仮想スイッチ管理テーブル450のうち、スイッチ451の識別子が「300b」の部分に相当するもので、VS#332と、有効フラグ333と、開始VB#334とエントリ数335のエントリから構成される。仮想ブリッジ管理テーブル340bは、図6に示したPCIマネージャ400の仮想ブリッジ管理テーブル460のうち、スイッチ461の識別子が「300b」の部分に相当するもので、VS#342と、有効フラグ343と、方向344と、マップ345と、ポート#346と、VH#347のエントリから構成される。
図9〜図12に示す各PCIスイッチ300a、300bの仮想スイッチ生成機構310が管理するテーブルは、図3、図6に示したPCIマネージャ400のスイッチ管理部411が管理する各テーブルの内容に一致する。
図17は、図3に示したポート管理テーブル420と図6に示した仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460に基づいて、PCIマネージャ400がPCIスイッチ300a、300bに指令した結果、PCIスイッチ300a、300bに設定された仮想スイッチの一例を示すブロック図である。
図17において、仮想スイッチ350−1は、上流ポート301a−1に割り当てられた仮想ブリッジ360−1と、下流ポート302a−1に割り当てられた仮想ブリッジ360−2と、下流ポート302a−3に割り当てられた仮想ブリッジ360−3から構成される。仮想スイッチ350−1は、上流ポート301a−1に接続された現用系計算機100aを、下流ポート302a−1のI/Oデバイス220a−1または下流ポート302a−3のI/Oデバイス220a−3に接続する仮想パスを切り替える。すなわち、図3に示したポート管理テーブル420と、図4に示したリソース割り当てテーブル430に基づいて、PCIマネージャ400が現用系計算機100aが使用するI/Oデバイス220a−1、220a−3の仮想パスを、図6の仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460で示すように設定したものである。
図17に示す仮想スイッチ350−XのXは、図6に示した仮想スイッチ管理テーブル450のVS#452の仮想スイッチの識別子を示し、仮想ブリッジ360−YのYは、図6に示した仮想ブリッジ管理テーブル460のVB#462の仮想ブリッジの識別子を示す。
図17では、PCIマネージャ400からの指令によって、PCIスイッチ300a、300bの仮想スイッチ生成機構310が、それぞれ仮想スイッチ350−1〜350−9を生成した状態を示す。仮想ブリッジ360−Yは、例えば、レジスタで構成され、仮想スイッチ350−Xは、割り当てられた仮想ブリッジ360−Xを切り替えて、パケットを転送する。仮想スイッチ350−Xに割り当てられた仮想ブリッジ360−Xが2つの場合には、2つの仮想ブリッジ360−Yの間でパケットを転送することになる。
<待機系計算機からの仮想パスのチェック処理>
次に、PCIマネージャ400のホスト管理部412で行われる待機系計算機110からI/Oデバイス220までの仮想パスのチェック処理について、図18を参照しながら以下に説明する。図18は、PCIマネージャ400のホスト管理部412で実行される待機系計算機110からの仮想パスのチェック処理の一例を示すフローチャートである。
ホスト管理部412は、まずステップ600でインターバルタイマ405に所定の時間または周期を設定する。なお、インターバルタイマ405に設定する時間は、例えば、24時間など現用系計算機100の稼動状態や負荷に応じて適宜設定すればよい。ホスト管理部412は、ステップ601でインターバルタイマ405が上記時間を経過したか否かを判定し、インターバルタイマ405が所定の時間をカウントするまで待機する。インターバルタイマ405が所定時間までカウントした場合にはステップ602に進んで、待機系計算機110が現用系計算機100を引き継ぐときのI/Oデバイス220の直前までの仮想パスについて障害の検知を実行する。ここで、I/Oデバイス220の直前までの仮想パスは、図17において、待機系計算機110から、I/Oデバイス220に接続された下流ポート302に割り当てられた仮想ブリッジ360−Yまでの通信経路となる。
ステップ602では、ホスト管理部412が待機系ホスト星取り表480を初期化する。この初期化は、ホスト管理テーブル440から現用系と待機系の識別子をホスト441から取得して、種別442に応じて待機系ホスト星取り表480の待機系ホスト481と、現用系ホスト482に識別子を設定し、チェック結果483をクリアする。また、待機系ホストアクセスチェックテーブル470も、現在のホスト管理テーブル440とリソース割り当てテーブル430とポート管理テーブル420の内容に基づいて更新し、アクセス結果475をクリアする。
次に、ステップ603では、ホスト管理部412が待機系ホスト星取り表480の待機系ホスト481から待機系計算機110を一つ選択し、ステップ604では、待機系ホスト星取り表480の現用系ホスト482から現用系計算機100を一つ選択する。
ステップ605では、上記ステップ603と604で選択した待機系計算機110と現用系計算機100について、ホスト管理部412がリソース割り当てテーブル430を参照して、現用系計算機100が使用中のI/Oデバイス220について選択した待機系計算機110からの仮想パスを設定するようスイッチ管理部411に指令する。待機系計算機110から使用中のI/Oデバイスまでの仮想パスは、現用系計算機100からI/Oデバイス220までのパスツリーと同型となるように設定される。
また、ホスト管理部412は、待機系計算機110に仮想パスのチェックを指示するI/Oデバイス220を指定するため、上記選択した現用系計算機100に関するI/Oデバイスリスト490を生成する。
スイッチ管理部411は、図6に示した仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460に、待機系計算機110からI/Oデバイス220までの仮想パスを生成するために仮想スイッチと仮想ブリッジを上述したように設定し、I/Oデバイス220を接続したポートのPCIスイッチ300に仮想スイッチの生成を指令する。
このとき、スイッチ管理部411は、図6に示した仮想ブリッジ管理テーブル460において、上述したように待機系計算機110からI/Oデバイス220の仮想パスのうち、I/Oデバイス220と接続する下流ポート302に割り当てる仮想ブリッジについて、マップ465を「No」に設定して、仮想ブリッジとI/Oデバイス220の通信を禁止(無効化)する。これによって、仮想パスは待機系計算機110からI/Oデバイス220の直前までとなる。
次に、ステップ606では、ホスト管理部412が上記選択した待機系計算機110に現用系計算機100で使用中のI/Oデバイス220の直前までの仮想パスの状態をチェックする待機系パスチェックプログラム120を実行するようサービスプロセッサ150に指令し、チェック対象の現用系計算機100を示すI/Oデバイスリスト490を送信する。サービスプロセッサ150は後述するように、I/Oデバイスリスト490に基づいて、PCIマネージャ400が設定したPCIスイッチ300の仮想パスについて待機系計算機110で待機系パスチェックプログラム120を実行させる。待機系計算機110は、後述するようにチェックの結果をアクセス結果リスト500としてサービスプロセッサ150に応答する。サービスプロセッサ150は、アクセス結果リスト500をホスト管理部412に応答する。
ここで、本実施形態の待機系計算機110は、コールドスタンバイであるので、サービスプロセッサ150はホスト管理部412から仮想パスのチェックの指令を受信すると、該当する待機系計算機110を起動させる。待機系計算機110が起動すると、サービスプロセッサ150は、I/Oデバイスリスト490を送信し、待機系計算機110にチェックの開始を指令して待機系パスチェックプログラム120を実行させる。待機系計算機110は、待機系パスチェックプログラム120によって、PCIスイッチ300に設定されたI/Oデバイス220の直前までの仮想パスについて障害の有無を検出し、サービスプロセッサ150へ結果を送信する。なお、待機系パスチェックプログラム120は、各待機系計算機110に予め格納させておいても良いし、サービスプロセッサ150やPCIマネージャ400からロードするようにしてもよい。
ステップ607では、ホスト管理部412がサービスプロセッサ150を介して待機系計算機110から取得したアクセス結果リスト500の内容を、待機系ホストアクセスチェックテーブル470に格納し、待機系ホスト星取り表480を更新する。そして、ホスト管理部412は、仮想パスのチェックが完了した待機系計算機110とI/Oデバイス220の直前までの仮想パスを削除するようスイッチ管理部411に指令する。スイッチ管理部411は、ホスト管理部412から指令された仮想パスについて、仮想スイッチ管理テーブル450と仮想ブリッジ管理テーブル460から該当する仮想パスの設定を削除し、待機系計算機110からの仮想パスを設定したPCIスイッチ300に仮想スイッチを削除するよう指令する。
ステップ608では、ホスト管理部412が待機系ホスト星取り表480でまだ選択していない現用系ホスト482があるか否かを判定する。まだ、選択していない現用系ホストがあれば、ステップ604に戻って次の現用系ホスト482について上記仮想パスのチェック処理を実行する。一方、現在選択している待機系計算機110で全ての現用系計算機100について仮想パスのチェックが完了していればステップ609へ進む。
ひとつの待機系計算機110について仮想パスのチェックが完了すると、ステップ609で、ホスト管理部412は待機系ホスト星取り表480でまだ選択していない待機系ホスト481があるか否かを判定する。まだ、選択していない待機系ホストがあれば、ステップ603に戻って次の待機系ホスト481について上記仮想パスのチェック処理を実行する。一方、すべての待機系計算機110で全ての現用系計算機100について仮想パスのチェックが完了していればステップ600へ戻って、次回の処理まで待機する。このとき、ホスト管理部412は、サービスプロセッサ150に対して待機系計算機110をコールドスタンバイの状態へ移行するように指令しても良い。
以上の処理によって、PCIマネージャ400は、現在、現用系計算機100で使用中のI/Oデバイス220の直前までの通信経路について待機系計算機110から障害の有無を検出する。このとき、待機系計算機110は、I/Oデバイス220の直前の仮想ブリッジ360−Yまでの仮想パスについてアクセスを行うため、現在、当該I/Oデバイス220を使用している現用系計算機100に影響を与えることはない。そして、PCIマネージャ400は、全ての待機系計算機110について、各現用系計算機100を引き継いだときの仮想パスの障害の有無を取得し、待機系ホスト星取り表480を更新する。これにより、現用系計算機100に障害が発生する以前に、待機系計算機110からI/Oデバイス220の直前までの通信経路の異常を把握することができ、現用系計算機100から待機系計算機110へ切り替えたときにI/Oデバイス220にアクセスできずにさらなる障害が発生するのを確実に防止できる。
次に、上記図18のステップ606の処理の詳細について、以下に説明する。図19は、上記ステップ606のサブルーチンを示すフローチャートで、サービスプロセッサ150で行われる処理を示す。
このフローチャートは、サービスプロセッサ150がPCIマネージャ400のホスト管理部412から待機系計算機110と仮想パスのチェック開始指令を受信したときに実行される。
ステップ610では、サービスプロセッサ150がPCIマネージャ400のホスト管理部412から、仮想パスのチェック処理を指示された待機系計算機110の識別子と、この識別子に対応する待機系計算機110が処理を引き継ぐ現用系計算機100のI/Oデバイスリスト490を受信する。
ステップ611では、識別子で指定された待機系計算機110が起動しているか否かを判定し、起動済みであればステップ613に進み、起動していなければステップ612で対象となる待機系計算機110を起動させる。
ステップ613では、サービスプロセッサ150はPCIマネージャ400から受信したI/Oデバイスリスト490を起動した待機系計算機110に送信し、待機系パスチェックプログラム120を実行させる。待機系計算機110は、後述するように、現用系計算機100から引き継いだ場合のI/Oデバイス220のそれぞれについて、待機系パスチェックプログラム120で仮想パスにアクセスして障害があるか否かのチェックを行い、アクセス結果をアクセス結果リスト500として生成し、サービスプロセッサ150に送信する。
ステップ614では、サービスプロセッサ150は待機系計算機110からアクセス結果リスト500を受信してPCIマネージャ400に転送する。
以上の処理により、サービスプロセッサ150は、待機系計算機110を起動させた後に、ホスト管理部412から受信したI/Oデバイスリスト490を待機系計算機110に送信して、待機系パスチェックプログラム120をI/Oデバイスリスト490のI/Oデバイス220についてチェックさせる。そして、待機系計算機110から受信したアクセス結果リスト500をPCIマネージャ400のホスト管理部412に返信する。
次に、上記図19のステップ613で待機系計算機110が実行する待機系パスチェックプログラム120の処理の一例について、図20のフローチャートを参照ながら説明する。このフローチャートは、待機系計算機110がサービスプロセッサ150からの指令を受信したときに実行する。
サービスプロセッサ150によって起動した待機系計算機110は、待機系パスチェックプログラム120を実行する。なお、コールドスタンバイの待機系計算機110を起動する手法は、Wake on LANやBMC(Baseboard Management Controller)等を用いることができる。
ステップ620では、待機系計算機110がサービスプロセッサ150からI/Oデバイスリスト490を受信し、ステップ621では図13で示したI/Oデバイスリスト490のI/Oデバイス493からひとつのI/Oデバイス220を選択する。
次に、ステップ622では、選択したI/Oデバイス220に対して待機系計算機110がアクセス(例えば、読み込み)を実施する。このとき、PCIマネージャ400は、既に待機系計算機110からI/Oデバイス220の直前までの仮想パスをPCIスイッチ300に設定してあるため、待機系計算機110はI/Oデバイス220の直前となる仮想ブリッジ360のレジスタの値を読むことになる。
ステップ623では、待機系計算機110が仮想ブリッジ360のレジスタの値を読み込めたか否かを判定し、読み込めた場合にはステップ624へ進み、読み込みの際にエラーが発生した場合には、ステップ625へ進む。ステップ624では、当該I/Oデバイス220のアクセス結果を示すアクセス結果リスト500のアクセス結果504に、仮想パスが正常であることを示す「OK」を設定する。一方、ステップ625では、当該I/Oデバイス220のアクセス結果リスト500のアクセス結果504に異常があることを示す「NG」を設定する。
ステップ624またはステップ625の何れか一方で、待機系計算機110はI/Oデバイス220毎にアクセス結果リスト500を生成する。
そして、ステップ626で、待機系計算機110はI/Oデバイスリスト490中でまだアクセスを実行していないI/Oデバイス220の有無を判定する。I/Oデバイスリスト490にアクセスを実行していないI/Oデバイス220があれば、ステップ621へ戻って次のI/Oデバイス220を選択し、上記処理を繰り返す。一方、I/Oデバイスリスト490の全てのI/Oデバイス220にアクセスが完了していればステップ627に進む。
ステップ627では、待機系計算機110が生成したアクセス結果リスト500をサービスプロセッサ150に送信し、処理を終了する。
上記処理によって、サービスプロセッサ150はPCIマネージャ400から仮想パスのチェック処理の開始指令と、I/Oデバイスリスト490を受け付けると、指定された待機系計算機110を起動する。そして、サービスプロセッサ150は、待機系計算機110に対して、待機系パスチェックプログラム120の実行指令とI/Oデバイスリスト490を送信する。待機系計算機110は、I/Oデバイスリスト490のI/Oデバイス220毎に、直前の仮想ブリッジまでの通信経路にアクセスする待機系パスチェックプログラム120を実行する。待機系計算機110の待機系パスチェックプログラム120は、I/Oデバイスリスト490のI/Oデバイス220について、I/Oデバイス220の直前の仮想ブリッジまでの通信経路にアクセスして、PCIスイッチ300の仮想ブリッジのレジスタの値を読み込むことができれば、当該仮想パスのアクセス結果は「OK」であると判定し、レジスタの値を読み込むことができなければ、当該仮想パスのアクセス結果は「NG」であると判定する。待機系パスチェックプログラム120は、I/Oデバイスリスト490の全てのI/Oデバイス220について仮想ブリッジまでアクセスを行った結果をアクセス結果リスト500として生成し、サービスプロセッサ150に通知する。サービスプロセッサ150はこのように、待機系計算機110にチェック処理を実行させて、各I/Oデバイス220毎のアクセス結果を示すアクセス結果リスト500をPCIマネージャ400に通知する。PCIマネージャ400のホスト管理部412は、受信したアクセス結果リスト500から、待機系ホストアクセスチェックテーブル470と、待機系星取り表480を更新して、現用系計算機100の引き継ぎに備えることができる。
<待機系パスチェックの一例>
図21、図22に、現用系計算機100でI/Oデバイス220を使用中に、待機系計算機110がI/Oデバイス220の直前までの仮想パスに対してチェック処理を行う例を示す。図21は、待機系計算機110eで現用系計算機100aを引き継ぐ場合を想定して、I/Oデバイス220a−1、220a−3までの仮想パスのチェック処理を実施するときの仮想スイッチ350−Xと仮想ブリッジ360−Yの一例を示すブロック図である。図22は、上記図21の仮想パスを上記図6に加えた場合の仮想スイッチ管理テーブル450−1と仮想ブリッジ管理テーブル460−1の例を示し、待機系計算機110eからI/Oデバイス220a−1、220a−3までの新たな仮想パスを図中太字にて示す。
図21の計算機システムの構成は、図1と同様であり、図3のポート管理テーブル420と図4のリソース割り当てテーブル430及び図6のホスト管理テーブル440に示す構成を備える。図4のリソース割り当てテーブル430で示すように、現用系計算機100aは、PCIスイッチ300aに接続されたI/Oデバイス220a−1、220a−3を使用している。そして、PCIスイッチ300aには、現用系計算機100aとI/Oデバイス220a−1またはI/Oデバイス220a−3を選択的に接続する仮想スイッチ350−1及び仮想ブリッジ360−1、360−2、360−3が設定されている。
現用系計算機100aが使用中のI/Oデバイス220までの通信経路をチェックする待機系計算機110eは、PCIマネージャ400がPCIスイッチ300aに設定した仮想スイッチ350−5を仮想パスとして使用する。ここで、PCIマネージャ400のスイッチ管理部411は、待機系計算機110eからI/Oデバイス220までのパスツリーが、現用系計算機100aからI/Oデバイス220までのパスツリーと同型となる仮想パスを生成する。
スイッチ管理部411は、仮想スイッチ350−5を、上流ポート301a−5に割り当てられた仮想ブリッジ360−10と、下流ポート302a−1に割り当てられた仮想ブリッジ360−11と、下流ポート302a−3に割り当てられた仮想ブリッジ360−12とで構成する。つまり、現用系計算機100aからI/Oデバイス220a−1、220a−3までのパスツリーと同型の仮想パスを同一のPCIスイッチ300aに設定する。
ここで、I/Oデバイス220a−1に接続された下流ポート302a−1は、現用系計算機100aが使用中の仮想スイッチ350−1の仮想ブリッジ360−2と、待機系計算機110eが使用する仮想スイッチ350−5の仮想ブリッジ360−11に割り当てられることになる。そこで、図22の仮想ブリッジ管理テーブル460−1で示すように、現用系計算機100aで使用する仮想ブリッジ360−2は、マップ465を「Yes」に設定して下流ポート302a−1との通信を許容する一方、待機系計算機110eが使用する仮想ブリッジ360−11は、マップ465を「No」に設定して下流ポート302a−5との通信を禁止する。
同様に、図22の仮想ブリッジ管理テーブル460−1で示すように、現用系計算機100aで使用する仮想ブリッジ360−3は、マップ465を「Yes」に設定して下流ポート302a−3との通信を許容する一方、待機系計算機110eが使用する仮想ブリッジ360−12は、マップ465を「No」に設定して下流ポート302a−3との通信を禁止する。
したがって、待機系計算機110eが待機系パスチェックプログラム120でI/Oデバイス220a−1または220a−3にアクセスを行うと、PCIスイッチ300aの上流ポート301a−6から仮想スイッチ350−5を経て仮想ブリッジ360−11または360−12までの仮想パスをアクセスすることになる。
待機系計算機110eが待機系パスチェックプログラム120でI/Oデバイス220a−1またはI/Oデバイス220a−3にアクセスを行うと、これらのI/Oデバイス220a−1、220a−3の直前の仮想パスについて障害を検知することができる。
このように、現用系計算機100aがI/Oデバイス220a−1と200a−3を使用している最中に、待機系計算機110eからI/Oデバイス220a−1の直前までの仮想パスとI/Oデバイス220a−3の直前までの仮想パスについて障害の有無を検知できる。障害を検知したときには、PCIマネージャ400は、待機系計算機110eで現用系計算機100aを引き継ぐことを禁止するので、実際に現用系計算機100aで障害が発生して待機系計算機110で引き継ぐときに、更なる障害が発生するのを防いで、仮想パスに障害のない待機系計算機110で業務の引き継ぎを行うことができる。
すなわち、現用系計算機100を監視するサービスプロセッサ150は、現用系計算機100に障害が発生すると、PCIマネージャ400のホスト管理部412に、障害が発生した現用系計算機100eを引き継ぐことが可能な待機系計算機を問い合わせる。ホスト管理部412は、図16に示した待機系星取り表480を参照して、引き継ぎ可能な待機系計算機110を応答する。サービスプロセッサ150は、ホスト管理部412から受信した待機系計算機110で現用系計算機100を引き継ぐことを決定することができる。例えば、図16において、現用系計算機100bに障害が発生した場合、待機系計算機110eでは、現用系計算機100bが利用するI/Oデバイスの仮想パスに障害があるため「NG」となっている。したがって、ホスト管理部412は、現用系計算機100bを引き継ぎ可能な待機系計算機110eをサービスプロセッサ150に応答することで、障害が発生したときの待機系計算機110への引き継ぎ時に、更なる障害が発生するのを防止できるのである。
また、障害の発生時には、サービスプロセッサ150の管理コンソール180に待機系計算機110からの仮想パス上に障害があることを通知することで、管理者などは現用系計算機100に障害が発生する以前に、待機系計算機110からの仮想パス上の障害を知ることができ、事前に対処することが可能となる。
このように、ホスト管理部412が管理する待機系ホスト星取り表480及び待機系ホストアクセスチェックテーブル470は、待機系計算機110からI/Oデバイス220の直前の仮想ブリッジ360−Yまでの障害を把握することで、待機系計算機110からI/Oデバイス220までの仮想パス(アクセスパス)の障害検知の代用とすることができるのである。
図23、図24に、現用系計算機100が2つのPCIスイッチ300a、300bにまたがってI/Oデバイス220を使用している最中に、待機系計算機110がI/Oデバイス220の直前までの仮想パスに対してチェック処理を行う例を示す。図23は、待機系計算機110fで現用系計算機100cを引き継ぐ場合を想定して、I/Oデバイス220a−5、220b−7までの仮想パスのチェック処理を実施するときの仮想スイッチ350−Xと仮想ブリッジ360−Yの一例を示すブロック図である。図24は、上記図23の仮想パスを上記図6に加えた場合の仮想スイッチ管理テーブル450−2と仮想ブリッジ管理テーブル460−2の例を示し、待機系計算機110fからI/Oデバイス220a−5、220b−7までの新たな仮想パスを図中太字にて示す。
図23の計算機システムの構成は、図1と同様であり、図3のポート管理テーブル420と図4のリソース割り当てテーブル430及び図6のホスト管理テーブル440に示す構成を備える。図4のリソース割り当てテーブル430で示すように、現用系計算機100cは、PCIスイッチ300aに接続されたI/Oデバイス220a−5と、PCIスイッチ300bに接続されたI/Oデバイス220b−7を使用している。そして、PCIスイッチ300aには、現用系計算機100cとI/Oデバイス220a−5を接続する仮想スイッチ350−3及び仮想ブリッジ360−6、360−7が設定され、PCIスイッチ300bには、現用系計算機100cとI/Oデバイス220b−7を接続する仮想スイッチ350−8及び仮想ブリッジ360−18、360−19が設定されている。
現用系計算機100cとI/Oデバイス220a−5は、仮想ブリッジ360−6、360−7を含む仮想スイッチ350−3で接続され、現用系計算機100cとI/Oデバイス220b−7は、仮想ブリッジ360−18、360−19を含む仮想スイッチ350−3で接続されている。
現用系計算機100cが使用中のI/Oデバイス220までの通信経路をチェックする待機系計算機110fは、PCIマネージャ400がPCIスイッチ300aに設定した仮想スイッチ350−5と、PCIスイッチ300bに設定した仮想スイッチ350−10を仮想パスとして使用する。スイッチ管理部411は、待機系計算機110fからI/Oデバイス220までのパスツリーが、現用系計算機100cからI/Oデバイス220までのパスツリーと同型となる仮想パスを生成する。
スイッチ管理部411は、仮想スイッチ350−5を、上流ポート301a−6に割り当てられた仮想ブリッジ360−10と、下流ポート302a−5に割り当てられた仮想ブリッジ360−11で構成する。ここで、I/Oデバイス220a−5に接続された下流ポート302a−5は、現用系計算機100cが使用中の仮想スイッチ350−3の仮想ブリッジ360−7と、待機系計算機110fが使用する仮想スイッチ350−5の仮想ブリッジ360−11に割り当てられることになる。そこで、図24の仮想ブリッジ管理テーブル460−2で示すように、現用系計算機100cで使用する仮想ブリッジ360−7は、マップ465を「Yes」に設定して下流ポート302との通信を許容する一方、待機系計算機110fが使用する仮想ブリッジ360−11は、マップ465を「No」に設定して下流ポート302a−5との通信を禁止(無効化)する。
したがって、待機系計算機110fが待機系パスチェックプログラム120でI/Oデバイス220a−5にアクセスを行うと、PCIスイッチ300aの上流ポート301a−6から仮想スイッチ350−5を経て仮想ブリッジ360−11までの仮想パスをアクセスすることになる。
したがって、待機系計算機110fが待機系パスチェックプログラム120でI/Oデバイス220a−5にアクセスを行うと、PCIスイッチ300aの上流ポート301a−6から仮想スイッチ350−5を経て仮想ブリッジ360−11までの仮想パスをアクセスすることになる。これにより、待機系計算機110からI/Oデバイス220a−5の直前の仮想パスについて障害の有無を検知できる。
次に、仮想スイッチ350−10は、上流ポート301b−6に割り当てられた仮想ブリッジ360−22と、下流ポート302b−7に割り当てられた仮想ブリッジ360−23で構成される。ここで、I/Oデバイス220b−7に接続された下流ポート302b−7は、現用系計算機100cが使用中の仮想スイッチ350−8の仮想ブリッジ360−19と、待機系計算機110fが使用する仮想スイッチ350−10の仮想ブリッジ360−23に割り当てられることになる。そこで、図24の仮想ブリッジ管理テーブル460−2で示すように、現用系計算機100cで使用する仮想ブリッジ360−19は、マップ465を「Yes」に設定して下流ポート302b−7との通信を許容する一方、待機系計算機110fが使用する仮想ブリッジ360−23は、マップ465を「No」に設定して下流ポート302b−7との通信を禁止する。
したがって、待機系計算機110fが待機系パスチェックプログラム120でI/Oデバイス220b−7にアクセスを行うと、PCIスイッチ300bの上流ポート301b−6から仮想スイッチ350−10を経て仮想ブリッジ360−23までの仮想パスをアクセスすることになる。これにより、待機系計算機110からI/Oデバイス220b−7の直前の仮想パスについて障害の有無を検知できる。
このように、現用系計算機100cがI/Oデバイス220a−5と200b−7を使用している最中に、待機系計算機110fからI/Oデバイス220a−5の直前までの仮想パスとI/Oデバイス220b−7の直前の仮想パスについて障害の有無を検知できる。障害を検知したときには、PCIマネージャ400は、待機系計算機110fで現用系計算機100cを引き継ぐことを禁止するので、実際に現用系計算機100cで障害が発生して待機系計算機110で引き継ぐときに、更なる障害が発生するのを防いで、仮想パスに障害のない待機系計算機110で業務の引き継ぎを行うことができる。また、障害の発生時には、サービスプロセッサ150の管理コンソール180に待機系計算機110からの仮想パス上に障害があることを通知することで、管理者などは現用系計算機100に障害が発生する以前に、待機系計算機110からの仮想パス上の障害を知ることができ、事前に対処することが可能となる。
<第2実施形態>
図25は、第2の実施形態を示し、前記第1実施形態のPCIスイッチ300を多段構成にしたもので、その他の構成は前記第1実施形態と同様である。なお、サービスプロセッサ150と管理コンソール180及び管理用のパスは図示を省略した。
PCIスイッチ300c、300d、300e、300fは相互に接続されており、PCIスイッチ300c、300dが現用系計算機100と待機系計算機110に接続され、PCIスイッチ300e、300fがI/Oデバイス220に接続される。
PCIマネージャ400の各テーブルは、PCIスイッチ300c〜300fのポートと仮想スイッチ及び仮想ブリッジを管理することになる。この場合も、前記第1実施形態と同様に、現用系計算機100の稼働中に、待機系計算機110からI/Oデバイス220の直前のPCIスイッチ300e、300fに設定された仮想ブリッジまでの仮想パスについて障害の有無を検出することができる。
<第3実施形態>
図26は、第3の実施形態を示し、前記第1実施形態の現用系計算機100と待機系計算機110からなる物理計算機でハイパバイザ130a〜130fを稼動させて、ハイパバイザ130a〜130f上で仮想計算機140a−1〜140−f1を実行するもので、その他の構成は前記第1実施形態と同様である。
現用系計算機100に障害が発生すると、待機系計算機110では、現用系計算機100で稼動していた仮想計算機を引き継ぐ。
PCIマネージャ400が行うI/Oデバイス220の割り当ては、仮想計算機140a−1〜140−f1に対して行われる点が前記第1実施形態と相違する。このため、リソース割り当てテーブル430は、物理計算機の識別子(ホスト433)に加えて仮想計算機の識別子を格納すればよい。
この場合も前記第1実施形態と同様に、現用系計算機100上の仮想計算機の稼働中に、待機系計算機110の仮想計算機からI/Oデバイス220の直前のPCIスイッチ300に設定された仮想ブリッジまでの仮想パスについて障害の有無を検出することができる。
なお、上記各実施形態で、待機系計算機をコールドスタンバイとしたが、ホットスタンバイとしてもよい。
また、上規格実施形態では、サービスプロセッサ150を独立した計算機としたが、現用系計算機100をサービスプロセッサ150としても良く、あるいは、サービスプロセッサ150とPCIマネージャ400を同一の計算機で実行しても良い。また、サービスプロセッサ150やPCIマネージャ400を仮想計算機上で実行させても良い。
以上のように、本発明では、マルチルートPCIスイッチを備えた計算機システムに適用することができ、特に、クラスタ構成の計算機システムに好適である。
第1の実施形態を示し、本発明を適用する計算機システムのブロック図である。 PCIマネージャの機能要素を示すブロック図である。 PCIマネージャが管理するポート管理テーブルの一例を示す説明図である。 PCIマネージャが管理するリソース割り当てテーブルの一例を示す説明図である。 PCIマネージャが管理するホスト管理テーブルの一例を示す説明図である。 PCIマネージャが管理する仮想スイッチ管理テーブルと仮想ブリッジ管理テーブルの関係を示す説明図である。 仮想スイッチと仮想ブリッジの関係を示すブロック図である。 PCIスイッチの仮想スイッチ生成機構の構成を示すブロック図である。 PCIスイッチ300aの仮想スイッチ生成機構が管理するポート管理テーブルの一例を示す説明図である。 PCIスイッチ300bの仮想スイッチ生成機構が管理するポート管理テーブルの一例を示す説明図である。 PCIスイッチ300aの仮想スイッチ生成機構が管理する仮想スイッチ管理テーブルと仮想ブリッジ管理テーブルの関係を示す説明図である。 PCIスイッチ300bの仮想スイッチ生成機構が管理する仮想スイッチ管理テーブルと仮想ブリッジ管理テーブルの関係を示す説明図である。 PCIマネージャが発行するI/Oデバイスリストの一例を示す説明図である。 待機系計算機が発行するアクセス結果リストの一例を示す説明図である。 PCIマネージャが管理する待機系ホストチェックテーブルの一例を示す説明図である。 PCIマネージャが管理する待機系ホスト星取り表の一例を示す説明図である。 PCIスイッチに設定された仮想スイッチと仮想ブリッジの関係を示すブロック図である。 PCIマネージャで行われる処理の一例を示すフローチャートである。 サービスプロセッサで行われる処理の一例を示すフローチャートである。 待機系計算機行われる処理の一例を示すフローチャートである。 待機系計算機からI/Oデバイスの直前までに設定された仮想パスの一例を示すブロック図である。 PCIマネージャが管理する仮想スイッチ管理テーブルと仮想ブリッジ管理テーブルの関係を示す説明図で、待機系計算機からI/Oデバイスの直前までの仮想パスを示す。 待機系計算機からI/Oデバイスの直前までに設定された仮想パスの他の例を示すブロック図である。 PCIマネージャが管理する仮想スイッチ管理テーブルと仮想ブリッジ管理テーブルの関係の他の例を示す説明図で、待機系計算機からI/Oデバイスの直前までの仮想パスを示す。 第2の実施形態を示し、PCIスイッチ300を多段構成にした場合の計算機システムのブロック図である。 第3の実施形態を示し、現用系計算機と待機系計算機でハイパバイザを稼動させて仮想計算機を実行する場合の計算機システムのブロック図である。
符号の説明
100 現用系計算機
110 待機系計算機
150 サービスプロセッサ
300 PCIスイッチ
310 仮想スイッチ生成機構
400 PCIマネージャ
411 スイッチ管理部
412 ホスト管理部
450 仮想スイッチ管理テーブル
460 仮想スイッチ管理テーブル

Claims (9)

  1. プロセッサとメモリとインターフェースとを有する複数の計算機と、
    前記複数の計算機を前記インターフェース経由で接続されたPCIスイッチと、
    前記PCIスイッチに接続されたI/Oデバイスと、
    前記PCIスイッチの構成を管理する管理部と、を備えた計算機システムにおいて、
    前記管理部は、
    前記複数の計算機のうちの現用系計算機と、前記I/Oデバイスとを接続する第1の通信経路を設定するスイッチ管理部と、
    前記複数の計算機のうちの前記現用系計算機を引き継ぐ待機系計算機に対して、前記現用系計算機が利用するI/Oデバイスまでのアクセスを指令するホスト管理部と、を有し、
    前記スイッチ管理部は、
    前記現用系計算機の前記インターフェースと第1の仮想スイッチを接続する第1の仮想ブリッジと、前記現用系計算機が利用するI/Oデバイスと前記第1の仮想スイッチとを接続する第2の仮想ブリッジから前記第1の通信経路を前記PCIスイッチに設定し、
    前記待機系計算機の前記インターフェースと第2の仮想スイッチを接続する第3の仮想ブリッジと、前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスと前記第2の仮想スイッチとを接続する第4の仮想ブリッジとから第2の通信経路を前記PCIスイッチに設定し、当該第2の通信経路のうち前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスと第4の仮想ブリッジ間の通信を無効化し、
    前記ホスト管理部は、
    前記第2の通信経路が設定された後に、前記待機系計算機に対して前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスに接続された第4の仮想ブリッジまでのアクセスを指令し、
    前記待機系計算機は、
    前記ホスト管理部からのアクセスを指令に従って、前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスに接続された前記第4の仮想ブリッジまでアクセスし、
    前記ホスト管理部は、
    前記待機系計算機からのアクセス結果をそれぞれ受信して、これらのアクセス結果のうちのひとつに障害があれば、当該待機系計算機での前記現用系計算機の引き継ぎが不能であると判定することを特徴とすることを特徴とする計算機システム。
  2. 前記スイッチ管理部は、
    前記第2の通信経路のパスツリーを、前記第1の通信経路のパスツリーと同型とすることを特徴とする請求項1に記載の計算機システム。
  3. 前記ホスト管理部は、
    前記第2の計算機から前記第2の通信経路のアクセス結果を受信して、当該第2の通信経路がアクセス可能か否かを示す情報を保持することを特徴とする請求項1に記載の計算機システム。
  4. 前記現用計算機の稼動状態を監視して、現用系計算機に障害が発生したときには、前記現用系計算機の処理を複数の待機系計算機のうちにひとつに引き継がせる引き継ぎ制御部をさらに備え、
    前記ホスト管理部は、
    前記待機系計算機から前記第2の通信経路のアクセス結果を受信して、当該待機系計算機で現用系計算機を引き継ぐことが可能か否かを示す情報を前記待機系計算機毎に保持し、
    前記引き継ぎ制御部は、
    前記現用系計算機に障害が発生したときには、前記ホスト管理部から前記待機系計算機で現用系計算機を引き継ぐことが可能か否かを示す情報を参照して現用系計算機を引き継ぐ計算機を決定することを特徴とする請求項1に記載の計算機システム。
  5. 前記第1の計算機は、仮想計算機を実行する現用系計算機で構成され、
    前記第2の計算機は、前記仮想計算機を引き継ぐ待機系計算機で構成され、
    前記スイッチ管理部は、
    前記現用系計算機で実行される仮想計算機が使用する前記インターフェースと第1の仮想スイッチを接続する第1の仮想ブリッジと、前記I/Oデバイスと前記第1の仮想スイッチとを接続する第2の仮想ブリッジからなる前記第1の通信経路を前記PCIスイッチに設定し、
    前記待機系計算機の前記インターフェースと第2の仮想スイッチを接続する第3の仮想ブリッジと、前記I/Oデバイスと前記第2の仮想スイッチとを接続する第4の仮想ブリッジとからなる第2の通信経路を前記PCIスイッチに設定し、当該第2の通信経路のうち前記I/Oデバイスと第4の仮想ブリッジ間の通信を無効化し、
    前記ホスト管理部は、
    前記第2の通信経路が設定された後に、前記待機系計算機に対して前記I/Oデバイスに接続された第4の仮想ブリッジまでのアクセスを指令することを特徴とする請求項1に記載の計算機システム。
  6. 前記第1の計算機と第2の計算機を管理する引き継ぎ制御部をさらに有し、
    前記ホスト管理部は、
    前記第2の計算機から前記第2の通信経路で前記第4の仮想ブリッジまでアクセスした結果を受信し、当該アクセス結果に異常がある場合には、前記引き継ぎ制御部に前記異常を通知することを特徴とする請求項1に記載の計算機システム。
  7. 前記ホスト管理部は、
    前記第2の計算機から受信したアクセス結果を、前記第2の計算機から前記I/Oデバイスまでのアクセスパスの状態として取得することを特徴とする請求項1に記載の計算機システム。
  8. 前記PCIスイッチには複数のI/Oデバイスが接続され、
    前記スイッチ管理部は、
    前記現用系計算機が利用する複数のI/Oデバイスについて、前記第2の通信経路をそれぞれ設定し、
    前記ホスト管理部は、
    前記待機系計算機に対して前記各I/Oデバイスに接続された前記第4の仮想ブリッジまでのアクセスを順次指令し、
    前記待機系計算機からのアクセス結果をそれぞれ受信して、これらのアクセス結果のうちのひとつに障害があれば、当該待機系計算機での前記現用系計算機の引き継ぎが不能であると判定することを特徴とする請求項1に記載の計算機システム。
  9. プロセッサとメモリとインターフェースとを有する複数の計算機と、
    前記複数の計算機を前記インターフェース経由で接続されたPCIスイッチと、
    前記PCIスイッチに接続されたI/Oデバイスと、
    前記PCIスイッチの構成を管理する管理部と、を備えて、前記計算機からI/Oデバイスまでの通信経路を監視する通信経路の監視方法であって、
    前記管理部が、前記複数の計算機のうちの現用系計算機の前記インターフェースと第1の仮想スイッチを接続する第1の仮想ブリッジと、前記現用系計算機が利用するI/Oデバイスと第1の仮想スイッチとを接続する第2の仮想ブリッジから第1の通信経路を前記PCIスイッチに設定するステップと、
    前記管理部が、前記複数の計算機のうちの待機系計算機の前記インターフェースと第2の仮想スイッチを接続する第3の仮想ブリッジと、前記待機系計算機が引き継ぐ現用系計算機が利用する前記I/Oデバイスと前記第2の仮想スイッチとを接続する第4の仮想ブリッジから第2の通信経路を前記PCIスイッチに設定し、当該第2の通信経路のうち前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスと第4の仮想ブリッジ間の通信を無効化するステップと、
    前記管理部が、前記第2の通信経路が設定された後に、前記待機系計算機に対して前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスに接続された第4の仮想ブリッジまでのアクセスを指令するステップと、
    前記待機系計算機が、前記ホスト管理部からのアクセスを指令に従って、前記待機系計算機が引き継ぐ現用系計算機が利用するI/Oデバイスに接続された前記第4の仮想ブリッジまでアクセスするステップと、
    前記ホスト管理部が、前記待機系計算機からのアクセス結果をそれぞれ受信して、これらのアクセス結果のうちのひとつに障害があれば、当該待機系計算機での前記現用系計算機の引き継ぎが不能であると判定するステップと、を含むことを特徴とする通信経路の監視方法。
JP2008107002A 2008-04-16 2008-04-16 計算機システム及び通信経路の監視方法 Expired - Fee Related JP5074274B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008107002A JP5074274B2 (ja) 2008-04-16 2008-04-16 計算機システム及び通信経路の監視方法
US12/422,438 US7925817B2 (en) 2008-04-16 2009-04-13 Computer system and method for monitoring an access path

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008107002A JP5074274B2 (ja) 2008-04-16 2008-04-16 計算機システム及び通信経路の監視方法

Publications (2)

Publication Number Publication Date
JP2009258978A JP2009258978A (ja) 2009-11-05
JP5074274B2 true JP5074274B2 (ja) 2012-11-14

Family

ID=41202075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008107002A Expired - Fee Related JP5074274B2 (ja) 2008-04-16 2008-04-16 計算機システム及び通信経路の監視方法

Country Status (2)

Country Link
US (1) US7925817B2 (ja)
JP (1) JP5074274B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865654B2 (en) * 2006-02-28 2011-01-04 Emulex Design And Manufacturing Corporation Programmable bridge header structures
JP5074457B2 (ja) * 2009-06-04 2012-11-14 株式会社日立製作所 計算機システム、スイッチ切り替え方法及びpciスイッチ
US8184648B2 (en) 2009-06-18 2012-05-22 Rockstar Bidco, LP Method and apparatus for implementing control of multiple physically dual homed devices
US8594100B2 (en) 2010-03-31 2013-11-26 International Business Machines Corporation Data frame forwarding using a distributed virtual bridge
US9852087B2 (en) 2010-04-20 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Inline PCI-IOV adapter
US8489763B2 (en) * 2010-04-20 2013-07-16 International Business Machines Corporation Distributed virtual bridge management
US8619796B2 (en) 2010-04-22 2013-12-31 International Business Machines Corporation Forwarding data frames with a distributed fiber channel forwarder
US8571408B2 (en) 2010-04-22 2013-10-29 International Business Machines Corporation Hardware accelerated data frame forwarding
US8644139B2 (en) 2010-04-26 2014-02-04 International Business Machines Corporation Priority based flow control within a virtual distributed bridge environment
US8379642B2 (en) 2010-04-26 2013-02-19 International Business Machines Corporation Multicasting using a multitiered distributed virtual bridge hierarchy
US8369296B2 (en) 2010-04-26 2013-02-05 International Business Machines Corporation Distributed link aggregation
US8879554B2 (en) * 2010-05-07 2014-11-04 Cisco Technology, Inc. Preventing MAC spoofs in a distributed virtual switch
US8447909B2 (en) 2010-07-19 2013-05-21 International Business Machines Corporation Register access in distributed virtual bridge environment
EP2413212B1 (de) * 2010-07-26 2013-05-15 Siemens Aktiengesellschaft Verfahren zum Datenaustausch von Peripheriedaten und Untermodul
JP5549733B2 (ja) * 2010-08-18 2014-07-16 富士通株式会社 計算機管理装置、計算機管理システム及び計算機システム
JP5541021B2 (ja) * 2010-09-09 2014-07-09 富士通株式会社 スイッチ装置
JP5733384B2 (ja) * 2011-02-24 2015-06-10 富士通株式会社 情報処理装置
EP2720111B1 (en) * 2011-06-08 2017-07-05 Nec Corporation Computer system, connection device, power supply control method, and power supply control program recording medium
CN102955502B (zh) * 2011-08-25 2017-05-17 赛恩倍吉科技顾问(深圳)有限公司 背板接口电路、硬盘背板及服务器系统
US8891535B2 (en) 2012-01-18 2014-11-18 International Business Machines Corporation Managing a global forwarding table in a distributed switch
US8861400B2 (en) 2012-01-18 2014-10-14 International Business Machines Corporation Requesting multicast membership information in a distributed switch in response to a miss event
US9264295B1 (en) 2012-03-02 2016-02-16 Big Switch Networks, Inc. Systems and methods for forwarding broadcast network packets with a controller
DE102012102198A1 (de) * 2012-03-15 2013-09-19 Fujitsu Technology Solutions Intellectual Property Gmbh Modulares Serversystem, I/O-Modul und Switching-Verfahren
US8843688B2 (en) * 2012-09-11 2014-09-23 International Business Machines Corporation Concurrent repair of PCIE switch units in a tightly-coupled, multi-switch, multi-adapter, multi-host distributed system
CN103338117B (zh) * 2013-05-30 2016-12-28 华为技术有限公司 一种虚拟交换机的管理方法、设备及系统
US9141493B2 (en) 2013-07-12 2015-09-22 International Business Machines Corporation Isolating a PCI host bridge in response to an error event
US9342422B2 (en) 2013-11-07 2016-05-17 International Business Machines Corporation Selectively coupling a PCI host bridge to multiple PCI communication paths
US9935831B1 (en) * 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
US9658897B2 (en) 2014-06-23 2017-05-23 International Business Machines Corporation Flexible deployment and migration of virtual machines
US9473353B2 (en) 2014-06-23 2016-10-18 International Business Machines Corporation Cluster reconfiguration management
US10360116B2 (en) * 2015-02-13 2019-07-23 International Business Machines Corporation Disk preservation and failure prevention in a raid array
US10268616B2 (en) * 2017-08-01 2019-04-23 Dell Products L.P. Systems and methods for selective disablement of protocols on a USB type-C port
WO2019124259A1 (ja) * 2017-12-20 2019-06-27 日本電気株式会社 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62202249A (ja) * 1986-02-28 1987-09-05 Nec Corp 複数ホスト計算機間の共用資源アクセスガ−ド方式
JPH10143453A (ja) * 1996-11-06 1998-05-29 Nec Corp 端末用複数パス選択制御方式
WO2001001262A1 (fr) * 1999-06-24 2001-01-04 Fujitsu Limited Controleur de peripherique et systeme d'entree/sortie
US20040153700A1 (en) * 2003-01-02 2004-08-05 Nixon Mark J. Redundant application stations for process control systems
JP4256693B2 (ja) * 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
JP2005128781A (ja) * 2003-10-23 2005-05-19 Hitachi Ltd 系切り替え方法及び情報処理システム
FR2864962B1 (fr) * 2004-01-08 2007-09-14 Seppic Sa Nouveaux granules filmogenes poreux, procede pour leur preparation et application dans le pelliculage des comprimes et confiseries
US7058738B2 (en) 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US7356636B2 (en) 2005-04-22 2008-04-08 Sun Microsystems, Inc. Virtualized PCI switch
US20070165596A1 (en) * 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID
US7865654B2 (en) * 2006-02-28 2011-01-04 Emulex Design And Manufacturing Corporation Programmable bridge header structures
JP5154238B2 (ja) 2008-01-18 2013-02-27 株式会社日立製作所 複合型計算機システムの管理方法及び複合型計算機システム

Also Published As

Publication number Publication date
JP2009258978A (ja) 2009-11-05
US7925817B2 (en) 2011-04-12
US20090265501A1 (en) 2009-10-22

Similar Documents

Publication Publication Date Title
JP5074274B2 (ja) 計算機システム及び通信経路の監視方法
JP4923990B2 (ja) フェイルオーバ方法、およびその計算機システム。
US9600380B2 (en) Failure recovery system and method of creating the failure recovery system
JP5074457B2 (ja) 計算機システム、スイッチ切り替え方法及びpciスイッチ
US8533381B2 (en) Computer system, method of managing PCI switch, and management server
JP5305040B2 (ja) サーバ計算機の切替方法、管理計算機及びプログラム
US8479038B1 (en) Method and apparatus for achieving high availability for applications and optimizing power consumption within a datacenter
US20140032753A1 (en) Computer system and node search method
EP2518627B1 (en) Partial fault processing method in computer system
WO2012004902A1 (ja) 計算機システム及び計算機システムの系切替制御方法
US20140204734A1 (en) Node device, communication system, and method for switching virtual switch
WO2012168995A1 (ja) I/oスイッチの制御方法、仮想計算機の制御方法及び計算機システム
CN109032754B (zh) 提高通信路径可靠性的方法和设备
JP5712714B2 (ja) クラスタシステム、仮想マシンサーバ、仮想マシンのフェイルオーバ方法、仮想マシンのフェイルオーバプログラム
US10367711B2 (en) Protecting virtual computing instances from network failures
JP6212131B2 (ja) 計算機、計算機制御方法、および計算機制御プログラム
WO2023160378A1 (zh) 存储设备、存储方法、计算设备及存储介质
JP5321658B2 (ja) フェイルオーバ方法、およびその計算機システム。
CN111984376B (zh) 协议处理方法、装置、设备及计算机可读存储介质
KR101883251B1 (ko) 가상 시스템에서 장애 조치를 판단하는 장치 및 그 방법
JP5832408B2 (ja) 仮想計算機システム及びその制御方法
JP7193722B2 (ja) 障害通知システム、障害通知方法、障害通知装置および障害通知プログラム
US20150154083A1 (en) Information processing device and recovery management method
WO2014089966A1 (zh) 确定节点状态的方法和节点
KR20160091626A (ko) 네트워크 운영체제를 위한 프로세스의 라이프사이클 제어 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120720

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees