(57)【要約】      （修正有）【課題】バックグラウンドで実行されるデータ移動処理の実行タイミングを計り、データアクセス処理を効率良く実行する。【解決手段】サーバリソース管理部が、複数のＤＢサーバ２の平均負荷の状況をそれぞれ管理しており、移動元サーバ又は移動先サーバにおける平均負荷が予め設定された高負荷用閾値以上となると、データアクセス処理の優先順位よりもデータ移動処理の優先順位を高く設定する一方、その後、移動元サーバ又は移動先サーバにおける平均負荷が予め設定された中低負荷用閾値以下となると、データアクセス処理の優先順位をデータ移動処理の優先順位よりも高く設定している。【選択図】図１
2013222221.tif 000002
【特許請求の範囲】
【請求項１】
外部からのデータアクセスを受け付けるデータアクセス処理を実行するとともに、前記データアクセスに係るデータを分散して管理する複数のサーバと、前記データアクセス処理のバックグラウンドで前記複数のサーバのうちの移動元サーバから移動先サーバへデータを移動させるためのデータ移動処理を実行させる管理サーバと、がネットワークを介して接続された分散データ管理システムにおいて、
前記複数のサーバは、
所定時間内の自らの平均負荷を測定して前記管理サーバに通知する負荷計測通知部と、
前記管理サーバからの指示に基づいて、前記データアクセス処理を実行するデータアクセス部と、
前記管理サーバからの指示に基づいて、前記データアクセス処理のバックグラウンドで前記データ移動処理を実行するデータ移動部と、
を有し、
前記管理サーバは、
前記複数のサーバに分散管理されたデータのデータ配置を記録するとともに前記複数のサーバに分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較して前記データ移動処理が実行されるべきデータを検出するデータ配置管理部と、
前記複数のサーバの平均負荷の状況をそれぞれ管理しており、初期設定として前記複数のサーバを中低負荷状態にあると判定して前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、前記移動元サーバにおける平均負荷が予め設定された高負荷用閾値以上となると、高負荷状態であると判定して前記データアクセス処理の優先順位よりも前記データ移動処理の優先順位を高く設定する一方、その後、前記移動元サーバにおける平均負荷が予め設定された中低負荷用閾値以下となると、高負荷状態を脱して中低負荷状態にあると判定して前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定するサーバリソース管理部と、
前記高負荷用閾値及び前記中低負荷用閾値並びに前記複数のサーバにおける平均負荷の状況に基づき、前記データ移動処理を実行させるべきタイミングを決定し、前記移動元サーバ及び前記移動先サーバのいずれか一方又は両方に対して、前記設定された優先順位に従って前記移動データを移動すべき旨を指示する移動データ選択部と
を備えることを特徴とする分散データ管理システム。
【請求項２】
前記サーバリソース管理部は、
前記複数のサーバのうちの特定のサーバが高負荷状態である場合、予め設定された優先順位の高いデータ移動処理用の閾値を前記データ移動処理の閾値と決定するとともに、予め設定された高負荷時のデータアクセス処理用の閾値を前記データアクセス処理の閾値として決定する一方、
前記複数のサーバのうちの特定のサーバが中低負荷状態である場合、予め設定された中低負荷状態における前記データアクセス処理用の閾値をデータアクセス用の閾値として決定するとともに、データアクセスによる負荷とサーバの性能保証値である負荷との差分を求め、その値を前記データ移動処理の閾値として決定する
ことを特徴とする請求項１に記載の分散データ管理システム。
【請求項３】
前記管理サーバは、
前記移動データに関連付けて、前記移動元サーバ、前記移動先サーバ、前記移動データのデータ量及び前記移動データの移動状態を管理するデータ移動管理部を備える
ことを特徴とする請求項２に記載の分散データ管理システム。
【請求項４】
前記移動データ選択部は、
前記移動元サーバに関しては、前記複数のサーバのうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、前記移動先サーバに関しては、前記移動データのデータ量が少ない順に選択すること、前記移動データのデータ量が多い順に選択すること、及び、平均負荷が低い順に選択することのうちから少なくとも１つを選択し、前記複数のサーバのうちから前記選択結果に関係する移動データに対応する移動先サーバを選択する選択処理を実行し、
前記選択処理に基づく前記移動データに対して、前記データアクセス処理の閾値及び前記データ移動処理の閾値に従ってデータ移動を制限し、前記データ移動処理の実施が制限されるべきと判定された場合には、前記選択処理に従って新たな移動データを選択し、
前記移動データが存在する移動元サーバ及び移動先サーバのいずれか一方又は両方に対して、前記移動データを移動すべき旨を指示する
ことを特徴とする請求項１に記載の分散データ管理システム。
【請求項５】
前記移動データ選択部は、
前記移動元サーバに関しては、前記複数のサーバのうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、前記移動先サーバに関しては、データ量が少ない順にデータを移動した場合とデータ量が多い順にデータを移動した場合における前記移動元サーバの負荷の推移をそれぞれ推定することにより前記移動元サーバが高負荷状態を脱する時刻を予想し、より早く前記高負荷状態を脱すると予測される方法を選択して、前記複数のサーバのうちから前記移動先サーバを決定し、
前記選択処理に基づく移動データに関して、前記データアクセス処理の閾値及び前記データ移動処理の閾値に従ってデータ移動を制限し、データ移動が制限されるべきと判定された場合には、前記選択処理に従って新たな移動データを選択し、
最終的に選択した移動データの移動元サーバ及び移動先サーバのいずれか一方又は両方にデータの移動を指示する
ことを特徴とする請求項４に記載の分散データ管理システム。
【請求項６】
前記複数のサーバと前記管理サーバとの間において前記複数のサーバ間および前記管理サーバとを接続する回線を有し、前記回線の負荷を測定して前記管理サーバに通知する複数のネットワークスイッチを有し、
前記管理サーバは、
前記複数のサーバによるアクセスに応じた各前記ネットワークスイッチの負荷状況を管理する回線リソース管理部
を有し、
前記複数のネットワークスイッチのうち前記選択された移動データの移動経路上にあるネットワークスイッチを検出すると、前記検出されたネットワークスイッチの回線負荷を予め設定した回線負荷の閾値と比較し、この比較結果に基づいてデータ移動の可否判断を行う
ことを特徴とする請求項１に記載の分散データ管理システム。
【請求項７】
前記移動データ選択部は、
前記データアクセス処理及び前記データ移動処理の閾値による制限を受けてデータ移動ができないデータが優先順位の高いデータ移動である場合、前記移動先サーバが優先順位の低いデータ移動を実行しており、前記優先順位の低いデータ移動を中断することにより、前記優先順位の高いデータ移動を受け付けることが可能であれば前記優先順位の低いデータ移動を中断し、前記優先順位の高いデータ移動を優先的に実行する請求項１に記載の分散データ管理システム。
【請求項８】
前記移動データ選択部は、
前記回線負荷の閾値を用いた判定によってデータ移動が制限される移動データが優先順位の高いデータ移動である場合、前記優先順位の低いデータ移動を中断することにより、前記優先順位の高いデータ移動を受け付けることが可能であれば前記優先順位の低いデータ移動を中断し、前記優先順位の高いデータ移動を優先的に実行する請求項７に記載の分散データ管理システム。
【請求項９】
前記ネットワークスイッチは、
前記管理サーバからの指示に従い、前記設定された優先順位に応じた優先制御を行うことを特徴とする請求項１に記載された分散データ管理システム。
【請求項１０】
前記移動データ選択部は、
前記複数のサーバを複数のデータ管理グループに分けて管理する一方、
各前記データ管理グループに分けた優先順位の高いデータ移動及び優先順位の低いデータ移動に優先順位を付与し、前記付与した優先順位に従って、対応する前記データ管理グループについてデータ移動のスケジューリングを行う請求項１に記載された分散データ管理システム。
【請求項１１】
前記移動データ選択部は、
前記複数のサーバを少なくとも１つのデータ管理グループに分けて管理する一方、
前記データ管理グループ毎にデータ移動開始時刻を設定し、
前記設定した時刻に、該当するデータ管理グループについてデータ移動を開始させる請求項１０に記載された分散データ管理システム。
【請求項１２】
前記移動データ選択部は、
１つの移動元サーバから１つの移動先サーバへ移動するデータを複数の単位データに分割して、前記分割された複数の単位データの移動を並行して実行する請求項１に記載された分散データ管理システム。
【請求項１３】
前記移動データ選択部は、
予め設定されたデータ移動終了予定時刻までにデータ移動が終了したか否かを判定し、予め設定した終了時刻までにデータ移動が終了しなかったと判定した場合、予め設定した方法に従って予め設定された通知先にアラームを通知することを特徴とする請求項１に記載された分散データ管理システム。
【請求項１４】
外部からのデータアクセスを受け付けるデータアクセス処理を実行するとともに、前記データアクセスに係るデータを分散して管理する複数のサーバと、前記データアクセス処理のバックグラウンドで前記複数のサーバのうちの移動元サーバから移動先サーバへデータを移動させるためのデータ移動処理を実行させる管理サーバと、がネットワークを介して接続された分散データ管理システムにおけるデータ移動管理方法において、
前記複数のサーバが、
所定時間内の自らの平均負荷を測定して前記管理サーバに通知する一方、前記管理サーバからの指示に基づいて、前記データアクセス処理を実行したり、前記データアクセス処理のバックグラウンドで前記データ移動処理を実行し、
前記管理サーバが、
前記複数のサーバに分散管理されたデータのデータ配置を記録するとともに前記複数のサーバに分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較して前記データ移動処理が実行されるべきデータを検出するデータ配置管理ステップと、
前記複数のサーバの平均負荷の状況をそれぞれ管理しており、初期設定として前記複数のサーバを中低負荷状態にあると判定して前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、前記移動元サーバ又は前記移動先サーバにおける平均負荷が予め設定された高負荷用閾値以上となると、高負荷状態にあると判定して前記データアクセス処理の優先順位よりも前記データ移動処理の優先順位を高く設定する一方、その後、前記移動元サーバ又は前記移動先サーバにおける平均負荷が予め設定された中低負荷用閾値以下となると、高負荷状態を脱して中低負荷状態にあると判定して前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定するサーバリソース管理ステップと、
前記高負荷用閾値及び前記中低負荷用閾値並びに前記複数のサーバにおける平均負荷の状況に基づき、前記データ移動処理を実行させるべきタイミングを決定し、前記移動元サーバ及び前記移動先サーバのいずれか一方又は両方に対して、前記設定された優先順位に従って前記移動データを移動すべき旨を指示する移動データ選択ステップと、
を実行することを特徴とするデータ移動管理方法。
【請求項１５】
前記サーバリソース管理ステップでは、
前記管理サーバが、
前記複数のサーバのうちの特定のサーバが高負荷状態である場合、予め設定された優先順位の高いデータ移動処理用の閾値を前記データ移動処理の閾値と決定するとともに、予め設定された高負荷時のデータアクセス処理用の閾値を前記データアクセス処理の閾値として決定する一方、
前記複数のサーバのうちの特定のサーバが中低負荷状態である場合、予め設定された中低負荷状態における前記データアクセス処理用の閾値をデータアクセス用の閾値として決定するとともに、データアクセスによる負荷とサーバの性能保証値である負荷との差分を求め、その値を前記データ移動処理の閾値として決定する
ことを特徴とする請求項１４に記載のデータ移動管理方法。
【請求項１６】
前記管理サーバが、
前記移動データに関連付けて、前記移動元サーバ、前記移動先サーバ、前記移動データのデータ量及び前記移動データの移動状態を管理する
ことを特徴とする請求項１５に記載のデータ移動管理方法。
【請求項１７】
前記管理サーバが、
前記移動元サーバに関しては、前記複数のサーバのうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、前記移動先サーバに関しては、前記移動データのデータ量が少ない順に選択すること、前記移動データのデータ量が多い順に選択すること、及び、平均負荷が低い順に選択することのうちから少なくとも１つを選択し、前記複数のサーバのうちから前記選択結果に関係する移動データに対応する移動先サーバを選択する選択処理を実行し、
前記選択処理に基づく前記移動データに対して、前記データアクセス処理の閾値及び前記データ移動処理の閾値に従って制限を行い、前記データ移動処理の実施が制限されるべきと判定された場合には、前記選択処理に従って新たな移動データを選択し、
前記移動データが存在する移動元サーバ及び移動先サーバのいずれか一方又は両方に対して、前記移動データを移動すべき旨を指示する
ことを特徴とする請求項１４に記載のデータ移動管理方法。
【請求項１８】
前記移動データ選択ステップでは、
前記管理サーバが、前記移動元サーバに関しては、前記複数のサーバのうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、前記移動先サーバに関しては、データ量が少ない順にデータを移動した場合とデータ量が多い順にデータを移動した場合における前記移動元サーバの負荷の推移をそれぞれ推定することにより前記移動元サーバが高負荷状態を脱する時刻を予想し、より早く前記高負荷状態を脱すると予測される方法を選択して、前記複数のサーバのうちから前記移動先サーバを決定し、
前記選択処理に基づく移動データに関して、前記データアクセス処理の閾値及び前記データ移動処理の閾値に従ってデータ移動を制限し、データ移動が制限されるべきと判定された場合には、前記選択処理に従って新たな移動データを選択し、
最終的に選択した移動データの移動元サーバ及び移動先サーバのいずれか一方又は両方にデータの移動を指示する
ことを特徴とする請求項１７に記載のデータ移動管理方法。
【請求項１９】
前記管理サーバは、
前記複数のサーバによるアクセスに応じて、前記複数のサーバ間および前記管理サーバとの間において前記複数のサーバと前記管理サーバとを接続する回線を有するとともに前記回線の負荷を測定して前記管理サーバに通知する複数のネットワークスイッチの負荷状況を管理する一方、前記複数のネットワークスイッチのうち前記選択された移動データの移動経路上にあるネットワークスイッチを検出すると、前記検出されたネットワークスイッチの回線負荷を予め設定した回線負荷の閾値と比較し、この比較結果に基づいてデータ移動の可否判断を行う
ことを特徴とする請求項１４に記載のデータ移動管理方法。
【請求項２０】
前記管理サーバが、
前記データアクセス処理及び前記データ移動処理の閾値による制限を受けてデータ移動ができないデータが優先順位の高いデータ移動である場合、前記移動先サーバが優先順位の低いデータ移動を実行しており、前記優先順位の低いデータ移動を中断することにより、前記優先順位の高いデータ移動を受け付けることが可能であれば前記優先順位の低いデータ移動を中断し、前記優先順位の高いデータ移動を優先的に実行する請求項１４に記載のデータ移動管理方法。
【請求項２１】
前記管理サーバが、
前記回線負荷の閾値を用いた判定によってデータ移動が制限される移動データが優先順位の高いデータ移動である場合、前記優先順位の低いデータ移動を中断することにより、前記優先順位の高いデータ移動を受け付けることが可能であれば前記優先順位の低いデータ移動を中断し、前記優先順位の高いデータ移動を優先的に実行する請求項２０に記載のデータ移動管理方法。
【請求項２２】
前記ネットワークスイッチが、
前記管理サーバからの指示に従い、前記設定された優先順位に応じた優先制御を行うことを特徴とする請求項１４に記載されたデータ移動管理方法。
【請求項２３】
前記管理サーバが、
前記複数のサーバを複数のデータ管理グループに分けて管理する一方、各前記データ管理グループに分けた優先順位の高いデータ移動及び優先順位の低いデータ移動に優先順位を付与し、前記付与した優先順位に従って、対応する前記データ管理グループについてデータ移動のスケジューリングを行う請求項１４に記載されたデータ移動管理方法。
【請求項２４】
前記管理サーバが、
前記複数のサーバを少なくとも１つのデータ管理グループに分けて管理する一方、前記データ管理グループ毎にデータ移動開始時刻を設定し、前記設定した時刻に、該当するデータ管理グループについてデータ移動を開始させる請求項２３に記載されたデータ移動管理方法。
【請求項２５】
前記管理サーバが、
１つの移動元サーバから１つの移動先サーバへ移動するデータを複数の単位データに分割して、前記分割された複数の単位データの移動を並行して実行する請求項１４に記載されたデータ移動管理方法。
【請求項２６】
前記管理サーバが、
予め設定されたデータ移動終了予定時刻までにデータ移動が終了したか否かを判定し、予め設定した終了時刻までにデータ移動が終了しなかったと判定した場合、予め設定した方法に従って予め設定された通知先にアラームを通知することを特徴とする請求項１４に記載されたデータ移動管理方法。
【請求項２７】
所定時間内の自らの平均負荷を測定する負荷計測部と、
外部からのデータアクセスを受け付けるデータアクセス処理を実行するデータアクセス部と、
前記データアクセス処理のバックグラウンドで前記データ移動処理を実行するデータ移動部と、
他のサーバとによって分散管理されたデータのデータ配置を記録するとともに前記他のサーバとによって分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較して前記データ移動処理が実行されるべきデータを検出するデータ配置管理部と、
前記自らの平均負荷の状況を管理しており、初期設定として中低負荷状態にあると判定して前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、前記自らの平均負荷が予め設定された高負荷用閾値以上となると、高負荷状態にあると判定して前記データアクセス処理の優先順位よりも前記データ移動処理の優先順位を高く設定する一方、その後、前記自らの平均負荷が予め設定された中低負荷用閾値以下となると、高負荷状態を脱して中低負荷状態にあると判定して前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定するサーバリソース管理部と、
前記高負荷用閾値及び前記中低負荷用閾値並びに前記自らの平均負荷の状況に基づき、前記データ移動処理を実行させるべきタイミングを決定し、前記設定された優先順位に従って前記他のサーバとの間で前記移動データを移動させる移動データ選択部と、
を備えることを特徴とするサーバ。
【請求項２８】
前記サーバリソース管理部は、
前記自らの平均負荷が高負荷状態である場合、予め設定された優先順位の高いデータ移動処理用の閾値を前記データ移動処理の閾値と決定するとともに、予め設定された高負荷時のデータアクセス処理用の閾値を前記データアクセス処理の閾値として決定する一方、
前記自らの平均負荷が中低負荷状態である場合、予め設定された中低負荷状態における前記データアクセス処理用の閾値をデータアクセス用の閾値として決定するとともに、データアクセスによる負荷と自らの性能保証値である負荷との差分を求め、その値を前記データ移動処理の閾値として決定する
ことを特徴とする請求項２７に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データ管理システム及びデータ移動管理方法に関し、ネットワークを介して接続された複数サーバを用いてデータを分散管理し、データアクセス処理（リード、ライト）を行うサーバシステムに適用して好適なるものである。
【背景技術】
【０００２】
近年では、インターネットやモバイル機器の普及、情報の電子化或いはマシンｔｏマシン技術の発展などの様々な要因により、データ管理システムに記録されるデータ量が膨大になってきている。このような膨大なデータを記録、管理するために、データ管理システムにおいては、柔軟なスケーラビリティが求められており、データの大規模な分散管理が必須となっている。また、分散データ管理システムにおける機器構成の変更や複数のデータベースサーバ（以下、ＤＢサーバという）間の負荷の均等化に伴うデータ再配置においては、データの移動量がテラバイトレベルに達することもあり、効率的なデータ移動の方法が必要である。
【０００３】
データアクセスサービスを提供する分散データ管理システムにおいて大規模なデータ移動を行う際には、データアクセスサービスを停止し、データ移動を集中的に行うことがある。しかしながら、サービスの停止を許容できないシステムにおいては、データ移動処理とデータアクセス処理を並行して行う必要がある。このとき、各ＤＢサーバにとっては、データアクセス処理が本来業務であり、優先順位が高い処理（以下、高優先処理という）である。一方、データ移動処理は、本来バックグラウンドで行うべき優先順位の低い処理（以下、低優先処理という）である。ここで、優先制御を行わずにデータ移動を行った場合、データ移動が多くなるとサーバやネットワークにおいて優先であるべきデータアクセス処理が圧迫され、処理の遅延が多発し、サービスの質の低下につながるおそれがある。
【０００４】
上記問題を解決する手段として、複数の優先順位を持つ処理を行うサーバにおいて高優先処理の品質を保つために、サーバ負荷が上昇すると、低優先処理の実行を制限することによりサーバの負荷上昇を回避する技術がある。特許文献１では、優先レベルの異なるメインプロセスとサブプロセスを扱い、ＣＰＵ（Central Processing Unit）使用率の上限値と、現在のＣＰＵ使用率との間の関係、及びメインプロセスの必要最低限な品質レベルに基づいて、サブプロセスの処理速度を制御する。これにより低優先処理であるサブプロセスの負荷上昇を抑え、高優先処理であるメインプロセスの実行が妨げられることを防いでいる。
【０００５】
ＤＢサーバにおいても、上述した技術によりデータアクセス処理を優先的に行うことが可能である。しかしながら、長期間に渡り負荷が高いＤＢサーバにおいては、ＤＢサーバの高負荷の原因となるのはＤＢサーバが管理するデータへの頻繁なアクセスである。このため、高負荷を解消するためには、データの再配置により管理するデータ量を低減する必要があり、データの再配置のためにデータ移動が必要となる。慢性的に負荷の高い状態が継続するＤＢサーバにおいてデータ移動を低優先処理にすると、データ移動が進まず、ＤＢサーバの負荷を下げることができない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６-８５３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ネットワークを介して接続された複数のＤＢサーバを用いてデータを分散管理する分散データ管理システムにおいては、本来業務としてのデータアクセス処理と、バックグラウンドで実行されるデータ移動処理を並行して実行するため、このデータ移動処理に伴ってＤＢサーバ及びネットワーク回線に負荷が掛かり、優先制御を行わない場合には、データアクセス処理を過度に圧迫するおそれがあった。
【０００８】
本発明は以上の点を考慮してなされたもので、ネットワーク回線を介して接続された複数のＤＢサーバを用いてデータを分散管理する分散データ管理システムにおいて、本来業務であるデータアクセス処理と、バックグラウンド処理であるデータ移動処理を並行して行うことがある場合でも、データ移動によるＤＢサーバ及びネットワーク回線への負荷が、データアクセス処理を過度に圧迫することを防ぎつつ、高負荷なＤＢサーバに対しては、その負荷を迅速に下げる手段を提供することが可能な分散データ管理システム及びデータ移動管理方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために本発明においては、外部からのデータアクセスを受け付けるデータアクセス処理を実行するとともに、前記データアクセスに係るデータを分散して管理する複数のサーバと、前記データアクセス処理のバックグラウンドで前記複数のサーバのうちの移動元サーバから移動先サーバへデータを移動させるためのデータ移動処理を実行させる管理サーバと、がネットワークを介して接続された分散データ管理システムにおいて、前記複数のサーバは、所定時間内の自らの平均負荷を測定して前記管理サーバに通知する負荷計測通知部と、前記管理サーバから指示に基づいて、前記データアクセス処理を実行するデータアクセス部と、前記管理サーバからの指示に基づいて、前記データアクセス処理のバックグラウンドで前記データ移動処理を実行するデータ移動部と、を有し、前記管理サーバは、前記複数のサーバに分散管理されたデータのデータ配置を記録するとともに前記複数のサーバに分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較して前記データ移動処理が実行されるべきデータを検出するデータ配置管理部と、前記複数のサーバの平均負荷の状況をそれぞれ管理しており、初期設定として前記複数のサーバの前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、前記移動元サーバにおける平均負荷が予め設定された高負荷用閾値以上となると、前記データアクセス処理の優先順位よりも前記データ移動処理の優先順位を高く設定する一方、その後、前記移動元サーバにおける平均負荷が予め設定された中低負荷用閾値以下となると、前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定するサーバリソース管理部と、前記高負荷用閾値及び前記中低負荷用閾値並びに前記複数のサーバにおける平均負荷の状況に基づき、前記データ移動処理を実行させるべきタイミングを決定し、前記移動元サーバ及び前記移動先サーバのいずれか一方又は両方に対して、前記設定された優先順位に従って前記移動データを移動すべき旨を指示する移動データ選択部と、を備えることを特徴とする分散データ管理システムが提供される。なお、前記高負荷用閾値と前記中低負荷用閾値は異なる値を用いてもよいし、同じ値を用いてもよい。
【００１０】
また、本発明においては、外部からのデータアクセスを受け付けるデータアクセス処理を実行するとともに、前記データアクセスに係るデータを分散して管理する複数のサーバと、前記データアクセス処理のバックグラウンドで前記複数のサーバのうちの移動元サーバから移動先サーバへデータを移動させるためのデータ移動処理を実行させる管理サーバと、がネットワークを介して接続された分散データ管理システムにおけるデータ移動管理方法において、前記複数のサーバが、所定時間内の自らの平均負荷を測定して前記管理サーバに通知する一方、前記管理サーバからの指示に基づいて、前記データアクセス処理を実行したり、前記データアクセス処理のバックグラウンドで前記データ移動処理を実行し、前記管理サーバが、前記複数のサーバに分散管理されたデータのデータ配置を記録するとともに前記複数のサーバに分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較して前記データ移動処理が実行されるべきデータを検出するデータ配置管理ステップと、前記複数のサーバの平均負荷の状況をそれぞれ管理しており、初期設定として前記複数のサーバの前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、前記移動元サーバにおける平均負荷が予め設定された高負荷用閾値以上となると、前記データアクセス処理の優先順位よりも前記データ移動処理の優先順位を高く設定する一方、その後、前記移動元サーバにおける平均負荷が予め設定された中低負荷用閾値以下となると、前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定するサーバリソース管理ステップと、前記高負荷用閾値及び前記中低負荷用閾値並びに前記複数のサーバにおける平均負荷の状況に基づき、前記データ移動処理を実行させるべきタイミングを決定し、前記移動元サーバ及び前記移動先サーバのいずれか一方又は両方に対して、前記設定された優先順位に従って前記移動データを移動すべき旨を指示する移動データ選択ステップと、を実行することを特徴とするデータ移動管理方法が提供される。なお、前記高負荷用閾値と前記中低負荷用閾値は異なる値を用いてもよいし、同じ値を用いてもよい。
【００１１】
また、本発明においては、所定時間内の自らの平均負荷を測定する負荷計測部と、外部からのデータアクセスを受け付けるデータアクセス処理を実行するデータアクセス部と、前記データアクセス処理のバックグラウンドで前記データ移動処理を実行するデータ移動部と、他のサーバとによって分散管理されたデータのデータ配置を記録するとともに前記他のサーバとによって分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較して前記データ移動処理が実行されるべきデータを検出するデータ配置管理部と、前記自らの平均負荷の状況を管理しており、初期設定として前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、前記自らの平均負荷が予め設定された高負荷用閾値以上となると、前記データアクセス処理の優先順位よりも前記データ移動処理の優先順位を高く設定する一方、その後、前記自らの平均負荷が予め設定された中低負荷用閾値以下となると、前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定するサーバリソース管理部と、前記高負荷用閾値及び前記中低負荷用閾値並びに前記自らの平均負荷の状況に基づき、前記データ移動処理を実行させるべきタイミングを決定し、前記設定された優先順位に従って前記他のサーバとの間で前記移動データを移動させる移動データ選択部と、を備えるサーバが提供される。
【発明の効果】
【００１２】
本発明によれば、平均負荷が閾値を超えないサーバにおいては、データ移動処理を制限してデータアクセス処理を優先するため、データ移動処理に起因するデータアクセス処理の品質劣化が発生しなくなる一方、平均負荷が閾値を超える高負荷状態のサーバにおいては、データアクセス処理よりもデータ移動処理を優先して行うため、データの移動が迅速に進み、高負荷ＤＢサーバが高負荷状態から抜け出すまでの時間が短縮されるようになる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に係る分散データ管理システムの全体構成を例示する図である。
【図２】ネットワークスイッチの機能構成を例示する図である。
【図３】サーバ、ネットワークスイッチのハードウェア構成を例示する図である。
【図４】回線リソース管理テーブルの構成を例示する図である。
【図５】サーバリソース管理テーブルの構成を例示する図である。
【図６】データ移動管理テーブルの構成を例示する図である。
【図７】データ移動の概要を示すシーケンスチャートである。
【図８】移動データ選択処理の一例を示すフローチャートである。
【図９】サーバの負荷変動を例示する図である。
【図１０】データアクセスの平均応答時間、及び、データアクセスリクエストのブロック率の推移を例示する図である。
【図１１】データ量が少ない順にデータ移動を行った時の終了時刻予測処理を例示するフローチャートである。
【図１２】ＶＬＡＮタグ付きフレームの構成図である。
【図１３】複数のデータ管理グループが混在する分散データ管理システムの構成を例示する図である。
【図１４】データを分割して移動する際に用いるデータ移動管理テーブルの構成を例示する図である。
【図１５】データ移動の終了予定時刻までにデータ移動処理が完了しなかった際のアラーム通知処理を例示するフローチャートである。
【発明を実施するための形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１．第１の実施の形態）
（１−１．分散データ管理システムの全体構成）
図１は、本発明の第１の実施の形態に係る分散データ管理システム１００の構成例を示す。この分散データ管理システム１００では、管理サーバ１、複数のデータベースサーバ（以下「ＤＢサーバ」と省略する）２及び前段装置他ネットワーク（以下「他ネットワーク」という）４が、複数のネットワークスイッチ３により構成されるネットワークスイッチ群９９（図示のＳＷ群に相当）を介して接続された構成となっている。当該他ネットワーク４は、その先においてエンドユーザの端末が接続されており、データアクセス要求を本システムに転送するためのネットワーク又は同じシステム内の前段装置に相当する。
【００１６】
（１−１−１．管理サーバ）
管理サーバ１は、パケット送受信部１１、サーバリソース管理部１２、回線リソース管理部１３、データ移動管理部１４、移動データ選択部１５、データ配置管理部１６及びネットワーク構成管理部１７を有する。パケット送受信部１１は、他ネットワーク４との間においてパケットの送受信を制御する機能を有する。
【００１７】
サーバリソース管理部１２は、各ＤＢサーバ２の負荷を監視し、各ＤＢサーバ２におけるデータ移動の状況を管理する機能を有する。このサーバリソース管理部１２は、複数のＤＢサーバ２の平均負荷の状況をそれぞれ管理しており、初期設定として各ＤＢサーバ２を中低負荷状態にあるとして、前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、複数のＤＢサーバ２のうちの移動元サーバにおける平均負荷が予め設定された高負荷用閾値以上となると高負荷状態にあると判定し、データアクセス処理の優先順位よりもデータ移動処理の優先順位を高く設定する一方、その後、移動元サーバにおける平均負荷が予め設定された中低負荷用閾値以下となると高負荷状態を脱した，即ち中低負荷状態にあると判定し、データアクセス処理の優先順位をデータ移動処理の優先順位よりも高く設定する機能を有する。なお、前記高負荷用閾値と前記中低負荷用閾値は異なる値を用いてもよいし、同じ値を用いてもよい。
【００１８】
サーバリソース管理部１２は、複数のＤＢサーバ２のうちの特定のサーバが高負荷状態である場合、予め設定された優先順位の高いデータ移動処理用の閾値をデータ移動処理の閾値と決定するとともに、予め設定された高負荷時のデータアクセス処理用の閾値をデータアクセス処理の閾値として決定する機能を有する。一方、サーバリソース管理部１２は、複数のＤＢサーバ２のうちの特定のサーバが中低負荷状態である場合、予め設定された中低負荷状態におけるデータアクセス処理用の閾値をデータアクセス用の閾値として決定するとともに、データアクセスによる負荷とサーバの性能保証値である負荷との差分を求め、その値をデータ移動処理の閾値として決定する。
【００１９】
回線リソース管理部１３は、回線負荷を監視し、現在実行中のデータ移動を管理する機能を有する。回線リソース管理部１３は、複数のＤＢサーバ２によるアクセスに応じた各ネットワークスイッチ３の負荷状況を管理している。管理サーバ１は、複数のネットワークスイッチ３のうち選択された移動データの移動経路上にあるネットワークスイッチ３を検出すると、その検出されたネットワークスイッチ３の回線負荷を予め設定した回線負荷の閾値と比較し、この比較結果に基づいてデータ移動の可否判断を行う機能を有する。
【００２０】
データ移動管理部１４は、データ移動が必要なデータ（以下、移動データともいう）に関して移動状況を管理している。
【００２１】
移動データ選択部１５は、高負荷用閾値及び中低負荷用閾値並びに複数のサーバにおける平均負荷の状況に基づき、データ移動処理を実行させるべきタイミングを決定する機能を有する。この移動データ選択部１５は、詳細は後述するが、移動元サーバに関しては、複数のＤＢサーバ２のうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、移動先サーバに関しては、移動データのデータ量が少ない順に選択すること、移動データのデータ量が多い順に選択すること、及び、平均負荷が低い順に選択することのうちから少なくとも１つを選択し、複数のＤＢサーバ２のうちから選択結果に関係する移動データに対応する移動先サーバを選択する選択処理を実行する。管理サーバ１は、この選択処理に基づく移動データに対して、データアクセス処理の閾値及びデータ移動処理の閾値に従ってデータ移動を制限し、データ移動処理の実施が制限されるべきと判定された場合には、選択処理に従って新たな移動データを選択し、移動データが存在する移動元サーバ及び移動先サーバのいずれか一方又は両方に対して、移動データを移動すべき旨を指示する機能を有する。
【００２２】
移動データ選択部１５は、移動元サーバに関しては、複数のＤＢサーバ２のうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、移動先サーバに関しては、データ量が少ない順にデータを移動した場合とデータ量が多い順にデータを移動した場合における移動元サーバの負荷の推移をそれぞれ推定することにより移動元サーバが高負荷状態を脱する時刻を予想し、より早く高負荷状態を脱すると予測される方法を選択して、複数のＤＢサーバ２のうちから移動先サーバを決定し、この選択処理に基づく移動データに関して、データアクセス処理の閾値及びデータ移動処理の閾値に従ってデータ移動を制限し、データ移動が制限されるべきと判定された場合には、その選択処理に従って新たな移動データを選択し、最終的に選択した移動データの移動元サーバ及び移動先サーバのいずれか一方又は両方にデータの移動を指示する機能を有する。
【００２３】
移動データ選択部１５は、データアクセス処理及びデータ移動処理の閾値による制限を受けてデータ移動ができないデータが優先順位の高いデータ移動である場合、移動先サーバが優先順位の低いデータ移動を実行しており、その優先順位の低いデータ移動を中断することにより、その優先順位の高いデータ移動を受け付けることが可能であればその優先順位の低いデータ移動を中断し、その優先順位の高いデータ移動を優先的に実行する機能を有する。
【００２４】
移動データ選択部１５は、回線負荷の閾値を用いた判定によってデータ移動が制限される移動データが優先順位の高いデータ移動である場合、その優先順位の低いデータ移動を中断することにより、その優先順位の高いデータ移動を受け付けることが可能であればその優先順位の低いデータ移動を中断し、その優先順位の高いデータ移動を優先的に実行する機能を有する。
【００２５】
データ配置管理部１６は、新旧のデータ配置を管理するとともに、新旧データ配置の差分を取ってデータ移動が必要なデータのリストアップを行う機能を有する。なお、各ＤＢサーバ２が管理するデータを決定するデータ配置は、別途与えられるものとする。このデータ配置管理部１６は、複数のＤＢサーバ２に分散管理されたデータのデータ配置を記録するとともに複数のＤＢサーバに分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較してデータ移動処理が実行されるべきデータを検出する。データ配置を決定する方法としては、例えば、データとキーを紐付けて管理し、キーのハッシュ値によってデータを記録するＤＢサーバ２を一意に決定するコンシステントハッシングという方法を採用することができる。
【００２６】
ネットワーク構成管理部１７は、他のプログラムとの連携や手動の入力等によりネットワークの全体構成を把握し、ネットワークの全体構成を元に、移動元ＤＢサーバ及び移動先ＤＢサーバを指定することにより、データの移動経路を割り出す機能を有する。
【００２７】
（１−１−２．ＤＢサーバ）
ＤＢサーバ２は、パケット送受信部２１、データ記録部２２及びデータアクセス部２３の他に、自サーバの負荷を測定する負荷測定部２４、測定した負荷を管理サーバに通知する負荷通知部２５、及び、管理サーバ１からのデータ移動指示を受けデータ移動を行うデータ移動部２６を有する。またＤＢサーバ２は、データ配置管理部２７を備え、このデータ配置管理部２７は、どのデータがどこに配置されているかを示すデータ配置情報を管理しており、他ネットワーク４からのデータの格納場所を問う問い合わせに対して、該当するデータを格納したＤＢサーバ２を特定して回答する機能を有する。
【００２８】
このデータ配置管理部２７は、データ移動中、新旧二つのデータ配置情報を管理し、データの格納場所が新旧のデータ配置により異なる場合は、新旧のデータ配置に基づき新旧双方のデータ格納先ＤＢサーバ２に対して問い合わせを行い、正しいデータ格納先ＤＢサーバ２を回答する。ＤＢサーバ２にアクセスを行う他ネットワーク４が管理サーバ１の管理下にある場合は、他ネットワーク４にデータ配置情報を通知し、他ネットワーク４がデータ配置情報に基づいてアクセス先のＤＢサーバ２を決定する構成であってもよい。
【００２９】
（１−１−３．ネットワークスイッチ群）
図２は、ネットワークスイッチ群９９を構成するネットワークスイッチ（以下、ＳＷという）３の機能的な構成例を示す。ネットワークスイッチ群９９は、複数のＤＢサーバ２と管理サーバ１との間において複数のＤＢサーバ２間および管理サーバ１とを接続する回線を有し、その回線の負荷を測定して管理サーバ１に通知する機能を有する。各ＳＷ３は、パケット送受信部３１、負荷測定・記録部３２、負荷通知部３３、イベント通知部３４、優先制御部３５及びパケット転送部３６を備えている。パケット送受信部３１は、他ネットワーク４の他、管理サーバ１のパケット送受信部１１、ＤＢサーバ２のパケット送受信部２１、及び隣接する別のＳＷ３のパケット送受信部３１との間においてパケットの送受信を行う機能を有する。負荷測定・記録部３２は、定期的に回線負荷情報を収集し、記録する機能を有する。この回線負荷情報は、回線の混雑度が分かる値であればよく、ポート毎の利用率或いはパケット廃棄率を用いることができる。
【００３０】
負荷情報通知部３３は、管理サーバ１から負荷情報要求を受信し、この負荷情報要求に対して負荷情報を管理サーバ１へ通知する機能を有する。イベント通知部３４は、管理サーバ１により予め設定された負荷閾値を超えた時に、管理サーバ１に対して、この負荷閾値を超過したことを通知する機能を有する。優先制御部３５は、指定された優先順位に従って優先制御を行う機能を有する。パケット転送部３６は、アドレステーブルを管理しており、受信したパケット内の宛先アドレスに基づいて、対応する出力ポートを決定する機能を有する。
【００３１】
（１−１−４．ＤＢサーバなどのハードウェア構成）
図３は、管理サーバ１、ＤＢサーバ２及びＳＷ３のハードウェアの構成例を示す。これらの装置は、主記憶装置１５０２、中央処理装置１５０３、ハードディスクドライブなどの二次記憶装置１５０５、ディスプレイ或いはキーボードなどの入出力装置１５０７、他装置（管理サーバ１、ＤＢサーバ２、又はＳＷ３）と接続するための通信装置１５０６、及び、それらの装置間を接続する内部バス１５０４を備えた一般的なコンピュータ１５０１により構成されている。
【００３２】
例えば、管理サーバ１におけるサーバリソース管理部１２などの各機能は、二次記憶装置１５０５にプログラムの一部として格納されており、その実行時に、主記憶装置１５０２に展開された上で、中央処理装置１５０３によって解釈、実行される。また、パケット送受信処理は、通信装置１５０６を介して行う。さらに、サーバリソース管理部１２などの各機能によって管理されるデータは、主記憶装置１５０２に格納されるとともに、永続的にデータを記憶するために二次記憶装置１５０５に格納される。
【００３３】
ＤＢサーバ２においても同様に、パケット送受信部２１などの各機能は、二次記憶装置１５０５にプログラムの一部として格納されており、その実行時に、主記憶装置１５０２に展開された上で、中央処理装置１５０３によって解釈、実行される。また、パケット送受信処理は、通信装置１５０６を介して行う。さらに、パケット送受信部２１などの各機能が管理するデータは、主記憶装置１５０２に置くとともに、永続的にデータを記憶するために二次記憶装置１５０５に格納される。負荷測定部２４によって測定される負荷は、中央処理装置１５０３の負荷である。
【００３４】
（１−２．各テーブルの構成例）
（１−２−１．回線リソース管理テーブル）
図４は、回線リソース管理テーブル１３０の構成例を示す。この回線リソース管理テーブル１３０は、上述した回線リソース管理部１３によって管理されている。回線リソース管理テーブル１３０は、そのフィールドとして、ＳＷ−ＩＤフィールド１３１、ポートＩＤフィールド１３２、回線容量フィールド１３３、負荷フィールド１３４、現在そのポートを使用している移動データＮｏフィールド１３５を管理する。ＳＷ−ＩＤフィールド１３１は、各ＳＷ３を識別するための識別子である。ポートＩＤフィールド１３２は、各ＳＷ３が搭載する複数のポートを互いに識別するための識別子である。回線容量フィールド１３３は、各ＳＷ３に搭載された各ポートＩＤに対応する回線におけるその回線容量を示している。負荷フィールド１３４は、その回線における負荷状況を示している。
【００３５】
移動データＮｏフィールド１３５は、ポート毎に現在そのポートを使用している移動データを管理する。この移動データＮｏフィールド１３５は、優先移動データＮｏフィールド１３５Ａと非優先移動データフィールドＮｏ１３５Ｂとに分けて管理されている。優先移動データＮｏフィールド１３５Ａは、優先的に移動されるべき移動データを識別するための識別子を管理するためのフィールドである。非優先移動データＮｏフィールド１３５Ｂは、優先的でなく移動されるべき移動データを識別するための識別子を管理するためのフィールドである。
【００３６】
（１−２−２．サーバリソース管理テーブル）
図５は、サーバリソース管理テーブル１２０の構成例を示す。サーバリソース管理テーブル１２０は、上述したサーバリソース管理部１２によって管理されている。サーバリソース管理テーブル１２０は、そのフィールドとして、サーバＩＤフィールド１２１、ＣＰＵ負荷（Ｌｔ）フィールド１２２Ａ、ＣＰＵ負荷（Ｓｔ）フィールド１２２Ｂ、許容スレッド数の上限値フィールド１２３及びデータ移動実行中スレッド数フィールド１２４を管理している。ここで、第１の実施の形態では、Ｌｔは、ロングタイムの略であり、Ｓｔは、ショートタイムの略であり、ＣＰＵ負荷（Ｌｔ）は、長期間、つまり定常的な平均負荷を示しており、ＣＰＵ負荷（Ｓｔ）は、短期間、つまり現在の負荷を示している。
【００３７】
サーバＩＤ１２１は、ＤＢサーバ２を識別するための識別子である。ＣＰＵ負荷（Ｌｔ）フィールド１２２Ａは、ＤＢサーバ２のＣＰＵに関する所定の時間（Ｔ０）内における平均負荷を示している。ＣＰＵ負荷フィールド１２２Ｂは、ＤＢサーバ２のＣＰＵに関する現在の負荷を示している。許容スレッド数の上限値フィールド１２３は、データ移動に割り当て可能なスレッド数の上限値を示している。この許容スレッド数の上限値フィールド１２３には、優先順位が高い場合の許容スレッド数の上限値フィールド１２３Ａ、及び、優先順位が低い場合の許容スレッド数の上限値フィールド１２３Ｂが管理されている。データ移動実行中スレッド数フィールド１２４は、データ移動を実行中のスレッド数を示している。このデータ移動実行中のスレッド数フィールド１２４は、高優先（Ｈ）のデータ移動に対する送信（Ｈ）スレッド数フィールド１２４Ａ、及び受信（Ｈ）スレッド数フィールド１２４Ｂと、低優先（Ｌ）のデータ移動に対する送信（Ｌ）スレッド数フィールド１２４Ｃ、及び受信（Ｌ）スレッド数フィールド１２４Ｄと、その合計フィールド１２４Ｅとが管理されている。
【００３８】
（１−２−３．データ移動管理テーブル）
図６は、データ移動管理テーブル１４０の構成例を示している。データ移動管理テーブル１４０は、上述したデータ移動管理部１４によって管理されており、移動データに割り当てた識別番号を示す移動データＮｏフィールド１４１、現在データを保持しているＤＢサーバ２を示す移動元サーバフィールド１４２、新データ配置に基づきデータを管理することになったＤＢサーバ２を示す移動先サーバフィールド１４３、移動元サーバ１４２から移動先サーバ１４３へ移動するデータの大きさを示すデータ量フィールド１４４、データ移動の現在の状況を示す状態フィールド１４５、移動元サーバフィールド１４２に示された移動元サーバから移動先サーバフィールド１４３に示された移動先サーバへデータを送信する際に通過するＳＷ３を示す通過ＳＷフィールド１４６を管理する。通過ＳＷフィールド１４６には、通過するＳＷ３のＳＷ−ＩＤフィールド１４６Ａ、及びそのポートＩＤフィールド１４６Ｂが管理されている。ポートＩＤフィールド１４６Ｂは、ＳＷ３からの出力ポートの識別子を示している。なお、図４〜図６に示した各テーブルにおいて管理されている各データは、それぞれのデータが紐付けられて管理されていれば良く、管理方式がテーブルの形態に限定されるものではない。
【００３９】
（１−３．データ移動管理方法）
（１−３−１．データ移動シーケンス）
図７は、分散データ管理システムにおけるデータ移動のシーケンスの一例を示し、図８は、図７に示す移動データの選択処理の詳細を示す。このようなデータ移動がなされるのは、例えば、ＤＢサーバ２の増設又は障害復旧などの機器構成変更に伴って、データ配置の変更を行う場合、又はＤＢサーバ２間における負荷の不均等を是正するために、データ再配置が開始される場合である。管理サーバ１は、ＤＢサーバ２の新しいデータ配置に関する新しいデータ配置情報が与えられると（Ｓ１０１)、当該新しいデータ配置情報をＤＢサーバ２に通知する（Ｓ１０２)。その後、管理サーバ１は、新旧のデータ配置情報を比較し、その比較結果に基づいて、データ移動が必要なデータをリストアップする（Ｓ１０３)。
【００４０】
次に、管理サーバ１は、各ＳＷ３に対して回線負荷情報を要求する（Ｓ１０４)。また、ＤＢサーバ２へ移動するデータのデータ量の情報と、各ＤＢサーバ２の負荷情報を要求する（Ｓ１０５)。各ＳＷ３は、管理サーバ１から回線負荷情報要求を受信すると、回線負荷情報を管理サーバ１へ通知する（Ｓ１０６)。ＤＢサーバ２は、管理サーバ１から、データ量情報及び負荷情報の要求を受信すると、この要求に応じて移動データのデータ量及び自らの負荷状況を示す負荷情報を管理サーバ１に通知する（Ｓ１０７)。管理サーバ１は、受信した情報に基づいて、上述したフィールド構成を有する回線リソース管理テーブル１３０、サーバリソース管理テーブル１２０及びデータ移動管理テーブル１４０を作成する（Ｓ１０８)。
【００４１】
次に、管理サーバ１は、移動データの選択処理を実行する（Ｓ１０９)。この移動データの選択処理では、データアクセス処理に与える影響を抑えつつ、データ移動処理において移動対象とすべきデータを選択する。管理サーバ１は、例えば、高負荷状態であるサーバＩＤ＝「Ａ」のＤＢサーバ２を優先して移動元サーバ１４２とする一方、移動データについては、例えば、データ量１４４の少ない移動データＮｏ＝「３」の移動データを優先する。なお、この移動データの選択処理については、後述する図８を用いて詳細に説明する。
【００４２】
その後、管理サーバ１は、上述した移動データの選択処理において選択された移動データＮｏ＝３の移動データについて、上述のように選択されたサーバＩＤ＝Ａである移動元サーバ２Ａ及びサーバＩＤ＝Ｆである移動先サーバ２Ｂへデータ移動の指示を行う（Ｓ１１０，Ｓ１１１)。併せて、管理サーバ１は、回線リソース管理テーブル１３０、サーバリソース管理テーブル１２０及びデータ移動管理テーブル１４０を更新する（Ｓ１１４)。管理サーバ１は、例えばデータ移動管理テーブル１４０については、移動データＮｏフィールド＝３に対応する状態フィールド１４５を「移動中」に更新する。
【００４３】
移動元サーバ２Ａ及び移動先サーバ２Ｂは、管理サーバ１からデータ移動の指示を受信すると、通信セッションを確立し（Ｓ１１２)、データ移動処理において移動データについてデータ移動を行う（Ｓ１１３)。
【００４４】
なお、第１の実施の形態では、管理サーバ１は、データ移動の指示を移動元サーバ２Ａ及び移動先サーバ２Ｂの両方へ送信しているが、その代わりに、移動元サーバ２Ａのみにデータ移動の指示を送信しておき、移動元サーバ２Ａからプッシュ型でデータ移動を行うこともできる。また、管理サーバ１は、移動先サーバ２Ｂのみにデータ移動の指示を送信しておき、移動先サーバ２Ｂからプル型でデータ移動を行うことも可能である。なお、第１の実施の形態のように移動元、移動先の双方のサーバへデータ移動の指示が送信された場合は、プッシュ型又はプル型のいずれか予め指定された方法によりデータ移動を行うようにしている。
【００４５】
上述したデータ移動が完了すると、移動元サーバ２Ａ及び移動先サーバ２Ｂは、それぞれ、データ移動が終了した旨を管理サーバ１へ通知する（Ｓ１１５)。管理サーバ１は、その終了通知を受信すると、回線リソース管理テーブル１３０、サーバリソース管理テーブル１２０及びデータ移動管理テーブル１４０を更新する。具体的には、管理サーバ１は、例えば、データ移動管理テーブル１４０において、移動データに対応する移動データＮｏに該当する状態フィールド１４５を「移動中」から「終了」とする。ここで、サーバリソース管理テーブル１２０では、サーバ負荷フィールド１２２Ａの値として、移動データのデータ量に基づいてデータアクセス処理への負荷の増減を予測し、移動前の負荷にその負荷の増減分を加算した値を暫定値として用いている。また、回線リソース管理テーブル１３０においては、１スレッドあたりの負荷を予め概算しておき、現在の負荷からその概算値を減算して暫定値として用いている。
【００４６】
管理サーバ１は、複数のデータ移動を並行して実施させ、全てのデータ移動を終了させると（Ｓ１１７)、各ＤＢサーバ２にデータ移動の終了を通知する（Ｓ１１８)。その後、管理サーバ１及び各ＤＢサーバ２は、旧データ配置を廃棄する（Ｓ１１９，Ｓ１２０)。
【００４７】
（１−３−２．移動データの選択及びデータ移動）
図８は、図７のステップＳ１０９に示された移動データの選択処理及びステップＳ１１０〜Ｓ１１６に示されたデータ移動処理の実行の詳細を示す。これら移動データ選択処理及びデータ移動処理は、移動データ選択部１５によって実行される。
【００４８】
（１−３−２−１．関数の定義）
ここで、負荷（Ｌｔ）は、所定の時間Ｔ０におけるＤＢサーバ２の平均負荷を示しており、負荷（Ｓｔ）は、データアクセスによるＤＢサーバ２の現在の負荷を示している。閾値（Ｈｉ）は、ＤＢサーバ２が高負荷であると判断するための基準値を示している。
【００４９】
また、閾値（ｈ）は、高負荷ＤＢサーバ２において高優先となったデータ移動に割り当てるＣＰＵ負荷比率の上限値を示しており、閾値（ｄ）は、高負荷ＤＢサーバ２においてデータアクセスに割り当てるＣＰＵ負荷比率の上限値を示している。負荷（Ｍａｘ）は、ＤＢサーバの性能保証値を示している。閾値（ｈ）及び閾値（ｄ）は、負荷（Ｍａｘ）≧閾値（ｈ）＋閾値（ｄ）を満たす。各閾値は予め設定された値が用いられる。さらに、閾値(ｌ）を高負荷ではない（以下、中低負荷）ＤＢサーバ２においてデータ移動に割り当てるＣＰＵ負荷比率の上限値とし、閾値（ｌ）＝負荷（Ｍａｘ）−負荷（Ｓｔ）とする。
【００５０】
負荷（Ｌｔ）を測定するための時間Ｔ０は、一時的なアクセスの集中による瞬間的な負荷上昇の影響を吸収しうる時間であり、ＤＢサーバ２が慢性的な高負荷状態にあり、負荷を引き下げる必要があると判断するに足る時間である。この時間Ｔ０は、例えば過去の負荷測定結果を元に決定される。
【００５１】
（１−３−２−２．時間Ｔ０の決定方法）
図９は、負荷（Ｌｔ）を測定するための時間Ｔ０の決定方法の一例を示す。負荷Ｘは、定常状態における負荷を示し、負荷Ｙは、一時的にアクセスが集中した状態における負荷を示す。時間Ｔ１は、アクセスが集中している持続時間を示す。過去の測定結果から図９に示すような負荷上昇が散発することが知られているシステムにおいては、まず、移動データ選択部１５が、下記の式（１）を満たす最小の時間Ｔ２を求める。
{（Ｔ２−Ｔ１）×Ｘ＋Ｔ１×Ｙ｝／Ｔ２＜閾値（Ｈｉ）・・・式（１）
【００５２】
この時、Ｔ０＞Ｔ２を時間Ｔ０の必要条件とする。この時間Ｔ０をＴ２の数倍程度に設定することにより、アクセス集中が数回連続する、長引く等の事象に対しても、慢性的な高負荷と区別することが可能となる。
【００５３】
（１−３−２−３．具体的な処理内容）
移動データ選択部１５は、ＤＢサーバ２の負荷（Ｌｔ）と閾値（Ｈｉ）を比較し、負荷（Ｌｔ）≧閾値（Ｈｉ）であれば、ＤＢサーバが慢性的な高負荷にあると判断し（Ｓ２０２）、データ移動の優先順位を上げ、データ移動に割り当てるＣＰＵ負荷比率の閾値を閾値（ｈ）として、許容できるデータ移行のスレッド数１２３Ａに換算する（Ｓ２０３)。
【００５４】
ここで、スレッドとは、データ移動元のＤＢサーバ２と移動先のＤＢサーバ２との間に一つの通信セッションを確立してデータ移動を行うために必要な全プロセスをまとめて扱うための単位とする。移動データ選択部１５は、予め１スレッドあたりのＣＰＵ負荷を概算しておくことにより、割り当てられたＣＰＵ負荷比率を許容可能なスレッド数１２３Ａに換算する。データアクセスに割り当てるＣＰＵ負荷比率の最大値は、閾値（ｄ）とする（Ｓ２０３)。
【００５５】
移動データ選択部１５は、負荷（Ｌｔ）＜閾値（Ｈｉ）の状態のＤＢサーバ２の場合には、データアクセスの閾値を負荷（Ｍａｘ）とし、データ移動の閾値（ｌ）＝負荷（Ｍａｘ）−負荷（Ｓｔ）とする。移動データ選択部１５は、算出した閾値（ｌ）をデータ移行のスレッド数１２３Ｂに換算する（Ｓ２２０）。
【００５６】
移動データ選択部１５は、算出した値を元に、データ移動管理テーブル１４０、サーバリソース管理テーブル１２０を更新する（Ｓ２０４）。なお、これらデータ移動管理テーブル１４０及びサーバリソース管理テーブル１２０が未作成の場合は、移動データ選択部１５は、これらのテーブルを作成する。移動データ選択部１５は、データ移動管理テーブル１４０（図５参照）において負荷（Ｌｔ）が高い状態（高負荷状態）の順に移動元サーバを選択する（Ｓ２０５）。ここでは、移動データ選択部１５は、サーバＩＤが「Ａ」である移動元サーバを選択することになる。
【００５７】
次に、移動データ選択部１５は、データ移動管理テーブル１４０（図６参照）において複数のＤＢサーバ２のうちから移動先サーバとして、サーバＩＤが「Ａ」であり、かつ、データ量フィールド１４４に示された移動データのデータ量が少ないものから順に選択する（Ｓ２０６）。ここでは、移動データ選択部１５は、データ量が１０ＭＢであるサーバＩＤが「Ｆ」である移動先サーバを選択する。
【００５８】
移動データ選択部１５は、選択した移動先サーバに対応する移動先サーバ１４３のサーバＩＤに応じたデータ移動実行中スレッド数フィールド１２４Ｅの実行中スレッド数が上限値フィールド１２３の上限値よりも小さい場合（Ｓ２０７）、回線リソース管理テーブル１３０（図４参照）において回線負荷フィールド１３４を確認する（Ｓ２０８）。この移動データ選択部１５は、その回線負荷フィールド１３４の回線負荷の値が閾値以下であれば、高負荷状態でなく、つまり、中低負荷状態であるため、移動元サーバ及び移動先サーバに対してデータ移動の指示を行う（Ｓ２０９）。
【００５９】
移動データ選択部１５は、このデータ移動に伴って低優先スレッドの中断がある場合（Ｓ２１０)、データ移動を中断するＤＢサーバへ中断を指示する（Ｓ２２３）。その後、回線リソース管理テーブル１３０、データ移動管理テーブル１４０及びサーバリソース管理テーブル１２０が更新される（Ｓ２１１）。具体的には、移動データ選択部１５は、データ移動管理テーブル１４０において、データ移動の状態フィールド１４５を「移動中」に更新する。また、移動データ選択部１５は、サーバリソース管理テーブル１２０において、データ移動実行中スレッド数フィールド１２４を更新する。さらに移動データ選択部１５は、回線リソース管理テーブル１３０において、データ移動を受け入れることにより予測される負荷の増加を現在の負荷に加算して、負荷フィールド１３４を更新する。さらに移動データ選択部１５は、移動データＮｏフィールド１３５に、上記移動対象のデータに対応する移動データＮｏ（この場合は「３」）を追記する。
【００６０】
データ移動管理テーブル１４０において現在選択中の移動元サーバに対応する移動元サーバフィールド１４２のサーバＩＤ（この場合「Ａ」）にまだ確認していない移動先サーバのサーバＩＤ（ここでは、サーバＩＤ「Ｂ」）があり（Ｓ２１２)、送信元サーバ１４２のデータ移動スレッド数フィールド１２４のスレッド数が上限値フィールド１２３の上限値より小さい場合（Ｓ２１３）、移動データ選択部１５は、移動先サーバの選択処理（Ｓ２０６）に戻って実行する。一方、全ての移動先サーバがチェック済みである場合（Ｓ２１２）、又は、移動元サーバ１４２に示す移動元サーバのデータ移動スレッド数フィールド１２４のスレッド数が上限値に達している場合（Ｓ２１３）、移動データ選択部１５は、データ移動管理テーブル１４０（図６参照）を確認し、状態フィールド１４５に「未着手」があるか否かを確認する。
【００６１】
移動データ選択部１５は、この状態フィールド１４５に「未着手」がない場合は、この移動データ選択処理を終了する一方、この状態フィールド１４５に「未着手」があり、即ち、移動していないデータがあり（Ｓ２１４）、かつ、未チェックの移動元サーバが存在する場合（Ｓ２１５）、移動元サーバの選択（Ｓ２０５）に戻って実行する。
【００６２】
一方、移動データ選択部１５は、未チェックの移動元サーバがなく全ての移動元サーバがチェック済みである場合（Ｓ２１５）、データ移動の選択及びデータ移動を予め設定した間隔で行うためにタイマを設定する（Ｓ２１６）。移動データ選択部１５は、タイマ又はデータ移動終了通知などの制御信号を受信すると（Ｓ２１７）、サーバリソース管理テーブル１２０及び回線リソース管理テーブル１３０において管理されている負荷情報に設定された利用期限が有効期限内であることを確認する（Ｓ２１８）。ここで、負荷情報とは、サーバリソース管理テーブル１２０のＣＰＵ負荷フィールド１２０に示された負荷、及び、回線リソーステーブル１３０の負荷フィールド１３４に示された負荷を示している。一方、有効期限切れであれば、移動データ選択部１５は、ＤＢサーバ２及びＳＷ３に対して最新の負荷情報を要求し、ＤＢサーバ２及びＳＷ３から最新の負荷情報を取得する（Ｓ２２５）。その後、回線リソース管理テーブル１３０、データ移動管理テーブル１４０及びサーバリソース管理テーブル１２０が更新され（Ｓ２１９）、移動データ選択部１５は、ステップＳ２０２に戻って実行する。ここで、負荷情報は、取得から予め設定した所定の時間が経過するまでが有効期限とされている。
【００６３】
上述したステップＳ２０７において、移動先サーバのサーバＩＤ（ここでは、「Ａ」）に対応するデータ移動スレッド数１２４が許容スレッド数上限値１２３（ここでは、「３」）に達している場合、移動データ選択部１５は、移動対象データよりも優先順位の低いスレッドを中断することにより移動データの受け入れ可能か否かの判定を行い（Ｓ２２１）、その移動データの受け入れ可能であればステップＳ２０８に進んで実行する一方、その移動データの受け入れが不可能であればステップＳ２１２に進んで実行する。
【００６４】
上述したステップＳ２０８において回線負荷が閾値を超えている場合は、移動データ選択部１５は、移動データよりも優先順位の低いスレッドを中断することにより移動対象データの受け入れが可能か否かの判定を行い（Ｓ２２２）、受け入れ可能であればステップＳ２０９に進んで実行する一方、受け入れ不可能であればステップＳ２１２に進んで実行する。次に、上述したステップＳ２１４において全てのデータ移動が完了している場合は、移動データ選択部１５はデータ移動を終了する（Ｓ２２４）。
【００６５】
（１−３−３．平均応答時間・ブロック率の推移）
図１０は、高負荷ＤＢサーバ２におけるデータ移動時の負荷、データアクセス要求への平均応答時間、及び、データアクセス要求のブロック率の推移を示す。実線は、データアクセスを固定的に優先して処理した時の推移を示す。一方、破線は、高負荷状態において一時的にデータ移動を優先に処理した時の予想推移を示している。
【００６６】
高負荷状態においてもデータアクセス処理を優先にすると、データ移動処理が進まないため、時間が経過しても高負荷を保ち、負荷が高いために応答時間も長いままとなっている。また、データアクセス処理を優先して実行するため、ブロック率は低い。
【００６７】
一方、高負荷状態において一時的にデータ移動処理を優先すると、データ移動のスレッドが一つ終了する度に負荷が引き下げられ、応答時間が改善される。高負荷状態にありデータ移動を優先に行う間は、データアクセス処理が制限されるため、データアクセス要求を受け入れない比率（ブロック率）は一時的に高くなるが、高負荷状態を脱した後は、ＤＢサーバが管理するデータ量が削減されるためにデータアクセス要求が減少し、ブロック率も引き下げられる。これらのことから、高負荷ＤＢサーバにおいては、迅速に負荷を引き下げることが平均応答時間及びブロック率の早期の改善に繋がることが分かる。
【００６８】
上述したデータ移動を開始するトリガーとしては、例えば、機器再構成時に管理者が管理サーバ１に対して明示的にデータ移動開始の指示を与えること、又は、管理サーバ１が定期的にＤＢサーバ２の負荷を監視しており高負荷状態のＤＢサーバ２を検出することを挙げることができる。その他にも、上述したデータ移動を開始するトリガーとしては、例えば、各ＤＢサーバが自身のＣＰＵ負荷或いは記憶装置（主記憶装置１５０２又は二次記憶装置１５０５）に記録されたデータ量を監視しておき、予め設定した閾値を超過したことが検出されると管理サーバ１に通知し、この管理サーバ１がＤＢサーバ２からの通知を受信したことを挙げることもできる。
【００６９】
（１−４．移動先サーバの選択方法の変形例）
上述した第１の実施の形態では、移動先サーバの選択方法として移動データ選択部１５が、上述したデータ移動管理テーブル１４０のデータ量１４４に示されたデータ量の少ないものに対応する、移動先サーバフィールド１４３の移動先サーバ（例えば移動先サーバＦ）を優先的に選択していたが、その代わりに、次のような基準に従って移動先サーバを選択するようにしても良い。つまり、当該移動先サーバの選択方法の変形例では、移動データ選択部１５は、移動データのデータ量１４４が多い移動先サーバから順に選択している。なお、移動データ選択部１５は、サーバリソース管理テーブル１２０において移動先サーバフィールド１４３の負荷が低い順に選択してもよい。
【００７０】
或いは、移動データ選択部１５は、データ移動管理テーブル１４０における移動データのデータ量１４４に基づいて、移動データのデータ量の少ない順又は多い順に移動した際の双方の負荷の推移を推測し、高負荷状態から脱するまでに要する時間が短いと予測される方法を選択し、その選択方法に従って、データ量１４４の少ない移動データを優先又はデータ量１４４の多い移動データを優先してもよい。
【００７１】
（１−５．高負荷状態から解放される予測時刻の求め方）
図１１は、高負荷状態のＤＢサーバ２がデータ移動により高負荷状態から解放される予想時刻の求め方の一例を示す。図示の例では、移動データのデータ量が少ない順に移動した場合の一例を示している。なお、本実施の形態では、このような形態をShortest job firstとも表現している。
【００７２】
移動データ選択部１５は、データ移動終了時刻Ｔｓ＝０と設定し（Ｓ３０２)、移動データであってデータ移動管理テーブル１４０のデータ量１４４に示されたデータ量が最小の移動データ（以下、最小データという）（ｉ）を選択する（Ｓ３０３）。この移動データ選択部１５は、当該最小データ（ｉ）のデータ量（データ量フィールド１４４に示されたデータ量）を、データ移動の際の移動経路内のボトルネックとなる回線で使用可能と予測される回線帯域（以下、予測回線帯域という）で割った値をＴｓに加算し、最小データ（ｉ）の移動終了時刻の予測値とする（Ｓ３０４)。なお、この予測回線帯域は固定値でもよい。
【００７３】
次に、移動データ選択部１５は、この最小データ（ｉ）を移動した後における移動元ＤＢサーバ１４２の負荷を予測する。この移動データ選択部１５は、予め単位データ量当たりのデータアクセス負荷を概算しておき、最小データ（ｉ）のデータ量を単位データ量で割り、単位データ量当たりのデータアクセス負荷を掛けることにより当該最小データ（ｉ）のデータアクセス負荷を予測する（Ｓ３０５)。ここで、例えば、単位データ量をｘＭＢとし、ｘＭＢ当たりのデータアクセス負荷をｙ％、最小データ（ｉ）のデータ量をｚＭＢとすると、当該最小データ（ｉ）のデータアクセス負荷は、ｚ／ｘ×ｙとなる。移動データ選択部１５は、この値（ｚ／ｘ×ｙ）を、現在のデータアクセス負荷から減算することにより、最小データ（ｉ）を移動した後におけるデータアクセス負荷を予測する。移動データ選択部１５は、データアクセス負荷≧閾値（Ｈｉ）であれば（Ｓ３０６）、ステップＳ３０３に戻って実行する一方、データアクセス負荷＜閾値（Ｈｉ）であれば、処理を終了する（Ｓ３０７）。高負荷状態から解放される予想時刻は、時刻Ｔｓとなる。
【００７４】
また同様に、移動データ選択部１５は、データ量が多い順に移動した時に高負荷状態から解放される時刻Ｔｌを求め、上述した時刻Ｔｓとこの時刻Ｔｌとの比較により、先に高負荷状態から解放されると予測される方法を選択する。これにより、高負荷状態のＤＢサーバ２の高負荷状態からの解放をさらに早めることが可能となる。
【００７５】
以上のように本実施の形態では、分散データ管理システム１００が、外部からのデータアクセスを受け付けるデータアクセス処理を実行するとともに、前記データアクセスに係るデータを分散して管理する複数のサーバと、前記データアクセス処理のバックグラウンドで前記複数のサーバのうちの移動元サーバから移動先サーバへデータを移動させるためのデータ移動処理を実行させる管理サーバと、がネットワークを介して接続されている。複数のＤＢサーバ２は、所定時間内の自らの平均負荷を測定する負荷測定部２４と、その測定結果を前記管理サーバに通知する負荷通知部２５と、管理サーバ１から指示に基づいてデータアクセス処理を実行するデータアクセス実行部２３と、管理サーバ１から指示に基づいてデータ移動処理を実行するデータ移動部２６と、を有する。管理サーバ１は、複数のＤＢサーバ２に分散管理されたデータのデータ配置を記録するとともに複数のＤＢサーバ２に分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較してデータ移動処理が実行されるべきデータを検出するデータ配置管理部１６と、複数のＤＢサーバ２の平均負荷の状況をそれぞれ管理しており、初期設定として各ＤＢサーバ２を中低負荷状態にあるとして、前記データアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、移動元サーバにおける平均負荷が予め設定された高負荷用閾値以上となると高負荷状態にあると判定し、データアクセス処理の優先順位よりもデータ移動処理の優先順位を高く設定する一方、その後、移動元サーバにおける平均負荷が予め設定された中低負荷用閾値以下となると高負荷状態を脱した，即ち中低負荷状態にあると判定し、データアクセス処理の優先順位をデータ移動処理の優先順位よりも高く設定するサーバリソース管理部１２と、高負荷用閾値及び中低負荷用閾値並びに複数のサーバにおける平均負荷の状況に基づき、データ移動処理を実行させるべきタイミングを決定し、移動元サーバ及び移動先サーバのいずれか一方又は両方に対して、設定された優先順位に従って移動データを移動すべき旨を指示する移動データ選択部１５とを備えている。
【００７６】
上述した本実施の形態によれば、中低負荷状態のＤＢサーバ２においては、データアクセス処理が優先されており、データ移動処理によるデータアクセス処理の過度な圧迫は防がれる。一方、高負荷状態のＤＢサーバ２においては、積極的にデータ移動を行い、高負荷ＤＢサーバ２からのデータ移動を低負荷状態のＤＢサーバ２よりも優先に行うことにより、高負荷状態のＤＢサーバ２を早期に高負荷状態から解放することが可能になる。
【００７７】
高負荷状態のＤＢサーバ２においては、データ移動を行う間、一時的にデータアクセスが非優先となるが、これにより早期に高負荷状態が解消され、高負荷状態が解消された後は快適なデータアクセスサービスの提供が提供可能となる。
【００７８】
また、本実施の形態では、サーバリソース管理部１２は、複数のＤＢサーバ２のうちの特定のサーバが高負荷状態である場合、予め設定された優先順位の高いデータ移動処理用の閾値を前記データ移動処理の閾値と決定するとともに、予め設定された高負荷時のデータアクセス処理用の閾値を前記データアクセス処理の閾値として決定する一方、複数のサーバのうちの特定のサーバが中低負荷状態である場合、予め設定された中低負荷状態におけるデータアクセス処理用の閾値をデータアクセス用の閾値として決定するとともに、データアクセスによる負荷とサーバの性能保証値である負荷との差分を求め、その値を前記データ移動処理の閾値として決定している。
【００７９】
また、本実施の形態では、管理サーバ１が、移動データに関連付けて、移動元サーバ、移動先サーバ、移動データのデータ量及び移動データの移動状態を管理するデータ移動管理テーブル１４０を備えている。
【００８０】
また、本実施の形態では、管理サーバ１は、移動データ選択部１５を備え、この移動データ選択部１５は、移動元サーバに関しては、複数のサーバのうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、移動先サーバに関しては、移動データのデータ量が少ない順に選択すること、移動データのデータ量が多い順に選択すること、及び、平均負荷が低い順に選択することのうちから少なくとも１つを選択し、前記複数のサーバのうちから前記選択結果に関係する移動データに対応する移動先サーバを選択する選択処理を実行する。管理サーバ１は、その選択処理に基づく移動データに対して、データアクセス処理の閾値及びデータ移動処理の閾値に従ってデータ移動を制限し、データ移動処理の実施が制限されるべきと判定された場合には、選択処理に従って新たな移動データを選択し、移動データが存在する移動元サーバ及び移動先サーバのいずれか一方又は両方に対して、移動データを移動すべき旨を指示する。
【００８１】
また、本実施の形態では、移動データ選択部１５は、移動元サーバに関しては、複数のＤＢサーバ２のうちから高負荷状態のサーバを移動元サーバとして優先に選択する一方、移動先サーバに関しては、データ量が少ない順にデータを移動した場合とデータ量が多い順にデータを移動した場合における移動元サーバの負荷の推移をそれぞれ推定することにより移動元サーバが高負荷状態を脱する時刻を予想し、より早く高負荷状態を脱すると予測される方法を選択して、これら複数のＤＢサーバ２のうちから移動先サーバを決定する。しかも移動データ選択部１５は、その選択処理に基づく移動データに関して、データアクセス処理の閾値及びデータ移動処理の閾値に従ってデータ移動を制限し、データ移動が制限されるべきと判定された場合には、選択処理に従って新たな移動データを選択し、最終的に選択した移動データの移動元サーバ及び移動先サーバのいずれか一方又は両方にデータの移動を指示する。
【００８２】
また、本実施の形態では、分散データ管理システム１００は、複数のＤＢサーバ２と管理サーバ１との間において複数のＤＢサーバ２間及び管理サーバ１を接続する回線を有し、その回線の負荷を測定して管理サーバ１に通知する複数のネットワークスイッチ３を備えている。管理サーバ１は、複数のＤＢサーバ２によるアクセスに応じた各ネットワークスイッチ３の負荷状況を管理する回線リソース管理部１３を有し、複数のネットワークスイッチ３のうち上記選択された移動データの移動経路上にあるネットワークスイッチ３を検出すると、当該検出されたネットワークスイッチ３の回線負荷を予め設定した回線負荷の閾値と比較し、この比較結果に基づいてデータ移動の可否判断を行っている。
【００８３】
また、本実施の形態では、移動データ選択部１５は、データアクセス処理及び前記データ移動処理の閾値による制限を受けてデータ移動ができないデータが優先順位の高いデータ移動である場合、前移動先サーバが優先順位の低いデータ移動を実行しており、優先順位の低いデータ移動を中断することにより、優先順位の高いデータ移動を受け付けることが可能であれば優先順位の低いデータ移動を中断し、優先順位の高いデータ移動を優先的に実行する。
【００８４】
また、本実施の形態では、移動データ選択部１５は、回線負荷の閾値を用いた判定によってデータ移動が制限される移動データが優先順位の高いデータ移動である場合、優先順位の低いデータ移動を中断することにより、優先順位の高いデータ移動を受け付けることが可能であれば優先順位の低いデータ移動を中断し、優先順位の高いデータ移動を優先的に実行している。
【００８５】
（２．第１の実施の形態の応用例）
（２−１．第１の応用例）
第１の応用例では、上述した第１の実施の形態を、例えば、ＩＥＥＥ８０２．１Ｑ対応の複数のレイヤ２スイッチを介して各ＤＢサーバが接続された構成に適用し、タグＶＬＡＮ（Virtual Local Area Network）を用いて、優先制御を行う。第１の応用例では、３つのタグＶＬＡＮを設定し、高負荷状態のＤＢサーバ２からのデータ移動トラフィック（高優先）、データアクセストラフィック（中優先）、中低負荷状態のＤＢサーバ２からのデータ移動トラフィック（低優先）を割り当てる。
【００８６】
図１２（Ａ）は、一般的なＭＡＣ（Media Access Control）フレームの構成例を示し、一方、図１２（Ｂ）は、第１の応用例におけるＶＬＡＮタグ付きフレームの構成例を示す。第１の応用例におけるＶＬＡＮタグ付きフレームでは、図１２（Ａ）に示すＭＡＣ（Media Access Control）フレームにおける送信元アドレス１１０３と長さ／タイプ１１０４との間にＶＬＡＮタグとしてタグ・フレーム１１１１が挿入された構成となっている。第１の応用例では、タグ・フレーム１１１１の一部であるＴＣＩ(Tag Control Information)フィールド１１１３内のＰＣＰ(Priority Code Point)フィールド１１１４を用いて優先順位を設定し、各レイヤ２スイッチにおいて優先制御を行う。
【００８７】
各レイヤ２スイッチは（ネットワークスイッチ）は、管理サーバ１からの指示に従い、そのように設定された優先順位に応じた優先制御を行う。これにより、例えば、高負荷状態のＤＢサーバ２からのデータ移動が最優先で行われ、このＤＢサーバ２は、高負荷状態からの解放の時期が早まる。また、データアクセストラフィックの転送処理が、優先順位の低いデータ移動トラフィックの転送処理に圧迫されることを防ぐ。
【００８８】
複数のレイヤ２ネットワークがルータを介して接続される構成においては、ルータにおいて、ＰＣＰフィールド１１１４の値をＩＰヘッダ内のType of service（ＴＯＳ）フィールドにマッピングして優先制御を行うことにより、システム内で統一した優先順位を保っている。
【００８９】
（２−２．第２の応用例）
第２の応用例では、上述した第１の実施の形態において、複数のデータ管理グループが存在し、それぞれにデータの再配置を行う際の移動データの選択方法を説明する。
【００９０】
図１３は、第１の実施の形態をメールシステムに適用した場合の例を示す。このメールシステムには、第１の実施の形態におけるＤＢサーバ２の代わりに、上述したその機能とほぼ同様な機能を搭載するメール転送サーバ５、メールボックスサーバ（以下、メールボックスと略す）６、ログサーバ７及び課金サーバ８などの様々な種類の処理を行う複数種類のサーバが一つのシステム内に存在している。第２の応用例では、これらのサーバが同様な種類の処理を実行する組み合わせのサーバ間においてその処理に関わるデータの分散管理を行うことを想定している。
【００９１】
第２の応用例では、メールデータの保管を行うメールボックス６をデータ管理グループＡとする一方、ユーザ毎の課金情報を管理する課金サーバ８をデータ管理グループＢとした上で、データ管理グループＡ，Ｂにおいて同時にデータ移動を行う場合があることを想定している。各データ管理グループ内におけるデータ移動の優先順位は、第１の実施の形態における優先順位の設定の仕方と同様である。
【００９２】
移動データ選択部１５は、データ管理グループ間の優先順位については、いずれかのデータ管理グループを優先するものとし、例えばデータ管理グループＡを優先とする。つまり、移動データ選択部１５は、データ管理グループＡに属する高負荷状態のメールボックス６からのデータ移動、データ管理グループＡに属する中低負荷状態のメールボックス６からのデータ移動、データ管理グループＢに属する高負荷状態の課金サーバ８からのデータ移動、データ管理グループＢに属する中低負荷状態の課金サーバ８からのデータ移動の順に、優先順位を定めて移動を行う。
【００９３】
一方、ネットワーク内での優先順位に関しては、各データ管理グループの本来業務にアクセスするトラフィックや管理データ等のトラフィックにも優先順位を付けてＶＬＡＮを割り当て、上述した第１の応用例の方法で、データ移動の各優先順位と合わせた優先制御を行う。なお、３つ以上のデータ管理グループに関しても上記と同様な優先順位が設定される。管理サーバ１では、移動データ選択部１５が上記優先順位に基づいて移動データを選択する。
【００９４】
上述した閾値（Ｈｉ）、閾値（ｈ）、閾値（ｄ）及び閾値（ｌ）は、それぞれ、グループ毎に、処理に見合った値が設定される。例えば、ログサーバ７の処理速度は、ユーザへのサービス品質には直接影響しないため、移動データ選択部１５は、ログサーバ７のデータ移動については高負荷状態と判定する閾値（Ｈｉ）を高く設定し、ログサーバ７のデータ移動の優先順位が高くならないように制御することも可能である。
【００９５】
以上のように移動データ選択部１５は、複数のサーバを複数のデータ管理グループに分けて管理する一方、各データ管理グループに分けた優先順位の高いデータ移動及び優先順位の低いデータ移動に優先順位を付与し、その付与した優先順位に従って、対応するデータ管理グループについてデータ移動のスケジューリングを行っている。
【００９６】
（２−３．第３の応用例）
第３の応用例では、上述した第２の応用例と同様の構成において、移動データ選択部１５が、データ移動の優先順位をデータ管理グループＡに属する高負荷状態のメールボックス６からのデータ移動、データ管理グループＢに属する高負荷状態のサーバ８からのデータ移動、データ管理グループＡに属する中低負荷状態のサーバ６からのデータ移動、データ管理グループＢに属する中低負荷状態の課金サーバ８からのデータ移動の順に優先順位を割り当て、データ移動を行う。移動データ選択部１５は、３つ以上のデータ管理グループに対しても同様の優先順位付けを行う。管理サーバ１では、移動データ選択部１５が、上記優先順位に基づき移動データを選択する。
【００９７】
（２−４．第４の応用例）
第４の応用例では、上述した第２の応用例と同様の構成において、移動データ選択部１５が、３つ以上のデータ管理グループＡ，Ｂ及び図示しないデータ管理グループＣなどに対して、第２の応用例と第３の応用例を組み合わせた方法によって、データ移動の優先順位付けを行っている。
【００９８】
具体的には、移動データ選択部１５は、例えば、データ管理グループＡに属する高負荷状態のサーバ、データ管理グループＢに属する高負荷状態のサーバ、データ管理グループＡに属する中低負荷状態のサーバ、データ管理グループＣに属する高負荷状態のサーバ、グループＢに属する中低負荷状態のサーバ、グループＣに属する中低負荷状態のサーバのように優先順位を付ける。管理サーバ１では、移動データ選択部１５が、上記優先順位に基づき移動データを選択する。
【００９９】
以上のような第２乃至第４の応用例によれば、サーバの処理の優先順位、エンドユーザへ提供するサービス品質への影響を考慮した柔軟なデータ移動が可能になる。
【０１００】
（２−５．第５の応用例）
第５の応用例では、上述した第１の実施の形態を、上述した第２の応用例と同様の構成に適用し、移動データ選択部１５が、各データ管理グループにデータ移動開始時刻を設定し、その設定された時刻に、該当するデータ管理グループ毎にデータ移動を開始するようにしている。管理サーバ１は、データ管理グループ毎にデータ移動開始時刻を記録し、記録された時刻になると、設定されたデータ管理グループ内でデータ移動を開始させる。
【０１０１】
このようにすると、例えば、データ管理グループＡに属し、エンドユーザへのサービスに直接影響を与えるメールボックス６のデータ移動を、エンドユーザからのデータアクセスが少ない特定の時間帯（例えば夜中）に実施することができる。
【０１０２】
（２−６．第６の応用例）
第６の応用例では、第１の実施の形態において、例えば一つの移動元サーバから一つの移動先サーバへの移動データのデータ量が予め指定した大きさを超える場合、移動データ管理部１４が、この移動データを複数の単位データに分割する。データの分割を受け、移動データ選択部１５は、移動元サーバ、移動先サーバ、及び回線に余裕があれば複数のスレッドを用いてデータ移動を行う。移動元サーバにおいてデータを分割し、データ移動管理テーブル１４０において、各分割データを別のデータとして扱い、図８に示す手順によりデータ移動を行う。但し、分割データの移動開始後は、移動データの選択において、残りの分割データが優先的に選択される。
【０１０３】
図１４は、分割データを扱う際のデータ移動管理テーブル１４０の構成例を示す。図示のデータ移動管理テーブル１４０では、記述の図６に示すデータ移動管理テーブル１４０に、新たに分割フラグフィールド１４７が設けられている。この分割フラグフィールド１４７は、データが分割された移動データであるか否かを示すフラグ（以下、分割フラグという）である。
【０１０４】
この分割フラグとして、分割対象となった移動データに対応する分割フラグフィールド１４７に、例えば「１」が設定される。第６の応用例では、記述の実施形態とは異なり、移動対象のデータが分割してデータ移動がなされる場合、この移動対象のデータに対して１つの移動データＮｏが付与される代わりに、各単位データに、例えば「１」、「６」及び「７」のように移動データＮｏが付与されている。
【０１０５】
移動データ選択部１５は、分割対象となった移動データについて、分割された全ての単位データの移動の終了を持ってデータ移動が終了したものとし、移動先サーバへ移動データの処理を引き継がせている。
【０１０６】
以上のように、移動データ選択部１５は、１つの移動元サーバから１つの移動先サーバへ移動するデータを複数の単位データに分割して、その分割された複数の単位データの移動を並行して実行している。このようにすると、より迅速にデータ移動を進めることが可能になり、高負荷状態のサーバが早期に高負荷状態から解放されるようにすることができる。
【０１０７】
（２−７．第７の応用例）
第７の応用例では、管理サーバ１において、移動データ選択部１５が、予め、データ移動処理の終了予定時刻及びアラームの通知先を設定しておき、この設定された終了予定時刻を超えてもデータ移動処理が完了しない場合、当該設定された通知先にアラームを発するようになっている。
【０１０８】
図１５は、データ移動の終了予定時刻までにデータ移動処理が完了しなかった際のアラーム通知処理の一例を示す。
【０１０９】
データ移動処理が開始されると（Ｓ４０１）、移動データ選択部１５は、このデータ移動処理の実行制御とは別に、予め設定された終了予定時刻を元にタイマを設定し（Ｓ４０２）、スリープ状態に入る（Ｓ４０３）。この移動データ選択部１５は、データ移動終了通知又はタイマによる割り込みを受けると（Ｓ４０４）、データ移動が終了したか否かを判定し（Ｓ４０５）、データ移動が終了していなければ、予め設定された通知先にアラームで通知する（Ｓ４０６）。
【０１１０】
以上のように移動データ選択部１５は、予め設定されたデータ移動終了予定時刻までにデータ移動が終了したか否かを判定し、予め設定した終了時刻までにデータ移動が終了しなかったと判定した場合、予め設定した方法に従って予め設定された通知先にアラームを通知している。このようにすると、新しいデータ配置に不具合が生じていたり、その他の不具合を原因としてデータ移動処理が完了しない場合、管理者に通知して、上述した図８に示す移動データの選択処理が無限ループとなり実行され続けることを防ぐことができる。
【０１１１】
（３）第２の実施の形態
（３−１．管理サーバ１の機能を搭載するＤＢサーバの変形例）
本発明の第２の実施の形態では、第１の実施の形態とほぼ同様の構成であるため、第１の実施の形態と同一の符号を付した構成はほぼ同様の構成であるとともにほぼ同様の動作を実行するため、ほぼ同一の構成及びほぼ同様の動作については第１の実施の形態と同一の符号を付して説明を省略し、以下、異なる点を中心として説明する。
【０１１２】
上述した第１の実施の形態においては、管理サーバ１がＤＢサーバ２とは別途設けられた形態であったが、第２の実施の形態においては、管理サーバ１の機能がＤＢサーバ２自体に搭載されている。即ち、第２の実施の形態では、第１の実施の形態における分散データ管理システムにおいて存在していた管理サーバ１が存在せず、その管理サーバ１の機能がＤＢサーバに搭載されている。つまり、ＤＢサーバにおいては、複数のネットワークスイッチ３により構成されるネットワーク９９、及び、前段装置他ネットワーク４を介して、エンドユーザの端末によるデータアクセス要求に応じてデータアクセス処理を実行する一方、そのデータアクセス処理のバックグラウンドで、自らの指示で、上述したデータ移動処理を実行する構成となっている。
【０１１３】
当該変形例としてのＤＢサーバは、所定時間内の自らの平均負荷を測定する負荷計測通知部２４と、外部からのデータアクセスを受け付けるデータアクセス処理を実行するデータアクセス部２３と、データアクセス処理のバックグラウンドでデータ移動処理を実行するデータ移動部２６と、他のＤＢサーバとによって分散管理されたデータのデータ配置を記録するとともに当該他のＤＢサーバとによって分散管理されたデータの新たなデータ配置を記録する一方、新旧のデータ配置を比較してデータ移動処理が実行されるべきデータを検出するデータ配置管理部２７と、自らの平均負荷の状況を管理しており、初期設定としてデータアクセス処理の優先順位を前記データ移動処理の優先順位よりも高く設定した上で、自らの平均負荷が予め設定された高負荷用閾値以上となると、データアクセス処理の優先順位よりもデータ移動処理の優先順位を高く設定する一方、その後、自らの平均負荷が予め設定された中低負荷用閾値以下となると、データアクセス処理の優先順位をデータ移動処理の優先順位よりも高く設定するサーバリソース管理部と、高負荷用閾値及び中低負荷用閾値並びに自らの平均負荷の状況に基づき、データ移動処理を実行させるべきタイミングを決定し、設定された優先順位に従って上記他のＤＢサーバ２との間で移動データを移動させる移動データ選択部とを備える。
【０１１４】
なお、当該第２の実施の形態としてのＤＢサーバにおいては、上述した第１の実施の形態とは、次の構成が異なっている。つまり、負荷測定部２４は、計測した負荷を管理サーバ１に通知する機能を含まない点を除いて、上述した管理サーバ１のデータ配置管理部１６とほぼ同様の機能を有する。また、データアクセス部２３、データ移動部２６及びデータ配置管理部２７は、それぞれ、管理サーバ１による制御によらず自ら制御する点を除いて、上述したデータアクセス部２３、データ移動部２６及びデータ配置管理部２７とほぼ同様の機能を発揮する。第２の実施の形態におけるサーバリソース管理部は、ネットワーク９９を介してリソースを管理しない点を除いて、上述した管理サーバ１のサーバリソース管理部１２とほぼ同様の機能を発揮する。また、第２の実施の形態における移動データ選択部は、ネットワーク９９を介してデータ移動処理のタイミングを決定しない点を除いて、上述した管理サーバ１の移動データ選択部１５とほぼ同様の機能を発揮する。
【０１１５】
以上のような第２の実施の形態によれば、管理サーバ１が存在しない構成の分散データ管理システムにおいても、第１の実施の形態とほぼ同様な効果を挙げることができる。
【０１１６】
（４）その他の実施形態
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
【産業上の利用可能性】
【０１１７】
本発明は、データ再配置を行う分散データ管理システム及びデータ移動管理方法に適用することができる。
【符号の説明】
【０１１８】
１  管理サーバ
２  ＤＢサーバ
３  ネットワークスイッチ
４  前段装置又は他のネットワーク
１２  サーバリソース管理部
１３  回線リソース管理部
１４  データ移動管理部
１５  移動データ選択部
【図１】
2013222221.tif 000003
【図２】
2013222221.tif 000004
【図３】
2013222221.tif 000005
【図４】
2013222221.tif 000006
【図５】
2013222221.tif 000007
【図６】
2013222221.tif 000008
【図７】
2013222221.tif 000009
【図８】
2013222221.tif 000010
【図９】
2013222221.tif 000011
【図１０】
2013222221.tif 000012
【図１１】
2013222221.tif 000013
【図１２】
2013222221.tif 000014
【図１３】
2013222221.tif 000015
【図１４】
2013222221.tif 000016
【図１５】
2013222221.tif 000017