(57)【要約】【課題】従来技術では負荷分散サーバに仮想サーバがマイグレーションを行っているか処理中であるか否かの考慮がなされておらず、マイグレーション処理中の仮想サーバにもユーザリクエストを割り当てる可能性がある。【解決手段】複数の物理サーバ上で稼働する複数の仮想サーバと、前記複数の仮想サーバのマイグレーションを制御する仮想サーバ管理装置と、複数のクライアントからの複数の処理要求を複数の仮想サーバに割り当てる負荷分散サーバが相互に通信路によって接続されている計算機システムであって、前記仮想サーバ管理装置は仮想サーバのマイグレーション処理実行中であることを記憶する手段を備え、前記負荷分散サーバは前記仮想サーバ管理装置からの前記仮想サーバがマイグレーション処理実行中であることの通知を記憶する手段と、マイグレーション処理実行中であるか否かに対応してクライアントからの処理要求を割り当てる仮想サーバを決定する手段とを備える。【選択図】  図１
2014067322.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理サーバ上で稼働する複数の仮想サーバと、
前記複数の仮想サーバのマイグレーションを制御する仮想サーバ管理装置と、
複数のクライアントからの複数の処理要求を複数の仮想サーバに割り当てる負荷分散サーバが相互に通信路によって接続されている計算機システムであって、
前記仮想サーバ管理装置は仮想サーバのマイグレーション処理実行中であることを記憶する手段を備え、
前記負荷分散サーバは
前記仮想サーバ管理装置からの前記仮想サーバがマイグレーション処理実行中であることの通知を記憶する手段と
マイグレーション処理実行中であるか否かに対応してクライアントからの処理要求を割り当てる仮想サーバを決定する手段とを備えること
を特徴とする計算機システム。
【請求項２】
マイグレーション処理実行中の仮想サーバの割り当て優先度を下げることを特徴とする請求項１の計算機システム。
【請求項３】
マイグレーション処理実行中の仮想サーバを割り当て禁止にすることを特徴とする請求項１の計算機システム。
【請求項４】
マイグレーション処理実行中の仮想サーバがマイグレーション処理期間中の稼働期間である場合は割り当て優先度を下げ、停止し期間にある場合は割り当て禁止にすることを特徴とする請求項１の計算機システム。
【請求項５】
仮想サーバごとに割り当て優先度を変えることを特徴とする請求項２の計算機システム。
【請求項６】
仮想サーバごとに稼働期間における割り当て優先度を変えることを特徴とする請求項４の計算機システム。
【請求項７】
複数のクライアントからの複数の処理要求を複数の物理サーバ上で稼働する仮想サーバに割り当てる負荷分散方法であって
前記複数の仮想サーバのマイグレーションを制御する仮想サーバ管理装置と通信し、
仮想サーバがマイグレーション処理実行中である場合には仮想サーバがマイグレーション実行中であることを記憶し、
マイグレーション処理実行中であるか否かに対応してクライアントからの処理要求を割り当てる仮想サーバを決定すること
を特徴とする負荷分散方法。
【請求項８】
マイグレーション処理実行中の仮想サーバの割り当て優先度を下げることを特徴とする請求項７の負荷分散方法。
【請求項９】
マイグレーション処理実行中の仮想サーバを割り当て禁止にすることを特徴とする請求項７の負荷分散方法。
【請求項１０】
マイグレーション処理実行中の仮想サーバがマイグレーション処理期間中の稼働期間である場合は割り当て優先度を下げ、停止し期間にある場合は割り当て禁止にすることを特徴とする請求項７の負荷分散方法。
【請求項１１】
仮想サーバごとに割り当て優先度を変えることを特徴とする請求項８の負荷分散方法。
【請求項１２】
仮想サーバごとに稼働期間における割り当て優先度を変えることを特徴とする請求項１０の負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想サーバから構成される計算機システムにおいて、マイグレーションを考慮した負荷分散技術に関する。
【背景技術】
【０００２】
近年、多数の物理サーバをデータセンターに集約配置し、物理サーバを論理的に複数の仮想サーバに分割し、その仮想サーバをインターネット経由で利用する、クラウドコンピューティングが普及期を迎えている。仮想化技術の進化、サーバの性能向上、ネットワークの帯域拡大、ストレージの容量増大と単価下落により、物理サーバ上で稼働する仮想サーバ数は増加傾向にある。
【０００３】
クラウドを支える仮想化技術の１つに、ライブマイグレーションがある。ライブマイグレーションとは、ある物理サーバ上で稼働する仮想サーバで動作するＯＳを、他の仮想サーバに移行し動作させる技術である。ライブマイグレーションにより、データセンターにおける高い可用性や保守性を実現することが可能となり、現在の仮想化技術には欠かせない技術となっている。
【０００４】
ライブマイグレーションでは、移動元の仮想サーバから移動先の仮想サーバへメモリ内容のコピーが行われる。マイグレーション実行中も移動元仮想サーバ上でソフトウェアの実行を継続するので、コピーした後に移動元仮想サーバのメモリ内容が変更されることもあり得る。この場合、移動元と移動先でメモリ内容が不一致となりマイグレーションに失敗することがあり得る。
【０００５】
この問題に対応するため、非特許文献１にあるようにメモリ内容のコピー中に新たにメモリ内容を更新した場合、その場所を記憶し、メモリコピー処理後に再度更新した領域をコピーする方式が提案されている。これをあらかじめ設定された閾値を下回るまで繰り返す。最後に仮想サーバにＣＰＵリソースを割り当てない状態、つまり移動元仮想サーバを停止してコピーを行う。この停止期間は、仮想サーバ上で稼働しているソフトウェアが稼働できずサービスを提供できない期間である。一般に、ライブマイグレーションは稼働期間と停止期間とに分けることができる。
【０００６】
また、ライブマイグレーションでは、仮想サーバの移動の実行時に、仮想サーバが稼動する物理サーバに対して比較的大きな量のＣＰＵ等の資源を消費することが知られている（非特許文献２参照）。よって、ライブマイグレーション実行中の稼働期間といっても、移動対象の仮想マシンでサービスを提供することは可能であるが、十分な資源が確保できない場合には、仮想マシンの移動に要する時間の増大や、稼働中の仮想マシンのサービスレベルの低下が起こりうることとなる。
【０００７】
ところで、クラウド上では、例えばWebサーバといった、サーバを多数並べて並列に処理をさせるシステムを比較的容易に構築することができる。複数のサーバから構成されユーザリクエスト処理を行うシステムの前段には、ユーザリクエストを、偏りをなるべく発生させないよう分散させながら、配下のサーバに受け渡す機能を有する専用のサーバを配置することが一般的である。またこのサーバは、配下のサーバの一部が故障した場合にも、他のサーバに処理を振り分けることでシステム全体としてサービスを停止させない、といった機能も有している。このように、サーバ負荷分散機能とは、複数のサーバに処理を分散させることにより、処理要求に対する応答時間を短縮し、安定的なサービスの提供を実現する機能である。以下、このような負荷分散機能を有するサーバを負荷分散サーバと称する。
【０００８】
負荷分散サーバ配下にある複数のサーバの中から、ユーザリクエスト処理を割りあてるサーバの決定方法については様々な手法が提案されている。例えば各サーバに順に処理を振り分けるラウンド・ロビン方式、サーバの性能によって重みを加味する重み付きラウンド・ロビン方式、コネクションが最も少ないものに割り振る最小コネクション方式等がある。また特開２０１１−２３７８４４号公報（特許文献１）には、複数の仮想サーバを束ねる負荷分散サーバについて、仮想サーバのＣＰＵリソースやパケットロス率に応じてリクエストを転送する方式が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−２３７８４４号公報
【非特許文献】
【００１０】
【非特許文献１】Ｃｈｒｉｓｔｏｐｈｅｒ  Ｃｌａｒｋ，  Ｋｅｉｒ  Ｆｒａｓｅｒ，Ｓｔｅｖｅｎ  Ｈａｎｄ，  Ｊａｃｏｂ  Ｇｏｒｍ  Ｈａｎｓｅｎ，  Ｅｒｉｃ  Ｊｕｌ，  Ｃｈｒｉｓｔｉａｎ  Ｌｉｍｐａｃｈ，  Ｉａｎ  Ｐｒａｔｔ，  Ａｎｄｒｅｗ  Ｗａｒｆｉｅｌｄ，  Ｌｉｖｅ  Ｍｉｇｒａｔｉｏｎ  ｏｆ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅｓ，  ２ｎｄ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｎｅｔｗｏｒｋｅｄ  Ｓｙｓｔｅｍｓ  Ｄｅｓｉｇｎ  ＆  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，  ｐｐ．２７３−２８６，  Ｍａｙ  ２００５
【非特許文献２】W. Huang，Q. Gao，J. Liu，and D.K. Panda（Ohio State University ），Jiuxing Liu （IBM T. J. Watson Research Center），“High Performance Virtual Machine Migration with RDMA over Modern Interconnects”，IEEE International Conference on Cluster Computing（Cluster'07），Austin，TX，September 2007，Selected as a BEST Paper. ，http://nowlab.cse.ohio-state.edu/publications/conf-papers/2007/huang-cluster07.pdf
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来技術では負荷分散サーバに仮想サーバがマイグレーションを行っているか処理中であるか否かの考慮がなされておらず、マイグレーション処理実行中の仮想サーバにも無条件でユーザリクエストを割り当てる可能性がある。このため以下の課題がある。
【００１２】
第一の課題はユーザレスポンス時間の増大である。マイグレーション実行中のサービス稼働期間ではユーザリクエストを処理することは可能であるが、マイグレーション処理とユーザリクエスト処理の重複によりＣＰＵ等の資源が不足し、処理時間が増大する場合がある。また、負荷分散サーバがマイグレーション期間のサービス停止期間に処理要求を割り振った場合、処理要求がタイムアウトしてしまい、負荷分散サーバは同じ仮想サーバへ処理要求の再送、もしくは仮想サーバを変更して再送といったリトライ処理を余儀なくされる。このため、マイグレーション期間は結果としてユーザレスポンス時間が増大する。
【００１３】
第二の課題はマイグレーション処理時間の増加である。コピー中にどの程度のメモリ領域が更新されるかは保証がなく、コピーのやり直しが発生し、マイグレーション時間が長くなる、もしくは収束しない可能性がある。また前述のマイグレーション処理とリクエスト処理の重複による資源不足が発生し処理時間が延びる可能性がある。
【００１４】
本発明の目的は、負荷分散サーバがマイグレーション処理中の仮想サーバに処理要求を発行することを削減し、ユーザリクエストに対するレスポンスの遅延や、マイグレーション処理時間遅延を発生させないことを目的とする。
【課題を解決するための手段】
【００１５】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「複数の物理サーバ上で稼働する複数の仮想サーバと、前記複数の仮想サーバのマイグレーションを制御する仮想サーバ管理装置と、複数のクライアントからの複数の処理要求を複数の仮想サーバに割り当てる負荷分散サーバが相互に通信路によって接続されている計算機システムであって、前記仮想サーバ管理装置は仮想サーバのマイグレーション処理実行中であることを記憶する手段を備え、前記負荷分散サーバは前記仮想サーバ管理装置からの前記仮想サーバがマイグレーション処理実行中であることの通知を記憶する手段と、マイグレーション処理実行中であるか否かに対応してクライアントからの処理要求を割り当てる仮想サーバを決定する手段とを備えること」を特徴とする。
【発明の効果】
【００１６】
本発明によれば、負荷分散サーバに接続されたマイグレーション実行中の仮想サーバに処理要求を発行することを削減もしくは抑止でき、ユーザ処理要求のレスポンス遅延や、マイグレーション処理時間遅延を発生させない。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例１に係る負荷分散サーバ、ＬＰＡＲ管理サーバ、仮想サーバそれぞれの構成を示すブロック図の例である。
【図２】本発明の実施例１に係るＬＰＡＲ管理サーバが保持・管理するマイグレーション管理テーブルの例である。
【図３】本発明の実施例１に係る負荷分散サーバが保持・管理するＬＰＡＲ状態管理テーブルの例である。
【図４】本発明の実施例１に係るマイグレーション処理を多重度に換算する際の係数を格納するテーブルの例である。
【図５】本発明の実施例１に係るマイグレーション処理の実施の開始から終了までのＬＰＡＲ管理サーバと負荷分散サーバとのマイグレーション契機の受け渡し手順を示すフローチャートである。
【図６】本発明の実施例１に係る負荷分散サーバがクライアントからの処理要求を割り振るＬＰＡＲを決定する手順を示すフローチャートである。
【図７】本発明の実施例１に係るＬＰＡＲの優先度を算出する手順を示すフローチャートである。
【図８】本発明の実施例２に係る負荷分散サーバが保持・管理するＬＰＡＲ状態管理テーブルの例である。
【図９】本発明の実施例２に係る負荷分散サーバがクライアントからの処理要求を割り振るＬＰＡＲを決定する手順を示すフローチャートである。
【図１０】本発明の実施例３に係るマイグレーション処理の実施の開始から終了までのＬＰＡＲ管理サーバと負荷分散サーバとのマイグレーション契機の受け渡し手順を示すフローチャートである。
【図１１】本発明の実施例３に係る負荷分散サーバがクライアントからの処理要求を割り振るＬＰＡＲを決定する手順を示すフローチャートである。
【図１２】本発明の実施例３に係るＬＰＡＲの優先度を算出する手順を示すフローチャートである。
【図１３】本発明の実施例４に係るマイグレーション処理を多重度に換算する際の係数を格納するテーブルの例である。
【図１４】一般的なライブマイグレーションを採用するシステムの構成を説明する図である。
【図１５】一般的なライブマイグレーションの処理ステップを説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１９】
まず、一般的なライブマイグレーション処理の概略について図１４、１５を用いて説明する。図１４は物理サーバ間のマイグレーションを行うシステムの構成図の例である。実際のクラウド構成の場合、さらに多数の物理サーバやＩ／Ｏデバイスから構成されるであろう。物理サーバ１４０１、１４０２が複数の仮想サーバ(以下ＬＰＡＲ)に分割されている様子を示している。ＬＰＡＲ１４０３にはＣＰＵやメモリに加えて、仮想ストレージ１４０４や仮想ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１４０５が割り当てられているであろう。１４０６はＬＰＡＲ制御を行うハイパーバイザである。ＮＩＣ１４０７やＦＣＡ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）１４０８、１４０８の先に接続されている共有ストレージ１４１０はハイパーバイザ１４０６が管理する。本例では、ハイパーバイザの機能を用いて、複数のＬＰＡＲでＩ／Ｏデバイスを共有している様子を表している。各ＬＰＡＲ上のＯＳからは仮想的なＩ／Ｏデバイスが認識される。１４０９はＬＰＡＲの起動・停止・作成やマイグレーション指示といった各種ＬＰＡＲ操作、ＬＰＡＲ状況確認を行うためのユーザインターフェースを提供するＬＰＡＲ管理サーバである。これら物理サーバ１４０１、１４０２やＬＰＡＲ管理サーバ１４０９が同一のネットワーク１４１１に接続されている。
【００２０】
次に、物理サーバ１４０１から物理サーバ１４０２へＬＰＡＲ１４０３がほぼ無停止で移動する動的マイグレーション機能を実現する概略手順を図１５に示す。
【００２１】
ＬＰＡＲ管理サーバ１４０９は、まず移動先物理サーバ１４０２において、移動対象ＬＰＡＲ１４０３のＣＰＵ、メモリ、Ｉ／Ｏリソースが確保できるか否かの確認を行う（ステップ１５０１）。確保可能である場合、移動先物理サーバ１４０２にＬＰＡＲを動的に生成する(ステップ１５０２)。これはＬＰＡＲ管理サーバ１４０９が移動先物理サーバ１４０２のハイパバイザ１４１２に、ＬＰＡＲ生成を指示することによる。次に移動元ＬＰＡＲから移動先ＬＰＡＲへメモリイメージをコピーする（ステップ１５０３）。ＩＢＭ社のＬｉｖｅ  Ｐａｒｉｔｉｔｉｏｎ  Ｍｏｂｉｌｉｔｙ機能やＶＭｗａｒｅ社のＶＭｏｔｉｏｎ機能ではメモリの大半を本ステップでコピーする。
【００２２】
次に移動元ＬＰＡＲへＣＰＵリソースの割り当てを無くしてＬＰＡＲを停止する(ステップ１５０４)。停止することにより、移動元のメモリ内容やプロセッサステータスが書き換わらないようにフリーズする。
【００２３】
次に、既にコピー済みであるが書き換わったり未コピーのメモリページや、プロセッサステータスをコピーし移動元と移動先の状態を全く同一にする（ステップ１５０５）。
【００２４】
最後に移動先ＬＰＡＲを起動、移動元ＬＰＡＲの削除を行いマイグレーションが終了する（ステップ１５０６）。
【００２５】
以上がマイグレーションの概略手順である。ここでステップ１５０４より前段階では移動元ＬＰＡＲ１４０３は稼動しており、該ＬＰＡＲ上で稼働するサービスを提供することができる。一方、ステップ１５０４から１５０６までは移動元も移動先もＬＰＡＲは停止しており、サービスを提供することはできない。以下、ステップ１５０１から１５０３のサービス稼働期間をマイグレーションフェーズ１、ステップ１５０４から１５０６までのサービス停止期間をマイグレーションフェーズ２と称する。
【００２６】
次に本実施例のシステム構成図を図1に示す。1台以上複数の物理サーバ１５１〜１５３、負荷分散サーバ１０、ＬＰＡＲ管理サーバ１１がイントラネットワーク１３で接続されている。一方負荷分散サーバ１０はユーザクライアント１２とインターネット１４を介して接続されている。このようなシステムは例えばＷｅｂサーバシステムなどが一般に知られている。
【００２７】
物理サーバ１５１〜１５３は複数のＬＰＡＲ１５７〜１６１に分割されている。ＬＰＡＲの起動・停止等の管理は各物理サーバのハイパーバイザ１５４〜１５６によって行われている。各ＬＰＡＲ上ではそれぞれＯＳが稼働しており、ＬＰＡＲが１つのサーバ単位となる。したがって、負荷分散サーバ１０が処理要求の割り振り管理を行う対象はＬＰＡＲである。
【００２８】
負荷分散サーバ１０はユーザクライアント１２からインターネット１５を介して処理要求を受け付け、ＬＰＡＲ１５７〜１６１のいずれかへ割り振る役割を持つ。負荷分散サーバは２つの関連テーブルを有する。ＬＰＡＲ状態管理テーブル１０１はＬＰＡＲへの割り当て数やマイグレーション処理中であるか否かを管理するテーブルである。マイグレーション処理換算テーブル１０２はマイグレーション処理をクライアント接続数に換算する際に参照するテーブルである。
【００２９】
ＬＰＡＲ管理サーバ１１はＬＰＡＲの起動・停止やＬＰＡＲの作成、情報収集・表示、マイグレーション指示といった用途を持つ。各ＬＰＡＲのマイグレーションの状態管理をマイグレーション管理テーブル１１１にて行う。
【００３０】
図２はマイグレーション管理テーブル１１１の一例である。２０１は管理対象ＬＰＡＲのホスト名、２０２はＬＰＡＲのＩＰアドレスである。２０３はＬＰＡＲがマイグレーション実行中であるか否かを示すフラグである。
【００３１】
図３は負荷分散サーバ１０内のＬＰＡＲ状態管理テーブル１０１の詳細である。負荷分散サーバ１０が管理下におくＬＰＡＲの宛先情報が３０１、３０２である。３０３は現在の各ＬＰＡＲへのコネクション数、３０４はマイグレーション実行中であるか否かを示すフラグ、３０５はコネクション数にマイグレーションを加味した、最終的な割り当て優先度である。
【００３２】
図４はマイグレーション処理換算テーブル１０２の例である。マイグレーションをどの程度の負荷（コネクション数）と見なすかの決定するものであり、システム管理者が設定することを想定する。
【００３３】
次に、負荷分散サーバ１０がＬＰＡＲのマイグレーション実施・終了の情報を採取する手順を図５に示す。本例では物理サーバ１５２から物理サーバ１５３へＬＰＡＲ１６０をマイグレーションするものとする。ＬＰＡＲ管理サーバ１１はマイグレーション指示を物理サーバ１５２、１５３のハイパーバイザ１５５，１５６に発行する（ステップ５０１）。ハイパーバイザ１５５と１５６はそれぞれマイグレーションフェーズ１を開始したことをＬＰＡＲ管理サーバ１１に通知する（ステップ５０２）。物理サーバ１５２と１５３ではマイグレーション処理が実行される（ステップ５０３）。ＬＰＡＲ管理サーバ１１はマイグレーション管理テーブル１１１を更新して該ＬＰＡＲマイグレーションフェーズ１が実施中であることを記憶する（ステップ５０４）。ＬＰＡＲ管理サーバ１１は負荷分散サーバ１０にＬＰＡＲ３がマイグレーション処理中であることを通知する（ステップ５０５）。通知を受けた負荷分散サーバ１０はＬＰＡＲ状態管理テーブル１０１を更新し該ＬＰＡＲがマイグレーション実施中であることを記憶する（ステップ５０６）。次にハイパーバイザ１５５、１５６はそれぞれマイグレーションフェーズ１を開始したことをＬＰＡＲ管理サーバ１１に通知する（ステップ５０７）。物理サーバ１５２、１５３１７ではマイグレーション処理が実行される（ステップ５０８）。ＬＰＡＲ管理サーバ１１はマイグレーション管理テーブル１１１を更新して該ＬＰＡＲマイグレーションフェーズ２が実施中であることを記憶する（ステップ５０９）。やがてマイグレーション処理が終了したらＬＰＡＲ管理サーバ１１にマイグレーション終了が通知される（ステップ５１０）。ＬＰＡＲ管理サーバ１１はマイグレーション管理テーブル１１１をクリアする（ステップ５１１）。ＬＰＡＲ管理サーバ１１は負荷分散サーバ１０にＬＰＡＲ１６０のマイグレーション処理が終了したことを通知する（ステップ５１２）。負荷分散サーバ１０はＬＰＡＲ状態管理テーブル１０１をクリアする（ステップ５１３）。このように上記手順により負荷分散サーバ１０はＬＰＡＲのマイグレーション実施状況を知ることができる。
【００３４】
次にユーザクライアント１２からのリクエストが発生した場合に、負荷分散サーバ１０が処理要求を割り当てるＬＰＡＲを決定する処理を図６に示す。
まず、全てのＬＰＡＲについて割り当て優先度の算出処理を行う（ステップ６０１）。マイグレーションを実施している場合、マイグレーション処理を負荷として、コネクション数に換算して、現在接続しているコネクション数に加算する。その様子を図７に示す。ＬＰＡＲがマイグレーション処理中であるか否かをＬＰＡＲ状態管理テーブル１０１を参照し確認する（ステップ７０１）。もしマイグレーション実行中であれば、当該ＬＰＡＲのコネクション数３０３とマイグレーション多重度変換テーブル１０２の値を加算し、算出値を割り当て優先度３０５に格納する。マイグレーション実行中でなければ、コネクション数３０３を割り当て優先度３０５に格納する。図６に戻り、次に最も優先度の高いのＬＰＡＲを選択する（ステップ６０２）。本実施例では割り当て優先度値が小さいほど、優先度が高いことを示す。そして選択したＬＰＡＲに処理要求を割り当てる（ステップ６０３）。
【実施例２】
【００３５】
本実施例では、マイグレーション実行中には割り当て禁止にすることを特徴としている。以下、実施例１と異なる部分を説明する。
【００３６】
図８は本実施例におけるＬＰＡＲ状態管理テーブル１０１の例である。負荷分散装置１０が接続されているＬＰＡＲについてマイグレーション実施中であるか否かを管理するためのテーブルである。図３と異なり、割り当て優先度３０５は使用しない。
【００３７】
次に図９を用いて、ユーザクライアント１２からのリクエストが発生した場合に、負荷分散サーバ１０が処理要求を割り当てるＬＰＡＲを決定する処理を説明する。まず、全てのＬＰＡＲがマイグレーションを実施している最中であるか否かを確認する（ステップ９０１）。全ＬＰＡＲでマイグレーションを実施している場合、エラー処理を行う（ステップ９０２）。例えば一定時間待って再度ステップ９０１を行ったり、例えばＷｅｂシステムであれば“Ｓｅｒｖｉｃｅ  Ｔｅｍｐｏｒａｒｙ  Ｕｎａｖａｉｌａｂｌｅ”というようなエラーメッセージをユーザクライアントに返すといった処理である。全ＬＰＡＲでマイグレーションを実施しているのでなければ、マイグレーションを行っていないＬＰＡＲで且つコネクション数が最も小さいＬＰＡＲを選出する（ステップ９０２）。実施例２はマイグレーション処理を優先しマイグレーション実行中のＬＰＡＲには処理要求を割り当てない。図９では負荷分散サーバに接続されている全ＬＰＡＲがマイグレーションを実施しているケースも加味して記載しているが実際にはそのようなことは考えにくい。また、本実施例のようにマイグレーション実行中のＬＰＡＲにリクエスト処理の割り当てを禁止するのであれば、システム管理者は全ＬＰＡＲが同時にマイグレーションを行うことを回避するようにマイグレーションのスケジュールを調整するべきであろう。
【実施例３】
【００３８】
本実施例では、ＬＰＡＲのマイグレーションフェーズによって、割り当て処理を変えることを特徴とする。
【００３９】
図１０は、本実施例における負荷分散サーバ１０がＬＰＡＲのマイグレーション実施・終了の情報を採取する手順である。本例でも物理サーバ１５２から物理サーバ１５３へＬＰＡＲ１６０をマイグレーションするものとする。ＬＰＡＲ管理サーバ１１は負荷分散サーバ１０にＬＰＡＲ３の各マイグレーションフェーズ開始ごとに通知を行う（ステップ１００１、１００３）。通知を受けた負荷分散サーバ１０はＬＰＡＲ状態管理テーブル１０１を更新し該ＬＰＡＲがマイグレーションのそれぞれのフェーズを実施中であることを記憶する（ステップ１００２，１００４）。この場合、ＬＰＡＲ状態管理テーブル１０１のマイグレーションフラグ３０４にはフェーズごとに異なる値を定義して格納することによりフェーズを識別する。図１０の手順にて、負荷分散サーバ１０はＬＰＡＲのマイグレーション実施状況をフェーズを分けて認知することができる。
【００４０】
次に本実施例における、ユーザクライアント１２からのリクエストが発生した場合に、負荷分散サーバ１０が処理要求を割り当てるＬＰＡＲを決定する処理を図１１に示す。
まず、全てのＬＰＡＲについて割り当て優先度の算出処理を行う（ステップ１１０１）。本ステップの詳細を図１２に示す。ＬＰＡＲがマイグレーション処理中であるか否かをＬＰＡＲ状態管理テーブル１０１を参照し確認する（ステップ１２０１）。もしマイグレーション実行中であれば、マイグレーションフェーズの確認を行う（ステップ１２０２）。フェーズ１であれば、当該ＬＰＡＲのコネクション数３０３とマイグレーション多重度変換テーブル１０２の値を加算し、算出値を割り当て優先度３０５に格納する（ステップ１２０３）。フェーズ２であれば当該ＬＰＡＲを割り当て禁止にする（ステップ１２０４）。マイグレーション実行中でなければ、コネクション数３０３を割り当て優先度３０５に格納する（ステップ１１０５）。図１１に戻り、負荷分散サーバ１０に接続されている全てのＬＰＡＲがマイグレーションフェーズ２を実施していて割り当て禁止になっているか否かを確認する（ステップ１１０２）。全ＬＰＡＲでマイグレーションフェーズ２を実施している場合、エラー処理を行う（ステップ１１０３）。全ＬＰＡＲでマイグレーションフェーズ２を実施しているのでなければ、最も優先度の高いＬＰＡＲを選択する（ステップ１１０４）。本実施例では割り当て優先度値が小さいほど、優先度が高いことを示す。そして選択したＬＰＡＲに処理要求を割り当てる（ステップ１１０５）。
【００４１】
本実施例ではマイグレーション処理中でもＬＰＡＲが稼働しているマイグレーションフェーズ１では優先度を下げるが割り当て可能とし、停止しユーザリクエストを処理することができないフェーズ２では割り当て禁止としている。
【００４２】
なお、すべてのＬＰＡＲで同時にマイグレーションフェーズ２になる場合については実施例２と同様である。
【実施例４】
【００４３】
本実施例では、マイグレーション処理をコネクション数に換算する換算値をＬＰＡＲごとに設定することを特徴とする。各ＬＰＡＲのリソースが不均一である場合、マイグレーション処理中であってもユーザリクエストを受け付ける余裕の有無は異なる。図１３のとおり、各ＬＰＡＲごとにマイグレーション処理のコネクション数換算値１３０１を設けることにより、ＬＰＡＲによってマイグレーション処理の重みを変えることが可能である。
【００４４】
以上本発明の実施の形態について説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で様々に変更可能であることは言うまでもない。
例えば、本実施例ではコネクション数によりサーバの割り当てを決定しているが、他の方式でも適用可能である。例えば負荷分散の方式として重み付きラウンドロビン方式であれば、マイグレーション処理実行中のサーバの重みを調整することにより、割り当て優先順位や割り当てリストから外すといった制御を行うことが可能である。本発明はマイグレーション機能をサポートしたサーバと負荷分散サーバからなるシステムに広く適用可能である。
【符号の説明】
【００４５】
１０  負荷分散サーバ
１１  ＬＰＡＲ管理サーバ
１２  ユーザクライアント
１３  イントラネット
１４  インターネット
１０１  ＬＰＡＲ状態管理テーブル
１０２  マイグレーション処理換算テーブル
１１１  マイグレーション管理テーブル
１５１−１５３  物理サーバ
１５４−１５６  ハイパーバイザ
１５７−１６１  ＬＰＡＲ
１４０１  物理サーバ１
１４０２  物理サーバ２
１４０３  ＬＰＡＲ
１４０４  仮想ディスク
１４０５  仮想ＮＩＣ
１４０６  ハイパーバイザ
１４０７  物理ＮＩＣ
１４０８  物理Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ
１４０９  ＬＰＡＲ管理サーバ
１４１０  共有ストレージ
１４１１  ネットワーク
【図１】
2014067322.tif 000003
【図２】
2014067322.tif 000004
【図３】
2014067322.tif 000005
【図４】
2014067322.tif 000006
【図５】
2014067322.tif 000007
【図６】
2014067322.tif 000008
【図７】
2014067322.tif 000009
【図８】
2014067322.tif 000010
【図９】
2014067322.tif 000011
【図１０】
2014067322.tif 000012
【図１１】
2014067322.tif 000013
【図１２】
2014067322.tif 000014
【図１３】
2014067322.tif 000015
【図１４】
2014067322.tif 000016
【図１５】
2014067322.tif 000017