説明

切替制御装置、切替制御方法、情報処理装置および切替制御プログラム

【課題】ホストコンピュータと入出力装置とを接続するスイッチの交換に際して、ホストコンピュータの電源停止を抑制することを課題とする。
【解決手段】切替制御装置は、入出力デバイスが接続される運用系拡張I/OボックスのPCIeスイッチに対してサーバから実行されたアクセスを監視する。切替制御装置は、監視されるアクセスから、サーバが運用系のPCIeスイッチに設定した、サーバと入出力デバイスとを接続する情報を示す設定情報を抽出して記憶部に記憶させる。切替制御装置は、入出力デバイスが接続される待機系拡張I/OボックスのPCIeスイッチに、記憶部に記憶される設定情報を設定する。切替制御装置は、運用系のPCIeスイッチが故障した場合に、サーバのアクセス先を運用系のPCIeスイッチから待機系のPCIeスイッチに切り替える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、切替制御装置、切替制御方法、情報処理装置および切替制御プログラムに関する。
【背景技術】
【0002】
コンピュータの高性能化等に伴って入出力の高性能化に対する需要も増大し、PCI(Peripheral Component Interconnect) Expressなどの高速な入出力インタフェースが利用されている。
【0003】
一般にPCI Expressは、コンピュータ内部でCPU(Central Processing Unit)と周辺機器とを接続するインタフェースの規格であるが、近年では、コンピュータの外部まで延長する方式も利用されている。PCI Expressは、Point-to-Pointで入出力装置と接続するので、PCIバスのように単一バスを延長して複数の入出力装置を接続することができない。このため、コンピュータ本体から延長された単一のPCI ExpressリンクにPCI Expressスイッチを接続し、このPCI Expressスイッチに複数の入出力装置を接続することが行われている。
【0004】
PCI Expressは、もともとコンピュータ内部で使用されるインタフェースの規格であることから、PCI Expressで接続される機器は同一の電源を使用することが多い。したがって、コンピュータの外部に設定したPCI Expressスイッチや入出力装置を交換する場合には、コンピュータ自体の電源を停止する場合が多くなる。電源再投入というのは、システムやサービスに対する影響は大きいので、現状では電源再投入を伴う拡張I/Oボックスの交換は難しい。
【0005】
このため、複数のホストコンピュータと入出力装置を設置するPCI Expressスロットとの間を接続するスイッチを冗長化し、スイッチの故障時に、システムやサービスが停止することを抑制する技術が知られている。また、電源を投入したままで入出力装置を抜き差しすることができるHotPlug(ホットプラグ)が知られている。HotPlugは、HotRemoveとHotAddという処理を含む。HotRemoveは、対象の入出力装置を使用不可の状態にして、対象の入出力装置が接続されるPCI Expressスロットの電源をオフにする。HotAddは、新たな入出力装置がPCI Expressスロットに挿入された場合に、対象スロットの電源をオンにして入出力装置の初期化を実行する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−280237号公報
【特許文献2】特開2008−46722号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、PCI Expressスイッチを交換する際にHotPlug等を使用することは、メモリ空間の関係で適用しづらいこともあり、ホストコンピュータの電源停止を抑制するのは難しいという問題がある。なお、この課題は、PCI Expressスイッチに限ったものではなく、ホストコンピュータと入出力装置とを接続する他のスイッチについても同様の課題がある。
【0008】
例えば、PCI ExpressスイッチにHotPlugを適用することを考える。ホストコンピュータは、HotPlugのHotAddによって、入出力装置にアクセスしてコンフィグレーションレジスタに格納される情報を読み出し、入出力装置が使用するI/O領域を抽出する。そして、ホストコンピュータは、HotAddによって、ホストコンピュータのメモリ空間に、抽出した入出力装置のI/O領域を確保する。また、ホストコンピュータは、HotAddによって、メモリ空間上で確保されたI/O領域をコンフィグレーションレジスタに書き込む。このようにして、ホストコンピュータは、確保したI/O領域経由で入出力装置にアクセスする。
【0009】
この手法をPCI Expressスイッチに適用した場合、ホストコンピュータは、PCI Expressスイッチに接続される入出力装置各々のI/O領域を抽出して、抽出したI/O領域の合計以上の連続した領域を自装置のメモリ空間に確保することとなる。したがって、PCI Expressスイッチが必要とするI/O空間は広大なものとなり、しかも連続した領域を割り当てなくてはならない。そのため、HotAdd時に動的にPCI ExpressスイッチのためのI/O空間を確保するのは難しい。このため、PCI ExpressスイッチをHotPlugで制御することは現実的ではない。
【0010】
1つの側面として、ホストコンピュータと入出力装置とを接続するスイッチの交換に際して、ホストコンピュータの電源停止を抑制することを目的とする。
【課題を解決するための手段】
【0011】
第1の案では、切替制御装置は、入出力装置が接続される第1のスイッチに対してホストコンピュータが実行したアクセスを監視する監視部を有する。切替制御装置は、前記監視部によって監視されるアクセスから、前記ホストコンピュータが前記第1のスイッチに設定した、前記ホストコンピュータと前記入出力装置とを接続する情報を示す設定情報を抽出して記憶部に記憶させる記憶制御部を有する。切替制御装置は、入出力装置が接続される第2のスイッチに、前記記憶部に記憶される設定情報を設定する設定制御部を有する。切替制御装置は、前記第1のスイッチに障害が発生した場合に、前記ホストコンピュータのアクセス先を前記第1のスイッチから前記第2のスイッチに切り替える切替制御部を有する。
【発明の効果】
【0012】
ホストコンピュータと入出力装置とを接続するスイッチの交換に際して、ホストコンピュータの電源停止を抑制することができる。
【図面の簡単な説明】
【0013】
【図1】図1は、実施例1に係る切替制御装置を含むシステムの全体構成例を示す図である。
【図2】図2は、実施例1に係る切替制御装置の構成を示す機能ブロック図である。
【図3】図3は、実施例1に係る切替制御装置が実行する処理の流れを示すフローチャートである。
【図4】図4は、実施例1に係る切替制御装置が実行する設定処理を説明する図である。
【図5】図5は、実施例2に係る切替制御装置を説明する図である。
【図6】図6は、実施例2に係る切替制御装置の構成を示す機能ブロック図である。
【図7】図7は、実施例2に係る切替制御装置が実行する処理の流れを示すフローチャートである。
【図8】図8は、実施例2に係る切替制御装置が実行する設定処理を説明する図である。
【図9】図9は、スイッチ切替プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する切替制御装置、切替制御方法、情報処理装置および切替制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0015】
[全体構成]
図1は、実施例1に係る切替制御装置を含むシステムの全体構成例を示す図である。図1に示すように、システムは、サーバ1と、切替制御装置10と、運用系拡張I/Oボックス20と、待機系拡張I/Oボックス30とを有する。切替制御装置10は、例えばサーバ1のアダプタとして実装することができるが、他にもサーバ1と切替制御装置10とを別々の筐体で実装してもよく、切替制御装置10の全部または一部がサーバ1に組み込まれていてもよい。また、サーバの台数や切替制御装置の台数等についても任意に設定することができる。
【0016】
サーバ1と切替制御装置10とはPCI Expressで接続される。同様に、切替制御装置10と運用系拡張I/Oボックス20のPCI Expressスイッチ(以下、PCIeスイッチと表記する)21とはPCI Expressで接続され、切替制御装置10と待機系拡張I/Oボックス30のPCIeスイッチ31とはPCI Expressで接続される。すなわち、サーバ1内部のPCIバスを延長させたPCI Express延長ケーブルで、サーバ1と切替制御装置10、運用系拡張I/Oボックス20、待機系拡張I/Oボックス30各々が接続される。
【0017】
サーバ1は、切替制御装置10を介して、運用系拡張I/Oボックス20または待機系拡張I/Oボックス30に接続されるI/Oデバイスとデータのやり取りを実行するホストコンピュータである。例えば、サーバ1は、運用系拡張I/Oボックス20のデバイスA22からデータを受信したり、運用系拡張I/Oボックス20のデバイスB23にデータを書き込んだりする。なお、サーバ1の一例としては、ラックマウントサーバやブレードサーバなどがある。
【0018】
運用系拡張I/Oボックス20は、サーバ1が現時点で使用する入出力デバイスを管理する管理形態であり、PCIeスイッチ21とデバイスA22とデバイスB23とを有する。なお、PCIeスイッチの数やデバイスの数は、図示したものに限定されず任意に設定でき、PCIeスイッチ21が有するスロットの数も図示したものに限定されず任意に設定できる。
【0019】
PCIeスイッチ21は、スロット21aにデバイスA22を接続し、スロット21bにデバイスB23を接続するPCI Expressスイッチである。例えば、PCIeスイッチ21は、切替制御装置10を介してサーバ1からデバイスA22へのアクセスを受信し、受信したアクセスをデバイスA22に出力する。また、このPCIeスイッチ21は、HotPlugに対応しており、電源を投入した状態でスロットにデバイスを抜き差しすることができる。
【0020】
デバイスA22とデバイスB23は、サーバ1が現時点で使用する入出力デバイスであり、一例としては、ハードディスク コントローラ、ネットワーク インタフェース カード(NIC)、グラフィックスアクセラレータなどがある。
【0021】
待機系拡張I/Oボックス30は、運用系拡張I/Oボックス20の待機系として動作する入出力デバイスを管理する管理形態であり、PCIeスイッチ31とデバイスC32とデバイスD33とを有する。なお、PCIeスイッチの数やデバイスの数は、図示したものに限定されず任意に設定でき、PCIeスイッチ31が有するスロットの数も図示したものに限定されず任意に設定できる。
【0022】
PCIeスイッチ31は、スロット31aにデバイスC32を接続し、スロット31bにデバイスD33を接続するPCI Expressスイッチである。例えば、PCIeスイッチ31は、切替制御装置10を介してサーバ1からデバイスD33へのアクセスを受信し、受信したアクセスをデバイスD33に出力する。また、このPCIeスイッチ31は、HotPlugに対応しており、電源を投入した状態でスロットにデバイスを抜き差しすることができる。
【0023】
デバイスC32は、サーバ1が使用する入出力デバイスであり、デバイスA22の待機系として動作している。デバイスD33は、サーバ1が使用する入出力デバイスであり、デバイスB23の待機系として動作している。なお、デバイスC32とデバイスD33の一例は、デバイスA22やデバイスB23などと同様のデバイスを用いることができる。
【0024】
切替制御装置10は、記憶部10aと監視部10bと記憶制御部10cと設定制御部10dと切替制御部10eとを有し、サーバ1からデバイスに出力されたアクセスを中継する装置であり、運用系が故障した場合には、運用系から待機系への切替を実行する。
【0025】
監視部10bは、入出力デバイスが接続される運用系拡張I/Oボックス20のPCIeスイッチ21に対してサーバ1から実行されたアクセスを監視する。記憶制御部10cは、監視されるアクセスから、サーバ1がPCIeスイッチ21に設定した、サーバ1と入出力デバイスとを接続する情報を示す設定情報を抽出して記憶部10aに記憶させる。設定制御部10dは、入出力デバイスが接続される待機系拡張I/Oボックス30のPCIeスイッチ31に、記憶部10aに記憶される設定情報を設定する。切替制御部10eは、運用系のPCIeスイッチ21に障害が発生した場合に、サーバのアクセス先を運用系のPCIeスイッチ21から待機系のPCIeスイッチ31に切り替える。
【0026】
このように、切替制御装置10は、運用系として使用されるPCIeスイッチ21に対してサーバ1が実行したアクセスから、PCIeスイッチ21に設定された設定情報を抽出して保持することができる。そして、切替制御装置10は、デバイスとの接続等が未設定のPCIeスイッチに対して、運用系のPCIeスイッチと同じ設定を実行することができる。したがって、切替制御装置10は、運用系のPCIeスイッチが故障した場合でも、サーバ1の設定や再起動を実行することなく、待機系のPCIeスイッチに切り替えることができる。この結果、サーバ1と入出力デバイスとを接続するPCIeスイッチの交換に際して、サーバ1の電源停止を抑制することができる。
【0027】
[切替制御装置の構成]
図2は、実施例1に係る切替制御装置の構成を示す機能ブロック図である。図2に示すように、切替制御装置10は、通信中継部11と監視部12と抽出部13と記憶部14とバックアップコントローラ部15と状態管理部16と切替制御部17とを有する。通信中継部11と監視部12と抽出部13とバックアップコントローラ部15と状態管理部16と切替制御部17とは、例えばCPU(Central Processing Unit)などの電子回路やFPGA(Field-Programmable Gate Array)などの集積回路である。記憶部14は、例えば半導体メモリ素子などの記憶装置である。
【0028】
通信中継部11は、サーバ1から受信したアクセスを入出力デバイスが接続されるPCIeスイッチに中継する処理部である。例えば、通信中継部11は、サーバ1からデータ書き込みやデータ読み出しなどのアクセスを受け付けた場合に、切替制御部17によって指定されたPCIeスイッチに、受け付けたアクセスを出力する。図1の状態で、通信中継部11は、サーバ1からデバイスA22へのアクセスを受け付けた場合、受け付けたアクセスをPCIeスイッチ21に出力する。また、通信中継部11は、アクセスに対する応答をPCIeスイッチ21から受け付けてサーバ1に出力する。
【0029】
監視部12は、入出力デバイスが接続されるPCIeスイッチ21に対してサーバ1から実行されたアクセスを監視する処理部である。例えば、監視部12は、通信中継部11がサーバ1からPCIeスイッチ21に中継するアクセスを監視する。そして、監視部12は、PCIeスイッチ21のコンフィグレーション空間に配置されているレジスタ、言い換えるとPCIeスイッチ21のコンフィグレーションレジスタへの書き込み要求を抽出して、抽出部13に出力する。監視部12は、アクセスの中で指定される書き込み先やコマンド種別等によって、コンフィグレーションレジスタへの書き込み要求を特定する。
【0030】
また、監視部12は、コンフィグレーションレジスタへの書き込み要求を抽出するたびに、抽出した書き込み要求を抽出部13に出力する。すなわち、監視部12は、現在運用系として動作するPCIeスイッチ21への初期設定や設定変更を検出して、抽出部13に抽出することができる。
【0031】
抽出部13は、サーバがPCIeスイッチ21に設定した、サーバ1と入出力デバイスとを接続する情報を示す設定情報を抽出して記憶部14に記憶させる処理部である。例えば、抽出部13は、監視部12から入力されたコンフィグレーションレジスタへの書き込み要求から、PCIeスイッチ21が使用するI/O領域を抽出して、記憶部14に格納する。すなわち、抽出部13は、PCIeスイッチ21が使用するI/O空間の設定、言い換えるとPCIブリッジ設定を抽出する。
【0032】
一例を挙げると、サーバ1は、デバイスA22とデバイスB23各々のI/O領域をメモリ空間上に確保し、この確保したI/O領域を含むよう、ブリッジの使用I/O領域とリンクする領域をPCIeスイッチ21のコンフィグレーションレジスタに書き込む。こうすることで、サーバ1は、メモリ空間上に確保したI/O領域経由でデバイスA22やデバイスB23にアクセスする。ここで、抽出部13は、サーバ1がPCIeスイッチ21のコンフィグレーションレジスタに書き込むI/O領域の先頭アドレスとサイズを抽出する。つまり、抽出部13は、サーバ1がPCIeスイッチ21に書き込むアドレスマップを抽出する。
【0033】
また、抽出部13は、監視部12から書き込み要求を受信するたびに、受信した書き込み要求からアドレスマップ等を抽出して記憶部14に書き込む。つまり、抽出部13は、運用系のPCIeスイッチの設定が変更されるたびに、新たな設定情報を抽出して記憶部14に書き込むことができ、設定変更を追従することができる。
【0034】
記憶部14は、抽出部13によって書き込まれた設定情報を記憶する記憶装置である。例えば、記憶部14は、サーバ1がPCIeスイッチ21に対して設定したアドレスマップを記憶する。なお、記憶部14が記憶する情報は、抽出部13によって更新される。
【0035】
バックアップコントローラ部15は、入出力デバイスが接続されるPCIeスイッチ31が接続された場合に、記憶部14に記憶される設定情報をPCIeスイッチ31に設定する処理部である。具体的には、バックアップコントローラ部15は、サーバ1が運用系のPCIeスイッチ21に対して実行した書き込みアクセスを、サーバ1の指示操作なしに待機系のPCIeスイッチ31にも発生させる。そして、バックアップコントローラ部15は、運用系のPCIeスイッチ21に設定されたアドレスマップ等の設定を、待機系のPCIeスイッチ31にも実行する。
【0036】
また、バックアップコントローラ部15は、記憶部14に記憶される設定情報が更新されるたびに、待機系のPCIeスイッチ31への設定を実行する。こうすることで、運用系の設定変更を追従することができる。また、バックアップコントローラ部15は、切替制御装置10に新たに接続されたPCIeスイッチに対して、記憶部14に記憶される設定情報を設定する。したがって、バックアップコントローラ部15は、運用系が故障して待機系に切り替わった後、旧運用系の代替として新たに新待機系のPCIeスイッチが切替制御装置10に接続された場合に、記憶部14に記憶される設定情報を新待機系のPCIeスイッチに設定する。
【0037】
状態管理部16は、現在いずれのPCIeスイッチが運用系として動作しているかを保持する処理部である。図1の場合、状態管理部16は、PCIeスイッチ21が運用系であることを保持する。状態管理部16は、切替制御部17からPCIeスイッチの切替が実行されたことが通知されると、保持する情報を更新する。
【0038】
切替制御部17は、運用系のPCIeスイッチを待機系に、待機系のPCIeスイッチを運用系に切り替える制御部である。例えば、切替制御部17は、PCIeスイッチ21の故障を検出した場合、状態管理部16を参照して、故障したPCIeスイッチ21が運用系であるか否かを判定する。そして、切替制御部17は、PCIeスイッチ21が運用系である場合、サーバ1へのアクセス先を待機系のPCIeスイッチ31に切り替える指示を通信中継部11に出力する。また、切替制御部17は、運用系のPCIeスイッチが切り替わったことを状態管理部16に通知する。
【0039】
切替制御部17が切り替える契機としては、運用系のPCIeスイッチに故障が発生した場合、運用系のPCIeスイッチに接続されるPCI Express延長ケーブルに断線が発生した場合、管理者やサーバ1等から切替指示を受信した場合などがある。また、切替制御部17が故障を検出する手法としては、管理者から直接指示を受け付けてもよく、サーバ1から受け付けてもよく、定期的な疎通確認やアクセスエラーなどの一般的な手法を用いて検出してもよい。
【0040】
[処理の流れ]
図3は、実施例1に係る切替制御装置が実行する処理の流れを示すフローチャートである。図3に示すように、切替制御装置10の監視部12は、電源が投入されると、通信中継部11がサーバ1から運用系拡張I/Oボックス20へ中継するアクセスを監視し、サーバから運用系への設定を監視する(S101)。すなわち、監視部12は、サーバ1が運用系のPCIeスイッチ21に実行した初期化処理を監視する。
【0041】
抽出部13は、監視部12によって取得されたアクセスから運用系のPCIeスイッチ21内のPCIブリッジ設定を抽出する(S102)。続いて、抽出部13は、抽出したPCIブリッジ設定の情報を記憶部14に格納する(S103)。
【0042】
そして、バックアップコントローラ部15は、切替制御装置10の通信中継部11に待機系拡張I/Oボックス30が接続されている場合(S104肯定)、待機系拡張I/Oボックス30のPCIeスイッチ31に、運用系と同様の初期化処理を実行する(S105)。つまり、バックアップコントローラ部15は、待機系拡張I/Oボックス30のPCIeスイッチ31に、記憶部14に記憶される設定情報を設定する。なお、バックアップコントローラ部15は、待機系拡張I/Oボックス30がまだ接続されていない場合(S104否定)、S106を実行する。
【0043】
その後、バックアップコントローラ部15は、新たな待機系拡張I/Oボックスが接続された場合(S106肯定)、新たな待機系拡張I/OボックスのPCIeスイッチに対して、記憶部14に記憶される設定情報を設定する(S107)。一方、バックアップコントローラ部15は、新たな待機系拡張I/Oボックスがまだ接続されていない場合(S106否定)、S108を実行する。
【0044】
そして、切替制御部17は、運用系のPCIeスイッチ等で故障を検出すると(S108肯定)、通信中継部11を介して、待機系拡張I/Oボックス30が接続されているか否かを判定する(S109)。
【0045】
続いて、切替制御部17は、待機系拡張I/Oボックス30が接続されていると判定した場合(S109肯定)、運用系拡張I/Oボックス20に入出力デバイスが接続されているか否かを判定する(S110)。なお、切替制御部17は、待機系拡張I/Oボックス30が接続されていないと判定した場合(S109否定)、システム故障と判断してアラーム等をディスプレイに出力したり、サーバ1に通知したりする。
【0046】
そして、切替制御部17は、運用系拡張I/Oボックス20に入出力デバイスが接続されていると判定した場合(S110肯定)、運用系拡張I/Oボックス20に接続される入出力デバイスにHotRemoveを実行する(S111)。その後、切替制御部17は、サーバ1からのアクセスを待機系拡張I/Oボックス30に出力するように指示を通信中継部11に対して送信して、運用系と待機系とを切り替える(S112)。なお、S110において、切替制御部17は、運用系拡張I/Oボックス20に入出力デバイスが接続されていないと判定した場合(S110否定)、S111を実行することなく、S112を実行する。
【0047】
続いて、切替制御部17は、新しい運用系拡張I/Oボックス30に入出力デバイスが接続されている場合(S113肯定)、新しい運用系拡張I/Oボックス30に接続される全デバイスにHotAddを実行する(S114)。
【0048】
その後、切替制御装置10は、S106以降の処理を繰り返す。同様に、S113において、切替制御部17が新しい運用系拡張I/Oボックス30に入出力デバイスが接続されていないと判定した場合(S113否定)、切替制御装置10は、S106以降の処理を繰り返す。また、S108において、切替制御部17が運用系のPCIeスイッチ等で故障を検出しない間は(S108否定)、切替制御装置10は、S106以降の処理を繰り返す。
【0049】
[設定処理の説明]
図4は、実施例1に係る切替制御装置が実行する設定処理を説明する図である。図4の上図に示すように、サーバ1は、運用系拡張I/Oボックス20の入出力デバイスが使用するI/O領域を抽出し、抽出した入出力デバイスのI/O領域をメモリ空間に確保する。そして、サーバ1は、メモリ空間上で確保されたI/O領域をPCIeスイッチ21のコンフィグレーションレジスタに書き込む。このようにすることで、サーバ1のメモリ空間に確保された入出力デバイスのI/O空間(アドレス空間)と、運用系拡張I/Oボックス20のPCIeスイッチ21のコンフィグレーションレジスタに書き込まれた入出力デバイスのI/O空間とを対応させることができる。
【0050】
そして、切替制御装置10は、運用系拡張I/Oボックス20のPCIeスイッチ21のコンフィグレーションレジスタに書き込まれた入出力デバイスの領域を抽出し、待機系拡張I/Oボックス30のPCIeスイッチ31のコンフィグレーションレジスタに書き込む。つまり、切替制御装置10は、サーバ1のメモリ空間に確保された入出力デバイスのアドレス空間に、PCIeスイッチ31のコンフィグレーションレジスタに書き込まれた入出力デバイスのアドレス空間をさらに対応付ける。
【0051】
このようにすることで、サーバ1から見たI/O空間には、運用系のPCIeスイッチ21が有する各スロットのI/O空間が対応付けられているように見える。しかし、実際には、サーバ1のメモリ空間に確保されたI/O空間に、運用系のPCIeスイッチ21が有する各スロットのI/O空間と、待機系のPCIeスイッチ31が有する各スロットのI/O空間とが対応付けられている。
【0052】
このような状態で、サーバ1のアクセス先が運用系のPCIeスイッチ21から待機系のPCIeスイッチ31に切り替わったとする。この場合でも、図4の下図に示すように、すでに待機系のPCIeスイッチ31が有する各スロットのI/O空間が、サーバ1のメモリ空間に確保されたI/O空間に対応付けられている。したがって、サーバ1は、アクセス先のPCIeスイッチが切り替わったことに気付かずに、メモリ空間の内のI/O空間を経由して、PCIeスイッチ31に接続される入出力デバイスにアクセスすることができる。
【0053】
その後、切替制御装置10は、故障した旧運用系I/Oボックスに代わって新たな待機系I/Oボックスが接続されたことを検出すると、旧運用系I/OボックスのPCIeスイッチに設定したI/O空間を新たな待機系I/OボックスのPCIeスイッチに設定する。こうすることで、サーバ1の停止や再起動を実行することなく、待機系のPCIeスイッチを増設することもできる。
【0054】
このように、切替制御装置10は、サーバ1の指示等に関係なく、運用系として使用されるPCIeスイッチ21に設定された設定情報を抽出して、未設定のPCIeスイッチに対しても運用系のPCIeスイッチと同じ設定を実行することができる。したがって、切替制御装置10は、運用系のPCIeスイッチが故障した場合でも、サーバ1の設定や再起動を実行することなく、待機系のPCIeスイッチに切り替えることができる。
【0055】
また、切替制御装置10は、故障した運用系のスロットにHotRemoveを実行して、各スロットを無効化して、スロットの電源をオフにした後に、待機系のスロットにHotAddを実行して、運用系と待機系とを切り替える。このため、切替制御装置10は、運用系のスロットに関する情報をリセットすることができ、待機系のスロットを有効にした場合の不具合を減少させることができる。
【0056】
また、切替制御装置10は、運用系のPCIeスイッチ21の設定変更に追従することができるので、待機系のPCIeスイッチ31にも最新の情報を設定することができる。また、切替制御装置10は、待機系のPCIeスイッチが接続されるたびに、運用系のPCIeスイッチに設定した情報を設定することができるので、待機系を容易に増設することができる。また、サーバ1は、1台のPCIeスイッチに対して設定すればよいので、設定にかかる管理者等の負担を軽減することもできる。
【実施例2】
【0057】
ところで、実施例1では、運用系のPCIeスイッチが故障した場合に、待機系のPCIeスイッチに切り替える場合を説明したが、実施例2では、故障したスロットだけを待機系に切り替える例について説明する。
【0058】
[全体構成]
図5は、実施例2に係る切替制御装置を説明する図である。図5に示すシステムは、実施例1と同様に、サーバ1と切替制御装置10と運用系拡張I/Oボックス20と待機系拡張I/Oボックス30とを有する。なお、各装置の説明は、実施例1と同様なので省略する。
【0059】
実施例2では、切替制御装置10は、疎通確認やアクセスエラー等によって、運用系のPCIeスイッチ21が有するスロット21bに接続されるデバイスB23について障害を検出する。すると、切替制御装置10は、障害を検出したスロット21bに対応するスロットとして、待機系のPCIeスイッチ31が有するスロット31bを特定する。一例を挙げると、切替制御装置10は、PCIeスイッチ21のコンフィグレーションレジスタに設定されたスロットごとのI/O空間と、PCIeスイッチ31のコンフィグレーションレジスタに設定されたスロットごとのI/O空間とを比較して特定する。
【0060】
そして、切替制御装置10は、運用系のPCIeスイッチ21のスロット21bに接続されるデバイスB23を、待機系のPCIeスイッチ31のスロット31bに接続されるデバイスD33に切り替える。つまり、切替制御装置10は、サーバ1からデバイスB23へのアクセスを受信した場合には、当該アクセスをデバイスD33へ送信する。具体的には、切替制御装置10は、PCIeスイッチ31に設定されるデバイスB23のI/O領域へのアクセスをデバイスD33に送信する。
【0061】
[切替制御装置の構成]
図6は、実施例2に係る切替制御装置の構成を示す機能ブロック図である。図6に示すように、実施例2に係る切替制御装置10は、通信中継部11と監視部12と抽出部13と記憶部14とバックアップコントローラ部15と状態管理部16と切替制御部17とスロット検出部18とを有する。
【0062】
通信中継部11と監視部12と抽出部13とバックアップコントローラ部15と状態管理部16と切替制御部17とスロット検出部18とは、例えばCPUなどの電子回路やFPGAなどの集積回路である。記憶部14は、例えば半導体メモリ素子などの記憶装置である。
【0063】
また、通信中継部11と監視部12と抽出部13と記憶部14とバックアップコントローラ部15と状態管理部16と切替制御部17とは、実施例1と同様の機能を有するので、詳細な説明は省略する。ここでは、実施例1とは異なる機能であるスロット検出部18について説明する。
【0064】
なお、状態管理部16は、スロットごとに運用系と待機系とを関連付けて保持する。例えば、状態管理部16は、各スイッチの各スロットごとに、当該スロットが運用系であるか待機系であるかを示す情報を記憶する。また、抽出部13やバックアップコントローラ部15等は、PCIeスイッチ21に設定されたスロットごとのI/O領域と、PCIeスイッチ31に設定されたスロットごとのI/O領域との対応を生成して記憶部14に格納する。
【0065】
スロット検出部18は、サーバ1からのアクセスがどのスロットへのアクセスかを検出する処理部である。例えば、スロット検出部18は、サーバ1のアクセスに含まれるデバイス名からアクセス先のスロットを特定することができる。また、スロット検出部18は、サーバ1がアクセスしたI/O領域と記憶部14に記憶されるアドレスマップ等を比較して、アクセス対象のI/O領域を特定することで、アクセス先のスロットを特定することもできる。
【0066】
例えば、スロット検出部18がアクセス先のスロット21bを検出し、切替制御部17がアクセス先から応答がない場合に、アクセス先のスロット21bで障害が発生したことを検出する。そして、切替制御部17は、障害を検出した運用系のPCIeスイッチ21が有するスロット21bへのアクセスを、待機系のPCIeスイッチ31が有するスロット31bへ切り替える指示を通信中継部11に出力する。その後、通信中継部11は、サーバ1がデバイスB23にアクセスした場合、当該アクセスをデバイスD33に送信する。
【0067】
[処理の流れ]
図7は、実施例2に係る切替制御装置が実行する処理の流れを示すフローチャートである。図7に示すS201からS207までの処理は、実施例1で説明した図3のS101からS107と同様の処理なので、ここでは説明を省略する。
【0068】
そして、通信中継部11がアクセスを検出した場合(S208肯定)、スロット検出部18は、検出されたアクセスのアクセス先がどのスロットかを検出する(S209)。続いて、切替制御部17は、検出されたスロットの運用系を状態管理部16に保持される情報から特定する(S210)。そして、通信中継部11は、特定されたスロットを有する運用系拡張I/Oボックスに、受信されたアクセスを送信する(S211)。
【0069】
具体的な例を説明すると、スロット検出部18は、サーバ1がメモリ空間における所定のI/O領域経由でアクセスした場合に、当該I/O領域に該当するスロットを記憶部14等から特定する。そして、切替制御部17は、状態管理部16が保持する情報を参照し、スロット検出部18が検出したスロットすなわちスロット検出部18が検出したI/O領域において、現在運用系であるスロット21bを特定する。その後、通信中継部11は、切替制御部17が特定したスロット21bを有するPCIeスイッチ21に対して、サーバ1から受信したアクセスを送信する。
【0070】
図7に戻り、切替制御部17は、通信中継部11から中継したアクセス先で故障を検出した場合(S212肯定)、待機系拡張I/Oボックスが接続されているか否かを判定する(S213)。なお、通信中継部11から中継したアクセス先で故障を検出しない場合(S212否定)、切替制御装置10は、S206以降を繰り返す。
【0071】
切替制御部17は、運用系拡張I/Oボックスが接続されていると判定した場合(S213肯定)、運用系拡張I/Oボックスが有するS209やS210で特定されたスロットにHotRemoveを実行する(S214)。その後、切替制御部17は、サーバ1からS209やS210で特定されたスロットに対するアクセス先、運用系から待機系に切り替える(S215)。
【0072】
続いて、切替制御部17は、新しい運用系拡張I/Oボックスの該当スロットに入出力デバイスが接続されている場合(S216肯定)、新しい運用系拡張I/Oボックスの該当スロットにHotAddを実行する(S217)。
【0073】
その後、切替制御装置10は、S206以降の処理を繰り返す。同様に、S216において、切替制御部17が新しい運用系拡張I/Oボックスの該当スロットに入出力デバイスが接続されていないと判定した場合(S216否定)、切替制御装置10は、S206以降の処理を繰り返す。
【0074】
なお、S213において、切替制御部17は、待機系拡張I/Oボックスが接続されていないと判定した場合(S213否定)、システム故障と判断してアラーム等をディスプレイに出力したり、サーバ1に通知したりする。
【0075】
[設定処理の説明]
図8は、実施例2に係る切替制御装置が実行する設定処理を説明する図である。図8の上図は、図4の上図と同様なので、詳細な説明は省略する。具体的には、サーバ1から見たI/O空間には、運用系のPCIeスイッチが有する各スロットのI/O空間が対応付けられているように見える。実際には、サーバ1のメモリ空間に確保されたI/O空間に、運用系のPCIeスイッチが有する各スロットのI/O空間と、待機系のPCIeスイッチが有する各スロットのI/O空間とが対応付けられている。
【0076】
このような状態で、サーバ1のアクセス先である運用系のスロット2に障害が発生したとする。この場合、切替制御装置10は、サーバから見たスロット2のI/O空間に、待機系のスロット2のI/O空間を対応付けることで、障害が発生したスロット2を待機系に切り替える。具体的には、図8の下図に示すように、すでに待機系のPCIeスイッチが有する各スロットのI/O空間が、サーバ1のメモリ空間に確保されたI/O空間に対応付けられている。したがって、切替制御装置10内部で対応付けを制御することで切り替えることができる。このため、サーバ1は、アクセス先のスロット2が運用系から待機系に切り替わったことに気付かずに、メモリ空間の内のI/O空間を経由して、該当スロットに接続される入出力デバイスにアクセスすることができる。
【0077】
このようにすることで、運用系の入出力デバイスが故障した場合でも、故障した入出力デバイスについてのみ待機系に切り替えることができるので、システムを停止させることなく、サーバ1のアクセスを処理することができる。また、故障した入出力デバイスが新しい入出力デバイスに交換されるまでの間も、サーバ1のアクセスを正常に処理することができる。また、PCIeスイッチ自体を切り替えることに比べて、スロット単位で切り替えるので、切替時のリスクを軽減することもできる。
【実施例3】
【0078】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【0079】
(対象スイッチ)
上記実施例では、PCIeスイッチを例にして説明したが、これに限定されるものではなく、例えば、ホストコンピュータと、ホストコンピュータからケーブルを延長して接続される外部の入出力装置との間を接続する中継装置に適用することができる。また、入出力装置へのスイッチングを行うスイッチであって、ホストコンピュータから設定を実行するブリッジやスイッチにも適用することができる。
【0080】
(切替先)
また、切替制御装置は、複数の待機系を接続することができる。したがって、切替制御装置は、複数のPCIeスイッチが待機系として接続されている状況で、運用系に障害が発生した場合には、運用系と同様の初期化処理が実行されたPCIeスイッチの中から任意のスイッチを切替先として選択することができる。また、切替制御装置が切替先を選択する基準は任意に設定することができる。例えば、切替制御装置は、初期化処理にかかった時間が最も少なかったスイッチ、初期化処理でエラーが発生しなかったスイッチ等を切替先として選択することもできる。
【0081】
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0082】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0083】
(ハードウェア構成)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【0084】
図9は、スイッチ切替プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図9に示すように、コンピュータ100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108を有する。また、図9に示した各部は、バス101で相互に接続される。
【0085】
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NIC(Network Interface Card)などのインタフェースである。HDD107は、スイッチ切替プログラム107aとともに、図2に示した記憶部に記憶される情報を記憶する。記録媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【0086】
CPU102は、スイッチ切替プログラム107aを読み出してRAM108に展開することで、図2や図6等で説明した各機能を実行するスイッチ切替プロセス108aを動作させる。すなわち、スイッチ切替プロセス108aは、図2に記載した通信中継部11と監視部12と抽出部13とバックアップコントローラ部15と状態管理部16と切替制御部17と同様の機能を実行する。また、スイッチ切替プロセス108aは、図6に記載したスロット検出部18と同様の機能を実行する。このようにコンピュータ100は、プログラムを読み出して実行することでスイッチ切替方法を実行する情報処理装置として動作する。
【0087】
また、コンピュータ100は、媒体読取装置106によって記録媒体からスイッチ切替プログラムを読み出し、読み出されたスイッチ切替プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0088】
1 サーバ
10 切替制御装置
10a、14 記憶部
10b、12 監視部
10c 記憶制御部
10d 設定制御部
10e 切替制御部
11 通信中継部
13 抽出部
15 バックアップコントローラ部
16 状態管理部
17 切替制御部
18 スロット検出部
20 運用系拡張I/Oボックス
21 PCIeスイッチ
21a スロット
21b スロット
22 デバイスA
23 デバイスB
30 待機系拡張I/Oボックス
31 PCIeスイッチ
31a スロット
31b スロット
32 デバイスC
33 デバイスD

