(57)【特許請求の範囲】
【請求項１】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末のアクセスの振分先となる仮想サーバを特定し、当該仮想サーバのＩＰアドレスを通知するアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムであって、
前記サーバ装置は、
当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、
前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部とを備え、
前記アクセス振分装置は、
ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部と、
前記サーバ装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、当該仮想サーバへの振分けが可である情報を前記記憶部に書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込む更新部と、
前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する通知部とを備え、
前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とするアクセス振分システム。
【請求項２】
前記更新部は、前記仮想サーバがＣＰＵを他の仮想サーバと共有しており、前記判断結果が、ＣＰＵに負荷がかかっていることを示している場合、当該仮想サーバが属する前記サーバ装置において動作する全ての仮想サーバへの振分けが不可である情報を前記記憶部に書き込むことを特徴とする請求項１に記載のアクセス振分システム。
【請求項３】
前記状態通知部は、前記仮想サーバが起動しているか否か、あるいは、前記仮想サーバの通信手段が起動しているか否かの判断結果を前記アクセス振分装置に通知するともに、前記仮想サーバが起動していないと判断した場合、あるいは、前記仮想サーバの通信手段が起動していないと判断した場合は、警告の受信に応じて動作状態が正常でないことを保守者に通知する保守監視装置に対して、警告を送信することを特徴とする請求項１又は２のいずれかの項に記載のアクセス振分システム。
【請求項４】
前記状態通知部は、前記判断結果を、前記仮想サーバに共通して使用されるコードにより通知することを特徴とする請求項１から請求項３のいずれかの項に記載のアクセス振分システム。
【請求項５】
前記更新部は、定期的に前記サーバ装置へ仮想サーバの状態問合せを送信し、
前記状態通知部は、前記アクセス振分装置から仮想サーバの状態問合せを受信して、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態を前記リソース状態監視部から取得し、前記判断結果を返送する、
ことを特徴とする請求項１から請求項４のいずれかの項に記載のアクセス振分システム。
【請求項６】
前記サーバ装置は、
前記ネットワークを介して接続されウェブサービスとしてエンドユーザ端末に提供されるファイルのマスタデータを記憶するマスタサーバから、前記ファイルを受信し、受信したファイルを共通管理領域の記憶手段に記憶し、当該ファイルを仮想サーバへ読み込むためのコマンドが入力された場合に、前記共通管理領域の記憶手段に記憶されている前記ファイルを当該仮想サーバに割り当てられた記憶手段に記憶する読込み部と、
前記仮想サーバへアクセスしてきたエンドユーザ端末に、当該仮想サーバに割り当てられた記憶手段に記憶している前記ファイルを配信する配信部とを備える、
ことを特徴とする請求項１から請求項５のいずれかの項に記載のアクセス振分システム。
【請求項７】
前記サーバ装置は、当該サーバ装置において動作している仮想サーバへのアクセスログを前記ネットワークを介して接続されるログサーバへ通知するログ通知部を備えることを特徴とする請求項１から請求項６のいずれかの項に記載のアクセス振分システム。
【請求項８】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末のアクセスの振分先となる仮想サーバを特定し、当該仮想サーバのＩＰアドレスを通知するアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムであって、
前記共通管理装置は、
前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、
前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部とを備え、
前記アクセス振分装置は、
ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部と、
前記共通管理装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、当該仮想サーバへの振分けが可である情報を前記記憶部に書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込む更新部と、
前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する通知部とを備え、
前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とするアクセス振分システム。
【請求項９】
前記共通管理装置は、前記複数のサーバ装置において動作している仮想サーバの負荷状態から、当該仮想サーバへのアクセスの優先度を決定して前記アクセス振分装置へ通知する優先度通知手段をさらに有し、
前記アクセス振分装置の通知部は、前記ドメイン名に対応し、かつ、振分けが可である仮想サーバのうち、優先順位が高い仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する、
ことを特徴とする請求項８に記載のアクセス振分システム。
【請求項１０】
前記エンドユーザ端末と他のネットワークを介して接続されるドメインネームシステムサーバをさらに備え、
前記アクセス振分装置は、
前記記憶部から読み出した、振分の可否の情報が変更された前記仮想サーバに対応したドメイン名と、当該ドメイン名に対応した仮想サーバのＩＰアドレスと、振分の可否の変更内容とを設定した更新情報を前記ドメインネームシステムサーバに通知する更新通知部をさらに備え、
前記ドメインネームシステムは、
ドメイン名と、振分可である仮想サーバのＩＰアドレスとを対応付けた情報を記憶するドメインネームシステム記憶部と、
前記アクセス振分装置から前記更新情報を受信し、当該更新情報に設定されているドメイン名に対応付けて前記ドメインネームシステム記憶部に記憶されている振分可である仮想サーバのＩＰアドレスの情報を、当該更新情報に設定されている振分の可否の変更内容に基づいて更新するドメインネームシステム更新部と、
前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応した仮想サーバのＩＰアドレスを前記ドメインネームシステム記憶部から読み出して通知するアドレス解決部とを備える、
ことを特徴とする請求項１から請求項９のいずれかの項に記載のアクセス振分システム。
【請求項１１】
前記アクセス振分装置の更新通知部は、
前記記憶部から読み出した、振分の可否の情報が変更された前記仮想サーバに対応したドメイン名と、当該ドメイン名に対応した振分可である全ての前記仮想サーバのＩＰアドレスとを設定した更新情報を前記ドメインネームシステムサーバに通知し、
前記ドメインネームシステムのドメインネームシステム更新部は、
受信した前記更新情報に設定されているドメイン名に対応付けて前記ドメインネームシステム記憶部に記憶されているＩＰアドレスの情報を、当該更新情報に設定されているＩＰアドレスの情報に書き換える、
ことを特徴とする請求項１０に記載のアクセス振分システム。
【請求項１２】
前記アクセス振分装置の更新通知部は、
前記記憶部から読み出した、振分の可否の情報が更新された前記仮想サーバに対応したドメイン名と、当該ドメイン名に対応した全ての前記仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否を示す情報とを設定した更新情報を前記ドメインネームシステムサーバに通知する更新通知部をさらに備え、
前記ドメインネームシステムにおいて、
前記ドメインネームシステム記憶部は、ドメイン名と、当該ドメイン名を用いる全ての仮想サーバのＩＰアドレスとを対応付けた情報を記憶し、
前記ドメインネームシステム更新部は、前記アクセス振分装置から受信した前記更新情報を前記ドメインネームシステム記憶部に書き込み、
前記アドレス解決部は、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、前記ドメインネームシステム記憶部から、当該ドメイン名に対応し、かつ、前記更新情報により振分けが可であることが示される仮想サーバのＩＰアドレスを読み出して通知する、
ことを特徴とする請求項１０に記載のアクセス振分システム。
【請求項１３】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムにおける前記サーバ装置であって、
当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、
前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部と、
を備え、
前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とすることを特徴とするサーバ装置。
【請求項１４】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムにおける前記共通管理装置であって、
前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、
前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部と、
を備え、
前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とすることを特徴とする共通管理装置。
【請求項１５】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムにおける前記アクセス振分装置であって、
ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部と、
前記サーバ装置、または、複数の前記サーバ装置の状態を管理する、前記ネットワークに接続される共通管理装置から、前記サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいた判断結果であり、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいた判断結果であって、負荷がかかっていると判断される所定の条件と合致するかの判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、当該仮想サーバへの振分けが可である情報を前記記憶部に書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込む更新部と、
前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する通知部と、
を備えることを特徴とするアクセス振分装置。
【請求項１６】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムに用いられるアクセス振分方法であって、
前記サーバ装置において、
リソース状態監視部が、当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得し、
状態通知部が、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知し、
前記アクセス振分装置において、
更新部が、前記サーバ装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部に、当該仮想サーバへの振分けが可である情報を書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込み、
通知部が、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知し、
前記状態通知部が、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断する
ことを特徴とするアクセス振分方法。
【請求項１７】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムに用いられるアクセス振分方法であって、
前記共通管理装置において、
リソース状態監視部が、前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得し、
状態通知部が、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知し、
前記アクセス振分装置において、
更新部が、前記共通管理装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部に、当該仮想サーバへの振分けが可である情報を書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込み、
通知部が、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知し、
前記状態通知部が、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断する
ことを特徴とするアクセス振分方法。
【請求項１８】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムの前記サーバ装置に用いられるコンピュータプログラムであって、
当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するステップと、
前記仮想サーバ毎に、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいて、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１９】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムの前記共通管理装置に用いられるコンピュータプログラムであって、
前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するステップと、
前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいて、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項２０】
複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムの前記アクセス振分装置に用いられるコンピュータプログラムであって、
前記サーバ装置、または、複数の前記サーバ装置の状態を管理する、前記ネットワークに接続される共通管理装置から、前記サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいた判断結果であり、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいた判断結果であって、負荷がかかっていると判断される所定の条件と合致するかの判断結果を受信するステップと、
受信した判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部に、当該仮想サーバへの振分けが可である情報を書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込むステップと、
前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラムに関する。
【背景技術】
【０００２】
従来、サーバが、ネットワークを介してアクセスされる複数の端末へアプリケーションを提供する場合、そのアクセス予想に基づいてアプリケーション毎にサーバを準備していた。しかし、これでは、実際のアクセスがアクセス予想と乖離する場合や、突発的な需要が発生した場合は、サーバに負荷がかかってしまい、端末からの要求に対応できないことがあった。また近年、複数のＣＰＵリソースを持った物理サーバが登場してきた。そこで、１台の物理サーバを仮想的な複数台のサーバとしてとして使用可能な仮想サーバ技術によりアプリケーションを提供することが考えられる。仮想サーバでは、負荷の状況に応じてリソースをダイナミックに割り当てるため、リソースの効率化が可能であり、近年、このような仮想サーバ技術を実現する製品が普及してきている。
【０００３】
図１０は、仮想サーバ技術によるＣＰＵリソースの割り当てを示す図である。例えば図１０（ａ）に示す当初の状態から、図１０（ｂ）に示すように仮想サーバ＃１のアクセスが増加し、仮想サーバ＃１のＣＰＵリソースが不足した場合、仮想サーバ＃２及び＃３が使用していたＣＰＵリソースの一部を仮想サーバ＃１へ割り当て、処理能力を高める。
【０００４】
一方、特許文献１には、負荷分散装置とコントロールサーバによって、ウェブサーバへのリクエスト数に応じてダイナミックに処理の分配先を変える負荷分散方法が記載されている。また、特許文献２には、異なるネットワークに属するサーバ間の負荷分散を実現する広域負荷分散装置について記載されている。また、特許文献３には、配信サーバ側に複数のネットワークに接続されたルータを用意し、クライアント側に設置されるルータと、上記ネットワークのコスト値を測定し、コスト値の低いルータを使用して、配信サーバがクライアントと通信する負荷分散方法が記載されている。
【特許文献１】特開２００２−２５９３５４号公報
【特許文献２】特開２０００−１３２５２４号公報
【特許文献３】特開２００７−１８４９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
例えば、仮想サーバの提供するアプリケーションがファイルダウンロードであることを想定すると、エンドユーザ端末へ大きなサイズのファイル（例えば、２００メガバイト程度）を送信する場合には、ＣＰＵの負荷は小さいが、ネットワークインタフェースの負荷は大きくなり、小さなサイズのファイル（例えば、１キロバイト程度）を送信する場合は、ＣＰＵの負荷は大きいが、ネットワークインタフェースの負荷は小さくなる。そのため、同じファイルダウンロードサイトを提供する仮想サーバが複数あった場合、各仮想サーバのＣＰＵの状態と、ネットワークインタフェースの状態とを併せて、どの仮想サーバへエンドユーザ端末からのアクセスを振り分けるか判断する必要がある。しかし、従来の技術では、個々の仮想サーバにおいて利用するリソースがダイナミックに変更される一方、運用者は物理サーバ単位でしかシステム状態を監視できない。そこで、各物理サーバ内の仮想サーバ単位にその負荷状況をリアルタイムで把握することが望まれていた。
また、上述した特許文献１の技術では、複数設置されるウェブサーバの前に負荷分散装置を設定する必要があるため、この負荷分散装置のパフォーマンスがボトルネックになって適切に負荷分散できない場合がある。同様に、特許文献２の技術では、ネットワーク間に設置された広域負荷分散装置にトラヒックが集中してしまい、この広域負荷分散装置のパフォーマンスがボトルネックになってしまう。特許文献３の技術では、各ネットワークのコストを監視する必要があり、運用の負荷が非常に高くなってしまう。
【０００６】
本発明は、上記問題を解決すべくなされたもので、その目的は、エンドユーザ端末からのアクセスを受ける仮想サーバ以外の装置の処理能力がボトルネックになることなく、ネットワークや運用にかかる負荷を抑えながら、適切に仮想サーバ間の負荷分散を行うことができるアクセス振分システム、サーバ装置、アクセス振分装置、共通管理装置、アクセス振分方法、及び、コンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末のアクセスの振分先となる仮想サーバを特定し、当該仮想サーバのＩＰアドレスを通知するアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムであって、前記サーバ装置は、当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部とを備え、前記アクセス振分装置は、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部と、前記サーバ装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、当該仮想サーバへの振分けが可である情報を前記記憶部に書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込む更新部と、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する通知部とを備え、前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とするアクセス振分システムである。
【０００９】
また、本発明は、上述するアクセス振分システムであって、前記更新部は、前記仮想サーバがＣＰＵを他の仮想サーバと共有しており、前記判断結果が、ＣＰＵに負荷がかかっていることを示している場合、当該仮想サーバが属する前記サーバ装置において動作する全ての仮想サーバへの振分けが不可である情報を前記記憶部に書き込むことを特徴とする。
【００１０】
また、本発明は、上述するアクセス振分システムであって、前記状態通知部は、前記仮想サーバが起動しているか否か、あるいは、前記仮想サーバの通信手段が起動しているか否かの判断結果を前記アクセス振分装置に通知するともに、前記仮想サーバが起動していないと判断した場合は、警告の受信に応じて動作状態が正常でないことを保守者に通知する保守監視装置に対して、警告を送信することを特徴とする。
【００１１】
また、本発明は、上述するアクセス振分システムであって、前記状態通知部は、前記判断結果を、前記仮想サーバに共通して使用されるコードにより通知することを特徴とする。
【００１２】
また、本発明は、上述するアクセス振分システムであって、前記更新部は、定期的に前記サーバ装置へ仮想サーバの状態問合せを送信し、前記状態通知部は、前記アクセス振分装置から仮想サーバの状態問合せを受信して、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態を前記リソース状態監視部から取得し、前記判断結果を返送する、ことを特徴とする。
【００１３】
また、本発明は、上述するアクセス振分システムであって、前記サーバ装置は、前記ネットワークを介して接続されウェブサービスとしてエンドユーザ端末に提供されるファイルのマスタデータを記憶するマスタサーバから、前記ファイルを受信し、受信したファイルを共通管理領域の記憶手段に記憶し、当該ファイルを仮想サーバへ読み込むためのコマンドが入力された場合に、前記共通管理領域の記憶手段に記憶されている前記ファイルを当該仮想サーバに割り当てられた記憶手段に記憶する読込み部と、前記仮想サーバへアクセスしてきたエンドユーザ端末に、当該仮想サーバに割り当てられた記憶手段に記憶している前記ファイルを配信する配信部とを備える、ことを特徴とする。
【００１４】
また、本発明は、上述するアクセス振分システムであって、前記サーバ装置は、当該サーバ装置において動作している仮想サーバへのアクセスログを前記ネットワークを介して接続されるログサーバへ通知するログ通知部を備えることを特徴とする。
【００１５】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末のアクセスの振分先となる仮想サーバを特定し、当該仮想サーバのＩＰアドレスを通知するアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムであって、前記共通管理装置は、前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部とを備え、前記アクセス振分装置は、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部と、前記共通管理装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、当該仮想サーバへの振分けが可である情報を前記記憶部に書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込む更新部と、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する通知部とを備え、前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とするアクセス振分システムである。
【００１６】
また、本発明は、上述するアクセス振分システムであって、前記共通管理装置は、前記複数のサーバ装置において動作している仮想サーバの負荷状態から、当該仮想サーバへのアクセスの優先度を決定して前記アクセス振分装置へ通知する優先度通知手段をさらに有し、前記アクセス振分装置の通知部は、前記ドメイン名に対応し、かつ、振分けが可である仮想サーバのうち、優先順位が高い仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する、ことを特徴とする。
【００１７】
また、本発明は、上述するアクセス振分システムであって、前記エンドユーザ端末と他のネットワークを介して接続されるドメインネームシステムサーバをさらに備え、前記アクセス振分装置は、前記記憶部から読み出した、振分の可否の情報が変更された前記仮想サーバに対応したドメイン名と、当該ドメイン名に対応した仮想サーバのＩＰアドレスと、振分の可否の変更内容とを設定した更新情報を前記ドメインネームシステムサーバに通知する更新通知部をさらに備え、前記ドメインネームシステムは、ドメイン名と、振分可である仮想サーバのＩＰアドレスとを対応付けた情報を記憶するドメインネームシステム記憶部と、前記アクセス振分装置から前記更新情報を受信し、当該更新情報に設定されているドメイン名に対応付けて前記ドメインネームシステム記憶部に記憶されている振分可である仮想サーバのＩＰアドレスの情報を、当該更新情報に設定されている振分の可否の変更内容に基づいて更新するドメインネームシステム更新部と、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応した仮想サーバのＩＰアドレスを前記ドメインネームシステム記憶部から読み出して通知するアドレス解決部とを備える、ことを特徴とする。
【００１８】
また、本発明は、上述するアクセス振分システムであって、前記アクセス振分装置の更新通知部は、前記記憶部から読み出した、振分の可否の情報が変更された前記仮想サーバに対応したドメイン名と、当該ドメイン名に対応した振分可である全ての前記仮想サーバのＩＰアドレスとを設定した更新情報を前記ドメインネームシステムサーバに通知し、前記ドメインネームシステムのドメインネームシステム更新部は、受信した前記更新情報に設定されているドメイン名に対応付けて前記ドメインネームシステム記憶部に記憶されているＩＰアドレスの情報を、当該更新情報に設定されているＩＰアドレスの情報に書き換える、ことを特徴とする。
【００１９】
また、本発明は、上述するアクセス振分システムであって、前記アクセス振分装置の更新通知部は、前記記憶部から読み出した、振分の可否の情報が更新された前記仮想サーバに対応したドメイン名と、当該ドメイン名に対応した全ての前記仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否を示す情報とを設定した更新情報を前記ドメインネームシステムサーバに通知する更新通知部をさらに備え、前記ドメインネームシステムにおいて、前記ドメインネームシステム記憶部は、ドメイン名と、当該ドメイン名を用いる全ての仮想サーバのＩＰアドレスとを対応付けた情報を記憶し、前記ドメインネームシステム更新部は、前記アクセス振分装置から受信した前記更新情報を前記ドメインネームシステム記憶部に書き込み、前記アドレス解決部は、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、前記ドメインネームシステム記憶部から、当該ドメイン名に対応し、かつ、前記更新情報により振分けが可であることが示される仮想サーバのＩＰアドレスを読み出して通知する、ことを特徴とする。
【００２０】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムにおける前記サーバ装置であって、当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部と、を備え、前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とするサーバ装置である。
【００２１】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムにおける前記共通管理装置であって、前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するリソース状態監視部と、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知する状態通知部と、を備え、前記状態通知部は、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とする共通管理装置である。
【００２２】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムにおける前記アクセス振分装置であって、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部と、前記サーバ装置、または、複数の前記サーバ装置の状態を管理する、前記ネットワークに接続される共通管理装置から、前記サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいた判断結果であり、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいた判断結果であって、負荷がかかっていると判断される所定の条件と合致するかの判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、当該仮想サーバへの振分けが可である情報を前記記憶部に書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込む更新部と、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知する通知部と、を備えることを特徴とするアクセス振分装置である。
【００２３】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムに用いられるアクセス振分方法であって、前記サーバ装置において、リソース状態監視部が、当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得し、状態通知部が、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知し、前記アクセス振分装置において、更新部が、前記サーバ装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部に、当該仮想サーバへの振分けが可である情報を書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込み、通知部が、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知し、前記状態通知部が、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とするアクセス振分方法である。
【００２４】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムに用いられるアクセス振分方法であって、前記共通管理装置において、リソース状態監視部が、前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得し、状態通知部が、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知し、前記アクセス振分装置において、更新部が、前記共通管理装置から前記判断結果を受信し、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部に、当該仮想サーバへの振分けが可である情報を書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込み、通知部が、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知し、前記状態通知部が、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合、当該仮想サーバが占有するＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断し、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて負荷がかかっているかのＣＰＵの状態を判断することを特徴とするアクセス振分方法である。
【００２５】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムの前記サーバ装置に用いられるコンピュータプログラムであって、当該サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するステップと、前記仮想サーバ毎に、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいて、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知するステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【００２６】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備える複数のサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記複数のサーバ装置の状態を管理する共通管理装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムの前記共通管理装置に用いられるコンピュータプログラムであって、前記複数のサーバ装置において動作している各仮想サーバに割り当てられたＣＰＵの状態と、当該仮想サーバの通信手段の状態とを取得するステップと、前記仮想サーバ毎に、前記リソース状態監視部により取得した、当該仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいて、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいて、負荷がかかっていると判断される所定の条件と合致するかを判断し、判断結果を前記アクセス振分装置へ通知するステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【００２７】
また、本発明は、複数の仮想サーバとして動作し、エンドユーザ端末との間で通信を行う通信手段を当該仮想サーバ毎に備えるサーバ装置と、エンドユーザ端末からのアクセスを前記仮想サーバへ振分けるアクセス振分装置と、前記アクセス振分装置から通知された振分先の仮想サーバのＩＰアドレスを用いて、当該仮想サーバへアクセスするエンドユーザ端末とをネットワークを介して接続してなるアクセス振分システムの前記アクセス振分装置に用いられるコンピュータプログラムであって、前記サーバ装置、または、複数の前記サーバ装置の状態を管理する、前記ネットワークに接続される共通管理装置から、前記サーバ装置において動作している仮想サーバに割り当てられたＣＰＵの状態及び当該仮想サーバの通信手段の状態のそれぞれについて、前記仮想サーバに占有して使用するＣＰＵが割り当てられている場合は、当該仮想サーバが占有するＣＰＵの使用状況に基づいた判断結果であり、前記仮想サーバがＣＰＵを他の仮想サーバと共有して使用する場合は、当該ＣＰＵを共有する全ての仮想サーバによる当該ＣＰＵの使用状況に基づいた判断結果であって、負荷がかかっていると判断される所定の条件と合致するかの判断結果を受信するステップと、受信した判断結果が、前記仮想サーバに割り当てられたＣＰＵ、及び、当該仮想サーバの通信手段とも負荷がかかっていない状態であることを示している場合、ドメイン名と、仮想サーバのＩＰアドレス及び当該仮想サーバへの振分けの可否とを対応付けた情報を記憶する記憶部に、当該仮想サーバへの振分けが可である情報を書き込み、当該判断結果が、前記仮想サーバに割り当てられたＣＰＵ、または、当該仮想サーバの通信手段に負荷がかかっている状態であることを示している場合、当該仮想サーバへの振分けが不可である情報を前記記憶部に書き込むステップと、前記エンドユーザ端末のアクセス先のドメイン名の情報を受信し、当該ドメイン名に対応し、かつ、振分けが可である仮想サーバのＩＰアドレスを前記記憶部から読み出して通知するステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【発明の効果】
【００２８】
本発明によれば、アクセス振分装置は、仮想サーバのＣＰＵ及び通信手段の状態を受信して当該仮想サーバへの振分けが可であるか不可であるかの情報を更新し、当該情報を用いて、エンドユーザ端末がウェブへアクセスする前に、当該ウェブを提供する、振分け可能な仮想サーバのＩＰアドレスを通知する。よって、エンドユーザ端末から仮想サーバのアクセスデータを、他の装置が中継して振分けを行う必要がなく、アクセス振分装置やネットワークの負荷、保守にかかる負荷も軽い。このように、実際にウェブサービスを提供する仮想サーバ以外の装置の処理能力がボトルネックになることなく、システム全体にかかる負荷や運用にかかる負荷を抑えながら、適切に仮想サーバ間の負荷分散を行うことが可能となる。
また、アクセス振分装置が仮想サーバ振分可否の情報更新間隔を、ユーザのアクセス間隔見合いに応じて変更することで、たとえば仮想サーバの障害や定期メンテナンスにより仮想サーバが停止した場合でもユーザへの影響を極小化することが可能となる。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照して本発明の一実施の形態を説明する。
図１は、本発明の一実施の形態によるアクセス振分システムの全体構成図である。同図において、アクセス振分装置１及びキャッシュサーバ２は、保守ネットワーク７及びエンドユーザ向けネットワーク８と接続されている。さらに、保守ネットワーク７には、保守監視装置３、マスタサーバ５及びログサーバ６が接続され、エンドユーザ向けネットワーク８にはエンドユーザ端末４が接続されている。保守ネットワーク７及びエンドユーザ向けネットワーク８は、例えば、ＩＰネットワークである。同図においては、キャッシュサーバ２及びエンドユーザ端末４をそれぞれ１台のみ示しているが、複数台が存在しうる。
【００３０】
キャッシュサーバ２は、実サーバのハードウェア本体であり、複数台の仮想的なサーバコンピュータとして動作する。キャッシュサーバ２の共通管理部２７は、当該キャッシュサーバ２全体を管理し、当該キャッシュサーバ２において実現される仮想的なサーバコンピュータを仮想サーバ２８とする。
【００３１】
リソースプール２３は、共通管理領域２０のＯＳ（Operating System）や、仮想ＯＳ環境２４が使用するＣＰＵ（Central Processing Unit）、メモリ等の各種リソースが確保されている仮想的な空間である。各仮想ＯＳ環境２４へのリソース割り当ては、共通管理領域２０のＯＳにより、ＣＰＵの負荷等に応じて動的に行われるが、固定的に割り当てるものであってもよい。
【００３２】
仮想ＯＳ環境２４は、仮想サーバ２８の実行環境であり、共通管理領域２０のＯＳにより割り当てられた、リソースプール２３内のＣＰＵやメモリ等の各種リソースを使用して動作する。仮想ＯＳ環境２４で実行される仮想ＯＳは、他の仮想ＯＳとリソースを共有するためのリソース共有手段に加えて、予めリソースを占有する（例えば、仮想ＯＳ＃１はＣＰＵ稼働率の５０％を占有・排他的に確保し、他の仮想ＯＳ＃２〜＃ｎには使用させない）ための設定が可能なリソース占有手段を持つこともできる。各仮想ＯＳ環境２４は、プロセス２５を実行するが、自身のプロセス２５のみにアクセス可能であり、他の仮想ＯＳ環境２４のプロセス２５にはアクセスできない。プロセス２５には、例えば、エンドユーザ端末４にファイルダウンロード等を行うためのウェブアクセスや、Ｄｉｓｋ  Ｉ／Ｏなどが含まれる。ＮＩＣ２６は、エンドユーザ向けネットワーク８を介してエンドユーザ端末４との間の通信を行うためのハードウェアであり、仮想サーバ２８毎に備えられる。各ＮＩＣ２６は、それぞれが異なるＩＰアドレスを有し、ルーチングテーブル、フィルタリングルールなどの各種設定やその情報の参照もそれぞれのＮＩＣ２６毎に行うことができる。これにより、ネットワークの仮想化が可能であり、複数の仮想サーバ２８がＩＰレイヤを共有し、１台のＮＩＣを使用する場合と比較すると、それぞれの仮想サーバ２８は、自身の備えるＮＩＣ２６の性能を十分活用することができる。
ここでは、キャッシュサーバ２は、複数の仮想サーバ２８として、仮想サーバ２８−１〜２８−３を実現するものとし、仮想サーバ２８−ｉ（ｉ＝１〜３）に対応する仮想ＯＳ環境２４、プロセス２５、ＮＩＣ２６をそれぞれ、仮想ＯＳ環境２４−ｉ、プロセス２５−ｉ、ＮＩＣ２６−ｉと記載する。
【００３３】
共通管理領域２０は、状態応答プログラム、リソース状態監視プログラムの実行環境を提供する。つまり、共通管理領域２０のＯＳ上でこれらのプログラムを動作させることによって、共通管理部２７における状態応答部２１及びリソース状態監視部２２を実現する。状態応答部２１は、アクセス振分装置１からの仮想サーバの状態問合せを受け、仮想ＯＳ環境２４や、リソースプール２３、ＮＩＣ２６の状態に応じて応答を返送する。リソース状態監視部２２は、各仮想ＯＳ環境２４のＣＰＵ、ＮＩＣ２６の状態を定期的に収集し、状態応答部２１からの要求に対して収集したデータを通知する。
【００３４】
上記により、キャッシュサーバ２において、共通管理部２７は、共通管理領域２０と、共通管理領域２０のために提供されるリソースプール２３内のリソースとにより実現され、仮想サーバ２８−ｉは、仮想ＯＳ環境２４−ｉと、ＮＩＣ２６−ｉと、仮想ＯＳ環境２４−ｉに割り当てられたリソースプール２３内のリソースとにより実現される。
【００３５】
アクセス振分装置１は、更新部１１、記憶部１２及び通知部１３を備える。記憶部１２は、ＦＱＤＮ（Fully Qualified Domain Name：完全修飾ドメイン名）と、当該ＦＱＤＮのウェブサービスを提供する仮想サーバ２８のＩＰアドレスと、当該ＩＰアドレスを有する仮想サーバ２８が現在ウェブサービスを提供可能か否かの状態とを対応付けた情報を示す振分情報を記憶している。更新部１１は、キャッシュサーバ２へ仮想サーバ２８の状態問合せを行い、その応答によって、記憶部１２内の情報を更新する。また、更新部１１は、必要に応じて保守監視装置３に対して障害通知メッセージを送信する。通知部１３は、エンドユーザ端末４からのＤＮＳ（Domain Name System）問合せを受け、記憶部１２内の情報を参照して得たアクセス可能な仮想サーバ２８のＩＰアドレスを返送する。
【００３６】
保守監視装置３は、アクセス振分装置１、キャッシュサーバ２を含むシステム全体を保守監視するための装置である。エンドユーザ端末４は、例えば、パーソナルコンピュータや携帯電話などのコンピュータ端末であり、キャッシュサーバ２へアクセス先のＦＱＤＮを送信し、返送されるＩＰアドレスを用いてキャッシュサーバ２の仮想サーバ２８へアクセスする。マスタサーバ５は、キャッシュサーバ２の仮想サーバ２８がウェブサービスとして提供するダウンロードファイルのマスタデータを記憶しており、ダウンロードファイルをキャッシュサーバ２へ配信する。ログサーバ６は、キャッシュサーバ２の各仮想サーバ２８におけるエンドユーザ端末４からのアクセスログを受信して記憶するとともに、当該アクセスログを集計する。
【００３７】
図２は、図１に示すアクセス振分システムの動作概要を示す図である。まず、アクセス振分装置１の更新部１１は、保守ネットワーク７を介してキャッシュサーバ２へＳＮＭＰ（Simple Network Management Protocol）により、仮想サーバ２８の状態問合せを送信する（ステップＳ１０１）。キャッシュサーバ２の状態応答部２１は、状態問合せを受信すると、リソース状態監視部２２から仮想サーバ２８のＣＰＵリソース状態及びＮＩＣ２６のスループットのデータを取得し（ステップＳ１０２）、取得したデータから仮想サーバ２８の状態を判断する（ステップＳ１０３）。仮想サーバ２８の動作状態が正常ではなく、警報の転送が必要な場合、状態応答部２１は、保守監視装置３へ警報を転送する（ステップＳ１０４）。保守監視装置３は、受信した警報を画面に表示するなどして動作状態が正常ではないことを保守者に通知する。状態応答部２１は、仮想サーバ２８の状態の判断結果をアクセス振分装置１へ返送する（ステップＳ１０５）。アクセス振分装置１の更新部１１は、キャッシュサーバ２の状態応答部２１からの応答により、仮想サーバ２８の状態の判断結果を受信すると、仮想サーバ２８がウェブサービスを提供できるか否かを判断し、その判断により記憶部１２が記憶している振分情報内のウェブサービス提供可否の情報を更新する。アクセス振分装置１及びキャッシュサーバ２は、定期的に、全ての仮想サーバ２８についてステップＳ１０１〜Ｓ１０５を繰り返す。
【００３８】
エンドユーザ端末４は、ウェブにアクセスする際に、アクセス先のＦＱＤＮをアクセス振分装置１へ通知する（ステップＳ２０１）。アクセス振分装置１の通知部１３は、記憶部１２内の振分情報を参照して、受信したＦＱＤＮに対応した、アクセス可能な仮想サーバ２８のＩＰアドレスを読み出して、エンドユーザ端末４へ返送する（ステップＳ２０２）。エンドユーザ端末４は、受信したＩＰアドレスを宛先としてウェブサービス要求をキャッシュサーバ２の仮想サーバ２８へ送信する。アクセスを受けたキャッシュサーバ２の仮想サーバ２８は、要求されたファイルダウンロードなどのウェブサービスをエンドユーザ端末４へ提供する。
【００３９】
図３は、図２に示すアクセス振分システムのステップＳ１０１〜ステップＳ１０５に示す状態問い合わせの詳細な処理手順を示す図である。
【００４０】
アクセス振分装置１の更新部１１は、所定の時間毎に、保守ネットワーク７を介してキャッシュサーバ２へＳＮＭＰにより、仮想サーバ２８の状態問合せを送信する（ステップＳ３０１、Ｓ３０２）。ここでは、１回の問合せで１つの仮想サーバ２８の状態を問い合わせることとするが、１回の問合せで複数または全ての仮想サーバ２８の状態を問い合わせることでもよい。
【００４１】
キャッシュサーバ２の状態応答部２１は、仮想サーバ２８−ｉについての状態問合せを受信すると、まず、仮想ＯＳ環境２４−ｉが起動しているか否かを判断する（ステップＳ３０３）。仮想ＯＳ環境２４−ｉが起動していると判断した場合（ステップＳ３０３：ＹＥＳ）、次に、状態応答部２１は、仮想サーバ２８−ｉの備えるＮＩＣ２６−ｉが起動しているかを判断する（ステップＳ３０４）。ＮＩＣ２６−ｉが起動していると判断した場合（ステップＳ３０６：ＹＥＳ）、続いて状態応答部２１は、リソース状態監視プログラムが起動しているかを判断する（ステップＳ３０５）。リソース状態監視プログラムが起動していると判断した場合（ステップＳ３０５：ＹＥＳ）、状態応答部２１は、リソース状態監視部２２へ仮想サーバ２８−ｉを特定する情報と、データ要求を通知する（ステップＳ３０６）。キャッシュサーバ２のリソース状態監視部２２は、全ての仮想サーバ２８それぞれについて定期的に、ＣＰＵリソース状態及びＮＩＣ２６のスループットのデータを取得し、メモリ等の記憶手段に記憶しており、データ要求の直前に取得した、仮想サーバ２８−ｉのＣＰＵリソース状態及びＮＩＣ２６−ｉのスループットのデータを返送する（ステップＳ３０７）。
【００４２】
状態応答部２１は、取得したＮＩＣ２６−ｉのスループットが、負荷が高いと判断するための予め決められた閾値以下であるかを判断する（ステップＳ３０８）。ＮＩＣ２６−ｉのスループットが閾値以下であると判断した場合（ステップＳ３０８：ＹＥＳ）、次に、状態応答部２１は、仮想ＯＳ環境２４−ｉに割り付けられたＣＰＵリソースの使用率が、負荷が高いと判断するための予め決められた閾値以下であるかを判断する（ステップＳ３０９）。仮想ＯＳ環境２４−ｉに割り付けられたＣＰＵリソースの使用率が、予め決められた閾値以下であると判断した場合（ステップＳ３０９：ＹＥＳ）、状態応答部２１は、リターンコード０を状態応答送信に設定し（ステップＳ３１０）、アクセス振分装置１へ返送する（ステップＳ３１１、Ｓ３１２）。
【００４３】
なお、ＮＩＣ２６−ｉのスループットが閾値より大きいと判断した場合（ステップＳ３０８：ＮＯ）、状態応答部２１は、リターンコード１を状態応答に設定し（ステップＳ３１３）、アクセス振分装置１へ返送する（ステップＳ３１１、Ｓ３１２）。また、ＣＰＵリソースの使用率が予め決められた閾値よりも大きいと判断した場合（ステップＳ３０９：ＮＯ）、状態応答部２１は、リターンコード２を状態応答に設定し（ステップＳ３１４）、アクセス振分装置１へ返送する（ステップＳ３１１、Ｓ３１２）。
【００４４】
また、仮想ＯＳ環境２４−ｉが起動していないと判断した場合（ステップＳ３０３：ＮＯ）、状態応答部２１は、保守監視装置３へ仮想ＯＳ環境２４−ｉを特定する情報と、仮想ＯＳが起動していないことを示すリターンコード４とを警報として転送し（ステップＳ３１５、Ｓ３１６）、リターンコード４を設定した状態応答をアクセス振分装置１へ返送する（ステップＳ３１１、Ｓ３１２）。
また、ＮＩＣ２６−ｉが起動していないと判断した場合（ステップＳ３０４：ＮＯ）、状態応答部２１は、保守監視装置３へ仮想サーバ２８−ｉを特定する情報と、ＮＩＣが起動していないことを示すリターンコード３とを警報として転送し（ステップＳ３１７、Ｓ３１８）、リターンコード３を設定した状態応答をアクセス振分装置１へ返送する（ステップＳ３１１、Ｓ３１２）。
また、リソース状態監視部２２が起動していないと判断した場合（ステップＳ３０５：ＮＯ）、状態応答部２１は、保守監視装置３へ仮想サーバ２８−ｉを特定する情報と、リソース状態監視プログラムが起動していないことを示すリターンコード５とを警報として転送し（ステップＳ３１９、Ｓ３２９）。リターンコード４を設定した状態応答をアクセス振分装置１へ返送する（ステップＳ３１１、Ｓ３１２）。
【００４５】
アクセス振分装置１の更新部１１は、キャッシュサーバ２の状態応答部２１からの応答により、仮想サーバ２８−ｉの状態を受信すると、リターンコードが０か否かを判断する（ステップＳ３２１）。リターンコードが０であれば（ステップＳ３２１：「０」）、振分け対象として継続運用が可能であると判断し、記憶部１２内の振分情報に、仮想サーバ２８−ｉのアドレスと対応づけて、振分け可を示す情報を書き込む（ステップＳ３２２）。一方、リターンコードが０以外であれば（ステップＳ３２１：「０以外」）、仮想サーバ２８−ｉを振分け対象として外すべきであると判断し、記憶部１２内の振分情報に、仮想サーバ２８−ｉのアドレスと対応づけて、振分け不可を示す情報を書き込む（ステップＳ３２３）。
【００４６】
アクセス振分装置１及びキャッシュサーバ２は、定期的に、全ての仮想サーバ２８について図３の処理を繰り返す。
【００４７】
なお、キャッシュサーバ２の仮想ＯＳ環境２４で実行される仮想ＯＳがリソース共有手段を有する場合、キャッシュサーバ２内の一つの仮想ＯＳ環境２４において全てのリソースを使い切ってしまうと、そのキャッシュサーバ２内の他の仮想ＯＳ環境２４では新たにリソースを取得できなくなるという問題がある。そのため、このようにリソースを使い切ったキャッシュサーバ２にはアクセスを振分けないようにし、他のキャッシュサーバ２へアクセスを振分けるようにする。
そこで、上述した図３のステップＳ３０９において、状態応答部２１は、仮想ＯＳ環境で使用しているＯＳがリソース共有手段、リソース占有手段のいずれを有しているかを判断し、リソース占有手段を有する場合は上記の図３の処理を行う。
【００４８】
一方、リソース共有手段を有する場合は、アクセス振分装置１から問合せがあった仮想サーバ２８−ｉにおける仮想ＯＳのリソース負荷が低く場合であっても、同じリソースを共有している他の仮想ＯＳにおけるリソース負荷が高い場合は負荷がかかっていると判断する。つまり、キャッシュサーバ２全体におけるＣＰＵ負荷が所定の閾値よりも大きい場合は、その旨を示すリターンコードを状態応答に設定し、アクセス振分装置１へ返送する。
アクセス振分装置１は、各キャッシュサーバ２で実現される仮想サーバ２８の情報を記憶部１２に記憶しており、キャッシュサーバ２全体に負荷がかかっている旨のリターンコードを受信した場合には、状態問合せ対象の仮想サーバ２８−ｉが属するキャッシュサーバ２内の全ての仮想サーバ２８を特定し、特定した仮想サーバ２８については振分け不可を示す情報を振分情報に書き込む。
【００４９】
また、上記においては、ＣＰＵ及びＮＩＣ２６の状態により仮想サーバ２８−ｉに負荷がかかっているかを判断しているが、以下により仮想サーバ２８−ｉの負荷を判断してもよい。
（１）仮想ＯＳ環境２４−ｉにおいて、エンドユーザ端末４からのリクエスト数やセッション数を１秒おきなどで定期的に監視し、それが所定の閾値を超えるかにより負荷を判断する。
（２）仮想ＯＳ環境２４−ｉが備えるＤｉｓｋ  Ｉ／Ｏを監視し、その監視結果に基づいて負荷を判断する。
（３）仮想ＯＳ環境２４−ｉにおけるプロセス数を監視し、その監視結果に基づいて負荷を判断する。
上記により負荷が高いと判断した場合には、その旨を示すリターンコード（０以外）を設定してアクセス振分装置１に返送することにより、当該仮想サーバ２８−ｉへアクセスを振分けないようにし、接続を制限する。
【００５０】
図５は、図１に示すアクセス振分装置１の記憶部１２が保持する振分情報を示す図である。
同図に示すように、振分情報は、ＦＱＤＮと、当該ＦＱＤＮを有する仮想サーバ２８のＩＰアドレスと、当該仮想サーバ２８が起動しているか否か、ＣＰＵ状態がＯＫであるか否か、ＮＩＣ状態がＯＫであるか否かの情報を保持している。
アクセス振分装置１の更新部１１は、ある仮想サーバ２８−ｉの状態問合せの結果、リターンコード０を受信したときには、当該仮想サーバ２８−ｉに対応させて振分情報に起動状態にＯＮを、ＣＰＵ状態及びＮＩＣ状態にＯＫを設定し、リターンコード１を受信したときには、起動状態にＯＮを、ＮＩＣ状態にＮＧを設定し、リターンコード２を受信したときには起動状態ＯＮを、ＣＰＵ状態にＮＧを、ＮＩＣ状態にＯＫを設定し、リターンコード３または４を受信したときには起動状態にＯＦＦを設定する。
このように、全ての仮想サーバ２８について、同じ状態の場合には同じ値が設定されるような、共通のリターンコードを使用することにより、振分情報の更新が容易になる。
【００５１】
図４は、図２に示すアクセス振分システムのステップＳ１０６〜ステップＳ１０７に示す状態問い合わせの詳細な処理手順を示す図である。
エンドユーザ端末４は、アクセス先となるウェブサービスのＦＱＤＮを設定したＦＱＤＮ問合せをアクセス振分装置１へ送信する（ステップＳ４０１、Ｓ４０２）。アクセス振分装置１の通知部１３は、記憶部１２内の振分情報を参照して、受信したＦＱＤＮに対応し、起動状態がＯＮであり、かつ、ＣＰＵ状態及びＮＩＣ状態がＯＫであるアクセス可能な仮想サーバ２８を特定する。通知部１３は、特定したアクセス可能な仮想サーバ２８が１つの場合、振分情報から特定した仮想サーバ２８のＩＰアドレスを取得し、特定したアクセス可能な仮想サーバ２８が複数ある場合、その中から所定の基準に従って１つを選択し、選択した仮想サーバ２８のＩＰアドレスを振分情報から取得する（ステップＳ４０３）。アクセス可能な仮想サーバ２８から１つを選択する場合には、例えば、前回アクセス先として選択した時刻が最も古いものを選択したり、ランダムに選択するようにしたりすることができる。
【００５２】
アクセス振分装置１の通知部１３は、取得した仮想サーバ２８のＩＰアドレスをエンドユーザ端末４へ通知する（ステップＳ４０４、Ｓ４０５）。エンドユーザ端末４は、アクセス振分装置１からＩＰアドレスを受信すると（ステップＳ４０６）、当該ＩＰアドレスを宛先として仮想サーバ２８へアクセスする（ステップＳ４０７）。キャッシュサーバ２の仮想サーバ２８は、ＮＩＣ２６によりエンドユーザ向けネットワーク８を介してエンドユーザ端末４からのアクセスを受信すると、プロセス２５によりファイルダウンロードなどのウェブサービスを提供する。
【００５３】
プロセス２５により、エンドユーザ端末４へダウンロードされるデータは、マスタサーバ５から配信されたものである。具体的には、マスタサーバ５は、ダウンロード対象のファイルをキャッシュサーバ２へ配信する。キャッシュサーバ２の共通管理部２７は、一旦、共通管理領域２０のメモリへ配信されたファイルを記憶する。そして、仮想ＯＳ環境２４にこのファイルの読み込むためのコマンドが入力されると、仮想ＯＳ環境２４は、共通管理領域２０のメモリに記憶されている指示されたファイルを読み込んで、当該仮想ＯＳ環境２４に割り当てられたメモリに書き込む。以降、仮想ＯＳ環境２４により実行されるプロセス２５により、マスタサーバ５より配信されたファイルをエンドユーザ端末４へダウンロードすることが可能になる。仮想ＯＳ環境２４にファイルを読み込むためのコマンドは、入力手段により保守者が入力してもよく、共通管理部２７において、マスタサーバ５から配信されたファイルが共通管理領域２０のメモリに記憶されたことを検出したときに、コマンドが実行されるようにしてもよい。
【００５４】
キャッシュサーバ２の各仮想サーバ２８におけるエンドユーザ端末４からのアクセスログデータは、共通管理部２７により定期的にログサーバ６へ送信される。アクセスログデータには、仮想サーバ２８の識別情報、当該仮想サーバ２８がエンドユーザ端末４からのアクセスを受けた時間、当該エンドユーザ端末４のアドレス、アクセスにより実行されたプロセス２５等の情報が含まれる。ログサーバ６は、受信したアクセスログデータを自身の備える記憶部に記憶するとともに、当該アクセスログデータを用いて各種統計データを作成する。
【００５５】
上記においては、アクセス振分装置１が直接エンドユーザ端末４からＦＱＤＮ問合せを受信しているが、エンドユーザ向けネットワーク８上にＤＮＳサーバを設置し、エンドユーザ端末４が、アクセス先ウェブサービスのＩＰアドレスを問合せるため、ＦＱＤＮをＤＮＳサーバへ送信し、ＤＮＳサーバがアクセス振分装置１からアクセス先のＦＱＤＮに対応したＩＰアドレスを取得してエンドユーザ端末４へ通知するようにしてもよい。
【００５６】
ここで、エンドユーザ端末４がエンドユーザ向けネットワークとは異なるネットワーク上に設置されたＤＮＳサーバへＦＱＤＮ問い合わせを送信し、エンドユーザ端末４とアクセス振分装置１とが直接通信を行なわない場合について説明する。これは、例えば、アクセス振分装置１はＩＰｖ６による通信を行うが、エンドユーザ端末４が名前解決のためにＤＮＳサーバへアクセスするときには、ＩＰｖ４による通信しか行うことができない場合や、エンドユーザ端末４がエンドユーザ向けネットワーク８に接続する前に、最初に外部ネットワークと接続しなければならない場合が想定される。
【００５７】
図６は、エンドユーザ端末４が外部ネットワークに設置されるＤＮＳサーバにより名前解決を行なう場合のアクセス振分システムの全体構成を示し、図１と同様の構成には同じ符号を付与してその説明を省略する。図６において、エンドユーザ端末４は、エンドユーザ向けネットワーク８及びネットワーク９に接続され、ネットワーク９に接続されているＤＮＳ（Domain Name System）サーバ１００をエンドユーザ端末４のプライマリＤＮＳとする。ここでは、エンドユーザ向けネットワーク８をＩＰｖ６網、ネットワーク９をＩＰｖ４網として説明するが、エンドユーザ向けネットワーク８とネットワーク９が同じ通信プロトコルを用いる場合にも適用可能である。
【００５８】
図６に示す構成において、エンドユーザ端末４は、ＤＮＳサーバ１００にＦＱＤＮ問合を送信して名前解決を行なうが、ＤＮＳサーバ１００は、従来から汎用的に用いられている一般的なＤＮＳ機能を有するものであり、アクセス振分装置１が管理しているような、各仮想サーバ２８の状態は管理できない。そのため、キャッシュサーバ２は、高負荷のため使用できない、あるいは、障害が発生している仮想サーバ２８へも振分を行なってしまう。これを解決するためには、例えば、委譲やゾーン転送が考えられるが、委譲の場合、ＩＰｖ４のグローバルアドレスをアクセス振分装置１へも付与する必要があるため、システムの規模が大きくなった場合には実現が困難となる。一方、ゾーン転送とは、該当ドメインのゾーン情報、すなわち、ドメインとＩＰアドレスとを対応づけた情報を転送するものであるが、アクセス振分装置１では、従来の一般的なＤＮＳが実現する機能に対して追加した機能部によって、仮想サーバ２８の状態を管理及び判別するものであり、従来技術のゾーン転送をそのまま適用しても、仮想サーバ２８の状態を反映することはできない。そこで、アクセス振分装置１は、仮想サーバ２８の状態に応じて、ＤＮＳサーバ１００が保持するゾーン情報の更新を要求する。
【００５９】
図６に示すアクセス振分装置１は、図１に示すアクセス振分装置１の構成をさらに詳細に示すとともに、更新通知部１５が追加されている。更新通知部１５は、ゾーン情報の更新内容をＤＮＳサーバ１００へ通知する。また、通信部１６は、図１に示すアクセス振分装置１にも備えられ、保守ネットワーク７、エンドユーザ向けネットワーク８を介したデータの送受信を行なうものであるが、ＤＮＳサーバ１００とは、ネットワーク９を介して、あるいは、専用の回線によりデータの送受信を行なうものであってもよい。また、通知部１３が備える名前解決部１４は、従来のＤＮＳサーバにおいて実現されている名前解決機能と同様の機能を有する。
【００６０】
ＤＮＳサーバ１００は、記憶部１０１、通信部１０２、更新部１０３、名前解決部１０４を備える。記憶部１０１は、ゾーン情報を記憶する。通信部１０２は、ネットワーク９を介してデータの送受信を行なうものであるが、アクセス振分装置１とは、専用の回線によりデータの送受信を行なうものであってもよい。更新部１０３は、アクセス振分装置１から受信したゾーン情報の更新内容に基づいて、記憶部１０１に記憶されているゾーン情報を更新する。名前解決部１０４は、アクセス振分装置１の名前解決部１４と同様の機能を有し、ゾーン情報を参照して、エンドユーザ端末４へ仮想サーバ２８のＩＰアドレスを通知する。
【００６１】
図７は、図６に示すアクセス振分装置１の記憶部１２に記憶される振分情報の例を示す図である。同図に示す本実施形態の振分情報は、図５に示す振分情報と同様のデータ構成であるが、ＩＰアドレスにはＩＰｖ６のＩＰアドレスが設定されている。
【００６２】
図８は、図６に示すアクセス振分装置１の記憶部１２、及び、ＤＮＳサーバ１００の記憶部１０１に記憶されるゾーン情報の例を示す図である。同図において、ゾーン情報は、ドメイン名と、当該ドメイン名に対応した１以上のＩＰアドレスの情報を記憶しており、例えば、テキストファイルにより記述される。このゾーン情報には、現在振分可能な仮想サーバ２８のＩＰアドレスのみが設定される。
【００６３】
図９は、図６に示すアクセス振分システムの処理フローを示す図である。
ＤＮＳサーバ１００の名前解決部１０４は、アクセス先となるウェブサービスのＦＱＤＮを設定したＦＱＤＮ問合せをエンドユーザ端末４から受信すると、ゾーン情報から、受信したＦＱＤＮに含まれるドメイン名に対応したＩＰアドレスを読み出して返送している。特定したドメイン名に対応して複数のＩＰアドレスが登録されている場合には、その複数のＩＰアドレスのうち、前回アクセス先として選択した時刻が最も古いものを１つ選択したり、ランダムに１つを選択したり、あるいは、ラウンドロビンなどの所定の規則に従って１つを選択し、返送する。例えば、図７に示すゾーン情報の場合、ＦＱＤＮに含まれているドメイン名が「xxxxx.xxx.jp」であるため、仮想サーバ仮想サーバ＃２のＩＰアドレス「XXXX:XXXX::XXX2」、仮想サーバ＃３のＩＰアドレス「XXXX:XXXX::XXX3」のうちいずれか１つが選択されて返送される。
【００６４】
同図において、アクセス振分装置１の更新部１１は、図３のステップＳ３０１、Ｓ３０２と同様の処理を行い、所定の時間毎に、保守ネットワーク７を介してキャッシュサーバ２へ仮想サーバ２８−ｉの状態問合せを送信する（ステップＳ５０１、Ｓ５０２）。状態問合せを受信したキャッシュサーバ２は、図３のステップＳ３０３〜Ｓ３１２と同様の処理を行う（ステップＳ５０３、Ｓ５０４）。これにより、キャッシュサーバ２は、仮想ＯＳ起動、ＮＩＣ起動、リソース状態管理プログラム起動、ＮＩＣの帯域、ＣＰＵリソースのチェックを行ない、これらのチェック結果として得られた仮想サーバ２８−ｉの状態を示すリターンコードを状態応答に設定し、アクセス振分装置１に返送する。アクセス振分装置１の更新部１１は、図３のステップＳ３２１と同様に、受信したリターンコードが０か否かを判断する（ステップＳ５０５）。
【００６５】
受信したリターンコードが０である場合（ステップＳ５０５：「０」）、更新部１１は、記憶部１２内の振分情報を参照して、仮想サーバ２８−ｉの状態が振分可を示しているか、すなわち、起動「ＯＫ」、かつ、ＣＰＵ「ＯＫ」、かつ、ＮＩＣ「ＯＫ」が設定されているかを判断する。そして、現在、振分可が設定されていない場合、更新部１１は、振分情報から仮想サーバ２８−ｉに対応したドメイン名及びＩＰアドレスを読み出すと、読み出したドメイン名に対応づけて、記憶部１２内のゾーン情報に仮想サーバ２８−ｉのＩＰアドレスの情報を追加する。さらに、更新部１１は、仮想サーバ２８−ｉと対応づけて、記憶部１２内の振分情報に振分け可を示す情報、つまり、起動「ＯＫ」、ＣＰＵ「ＯＫ」、及び、ＮＩＣ「ＯＫ」を書き込む（ステップＳ５０６）。
【００６６】
一方、受信したリターンコードが０以外である場合（ステップＳ５０５：「０以外」）、更新部１１は、記憶部１２内の振分情報を参照して、仮想サーバ２８−ｉの状態が、振分可を示しているか、すなわち、起動「ＯＫ」、かつ、ＣＰＵ「ＯＫ」、かつ、ＮＩＣ「ＯＫ」が設定されているかを判断する。そして、現在、振分可が設定されている場合、更新部１１は、振分情報から仮想サーバ２８−ｉに対応したドメイン名及びＩＰアドレスを読み出すと、読み出したドメイン名に対応づけて記憶部１２内のゾーン情報に設定されている仮想サーバ２８のＩＰアドレスの情報から、仮想サーバ２８−ｉのＩＰアドレスの情報を削除する。さらに、更新部１１は、仮想サーバ２８−ｉと対応づけて、記憶部１２内の振分情報に、受信したリターンコードに対応した状態の情報を書き込む（ステップＳ５０７）。
【００６７】
ステップＳ５０６またはＳ５０７において、ゾーン情報が更新された場合（ステップＳ５０８：ＹＥＳ）、更新通知部１５は、更新されたゾーン情報、すなわち、ゾーン情報から更新対象となったドメイン名と、当該ドメイン名に対応づけられている全てのＩＰアドレスの情報を読み出し、更新情報としてＤＮＳサーバ１００へ通知する（ステップＳ５０９、Ｓ５１０）。更新情報の通知には、例えば、ＤＮＳ  Ｎｏｔｉｆｙなどを使用することができる。ＤＮＳサーバ１００の更新部１０３は、受信した更新情報に設定されているドメイン名に対応して記憶部１０１内のゾーン情報に設定されているＩＰアドレスの情報を、当該更新情報に設定されているＩＰアドレスの情報に書き換える（ステップＳ５１１）。
【００６８】
例えば、アクセス振分装置１の記憶部１２が記憶するゾーン情報、及び、ＤＮＳサーバ１００の記憶部１０１が記憶するゾーン情報には、図８に示すように、ドメイン名「xxxxx.xxx.jp」に対応して仮想サーバ２８−２、２８−３のＩＰアドレス「XXXX:XXXX::XXX2」、「XXXX:XXXX::XXX3」が設定され、アクセス振分装置１の記憶部１２が記憶する振分情報には、図７に示すように、仮想サーバ２８−１が振分不可、仮想サーバ２８−２、２８−３が振分可の状態である旨が設定されているものとする。
このとき、振分不可であった仮想サーバ２８−１が正常状態に戻ったため、ステップＳ５０４において、仮想サーバ２８−１の状態問合せに対応して、キャッシュサーバ２からアクセス振分装置１へリターンコード０が返送されたとする。現在、振分情報には、仮想サーバ２８−１が振分不可である旨が設定されているため、アクセス振分装置１の更新部１１は、振分情報から仮想サーバ２８−１のＩＰアドレス「XXXX:XXXX::XXX1」及びドメイン名「xxxxx.xxx.jp」を読み出し、記憶部１２内のゾーン情報に、ドメイン名「xxxxx.xxx.jp」に対応させて、仮想サーバ２８−１のＩＰアドレス「XXXX:XXXX::XXX1」を追加する。つまり、記憶部１２内のゾーン情報は、ドメイン名「xxxxx.xxx.jp」に対応して、仮想サーバ２８−１、２８−２、２８−３のＩＰアドレス「XXXX:XXXX::XXX1」、「XXXX:XXXX::XXX2」、「XXXX:XXXX::XXX3」が記述されたものとなる。さらに、更新部１１により、振分情報は、仮想サーバ２８−１が振分可である旨に書替えられる。
【００６９】
アクセス振分装置１の更新通知部１５は、記憶部１２内のゾーン情報から、更新対象となったドメイン名「xxxxx.xxx.jp」と、当該ドメイン名に対応づけられている全ての仮想サーバ２８−１、２８−２、２８−３のＩＰアドレス情報とを読み出し、更新情報としてＤＮＳサーバ１００へ通知する。ＤＮＳサーバ１００の更新部１０３は、アクセス振分装置１から更新情報を受信すると、更新情報により通知されたドメイン名「xxxxx.xxx.jp」に対応づけて、記憶部１０１内のゾーン情報に設定されている仮想サーバ２８−１、２８−２のＩＰアドレスを、当該更新情報により通知された仮想サーバ２８−１、２８−２、２８−３のＩＰアドレス「XXXX:XXXX::XXX1」、「XXXX:XXXX::XXX2」、「XXXX:XXXX::XXX3」に書き換える。以降、ＤＮＳサーバ１００の名前解決部１０４は、エンドユーザ端末４からＦＱＤＮを受信し、当該ＦＱＤＮに含まれているドメイン名が「xxxxx.xxx.jp」である場合、当該ドメイン名に対応付けてゾーン情報に設定されている仮想サーバ２８−１、２８−２、２８−３のＩＰアドレスのうち、１つを選択して返送する。
【００７０】
その後、振分可であった仮想サーバ２８−２が過負荷となったため、キャッシュサーバ２から、仮想サーバ２８−２の状態問合せに対応して０以外のリターンコードが返送されたとする。現在、振分情報には、仮想サーバ２８−２が振分可である旨が設定されているため、アクセス振分装置１の更新部１１は、振分情報から仮想サーバ２８−２のＩＰアドレス「XXXX:XXXX::XXX2」及びドメイン名「xxxxx.xxx.jp」を読み出す。更新部１１は、記憶部１２に記憶されるゾーン情報から、ドメイン名「xxxxx.xxx.jp」に対応付けて現在設定されている仮想サーバ２８−１、２８−２、２８−３のＩＰアドレスのうち、仮想サーバ２８−２のＩＰアドレスを削除する。つまり、記憶部１２に記憶されるゾーン情報は、ドメイン名「xxxxx.xxx.jp」に対応して、仮想サーバ２８−１、２８−３のＩＰアドレス「XXXX:XXXX::XXX1」、「XXXX:XXXX::XXX3」が記述されたものとなる。さらに、更新部１１により、振分情報は、仮想サーバ２８−２が振分不可である旨に書替えられる。
【００７１】
アクセス振分装置１の更新通知部１５は、記憶部１２内のゾーン情報から、更新対象となったドメイン名「xxxxx.xxx.jp」と、当該ドメイン名に対応づけられている全ての仮想サーバ２８−１、２８−３のＩＰアドレス情報とを読み出し、更新情報としてＤＮＳサーバ１００へ通知する。ＤＮＳサーバ１００の更新部１０３は、アクセス振分装置１から更新情報を受信すると、更新情報により通知されたドメイン名「xxxxx.xxx.jp」に対応づけて、記憶部１０１内のゾーン情報に記述されている仮想サーバ２８−１、２８−２、２８−３のＩＰアドレスを、当該更新情報により通知された仮想サーバ２８−１、２８−３のＩＰアドレス「XXXX:XXXX::XXX1」、「XXXX:XXXX::XXX3」に書き換える。以降、ＤＮＳサーバ１００の名前解決部１０４は、エンドユーザ端末４からＦＱＤＮを受信し、当該ＦＱＤＮに含まれているドメイン名が「xxxxx.xxx.jp」である場合、当該ドメイン名に対応付けてゾーン情報に設定されている仮想サーバ２８−１、２８−３のＩＰアドレスのうち、１つを選択して返送する。
【００７２】
なお、上記においては、更新情報に、更新対象となったドメイン名と、当該ドメイン名に対応して、アクセス振分装置１の記憶部１２内のゾーン情報から読み出した全てのＩＰアドレス、つまり、現在振分可であるＩＰアドレスの情報とを設定しているが、更新対象となったドメイン名と、当該ドメイン名に対応して追加した、すなわち、振分可となった仮想サーバ２８−ｉのＩＰアドレス、及び、振分可を示す情報とを、または、更新対象となったドメイン名に対応して削除した、すなわち、振分不可となった仮想サーバ２８−ｉのＩＰアドレス、及び、振分不可を示す情報とを設定することでもよい。ＤＮＳサーバ１００の更新部１０３は、アクセス振分装置１から更新情報を受信し、更新情報に振分可が設定されている場合、当該更新情報により通知されたドメイン名に対応づけて記憶部１０１内のゾーン情報に記述されている仮想サーバ２８のＩＰアドレスに、当該更新情報により通知された仮想サーバ２８−ｉのＩＰアドレスを追加する。あるいは、更新情報に振分不可が設定されている場合、当該更新情報により通知されたドメイン名に対応づけて、記憶部１０１内のゾーン情報に記述されている仮想サーバ２８のＩＰアドレスから、当該更新情報により通知された仮想サーバ２８−ｉのＩＰアドレスを削除する。
【００７３】
また、更新情報に、更新対象となったドメイン名と、更新後の振分情報から読み出した当該ドメイン名に対応した全ての仮想サーバ２８のＩＰアドレス、及び、当該仮想サーバ２８が振分可であるか不可であるかの情報を設定することでもよい。ＤＮＳサーバ１００の更新部１０３は、当該更新情報により通知されたドメイン名に対応づけて記憶部１０１内のゾーン情報に、受信した更新情報に振分可が設定されている仮想サーバ２８のＩＰアドレスを追加するとともに、当該更新情報により通知されたドメイン名に対応づけて記憶部１０１内のゾーン情報に設定されている仮想サーバ２８のＩＰアドレスから、受信した更新情報に振分不可が設定されている仮想サーバ２８のＩＰアドレスを削除する。
【００７４】
また、更新情報に、更新対象となったドメイン名と、更新後の振分情報から読み出した当該ドメイン名に対応した全ての仮想サーバ２８のＩＰアドレス、及び、当該仮想サーバ２８が振分可であるか不可であるかの情報が設定されている場合、ＤＮＳサーバ１００の更新部１０３は、この更新情報を記憶部１０１に登録することでもよい。そして、ＤＮＳサーバ１００の名前解決部１０４は、エンドユーザ端末４からＦＱＤＮを受信すると、記憶部１０１内のゾーン情報より、受信したＦＱＤＮに対応した仮想サーバ２８のＩＰアドレスを読み出し、さらに、記憶部１０１に記憶している更新情報から、読み出した当該ＩＰアドレスが振分可であるか不可であるかの情報を読み出す。そして、名前解決部１０４は、受信したＦＱＤＮに対応してゾーン情報から読み出した仮想サーバのＩＰアドレスのうち、振分可であるＩＰアドレスから１つを選択してエンドユーザ端末４へ返送する。
【００７５】
上記により、エンドユーザ端末４が、アクセス振分装置１とは直接通信を行なえない場合、例えば、アクセス振分装置１とエンドユーザ端末４とで使用するプロトコルが異なる場合や、エンドユーザ端末４がエンドユーザ向けネットワーク８に接続する前に、最初に外部ネットワークのＤＮＳと接続しなければならない場合であっても、アクセス振分装置１がキャッシュサーバ２から取得した、仮想サーバのＣＰＵ及びＮＩＣの状態に基づく振分可／振分不可の状態を反映させ、適切に仮想サーバ間の負荷分散を行うことが可能となる。また、ＤＮＳ  Ｎｏｔｉｆｙなどの既存のメッセージによりアクセス振分装置からＤＮＳサーバへ更新情報を通知することにより、既存のドメインサーバに変更を加える必要なく実現可能である。
【００７６】
なお、上記実施形態によれば、キャッシュサーバ２それぞれが、状態応答部２１及びリソース状態監視部２２を備える共通管理部２７を有しているが、各キャッシュサーバ２に状態応答部２１及びリソース状態監視部２２を設けず、複数のキャッシュサーバ２に保守ネットワーク７を介して接続される共通管理サーバを設置し、当該共通管理サーバに、状態応答部２１及びリソース状態監視部２２を備える共通管理部２７を集約して設け、複数のキャッシュサーバ２を集中的に管理するようにしてもよい。
この場合、アクセス振分装置１の更新部１１は、所定の時間毎に、保守ネットワーク７を介して共通管理サーバへＳＮＭＰにより、仮想サーバ２８の状態問合せを送信し、共通管理サーバは、問合せを受けた仮想サーバ２８を実現するキャッシュサーバ２へアクセスして、上述した図３の処理を行う。
【００７７】
そして上記の共通管理サーバは、配下のキャッシュサーバ２全ての仮想サーバ２８（仮想ＯＳ環境２４）を一元的にリスト化した情報を保持しておき、負荷が低いほど高い優先順位となるように決定した優先順位の情報を付加してアクセス振分装置１へ通知するようにしてもよい。仮想サーバ２８の負荷は、当該仮想サーバ２８（仮想ＯＳ環境２４）におけるＣＰＵやＮＩＣの使用状況、エンドユーザ端末４からのリクエスト数、セッション数、Ｄｉｓｋ  Ｉ／Ｏの使用状況、プロセス数等によって判断することができる。なお、過去のこれらの負荷状況から統計的に負荷を判断するようにしてもよい。これにより、優先順位が高い所定の数の仮想サーバ２８をアクセス振分装置１に通知することが可能となり、アクセス振分装置１の通知部１３は、受信したリストにより示される優先順位の高い仮想サーバ２８へ振分けが可能となる。例えば、図４のステップＳ４０３において、特定したアクセス可能な仮想サーバ２８が複数ある場合、その中から優先順位が高い仮想サーバ２８を選択し、選択した仮想サーバ２８のＩＰアドレスを振分情報から取得し、エンドユーザ端末４へ通知する。
【００７８】
本実施形態によれば、アクセス振分装置は、キャッシュサーバへ定期的に問合せを行い、仮想サーバのＣＰＵ及びＮＩＣの状態を示すリターンコードを受信して当該仮想サーバへの振分けが可であるか不可であるかの情報を更新し、当該情報を用いて、エンドユーザ端末がウェブへアクセスする前に、当該ウェブを提供する、振分け可能な仮想サーバのＩＰアドレスを通知する。よって、エンドユーザ端末から仮想サーバへのアクセスデータを、他の装置が中継して振分けを行う必要がなく、アクセス振分装置やネットワークにかかる負荷、保守にかかる負荷も軽い。このように、実際にウェブサービスを提供する仮想サーバ以外の装置の処理能力がボトルネックになることなく、システム全体にかかる負荷や運用にかかる負荷を抑えながら、最新の仮想サーバのＣＰＵ及びＮＩＣの負荷状態を反映して、適切に仮想サーバ間の負荷分散を行うことが可能となる。
また、アクセス振分装置が仮想サーバ振分可否の情報更新間隔を、ユーザのアクセス間隔見合いに応じて変更することで、たとえば仮想サーバの障害や定期メンテナンスにより仮想サーバが停止した場合でもユーザへの影響を極小化することが可能となる。
【００７９】
なお、アクセス振分装置１、キャッシュサーバ２、保守監視装置３、エンドユーザ端末４、マスタサーバ５、ログサーバ６、及び、共通管理サーバは、内部にコンピュータシステムを有している。そして、上述したアクセス振分装置１、キャッシュサーバ２、保守監視装置３、エンドユーザ端末４、マスタサーバ５、ログサーバ６、及び、共通管理サーバの動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＣＰＵや各種メモリ、ＯＳや周辺機器等のハードウェアを含むものである。
【００８０】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施の形態によるアクセス振分システムの全体構成を示す図である。
【図２】同実施形態によるアクセス振分システムの動作概要を示す図である。
【図３】同実施形態によるアクセス振分システムの状態問い合わせの処理手順を示す図である。
【図４】同実施形態によるアクセス振分システムのＤＮＳ問合せの処理手順を示す図である。
【図５】同実施形態による振分情報の構成例を示す図である。
【図６】エンドユーザ端末が他網のネットワークに設置されたＤＮＳサーバを使用する場合のアクセス振分システムの全体構成を示す図である。
【図７】図６に示すアクセス振分システムに用いられる振分情報の構成例を示す図である。
【図８】図６に示すアクセス振分システムに用いられるゾーン情報の構成例を示す図である。
【図９】図６に示すアクセス振分システムの処理手順を示す図である。
【図１０】従来技術による仮想サーバのリソース割り当てを説明するための図である。
【符号の説明】
【００８２】
１…アクセス振分装置
２…キャッシュサーバ（サーバ装置）
３…保守監視装置
４…エンドユーザ端末
５…マスタサーバ
６…ログサーバ
７…保守ネットワーク
８…エンドユーザ向けネットワーク
９…ネットワーク
１１…更新部
１２…記憶部
１３…通知部
１４…名前解決部
１５…更新通知部
１６…通信部
２１…状態応答部（状態通知部）
２２…リソース状態監視部
２３…リソースプール
２４−１〜２４−３…仮想サーバ部
２５−１〜２５−３…プロセス（配信部）
２６−１〜２６−３…ＮＩＣ（通信手段）
２７…共通管理部（読込み部、ログ通知部）
２８−１〜２８−３…仮想サーバ
１００…ＤＮＳサーバ（ドメインネームシステムサーバ）
１０１…記憶部（ドメインネームシステム記憶部）
１０２…通信部
１０３…更新部（ドメインネームシステム更新部）
１０４…名前解決部
【図１】
0004677482.tif 000002
【図２】
0004677482.tif 000003
【図３】
0004677482.tif 000004
【図４】
0004677482.tif 000005
【図５】
0004677482.tif 000006
【図６】
0004677482.tif 000007
【図７】
0004677482.tif 000008
【図８】
0004677482.tif 000009
【図９】
0004677482.tif 000010
【図１０】
0004677482.tif 000011