説明

計算機システム、計算機システムの制御方法及びプログラム

【課題】I/OスイッチによりI/Oデバイスを共用する状態で現用系サーバから予備系サーバへの切り替えが行われた場合でも、管理サーバから各サーバの物理位置を把握する。
【解決手段】複数の計算機と複数のI/Oデバイスを接続するI/Oスイッチを管理する構成管理情報を有する管理サーバが、計算機に対するI/Oデバイスの割り当てを制御する計算機システムの制御方法であって、管理サーバが、第1の計算機と第1の計算機に割り当てられたI/Oデバイスの識別子を取得して構成管理情報に格納し、第1の計算機から第2の計算機への切り換えを受け付け、第1の計算機を停止させ、第1の計算機に割り当てられた前記I/Oデバイスを第2の計算機へ割り当て、第2の計算機を起動させ、第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PCI-Express Switchに接続された計算機の管理に関する。
【背景技術】
【0002】
従来、PCIデバイスは計算機内に搭載されていたが、PCI-Express Switchが実用化されたことにより、計算機外で取り扱うことが可能になった。これにより、PCIバスの切り替えが容易となり、柔軟にI/O構成を変更することが可能となる(例えば、特許文献1)。
【0003】
計算機システムの信頼性を向上させるために、現用系サーバと予備系サーバを用意することで、障害時に現用系サーバから予備系サーバへの切り替えを行うリカバリ方法がある。この現用系サーバと予備系サーバをPCI-Express Switchを接続してI/Oデバイスを共用することで、計算機システムの信頼性を維持しつつ、柔軟なI/O構成を組みたいというニーズが高まっている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−301488
【発明の概要】
【発明が解決しようとする課題】
【0005】
サーバ管理ソフトウェアの中には、管理対象サーバのNIC(Network Interface Card)に関連付けられるMACアドレス(Media Access Control address)から管理対象サーバの物理位置を判断しているものがある。しかし、前記従来例のように、PCI- Express Switchに接続されている現用系サーバから予備系サーバへの切り替えが発生した場合、PCI- Express Switchにより現用系サーバと予備系サーバが同じPCIデバイスのNICに接続されるため、NICに関連付けられるMACは同じものになる。このため、管理ソフトウェアが、管理対象サーバの物理位置の変更を検知することができず、管理者はサーバの運用及び管理を引き続き継続することができない、という問題があった。
【0006】
そこで本発明は、上記問題点に鑑みてなされたもので、現用系サーバと予備系サーバをPCI-Express Switchに接続してI/Oデバイスを共用する状態で、現用系サーバから予備系サーバへの切り替えが行われた場合でも、管理サーバから各サーバの物理位置を把握することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、プロセッサとメモリとI/Oインターフェースとを有する複数の計算機を前記I/Oインターフェース経由で接続する1以上のI/Oスイッチに複数のI/Oデバイスを接続し、前記I/Oスイッチを介して前記計算機に接続するI/Oデバイスを管理する構成管理情報を有する管理サーバが、前記計算機に対する前記I/Oデバイスの割り当てを制御する計算機システムの制御方法であって、前記管理サーバが、前記複数の計算機のうちの第1の計算機と、前記第1の計算機に割り当てられたI/Oデバイスの識別子を取得して、前記構成管理情報に格納し、前記管理サーバが、前記第1の計算機から前記複数の計算機のうちの第2の計算機への切り換えを受け付け、前記管理サーバが、前記第1の計算機を停止させ、前記管理サーバが、前記第1の計算機に割り当てられた前記I/Oデバイスを前記第2の計算機へ割り当てる指令を前記I/Oスイッチに送信し、前記管理サーバが、前記第2の計算機を起動させ、前記管理サーバが、前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換える。
【発明の効果】
【0008】
したがって、本発明により、管理者はI/Oスイッチ(PCI-Express Switch)に接続された計算機に現用系と待機系の切り替えが発生した場合においても、計算機の物理位置がI/Oデバイスに固有の識別子から仮想識別子に変わったことを判定することが可能となる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態を示し、計算機システムの全体を示すブロック図である。
【図2】本発明の実施形態を示し、管理サーバ101の構成を示すブロック図である。
【図3】本発明の実施形態を示し、サーバ装置111の構成を示すブロック図である。
【図4】本発明の実施形態を示し、動作概要の一つを示す計算機システムのブロック図である。
【図5】本発明の実施形態を示し、動作概要の一つを示す計算機システムのブロック図で、フェイルオーバの様子を示す。
【図6】本発明の実施形態を示し、サーバ管理テーブル108を示す説明図である。
【図7】本発明の実施形態を示し、サーバI/O構成情報テーブル109を示す説明図である。
【図8】本発明の実施形態を示し、仮想識別子テーブル123を示す説明図である。
【図9】本発明の実施形態を示し、管理サーバ101のデバイス識別子検出部103で行われる処理の一例を示すフローチャートである。
【図10】本発明の実施形態を示し、サーバ障害回復部104で行われる処理の一例を示すフローチャートである。
【図11】本発明の実施形態を示し、I/Oスイッチ切り替え部105で行われる処理の一例を示すフローチャートである。
【図12】本発明の実施形態を示し、デバイス識別子取得選択部106で行われる処理の一例を示すフローチャートである。
【図13】本発明の実施形態を示し、デバイス識別子書き換え部107で行われる処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【0011】
図1は、本発明の実施形態を示し、計算機システムの全体を示すブロック図である。図1の計算機システムは、複数のサーバ装置111で現用系のサーバ装置111と予備系(または待機系)のサーバ装置111を構成し、現用系と予備系でI/Oデバイス115を切り換え可能なI/Oスイッチ装置112を共用し、管理サーバ101からの指示に応じて現用系と予備系を切り替えるものである。
【0012】
管理サーバ101は本実施形態における制御の中心である。管理サーバ101は、I/O構成管理部102と各種テーブル(108〜109、123)、デバイス識別子取得プログラム121、およびデバイス識別子書き換えプログラム122を実行する。I/O構成管理部102は、デバイス識別子検出部103、サーバ障害回復部104、I/Oスイッチ切り替え部105、デバイス識別子取得選択部106、デバイス識別子書き換え部107から構成される。
【0013】
管理サーバ101は、ネットワークスイッチ110を介して、複数のサーバ装置111、複数のI/Oスイッチ装置112、ファームウェア層のService Processor(以後、SVPと表記する)120に接続される。I/Oスイッチ装置112は、サーバ装置111及びSVP120と接続する複数の上流ポート113と、複数のI/Oデバイス115と接続する複数の下流ポート114を備えて、サーバ装置111及びSVP120とI/Oデバイス115とを接続する。複数のI/Oデバイス115のうちのいくつかは、ストレージ装置116と接続されるHBA(Host Bus Adaptor)で構成され、サーバ装置111からストレージ装置116をアクセスすることができる。
【0014】
また、複数のI/Oデバイス115のうちのいくつかは、管理LANスイッチ401、業務LANスイッチ402に接続されるNIC(Netwaork interface Card)で構成され、サーバ装置111から管理LANスイッチ401と業務LANスイッチ402にアクセスすることができる。
【0015】
なお、複数のサーバ装置111は添え字#1〜#3で個々のサーバ装置111を識別し、また、複数のI/Oスイッチ装置112は、添え字#1、#2で識別し、上流ポート113と下流ポート114はそれぞれ0〜3の添え字で識別し、I/Oデバイス115は#1〜#8で識別する。
【0016】
管理LANスイッチ401は管理ソフトウェア4050(図4参照)が稼動するサーバ装置405等が、サーバ装置#1〜#3を管理するための管理ネットワークを構成する。なお、サーバ装置405の管理ソフトウェア4050は、前記従来例で述べたように、サーバ装置#1〜#3に接続されたNICのMACアドレスで、サーバ装置#1〜#3を実行する。
【0017】
業務LANスイッチ402はサーバ装置#1〜#3と外部などの計算機を接続し、サーバ装置#1〜#3のサービスを外部等の計算機に提供する業務ネットワークを構成する。
【0018】
管理サーバ101は、サーバ装置111やI/Oスイッチ装置112やI/Oデバイス115の障害を検知し回復する機能を有する。デバイス識別子検出部103は、サーバ装置111に接続されたI/Oデバイス115のデバイス識別子を検出する機能を有する。I/Oデバイス115のデバイス識別子としては、例えば、特定のネットワークに接続されているNICのMAC、特定のストレージ装置に接続されているHBA(Host Bus Adapter)のWWN(World Wide Name)等である。
【0019】
サーバ障害回復部104は、サーバ装置111やI/Oスイッチ装置112やI/Oデバイス115の障害を検知し回復する機能を有する。I/Oスイッチ切り替え部105は、サーバ管理テーブル108、およびサーバI/O構成情報テーブル109の情報を取得し、I/Oスイッチ装置112の切り替えを行う機能を有する。
【0020】
デバイス識別子取得選択部106は、サーバ管理テーブル108、およびサーバI/O構成情報テーブル109の情報を取得し、特定のデバイス識別子を選択する機能を有する。デバイス識別子書き換え部107は、デバイス識別子取得選択部106によって選択されたデバイス識別子を任意のデバイス識別子に書き換える機能を有する。
【0021】
サーバ管理テーブル108は、サーバ装置111の構成、およびサーバ装置111に接続されているI/Oスイッチ装置112の情報が格納される。サーバI/O構成情報テーブル109は、サーバ装置111に接続される一つまたは複数のI/Oスイッチ装置112と、I/Oデバイス115のI/O構成定義情報や状態などが格納される。サーバI/O構成情報テーブル109はスイッチ管理テーブルとして機能する。デバイス識別子取得プログラム121は、I/Oデバイス115が有する固有の識別子を取得する機能を有するプログラムが格納される。デバイス識別子書き換えプログラム122は、I/Oデバイス115が有する固有の識別子を書き換える機能を有するプログラムが格納される。
【0022】
本実施形態では、管理サーバ101が、複数のサーバ装置111の何れかに障害が発生した場合に、障害が発生したサーバ装置111を一旦停止し、I/Oスイッチ装置112の切り替えを行い、障害が発生したサーバ装置111に接続された複数のI/Oデバイス115の情報を書き換え、予備系のサーバ装置111を起動して障害が発生したサーバ装置111のI/Oデバイス115を引き継ぐ一実施形態を示す。
【0023】
図2は、管理サーバ101の構成を示すブロック図である。管理サーバ101は、メモリ201とプロセッサ202とディスクインターフェース203とネットワークインターフェース204から構成される。メモリ201内には、サーバ管理テーブル108、サーバI/O構成情報テーブル109、デバイス識別子取得プログラム121、デバイス識別子書き換えプログラム122が格納される。
【0024】
I/O構成管理部102は、デバイス識別子検出部103、サーバ障害回復部104、I/Oスイッチ切り替え部105、デバイス識別子取得選択部106、デバイス識別子書き換え部107が含まれる。メモリ内のI/O構成管理部102やテーブル(108〜109、123)、デバイス識別子取得プログラム121、およびデバイス識別子書き換えプログラム122は、プロセッサ202に読み込まれて実行される。ディスクインターフェース203は、管理サーバ101を起動するための上記各プログラムが格納された記憶媒体としてのディスク(図示省略)に接続される。ネットワークインターフェース204は、ネットワークスイッチ110等で構成されるネットワークに接続され各装置の障害情報などが転送され、また、管理サーバ101からの指令が転送される。なお、これらの機能はハードウェアで実装しても良い。
【0025】
図3は、サーバ装置111の構成を示すブロック図である。図1に示す複数のサーバ装置111(#1〜#3)は同一の構成である。サーバ装置111は、メモリ301、プロセッサ302、I/Oスイッチインターフェース303、BMC(Base board Management Controller)304から構成される。メモリ301には、サーバ装置111で処理されるプログラムが格納され、このプログラムはプロセッサ302で実行される。I/Oスイッチインターフェース303は、I/Oスイッチ装置112に接続される。BMC304は、サーバ装置111内のハードウェアに障害が発生した場合に、ネットワークスイッチ110を介してSVP120に障害を通知する機能を有する。BMC304は障害の発生箇所とは独立に動作できるため、メモリ301やプロセッサ302に障害が発生したとしても障害通知を転送することができる。
【0026】
なお、本実施形態のI/Oスイッチ装置112、I/Oスイッチインターフェース303及びI/Oデバイス115はPCI−Expressの規格に準拠したものである。
【0027】
また、SVP120は、プロセッサとメモリとネットワークインターフェースを備えた計算機でありサーバ装置111の稼動状態を管理する。SVP120は、各サーバ装置111のBMC304を監視し、BMC304から障害の通知を受信すると、管理サーバ101に障害の発生したサーバ装置111を通知する。SVP120は管理サーバ101からサーバ装置111の起動やリセット等の指令を受信すると、対象となるサーバ装置111のBMC304に対して起動やリセット等を指令する。
【0028】
図4は、本発明における動作概要の一つを示している。サーバ装置111は複数のI/Oスイッチ装置112を介して複数のI/Oデバイス115と接続される。また、I/Oデバイス115はデバイスによって接続先が変わる。
【0029】
図4の例では、サーバ装置111(#1)が現用系を構成し、サーバ装置111(#3
)が予備系を構成する。なお、以下では、各装置を上述の図1に示した添え字で識別する。図中I/Oデバイス#1、#3、#5、#7がNICで構成され、I/Oデバイス#2、#4、#6、#8がHBAで構成された例を示す。
【0030】
現用系のサーバ装置#1はI/Oスイッチインターフェース303を介してI/Oスイッチ装置#1の上流ポート1とI/Oスイッチ装置#2の上流ポート1に接続される。I/Oスイッチ装置#1では、上流ポート1と下流ポート0、1、4が接続される。そして、下流ポート0にはNICで構成されたI/Oデバイス#1が接続され、下流ポート2、4にはHBAで構成されたI/Oデバイス#2、#4が接続される。I/Oスイッチ装置#2では、上流ポート1と下流ポート0が接続される。そして、I/Oスイッチ装置#2の下流ポート0にはNICで構成されたI/Oデバイス#5が接続される。
【0031】
I/Oデバイス#1のNICは、管理LANネットワークスイッチ401に接続され、I/Oデバイス#5のNICは、業務LANスイッチ402に接続される。I/Oデバイス#2のHBAはストレージ装置116のブートディスク403に接続され、I/Oデバイス#4のHBAはストレージ装置116のユーザディスク404に接続される。なお、ストレージ装置116のブートディスク403とユーザディスク404は、ロジカルユニットとして提供される。
【0032】
上記のように設定された現用系のサーバ装置#1は、I/Oスイッチ装置#1、#2を介してブートディスク403と、ユーザディスク404にアクセスし、管理LANスイッチ401を介してサーバ装置405と接続し、業務LANスイッチ402を介してサービスを提供する計算機に接続され。
【0033】
上記の構成において、現用系のサーバ装置#1はI/Oスイッチ装置#1、#2を介して接続されたI/Oデバイス#1,#2、#4、#5のうち、管理LANスイッチ401に接続された指定デバイス識別子のみを取得し、管理サーバ101に対して送信する。この指定デバイス識別子はユーザ(または管理者)によって任意に設定可能である。例えば、サーバ装置#1のI/Oデバイス#1、#5がNICの場合、サーバ装置#1は、I/Oスイッチインターフェース303に接続された複数のI/Oデバイス#1、#5のうち、管理LANスイッチ401に接続されたNIC(I/Oデバイス#1)の固有識別子(MAC)のみを指定デバイス識別子として管理サーバ101に送信する。
【0034】
すなわち、業務LANスイッチ401は、他の計算機と接続してサーバ装置#1〜#3のサービスを提供するため、障害発生時に現用系のサーバ装置#1から予備系のサーバ装置3にフェイルオーバを行った後も、現用系のサーバ装置#1から予備系のサーバ装置3が引き継いだNIC(I/Oデバイス#5)の識別子(MACアドレス)を変更してはならないネットワークを構成する。
【0035】
これに対して、管理LANスイッチ402は、サーバ装置405と接続して管理ソフトウェア4050によりサーバ装置#1〜#3の管理を行うため、障害発生時に現用系のサーバ装置#1から予備系のサーバ装置3にフェイルオーバを行った後は、現用系のサーバ装置#1から予備系のサーバ装置3が引き継いだNIC(I/Oデバイス#3)の識別子(MACアドレス)を変更するネットワークを構成する。
【0036】
図4の状態では、予備系のサーバ装置#3は、I/Oスイッチ装置#1の上流ポート3と、I/Oスイッチ装置#2の上流ポート3にそれぞれ接続されるが、各上流ポート3には下流ポートが接続されていない。
【0037】
図5は、本発明における動作概要の一つを示し、フェイルオーバの例を示している。図5は、図4に示した環境で現用系のサーバ装置#1に障害が発生して、予備系のサーバ装置#3に処理を引き継ぐ例を示している。
【0038】
現用系のサーバ装置#1で障害が発生した場合に、管理サーバ101は現用系のサーバ装置#1を一旦停止する。そして、管理サーバ101はI/Oスイッチ装置112へ現用系のサーバ装置#1から予備系のサーバ装置#3への切り換えを指示し、I/Oスイッチ装置112は上流ポート113と下流ポート114の接続を切り替えることにより、現用系のサーバ装置#1に接続されている全てのI/Oデバイス115を、予備系のサーバ装置#3へ接続する。
【0039】
つまり、サーバ装置111とI/Oスイッチ装置112間の経路は、図5に示す経路501から経路503へ、経路502から経路504へと変更される。このとき、I/Oスイッチ装置112とI/Oデバイス115間の経路は変更されないことが重要である。
【0040】
次に管理サーバ101は、予備系のサーバ装置#3を起動し、管理LANスイッチ401に接続されたNIC(I/Oデバイス#1)の特定のデバイス識別子(MAC)のみを予め設定した仮想の識別子に書き換える。
【0041】
このとき、管理サーバ101は、管理LANスイッチ401に接続されているI/Oデバイス#1(NIC)のデバイス識別子(MAC)のみの書き換えを指示し、業務LANスイッチ402に接続されているI/Oデバイス#5(NIC)のデバイス識別子については書き換えは行わないところに特徴がある。また、このデバイス識別子の書き換えはI/Oデバイス115がHBAの場合には、デバイス識別子(WWN)などに対しても適用可能である。
【0042】
図6は、サーバ管理テーブル108を示す。カラム1101は、サーバ装置識別子を示す。カラム1102は、サーバ装置111のプロセッサ構成、カラム1103はメモリ容量が格納される。カラム1104は、当該サーバ装置111が接続されているI/Oスイッチ装置112の識別子が格納される。
【0043】
カラム1105は当該サーバ装置111が接続されているI/Oスイッチ装置112の上流ポート113のポート番号が格納される。カラム1106は当該サーバ装置111に割り当てられているI/Oデバイス115が接続された下流ポート114のポート番号が格納される。
【0044】
サーバ管理テーブル108によって、サーバ装置#1〜#3(図中HOST1〜3)に割り当てられたI/Oデバイス115のI/Oスイッチ装置112の識別子と、下流ポート114のポート番号と、上流ポート113のポート番号の対応関係が保持される。
【0045】
図7は、サーバI/O構成情報テーブル109を示す。カラム1202はI/Oスイッチ装置112の識別子が格納される。カラム1202は、I/Oスイッチ装置112の下流ポート114のポート番号が格納される。カラム1203は下流ポート114に接続されたI/Oデバイス115の種類が格納される。カラム1204は、I/Oデバイス115の固有の識別子がデバイス識別子として格納される。カラム1205は、サーバ装置111から通知された指定デバイス識別子が格納される。また、指定デバイス識別子は、接続デバイス1203に対して複数の指定デバイス識別子が格納される場合もある。
【0046】
デバイス識別子は、管理対象のI/Oデバイス115に固有の識別子で、例えば、MACやWWNで構成される。指定デバイス識別子は、管理対象のサーバ装置111に接続されているI/Oデバイス115のうち、管理ネットワークに接続されているI/Oデバイス115のデバイス識別子を示す。なお、指定デバイス識別子はデバイス識別子に代わって、管理ネットワークに接続されていることを示すフラグを用いてもよい。
【0047】
サーバI/O構成情報テーブル109を管理することによって、一つのサーバ装置111に対して複数のI/O構成を管理することができる。
【0048】
図8は、仮想識別子テーブル123を示す説明図である。仮想識別子テーブル123は、I/Oスイッチ装置112に接続されているI/Oデバイス115の固有の識別子を格納するデバイス識別子として格納するカラム1231と、管理サーバ101が設定した仮想デバイス識別子を格納するカラム1232から構成される。
【0049】
仮想デバイス識別子は、サーバ装置111がフェイルオーバなどで切り替わったことをサーバ装置405に通知するため、I/Oデバイス115に固有のデバイス識別子に代わってI/Oデバイス115に付与する識別子である。
【0050】
図9は、管理サーバ101のデバイス識別子検出部103で行われる処理の一例を示すフローチャートである。本処理は、管理サーバ101がサーバ装置111を管理する場合に必ず行われる処理で、例えば、サーバ装置111の起動、停止やI/Oデバイス115の変更などである。
【0051】
ステップ1301では、管理サーバ101のデバイス識別子検出部103がサーバ管理テーブル108、およびサーバI/O構成情報テーブル109から、サーバ装置111の指定デバイス識別子を取得する。ステップ1302では、デバイス識別子検出部103は、サーバ装置111の指定デバイス識別子情報の取得の有無を判定する。指定デバイス識別子が取得された場合にはステップ1303へ進み、指定デバイス識別子がなければ処理を終了する。
【0052】
ステップ1303では、デバイス識別子検出部103がサーバ装置111に指定デバイス識別子の送信命令を発行する。例えば、サーバ装置111にI/Oデバイス(NIC)115が接続されている場合には、MACアドレスの送信命令を送信する。この送信命令は、複数のサーバ装置111に接続されている複数のI/Oデバイス115に対し、複数の指定デバイス識別子の送信命令を行うことが可能である。
【0053】
ステップ1304では、デバイス識別子検出部103が指定デバイス識別子の送信命令に対する応答として受信した指定デバイス識別子をサーバI/O構成情報テーブル109に格納する。
【0054】
上記処理により、デバイス識別子検出部103は、各サーバ装置111から管理ネットワークに接続されているI/Oデバイス115のデバイス識別子を指定デバイス識別子として取得し、サーバI/O構成情報テーブル109の指定デバイス識別子1205に格納する。なお、サーバ装置111は、デバイス識別子検出部103からの指定デバイス識別子の送信命令に対して、管理ネットワークに接続されていないI/Oデバイス115については、デバイス識別子を通知しない。例えば、図4の構成では、サーバ装置111は、管理LANスイッチ401に接続されているI/Oデバイス#1のMACを管理サーバ101に応答するが、I/Oデバイス#2、#4、#5のデバイス識別子については管理サーバ101に通知しない。また、サーバ装置111は、管理ネットワークの所定の装置(例えば、サーバ装置405)と通信可能なI/Oデバイス115を、管理ネットワークに接続されているI/Oデバイス115として判定することができる。
【0055】
上記処理は、管理サーバ101が管理対象とするサーバ装置111の全てについて繰り返して行うことができる。
【0056】
なお、管理サーバ101が管理ネットワークに接続されている場合は、管理サーバ101が管理ネットワークからI/Oデバイス115のデバイス識別子を取得するようにしても良い。
【0057】
図10は、サーバ障害回復部104で行われる処理の一例を示すフローチャートである。サーバ障害回復部104は、SVP120からサーバ装置111の障害の通知を受信すると図10の処理を実行する。なお、障害の検知は、SVP120からの通知に限らず、サーバ障害回復部104が各サーバ装置111のハートビートを検知するものであっても良く、公知ないし周知の手法を適用することができる。
【0058】
ステップ1041では、サーバ障害回復部104が、現用系のサーバ装置111(図4のサーバ装置#1)の障害を検知した場合にSVP120から通知された現用系のサーバ装置111の起動を停止する。ステップ1402では、サーバ障害回復部104がSVP120、およびI/Oスイッチ装置112からI/Oスイッチ情報を取得し、サーバ管理テーブル108、およびサーバI/O構成情報テーブル109の更新を行う。I/Oスイッチ情報は、全てのI/Oスイッチ装置112の上流ポート113と下流ポート114の接続関係を示す。ステップ1402では、サーバ障害回復部104が、障害発生により停止した現用系のサーバ装置111に接続されていた下流ポート114を特定し、停止した現用系のサーバ装置111が使用していたI/Oデバイス115を取得する。
【0059】
ステップ1403では、停止した現用系のサーバ装置111を予備系のサーバ装置111(図4のサーバ装置#3)に切り替えるため、I/Oスイッチ装置112の切り替えをI/Oスイッチ切り替え部105が実行する。すなわち、I/Oスイッチ切り替え部105は、サーバ障害回復部104が取得した各I/Oスイッチ装置112の上流ポート113と下流ポート114の接続関係から、障害により停止した現用系のサーバ装置111のI/Oデバイス115を、予備系のサーバ装置111に切り替えるよう指令する。この指令は、対象となるI/Oデバイス115の下流ポート114を、予備系のサーバ装置111が接続された上流ポート113に切り替える指令であり、I/Oスイッチ切り替え部105が各I/Oスイッチ装置112に指令する。なお、I/Oスイッチ切り替え部105で実行される処理の詳細については図11で後述する。
【0060】
ステップ1404では、I/Oスイッチ切り替え部105がステップ1403で指令したI/Oスイッチ装置112の切り替えの成功、失敗を判定する。この判定は、I/Oスイッチ切り替え部105の指令に対するI/Oスイッチ装置112の応答などに基づいて上流ポート113と下流ポート114の接続の切り替えが成功したか否かを判定することができる。
【0061】
ステップ1405では、I/Oスイッチ切り替え部105により障害の発生した現用系のサーバ装置111のI/Oデバイス115が予備系のサーバ装置111に接続された後、サーバ障害回復部104が、予備系のサーバ装置111を起動する。このとき、予備系のサーバ装置111に接続されるI/Oデバイス115が管理ネットワークに接続されるNIC(図4のI/Oデバイス#1)の場合、対象のNICにVLAN(Virtual LAN)を予め設定することで、NICを管理ネットワークから隔離しておいてもよい。これは、管理ネットワークに接続されたサーバ装置405の管理ソフトウェア4050がNICのMACアドレスでサーバ装置111の管理を行うため、I/Oデバイス115が管理ネットワークに接続されたNICで予備系のサーバ装置111をそのまま起動すると、管理ソフトウェア4050は、障害が発生したサーバ装置111が再起動したと誤認するのを防ぐため、このNICをVLANにより管理ネットワークから隔離しておく。
【0062】
ステップ1046では、予備系のサーバ装置111に接続されるI/Oデバイス115の指定デバイス識別子の取得、および選択をデバイス識別子取得選択部106が実行する。デバイス識別子取得選択部106は、図12で後述するように、管理ネットワークに接続されたI/Oデバイス115のうち、仮想デバイス識別子を付与するI/Oデバイス115を選択する。図4の例では、管理ネットワークに接続されたI/Oデバイス#1が仮想デバイス識別子の付与対象として選択される。
【0063】
ステップ1047では、予備系のサーバ装置111に接続されるI/Oデバイス115の指定デバイス識別子の書き換えをデバイス識別子書き換え部107が実行する。
【0064】
デバイス識別子書き換え部107は、図13で後述するように、上記ステップ1406で選択されたI/Oデバイス115(I/Oデバイス#1のNIC)のデバイス識別子(図8のMAC1)を、仮想識別子テーブル123の仮想デバイス識別子(図8のMAC11)で書き換えるように予備系のサーバ装置111に指令する。
【0065】
上記処理により、障害が発生した現用系のサーバ装置111のI/Oデバイス115を引き継いだ予備系のサーバ装置111は、I/Oデバイス115のうち管理ネットワークに接続されるNIC(I/Oデバイス#1)について、管理サーバ101から仮想デバイス識別子(MAC11)を受信し、NICのデバイス識別子(MAC1)を仮想デバイス識別子(MAC11)に書き換える。
【0066】
これにより、管理ネットワークに接続されたサーバ装置405の管理ソフトウェア4050は、新たな仮想デバイス識別子をデバイス識別子として認識し、停止したサーバ装置111を予備系のサーバ装置111が引き継いだことを認識することが可能となる。
【0067】
したがって、現用系サーバ装置111と予備系サーバ装置111をPCI-ExpressのI/Oスイッチ装置112にそれぞれ接続してI/Oデバイス115を共用する状態で、現用系サーバ装置111から予備系サーバ装置111への切り替えが行われた場合でも、管理ネットワークのサーバ装置405の管理ソフトウェア4050は各サーバ装置111の物理位置を把握することができる。
【0068】
一方、I/Oデバイス115のうち業務ネットワークに接続されるNICのデバイス識別子は、障害発生前と同一であるので、他の計算機などは障害発生前と同様に予備系のサーバ装置111にアクセスすることができる。
【0069】
なお、管理ネットワークに接続されているI/Oデバイス115をVLANにより隔離した場合には、デバイス識別子を仮想デバイス識別子に書き換えた後に、VLANの設定を変更して管理ネットワークに接続させればよい。
【0070】
図11は、I/Oスイッチ切り替え部105で行われる処理の一例を示すフローチャートである。この処理は、上記図10のステップ1403で行われる処理の詳細である。
【0071】
ステップ1501では、I/Oスイッチ切り替え部105が、サーバ管理テーブル108、およびサーバI/O構成情報テーブル109から、障害が発生したサーバ装置111に接続されるI/Oスイッチ装置112のI/O識別子を取得する。
【0072】
ステップ1502では、I/Oスイッチ切り替え部105が、サーバ管理テーブル108、およびサーバI/O構成情報テーブル109から、予備系のサーバ装置111に接続されているI/Oスイッチ装置112のI/O識別子を取得する。ステップ1503では、現用系のサーバ装置111に接続されるI/Oスイッチ装置112のI/Oスイッチ識別子の全てが、予備系のサーバ装置111に接続されるI/Oスイッチ装置112のI/Oスイッチ識別子に含まれるか比較し、I/Oスイッチ装置112の切り替え可能か判別する。この比較は、スイッチ切り替えの判定条件となるため、非常に重要である。I/Oスイッチ装置112の切り替えが不能な場合のステップ1504では、ユーザ(または管理サーバ101の管理者)にエラーを通知する。
【0073】
一方、I/Oスイッチ装置112の切り替えが可能な場合のステップ1505では、現用系のサーバ装置111に接続されるI/Oスイッチ装置112のポート番号を、予備系のサーバ装置111に接続されるI/Oスイッチ装置112のポート番号に書き換える命令を全てのI/Oスイッチ装置112に送信する。
【0074】
図12は、デバイス識別子取得選択部106で行われる処理の一例を示すフローチャートである。この処理は、上記図10のステップ1406で行われる処理の詳細である。
【0075】
ステップ1601では、デバイス識別子取得選択部106はデバイス識別子取得プログラム121により全てのサーバ装置111に接続されているI/Oデバイス115のデバイス識別子を全て取得する。
【0076】
ステップ1602では、デバイス識別子取得選択部106は上記ステップ1601で取得したデバイス識別子をサーバI/O構成情報テーブル109に格納する。ステップ1603では、サーバ管理テーブル108、およびサーバI/O構成情報テーブル109から、障害が発生した現用系のサーバ装置111に接続されるI/Oスイッチ装置112の指定デバイス識別子を取得する。
【0077】
ステップ1604では、デバイス識別子取得選択部106はステップ1602で取得した指定デバイス識別子を検索キーとして、仮想識別子テーブル123を検索し、一致するデバイス識別子が存在するか判定する。この検索は、書き換え対象のデバイス識別子の有無を判定するため、非常に重要な意味を持つ。ステップ1605では、ステップ1604で一致したデバイス識別子に対応する仮想デバイス識別子1232を書き換え対象として選択する。
【0078】
図13は、デバイス識別子書き換え部107で行われる処理の一例を示すフローチャートである。この処理は、上記図10のステップ1407で行われる処理の詳細である。
【0079】
ステップ1701では、デバイス識別子書き換え部107が、デバイス識別子取得選択部106で書き換え対象のデバイス識別子が選択されているか否かを判別する。デバイス識別子取得選択部106で書き換え対象のデバイス識別子が選択されている場合は、ステップ1702で、デバイス識別子取得選択部106が書き換え対象のデバイス識別子を仮想デバイス識別子に書き換える。このとき、デバイス識別子取得選択部106で書き換え対象のデバイス識別子のみを書き換え、他のデバイス識別子は全て書き換えないところが重要である。つまり、管理ネットワークに接続されているI/Oデバイス115のデバイス識別子のみを仮想デバイス識別子に書き換えることで、起動した予備系のサーバ装置111をサーバ装置405の管理ソフトウェア4050に認識させる。一方、その他のI/Oデバイス115については、現用系のサーバ装置111で用いていたデバイス識別子をそのまま使用することで、予備系のサーバ装置111は切り替え以前と同一の環境でサービスの提供やストレージ装置116へのアクセスを行うことができる。
【0080】
なお、上記では、障害が発生したときに予備系のサーバ装置111へ切り替える例を示したが、現用系のサーバ装置111の保守などで管理サーバ101が予備系のサーバ装置111への切り換えを指示した場合にも、上述したように管理ソフトウェア4050からアクセスされるI/Oデバイス115のデバイス識別子を、管理サーバ101で予め設定された仮想デバイス識別子に書き換えるようにしても良い。この場合、サーバ障害回復部104は、サーバ切り替え部として機能し、管理サーバ101の図示しないコンソールなどからの指令によって、現用系のサーバ装置111から予備系のサーバ装置111を指定して切り替えを実行する。
【0081】
また、I/Oデバイス115のデバイス識別子を仮想デバイス識別子に書き換える処理については、上述したように管理サーバ101が予備系のサーバ装置111へ指令する他、管理サーバ101がSVP120にデバイス識別子と仮想デバイス識別子を指示し、SVP120がBMC304を経由して対象のI/Oデバイス115のデバイス識別子を仮想デバイス識別子に書き換えるようにしても良い。
【0082】
また、上記では管理サーバ101と、MACアドレスでサーバ装置111の物理位置を管理する管理ソフトウェア4050を実行するサーバ装置405を異なる計算機で構成した例を示したが、管理サーバ101で管理ソフトウェア4050を実行しても良い。この場合、管理サーバ101に複数のネットワークインターフェースを設けて、ネットワークスイッチ110と管理LANスイッチ401にそれぞれ接続すればよい。
【0083】
また、上記ではサーバ装置111とI/Oスイッチ装置112とポートの関係を保持するサーバ管理テーブル108と、I/Oスイッチ装置112のポートとI/Oデバイスの情報(種類及びデバイス識別子)とサーバ装置111の関係を保持するサーバI/O構成情報テーブル109と、デバイス識別子と仮想デバイス識別子を保持する仮想識別子テーブル123を分離した例を示したが、I/Oスイッチ装置112のポート毎に接続されたサーバ装置111とI/Oデバイスの情報と仮想識別子の関係を保持する構成管理情報であればよい。
【産業上の利用可能性】
【0084】
以上のように、本発明はPCI-Express Switchを備えて複数の計算機でI/Oデバイスを共用する計算機システムに適用することができる。
【符号の説明】
【0085】
101 管理サーバ
102 I/O構成管理部
103 デバイス識別子検出部
104 サーバ障害回復部
105 I/Oスイッチ切り替え部
106 デバイス識別子取得選択部
107 デバイス識別子書き換え部
108 サーバ管理テーブル
109 サーバI/O構成情報テーブル
110 ネットワークスイッチ
111 サーバ装置
112 I/Oスイッチ装置
113 上流ポート
114 下流ポート
115 I/Oデバイス
116 ストレージ装置
120 SVP
304 BMC

【特許請求の範囲】
【請求項1】
プロセッサとメモリとI/Oインターフェースとを有する複数の計算機と、
前記複数の計算機を前記I/Oインターフェース経由で接続する1以上のI/Oスイッチと、
前記I/Oスイッチに接続する複数のI/Oデバイスと、
前記I/Oスイッチを介して前記計算機に接続するI/Oデバイスを管理する構成管理情報を有し、前記計算機に対する前記I/Oデバイスの割り当てを制御する管理サーバと、を備えた計算機システムにおいて、
前記管理サーバは、
前記第1の計算機から前記複数の計算機のうちの第2の計算機への切り換えを受け付けて、前記第1の計算機に割り当てられた前記I/Oデバイスを前記第2の計算機へ割り当てる構成管理部を有し、
前記構成管理部は、
前記複数の計算機のうちの第1の計算機と、前記第1の計算機に割り当てられたI/Oデバイスの識別子を取得して、前記構成管理情報に格納する識別子検出部と、
前記第1の計算機に割り当てられた前記I/Oデバイスを前記第2の計算機へ切り替える指令を前記I/Oスイッチに送信するI/Oスイッチ切り替え部と、
前記構成管理情報のうち特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換えるデバイス識別子書き換え部と、を備え、
前記第1の計算機を停止させた後に、前記I/Oスイッチ切り替え部が前記第1の計算機に割り当てられた前記I/Oデバイスを前記第2の計算機へ切り替える指令を前記I/Oスイッチに送信し、
前記第2の計算機を起動した後に、前記デバイス識別子書き換え部が前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換えることを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記構成管理情報は、
前記I/Oスイッチの前記計算機とI/Oデバイスの接続関係を保持し、前記I/Oデバイスの情報として前記識別子と、前記特定のI/Oデバイスを示す情報を有し、
前記識別子検出部は、
前記第1の計算機に割り当てられたI/Oデバイスの識別子を取得し、当該I/Oデバイスが特定のI/Oデバイスであるときに前記特定のI/Oデバイスを示す情報を設定することを特徴とする計算機システム。
【請求項3】
請求項1に記載の計算機システムであって、
前記構成管理部は、
前記第1の計算機を監視して障害の発生を検知する障害検知部を有し、前記障害検知部が前記第1の計算機の障害の発生を検知したときには前記第1の計算機を停止して前記第2の計算機へ前記I/Oデバイス引き継ぐことを特徴とする計算機システム。
【請求項4】
請求項1に記載の計算機システムであって、
前記複数の計算機にそれぞれ接続されて前記計算機の稼働状態を管理する第3の計算機をさらに有し、
前記デバイス識別子書き換え部は、
前記第3の計算機に対して、前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を前記仮想識別子に書き換える指令を送信することを特徴とする計算機システム。
【請求項5】
請求項1に記載の計算機システムであって、
前記複数の計算機を管理する第4の計算機を接続した第1のネットワークと、前記複数の計算機のサービスを提供する第2のネットワークと、をさらに有し、
前記I/Oデバイスは、前記第1のネットワークに接続された第1のI/Oデバイスと、前記第2のネットワークに接続された第2のI/Oデバイスとを含み、
前記デバイス識別子書き換え部は、
前記I/Oデバイスのうち前記第1のネットワークに接続された第1のI/Oデバイスを前記特定のI/Oデバイスとし、当該第1のI/Oデバイスの識別子を前記仮想識別子に書き換えることを特徴とする計算機システム。
【請求項6】
請求項1に記載の計算機システムであって、
前記デバイス識別子書き換え部は、
前記複数のI/Oデバイスの識別子に対応する仮想識別子を予めそれぞれ設定したことを特徴とする計算機システム。
【請求項7】
プロセッサとメモリとI/Oインターフェースとを有する複数の計算機を前記I/Oインターフェース経由で接続する1以上のI/Oスイッチに複数のI/Oデバイスを接続し、前記I/Oスイッチを介して前記計算機に接続するI/Oデバイスを管理する構成管理情報を有する管理サーバが、前記計算機に対する前記I/Oデバイスの割り当てを制御する計算機システムの制御方法であって、
前記管理サーバが、前記複数の計算機のうちの第1の計算機と、前記第1の計算機に割り当てられたI/Oデバイスの識別子を取得して、前記構成管理情報に格納するステップと、
前記管理サーバが、前記第1の計算機から前記複数の計算機のうちの第2の計算機への切り換えを受け付けるステップと、
前記管理サーバが、前記第1の計算機を停止させるステップと、
前記管理サーバが、前記第1の計算機に割り当てられた前記I/Oデバイスを前記第2の計算機へ割り当てる指令を前記I/Oスイッチに送信するステップと、
前記管理サーバが、前記第2の計算機を起動させるステップと、
前記管理サーバが、前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換えるステップと、
を含むことを特徴とする計算機システムの制御方法。
【請求項8】
請求項7に記載の計算機システムの制御方法であって、
前記構成管理情報は、
前記I/Oスイッチの前記計算機とI/Oデバイスの接続関係を保持し、前記I/Oデバイスの情報として前記識別子と、前記特定のI/Oデバイスを示す情報を有し、
前記管理サーバが、前記第1の計算機に割り当てられたI/Oデバイスの識別子を取得して、前記構成管理情報に格納するステップは、
前記第1の計算機に割り当てられたI/Oデバイスの識別子を取得し、当該I/Oデバイスが特定のI/Oデバイスであるときに前記特定のI/Oデバイスを示す情報を設定することを特徴とする計算機システムの制御方法。
【請求項9】
請求項7に記載の計算機システムの制御方法であって、
前記管理サーバが、前記第1の計算機から前記複数の計算機のうちの第2の計算機への切り換えを受け付けるステップは、
前記管理サーバが、前記第1の計算機を監視して障害の発生を検知したときに、前記第1の計算機から前記第2の計算機への切り換えを受け付けることを特徴とする計算機システムの制御方法。
【請求項10】
請求項7に記載の計算機システムの制御方法であって、
前記複数の計算機にそれぞれ接続されて前記計算機の稼働状態を管理する第3の計算機をさらに有し、
前記管理サーバが、前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換えるステップは、
前記第3の計算機に対して、前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を前記仮想識別子に書き換える指令を送信することを特徴とする計算機システムの制御方法。
【請求項11】
請求項7に記載の計算機システムの制御方法であって、
前記複数の計算機を管理する第4の計算機を接続した第1のネットワークと、前記複数の計算機のサービスを提供する第2のネットワークと、をさらに有し、
前記I/Oデバイスは、前記第1のネットワークに接続された第1のI/Oデバイスと、前記第2のネットワークに接続された第2のI/Oデバイスとを含み、
前記管理サーバが、前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換えるステップは、
前記I/Oデバイスのうち前記第1のネットワークに接続された第1のI/Oデバイスを前記特定のI/Oデバイスとし、当該第1のI/Oデバイスの識別子を前記仮想識別子に書き換えることを特徴とする計算機システムの制御方法。
【請求項12】
請求項7に記載の計算機システムの制御方法であって、
前記管理サーバが、前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換えるステップは、
前記複数のI/Oデバイスの識別子に対応する仮想識別子を予めそれぞれ設定したことを特徴とする計算機システムの制御方法。
【請求項13】
プロセッサとメモリとI/Oインターフェースとを有する複数の計算機を前記I/Oインターフェース経由で接続する1以上のI/Oスイッチに複数のI/Oデバイスを接続し、前記I/Oスイッチを介して前記計算機に接続するI/Oデバイスを管理する構成管理情報を有する管理サーバが、前記計算機に対する前記I/Oデバイスの割り当てを制御するプログラムであって、
前記複数の計算機のうちの第1の計算機と、前記第1の計算機に割り当てられたI/Oデバイスの識別子を取得して、前記構成管理情報に格納する手順と、
前記第1の計算機から前記複数の計算機のうちの第2の計算機への切り換えを受け付ける手順と、
前記第1の計算機を停止させる手順と、
前記第1の計算機に割り当てられた前記I/Oデバイスを前記第2の計算機へ割り当てる指令を前記I/Oスイッチに送信する手順と、
前記第2の計算機を起動させる手順と、
前記第2の計算機へ切り替えられたI/Oデバイスのうち、特定のI/Oデバイスの識別子を予め設定した仮想識別子に書き換える手順と、
を前記管理サーバに実行させることを特徴とするプログラム。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate