本明細書では、一の装置から受信したデータを他の装置へと転送する転送処理を行う転送処理装置を複数備え、転送処理の負荷分散を行っているシステムにおいて、データの転送処理の割当てを一の転送処理装置から他の転送処理装置に切り替える技術について説明する。
例えば、前述の図1に示したような従来のシステム態様の具体例において、転送処理装置804には、それぞれ、VM統計情報の送信元となる転送元装置802が割当てられ、振分装置806により、転送元装置802からのVM統計情報が振り分けられる。そして、転送処理装置804は、転送元装置802からのVM統計情報を受信すると、次のような処理を行う。すなわち、転送処理装置804は、まず、受信したVM統計情報のテキストを先頭部分から解析する。この処理における転送処理装置804の処理負荷は、VM統計情報のテキストサイズに依存する。さらに、転送処理装置804は、受信したVM統計情報をVM毎に切り分けるとともに、VMの提供先である顧客毎に統計処理等を行う転送先装置803毎に、VMを振り分けて転送する。この処理における転送処理装置804の処理負荷は、VM統計情報に含まれるVMの数及び振り分け先の顧客数に依存する。
ここで、原則としては、振分装置806が、転送処理装置804に対する転送元装置802のVM統計情報の振り分け(すなわち転送元装置802に関するデータ転送処理の割当て)を均等に行うため、各転送処理装置804間において処理負荷が著しく偏ることはない。しかし、例えば、転送元装置802で稼働するVMへのアクセス数が増減したりした場合、アクセスログ等が増減し、VM統計情報のデータ量に変動が生じる。また、VMの数自体が増減することにより、VM統計情報のデータ量に変動が生じることもある。さらには、例えば、転送処理装置804において障害が発生した場合や、転送元装置802と転送処理装置804との間の通信において障害が発生した場合等には、障害発生中に転送元装置802が生成し続けたVM統計情報が、障害復旧後にまとめて送信されることもある。これらのような負荷変動要素によって、転送処理装置804の処理負荷に偏りが生じることがある。そして、このように特定の転送処理装置804における処理負荷が増加すると、当該転送処理装置804におけるVM統計情報の処理が所定時間内に終了せず、VM統計情報の利用効率が低下することとなる。そうすると、例えば、VM統計情報をリアルタイムに収集することが困難となり、VMの提供サービスの品質の劣化時の顧客対応の遅れにつながる等の問題が生じるおそれがある。
このため、前述の具体例のようなシステム態様においては、転送処理装置に対する転送元装置に関するデータ転送処理の割当てを、転送処理装置の処理状態に応じて他の転送処理装置に移行する。
ここで、本技術では、特に、転送処理装置から転送元装置に転送対象データを要求して取得しにいくフェッチ方式ではなく、転送元装置から転送処理装置に(一方向的に)データを送信する態様のシステム構成を対象とする。かかるシステム構成の場合、転送処理装置は、転送元装置からデータが送信されるタイミングを制御することができない。このため、転送元装置を他の転送処理装置に割当てし直すときに、割当ての移行処理が完了するよりも前に、移行対象として決定した転送元装置からのデータの受信が始まってしまうことがある。したがって、本技術では、どの転送元装置を他の転送処理装置に割当てし直すかを決定するときに、転送元装置のそれぞれについて将来にデータを受信する受信予測時刻を算出するとともに、割当ての移行処理が完了する移行完了予測時刻を算出する。そして、データを受信する時刻が割当ての移行処理が完了する時刻よりも後であり(すなわち、割当ての移行処理の完了後に次のデータを受信することとなる)且つ他の転送元装置からのデータの受信予測時刻よりも移行完了予測時刻に近い(すなわち、データの受信予測時刻が早い)転送元装置を、移行対象として選択する。
これにより、他の転送処理装置に割当てを切り替える転送元装置が適切に選択され、しかも、割当ての移行処理が完了するよりも前に、移行対象として決定した転送元装置からのデータの受信が始まってしまうという不具合が発生する確率を低減させることができる。且つ、早期に受信するデータの転送処理が他の転送元装置に移行されることとなるため、転送元装置の負荷軽減が早期に効率良く行われる。このため、割当ての移行処理の精度を向上させ、確実に移行処理を行うことができるとともに移行処理がより効果的なものとなり、システム全体として、スケールアウトされた複数の転送処理装置の情報処理資源を有効活用し、データの転送処理を効率良く行うことが可能となる。
以下、かかる技術の一実施形態につき、図面を参照しつつ詳細に説明する。
本実施形態では、かかる技術を、前述の背景技術で示したシステム態様の具体例と同様に、サーバノードプールに構築したVMを顧客に提供するサービスを行うシステムにおいて、VMの動作状況に関連する諸情報であるVM統計情報を顧客に提供するシステム態様に適用した例を用いて説明する。具体的には、本システムでは、VMが構築されたサーバである業務装置(転送元装置)が生成するVM統計情報を、転送処理装置が、VM統計情報を収集するサーバである収集装置(転送先装置)に転送する。なお、VM統計情報には、例えばVMに割り当てられている物理資源の使用状況等の情報などが含まれており、かかるVM統計情報は、顧客に対してサービス内容を可視化するために提供されるものである。また、このように転送処理装置を導入してVM統計情報の転送処理を行うのは、業務装置のVM統計情報をVMの提供先である顧客に応じた適切な収集装置に振り分けるという処理を、業務装置から切り離すためである。これにより、業務装置に構築されたVMの数や顧客の数が多くても、業務装置の負荷を増大させることなく、VM統計情報を効率的に収集装置に振り分けることができる。また、VMの配置や収集装置の変更等、システム構成の変更にも柔軟に対応することができる。
[システム全体構成]
図2は、本実施形態に係るシステムの全体構成の概要を示す。本システムは、VM管理装置1、業務装置2、収集装置3、転送処理装置4、転送管理装置5及び振分装置6を有する。VM管理装置1、業務装置2、収集装置3、転送処理装置4、転送管理装置5及び振分装置6は、いずれもCPU(Central Processing Unit)及び記憶手段を備えた情報処理装置である。なお、本明細書において記憶手段とは、メモリ等の揮発性記憶装置又はストレージ等の不揮発性記憶装置の少なくともいずれか一方を指す。
VM管理装置1は、外部の顧客システム(図示省略)及び業務装置2と通信可能であり、顧客システムから受信する要求等に応じ、業務装置2にVMを構築する。さらに、VM管理装置1は、VMが構築された業務装置2や、VM統計情報の転送先となる収集装置3の対応付け等を含んだシステム構成情報を、転送管理装置5に送信する。また、VM管理装置1は、業務装置2や収集装置3が追加等されることによりシステム構成が変更になった場合等にも、その変更内容を含んだシステム構成情報を転送管理装置5に送信する。
業務装置2は、顧客システムからの要求に応じたVM管理装置1による制御に基づき、VMが構築される装置である。また、業務装置2では、自装置に構築されたVMに関するVM統計情報を所定時間ごとに抽出するエージェントが動作する。そして、業務装置2で動作するエージェントは、抽出したVM統計情報を、HTTP(Hypertext Transfer Protocol)コネクションを生成して振分装置6に送信する。なお、以下、業務装置2のエージェントが行う処理を、単に業務装置2が行う処理であるものと表記して説明を行う。また、以下の説明で業務装置2のIPアドレスを用いる箇所は、業務装置2で動作するエージェントをシステム全体で一意に特定する識別子であるエージェントIDを用いるようにしてもよい。
収集装置3は、顧客に対してVM統計情報を提供するアプリケーションが動作する装置である。すなわち、収集装置3は、転送処理装置4から送信されたVM統計情報を受信して収集し、必要に応じてアプリケーション等で統計処理等を行って顧客システムに出力する。なお、収集装置3は顧客システムの一部であってもよい。
転送処理装置4は、業務装置2から振分装置6を経由して受信したVM統計情報を、収集装置3に転送する処理を行う装置である。VM統計情報は、1つ又は複数のVMに関する情報を含んでいる。転送処理装置4は、転送管理装置5から、VMとVM統計情報の転送先の収集装置3との対応付け等の情報を受信し、自装置の記憶手段に記憶する。そして、業務装置2からVM統計情報を受信すると、VM統計情報をVMごとに分離させた上で、転送先の収集装置3ごとに仕分けし、収集装置3に送信する。ここで、転送処理装置4は、自装置の処理負荷が大きいとき又は大きくなることが予測されるときに、自装置に割当てられている業務装置2の中から、他の転送処理装置4に割当てを移行するべき業務装置2を選択する。そして、転送処理装置4は、転送管理装置5に対して、選択した業務装置2に関するデータ転送処理の割当て移行要求を送信し、業務装置2に関するデータ転送処理の割当てを移行させる。なお、以下の説明において、転送処理装置4に対する、業務装置2に関するデータ転送処理の割当てを、単に、転送処理装置4に対する業務装置2の割当てと表記する。
転送管理装置5は、VM統計情報の転送処理全体を管理する装置である。転送管理装置5は、VM管理装置1からシステム構成情報を受信し、VMとVM統計情報の転送先の収集装置3の対応付け等の情報を転送処理装置4に通知する。また、転送管理装置5は、転送処理装置4から業務装置2に関するデータ転送処理の割当て移行要求を受信すると、どの転送処理装置4を割当ての移行先とするかを決定する。そして、転送管理装置5は、当該業務装置2から受信したVM統計情報の振り分け先を移行先の転送処理装置4に変更する要求を、振分装置6に送信する。
振分装置6は、業務装置2から受信したVM統計情報を、その業務装置2に関するデータ転送処理が割当てられた転送処理装置4に振り分けるロードバランサである。
図3は、本実施例における業務装置2、収集装置3、転送処理装置4、転送管理装置5及び振分装置6間のネットワーク接続態様について示している。業務装置2、収集装置3、転送処理装置4、転送管理装置5及び振分装置6には、いずれもIPアドレスが割り振られ、業務装置2のそれぞれと、振分装置6とは、1つのネットワーク7で相互に接続されている。一方、振分装置6はさらに別のネットワーク8に接続されている。このネットワークには、振分装置6、収集装置3及び転送処理装置4のそれぞれ、並びに、転送管理装置5が相互に接続されている。
なお、本実施例において、前述した各装置間のネットワーク7及びネットワーク8は、いずれもLAN(Local Area Network)接続で実現されているものとする。なお、ハブやルータ等の通信機器については図示を省略している。しかしながら、かかるネットワークは、LANに限らず、例えばWAN(Wide Area Network)やインターネット等、いかなる手段で実現されてもよく、その通信方法は有線通信又は無線通信のいずれであってもよい。また、図2に示すネットワーク接続態様は一例にすぎず、例えば、業務装置2、収集装置3、転送処理装置4、転送管理装置5及び振分装置6が全て1つのネットワークに接続されていてもよい。さらに、図2に示す業務装置2、収集装置3及び転送処理装置4の数は一例に過ぎない。
[転送処理装置及び転送管理装置の構成]
次に、転送処理装置4及び転送管理装置5の構成について詳述する。
図4は、転送処理装置4の機能ブロック図の一例を示す。転送処理装置4は、図4に示すように、転送処理装置4が備える記憶手段において、業務装置管理テーブル11、転送先テーブル12、共通情報テーブル13、セッション管理テーブル14、転送時刻テーブル15及び平均移行時間データ16を有する。また、転送管理装置5は、プログラムがメモリにロードされCPUにより実行されることによって実現される制御手段として、転送管理装置通信部21、業務装置管理部22、移行対象決定部23、転送時刻管理部24、移行時間管理部25、収集部26、転送部27及び送信部28を備える。
業務装置管理テーブル11は、転送処理装置4に割当てられた業務装置2ごとに、転送処理に関係する諸情報が格納されるテーブルである。そして、業務装置管理テーブル11は、図5に示すように、1つの(すなわち自装置の)転送処理装置4に割当てられた業務装置2のIPアドレス、定期的なVM統計情報収集処理において業務装置2から送信されたVM統計情報の前回の転送処理時の転送量である前回転送量、及び、前々回転送処理時の転送量である前々回転送量の項目を有する。さらに、業務装置管理テーブル11は、転送元装置2の割当てを他の転送処理装置4に移行させることが可能か否かを示す移行可否情報である移行ステータスの項目を有する。
転送先テーブル12は、転送処理装置4に割当てられた業務装置2に構築されたVMと、VM統計情報の転送先の収集装置3と、を対応付けるテーブルであり、図6に示すように、VMを特定可能なVM識別子及び収集装置3のIPアドレスの項目を有する。
共通情報データ13は、各種判定に用いる閾値が格納されるデータであり、図7に示すように、VM統計情報の転送量の変動の大小を判定するのに用いる転送量変動閾値、及び、転送処理装置4の処理負荷の大小を判定するのに用いるCPU使用率閾値を含む。転送量変動閾値及びCPU使用率閾値は、いずれもシステム管理者等によって予め設定される情報である。
セッション管理テーブル14は、業務装置2から振分装置6を介して転送処理装置4に対して転送対象データを送信する通信におけるセッションを管理するテーブルであり、図8に示すように、業務装置2のIPアドレス及びセッションの識別子であるセッションIDを含む。
転送時刻テーブル15は、業務装置2から次にVM統計情報を受信するタイミングを予測するのに用いるデータが格納されるテーブルであり、図9に示すように、業務装置2のIPアドレス、当該業務装置からVM統計情報を最後に受信した時刻である最終受信時刻、及び、VM統計情報を受信する間隔を示す平均受信間隔、平均受信間隔の変動(揺らぎ幅)を示す平均受信間隔変動値を含む。
平均移行時間データ16は、図10に示すように、業務装置2の割当て移行処理に要する時間、すなわち、振分装置6におけるVM統計情報の振り分け先の移行(切り替え)に要する時間を示すデータである。
転送管理装置通信部21は、転送管理装置5との間におけるデータの送受信等を行う機能を有する。具体的には、転送管理装置通信部21は、転送管理装置5から、VMが構築された業務装置2や、VM統計情報の転送先となる収集装置3の対応付け等の諸情報を受信し、業務装置管理部22や転送部27に通知する。また、転送管理装置5に対し、自装置の負荷情報を送信する。この負荷情報は、例えば、転送処理装置4におけるCPU使用率を含む。また、本実施例では、CPU使用率の内訳として、VM統計情報の転送量の変動が所定閾値よりも大きい業務装置2から受信するVM統計情報の転送処理に費やされているCPU使用率の合計である変動大CPU使用率を含む。さらに、転送管理装置通信部21は、業務装置2の割当て移行要求を送信する。このとき、割当て移行処理が完了するまでに要する時間を計測して、移行時間管理部25に通知する。
業務装置管理部22は、転送処理装置4に割当てられた業務装置2に関連する諸情報を管理する。具体的には、業務装置管理部22は、例えば、転送部26で受信したVM統計情報や、転送管理装置通信部21から受信した転送管理装置5からの業務装置2の割当て変更の通知等に基づき、業務装置管理テーブル11の更新(業務装置2のデータの追加や削除)を行う。また、業務装置管理部22は、業務装置2からのVM統計情報の受信状態に応じて、業務装置管理テーブル11の移行ステータスを変更する。ここで、VM統計情報の受信状態とは、例えば、VM統計情報の収集処理の途中の状態であることや、前回転送量と前々回転送量との差分の変動が大きい状態等、割当ての移行対象とする業務装置2の選択に影響を及ぼすような全ての受信状態のことを示す。さらに、業務装置管理部22は、移行対象決定部23が他の装置に割当てを移行させる業務装置2を選択するときに、業務装置管理テーブル11を参照して業務装置2に関する情報を取得し、移行対象決定部23に通知する。また、業務装置管理部22は、転送管理装置通信部21から通知された、VM統計情報の転送先となる収集装置3の変更情報に基づいて、転送先テーブル12を更新する処理等も行う。
移行対象決定部23は、業務装置管理部22から通知された業務装置2の情報に基づき、他の転送処理装置4に割当てを移行する1つ以上の業務装置2を選択する。このとき、移行対象決定部23は、転送時刻テーブル15を参照して、各業務装置2から将来にVM統計情報を受信する受信予測時刻を算出する。さらに、移行対象決定部23は、平均移行時間データを参照して、業務装置2の割当ての移行処理が完了する移行完了予測時刻を算出する。なお、これらの予測処理の内容の詳細については後述する。そして、移行対象決定部23は、将来にVM統計情報を受信する時刻が、割当ての移行処理が完了する時刻よりも後である1つ以上の業務装置2を選択する。そして、移行対象決定部23は、選択した業務装置2を特定する情報の一例であるIPアドレスとともに、業務装置2の割当て変更要求を転送管理装置通信部21に送信する。
転送時刻管理部24は、業務装置2から振分装置6を介して送信されたVM統計情報を最後に受信した時刻を、業務装置2ごとに転送時刻テーブル15に記録する。このとき、転送時刻管理部24は、VM統計情報を受信する平均受信間隔を算出し、同じく転送時刻テーブル15に記録する。
移行時間管理部26は、業務装置2の割当て移行要求を転送管理装置に送信したときに、割当ての移行処理が完了したという応答(すなわち、振分装置6におけるVM統計情報の振り分け先の切り替え処理が完了したという応答)を受信するまでの時間を計測し、平均移行時間データ16に記録する。
収集部26は、業務装置2からVM統計情報を受信し、転送部27に転送する。
転送部27は、VM統計情報のヘッダ及びボディを解析し、VM統計情報をVMごとに分離させる。さらに、転送先テーブル12を参照し、VM統計情報が含むVM識別子に基づき、VM統計情報の転送先となる収集装置3を特定する。そして、転送先の収集装置3を特定する情報を、VMごとに分離させたVM統計情報に対応付けて送信部28に送信する。また、このとき転送部27は、VM統計情報の転送量等を業務装置管理部22に通知する。
送信部28は、転送部27から転送されたVM統計情報を、転送先の収集装置3に対して送信する。なお、転送部27は、転送管理装置通信部21から通知された、VM統計情報の転送先となる収集装置3の変更情報に基づいて、転送先テーブル33を更新する処理等も行う。
図11は、転送管理装置5の機能ブロック図の一例を示す。転送管理装置5は、図11に示すように、記憶手段において、転送処理装置管理テーブル31、割当てテーブル32、転送先テーブル33及び共通情報テーブル34を備える。また、転送管理装置5は、プログラムがメモリにロードされCPUにより実行されることによって実現される制御手段として、VM管理装置通信部41、転送処理装置通信部42、振分装置通信部43、転送処理装置管理部45及び割当て決定部45を備える。
転送処理装置管理テーブル31は、転送処理装置4ごとに、転送処理装置4の負荷情報が格納されるテーブルであり、図12に示すように、転送処理装置4のIPアドレスと、転送処理装置4におけるCPU使用率と、変動大CPU使用率と、の項目を有する。
割当てテーブル32は、転送処理装置4と、転送処理装置4のそれぞれに割当てられた業務装置2と、を対応付けるテーブルであり、図13に示すように、転送処理装置4のIPアドレスと、業務装置2のIPアドレスと、の項目を有する。
転送先テーブル33は、システム全体の業務装置2と、業務装置2に構築されたVMと、VM統計情報の転送先の収集装置3と、を対応付けるテーブルであり、図14に示すように、業務装置2のIPアドレスと、VM識別子と、収集装置3のIPアドレスと、の項目を有する。
共通情報テーブル34は、転送管理装置5が行う各種判定に用いる閾値が格納されるテーブルであり、図15に示すように、CPU使用率無条件割当閾値、CPU使用率条件付き割当閾値、及び、変動大CPU使用率閾値を含む。各閾値がどのように用いられるかについては、各処理の説明において後述する。
VM管理装置通信部41は、VM管理装置1とのデータの送受信等を行う機能を有する。具体的には、VM管理装置通信部41は、例えば、VM管理装置1からシステム構成情報を受信し、転送処理装置管理部43に、受信したシステム構成情報を転送する。
転送処理装置通信部42は、転送処理装置4との間におけるデータの送受信を行う機能を有する。転送処理装置通信部42は、例えば、転送処理装置4から、転送処理装置4の負荷情報や業務装置2の割当て移行要求を受信し、転送処理装置管理部45や割当て決定部45に、受信した情報を通知する。また、転送処理装置通信部42は、業務装置2の割当てを変更したことを示す通知や、VM統計情報の転送先となる収集装置3を特定する情報等を、転送処理装置4に送信する。
振分装置通信部43は、振分装置6との間におけるデータの送受信を行う機能を有する。振分装置通信部43は、例えば、業務装置2の割当てを変更した通知を、振分装置6に送信する。
転送処理装置管理部45は、転送処理装置4に関連する諸情報を管理する。具体的には、転送処理装置管理部45は、転送処理装置管理テーブル31を参照して情報を取得する一方、VM管理装置通信部41や転送処理装置通信部42から転送された情報に基づき、転送処理装置管理テーブル31を更新する。また、転送処理装置管理部45は、VM管理装置通信部41から転送される、VMとVM統計情報の転送先の収集装置3とを対応付ける情報に基づき、転送先テーブル33を更新する処理も行う。
割当て決定部45は、転送処理装置4から受信した業務装置2の割当て移行要求に応じて、割当て移行先とする転送処理装置4を選択する。そして、割当て決定部45は、割当てテーブル32に設定された業務装置2の割当て先の転送処理装置4を変更する。
なお、振分装置6は、VM統計情報の送受信で用いられるセッションIDと、そのセッションIDで送信されるVM統計情報を振り分ける転送処理装置4のIPアドレスとが対応付けられた、振り分け先テーブルを有している。そして、振分装置6は、初回にVM統計情報のHTTPコネクションをランダムに振り分けた際、どのセッションをどの転送処理装置4に振り分けたかを対応付ける情報を、この振り分け先テーブルに保持し、2回目以降は、振り分け先テーブルの設定に基づいてVM統計情報の振り分けを行う。また、振分装置6は、転送管理装置から、業務装置2の割当てが移行された通知を受信すると、その通知に基づき、当該振り分け先テーブルにおける業務装置2の振り分け先の転送処理装置4のIPアドレスを、割当て移行指示に含まれる移行先の転送処理装置4のIPアドレスに変更する。
[各装置間における処理の概要]
次に、各装置における処理の概要につき、装置間の処理シーケンスを示して説明する。
図16は、定期的なVM統計情報の収集処理の概要を示す。
業務装置2は、自装置に構築されたVMのVM統計情報を蓄積している。そして、業務装置2は、蓄積したVM統計情報を振分装置6に対して送信する(1)。業務装置2は、VM統計情報の送信をいかなる契機で行ってもよいが(例えばタイマ設定で所定時間ごとに送信したり、VM統計情報が一定量蓄積されたことを契機として送信したりする等)、少なくとも、本技術では、等間隔若しくは等間隔に近い間隔でVM統計情報が送信されることを前提としている。振分装置6は、業務装置2からVM統計情報を受信すると、振り分け先テーブルを参照し、VM統計情報のセッションIDに対応付けられた転送処理装置4をVM統計情報の振り分け先として特定する(2)。そして、振分装置6は、振り分け先の転送処理装置4に対し、VM統計情報を振り分ける(3)。転送処理装置4は、VM統計情報を受信すると、受信したVM統計情報の転送先となる収集装置3を特定する(4)。そして、転送処理装置4は、特定した収集装置3に対し、VM統計情報を送信する(5)。また、転送処理装置4は、自装置の負荷情報を転送管理装置5に送信する(6)。各装置は(1)〜(6)の処理を繰り返す。なお、転送処理装置4は、(6)の自装置の負荷情報の送信処理を、VM統計情報の収集処理とは別途独立した処理として、所定時間ごとに行ってもよい。
次に、転送処理装置4に割当てられた業務装置2の割当てを他の転送処理装置4に移行させる処理を行う場合の一例として、転送処理装置4のCPU使用率がCPU使用率閾値を超過している場合における、業務装置2の割当て移行処理につき、図17を用いて説明する。なお、転送処理装置4は、自装置のCPU使用率がCPU使用率閾値を超えていることを、どのタイミングで検出してもよい。なお、本説明では、CPU利用率がCPU使用率閾値を超過している転送処理装置4を第1転送処理装置4、第1転送処理装置4に割当られている業務装置2の割当ての移行先となる転送処理装置4を第2転送処理装置4と表記して説明を行う。
第1転送処理装置4は、CPU利用率がCPU使用率判定閾値を超過していることを検出する(1)。第1転送処理装置4は、自装置に転送処理が割当てられている1つ以上の業務装置2から、他の転送処理装置4に割当てを移行する1つ以上の業務装置2を選択する(2)。そして、第1転送処理装置4は、選択した業務装置2の割当てを他の転送処理装置4に移行する要求を、転送管理装置5に対して送信する(3)。一方、転送管理装置5は、第1転送処理装置4からの要求を受信すると、業務装置2の割当ての移行先となる第2転送処理装置4を選択し、第2転送処理装置4への割当て移行に伴うテーブルの更新等を行う(4)。そして、転送管理装置5は、振分装置6に対し、割当ての移行対象となった業務装置2からのVM統計情報の振り分け先を第2転送処理装置4に変更する要求を送信する(5)。振分装置6は、当該要求を受信すると、割当ての移行対象となった業務装置2からのVM統計情報の振り分け先を、通知された第2転送処理装置4に変更する(6)。そして、振分装置6は、振り分け先の変更処理が完了したことを、転送管理装置5に応答する(7)。転送管理装置5は、この応答を受信すると、第1転送処理装置4に対し、移行対象の業務装置2の割当てを第2転送処理装置4に移行する処理が完了した旨を応答する(8)。第1転送処理装置4では、この応答を受信すると、自装置に割当てられた業務装置2から、移行対象の業務装置2の情報を削除する(9)。さらに、転送管理装置5は、第2転送処理装置4に対し、移行対象の業務装置2を第2転送処理装置4に割当てた旨を通知する(10)。第2転送処理装置4は、自装置に割当てられた業務装置2の情報に、移行対象の業務装置2を追加する(11)。なお、(10)及び(11)の処理は必須ではなく、次回に第2転送処理装置4が振分装置6からVM統計情報を受信したときに、そのVM統計情報の送信元の業務装置2を特定することで、自装置に新たな業務装置2が割当てられたことを検出してもよい(以下、この(10)及び(11)の処理に関連する処理の説明についても同様)。また、(8)〜(9)の処理及び(10)〜(11)の処理は、どちらの処理が先に実行されてもよい。これらの処理全てが完了したときに、システム全体として業務装置4の割当て移行処理が完了することとなる。
なお、転送処理装置4に対する業務装置2の割当てを他の転送処理装置4に移行させる際、その移行対象とする業務装置2は、1つに限らず、複数であってもよい。また、転送処理装置4に割当てられた業務装置2の割当てを他の転送処理装置4に移行させる処理を行う契機は、転送処理装置4のCPU使用率がCPU使用率閾値を超過している場合に限らない。例えば、転送処理装置4は、業務装置管理テーブル11における移行ステータスが「移行中」である業務装置2の転送量の合計が所定閾値を超えているとき等に、割当て移行要求を送信してもよい。この転送量としては、例えば、前回転送量を適用してもよいし、前回転送量及び前々回転送量の平均値を適用してもよい。さらには、例えば、業務装置管理テーブル11で、各業務装置2からのVM統計情報の転送を行う場合における転送処理装置4の負荷の大きさを特定できるデータを保持するようにしてもよい。そして、移行ステータスが「移行中」である業務装置2の負荷の大きさの合計が所定閾値よりも大きいときに、業務装置2の割当て移行処理を行うようにしてもよい。
なお、業務装置2におけるVMの構築状況や収集装置3の構成変更等のシステム構成変更が発生した場合、VM管理装置1は、転送管理装置5に対し、システム構成情報を送信する。このとき、転送管理装置5は、自装置で保持するテーブルにシステム構成情報を反映させるとともに、必要に応じて、転送処理装置4に当該システム構成情報を送信する。そして、転送処理装置4は、自装置で保持するテーブルに当該システム構成情報を反映させる。なお、システム構成情報が通知されるケースとしては、例えば、業務装置2が追加や削除等されることにより、いずれかの業務装置2においてVMが新たに構築されたり、あるいは削除されたり、他の業務装置2に移行されたりする場合がある。また、収集装置3が追加されたり削除されたりする場合等も想定される。
[転送処理装置の処理]
次に、転送処理装置4が備える各構成要素間において実行される処理シーケンスについて詳述する。
図18は、定期的なVM統計情報の収集処理において、転送処理装置4で実行される処理を示す。
収集部26は、業務装置2から、VM統計情報を受信する(1)。このVM統計情報は、送信元の業務装置2のIPアドレス及びセッションIDを含むヘッダと、VM識別子及びVM統計情報の具体的な内容を示すデータを含むボディと、を有する。一度に送信されるVM統計情報は、1つ又は複数のVMに関する情報を含み、VM統計情報の具体的な内容を示すデータは、VMごとに、VM識別子と対応付けられている。なお、かかるVM統計情報のデータ構造は一例に過ぎない。
そして、収集部26は、受信したVM統計情報を転送部27に送信し、VM統計情報の転送処理を転送部27に要求する(2)。
VM統計情報とともに転送処理の要求を受信した転送部27は、次の処理を行う。
まず、転送部27は、VM統計情報のヘッダを解析し、VM統計情報の送信元の業務装置2のIPアドレス及びセッションIDを取得し、セッション管理テーブル14に格納する。なお、図示を省略しているが、収集部26は、転送部27でセッション管理テーブル14への格納が済んだことを業務装置2に応答する。
そして、転送部27は、少なくともVM統計情報の送信元の業務装置2のIPアドレスを含んだ受信通知を、転送時刻管理部24に送信する(3)。転送時刻管理部24は、この受信通知を受信すると、転送時刻管理処理を実行する。この転送時刻管理処理の内容については図19を用いて後述する(4)。
また、転送部27は、少なくともVM統計情報の送信元の業務装置2のIPアドレス及びセッションIDを含んだ受信通知を、業務装置管理部22に送信する(5)。
ここで、業務装置管理部22は、業務装置管理テーブル11における、当該業務装置2に対応するレコードの移行ステータスを「移行不可」に変更する(6)。なお、(6)の処理は、VM統計情報の収集を開始する業務装置2の移行ステータスを変更する(記憶手段に記憶する)処理であり、換言すれば、業務装置2からのVM統計情報の受信状態に応じて業務装置2の移行ステータスを変更する処理である。かかる処理は、次のような意義を有する。すなわち、業務装置2の割当てを他の転送処理装置4に移行することとなったとき、かりに、VM統計情報の収集処理の途中であって転送処理装置4がVM統計情報を受信している途中の業務装置2が移行対象として選択されて移行処理がなされ、振分装置6に対して業務装置2から受信したVM統計情報の振り分け先の変更要求が送信された場合、次のような可能性がある。すなわち、当該変更要求に応じ、振分装置6から業務装置2へと送信中のVM統計情報の送信処理の中断を行った上で、変更後の業務装置2に対し再度VM統計情報を送信し直す仕様としている場合には、VM統計情報の収集処理が中断されてしまうこととなる。かりにそうなった場合、移行先の転送処理装置4は、再度そのVM統計情報を初めから収集しなければならず、無駄な転送処理が生じることとなる。ここで、収集処理の対象となっている業務装置2の移行ステータスを「移行不可」としておくと、この業務装置2を移行対象として選択することが不可であることが特定可能となるため、業務装置2の割当てを他の転送処理装置4に移行するときに、当該業務装置2は選択されない(後述の図20の(2)〜(4)参照)。このため、無駄な転送処理が生じることを回避することができる。
さらに、転送部27は、VM統計情報のボディを解析し、VM統計情報のデータ量(すなわち転送量)を特定する。そして、転送部27は、少なくともVM統計情報の送信元の業務装置のIPアドレス及び転送量を含んだ受信通知を、業務装置管理部22に送信する(7)。業務装置管理部22は、業務装置管理テーブル11における対象の業務装置2に対応するレコードの前々回転送量を前回転送量で書き換えた上で、前回転送量を、転送部27から受信した転送量に変更する(8)。さらに、業務装置管理部22は、前回転送量と前々回転送量との差分を算出する(9)。
ここで、業務装置管理部22は、算出した差分が、共通情報テーブル13の変動量閾値以下であれば、業務装置管理テーブル11における対象業務装置2に対応するレコードの収集先ステータスを「移行可」にする(10)。なお、(10)の処理は、VM統計情報の転送量に応じて業務装置2の移行ステータスを変更する(記憶手段に記憶する)処理であり、換言すれば、業務装置2からのVM統計情報の受信状態に応じて業務装置2の移行ステータスを変更する処理である。かかる処理は、次のような意義を有する。すなわち、前回転送量と前々回転送量との差分が転送量変動閾値以下であるということは、この業務装置2が送信するVM統計情報の転送量の変動が比較的少ない可能性が高いということを示している。このため、この業務装置2の割当てを他の転送処理装置4に移行させても、移行される側の転送処理装置4において転送処理に伴う負荷が不安定になる可能性が低い。したがって、この業務装置2を移行対象としてもよいとするものである。なお、前回転送量と前々回転送量との差分が転送量変動閾値を超過している場合には、移行ステータスは「移行不可」のまま維持されることとなる。
さらなる処理として、転送部27は、転送先テーブル12を参照し、受信したVM統計情報に含まれるVM識別子に対応する転送先の収集装置3のIPアドレスを特定する(11)。そして、転送部27は、送信部28に対し、特定した転送先の収集装置3のIPアドレスとともに、収集装置3に対してVM統計情報を転送する要求を送信する(12)。送信部28は、転送部27から要求を受信すると、受信した転送先の収集装置3のIPアドレスを用いて、VM統計情報を収集装置3に送信する(13)。
さらに、業務装置管理部22は、転送処理装置4の負荷情報を生成し、負荷情報の送信要求を転送管理装置通信部21に送信する(14)。具体的には、業務装置管理部22は、自装置(転送処理装置4)のCPU使用率、変動大CPU使用率を特定する。そして、CPU使用率及び変動大CPU使用率を負荷情報に含めて転送管理装置通信部21に送信する。転送管理装置通信部21は、負荷情報を転送管理装置5に送信する(15)。
なお、(1)〜(13)の処理は、転送処理装置4に割当てられている各業務装置2について実行する。また、(3)〜(4)の処理及び(5)〜(6)の処理は、いずれが先に実行されてもよく、両方を並行して行ってもよい。さらに、(7)〜(10)の処理及び(11)〜(13)の処理は、(5)〜(6)の処理が終わっていることを条件として実行されるものであり、いずれが先に実行されてもよく、両方を並行して行ってもよい。また、前述したように、(14)及び(15)の負荷情報の送信処理は、VM統計情報の収集処理とは別途独立した処理として、所定時間ごとに行ってもよい。
ここで、転送時刻管理部が実行する転送時刻管理処理につき、図19のフローチャートを参照しつつ説明する。
(S1)転送時刻管理部24は、VM統計情報の送信元の業務装置2からVM統計情報を最後に(すなわち前回に)受信した時刻を取得する。具体的には、転送時刻管理部24は、転送時刻テーブル15を参照し、VM統計情報の送信元の業務装置2のIPアドレスに対応する最終受信時刻を取得する。そして、転送時刻管理部24は、現在の時刻と最終受信時刻との差分時間、すなわち、前回のVM統計情報の受信時刻から今回のVM統計情報の受信時刻までの間隔を算出する。
(S2)転送時刻管理部24は、S1で算出した最新の差分時間を反映させた平均受信間隔を算出する。この算出は様々な方法によって実現でき、一例としては、次式によって算出可能である。
T_new = βT+(1-β)T_old
(T_new:算出対象の平均受信間隔、T_old:前回までの平均受信間隔、T:S1で算出した差分時間、β:更新係数(0<β<1))
この式で用いる前回までの平均受信間隔は、転送時刻テーブル15に格納された、VM統計情報の送信元の業務装置2のIPアドレスに対応する平均受信間隔である。また、更新係数は、システム管理者等が予め転送処理装置4の記憶装置に設定しておく。この更新係数を大きくすればするほど、計算結果の平均受信間隔に、今回算出した差分時間がより大きく反映されることとなる。
(S3)転送時刻管理部24は、転送時刻テーブル15に格納された前回までの平均受信間隔と、S2で算出した平均受信間隔とに基づき、平均受信間隔の変動(揺らぎ幅)を示す変動値を算出する。この変動値として、転送時刻管理部24は、例えば、前回の平均受信間隔と今回の平均受信間隔との差分を算出する。なお、変動値の算出方法はこれに限らず、例えば、前回の平均受信間隔と今回の平均受信間隔に基づいて偏差を算出してもよい。
(S4)転送時刻管理部24は、転送時刻テーブル15に格納された、VM統計情報の送信元の業務装置2のIPアドレスに対応する平均受信間隔及び平均受信間隔変動値を、算出した平均受信間隔及び変動値で更新する。
(S5)転送時刻管理部24は、転送時刻テーブル15に格納された、VM統計情報の送信元の業務装置2のIPアドレスに対応する最終受信時刻を、現在の時刻で更新する。
なお、例えば業務装置2からVM統計情報が送信される間隔が固定的に決まっており、転送処理装置4において受信する間隔が一定である場合等には、例えば、次のようにしてもよい。すなわち、転送処理装置4による処理によって平均受信間隔を算出して転送時刻テーブル15に設定するのではなく、システム管理者等が、受信間隔として、予め固定値を記憶手段に設定しておいてもよい。
図20は、転送処理装置4に割当てられた業務装置2の割当てを他の転送処理装置4に移行させる処理を行う場合の一例として、転送処理装置4のCPU使用率が閾値を超過しているため、当該転送処理装置4に対する業務装置2の割当てを他の転送処理装置4に移行させる処理を示すシーケンス図である。
移行対象決定部23は、自装置のCPU使用率が共通情報テーブル13のCPU使用率閾値を超過していることを検出すると、業務装置管理部22に対し、自装置に割当てられている業務装置2のうち、他の転送処理装置4に割当てを移行することが可能な業務装置2を通知するように要求する(1)。業務装置管理部22は、移行対象決定部23から要求を受信すると、業務装置管理テーブル11を参照し、自装置に割当てられた業務装置2のうち、移行ステータスが「移行可」である1つ以上の業務装置2のIPアドレスを取得する(2)。そして、業務装置管理部22は、取得した1つ以上の業務装置2のIPアドレスを移行対象決定部23に通知する(3)。
移行対象決定部23は、業務装置管理部22から通知された業務装置2の中から移行対象を選択する移行対象選択処理を実行する(4)。なお、移行対象選択処理の内容については図21を用いて後述する。
そして、移行対象決定部23は、選択した業務装置2を、業務装置管理部22に通知する(5)。業務装置管理部22は、業務装置管理テーブル11における、選択された業務装置2の移行ステータスを、「移行中」に変更する(6)。そして、業務装置管理部22は、移行対象決定部23に対し、業務装置管理テーブル11の変更を行ったことを応答する(7)。移行対象決定部23は、この応答を受信すると、セッション管理テーブル14を参照し、選択した業務装置2に対応するセッションIDを取得する。そして、移行対象決定部23は、転送管理装置通信部21に対し、取得したセッションIDとともに、業務装置2の割当て移行要求を送信する(8)。
転送管理装置通信部21は、転送管理装置5に対して業務装置2の割当て移行要求の送信し、転送管理装置5から、割当て移行処理を行った旨の応答を受信する移行要求送受信処理を実行する(9)。この移行要求送受信処理には、移行処理が行われた時刻及び割当て移行要求の送信から応答の受信までの時間、すなわち、移行処理に要した移行時間を計測する処理が含まれる。移行要求送受信処理の内容については図22を用いて後述する。転送管理装置通信部21は、転送管理装置5から応答を受信すると、業務装置管理部22に対し、割当て移行処理が完了したことを示す通知を行う(10)。業務装置管理部22では、転送管理装置通信部21から通知を受信すると、業務装置管理テーブル11やセッション管理テーブル14における、移行対象となった業務装置2のレコードを削除する(11)。
また一方で、転送管理装置通信部21は、転送管理装置5から応答を受信すると、移行要求送受信処理によって計測された移行時間を、移行時間管理部25に送信する(13)。移行時間管理部25は、移行時間を受信すると、平均移行時間を算出する(14)。なお、この算出は様々な方法により実現でき、一例としては、次式によって算出可能である。
T_new = βT+(1-β)T_old
(T_new:算出対象の平均移行時間、T_old:前回までの平均移行時間、T:転送管理装置通信部21から通知された移行時間、β:更新係数(0<β<1))
前回までの平均受信間隔については、移行時間管理部25は、平均移行時間データ16を参照する。また、更新係数は、システム管理者等が予め転送処理装置4の記憶装置に設定しておく。この更新係数を大きくすればするほど、計算結果の平均移行時間に、今回計測した移行時間がより大きく反映される。
ここで、移行対象決定部23が実行する移行対象選択処理につき、図21のフローチャートを参照しつつ説明する。
(S11)移行対象決定部23は、「移行可」の業務装置2が存在するか否か、すなわち、業務装置管理部22から1以上の業務装置2が通知されたか否かを判定する。「移行可」の業務装置2が存在する場合には、S12に進み(Yes)、存在しない場合には、S16に進む(No)。
(S12)移行対象決定部23は、業務装置管理部22から通知された1つ以上の業務装置2につき、VM統計情報を将来受信する受信予測時刻、具体的には次回受信する受信予測時刻を算出する。また、移行対象決定部23は、割当ての移行処理が完了する移行完了予測時刻を算出する。そして、VM統計情報の次回の受信予測時刻が割当ての移行完了予測時刻よりも後である業務装置2を選択する。具体的には、移行対象決定部23は、各業務装置2につき、転送時刻テーブル15及び平均移行時間データ16を参照し、転送時刻テーブル15に設定された最終受信時刻に平均受信間隔を加算した時刻を算出し、VM統計情報を次回受信する受信予測時刻とする。一方で、現在時刻に平均移行時間データ16の平均移行時間を加算した時刻を算出し、割当ての移行完了予測時刻とする。そして、次回のVM統計情報の受信予測時刻が、移行完了予測時刻よりも遅い業務装置2が存在するか否かを判定する。なお、かかる条件を満たす業務装置2は、換言すれば、[最終受信時刻 + 平均受信間隔] > [現在時刻 + 平均移行時間] を満たす業務装置2である。例えば、転送時刻テーブル15のデータが図9に示す内容であって、平均移行時間データが図10に示す内容(2秒)であり、現在時刻が[5:09 ’54]である場合を想定する。この具体例では、割当ての移行完了予測時刻は、[5:11 ’54]となる。一方、業務装置IPアドレス[10.0.0.1]、[10.0.0.2]、[10.0.0.3]、[10.0.0.4]の業務装置2におけるVM統計情報を次回受信する受信予測時刻は、それぞれ[5:11 ’40]、[5:11 ’58]、[5:11 ’50]、[5:12 ’15]である。したがって、前記条件を満たす業務装置2は、IPアドレス[10.0.0.2]及び[10.0.0.4]の業務装置2となる。
かかる業務装置2が存在する場合には、S13に進み(Yes)、存在しない場合には、S16に進む(No)。
(S13)移行対象決定部23は、次回のVM統計情報の受信予測時刻が、移行完了予測時刻よりも後の業務装置2のうち、受信予測時刻が最も早い(min[最終受信時刻+平均受信間隔])業務装置2を選択する。換言すれば、移行対象決定部23は、次回のVM統計情報の受信予測時刻が、移行完了予測時刻よりも後であって、移行完了予測時刻に最も近い受信予測時刻に対応する業務装置2を選択する。なお、前記具体例では、IPアドレス[10.0.0.2]の業務装置2が選択される。このように最終受信時刻に平均受信間隔を加算した時刻が早い業務装置2を選択することで、転送処理装置4の負荷軽減を早期に達成することができる。
(S14)移行対象決定部23は、S13で選択した業務装置2、すなわち、次回のVM統計情報の受信予測時刻が最も早い業務装置2が複数あるか(すなわち同時刻の業務装置2が複数あるか)否かを判定する。複数ある場合には、S15に進み(Yes)、1つである場合には、処理を終了する(No)。
(S15)移行対象決定部23は、転送時刻テーブル15を参照し、S13で選択した業務装置2のうち、平均受信間隔変動値が最も小さい業務装置2を選択する。これにより、VM統計情報を次回受信する時刻として予測した時刻と実際にVM統計情報を受信する時間との誤差を小さくすることができる。
(S16)移行対象決定部23は、割当てを移行することが可能な業務装置2が存在しないことを示すエラー処理を行う。かかるエラー処理は、例えば転送管理装置通信部21を介して転送管理装置5にアラームを送信してもよいし、いかなる方法で行ってもよい。
ここで、移行対象決定部23は、次回のVM統計情報の受信予測時刻が、移行完了予測時刻よりも遅いという条件を満たす業務装置2のうち、例えば、転送量が最も大きい業務装置2を選択してもよい。これにより、業務装置2の割当ての移行による自装置の処理負担の軽減を効率的に行うことができる。また、他の例として、移行対象決定部23は、かかる条件を満たす業務装置2のうち、例えば、前回転送量と前々回転送量との間の変動が最も小さい業務装置2を選択してもよい。これにより、割当ての移行先の転送処理装置4における動作の安定を図ることができる。
また、移行対象選択処理においては、業務装置2を複数選択してもよい。この場合には、次回のVM統計情報の受信予測時刻が、移行完了予測時刻よりも遅い業務装置2のうち、受信予測時刻が、他の業務装置2の次回のVM統計情報の受信予測時刻よりも移行完了予測時刻に近い(すなわち早い)業務装置2を選択すればよい。
さらに、移行対象決定部23は、前述の条件を満たす業務装置2から、転送量の合計が所定値以上になるように業務装置2を複数選択してもよい。こうすることで、転送処理装置4の負荷が急上昇した場合にも、転送処理装置4の負荷を大きく低減させることができる。
次に、転送管理装置通信部21が実行する移行要求送受信処理につき、図22のフローチャートを参照しつつ説明する。
(S21)転送管理装置通信部21は、現在時刻を、割当て移行要求を送信時刻として記憶装置に記憶しておく。
(S22)転送管理装置通信部21は、転送管理装置5に対し、割当て移行要求を送信する。この割当て移行要求には、移行対象として選択された1つ以上の業務装置2のIPアドレスと、セッションIDが付されている。
(S23)転送管理装置通信部21は、転送管理装置5から、S22の割当て移行要求に対する応答を受信する。
(S24)転送管理装置通信部21は、S23の応答が正常であるか、すなわち、割当て移行処理が正常に完了したか否かを判定する。応答が正常である場合には、S25に進み(Yes)、応答が正常でない場合には、S26に進む(No)。
(S25)転送管理装置通信部21は、S21で記憶しておいた割当て移行要求を送信時刻と、応答を受信した現在時刻との差分時間を、移行時間として算出する。
(S26)転送管理装置通信部21は、割当て移行処理が失敗したことを示すエラー処理を行う。かかるエラー出力は、例えば転送管理装置通信部21を介して転送管理装置5にアラームを送信してもよいし、いかなる方法で行ってもよい。
なお、業務装置2の割当て移行処理によって新たに業務装置2を割当てられた側の転送処理装置4では、次のような処理が実行される。すなわち、転送管理装置通信部21が、転送管理装置5から、業務装置2のIPアドレス及びセッションIDとともに、当該業務装置2が新たに割当てられた旨の通知を受信すると、業務装置管理部22が、業務装置管理テーブル11及びセッション管理テーブル14に、当該業務装置2に対応するレコードを追加する。そして、転送管理装置通信部21が、転送管理装置5に対し、転送処理装置4における業務装置追加処理を行った旨を応答する。
ここで、転送処理装置4は、例えば、業務装置2の割当ての移行通知のみならず、転送管理装置5から様々なシステム構成情報を受信したときにも、自装置で保持する情報に反映させる処理を行う。例えば、転送処理装置4に割当てられた業務装置2で稼働するVMのVM統計情報の転送先となる収集装置3に変更が生じた場合には、転送処理装置4は次のような処理を行う。すなわち、転送処理装置4は、転送管理装置5から、VMの識別子及び変更後の収集装置3のIPアドレスを含んだ変更通知を受信すると、転送先テーブル12における、受信した変更通知のVM識別子に対応する収集装置3のIPアドレスを、変更後の収集装置3のIPアドレスに変更する。
[転送管理装置の処理]
次に、転送管理装置5が備える各構成要素間において実行される処理シーケンスについて詳述する。
図23は、転送処理装置4から定期的に負荷情報を受信した場合における処理を示す。
転送処理装置通信部42は、転送処理装置4から負荷情報を受信し(1)、受信した負荷情報を転送処理装置管理部43に送信する(2)。転送処理装置管理部43は、転送処理装置管理テーブル31に対し受信した負荷情報を反映させる更新を行う(3)。そして、転送処理装置管理部43は、転送処理装置通信部42に対して負荷情報を更新した旨の応答をし(4)、転送処理装置通信部42は、負荷情報の送信元の転送処理装置4に対し、負荷情報を更新した旨の応答を送信する(5)。
図24は、転送処理装置4から業務装置2の割当ての移行要求を受信した場合に、業務装置2の割当ての移行を行う処理を示す。
転送処理装置通信部42は、転送処理装置4から、1つ以上の業務装置2のIPアドレスとともに、当該業務装置2の割当てを他の転送処理装置4に移行させる要求を受信する(1)。転送処理装置通信部42は、受信した業務装置2のIPアドレス及び当該要求の送信元の転送処理装置4のIPアドレスを割当て決定部45に通知する(2)。割当て決定部45は、転送処理装置管理部43に対し、要求の送信元の転送処理装置4以外の転送処理装置4の負荷情報の要求を送信する(3)。転送処理装置管理部43は、転送処理装置管理テーブル31を参照し、各転送処理装置4の負荷情報を取得して、割当て決定部45に送信する(4)。
割当て決定部45は、転送処理装置管理部43から受信した、各転送処理装置4の負荷情報に基づき、業務装置2の割当ての移行先とする転送処理装置4を選択する移行先選択処理を実行する(5)。なお、この移行先選択処理の内容については図25で後述する。そして、割当て決定部45は、決定した業務装置2の移行先となる転送処理装置4のIPアドレスを、転送処理装置管理部43に通知する(6)。
転送処理装置管理部42は、割当て決定部45から通知された転送処理装置4のIPアドレスに基づき、割当てテーブル32を更新する(7)。具体的には、移行対象の1つ以上の業務装置2のIPアドレスに対応する転送処理装置4のIPアドレスを、割当て決定部45で選択された転送処理装置4のIPアドレスに変更する。そして、転送処理装置管理部43は、この更新処理が完了した旨を、割当て決定部45に応答する(8)。
割当て決定部45は、振分装置通信部43に対し、業務装置2の割当てが移行されたことを示す通知の送信を要求する(9)。振分装置通信部43は、振分装置6に対し、業務装置2の割当てが移行された通知、すなわち、業務装置2から受信したVM統計情報の振り分け先の変更要求を送信する(10)。この要求には、割当て決定部45で選択された転送処理装置4のIPアドレス及び転送処理装置4から受信したセッションIDが付される。
なお、振分装置6では、当該要求を受信すると、振り分け先テーブルのデータのうち、通知されたセッションIDに対応する転送処理装置4のIPアドレスを、通知された移行先の転送処理装置4のIPアドレスに変更する。そして、変更が完了したことを示す応答を転送管理装置5に返す。
振分装置通信部43は、振分装置6から振り分け先の変更が完了したことを示す応答を受信すると、その内容を割当て決定部45に対して応答する(11)。
割当て決定部45は、転送処理装置通信部42に対し、割当て決定部45で選択された転送処理装置4のIPアドレスを通知するとともに、業務装置2の割当て変更処理を行ったことを応答する(12)。転送処理装置通信部42は、業務装置2の割当ての移行元であった転送処理装置4に対し、割当て移行処理が完了した旨を応答する一方、割当て決定部45から通知された転送処理装置4のIPアドレスを用いて、業務装置2の割当ての移行先となった転送処理装置4に対し、業務装置2の転送処理が割当てられたことの通知を送信する(13)。
ここで、転送管理装置5の割当て決定部45における移行先選択処理につき、図25のフローチャートを用いて説明する。
割当て決定部45は、転送処理装置管理部43から、1つ以上の業務装置2の割当て移行要求の送信元の転送処理装置4以外の各転送処理装置4のCPU使用率及び変動大CPU使用率を含んだ負荷情報を受信する(S31)。そして、割当て決定部45は、CPU使用率が、共通情報テーブル34に設定されているCPU使用率無条件割当閾値以下の転送処理装置4が存在するか否かを判定する(S32)。割当て決定部45は、CPU使用率がCPU使用率無条件割当閾値以下の転送処理装置4があれば(Yes)、その中から最もCPU使用率が低い転送処理装置4を選択する(S33)。なお、このS33の処理は、例えば、新たに転送処理装置4が導入されたときに、新たな転送処理装置4に重点的に転送処理を割り当てることを主たる目的としている。一方、割当て決定部45は、CPU使用率がCPU使用率無条件割付閾値以下の転送処理装置4がなければ(No)、さらに、CPU使用率が、共通情報テーブル34に設定されているCPU使用率条件付割当閾値以下の転送処理装置4が存在するか否かを判定する(S34)。そして、割当て決定部45は、CPU使用率がCPU使用率条件付割当閾値以下の転送処理装置4が存在するときには(Yes)、さらに、変動大CPU使用率が、共通情報テーブル34に設定されている変動大CPU使用率閾値以下の転送処理装置4が存在するか否かを判定する(S35)。割当て決定部45は、変動大CPU使用率が変動大CPU使用率閾値以下の転送処理装置4が存在するときには、その中から、最も変動大CPU使用率の低い転送処理装置4を選択する(S36)。このS36の処理により、転送量の変動が大きい転送処理を行っている割合が少ない転送処理装置4、即ち、比較的動作の安定した転送処理装置4を選択することができるため、移行先の転送処理装置4の動作が不安定になる可能性を低くすることができる。一方、前記S34の判定において、CPU使用率がCPU使用率条件付割当閾値以下の転送処理装置4が存在しないときには(No)、割当て決定部45は、いずれの転送処理装置4も選択せずに処理を終了する。これにより、CPU使用率が高い転送処理装置4しか存在しない場合には、業務装置2の割当て移行処理自体を行わないものとすることができる。同様に、前記S35の判定において、変動大CPU使用率が変動大CPU使用率合計以下の転送処理装置4が存在しないときにも(No)、いずれの転送処理装置4も選択せずに処理を終了する。これにより、かりにCPU使用率が比較的低い転送処理装置4が存在する場合でも、動作が不安定な転送処理装置4しか存在しない場合(換言すれば、CPU使用率が急に上昇する蓋然性のある転送処理装置4しか存在しない場合)には、業務装置2の割当て移行処理自体を行わないものとすることができる。なお、このようにいずれの転送処理装置4も選択せずに処理を終了するときには、例えばエラー処理をするようにしてもよい。
なお、割当て決定部45は、割当ての移行対象の業務装置2が複数ある場合には、それぞれの業務装置2について、前述の移行先選択処理を繰り返し、割当ての移行先とする転送処理装置4を選択する。
また、転送管理装置5は、業務装置2の割当てを移行させる処理ではなく、例えば、VM管理装置1から、新たな業務装置2が増設された内容のシステム構成情報を受信した場合等において、転送処理装置4に新たな業務装置2を割当てるとき等にも、前記と同様の処理によって、割当て先となる転送処理装置4を決定する。そして、割当てテーブル32にその変更を反映させる更新を行い、転送処理装置4に対して、業務装置2を割当てた旨の通知を送信する。また、例えば、業務装置2がシステムから削除されたとき等においても、割当てテーブル32にその変更を反映させる更新を行うとともに、その業務装置2が割当てられている転送処理装置4に対し、業務装置2の削除通知を送信する。さらに、例えば、転送処理装置4に割当てられた業務装置2で稼働するVMのVM統計情報の転送先となる収集装置3に変更が生じた場合には、転送管理装置5は、転送先テーブル33にその変更を反映させた上で、その業務装置2が割当てられた転送処理装置4に対し、収集装置3の変更通知を送信する。
[まとめ]
以上のような転送処理装置4及び転送管理装置5の処理によれば、次のような作用及び効果を奏する。
すなわち、転送処理装置4の業務装置管理部22は、業務装置2の割当てを他の業務装置2に移行させるときに、業務装置2からのVM統計情報の受信状態に応じて、業務装置管理テーブル11の移行ステータスを変更する。そして、移行対象決定部23は、この移行ステータスに応じて、移行対象とする業務装置2を決定する。このため、移行対象決定部23は、業務装置2の状態に鑑みて適切な業務装置2を選択することができる。その結果、システム全体として、複数の転送処理装置4の情報処理資源を有効活用し、データの転送処理を効率良く行うことが可能となる。
ここで、前記の転送処理装置4の処理によれば、業務装置2のそれぞれについて次にVM統計情報を受信する時刻を予測するとともに、振分装置6における割当ての移行処理が完了する時刻を予測する。そして、VM統計情報を受信する時刻が割当ての移行処理が完了する時刻よりも後であり、且つ、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い業務装置2が、移行対象として選択される。このため、割当ての移行処理が完了するよりも前に、移行対象として決定した業務装置2からのVM統計情報の受信が始まってしまうという不具合が発生する確率を低減させることができる。さらに、早期に受信するデータの転送処理が他の転送元装置に移行されることとなるため、転送元装置の負荷軽減が早期に効率良く行われる。なお、この機能は、前述の移行ステータスの変更処理の有無に関わらず実現することが可能である。
例えば、業務装置2がX台存在し、各業務装置2が30秒に1回の頻度でVM統計情報を送信する場合において、業務装置2の割当て移行処理の移行時間が1秒かかる動作環境を想定する。この場合、単にいずれかの業務装置2を移行対象として選択する場合には、(1/X)*(X/30)=1/30(約3.2%)の割合で、割当ての移行処理が完了するよりも前に、移行対象として決定した業務装置2からのVM統計情報の受信が始まってしまう状況が発生し得る。しかし、前記の転送処理装置4の処理によれば、かかる状況が発生する割合をほぼ0に近づけることができる。
ここで、前記の処理を行ってもなお、移行処理が完了するよりも前に移行対象として決定した業務装置2からのVM統計情報の受信が始まってしまった場合には、転送処理装置4は、平均移行時間データ16をより長くするように修正してもよい。この処理を、図26に示す。具体的には、定期的なVM統計情報の収集処理において、収集部26は、業務装置2からVM統計情報を受信する(1)。この処理は、図18の(1)の処理に対応する。そして、収集部26は、業務装置管理テーブル11におけるVM統計情報の送信元の業務装置2の移行ステータスを参照し、移行ステータスが「移行中」であることを特定した場合(2)、移行時間管理部25に対してアラームを送信する(3)。一方、移行時間管理部25は、アラームを受信すると、平均移行時間データ16の時間をより長く変更する(4)。こうすることにより、図21のS12において業務装置2の割当ての移行処理が完了する時刻として予測される時刻が、より遅くなることとなる。このため、次回に業務装置2の割当て移行処理が行われるときに、次回の転送対象データの受信がより遅い業務装置2が選択されることとなる。したがって、移行処理が完了するよりも前に移行対象として決定した業務装置2からのVM統計情報の受信が始まってしまう確率を、より低くすることができる。なお、平均移行時間データ16の時間をどれ位長くするかを決定するときには、いかなる方法を適用してもよい。例えば、所定時間を固定値として予め記憶手段に設定しておき、その所定時間だけ長くしてもよい。また、平均移行時間が全体として長くなる傾向にある場合には、平均移行時間データ16の平均移行時間を直接変更するのではなく、平均移行時間の算出に用いる更新係数をより大きい値に変更し、より新しい移行時間が反映されるようにしてもよい。
一方、前述した転送管理装置5の処理によれば、業務装置2の割当ての移行処理において、転送処理装置4で適切な業務装置2が移行対象として選択されることに加え、移行先とする転送処理装置4も適切に選択することができる。具体的には、転送管理装置5は、転送処理装置4の負荷情報を定期的に受信して転送処理装置管理テーブル31に格納しておき、この負荷情報に基づいて、移行先とする転送処理装置4を選択する。ここで、転送管理装置5は、転送処理装置4のCPU使用率のみならず、変動大CPU使用率を参照し、変動大CPU使用率が閾値よりも低い転送処理装置4を選択することで、比較的動作の安定した転送処理装置4を選択することができる。
なお、前記実施例では、転送処理装置4において移行対象とする業務装置2を選択していた。しかし、例えば、かかる業務装置2の選択処理も含めて転送管理装置5側で行うことも可能である。すなわち、転送処理装置4は、業務装置管理テーブル11や共通情報データ13の内容を転送管理装置5に通知するのみとし、転送管理装置5において、これらの情報に基づき、割当ての移行対象とする業務装置2を選択するようにしてもよい。
さらには、転送管理装置5を含まないシステム構成において、転送処理装置4が、自装置が転送処理を行っている業務装置2の割当てを、他の転送処理装置に移行させることも考えられる。かかる場合においても、転送処理装置4において移行対象の業務装置を選択する構成を適用することは可能である。
また、振分装置6を用いてVM統計情報を振り分けるシステム構成は一例に過ぎず、例えば、業務装置2は、VM統計情報を直接転送処理装置4に対して送信してもよい。この場合、VM統計情報の送信先が直接業務装置2に設定され、管理されることとなる。そして、転送管理装置5は、割当て移行通知を、業務装置2に対して送信し、業務装置2が、自装置におけるVM統計情報の送信先の設定を変更することとなる。
[ハードウェア構成]
図27は、かかる技術が具現化された転送処理装置及び転送管理装置のハードウェア構成の一例を示す。本装置は、CPU901、メモリ902、ストレージ903、可搬記憶媒体駆動装置904、入出力装置905及び通信インタフェース906を備える。
CPU901は、制御ユニット、演算ユニット及び命令デコーダ等を含み、実行ユニットが、命令デコーダで解読されたプログラムの命令に従い、制御ユニットより出力される制御信号に応じ、演算ユニットを用いて算術・論理演算を実行する。なお、CPU901は、CPUコアが複数設けられている構成でもよい。
メモリ902は、例えばRAM(Random Access Memory)等であり、CPU901で実行されるプログラムがロードされるとともに、CPU901の処理に用いるデータが格納されるメインメモリである。また、ストレージ903は、例えばHDD(Hard Disk Drive)やフラッシュメモリ等であり、プログラムや各種データが格納される。可搬記憶媒体駆動装置904は、可搬記憶媒体907に記憶されたデータやプログラムを読み出す装置である。可搬記憶媒体907は、例えば磁気ディスク、光ディスク、光磁気ディスク又はフラッシュメモリ等である。なお、物理CPU901は、メモリ902やストレージ903と協働しつつ、ストレージ903や可搬記憶媒体907に格納されたプログラムを実行する。なお、物理CPU901が実行するプログラムや、アクセス対象となるデータは、当該装置と通信可能な他の装置に格納されていてもよい。
入出力装置905は例えばキーボード等やディスプレイ等であり、ユーザ操作等による動作命令を受け付ける一方、情報処理装置による処理結果を出力する。通信インタフェース906は例えばLANカード等であり、外部とのデータ通信を可能にする。前述した装置の各構成要素は、バス908で接続されている。
なお、前述した情報処理装置の機能的構成及び物理的構成は、前述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)複数の転送元装置から所定時間ごとに送信されるデータを対応する転送先装置に転送する転送処理装置に、
前記複数の転送元装置のそれぞれについて、データの最終受信時刻及びデータの受信間隔に基づいて、将来のデータの受信予測時刻を算出し、
前記複数の転送元装置のうちいずれかの転送元装置に関するデータ転送処理の割当てを該転送処理装置から他の転送処理装置に移行する際に要する移行時間に基づいて移行完了予測時刻を算出し、
算出した前記受信予測時刻のうち、算出した前記移行完了予測時刻よりも後であって、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い受信予測時刻に対応する転送元装置に関するデータ転送処理の割当てを、該転送処理装置から他の転送処理装置に移行させる
処理を実行させる情報処理プログラム。
(付記2)前記転送元装置に関するデータ転送処理の割当てを他の転送処理装置に移行させる処理は前記受信予測時刻のうち、前記移行完了予測時刻よりも後であって、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い受信予測時刻に対応する転送元装置の中で、データの転送量が他の転送元装置よりも大きい転送元装置に関するデータ転送処理の割当てを移行させる付記1記載の情報処理プログラム。
(付記3)前記複数の転送元装置のいずれかからデータを受信したときに、該転送元装置につき、データの受信時刻及び前回のデータの受信時に記憶した前記最終受信時刻の差分時間を算出し、当該差分時間に基づいてデータの前記受信間隔を算出して記憶手段に記憶する付記1又は2に記載の情報処理プログラム。
(付記4)前記受信間隔を算出したときに、前記受信間隔の変動を示す値を算出して記憶手段に記憶し、
前記転送元装置に関するデータ転送処理の割当てを他の転送処理装置に移行させる処理は、前記受信予測時刻のうち、前記移行完了予測時刻よりも後であって、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い受信予測時刻に対応する転送元装置の中で、前記変動を示す値が他の転送元装置よりも小さい転送元装置に関するデータ転送処理の割当てを移行させる付記3記載の情報処理プログラム。
(付記5)前記転送元装置に関するデータ転送処理の割当てを他の転送処理装置に移行させる処理は、移行に要した時間を計測し、当該計測時間に基づいた移行時間を算出して記憶手段に記憶する付記1〜4のいずれか1つに記載の情報処理プログラム。
(付記6)前記移行処理中に前記移行対象とする転送元装置からデータを受信したときに、記憶手段に記憶された前記移行時間を修正して更新する付記1〜5のいずれか1つに記載の情報処理プログラム。
(付記7)前記複数の転送元装置のいずれかからデータを受信したときに、受信したデータの転送量の履歴を記憶手段に記憶しておき、該履歴においてデータの転送量の変動が所定閾値よりも大きい場合、該転送元装置の前記移行可否情報を、割当て移行不可とする付記1〜6のいずれか1つに記載の情報処理プログラム。
(付記8)前記転送元装置に関するデータ転送処理の割当てを他の転送処理装置に移行させる処理は、前記受信予測時刻のうち、前記移行完了予測時刻よりも後であって、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い受信予測時刻に対応する転送元装置のうち、データの転送量の合計が所定値以上になるように転送元装置を複数選択する付記1〜7のいずれか1つに記載の情報処理プログラム。
(付記9)前記転送元装置に関するデータ転送処理の割当てを他の転送処理装置に移行させる処理は、前記受信予測時刻のうち、前記移行完了予測時刻よりも後であって、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い受信予測時刻に対応する転送元装置の中で、データの転送量の変動が他の転送元装置よりも小さい転送元装置を選択する付記1〜8のいずれか1つに記載の情報処理プログラム。
(付記10)複数の転送元装置から所定時間ごとに送信されるデータを対応する転送先装置に転送する転送処理装置であって、
前記複数の転送元装置のそれぞれについて、データの最終受信時刻及びデータの受信間隔に基づいて、将来のデータの受信予測時刻を算出する手段と、
前記複数の転送元装置のうちいずれかの転送元装置に関するデータ転送処理の割当てを該転送処理装置から他の転送処理装置に移行する際に要する移行時間に基づいて移行完了予測時刻を算出する手段と、
算出した前記受信予測時刻のうち、算出した前記移行完了予測時刻よりも後であって、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い受信予測時刻に対応する転送元装置に関するデータ転送処理の割当てを、該転送処理装置から他の転送処理装置に移行させる手段と
を備えた転送処理装置。
(付記11)複数の転送元装置から所定時間ごとに送信されるデータを対応する転送先装置に転送する転送処理装置が、
前記複数の転送元装置のそれぞれについて、データの最終受信時刻及びデータの受信間隔に基づいて、将来のデータの受信予測時刻を算出し、
前記複数の転送元装置のうちいずれかの転送元装置に関するデータ転送処理の割当てを該転送処理装置から他の転送処理装置に移行する際に要する移行時間に基づいて移行完了予測時刻を算出し、
算出した前記受信予測時刻のうち、算出した前記移行完了予測時刻よりも後であって、他の転送元装置からのデータの受信予測時刻よりも該移行完了予測時刻に近い受信予測時刻に対応する転送元装置に関するデータ転送処理の割当てを、該転送処理装置から他の転送処理装置に移行させる
手順を実行する情報処理方法。