(57)【要約】【課題】通信インタフェースの種類が異なる複数の入出力装置に複数の現用系計算機が通信可能に接続される計算機システムに必要とされる待機系計算機の数を抑える。【解決手段】複数の計算機と複数の入出力装置との間に、一以上のスイッチ装置が介在する。一以上スイッチ装置が、入出力装置の第１の通信インタフェースの種類に合わせた第３の通信インタフェースと、複数の第３の通信インタフェースに接続される一以上のスイッチデバイスとを有する。各計算機は、第２の通信インタフェースを通じてスイッチデバイスに接続される。このため、複数の計算機が有する複数の第２の通信インタフェースは同じ種類の通信インタフェースで良く、複数の計算機が、複数の第２の通信インタフェースを通じて各種の第３の通信インタフェースを共有することができる【選択図】図１
2011107858.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１の通信インタフェースを有する複数の入出力装置と、
複数の第２の通信インタフェースを有する複数の計算機と、
前記複数の入出力装置が有する複数の第１の通信インタフェースと前記複数の計算機が有する前記複数の第２の通信インタフェースとに接続される一以上のスイッチ装置と
を有し、
前記複数の第１の通信インタフェースには、種類が異なる第１の通信インタフェースが含まれており、
前記一以上のスイッチ装置が、
前記複数の第１の通信インタフェースに接続される複数の第３の通信インタフェースと、
前記複数の第３の通信インタフェースに接続されている複数のポートである複数のアップストリームと前記複数の第２の通信インタフェースに接続されている複数のポートである複数のダウンストリームポートとを有する一以上のスイッチデバイスと
を有し、
前記一以上のスイッチデバイスが、アップストリームで、計算機の第２の通信インタフェースから出力されたパケットを受信し、そのパケットをダウンストリームポートから出力し、
各第３の通信インタフェースの種類は、接続されている第１の通信インタフェースの種類に対応した種類であり、
前記複数の計算機は、複数の現用系の計算機と一以上の待機系の計算機とで構成されており、
前記待機系計算機は、障害が生じた現用系計算機である障害計算機に代わって現用系とされる、
計算機システム。
【請求項２】
請求項１記載の計算機システムであって、
前記一以上のスイッチ装置に接続されているサーバである管理サーバを更に有し、
前記管理サーバが、前記障害計算機に接続されていた第３の通信インタフェースを前記待機計算機に接続するための処理を含んだ処理である切り替え処理を行う、
計算機システム。
【請求項３】
請求項２記載の計算機システムであって、
前記一以上のスイッチデバイスが、どのアップストリームとどのダウンストリームポートとが対応しているかを表すルーティング情報を有し、前記ルーティング情報を基に、アップストリームからそのアップストリームに対応したダウンストリームポートにパケットを転送するルーティングを行い、
前記切り替え処理は、前記待機系計算機に接続されているアップストリームに対応するダウンストリームポートが前記障害計算機に接続されているアップストリームに対応するダウンストリームポートとなるよう前記一以上のスイッチデバイスに前記ルーティング情報を更新する処理を含む、
計算機システム。
【請求項４】
請求項３記載の計算機システムであって、
各アップストリームに、一以上のバスを介し、アップストリームポートに対応するダウンストリームポートを通じて、第３の通信インタフェースが接続されており、
前記一以上のスイッチデバイスが、バス管理情報を有し、前記バス管理情報が、アップストリームと第３の通信インタフェースとの間の一以上のバスに関するバス情報を有し、
前記管理サーバが、前記切り替え処理において、前記待機系計算機を起動させ、それにより、前記待機系計算機が、前記待機計算機の第２の通信インタフェースが接続されているアップストリームについてのバス情報に基づくデバイス検索を行い、
前記切り替え処理は、前記バス管理情報における、前記待機計算機の第２の通信インタフェースが接続されているアップストリームについてのバス情報を、前記障害計算機の第２の通信インタフェースが接続されているアップストリームについてのバス情報と同じバス情報に更新する処理を含み、その処理が、前記待機系計算機を起動させる前に行われる、
計算機システム。
【請求項５】
請求項４記載の計算機システムであって、
各第２の通信インタフェースは、計算機内での通信プロトコルに従って計算機内を流れるパケットをプロトコル変換を行うことなく中継する通信インタフェースである、
計算機システム。
【請求項６】
請求項５記載の計算機システムであって、
前記通信プロトコルは、PCI-Expressであり、
前記一以上のスイッチデバイスは、PCI-Expressに従うパケットを転送するスイッチデバイスであり、
前記一以上のPCI-Expressスイッチデバイスは、ポート毎に、仮想PCI- PCIブリッジを有し、
前記第２の通信インタフェースは、PCI-Expressに従うパケットを流すデバイスであり、
前記バス情報は、プライマリバス番号、セカンダリバス番号及びサボーディネイトバス番号で構成されており、
前期プライマリバス番号は、仮想PCI- PCIブリッジが接続されているバスの番号のうちの第２の通信インタフェース側のバスの番号であり、
前記セカンダリバス番号は、仮想PCI- PCIブリッジに接続されているバスの番号のうちの第３の通信インタフェース側のバスの番号であり、
前記サボーディネイトバス番号は、仮想PCI- PCIブリッジの第３の通信インタフェース側に存在するバスの番号のうち最も第３の通信インタフェースに近いバスの番号である、
計算機システム。
【請求項７】
請求項２記載の計算機システムであって、
各アップストリームに、一以上のバスを介しダウンストリームポートを通じて第３の通信インタフェースが接続されており、
前記一以上のスイッチデバイスが、バス管理情報を有し、前記バス管理情報が、アップストリームと第３の通信インタフェースとの間の一以上のバスに関するバス情報を有し、
前記管理サーバが、前記切り替え処理において、前記待機系計算機を起動させ、それにより、前記待機系計算機が、前記待機計算機の第２の通信インタフェースが接続されているアップストリームについてのバス情報に基づくデバイス検索を行い、
前記切り替え処理は、前記バス管理情報における、前記待機計算機の第２の通信インタフェースが接続されているアップストリームについてのバス情報を、前記障害計算機の第２の通信インタフェースが接続されているアップストリームについてのバス情報と同じバス情報に更新する処理を含み、その処理が、前記待機系計算機を起動させる前に行われる、
計算機システム。
【請求項８】
請求項１記載の計算機システムであって、
各第２の通信インタフェースは、計算機内での通信プロトコルに従って計算機内を流れる信号を流す装置である、
計算機システム。
【請求項９】
請求項８記載の計算機システムであって、
前記通信プロトコルは、PCI-Expressであり、
前記一以上のスイッチデバイスは、PCI-Expressに従うパケットを転送するスイッチデバイスであり、
前記第２の通信インタフェースは、PCI-Expressに従うパケットを流すデバイスであり、
前記一以上のPCI-Expressスイッチデバイスは、ポート毎に、仮想PCI- PCIブリッジを有する、
計算機システム。
【請求項１０】
計算機システムに含まれるサーバであって、
前記計算機システムが、
複数の第１の通信インタフェースを有する複数の入出力装置と、
複数の第２の通信インタフェースを有する複数の計算機と、
前記複数の入出力装置が有する複数の第１の通信インタフェースと前記複数の計算機が有する前記複数の第２の通信インタフェースとに接続される一以上のスイッチ装置と
を有し、
記複数の第１の通信インタフェースには、種類が異なる第１の通信インタフェースが含まれており、
前記一以上のスイッチ装置が、
前記複数の第１の通信インタフェースに接続される複数の第３の通信インタフェースと、
前記複数の第３の通信インタフェースに接続されている複数のポートである複数のアップストリームと前記複数の第２の通信インタフェースに接続されている複数のポートである複数のダウンストリームポートとを有する一以上のスイッチデバイスと
を有し、
前記一以上のスイッチデバイスが、アップストリームで、計算機の第２の通信インタフェースから出力されたパケットを受信し、そのパケットをダウンストリームポートから出力し、
各第３の通信インタフェースの種類は、接続されている第１の通信インタフェースの種類に対応した種類であり、
前記複数の計算機は、複数の現用系の計算機と一以上の待機系の計算機とで構成されており、
前記サーバが、
前記一以上のスイッチ装置に接続される通信インタフェースと、
前記通信インタフェースに接続されており、障害が生じた現用系計算機である障害計算機に接続されていた第３の通信インタフェースを前記待機計算機に接続するための処理である切り替え処理を行い、前記通信インタフェースを通じて前記待機計算機を前記障害計算機に代わって現用系とするプロセッサと
を有する、
サーバ。
【請求項１１】
請求項１０記載のサーバであって、
前記待機系計算機は、前記現用系計算機より少ない、
サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信インタフェースの種類が異なる複数の入出力装置に複数の計算機が通信可能に接続される計算機システムでの計算機の系の切り替えに関する。
【背景技術】
【０００２】
ストレージエリアネットワーク（SAN）に接続されているRAID（Redundant Array of Independent (or Inexpensive) Disks）装置が、オペレーティングシステムを含むソフトウェアイメージを記憶し、現用系計算機と待機系計算機、SANを介してそのソフトウェアイメージを共有することが可能である。特許文献１によれば、現用系計算機のFC（Fibre Channel）ポートに割り当てられた固有のID（World Wide Name）を待機系計算機のFCポートに設定することで、現用系計算機のソフトウェアイメージを待機系計算機でそのまま利用することが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−９４６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現用系計算機及び待機系計算機を有する計算機システム（以下、冗長計算機システム）において、現用系計算機及び待機系計算機には、現用系計算機及び待機系計算機が共有するソフトウェアイメージ（オペレーティングシステムを含む）を記憶するRAID装置（RAID構成を有するストレージ装置）の他に、そのRAID装置の通信インタフェースとは異なる種類の通信インタフェースを有する入出力装置が接続される場合がある。以下、通信インタフェースが異なる複数の入出力装置を有する冗長計算機システムを、便宜上、「マルチインタフェースシステム」と言う。
【０００５】
図９に、従来のマルチインタフェースシステムの一例を示す。
【０００６】
現用系計算機及び待機系計算機の各々に、プロトコルが異なる複数の入出力装置が接続されている。具体的には、例えば、以下の通りである。
【０００７】
現用系計算機ａ１００は、FCで通信するための通信インタフェース（以下、FCカード）１０４と、SAS（Serial Attached SCSI）で通信するための通信インタフェース（以下、SASカード）１０５とを有する。なぜなら、FCで通信する入出力装置（例えば、RAID装置１１８及び１１９）と、SASで通信する入出力装置（例えばRAID装置１２０及びテープ装置１２１）との両方と通信するためである。FCカード１０４が、FCスイッチ（FCでの通信を中継する装置）１１２及び１１３を経由して、RAID装置１１８及び１１９に接続されている。SASカード１０５が、SASスイッチ（SASでの通信を中継する装置）１１４及び１１５を経由して、RAID装置１２０及びテープ装置１２１に接続されている。
【０００８】
現用系計算機ｂ１０１は、FCカード１０６と、IPで通信するための通信インタフェース（以下、LAN（Local Area Network）カード）１０７とを有する。なぜなら、FCで通信する入出力装置（例えば、RAID装置１１８及び１１９）と、IP（Internet Protocol）で通信する入出力装置（例えば、計算機１２２及び１２３）との両方と通信するためである。FCカード１０６が、FCスイッチ１１２及び１１３を経由して、RAID装置１１８及び１１９に接続されている。LANカード１０７が、LANスイッチ（IPでの通信を中継しLANを構成する装置）１１６及び１１７を経由して、計算機１２２及び１２３に接続されている。
【０００９】
このように、マルチインタフェースシステムでは、現用系計算機が、接続する入出力装置の通信インタフェースに合わせた通信インタフェース（以下、I/O拡張カード）を有する必要がある。このため、複数の現用系計算機に接続される複数の入出力装置の通信インタフェースの種類が異なっている場合、複数の現用系計算機が有するI/O拡張カードの種類が異なる。
【００１０】
また、マルチインタフェースシステムでは、現用系計算機に代わって待機系計算機が現用系となる計算機切り替えが行われた後に待機系計算機が入出力装置を利用できるように、待機系計算機が、現用系計算機と同様のI/O拡張カードを有する必要がある。
【００１１】
具体的には、現用系計算機ａ１００と同様のI/O拡張カードを有する待機系計算機として、待機系計算機ａ１０２が用意されている。待機系計算機ａ１０２は、現用系計算機ａ１００と同様に、FCカード１０８とSASカード１０９とを有している。FCカード１０８は、現用系計算機ａ１００のFCカード１０４と同様に、FCスイッチ１１２及び１１３を経由してRAID装置１１８及び１１９に接続されている。SASカード１０９は、現用系計算機ａ１００のSASカード１０５と同様に、SASスイッチ１１４及び１１５を経由してRAID装置１２０及びテープ装置１２１に接続されている。
【００１２】
現用系計算機ｂ１０１と同様のI/O拡張カードを有する待機系計算機として、待機系計算機ｂ１０３が用意されている。待機系計算機ｂ１０３は、現用系計算機ｂ１０１と同様に、FCカード１１０とLANカード１１１とを有する。FCカード１１０は、現用系計算機ｂ１０１のFCカード１０４と同様に、FCスイッチ１１２及び１１３を経由してRAID装置１１８及び１１９に接続されている。LANカード１１１は、現用系計算機ｂ１０１のLANカード１０７と同様に、LANスイッチ１１６及び１１７を経由して計算機１２２及び１２３に接続されている。
【００１３】
このシステムによれば、現用計算機ａ１００に着目とすると、図９に太線で示すように、現用計算機ａ１００がスイッチ１１２、１１３、１１４、１１５を介して入出力装置１１８、１１９、１２０及び１２１にアクセス可能となっている。しかし、図１０に示すように、現用系計算機ａ１００に障害が発生した場合は、現用計算機ａ１００に代わって待機系計算機ａ１０２が現用系となるので、図１０に太線で示すように、待機系計算機ａ１０２がスイッチ１１２、１１３、１１４、１１５を介して入出力装置１１８、１１９、１２０及び１２１にアクセス可能となる。
【００１４】
このように、マルチインターフェースシステムでは、現用系計算機と同様のI/O拡張カードを有する待機系計算機を用意する必要がある。このため、複数の現用系計算機のそれぞれのI/O拡張カードの種類が異なると、現用系計算機毎に、現用計算機のI/O拡張カードの種類と同じ種類のI/O拡張カードを有した待機系計算機を用意しなければならない。
【００１５】
本発明の目的は、通信インタフェースの種類が異なる複数の入出力装置に複数の現用系計算機が通信可能に接続される計算機システムに必要とされる待機系計算機の数を抑えることにある。
【課題を解決するための手段】
【００１６】
複数の計算機と複数の入出力装置との間に、一以上のスイッチ装置が介在する。一以上スイッチ装置が、入出力装置の第１の通信インタフェースの種類に合わせた第３の通信インタフェースと、複数の第３の通信インタフェースに接続される一以上のスイッチデバイスとを有する。各計算機は、第２の通信インタフェースを通じてスイッチデバイスに接続される。このため、複数の計算機が有する複数の第２の通信インタフェースは同じ種類の通信インタフェースで良く、複数の計算機が、複数の第２の通信インタフェースを通じて各種の第３の通信インタフェースを共有することができる。
【００１７】
複数の入出力装置には、例えば、現用系計算機が実行するオペレーティングシステムを記憶するストレージ装置（RAID構成を有していてもいなくても良い）が含まれている。待機系計算機は、ブートするために、そのストレージ装置からそのオペレーティングシステムを読み出し実行する。それにより、現用系計算機に代わって待機系計算機が現用系になることができる。
【発明の効果】
【００１８】
本発明により、通信インタフェースの種類が異なる複数の入出力装置に複数の現用系計算機が通信可能に接続される計算機システムに必要とされる待機系計算機の数を抑えることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る計算機システムを示す。
【図２】I/Oドロワ１２の構成を示す。
【図３】入出力構成情報テーブル２の構成を示す。
【図４】ルーティングテーブル７５の構成を示す。
【図５】バス番号管理テーブルの構成を示す。
【図６】バス番号テーブルの構成を示す。
【図７】系切り替えのフローチャートである。
【図８】図７のステップ６０の処理のフローの詳細を示す。
【図９】従来のマルチインタフェースシステム（通信インタフェースの種類が異なる複数の入出力装置に複数の現用系計算機が通信可能に接続された計算機システム）の一例を示す。
【図１０】図９のマルチインタフェースシステムでの計算機の系切り替えを示す。
【図１１】入出力構成情報テーブル２の更新前と更新後とを示す。
【図１２】更新前のルーティングテーブルが表すポート間接続を示す。
【図１３】更新後のルーティングテーブルが表すポート間接続を示す。
【図１４】バス番号管理テーブル４０の更新前と更新後とを示す。
【図１５】バス番号テーブル７６の更新前と更新後とを示す。
【発明を実施するための形態】
【００２０】
Peripheral
Component Interconnect（PCI）規格を改良したPCIe（以下、「PCIe」と表記する）が近年普及している。PCIeでは、バスに接続されているデバイスが、バス番号、デバイス番号、ファンクション番号と呼ばれる三種類の番号の組み合わせで識別される。これらの番号は、一般に、バスにつながるデバイスの検索時に割り当てられる。計算機の系の切替えを契機に待機計算機からデバイスの検索が行われると、待機系計算機で動作するソフトウェアが、現用系計算機が認識していたデバイスと同じデバイスを認識できない。
【００２１】
また、通信インタフェースの種類が異なる複数の入出力装置に複数の現用系計算機が通信可能に接続される計算機システムでは、複数の現用系計算機のそれぞれのI/O拡張カード（通信インタフェース）の種類が異なると、現用系計算機毎に、現用計算機のI/O拡張カードの種類と同じ種類のI/O拡張カードを有した待機系計算機を用意しなければならない。
【００２２】
そこで、本発明の一実施形態に係る計算機システムは、以下に説明する構成及び機能を有する。以下、図面を参照して、本実施形態に係る計算機システムを説明する。
【００２３】
図１は、本発明の一実施形態に係る計算機システムを示す。なお、以下の説明では、「通信インタフェース」というデバイスを「カード」と表記する。
【００２４】
計算機システムは、複数の入出力装置（例えば、計算機２２、RAID装置２４、テープ装置３０）と、複数の計算機（例えば、現用計算機Ａ３、現用計算機Ｂ４、待機系計算機Ｃ５）と、一以上のI/Oドロワ（例えば、二つのI/Oドロワ１２、１３）と、管理サーバ１とを有する。
【００２５】
計算機２２、RAID装置２４及びテープ装置３０の各々のカードが異なっている。具体的には、計算機２２は、LANカード２３を有し、RAID装置（RAID構成を有するストレージ装置）２４は、FCカード１１２を有し、テープ装置３０は、SASカード１１１を有する。このように、複数の入出力装置のカードの種類が異なっている。
【００２６】
各計算機３、４、５は、二つのスロット（以下、便宜上「PCIeスロット」と言う）（６、７）、（８、９）、（１０、１１）を有する。各PCIeスロット６、７、８、９、１０、１１に、PCIeの信号を通す機能をもつデバイス（以下、PCIe信号中継カード）４４、４５、４６、４７、４８、４９が搭載される。なお、PCIeスロット及びPCIe信号中継カード（以下、中継カード）の数は、２より多くても良い。
【００２７】
I/Oドロワ１２（及び１３）は、PCIeスイッチＦ１４（及びPCIeスイッチＧ１５）と、スロット（以下、PCIeスロット）１６、１７、及び１８（１９、２０及び２１）と、スイッチコントローラ３８（及び３９）とを有する装置である。
【００２８】
PCIeスイッチＦ１４（及びPCIeスイッチＧ１５）は、PCIeに従うパケットを転送するデバイスである。PCIeスイッチＦ１４（及びPCIeスイッチＧ１５）は、複数のポートを有する。複数のポートには、中継カード４４、４５及び４６（４７、４８及び４９）と、PCIeスロット１６、１７、及び１８（１９、２０及び２１）とが接続される。以下、中継カードが接続されているポートのことを「アップストリームポート」と言い、PCIeスロットが接続されているポートのことを「ダウンストリームポート」と言う。PCIeスイッチＦ１４（及びPCIeスイッチＧ１５）は、スイッチコントローラ３８（及び３９）によって制御される。
【００２９】
PCIeスロット１６、１７、及び１８（１９、２０及び２１）には、接続される入出力装置のカードに合わせたI/O拡張カードが搭載される。
【００３０】
具体的には、PCIeスロット１８（１９）には、LANカード３４（３５）が搭載される。LANカード３４は、固有のID（MACアドレス）を有し、LANカード３５は、LANカード３４と異なるMACアドレスを有する。LANカード３４と３５は、LANスイッチ３１を介して、計算機２２のLANカード２３に接続されている。
【００３１】
PCIeスロット２０（２１）には、SASカード３６（３７）が搭載される。SASカード３６は、固有のID（World
Wide Name＝WWN）を有し、SASカード３７は、SASカード３６と異なるWWNを有する。SASカード３６と３７は、SASスイッチ２９を介して、テープ装置３０のSASカード１１１に接続される。
【００３２】
PCIeスロット１６（１７）には、FCカード３２（３３）が搭載される。FCカード３２は、固有のID（World Wide Name＝WWN）を有し、FCカード３３は、FCカード３２と異なるWWNを有する。FCカード３２と３３は、FCスイッチ２７を介して、RAID装置２４のFCカード１１２に接続される。なお、RAID装置２４は、現用系計算機Ａ３（現用系計算機Ｂ４）のブート用オペレーティングシステムであるOS-A２５（OS-B２６）と、LUNマッピングテーブル２８とを記憶している。OS-A２５は、LUN（Logical Unit Number）0のLU（Logical Unit）に格納されており、OS-B２６は、LUN1のLUに格納されている。LUNマッピングテーブル２８は、現用系計算機Ａ３（Ｂ４）に割り当てられるFCカード１６の固有のID（WWN）とLUNとの論理的な接続（対応関係）を表す。この論理的な接続により、現用計算機がアクセス可能なLUが制限されている（例えば、現用系計算機Ａ３からOS-B２６へのアクセスは禁止されている）。
【００３３】
計算機３、４及び５は、それぞれ、プロセッサ及びメモリ等のハードウェア資源（図示せず）を有し、プロセッサで、ソフトウェア４１、４２及び４３が実行される。ソフトウェア４１（４２及び４３）は、プロセッサで実行されることにより、計算機３（４及び５）の初期設定、計算機３（４及び５）の初期診断、及び、計算機３（４及び５）の起動用デバイスの検出と管理などを行う。ソフトウェア４１（４２及び４３）は、起動用デバイスの検出の一環で、PCIeのバスに接続するデバイスの検索時に、以下の処理、
＊PCI
to PCIブリッジ（以下、PCI-PCIブリッジ）がバス番号指定機能を有しているか否かを判定すること、
＊指定されたバス番号の使用有無を示すフラグを参照することで、指定されたバス番号の使用有無を判断し、使用しない場合は、通常のデバイス検索処理でバス番号を割り当て、一方、使用する場合は、指定されたバス番号を割り当てること、
を行う。
【００３４】
計算機３（４及び５も同様）において、PCIeに従うパケットが流れる。例えば、計算機３において、プロセッサから入出力回路（例えばＬＳＩ（Large Scale
Integration））が入力を受け、その入力に応答して、入出力回路から、PCIeに従うパケットが出力される。パケットには、バス番号、デバイス番号及びファンクション番号が指定されている。これらの番号が、I/O拡張カード（I/Oドロワ内のFCカード、SASカード又はLANカード）を表す。パケットは、そのI/O拡張カードに接続されている中継カードを通過し、PCIeスイッチのアップストリームポートに着く。PCIeスイッチでは、ルーティングにより、そのパケットを受けたアップストリームポートに接続されているダウンストリームポートが特定され、そのダウンストリームポートからパケットが出力される。そのパケットは、そのダウンストリームポートに接続されているI/O拡張カードに着く。そして、そのI/O拡張カードにより、PCIeに従うパケットがそのI/O拡張カードの種類に従うパケットに変換され、変換後のパケットが、そのI/O拡張カードから入出力装置に送信される。
【００３５】
すなわち、本実施形態に係る計算機システムによれば、計算機内での通信プロトコルであるPCIeで通信可能な範囲が、計算機内に閉じているのではなく、計算機の外（具体的には、I/Oドロワ内のPCIeスロット）まで広げられており、複数の計算機が、計算機の外にあるI/O拡張カード（入出力装置のカードの種類に対応した種類のI/O拡張カード）を共有できるようになっている。従って、複数の計算機の各々には、割り当てられる入出力装置のカードの種類に合わせたI/O拡張カードを搭載する必要が無く、計算機内での通信プロトコルであるPCIeに従うパケットを単純に通過させるカードが搭載されれば良い。つまり、全ての計算機が有するカードの種類は同じである。これにより、図１に示すように、待機系計算機を現用系計算機よりも少なくすることができる。別の言い方をすれば、現用系の計算機の数に関わらず、待機系計算機の数を、少なくとも一つという、最小限の数に抑えることができる。
【００３６】
I/Oドロワ１２（及び１３）のスイッチコントローラ３９（及び３８）と、計算機３、４及び５に、管理サーバ１が接続されている。管理サーバ１は、カード１２１と、記憶デバイス（例えばメモリ）１２２と、カード１２１及び記憶デバイス１２２に接続されているプロセッサ１２３とを有する。カード１２１に、スイッチコントローラ３９（及び３８）、計算機３、４及び５が接続されている。記憶デバイス１２２が、各PCIeスイッチでのアップストリームポートとダウンストリームポートとの対応関係を表す入出力構成情報テーブル２と、各PCIeスイッチでのバス構成を表すバス番号管理テーブル４０とを記憶する。プロセッサ１２３は、以下の処理、
＊計算機３、４及び５に関する情報である装置情報の管理、
＊計算機３、４及び５の電源操作（例えば、電源のターンオン及びターンオフ）、
＊計算機３、４及び５に障害が発生したか否かの監視（障害監視）、
＊PCIeスイッチＦ１４及びPCIeスイッチＧ１５が有する後述のルーティングテーブル及びバス番号テーブルの管理、
＊計算機の系の切り替え処理、
を行う。切り替え処理は、例えば、以下の処理、
（処理Ａ）上記障害監視により障害が発生したと検出された現用系計算機（以下、障害計算機）に割り当てられていたI/O拡張カード（I/Oドロワ１２又は１３内のI/O拡張カード）を待機系計算機Ｃ５に割り当てる処理、
（処理Ｂ）上記（処理Ａ）の後に、待機系計算機Ｃ５の電源をターンオンすることにより（或いは、待機系計算機Ｃ５にブート命令を発行することにより）、待機系計算機Ｃ５にデバイス検索及びブートをさせる処理、
を含む。上記（処理Ａ）では、管理サーバ１内の入出力構成情報テーブル２の更新とPCIeスイッチ内のルーティングテーブルの更新とが行われ、それにより、障害計算機に接続されているアップストリームに対応したダウンストリームポートが、待機系計算機Ｃ５に接続されているアップストリームに対応付けられる。また、上記（処理Ａ）では、管理サーバ１内のバス番号管理テーブル４０の更新とPCIeスイッチ内のバス番号テーブルの更新とが行われ、それにより、デバイス検索では、待機計算機Ｃ５に、障害計算機に割り当てられていたデバイス（I/O拡張カード）が認識される。待機系計算機Ｃ５は、障害計算機のOSをRAID装置２４から読み込むことで起動し、障害計算機の処理を引き継ぐことができる。
【００３７】
すなわち、管理サーバ１は、例えば現用系計算機Ａ１に代えて待機系計算機Ｃ５を現用系に切り替える際に、現用系計算機Ａ１でソフトウェア４１が参照していたバス番号の構成を、待機系計算機Ｃ５に接続されているアップストリームポートに切り替え、その後に、待機系計算機Ｃ５を起動することで、現用系計算機Ａ１が認識していたPCIバスツリー構成と同じ構成で待機系計算機Ｃ５を起動させることができる。
【００３８】
図２は、I/Oドロワ１２の構成を示す。なお、図２では、I/Oドロワ１２を例に採っているが、I/Oドロワ１３の構成は、I/Oドロワ１２の構成と実質的に同じである。
【００３９】
ポート１、２、３が、アップストリームポートであり、ポート４、５、６が、ダウンストリームポートである。ポート４は、PCIeスロット２０に接続され、ポート５は、PCIeスロット１８に接続され、ポート６は、PCIeスロット１６に接続される。PCIeスイッチＦ１４は、ルーティングテーブル７５とバス番号テーブル７６とを有する。
【００４０】
ルーティングテーブル７５は、スイッチコントローラ３９から設定可能なポート１、２、３それぞれの仮想のPCI-PCIブリッジ７７、７８、７９と、ポート４、５、６それぞれの仮想のPCI-PCIブリッジ８０、８１、８２との接続関係を表す。
【００４１】
バス番号テーブル７６は、スイッチコントローラ３９から設定可能なポート毎にサボーディネイトバス番号とセカンダリバス番号とプライマリバス番号とを有する。サボーディネイトバス番号とセカンダリバス番号とプライマリバス番号は、仮想のPCI-PCIブリッジ７７、７８、７９、８０、８１、８２に付与される。
【００４２】
PCIeスイッチＦ１２は、以下の機能及びデバイス、
＊ポート毎に仮想のPCI-PCIブリッジがあるように振舞う機能、
＊アップストリームポートの仮想のPCI-PCIブリッジとダウンストリームポートの仮想のPCI-PCIブリッジとを接続して、アップストリームからダウンストリームポートへのルーティングを行う機能、
＊仮想のPCI-PCIブリッジ毎に、サボーディネイトバス番号とセカンダリバス番号とプライマリバス番号を設定する機能、
＊ポート毎に設定されたサボーディネイトバス番号とセカンダリバス番号とプライマリバス番号を使用するか、それとも、計算機３、４、５で動作するソフトウェア４１、４２、４３がデバイスを検索するときに割り当てたそれらのバス番号を使用するかを示す記憶資源（例えばレジスタ）、
を有する（ソフトウェア４１、４２、４３は、当該記憶資源を参照して、使用するバス番号を切り替える機能を有する）。
【００４３】
図３は、入出力構成情報テーブル２の構成を示す。
【００４４】
入出力構成情報テーブル２は、アップストリームポート毎に、計算機名、状態、PCIeスイッチ名、アップストリームポート番号及びダウンストリームポート番号を有する。以下、これらの要素を、一つのアップストリームポート（図３の説明において「対象アップストリームポート」と言う）を例に採り説明する。
【００４５】
「計算機名」は、対象アップストリームポートに接続されている計算機の名称である。計算機名に代えて又は加えて他種の識別情報で計算機が識別されても良い。
【００４６】
「状態」は、対象アップストリームポートに接続されている計算機の状態、具体的には、稼働中か停止中かである。すなわち、本実施形態において、現用系の計算機とは、稼働中の計算機であり、待機中の計算機とは、停止中の計算機である。
【００４７】
「PCIeスイッチ名」は、対象アップストリームポートを有するPCIeスイッチの名称である。PCIeスイッチ名に代えて又は加えて他種の識別情報でPCIeスイッチが識別されても良い。
【００４８】
「アップストリームポート番号」は、対象アップストリームポートのポート番号である。番号に代えて又は加えて他種の識別情報でポートが識別されても良い。
【００４９】
「ダウンストリームポート番号」は、対象アップストリームポートに接続されているダウンストリームポートのポート番号である。
【００５０】
入出力構成テーブル２の設定内容は、中継カード４４、４５、４６、４７、４８、４９と、PCIeスイッチＦ１４及びPCIeスイッチＧ１５の接続と、各計算機に対する入出力装置の割り当てとに従って決まる。
【００５１】
図４は、PCIeスイッチＦ１４のルーティングテーブル７５の構成を示す。なお、PCIeスイッチＧ１５のルーティングテーブルの構成も、図４のテーブル７５の構成と実質的に同じである。
【００５２】
ルーティングテーブル７５は、どのアップストリームポートがどのダウンストリームポートに接続されているかを表す。具体的には、ルーティングテーブル７５は、アップストリームポートのポート番号とダウンストリームポートのポート番号との対応関係を表す。
【００５３】
このテーブル７５の設定内容は、前述した入出力構成情報テーブル２の一部分に相当する。具体的には、管理サーバ１のプロセッサ１２３が、入出力構成情報テーブル２から、PCIeスイッチＦ１４に対応した「アップストリームポート番号」及び「ダウンストリームポート番号」を抽出する。そして、プロセッサ１２３が、抽出した「アップストリームポート番号」及び「ダウンストリームポート番号」を、スイッチコントローラ３９を経由して、PCIeスイッチＦ１４のテーブル７５に設定する。
【００５４】
図５は、バス番号管理テーブル４０の構成を示す。
【００５５】
バス番号管理テーブル４０は、各PCIeスイッチのポート毎に、PCIeスイッチ名、ポート番号、サボーディネイトバス番号、セカンダリバス番号及びプライマリバス番号を有する。以下、これらの要素を、一つのポート（図５の説明において「対象ポート」と言う）を例に採り説明する。
【００５６】
「PCIeスイッチ名」は、対象ポートを有するPCIeスイッチの名称である。
【００５７】
「ポート番号」は、対象ポートのポート番号である。
【００５８】
「サボーディネイトバス番号」は、対象ポートの仮想のPCI-PCIブリッジの下位のバスに接続しているバスのうち最も大きいバス（つまり最も下位のバス）のバス番号である。番号に代えて又は加えて他種の識別情報でバスが識別されても良い。
【００５９】
「セカンダリバス番号」は、対象ポートの仮想のPCI-PCIブリッジに接続される下位のバスのバス番号である。
【００６０】
「プライマリバス番号」は、対象ポートの仮想のPCI-PCIブリッジに接続される上位のバスのバス番号である。
【００６１】
図６は、PCIeスイッチＦ１４のバス番号テーブル７６の構成を示す。なお、PCIeスイッチＧ１５のバス番号テーブルの構成も、図６のテーブル７６の構成と実質的に同じである。
【００６２】
バス番号テーブル７６は、PCIeスイッチ１４Ｆのポート毎に、ポート番号、サボーディネイトバス番号、セカンダリバス番号、プライマリバス番号及びバス番号の使用有無を有する。以下、これらの要素を、一つのポート（図６の説明において「対象ポート」と言う）を例に採り説明する。
【００６３】
「ポート番号」、「サボーディネイトバス番号」、「セカンダリバス番号」及び「プライマリバス番号」については、図５を参照して説明した通りである。
【００６４】
「バス番号の使用有無」は、対象ポートについて設定された「サボーディネイトバス番号」、「セカンダリバス番号」及び「プライマリバス番号」を使用するか否かである。使用しない場合には、計算機３、４、５で動作するソフトウェア４１、４２、４３がデバイスを検索するときに割り当てたバス番号（サボーディネイトバス番号、セカンダリバス番号、プライマリバス番号）が使用される。
【００６５】
このテーブル７６の設定内容は、前述したバス番号管理テーブル４０の一部分と「バス番号の使用有無」との組合せに相当する。具体的には、管理サーバ１のプロセッサ１２３が、バス番号管理テーブル４０から、PCIeスイッチＦ１４に対応した「ポート番号」、「サボーディネイトバス番号」、「セカンダリバス番号」及び「プライマリバス番号」を抽出する。そして、プロセッサ１２３が、抽出した「ポート番号」、「サボーディネイトバス番号」、「セカンダリバス番号」及び「プライマリバス番号」を、スイッチコントローラ３９を経由して、PCIeスイッチＦ１４のテーブル７６に設定する。また、プロセッサ１２３は、テーブル７６に、PCIeスイッチＦ１４のポート毎に「バス番号の使用有無」を、スイッチコントローラ３９を経由して設定する。
【００６６】
以下、本実施形態において、現用系計算機Ａ３が障害により停止した場合、現用系計算機Ａ３に障害が生じたことが、管理サーバ１によって検出される。以下、管理サーバ１によって現用計算機Ａ３の障害が検出されたときに行われる処理の概要を説明する。なお、以下の説明において、PCIeスイッチｘ（ｘはＦ又はＧ）のポート番号がＮ（Ｎは整数）のポートを、「ポートｘＮ」と表す。
【００６７】
管理サーバ１が、図３に示した入出力構成情報テーブル２を、現用系計算機Ａ３に接続されているアップストリームポートＦ１（Ｇ１）に対応したダウンストリームポートＦ６（Ｇ５）が同一のPCIeスイッチ内の待機系計算機Ｃ５に接続されているアップストリームポートＦ３（Ｇ３）と接続するよう変更する。具体的には、管理サーバ１は、図１１に示すように入出力構成情報テーブル２を更新する。矢印の左側が、更新前の値であり、矢印の右側が、更新後の値である（なお、これは、後の図１４及び図１５でも同様である）。
【００６８】
管理サーバ１が、更新後の入出力構成情報テーブル２の内容を、PCIeスイッチＦ１４及びPCIeスイッチＧ１５の両方のルーティングテーブルに反映する（テーブル２のうちの更新後の内容をルーティングテーブルにコピーする）。図１２が、PCIeスイッチＦ１４及びPCIeスイッチＧ１５の両方の更新前のルーティングテーブルが表すポート間接続（アップストリームポートに対するダウンストリームポートの接続）を太線で示し、図１３が、両方の更新後のルーティングテーブルが表すポート間接続を太線で示す。
【００６９】
現用系計算機Ａ３には、中継カード４４、４５が搭載され、待機系計算機Ｃ５には、中継カード４８、４９が搭載されている。PCIeの信号（パケット）が、各計算機３、５と各計算機３、５の外にあるPCIeスイッチＦ１４及びPCIeスイッチＧ１５との間で中継される。このため、PCIeスイッチＦ１４及びPCIeスイッチＧ１５のルーティングテーブルを変更すれば、I/Oドロワ内のI/O拡張カードのアクセス元の計算機を切り替えることができる。つまり、現用系計算機Ａ３が使用していたI/O拡張カードを待機系計算機Ｃ５が引き継いで使用することができる。
【００７０】
また、管理サーバ１は、図５のバス番号管理テーブル４０を、現用系計算機Ａ３が接続していたアップストリームポートに対応しているサボーディネイトバス番号、セカンダリバス番号及びプライマリバス番号を、待機系計算機Ｃ５が接続しているアップストリームポートに対応したサボーディネイトバス番号、セカンダリバス番号及びプライマリバス番号にコピーする。具体的には、管理サーバ１は、図１４に示すようにバス番号管理テーブル４０を更新する。
【００７１】
管理サーバ１が、更新後のバス番号管理テーブル４０の内容を、PCIeスイッチＦ１４及びPCIeスイッチＧ１５の両方のバス番号テーブルに反映する（テーブル４０における更新後の内容をバス番号テーブルにコピーする）。これにより、PCIeスイッチＦ１４のバス番号テーブル７６は、例えば図１５に示すように更新される。
【００７２】
入出力管理情報テーブル２の更新、ルーティングテーブルの更新、バス番号管理テーブル４０の更新、及び、バス番号テーブルの更新が行われた後に、管理サーバ１が、待機系計算機Ｃ５を起動する。それにより、現用系計算機Ａ３が使用していた入出力装置を各入出力装置の設定を変更することなく待機系計算機Ｃ５でそのまま使用することが可能となる。
【００７３】
図７は、系切り替えのフローチャートである。
【００７４】
現用系計算機に障害が発生する（ステップ５０）。
【００７５】
管理サーバ１は、現用系計算機の障害発生を検知すると（ステップ５１）、その現用系計算機（障害計算機）の電源をターンオフする（ステップ５２）。
【００７６】
その後、管理サーバ１は、障害計算機の接続している各PCIeスイッチに待機系計算機が接続しているか否かを、入出力構成情報テーブル２を参照して調査する（ステップ５３）。
【００７７】
調査の結果、障害計算機が接続されているPCIeスイッチとして待機系計算機が接続されていないPCIeスイッチが一つでもあれば（ステップ５４：ＮＯ）、管理サーバ１は、系切り替えを中止する（ステップ５５）。
【００７８】
一方、調査の結果、障害計算機が接続されている全てのPCIeスイッチに待機系計算機が接続されていれば（ステップ５４：ＹＥＳ）、管理サーバ１は、入出力構成管理情報テーブル２を更新する。具体的には、管理サーバ１は、障害計算機が接続されている全てのPCIeスイッチについて、障害計算機が接続されているアップストリームに接続していたダウンストリームポートを待機系計算機が接続されているアップストリームに接続する更新を行う（ステップ５６）。
【００７９】
その後、管理サーバ１は、待機系計算機が接続されている全てのPCIeスイッチのルーティングテーブルに、更新後の入出力構成情報テーブル２の設定内容（ルーティング設定）を、スイッチコントローラ経由で反映する（ステップ５７）。
【００８０】
少なくとも一つのPCIeスイッチについて、ルーティング設定を反映できなければ（ステップ５８：ＮＯ）、管理サーバ１は、系切り替えを中止する（ステップ５９）。
【００８１】
待機系計算機が接続されている全てのPCIeスイッチのルーティングテーブルにルーティング設定を反映できたら（ステップ５８：ＹＥＳ）、管理サーバ１は、バス番号管理テーブル４０についても設定を更新し、更新後のテーブル４０の設定内容（バス番号設定）を、待機系計算機が接続されている全てのPCIeスイッチのバス番号テーブルに反映する（ステップ６０）。
【００８２】
少なくとも一つのPCIeスイッチについて、バス番号設定を反映できなければ（ステップ６１：ＮＯ）、管理サーバ１は、系切り替えを中止する（ステップ６２）。
【００８３】
待機系計算機が接続されている全てのPCIeスイッチのバス番号テーブルにバス番号設定を反映できたら（ステップ６１：ＹＥＳ）、管理サーバ１は、待機系計算機の電源をターンオンする（ステップ６３）。これにより、待機系計算機において実行されるソフトウェアが、デバイス検索を行い、その際に、更新後のバス番号設定を使用する。このため、待機系計算機が、障害計算機が使用していたI/O拡張カードを認識し、RAID装置２４に格納されているオペレーティングシステム（障害計算機で実行されたオペレーティングシステム）を起動することができる。
【００８４】
図８は、図７のステップ６０の処理のフローの詳細を示す。
【００８５】
管理サーバ１は、障害計算機が接続されている全てのPCIeスイッチについて、障害計算機が接続されているアップストリームポートのポート番号と、待機系計算機が接続されているアップストリームポートのポート番号とを調べる（ステップ９０）。
【００８６】
次に、管理サーバ１は、バス番号管理テーブル４０を更新する。具体的には、管理サーバ１は、障害計算機が接続されている全てのPCIeスイッチについて、障害計算機が接続されているアップストリームポートのポート番号に対応しているサボーディネイトバス番号、セカンダリバス番号及びプライマリバス番号を、待機系計算機が接続されているアップストリームポートのポート番号に対応するサボーディネイトバス番号、セカンダリバス番号及びプライマリバス番号にコピーする（ステップ９１）。
【００８７】
管理サーバ１は、更新後のバス番号管理テーブル４０の設定内容（バス番号設定）を、障害計算機が接続されている全てのPCIeスイッチのバス番号テーブルに反映する（ステップ９２）。その際、管理サーバ１は、バス番号テーブルにおける、待機系計算機が接続されているアップストリームポートのポート番号に対応する「バス番号の使用有無」を、「使用する」に設定する（ステップ９３）。
【００８８】
以上、本発明の好適な実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８９】
例えば、ＰＣＩｅスイッチに代えて他種のスイッチが採用されても良い。他種のスイッチが採用される場合、必要に応じて種々のカスタマイズが行われてよい。例えば、他種のスイッチとして、コンバージド・エンハンスド・イーサネット(「イーサネット」は登録商標)の規格に従うスイッチを採用することができる。この場合、計算機のソフトウェア、もしくはI/O拡張カードが、計算機内で流れるFCプロトコルなどに従うデータを含んだイーサネットフレームを作成する機能を有する必要があり、また、スイッチが、イーサネットフレームからFCプロトコルなどに従うデータを取り出しその取り出したデータをI/O拡張カード、あるいは直接入出力装置に出力する機能を有する必要がある。
【００９０】
また、例えば、入出力構成情報テーブ２、バス番号管理テーブル４０、ルーティングテーブル７５及びバス番号テーブル７６のうちの少なくとも一つのテーブルが有する情報は、テーブル以外のデータ構造で表現されても良い。
【符号の説明】
【００９１】
１…管理サーバ  ３，４…現用系計算機  ５…待機系計算機  １２，１３…Ｉ／Ｏドロワ
【図１】
2011107858.tif 000003
【図２】
2011107858.tif 000004
【図３】
2011107858.tif 000005
【図４】
2011107858.tif 000006
【図５】
2011107858.tif 000007
【図６】
2011107858.tif 000008
【図７】
2011107858.tif 000009
【図８】
2011107858.tif 000010
【図９】
2011107858.tif 000011
【図１０】
2011107858.tif 000012
【図１１】
2011107858.tif 000013
【図１２】
2011107858.tif 000014
【図１３】
2011107858.tif 000015
【図１４】
2011107858.tif 000016
【図１５】
2011107858.tif 000017