(57)【要約】【課題】現用サーバと予備サーバのＩ／Ｏ構成が異なっていてもサーバのフェイルオーバが可能であり、且つ、システム構成の柔軟性を高める。【解決手段】計算機システム群を構成する各計算機システムに、複数のサーバと、複数のＩ／Ｏデバイスと、複数のサーバと複数のＩ／Ｏデバイスに接続される一以上のＩ／Ｏスイッチとを備え、各計算機システムでは、サーバとＩ／Ｏデバイスの組み合わせを変更可能とする。そして、いずれかの現用サーバで障害が発生した場合、まず、障害発生サーバを有する計算機システム内に、引継ぎ可能な予備サーバが存在するか否かを判断する。その判断の判断結果が否定的の場合に、障害発生サーバとそれに割り当てられているＩ／Ｏデバイスとの組み合わせに相当する特定の組み合わせを構築可能な別の計算機システムを検索して、サーバ切り替え処理を実行する。【選択図】図１
2010134757.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機システムと、
フェイルオーバ制御部と
を備え、
各計算機システムが、
複数のサーバと、
複数のＩ／Ｏデバイスと、
前記複数のサーバと前記複数のＩ／Ｏデバイスに接続される一以上のＩ／Ｏスイッチと
を備え、
サーバは、Ｉ／Ｏスイッチを介して、そのサーバに割当てられている一以上のＩ／ＯデバイスのうちのいずれかのＩ／Ｏデバイスを介して外部装置にアクセス可能であり、且つ、各計算機システムでは、サーバとＩ／Ｏデバイスの組み合わせの変更が可能であり、
前記フェイルオーバ制御部は、
（１−１）障害を発生した現用サーバである障害発生サーバを有する計算機システム内に、引継ぎ可能な予備サーバが存在するか否かを判断し、
（１−２）前記（１−１）の判断結果が否定的の場合に、前記障害発生サーバとそれに割り当てられているＩ／Ｏデバイスとの組み合わせに相当する特定の組み合わせを構築可能な別の計算機システムを検索し、
（１−３）サーバ切り替え処理を実行し、このサーバ切り替え処理では、前記別の計算機システムにある引継ぎ可能な予備サーバにそれと同一の計算機システムにある特定のＩ／Ｏデバイスを割り当てることで前記特定の組み合せを前記別の計算機システム内に構築するための組合せ構築処理と、前記障害発生サーバに割り当てられていたＩ／Ｏデバイスの識別子と前記特定のＩ／Ｏデバイスに割り当てられている識別子とを交換するための識別子交換処理と、前記引継ぎ可能な予備サーバを起動する起動処理とを行う、
計算機システム群。
【請求項２】
一つのサーバに割り当てられる複数のＩ／Ｏデバイスは、少なくとも一つのブートデバイスと、少なくとも一つの非ブートデバイスで構成されており、
ブートデバイスとは、外部装置の一つであるストレージ装置に接続され、前記ストレージ装置内のシステム領域にアクセスすることに使用されるＩ／Ｏデバイスであり、前記システム領域は、サーバの起動に必要な情報が格納されている記憶領域であり、
非ブートデバイスとは、ブートデバイス以外のＩ／Ｏデバイスであり、
現用サーバに関する情報と現用サーバに割り当てられているＩ／Ｏデバイスに関する情報とを含んだ使用管理情報と、
予備サーバに関する情報を含んだ未使用サーバ管理情報と、
いずれのサーバに割り当てられていないＩ／Ｏデバイスである未使用のＩ／Ｏデバイスに関する情報を含んだ未使用Ｉ／Ｏデバイス管理情報と
を記憶する記憶資源が備えられており、
前記使用管理情報には、各現用サーバについて、どこに備えられているかを表すサーバ位置情報と、サーバの属性情報と、サーバに割り当てられているＩ／Ｏデバイスの数を表すＩ／Ｏ数とが含まれており、サーバに割り当てられている各Ｉ／Ｏデバイスについて、どこに備えられているかを表すＩ／Ｏ位置情報と、Ｉ／Ｏデバイスの属性情報であるＩ／Ｏ属性情報と、ブートデバイスか否かを表すブート情報と、Ｉ／Ｏデバイスの識別子であるＩ／Ｏ識別子とが含まれており、
前記未使用サーバ管理情報には、各予備サーバについて、どこに備えられているかを表すサーバ位置情報と、サーバの属性情報が含まれており、
前記未使用Ｉ／Ｏデバイス管理情報には、各Ｉ／Ｏデバイスについて、どこに備えられているかを表すＩ／Ｏ位置情報と、Ｉ／Ｏ属性情報と、ブート情報と、Ｉ／Ｏ識別子とが含まれており、
前記（１−２）では、前記フェイルオーバ制御部が、
（１−２−１）前記使用管理情報及び前記未使用Ｉ／Ｏデバイス情報を基に、前記障害発生サーバに割り当てられているブートデバイスに対応したＩ／Ｏ位置情報と同じＩ／Ｏ位置情報に対応しており、且つ、前記障害発生サーバに割り当てられているブートデバイスに対応したＩ／Ｏ属性情報に適合するＩ／Ｏ属性情報に対応している特定のブートデバイスが存在する別の計算機システムを検索し、
（１−２−２）前記使用管理情報及び前記未使用サーバ管理情報を基に、前記（１−２−１）で検索された別の計算機システムに、引継ぎ可能な予備サーバが存在するか否かを判定し、
（１−２−３）前記未使用Ｉ／Ｏデバイス管理情報を参照して、前記（１−２−１）で検索された別の計算機システムに、前記障害発生サーバに割り当てられている各非ブートデバイスに対応したＩ／Ｏ属性情報に適合するＩ／Ｏ属性情報に対応した各特定の非ブートデバイスが存在するか否かを判断し、
前記（１−２−２）及び前記（１−２−３）の両方の判断の結果が肯定的の場合に、前記（１−３）が行われ、
前記（１−３）では、前記特定のＩ／Ｏデバイスとは、前記特定のブートデバイス及び非ブートデバイスであり、
前記引継ぎ可能な予備サーバとは、前記障害発生サーバに対応した属性情報に適合する属性情報に対応した予備サーバである、
請求項１記載の計算機システム群。
【請求項３】
各計算機システムは、
その計算機システム内の各サーバに関する情報を管理するサービス管理装置と、
その計算機システム内の各Ｉ／Ｏスイッチに接続されており、各Ｉ／Ｏデバイスに関する情報を管理するスイッチ管理装置と
を備え、
前記ファイルオーバ制御部は、
（３−１）各計算機システム内の各サーバに関する情報を、各計算機システム内のサービス管理装置から収集し、
（３−２）各計算機システム内の各Ｉ／Ｏデバイスに関する情報を、各計算機システム内のスイッチ管理装置から収集し、
（３−３）前記（３−１）及び（３−２）で収集された情報を基に、前記使用管理情報、前記未使用サーバ管理情報及び前記未使用Ｉ／Ｏデバイス管理情報を構築する、
請求項２記載の計算機システム群。
【請求項４】
前記（１−２）では、前記特定のＩ／Ｏデバイスの一つとして特定のブートデバイスを有する別の計算機システムが検索され、
ブートデバイスとは、外部装置の一つであるストレージ装置に接続され、前記ストレージ装置内のシステム領域にアクセスすることに使用されるＩ／Ｏデバイスであり、
前記システム領域は、サーバの起動に必要な情報が格納されている記憶領域である、
請求項１記載の計算機システム群。
【請求項５】
特定のブートデバイスは、前記障害発生サーバに割り当てられているブートデバイスに対応した位置にあり、且つ、そのブートデバイスの属性に適合する属性を有するブートデバイスである、
請求項４記載の計算機システム群。
【請求項６】
前記特定のＩ／Ｏデバイスとしては、ブートデバイス以外のＩ／Ｏデバイスである非ブートデバイスがあり、
特定の非ブートデバイスは、前記障害発生サーバに割り当てられているブートデバイスの属性に適合する属性を有する非ブートデバイスである、
請求項１、４又は５記載の計算機システム群。
【請求項７】
前記フェイルオーバ制御部は、前記（１−１）及び（１−２）で、各サーバ及び各Ｉ／Ｏデバイスに関する情報である構成管理情報を参照する、
請求項１、４乃至６のいずれかに記載の計算機システム群。
【請求項８】
前記構成管理情報では、現用サーバに関する情報と現用サーバに割り当てられているＩ／Ｏデバイスに関する情報とが同一の情報で管理され、予備サーバと未使用のＩ／Ｏデバイスは別々の情報で管理されている、
請求項７記載の計算機システム群。
【請求項９】
各計算機システムは、その計算機システム内の各Ｉ／Ｏスイッチに接続されているスイッチ管理装置を備え、
前記フェイルオーバ制御部は、前記複数の計算機システムを管理するサーバ管理装置に備えられ、
前記フェイルオーバ制御部は、前記組合せ構築処理では、前記引継ぎ可能な予備サーバ及びＩ／Ｏデバイスを有する前記別の計算機システム内のスイッチ管理装置に、前記引継ぎ可能な予備サーバに前記特定のＩ／Ｏデバイスを割り当てることを指示し、その指示を受けたスイッチ管理装置が、その別の計算機システム内の、前記引継ぎ可能な予備サーバが接続されているＩ／Ｏスイッチと、前記特定のＩ／Ｏデバイスが接続されているＩ／Ｏスイッチの設定を変更することにより、前記引継ぎ可能な予備サーバに前記特定のＩ／Ｏデバイスを割り当てる、
請求項１乃至８のいずれかに記載の計算機システム群。
【請求項１０】
各計算機システムは、その計算機システム内の各Ｉ／Ｏスイッチに接続されているスイッチ管理装置を備え、
前記フェイルオーバ制御部は、各計算機システムのスイッチ管理装置に備えられ、
優先順位の最も高いフェイルオーバ制御部が、マスターとなり、他のフェイルオーバ制御部をスレイブとして機能する、
請求項１乃至８のいずれかに記載の計算機システム群。
【請求項１１】
複数の計算機システムを含んだ計算機システム群内でのサーバのフェイルオーバを制御する制御装置であって、
各計算機システムが、
複数のサーバと、
複数のＩ／Ｏデバイスと、
前記複数のサーバと前記複数のＩ／Ｏデバイスに接続される一以上のＩ／Ｏスイッチと
を備え、
サーバは、Ｉ／Ｏスイッチを介して、そのサーバに割当てられている一以上のＩ／ＯデバイスのうちのいずれかのＩ／Ｏデバイスを介して外部装置にアクセス可能であり、且つ、各計算機システムでは、サーバとＩ／Ｏデバイスの組み合わせの変更が可能であり、
前記制御装置は、
障害を発生した現用サーバである障害発生サーバを有する計算機システム内に、引継ぎ可能な予備サーバが存在するか否かを判断する判断部と、
前記判断部の判断結果が否定的の場合に、前記障害発生サーバとそれに割り当てられているＩ／Ｏデバイスとの組み合わせに相当する特定の組み合わせを設定可能な別の計算機システムを検索する検索部と、
サーバ切り替え処理を実行するサーバ切替え部と
を有し、前記サーバ切替え部は、前記サーバ切り替え処理では、前記別の計算機システムにある引継ぎ可能な予備サーバにそれと同一の計算機システムにある特定のＩ／Ｏデバイスを割り当てることで前記特定の組み合せを前記別の計算機システム内に構成するための組合せ構築処理と、前記障害発生サーバに割り当てられていたＩ／Ｏデバイスの識別子と前記特定のＩ／Ｏデバイスに割り当てられている識別子とを交換するための識別子交換処理と、前記引継ぎ可能な予備サーバを起動する起動処理とを行う、
制御装置。
【請求項１２】
複数の計算機システムを含んだ計算機システム群内でのサーバのフェイルオーバを制御する方法であって、
各計算機システムが、
複数のサーバと、
複数のＩ／Ｏデバイスと、
前記複数のサーバと前記複数のＩ／Ｏデバイスに接続される一以上のＩ／Ｏスイッチと
を備え、
サーバは、Ｉ／Ｏスイッチを介して、そのサーバに割当てられている一以上のＩ／ＯデバイスのうちのいずれかのＩ／Ｏデバイスを介して外部装置にアクセス可能であり、且つ、各計算機システムでは、サーバとＩ／Ｏデバイスの組み合わせの変更が可能であり、
前記方法は、
（１１−１）障害を発生した現用サーバである障害発生サーバを有する計算機システム内に、引継ぎ可能な予備サーバが存在するか否かを判断し、
（１１−２）前記（１−１）の判断結果が否定的の場合に、前記障害発生サーバとそれに割り当てられているＩ／Ｏデバイスとの組み合わせに相当する特定の組み合わせを構築可能な別の計算機システムを検索し、
（１１−３）サーバ切り替え処理を実行し、このサーバ切り替え処理では、前記別の計算機システムにある引継ぎ可能な予備サーバにそれと同一の計算機システムにある特定のＩ／Ｏデバイスを割り当てることで前記特定の組み合せを前記別の計算機システム内に構築するための組合せ構築処理と、前記障害発生サーバに割り当てられていたＩ／Ｏデバイスの識別子と前記特定のＩ／Ｏデバイスに割り当てられている識別子とを交換するための識別子交換処理と、前記引継ぎ可能な予備サーバを起動する起動処理とを行う、
フェイルオーバ制御方法。
【請求項１３】
一つのサーバに割り当てられる複数のＩ／Ｏデバイスは、少なくとも一つのブートデバイスと、少なくとも一つの非ブートデバイスで構成されており、
ブートデバイスとは、外部装置の一つであるストレージ装置に接続され、前記ストレージ装置内のシステム領域にアクセスすることに使用されるＩ／Ｏデバイスであり、前記システム領域は、サーバの起動に必要な情報が格納されている記憶領域であり、
非ブートデバイスとは、ブートデバイス以外のＩ／Ｏデバイスであり、
現用サーバに関する情報と現用サーバに割り当てられているＩ／Ｏデバイスに関する情報とを含んだ使用管理情報と、
予備サーバに関する情報を含んだ未使用サーバ管理情報と、
いずれのサーバに割り当てられていないＩ／Ｏデバイスである未使用のＩ／Ｏデバイスに関する情報を含んだ未使用Ｉ／Ｏデバイス管理情報と
を記憶する記憶資源が備えられており、
前記使用管理情報には、各現用サーバについて、どこに備えられているかを表すサーバ位置情報と、サーバの属性情報と、サーバに割り当てられているＩ／Ｏデバイスの数を表すＩ／Ｏ数とが含まれており、サーバに割り当てられている各Ｉ／Ｏデバイスについて、どこに備えられているかを表すＩ／Ｏ位置情報と、Ｉ／Ｏデバイスの属性情報であるＩ／Ｏ属性情報と、ブートデバイスか否かを表すブート情報と、Ｉ／Ｏデバイスの識別子であるＩ／Ｏ識別子とが含まれており、
前記未使用サーバ管理情報には、各予備サーバについて、どこに備えられているかを表すサーバ位置情報と、サーバの属性情報が含まれており、
前記未使用Ｉ／Ｏデバイス管理情報には、各Ｉ／Ｏデバイスについて、どこに備えられているかを表すＩ／Ｏ位置情報と、Ｉ／Ｏ属性情報と、ブート情報と、Ｉ／Ｏ識別子とが含まれており、
前記（１１−２）では、
（１１−２−１）前記使用管理情報及び前記未使用Ｉ／Ｏデバイス情報を基に、前記障害発生サーバに割り当てられているブートデバイスに対応したＩ／Ｏ位置情報と同じＩ／Ｏ位置情報に対応しており、且つ、前記障害発生サーバに割り当てられているブートデバイスに対応したＩ／Ｏ属性情報に適合するＩ／Ｏ属性情報に対応している特定のブートデバイスが存在する別の計算機システムを検索し、
（１１−２−２）前記使用管理情報及び前記未使用サーバ管理情報を基に、前記（１１−２−１）で検索された別の計算機システムに、引継ぎ可能な予備サーバが存在するか否かを判定し、
（１１−２−３）前記未使用Ｉ／Ｏデバイス管理情報を参照して、前記（１１−２−１）で検索された別の計算機システムに、前記障害発生サーバに割り当てられている各非ブートデバイスに対応したＩ／Ｏ属性情報に適合するＩ／Ｏ属性情報に対応した各特定の非ブートデバイスが存在するか否かを判断し、
前記（１１−２−２）及び前記（１１−２−３）の両方の判断の結果が肯定的の場合に、前記（１１−３）が行われ、
前記（１１−３）では、前記特定のＩ／Ｏデバイスとは、前記特定のブートデバイス及び非ブートデバイスであり、
前記引継ぎ可能な予備サーバとは、前記障害発生サーバに対応した属性情報に適合する属性情報に対応した予備サーバである、
請求項１２記載のフェイルオーバ制御方法。
【請求項１４】
各計算機システムは、
その計算機システム内の各サーバに関する情報を管理するサービス管理装置と、
その計算機システム内の各Ｉ／Ｏスイッチに接続されており、各Ｉ／Ｏデバイスに関する情報を管理するスイッチ管理装置と
を備え、
前記方法は、
（１３−１）各計算機システム内の各サーバに関する情報を、各計算機システム内のサービス管理装置から収集し、
（１３−２）各計算機システム内の各Ｉ／Ｏデバイスに関する情報を、各計算機システム内のスイッチ管理装置から収集し、
（１３−３）前記（１３−１）及び（１３−２）で収集された情報を基に、前記使用管理情報、前記未使用サーバ管理情報及び前記未使用Ｉ／Ｏデバイス管理情報を構築する、
請求項１３記載のフェイルオーバ制御方法。
【請求項１５】
前記（１１−２）では、前記特定のＩ／Ｏデバイスの一つとして特定のブートデバイスを有する別の計算機システムが検索され、
ブートデバイスとは、外部装置の一つであるストレージ装置に接続され、前記ストレージ装置内のシステム領域にアクセスすることに使用されるＩ／Ｏデバイスであり、
前記システム領域は、サーバの起動に必要な情報が格納されている記憶領域である、
請求項１２記載のフェイルオーバ制御方法。
【請求項１６】
特定のブートデバイスは、前記障害発生サーバに割り当てられているブートデバイスに対応した位置にあり、且つ、そのブートデバイスの属性に適合する属性を有するブートデバイスである、
請求項１５記載のフェイルオーバ制御方法。
【請求項１７】
前記特定のＩ／Ｏデバイスとしては、ブートデバイス以外のＩ／Ｏデバイスである非ブートデバイスがあり、
特定の非ブートデバイスは、前記障害発生サーバに割り当てられているブートデバイスの属性に適合する属性を有する非ブートデバイスである、
請求項１２、１５又は１６記載のフェイルオーバ制御方法。
【請求項１８】
前記（１１−１）及び（１１−２）で、各サーバ及び各Ｉ／Ｏデバイスに関する情報である構成管理情報を参照する、
請求項１２、１５乃至１７のいずれかに記載のフェイルオーバ制御方法。
【請求項１９】
前記構成管理情報では、現用サーバに関する情報と現用サーバに割り当てられているＩ／Ｏデバイスに関する情報とが同一の情報で管理され、予備サーバと未使用のＩ／Ｏデバイスは別々の情報で管理されている、
請求項１７記載のフェイルオーバ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバのフェイルオーバに関する。
【背景技術】
【０００２】
サーバのファイルオーバの方式として、例えば次のようなコールドスタンバイ方式が知られている。すなわち、複数のサーバが同一のストレージ装置にアクセス可能に接続されており、複数のサーバのうちの現用サーバ（稼動しているサーバ）に対して予備サーバ（交替用のサーバ）が用意されている。現用サーバに障害が発生して処理が継続できなくなった場合に、予備サーバが、起動されて、ストレージ装置内の特定の記憶領域（例えば、ＯＳ（Operating System）やアプリケーション等が格納された論理ボリュームであるシステムボリューム）から、現用サーバで稼動していたＯＳやアプリケーション等をロードする。これにより、現用サーバから予備サーバへ処理が引き継がれ、予備サーバが現用サーバとして稼動することができる。
【０００３】
複数のサーバからアクセスが可能となるストレージ装置は、特定の記憶領域（例えば論理ボリューム）に対して本来アクセスしないはずのサーバが間違ってアクセスしてしまうのを防ぐためのセキュリティ対策が施されている。ファイバチャネルで接続する場合は、サーバ側に搭載するホストバスアダプタ（ＨＢＡ）に割り当てられているＷｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ（ＷＷＮ）という識別子を用いてアクセス権限の制御が行われる。予備サーバが現用サーバの使用している記憶領域をそのまま使用するためには、フェイルオーバ時にこのアクセス権限も適切に引き継ぐ必要がある。アクセス権限を引き継ぐための技術として、下記の第１及び第２の技術がある。
【０００４】
第１の技術として、サーバに搭載されたＨＢＡのＷＷＮを交換する方法がある。この方法では、フェイルオーバ時に現用サーバに搭載されたＨＢＡと予備サーバに搭載されたＨＢＡの間でＷＷＮが交換される。この方法は、例えば特許文献１に開示されている。
【０００５】
第２の技術として、Ｉ／Ｏ（Input/Output）スイッチを利用する方法がある。Ｉ／Ｏスイッチは、サーバとＩ／Ｏデバイス（例えばＨＢＡ或いはＮＩＣ（Network Interface Card）の間に配置される。現用サーバに障害が発生した場合には、Ｉ／Ｏスイッチの設定が変更されることで、現用サーバが使用していたＩ／Ｏデバイスが予備サーバへ割り当てられる。これにより、現用サーバがＩ／Ｏデバイスを通してアクセスしていた、ストレージ装置内の記憶領域を、予備サーバがそのまま引き継ぐことができる。この方法は、例えば特許文献２に開示されている。
【特許文献１】特開２００７−１６４３０５公報
【特許文献２】特開２００７−２８０２３７公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した第１の技術では、現用サーバと予備サーバのＩ／Ｏ構成が同一でなくてはならないという制約が生じる。Ｉ／Ｏ構成とは、Ｉ／Ｏに関する構成であり、具体的には、例えば、Ｉ／Ｏデバイスの数、Ｉ／Ｏデバイスの種類、及びＩ／Ｏデバイスの順序などで定義される。上記のような制約があるために、異なるＩ／Ｏ構成を持つ複数の現用サーバに対して１つの予備サーバを対応させることができず、故に、異なるＩ／Ｏ構成を持つ現用サーバ毎に少なくとも一つの予備サーバを用意しなくてはならないという課題がある。
【０００７】
上述した第２の技術では、現用サーバが用いていたＩ／Ｏデバイスの割り当てを変更し、そのまま予備サーバへ割り当てることができる。従って、異なるＩ／Ｏ構成を持つ複数の現用サーバに対して１つの予備サーバを対応させることができる。つまり、第１の技術の課題を解消することができる。
【０００８】
しかし、第２の技術では、現用サーバと予備サーバがＩ／Ｏスイッチによって同じＩ／Ｏデバイスに接続できる必要がある。このため、複数の現用サーバに１つの予備サーバが対応できても、その予備サーバは、それら複数の現用サーバが接続されているＩ／Ｏデバイスに接続されている必要がある。
【０００９】
そこで、本発明の目的は、現用サーバと予備サーバのＩ／Ｏ構成が異なっていてもサーバのフェイルオーバが可能であり、且つ、システム構成の柔軟性を高めることにある。
【課題を解決するための手段】
【００１０】
計算機システム群を構成する各計算機システムに、複数のサーバと、複数のＩ／Ｏデバイスと、複数のサーバと複数のＩ／Ｏデバイスに接続される一以上のＩ／Ｏスイッチとを備え、各計算機システムでは、サーバとＩ／Ｏデバイスの組み合わせを変更可能とする。そして、いずれかの現用サーバで障害が発生した場合、まず、障害発生サーバを有する計算機システム内に、引継ぎ可能な予備サーバが存在するか否かを判断する。その判断の判断結果が否定的の場合に、障害発生サーバとそれに割り当てられているＩ／Ｏデバイスとの組み合わせに相当する特定の組み合わせを構築可能な別の計算機システムを検索して、サーバ切り替え処理を実行する。このサーバ切り替え処理では、下記（Ａ）〜（Ｃ）の処理、
（Ａ）検索された別の計算機システムにある引継ぎ可能な予備サーバにそれと同一の計算機システムにある特定のＩ／Ｏデバイスを割り当てることで上記特定の組み合せを上記別の計算機システム内に構築するための組合せ構築処理；
（Ｂ）障害発生サーバに割り当てられていたＩ／Ｏデバイスの識別子と上記特定のＩ／Ｏデバイスに割り当てられている識別子とを交換するための識別子交換処理；
（Ｃ）前記引継ぎ可能な予備サーバを起動する起動処理、
が行われる。
【発明の効果】
【００１１】
第１の技術で課題となっていた制限と、第２の技術で課題となっていた制限の両方を緩和することができる。すなわち、現用サーバと予備サーバのＩ／Ｏ構成が同一でなくてはならないという制限と、現用サーバと予備サーバが同一のＩ／Ｏスイッチを経由して同じＩ／Ｏデバイスに接続できなくてはならないという制限の両方を緩和することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の幾つかの実施例を説明する。
【実施例１】
【００１３】
図２は、本発明の第１の実施例に係る計算機システム群の全体概要を示す。
【００１４】
本実施例に係る計算機システム群は、複数の計算機システムとして、系Ａ及び系Ｂの２つの計算機システム２０１及び２０２を有する（勿論、計算機システムの数は２に限定されない）。以下、計算機システム２０１を代表的に例に採り説明する。
【００１５】
サーバとして、例えばブレードサーバが用いられる。ブレードサーバシャーシ２０３には、１つ以上のサーバ１０９と、サービスプロセッサ（ＳＶＰ）１０７と、PCI Expressスイッチ（ＰＣＩｅスイッチ）１１３Ｃとが搭載されている。
【００１６】
ＳＶＰ１０７は、ブレードサーバシャーシ２０３およびそれに搭載されたサーバ１０９を統括して管理し、それらの電源投入／切断、及び各機器の属性や状態などに関する情報の収集などを行う。
【００１７】
ＰＣＩｅスイッチ１１３Ｃは、一方で、シャーシ２０３内部の専用ネットワークで各サーバ１０９と接続されており、他方で、Ｉ／Ｏドロワ２０５内のＰＣＩｅスイッチ１１３Ｄに接続されている。ＰＣＩｅスイッチ１１３Ｄには、一方で、ＰＣＩｅスイッチ１１３Ｃに接続されており、他方で、Ｉ／Ｏドロワ２０５が有するＰＣＩｅスロット（図示せず）に挿し込まれたＩ／Ｏデバイス２０７が接続される。Ｉ／Ｏデバイス２０７は、計算機システム２０１を、計算機システム２０１の外部機器に接続するためのデバイスである。Ｉ／Ｏデバイス２０７は、ＨＢＡ又はＮＩＣであり、ＨＢＡの場合、ファイバチャネルでストレージ装置（例えばディスクアレイ装置）２０９に接続され、ＮＩＣの場合、外部ネットワーク（例えばＬＡＮ（Local Area Network））２０８に接続される。
【００１８】
一つの計算機システム２０１において、シャーシ２０３内のＰＣＩｅスイッチ１１３Ｃやドロワ２０５内のＰＣＩｅスイッチ１１３Ｄは、ＰＣＩｅスイッチ管理装置１１１に接続されている。このＰＣＩｅスイッチ管理装置１１１が、接続構成などの各種スイッチ設定を制御する。シャーシ２０３とドロワ２０５は、１対１で接続されても良いし、多対１で接続されても良いし、図２に例示するように１対多で接続されても良い。シャーシ２０３内のサーバ１０９に対して、ドロワ２０５内のＩ／Ｏデバイス２０７を割り当てることができる。
【００１９】
計算機システム２０１及び２０２では、Ｉ／Ｏデバイス２０７の割り当てに関しては独立している。従って、計算機システム２０１内のサーバ１０９に対して、計算機システム２０２内のＩ／Ｏデバイス２０７を割り当てることはできず、逆もまた同様である。ＰＣＩｅスイッチ管理装置１１１は、その装置１１１が備えられている計算機システム２０１（又は２０２）にあるＰＣＩｅスイッチ１１３Ｃ及び１１３Ｄの制御を行い、他の計算機システム２０２（又は２０１）にあるＰＣＩｅスイッチ１１３Ｃ及び１１３Ｄの制御を行わない。
【００２０】
計算機システム２０１及び２０２に対して、サーバ管理装置１０１が設けられている。サーバ管理装置１０１は、例えば、ＬＡＮ等の通信ネットワークを介して、計算機システム２０１及び２０２内のＰＣＩｅスイッチ管理装置１１１及びＳＶＰ１０７と通信可能に接続される。サーバ管理装置１０１は、複数の計算機システム２０１及び２０２を管理下に置き、システムの管理を統合的に行う。本実施例では、１つのサーバ管理装置１０１の管理下にある複数の計算機システム２０１及び２０２が、計算機システム群と呼ばれる。
【００２１】
図１は、本発明の第一実施例に係る計算機システム群における主要な機能を示す。
【００２２】
ＳＶＰ１０７は、サーバ構成情報取得部１０８を有する。サーバ構成情報取得部１０８は、そのＳＶＰ１０７を有する計算機システム内のサーバに関する情報の収集を行う。ＳＶＰ１０７には、例えば、ユーザ（例えば管理者）が、ＳＶＰ制御コンソール１１０を操作して、種々の情報を入力することができる。
【００２３】
ＰＣＩｅスイッチ管理装置１１１は、Ｉ／Ｏ構成情報取得部１１２を有する。Ｉ／Ｏ構成情報取得部１１２は、Ｉ／Ｏデバイスに関する情報の収集を行う。ＰＣＩｅスイッチ管理装置１１１には、例えば、ユーザ（例えば管理者）が、スイッチ管理装置制御コンソール１１４を操作して、種々の情報を入力することができる。
【００２４】
サーバ管理装置１０１は、フェイルオーバの動作を制御するフェイルオーバ制御部１０２を有する。フェイルオーバ制御部１０２は、サーバ構成管理部１０３と、Ｉ／Ｏ構成管理部１０４と、サーバ選択部１０５と、構成情報テーブル１０６とを有する。構成情報テーブル１０６は、サーバ管理装置１０１が有する記憶資源（例えばメモリ）に格納される。
【００２５】
サーバ構成管理部１０３は、サーバ管理装置１０１が管理対象とする計算機システム群内のサーバ１０９に関する情報をＳＶＰ１０７から収集し、その情報を構成情報テーブル１０６に反映する。
【００２６】
Ｉ／Ｏ構成管理部１０４は，各計算機システムにあるＰＣＩｅスイッチ管理装置１１１と連携し、ＰＣＩｅスイッチ１１３の設定情報を収集したり、設定変更の制御を行ったり、Ｉ／Ｏデバイスについて属性情報の収集などを行ったりする。
【００２７】
サーバ選択部１０５は、フェイルオーバ先となる予備サーバの選択を行う。
【００２８】
本実施例では、サーバ構成情報取得部１０８、Ｉ／Ｏ構成情報取得部１１２、サーバ構成管理部１０３、Ｉ／Ｏ構成管理部１０４及びサーバ選択部１０５は、マイクロプロセッサでコンピュータプログラムが実行されることにより実現される機能であるが、これらの少なくとも一つは、集積回路化するなどしてハードウェアで実現されても良い。
【００２９】
構成情報テーブル１０６は、使用機器情報テーブル、未使用サーバ情報テーブル、未使用Ｉ／Ｏアダプタ情報テーブルを含んだテーブルである。
【００３０】
次に、図３、図４及び図５を用いて、構成情報テーブル１０６の詳細を説明する。
【００３１】
図３は、使用機器情報テーブルの構成を示す。
【００３２】
使用機器情報テーブルは、系ＩＤ３０１を有する。系ＩＤ３０１は、個々の計算機システム（系）に対して割り当てられる識別子である。
【００３３】
また、使用機器情報テーブルは、現在使用中のサーバ（つまり現用サーバ）およびＩ／Ｏデバイスに関する情報を有し、その情報として、例えば、シャーシＩＤ３０２、Ｓｌｏｔ  Ｎｏ．３０３、モデル３０４及びＩ／Ｏ数３０５を有する。
【００３４】
シャーシＩＤ３０２は、シャーシ２０３に割り当てられた識別子である。シャーシＩＤ３０２は、系内で一意に割り当てられる識別子であり、系が異なるシャーシ同士で重複することは可能である。
【００３５】
Ｓｌｏｔ  Ｎｏ．３０３は、シャーシ２０３内のスロット（例えばサーバ１０９が挿し込まれるスロット（以下、サーバスロット）に対して割り当てられる識別番号であり、別シャーシで重複することが可能である。Ｓｌｏｔ  Ｎｏ．３０３は、サーバスロットにサーバ１０９が搭載されているか否かにかかわらず各サーバスロットに割り当てられている。
【００３６】
モデル３０４は、サーバのモデル毎に付与される識別子であり、Ｓｌｏｔ  Ｎｏ．３０３で示されるサーバスロットに搭載されたサーバ１０９の種類を表す。
【００３７】
Ｉ／Ｏ数３０５は、該当のサーバに割り当てられたＩ／Ｏデバイスの数を示す。
【００３８】
また、使用機器情報テーブルは、現在使用中のＩ／Ｏデバイスに関する情報を有し、その情報として、例えば、バスＮｏ．３０６、種別３０７、Ｂｏｏｔ３０８、モデル３０９及び識別子３１０を有する。
【００３９】
バスＮｏ．３０６は、該当のＩ／Ｏデバイスが挿し込まれているＰＣＩｅスロットに割り当てられる番号である。バスＮｏ．３０６は、ＰＣＩｅスロットにＩ／Ｏデバイスが搭載されているか否かにかかわらず各ＰＣＩｅスロットに割り当てられている。
【００４０】
種別３０７は、該当のＩ／Ｏデバイスの種類を表す情報である。種別３０７としては、該当のＩ／ＯデバイスがＨＢＡであることを意味する“ＦＣ”と、該当のＩ／ＯデバイスがＮＩＣであることを意味する“ＬＡＮ”とがある。
【００４１】
Ｂｏｏｔ３０８は、該当のＩ／Ｏデバイスがブートデバイスか否かを示すフラグである。“○”が、ブートデバイスであることを意味する。ブートデバイスとは、ＯＳやアプリケーション等の情報が格納されている記憶領域（例えば、ストレージ装置内の論理ボリューム）に接続されているＩ／Ｏデバイスのことである。ブートデバイスを介して起動することができ、ブートデバイス以外のＩ／Ｏデバイスを介して起動することはできない。
【００４２】
モデル３０９は、該当のＩ／Ｏデバイスのモデルを表す識別子（例えば型番）である。
【００４３】
識別子３１０は、該当のＩ／Ｏデバイスの識別子である。例えば、該当のＩ／ＯデバイスがＨＢＡの場合は、識別子３１０はＷＷＮであり、該当のＩ／ＯデバイスがＮＩＣの場合は、識別子３１０はＭＡＣアドレスである。
【００４４】
図３によれば、例えば以下のことがわかる。すなわち、系Ａ（計算機システム２０１）に、二つのシャーシがあり、シャーシＩＤ“１”のシャーシ２０３が有する、Ｓｌｏｔ  Ｎｏ“１”のサーバスロットに、モデルが“Ｍ１”であるサーバが搭載されており、そのサーバには３つのＩ／Ｏデバイスが割当てられていることがわかる。また、それら３つのＩ／Ｏデバイスのうち、ブートデバイスは、バスＮｏ“１”のＰＣＩｅスロットに挿し込まれているＨＢＡであり、そのＨＢＡのモデルは“ＨＢＡ０１”であることがわかる。また、それらの３つのＩ／Ｏデバイスのうちの他の２つのＩ／Ｏデバイスのうち、一方がＨＢＡであり他方がＮＩＣであることもわかる。
【００４５】
図３に示したテーブルが、使用中の機器に関する情報が記録されているテーブルであるのに対し、図４及び図５に示すテーブルは、未使用機器に関する情報が記録されているテーブルである。未使用機器としては、未使用サーバと未使用Ｉ／Ｏデバイスとがある。基本的には、未使用のサーバ１０９に対しては未使用のＩ／Ｏデバイスは割り当てられないため、未使用サーバに関する情報と未使用Ｉ／Ｏデバイスに関する情報は別々のテーブルで管理される。
【００４６】
図４は、未使用サーバ情報テーブルの構成を示す。
【００４７】
未使用サーバ情報テーブルは、系ＩＤ４０１、シャーシＩＤ４０２、Ｓｌｏｔ  Ｎｏ．４０３及びモデル４０４を有する。情報４０１〜４０４は、図３を参照して説明した情報３０１〜３０４と同様である。未使用サーバ情報テーブルには、図３を参照して説明したＩ／Ｏ数３０５に相当する情報は含まれない。なぜなら、前述したように、未使用のサーバ（予備サーバ）にＩ／Ｏデバイスは割り当てられていないからである。
【００４８】
図５は、未使用Ｉ／Ｏデバイス情報テーブルの構成を示す。
【００４９】
未使用Ｉ／Ｏデバイス情報テーブルには、どのＩ／Ｏデバイスがどの計算機システム（系）に存在するかを表す情報として系ＩＤ５０１を有する。その他、未使用Ｉ／Ｏデバイス情報テーブルは、図３を参照して説明した情報３０６〜３１０と同様の情報として、バスＮｏ．５０２、種別５０３、Ｂｏｏｔ５０４、モデル５０５及び識別子５０６を有する。なお、未使用Ｉ／Ｏデバイスとは、いずれのサーバ１０９にも割り当てられていないＩ／Ｏデバイスである。
【００５０】
図３乃至図５に示したテーブルは、ＳＶＰ１０７が管理する情報やＰＣＩｅスイッチ管理装置１１１が管理する情報を基に構築される。ＳＶＰ１０７が管理する情報の一例を、図１０に示し、ＰＣＩｅスイッチ管理装置１１１が管理する情報の一例を、図１１〜図１３に示す。
【００５１】
図１０は、サーバ情報テーブルの構成を示す。
【００５２】
サーバ情報テーブルには、ＳＶＰ１０７を有するシャーシ２０３の名前であるシャーシ名１００１が含まれる。シャーシ名１００１は、例えば、初期設定時等の機会にユーザ（例えば管理者）によって入力される。
【００５３】
また、サーバ情報テーブルには、そのシャーシ２０３が有するサーバスロット毎に、Ｓｌｏｔ  Ｎｏ．１００２と、モデル１００３（サーバのモデルを表す情報）と、区分１００４とが含まれる。モデル１００３は、各サーバスロットに挿し込まれた各サーバ１０９からＳＶＰ１０７のサーバ構成情報取得部１０８が収集した情報である。区分１００４は、サーバ１０９が使用（稼動状態（例えば電源ＯＮ状態）））か未使用（待機状態（例えばスリープ状態或いは電源ＯＦＦ状態））かを表す情報である。
【００５４】
図１１は、基本属性情報テーブルの構成を示す。
【００５５】
基本属性情報テーブルには、ＰＣＩｅスイッチ管理装置１１１を有する計算機システム（系）の名前である系名１１０１が含まれる。系名１１０１は、例えば、初期設定時等の機会にユーザ（例えば管理者）によって入力される。
【００５６】
また、基本属性情報テーブルには、その計算機システム（系）が有するシャーシ２０３毎に、シャーシＩＤ１１０２と、シャーシ名１１０３とが含まれる。各シャーシには、ＰＣＩｅスイッチ管理装置１１１によって自動的に識別子（シャーシＩＤ）が割り振られる。
【００５７】
図１２は、Ｉ／Ｏドロワ情報テーブルの構成を示す。
【００５８】
Ｉ／Ｏドロワ情報テーブルには、ＰＣＩｅスイッチ管理装置１１１を有する計算機システム内のＩ／Ｏドロワ２０５毎に、ＩＯＤ  ＩＤ１２０１、ＩＯＤ  Ｓｌｏｔ  Ｎｏ．１２０２、バスＮｏ．１２０３、種別１２０４、Ｂｏｏｔ１２０５、モデル１２０６及び識別子１２０７が含まれる。ＩＯＤ  ＩＤ１２０１は、その計算機システム内でＩ／Ｏドロワ２０５を一意に識別するための識別子であり、例えば、初期設定時等の機会にユーザ（例えば管理者）によって入力される。ＩＯＤ  Ｓｌｏｔ  Ｎｏ．１２０２は、Ｉ／Ｏドロワ内でＰＣＩｅスロットを一意に識別するための番号である。ＩＯＤ  Ｓｌｏｔ  Ｎｏ．１２０２は、バスＮｏ．１２０３と違って、図１２に示す通り、同一の計算機システムにおいて、Ｉ／Ｏドロワが異なっていれば、重複することがある。バスＮｏ．１２０３、種別１２０４、Ｂｏｏｔ１２０５、モデル１２０６及び識別子１２０７は、図３を参照して説明した情報３０６〜３１０と同様である。
【００５９】
図１３は、接続トポロジー情報テーブルの構成を示す。
【００６０】
接続トポロジー情報テーブルには、ＰＣＩｅスイッチ管理装置１１１を有する計算機システム内のシャーシ２０３毎に、シャーシ２０３の識別子であるシャーシＩＤ１３０１と、シャーシ２０３が有するサーバスロットの番号であるＳｌｏｔ  Ｎｏ．１３０２と、そのサーバスロットに挿されているサーバに割り当てられているＩ／Ｏデバイスの数であるＩ／Ｏ数１３０３と、そのＩ／Ｏデバイスが挿されているＰＣＩｅスロットの識別番号であるバスＮｏ．１３０４とが含まれている。
【００６１】
図１１〜図１３に示したテーブルは、システムを最初に構築した時やシステム構成に変更が発生した時などに作成または更新される。その都度に、図１１〜図１３に示したテーブルに記録されている情報が収集されて、サーバ管理装置１０１が管理する構成情報テーブル１０６（図３〜図５に示したテーブル）が更新される。
【００６２】
例えば、ＳＶＰ１０７が有するサーバ構成情報取得部１０８が、そのＳＶＰ１０７を有するシャーシ２０３内のサーバ１０９から、サーバに関する情報を収集する。具体的には、例えば、サーバ１０９がシャーシ２０３へ新たに搭載された場合には、ＳＶＰ１０７がそれを検知し、そのＳＶＰ１０７内のサーバ構成情報取得部１０８が、新たに搭載されたサーバ１０９から、Ｓｌｏｔ  Ｎｏ．、サーバのモデル及び区分情報（使用か未使用かを表す情報）を収集する。そして、サーバ構成情報取得部１０８が、収集したＳｌｏｔ  Ｎｏ．、サーバのモデル及び区分情報と、シャーシ名とを、フェイルオーバ制御部１０２内のサーバ構成管理部１０３へ送信する。それらの情報を受信したサーバ構成管理部１０３は、受信した情報を構成情報テーブル１０６へ反映する。その際、サーバ構成管理部１０３は、区分情報を基に、新たに搭載されたサーバ１０９が使用中か否かを判断し、使用中であれば、受信した情報を基に、図３に示した使用機器情報テーブルを更新し、未使用であれば、受信した情報を基に、図４に示した未使用サーバ情報テーブルを更新する。
【００６３】
Ｉ／Ｏデバイスに関する情報は、ＰＣＩｅスイッチ管理装置１１１によって収集される。具体的には、例えば、ＰＣＩｅスイッチ管理装置１１１内のＩ／Ｏ構成情報取得部１１２は、接続トポロジーを変更した場合、各ＰＣＩｅスイッチ１１３Ｃ及び１１３Ｄからそのスイッチが管理しているトポロジー情報を抽出し、接続トポロジー情報テーブルを更新する。また、Ｉ／Ｏ構成情報取得部１１２は、更新された接続トポロジーに関するＳｌｏｔ．Ｎｏ．及びバスＮｏ．に関わる情報を図１１及び図１２に示したテーブルから抽出する。Ｉ／Ｏ構成情報取得部１１２は、変更後の接続トポロジーに関する情報や、図１１及び図１２に示したテーブルから抽出された情報を、フェイルオーバ管理部１０２のＩ／Ｏ構成管理部１０４に通知する。それらの情報を受けたＩ／Ｏ構成管理部１０４は、それらの情報に基づいて、構成情報テーブル１０６を更新する。Ｉ／Ｏデバイスが使用か未使用かは、例えば次のように判断される。すなわち、いずれかのＳｌｏｔ．Ｎｏに対応付けられているバスＮｏ．に対応したＩ／Ｏデバイスは、使用中と判断され、いずれのＳｌｏｔ．Ｎｏにも対応付けられていないバスＮｏ．に対応したＩ／Ｏデバイスは、未使用と判断される。
【００６４】
図１０〜図１３に示した情報と上述の説明によれば、図３に示すテーブルは、以下のようにして構築可能である。すなわち、図１０に示したテーブルから、シャーシ名１００１と、区分１００４が“使用中”に対応したＳｌｏｔ  Ｎｏ．１００２及びモデル１００３を特定可能であり、シャーシ名１００１をキーに、図１１に示したテーブルからシャーシＩＤ１１０３を特定可能であり、区分情報が“使用中”に対応したシャーシＩＤ１１０３及びＳｌｏｔ  Ｎｏ．１００２をキーに、図１３に示したテーブルからＩ／Ｏ数１３０３及びバスＮｏ．１３０４を特定可能であり、バスＮｏ．１３０４をキーに、図１２に示したテーブルから種別１２０４、Ｂｏｏｔ１２０５、モデル１２０６及び識別子１２０７を特定可能であり、それらの特定された情報を基に、図３に示した使用機器情報テーブルを構築することが可能である。
【００６５】
さて、図３にグレーで示すように、計算機システム２０１（系Ａ）内にあるシャーシ１（シャーシＩＤ“１”のシャーシ）のスロット３（Ｓｌｏｔ  Ｎｏ．“３”のサーバスロット）に挿されているサーバ１０９に、障害が発生したとする。その障害の発生は、例えば、サーバ管理装置１０１内の所定のアプリケーションによって検出され、そのアプリケーションから、フェイルオーバ制御部１０２のサーバ選択部１０５に、フェイルオーバ先となる予備サーバを選択することが指示される。これを契機に、図６に示すフェイルオーバ処理が開始される。
【００６６】
以下、図６を参照して、本実施例で行われるフェイルオーバ処理の流れを説明する。その際、図２に示した全体構成ならびに図３〜図５に示したテーブルに記載のシステム構成を例に採る。また、障害が発生しているサーバを、「障害発生サーバ」と言う。
【００６７】
ステップ６０１で、サーバ選択部１０５は、図４に示した未使用サーバ情報テーブルを参照し、障害発生サーバ１０９を有する系Ａ内に、障害発生サーバ１０９と同じモデルの未使用サーバ１０９があるか否かを判断する。ステップ６０１の判断の結果が肯定的の場合に（ステップ６０１：Ｙｅｓ）、ステップ６０９が行われる。すなわち、その未使用サーバ１０９がフェイルオーバ先として選択され、アダプタ継承型のＮ＋Ｍ切替が実行される。この切替えは、第２の技術に従う切替えを採用することができる。
【００６８】
ちなみに、この例では、ステップ６０１の判断結果は否定的となる。なぜなら、障害サーバ１０９のモデルは“Ｍ２”であるが、未使用サーバ情報テーブルによれば、系Ａには、モデル“Ｍ２”の未使用サーバが存在しないためである。このため、ステップ６０２が行われる。
【００６９】
ステップ６０２では、サーバ選択部１０５は、使用機器情報テーブルのＢｏｏｔ３０８を参照することで、障害サーバ１０９のブートデバイスを特定し、且つ、ブートデバイスに対応するバスＮｏ．３０６、種別３０７及びモデル３０８を特定する。そして、サーバ選択部１０５は、未使用Ｉ／Ｏデバイス情報テーブルを参照し、特定されたバスＮｏ．３０６、種別３０７及びモデル３０８と一致するバスＮｏ．５０２、種別５０３及びモデル５０４に対応した未使用ブートデバイス（以下、特定未使用ブートデバイス）を存在する他の系を検索する。
【００７０】
ステップ６０３で、サーバ選択部１０５は、検索された他の系Ｂに、未使用サーバ情報テーブルを参照し、障害発生サーバ１０９と同じモデルの未使用サーバが存在するか否かを判断する。ステップ６０３の判断の結果が肯定的の場合に（ステップ６０３：Ｙｅｓ）、ステップ６０４が行われ、ステップ６０３の判断の結果が否定的の場合に（ステップ６０３：Ｎｏ）、ステップ６１０が行われる。
【００７１】
ちなみに、この例では、ステップ６０３の判断結果は肯定的となる。なぜなら、障害発生サーバ１０９のモデルは“Ｍ２”であるが、未使用サーバ情報テーブルによれば、系Ａのスロット６及び７に、モデル“Ｍ２”の未使用サーバが存在するためである。ここでは、図４にグレーで示すように、スロット６に挿されている未使用サーバが選択されたとする。このように、障害発生サーバとモデルが同じ未使用サーバが複数見つかった場合には、任意の方法で一つの未使用サーバが選択されて良い。
【００７２】
ステップ６０４で、サーバ選択部１０５は、未使用Ｉ／Ｏデバイス情報テーブルを参照し、ステップ６０２で検索された系Ｂに、障害発生サーバと同じＩ／Ｏ構成を組めるだけの未使用Ｉ／Ｏデバイスが存在するか否かを判断する。言い換えれば、ステップ６０２で検索された系Ｂに、障害発生サーバに割り当てられている非ブートデバイス（ブートデバイス以外のＩ／Ｏデバイス）と同等の非ブートデバイスが、障害発生サーバに割り当てられている非ブートデバイスと同数以上存在するか否かが判断される。ステップ６０４の判断の結果が肯定的の場合に（ステップ６０４：Ｙｅｓ）、ステップ６０５が行われ、ステップ６０４の判断の結果が否定的の場合に（ステップ６０４：Ｎｏ）、ステップ６１０が行われる。ステップ６１０では、サーバ選択部１０５は、検索された系Ｂを候補とせず、特定未使用ブートデバイスを有する系として、系Ｂ以外の系を検索する。
【００７３】
ちなみに、この例では、ステップ６０４の判断結果は肯定的となる。なぜなら、系Ｂには、障害発生テーブルに割り当てられている、ブートデバイス以外の３つのＩ／Ｏデバイスと、種別及びモデルがそれぞれ同一の３つのＩ／Ｏデバイスが、系Ｂに存在するからである。具体的には、図３に示す使用機器情報テーブルによれば、障害発生テーブルに割り当てられている４つのＩ／Ｏデバイスのうちの、ブートデバイス以外の３つのＩ／Ｏデバイスとして、下記（６０４Ａ）〜（６０４Ｃ）のＩ／Ｏデバイスがあるが、
（６０４Ａ）種別“ＦＣ”、モデル“ＨＢＡ０１”のＩ／Ｏデバイス；
（６０４Ｂ）種別“ＬＡＮ”、モデル“ＮＩＣ０１”のＩ／Ｏデバイス；
（６０４Ｃ）種別“ＬＡＮ”、モデル“ＮＩＣ０１”のＩ／Ｏデバイス
図５に示す未使用Ｉ／Ｏデバイス情報テーブルによれば、グレーで示すように、系Ｂには、下記（６０４ａ）〜（６０４ｃ）の未使用Ｉ／Ｏデバイス、
（６０４ａ）上述の（６０４Ａ）に対応するデバイスとして、種別“ＦＣ”、モデル“ＨＢＡ０１”の、バスＮｏ．“１９”に対応した未使用Ｉ／Ｏデバイス；
（６０４ｂ）上述の（６０４Ｂ）に対応するデバイスとして、種別“ＬＡＮ”、モデル“ＮＩＣ０１”の、バスＮｏ．“６０”に対応した未使用Ｉ／Ｏデバイス；
（６０４ｃ）上述の（６０４Ｃ）に対応するデバイスとして、種別“ＬＡＮ”、モデル“ＮＩＣ０１”の、バスＮｏ．“６１”に対応した未使用Ｉ／Ｏデバイス；
があるからである。
【００７４】
ステップ６０５では、サーバ選択部１０５は、系Ｂを候補として、特定未使用ブートデバイスを有する系として、系Ｂ以外の系を検索する。そのような系が未だ見つかれば、ステップ６０３が行われ、見つからなければ、ステップ６０６が行われる。
【００７５】
ステップ６０６では、サーバ選択部１０５は、候補として選択された複数の系（障害発生サーバを有する系Ａ以外の系）から一つの系を選択する。ここでは、候補としての複数の系に関する属性と、障害発生サーバを有する系Ａとの属性を基に、最適と考えられる条件を満たす系が選択されても良いし、ランダムで一つの系が選択されても良い。
【００７６】
Ｓ６０６で決定した系が選択されたら、その系についての未使用サーバ（予備サーバ）及び未使用Ｉ／Ｏデバイスを基に、フェイルオーバ制御部１０２は、Ｓ６０７及びＳ６０８を含んだサーバの切り替え処理を行う。切り替え処理の概要を、図７に示す。
【００７７】
すなわち、フェイルオーバ制御部１０２は、Ｉ／Ｏ構成管理部１０４を経由し、フェイルオーバ先の未使用サーバ７０２を有する系Ｂ内のＰＣＩｅスイッチ管理装置１１１に対して、選択したＩ／Ｏデバイス（図５にグレーで示す、バスＮｏ．“３”、“１９”、“６０”、及び“６１”に対応した４つのＩ／Ｏデバイス）を予備サーバ７０２に割り当てるよう指示する（図６のステップ６０７、図７の（１））。その指示を受けたＰＣＩｅスイッチ管理装置１１１内のＩ／Ｏ構成情報取得部１１２は、ＰＣＩｅスイッチ１１３Ｃ及び１１３Ｄ（具体的には、例えば、スロット６に挿されている予備サーバが接続されているＩ／Ｏスイッチ１１３Ｃと、バスＮｏ．“３”、“１９”、“６０”、及び“６１”に対応したＩ／Ｏスイッチ１１３Ｄ）の設定を変更することにより、指定されたＩ／Ｏデバイスを指定された予備サーバ７０２へ割り当てる。この結果、例えば、系Ｂ内のＰＣＩｅスイッチ管理装置１１１が管理する接続トポロジー情報テーブル（図１３参照）では、予備サーバ７０２に対応したシャーシＩＤ及びＳｌｏｔ  Ｎｏ．に対して、Ｉ／Ｏ数“４”と、バスＮｏ．“３”、“１９”、“６０”、及び“６１”が割当てられることになる。
【００７８】
次に、フェイルオーバ制御部１０２は、Ｉ／Ｏデバイスの割当ての変更を完了した後、サーバ構成管理部１０３を経由して、Ｉ／Ｏデバイスの識別子変更を、現用サーバ７０１を管轄するＳＶＰ１０７と、予備サーバ７０２を管轄するＳＶＰ１０７の両方に対して指示する（図６のステップ６０８、図７の（２））。識別子変更の処理については、前述した第１の技術を利用することができる。ここでは、例えば、障害発生サーバ７０１に割り当てられているＩ／Ｏデバイスの識別子と、そのＩ／Ｏデバイスに対応する、予備サーバ７０２に割り当てられたＩ／Ｏデバイスの識別子とが交換される。
【００７９】
Ｉ／Ｏデバイスの識別子を変更することで、予備サーバ７０２は、現用サーバ７０１が使用していた記憶領域（例えば前述したシステムボリューム）をそのまま使用可能となる。この状態で、フェイルオーバ制御部１０２は、予備サーバ７０２を管轄するＳＶＰ１０７に対して、予備サーバ７０２の起動を指示する（図７の（３））。その指示を受けたＳＶＰ１０７は、予備サーバ７０２の電源を投入し、それにより、予備サーバ７０２が起動する。予備サーバ７０２は、リードコマンドを、自分に割り当てられているブートデバイスを介して、障害発生サーバ７０１で稼動していたＯＳやアプリケーション等をロードすることで、起動する。
【００８０】
予備サーバ７０２が起動したら、フェイルオーバ制御部１０２は、Ｉ／Ｏ構成管理部１０４を経由して、系ＡのＰＣＩｅスイッチ管理装置１１１に対し、障害発生サーバ７０１に割り当てられているＩ／Ｏデバイス（図３によれば、バスＮｏ．“３”、“２２”、“３１”、及び“３２”に対応した４つのＩ／Ｏデバイス）の割り当て解除を指示する（図７の（４））。その指示を受けたＰＣＩｅスイッチ管理装置１１１は、指定されたＩ／Ｏデバイスの割当を解除する。割り当ての解除が終了したら、フェイルオーバ制御部１０２は、構成情報テーブル１０６を修正する、つまり、一連の処理で施した構成変更の内容を構成情報テーブル１０６に反映させる。
【００８１】
これにより、サーバの切り替え処理が完了する。なお、サーバの切替え処理において、例えば図７の（１）（図６のステップ６０７）が行われた場合、サーバ選択部１０５が、予備サーバ７０２に対応したレコードを未使用サーバ情報テーブルから除去し、予備サーバ７０２に割り当てられたＩ／Ｏデバイスに対応したレコードを未使用Ｉ／Ｏデバイス情報テーブルから除去し、予備サーバ７０２及び予備サーバ７０２に割り当てられたＩ／Ｏデバイスに関するレコードを使用機器情報テーブルに追加する。また、例えば図７の（２）（図６のステップ６０８）が行われた場合、サーバ選択部１０５が、使用機器情報テーブルに追加した上記レコードの識別子３１０を、現用サーバ７０１に割り当てられていたＩ／Ｏデバイスの識別子３１０に更新し、同様に、現用サーバ７０１に割り当てられていたＩ／Ｏデバイスの識別子３１０を、予備サーバ７０２に割り当てられたＩ／Ｏデバイスの識別子に更新する。また、例えば図７の（４）が行われた場合、サーバ選択部１０５が、サーバ７０１に対応したレコードを使用機器情報テーブルから除去し、そのレコードのうちサーバに関する情報を未使用サーバ情報テーブルに追加し、そのレコードのうちＩ／Ｏデバイスに関する情報を未使用Ｉ／Ｏデバイス情報テーブルに追加する。
【００８２】
以上が、本発明の第１実施例の説明である。
【００８３】
なお、本実施例において、例えば、図６に示したステップ６０５及び６０６は、必ずしも行われなくても良い。すなわち、系Ａ以外の系として一つの系Ｂが検索されステップ６０３及び６０４のいずれでも肯定的な判断結果が得られた場合には、ステップ６０５及び６０６が行われることなくステップ６０７が行われても良い。言い換えれば、１つの候補が得られたら、ステップ６０７が行われても良い。
【実施例２】
【００８４】
以下、本発明の第２の実施例を説明する。その際、第１の実施例との相違点を主に説明し、第１の実施例との共通点については説明を省略或いは簡略する。
【００８５】
実施例２では、サーバ管理装置１０１が設けられず、フェイルオーバ制御部が、サーバ管理装置とは別の装置、例えばＰＣＩｅ管理装置１１１に備えられる。
【００８６】
図１０は、本発明の第２の実施例での主要な機能を示し、図１１は、本発明の第２の実施例に係る計算機システム群の構成を示す。
【００８７】
フェイルオーバ制御部１０２は、各系のＰＣＩｅスイッチ管理装置１１１内に備えられており、全てのＰＣＩｅスイッチ管理装置１１１は、通信ネットワークを介して通信可能に接続される。また、各ＳＶＰ１０７は、自身が属する計算機システムのＰＣＩｅスイッチ管理装置１１１と接続されている。
【００８８】
フェイルオーバ制御部１０２には、例えば、あらかじめ優先順位が定められており、優先順位の最も高いものがマスターとなる。マスターは、第１の実施例でのフェイルオーバ制御部１０２と同様の処理を行う。その他の系のフェイルオーバ制御部１０２は、アシスタントとして、マスターからのサーバに対する指示（例えば、サーバに対する電源ＯＮ／ＯＦＦやＩ／Ｏデバイス識別子変更など）を自身の管理下にあるＳＶＰへ送ったり、障害発生通知やサーバ情報などＳＶＰ１０７から送られてくる情報をマスターへ転送したりする。
【００８９】
フェイルオーバ制御部１０２は、定期的にお互いの状態を監視しあっており、マスターとなっているフェイルオーバ制御部１０２に障害が発生した場合は、優先順位にしたがって、マスターとなるべきフェイルオーバ制御部１０２が認識され、あたらしくマスターとして選択されたフェイルオーバ制御部１０２が、速やかにマスターの処理を引き継ぐ。
【００９０】
これらの点を除けば、第２の実施例におけるフェイルオーバ制御部１０２は、第１の実施例の場合と同様の処理を行う。
【００９１】
これにより、計算機システム群がサーバ管理装置を備えてなくても、第１の実施例と同等のフェイルオーバ処理を実現することが可能となる。
【００９２】
以上、本発明の好適な実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ＰＣＩｅスイッチに代えて他種のスイッチが採用されても良い。すなわち、サーバとスイッチ間の通信は、PCI-Expressに限らず他種のインタフェースが採用されても良い。また、例えば、ステップ６０１及び６０３では、必ずしも完全にモデルが一致していなくても良い。例えば、モデルが違っていても、実質的にモデルが同じであれば（言い換えれば、ＯＳから見て同じマイクロプロセッサであると認識される関係であれば）、予備サーバとして選択されて良い（例えば、障害発生サーバとバージョンは異なるが実質的には同じ予備サーバが選択されて良い）。
【図面の簡単な説明】
【００９３】
【図１】本発明の第１の実施例での主要な機能を示す。
【図２】本発明の第１の実施例に係る計算機システム群の構成を示す。
【図３】構成情報テーブル中の使用機器情報テーブルの構成を示す。
【図４】構成情報テーブル中の未使用サーバ情報テーブルの構成を示す。
【図５】構成情報テーブル中の未使用Ｉ／Ｏデバイス情報テーブルの構成を示す。
【図６】フェイルオーバ処理のフローチャートを示す。
【図７】サーバ切替え処理の概要を示す。
【図８】本発明の第２の実施例での主要な機能を示す。
【図９】本発明の第２の実施例に係る計算機システム群の構成を示す。
【図１０】ＳＶＰが有するサーバ情報テーブルの構成を示す。
【図１１】ＰＣＩｅスイッチ管理装置が有する基本属性情報テーブルの構成を示す。
【図１２】ＰＣＩｅスイッチ管理装置が有するＩ／Ｏドロワ情報テーブルの構成を示す。
【図１３】ＰＣＩｅスイッチ管理装置が有する接続トポロジー情報テーブルの構成を示す。
【符号の説明】
【００９４】
１０１…サーバ管理装置  １０２…フェイルオーバ制御部  １０３…サーバ構成管理部  １０４…Ｉ／Ｏ構成管理部  １０５…サーバ選択部
【図１】
2010134757.tif 000003
【図２】
2010134757.tif 000004
【図３】
2010134757.tif 000005
【図４】
2010134757.tif 000006
【図５】
2010134757.tif 000007
【図６】
2010134757.tif 000008
【図７】
2010134757.tif 000009
【図８】
2010134757.tif 000010
【図９】
2010134757.tif 000011
【図１０】
2010134757.tif 000012
【図１１】
2010134757.tif 000013
【図１２】
2010134757.tif 000014
【図１３】
2010134757.tif 000015