【特許請求の範囲】
【請求項1】
入出力装置が接続される第1のスイッチに対してホストコンピュータが実行したアクセスを監視する監視部と、
前記監視部によって監視されるアクセスから、前記ホストコンピュータが前記第1のスイッチに設定した、前記ホストコンピュータと前記入出力装置とを接続する情報を示す設定情報を抽出して記憶部に記憶させる記憶制御部と、
入出力装置が接続される第2のスイッチに、前記記憶部に記憶される設定情報を設定する設定制御部と、
前記第1のスイッチに障害が発生した場合に、前記ホストコンピュータのアクセス先を前記第1のスイッチから前記第2のスイッチに切り替える切替制御部と
を有することを特徴とする切替制御装置。
【請求項2】
前記切替制御部は、前記第1のスイッチに接続される入出力装置を無効化して、前記第1のスイッチが前記入出力装置を設置するスロットの電源をオフにし、前記第2のスイッチが入出力装置を設置するスロットの電源をオンにして、前記ホストコンピュータのアクセス先を前記第1のスイッチから前記第2のスイッチに切り替えることを特徴とする請求項1に記載の切替制御装置。
【請求項3】
前記第1のスイッチに障害が発生した場合に、前記第1のスイッチが前記入出力装置を設置する複数のスロットのうち、障害が発生したスロットを検出するスロット検出部をさらに有し、
前記切替制御部は、前記スロット検出部が特定したスロットに対するサーバのアクセスを、前記第2のスイッチが有するスロットのうち、前記スロット検出部が特定した第1のスイッチのスロットに対応するスロットに切り替えることを特徴とする請求項1に記載の切替制御装置。
【請求項4】
入出力装置が接続される第1のスイッチに対して実行したアクセスを監視する監視部と、
前記監視部によって監視されるアクセスから、前記第1のスイッチに設定した設定情報を抽出して記憶部に記憶させる記憶制御部と、
入出力装置が接続される第2のスイッチに、前記記憶部に記憶される設定情報を設定する設定制御部と、
前記第1のスイッチに障害が発生した場合に、前記第1のスイッチから前記第2のスイッチにアクセス先を切り替える切替制御部と
を有することを特徴とする情報処理装置。
【請求項5】
コンピュータが、
入出力装置が接続される第1のスイッチに対してホストコンピュータが実行したアクセスを監視し、
前記監視するアクセスから、前記ホストコンピュータが前記第1のスイッチに設定した、前記ホストコンピュータと前記入出力装置とを接続する情報を示す設定情報を抽出して記憶部に記憶させ、
入出力装置が接続される第2のスイッチに、前記記憶部に記憶される設定情報を設定し、
前記第1のスイッチに障害が発生した場合に、前記ホストコンピュータのアクセス先を前記第1のスイッチから前記第2のスイッチに切り替える
処理を含んだことを特徴とする切替制御方法。
【請求項6】
コンピュータに、
入出力装置が接続される第1のスイッチに対してホストコンピュータが実行したアクセスを監視し、
前記監視するアクセスから、前記ホストコンピュータが前記第1のスイッチに設定した、前記ホストコンピュータと前記入出力装置とを接続する情報を示す設定情報を抽出して記憶部に記憶させ、
入出力装置が接続される第2のスイッチに、前記記憶部に記憶される設定情報を設定し、
前記第1のスイッチに障害が発生した場合に、前記ホストコンピュータのアクセス先を前記第1のスイッチから前記第2のスイッチに切り替える
処理を実行させることを特徴とする切替制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−97553(P2013−97553A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−239433(P2011−239433)
【出願日】平成23年10月31日(2011.10.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】