(57)【要約】【課題】性能低下を招くことなく、格納されているデータの配置の最適化を実現し得る、フォールトトレラントサーバ、デフラグ方法、およびプログラムを提供する。【解決手段】フォールトトレラント（ＦＴ）サーバ１は、第１物理マシン１０、第２物理マシン２０を有する。第１および第２物理マシン２０は、ＦＴ制御部３１、およびデフラグ制御部３２を有する。ＦＴ制御部３１は、物理マシン１０、２０のうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する。デフラグ制御部３２は、待機系マシンとしての第２物理マシン２０に備えられた第２記憶装置２２にデフラグを実行させる。【選択図】図１
2013210930.tif 000002
【特許請求の範囲】
【請求項１】
第１物理マシンと、
第２物理マシンと、
前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定する場合に、他方を待機系マシンとして設定し、かつ、前記一方を待機系マシンに変更する場合に、前記他方を稼働系マシンに変更する、フォールトトレラント制御部と、
前記待機系マシンに備えられた記憶装置にデフラグを実行させる、デフラグ制御部と、
を備えていることを特徴とする、フォールトトレラントサーバ。
【請求項２】
前記待機系マシンは、前記デフラグの実行中には、前記稼働系マシンに備えられた前記記憶装置からコピーされるデータの受け入れを停止し、前記デフラグの実行後に、前記データを受け入れる、請求項１に記載のフォールトトレラントサーバ。
【請求項３】
前記デフラグ制御部は、前記稼働系マシンに備えられた記憶装置から、前記待機系マシンに備えられた前記記憶装置へコピーされたデータについて、前記稼働系マシンにおいてアクセスされていた頻度を解析し、前記アクセスされていた頻度に応じて、前記待機系マシンの前記記憶装置の所定の記憶領域へ、前記データをコピーする、請求項１または請求項２に記載のフォールトトレラントサーバ。
【請求項４】
前記デフラグ制御部は、
前記アクセスされていた頻度が相対的に高い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に低い記憶領域にコピーし、
前記アクセスされていた頻度が相対的に低い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に高い記憶領域にコピーする、請求項３に記載のフォールトトレラントサーバ。
【請求項５】
前記フォールトトレラント制御部は、前記デフラグの実行後に、前記第１物理マシンおよび前記第２物理マシンのうちの前記一方を待機系マシンに設定するとともに、前記他方を稼働系マシンに設定する、請求項１〜請求項４のいずれか１項に記載のフォールトトレラントサーバ。
【請求項６】
前記稼働系マシンに仮想マシンが構築され、
前記フォールトトレラント制御部は、前記稼働系マシンに構築された前記仮想マシンが保持するデータを、前記待機系マシンの前記記憶装置にコピーする、請求項１〜請求項５のいずれか１項に記載のフォールトトレラントサーバ。
【請求項７】
第１物理マシンと、
第２物理マシンと、
を備えるフォールトトレラントサーバにおけるデフラグ方法であって、
（ａ）前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する、ステップと、
（ｂ）前記待機系マシンに備えられた記憶装置にデフラグを実行させる、ステップと、
を含むことを特徴とする、デフラグ方法。
【請求項８】
第１物理マシンと、
第２物理マシンと、
を備えるフォールトトレラントサーバとしてのコンピュータにデフラグを実行させるためのプログラムであって、
前記コンピュータに、
（ａ）前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する、ステップと、
（ｂ）前記待機系マシンに備えられた記憶装置にデフラグを実行させる、ステップと、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化されたサーバシステムを有するフォールトトレラントサーバ、デフラグ方法、およびプログラムプログラムに関する。
【背景技術】
【０００２】
サーバに障害が生じた場合でも、サーバに要求されている処理を継続できるようにした、フォールトトレラントサーバが知られている（たとえば、特許文献１参照）。このフォールトトレラントサーバは、二重化されたサーバを有している。フォールトトレラントサーバは、一方のサーバがダウンした場合でも、他方のサーバによって、要求されている処理を継続する。特許文献１では、第１モジュールと、第２モジュールは、通常時には、同期して動作する。一方、第１モジュールと第２モジュールのいずれかに障害が生じた場合は、障害が生じていないほうのモジュールで、処理を続行する。
【０００３】
また、フェイルオーバー機能を持つ分散システムが知られている（たとえば、特許文献２参照）。この分散システムは、ネットワークで接続された複数台のコンピュータを有している。そして、動作が停滞しているコンピュータと、待機状態にあるコンピュータとをフェイルオーバー（切替）する。
【０００４】
また、システム上で、データのデフラグを行う構成が知られている（たとえば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７０６８０号公報（[０００７]［００１３］）
【特許文献２】特開２０１０−２１１２７１号公報（請求項１）
【特許文献３】特開２００９−９３３１１号公報（[００２２]）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、フォールトトレラントサーバを連続して長時間駆動させると、各サーバのメモリにおいて、記憶領域の確保操作と開放操作とが多数回、繰り返される。このため、メモリデータの断片化が発生する。この断片化は、メモリ領域の新たな確保、および走査において時間がかかる原因となり、サーバの処理速度の低下を招く傾向がある。そこで、デフラグ（デフラグメンテーション）によって、メモリデータの再配置を行なうことで、メモリデータの断片化を解消させることが可能である。しかしながら、デフラグ作業は、サーバシステムへ大きな負荷をかけるため、容易に行なうことは困難であった。
【０００７】
すなわち、特許文献１に記載されているように、通常時には、常時、２つのモジュールが同期する構成では、各モジュールにおいて、業務アプリケーションの処理など、本来の処理を行いながら、デフラグ作業を行う必要がある。このため、デフラグ作業時には、本来の処理の処理速度が大幅に低下する。よってデフラグ作業を容易には行えない。
【０００８】
また、特許文献２に記載の構成では、デフラグについて、特段の考慮がされているわけではない。また、特許文献３に記載の構成では、１つのシステム上でのデフラグしか考慮されていない。
【０００９】
本発明の目的の一例は、性能低下を招くことなく、格納されているデータの配置の最適化を実現し得る、フォールトトレラントサーバ、デフラグ方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の一側面における、フォールトトレラントサーバは、
第１物理マシンと、
第２物理マシンと、
前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定する場合に、他方を待機系マシンとして設定し、かつ、前記一方を待機系マシンに変更する場合に、前記他方を稼働系マシンに変更する、フォールトトレラント制御部と、
前記待機系マシンに備えられた記憶装置にデフラグを実行させる、デフラグ制御部と、
を備えていることを特徴とする。
【００１１】
また、上記目的を達成するため、本発明の一側面における、デフラグ方法は、第１物理マシンと、第２物理マシンと、を備えるフォールトトレラントサーバにおけるデフラグ方法であって、
（ａ）前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する、ステップと
（ｂ）前記待機系マシンに備えられた記憶装置にデフラグを実行させる、ステップと、
を含むことを特徴とする。
【００１２】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、第１物理マシンと、第２物理マシンと、を備えるフォールトトレラントサーバとしてのコンピュータにデフラグを実行させるためのプログラムであって、
前記コンピュータに、
（ａ）前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する、ステップと
（ｂ）前記待機系マシンに備えられた記憶装置にデフラグを実行させる、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１３】
以上のように、本発明によれば、性能低下を招くことなく、格納されているデータの配置の最適化を実現し得る。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るフォールトトレラントサーバの概略構成を示すブロック図である。
【図２】ゲストＯＳのページテーブルと、当該ゲストＯＳに対応する第１物理マシンのページテーブルと、当該ゲストＯＳに対応する第１物理マシンの記憶領域との関係を示す模式図である。
【図３】フォールトトレラントサーバにおける、デフラグに関連する処理の流れを説明するためのフロー図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態における、フォールトトレラントサーバ、デフラグ方法、およびプログラムについて、図面を参照しながら説明する。
【００１６】
[装置構成]
図１は、本発明の実施の形態に係るフォールトトレラントサーバ１の概略構成を示すブロック図である。図１では、第１物理マシンが稼働系マシンとして動作し、第２物理マシンが待機系マシンとして動作する状態が示されている。なお、以下では、「フォールトトレラント」のことを、単に「ＦＴ」ともいう。
【００１７】
図１に示すように、ＦＴサーバ１は、第１物理マシン１０と、第２物理マシン２０と、を備えている。ＦＴサーバ１では、第１物理マシン１０および第２物理マシン２０のうちの一方が、稼働系マシンとして動作し、他方が待機系マシンとして動作する。稼働系マシンは、ＦＴサーバ１に要求されている処理を実行する。そして、稼働系マシンのデータは、待機系マシンにミラーリングされる。稼働系マシンに異常が生じた場合には、稼働系マシンと待機系マシンとがフェイルオーバー（切替）される。これにより、ＦＴサーバ１を停止することなく、稼働系マシンと待機系マシンとをフェイルオーバーさせ、障害に起因するＦＴサーバ１の稼働停止を防止する。
【００１８】
第１物理マシン１０および第２物理マシン２０は、それぞれ、サーバコンピュータなどによって構築された、物理的なコンピュータである。第１物理マシン１０は、第１ＣＰＵ（Central Processing Unit）１１と、第１記憶装置１２と、を有している。第１ＣＰＵ１１および第１記憶装置１２は、それぞれ、物理ＣＰＵおよび物理記憶装置である。また、第２物理マシン２０は、第２ＣＰＵ２１と、第２記憶装置２２と、を有している。第２ＣＰＵ２１および第２記憶装置２２は、それぞれ、物理ＣＰＵおよび物理記憶装置である。
【００１９】
また、本実施の形態では、第１物理マシン１０および第２物理マシン２０によって、ホストＯＳ３０が構築されている。ホストＯＳ３０上には、第１物理マシン１０に対応する、第１デフラグ制御部１３、第１ＦＴ制御部１４、および第１仮想化部１５が構築されている。同様に、ホストＯＳ３０上には、第２物理マシン２０に対応する、第２デフラグ制御部２３、第２ＦＴ制御部２４、および第２仮想化部２５が構築されている。
【００２０】
第１ＦＴ制御部１４と、第２ＦＴ制御部２４とは、協働して、ＦＴ制御部３１を構成している。ＦＴ部制御部３１は、第１物理マシン１０および第２物理マシン２０のうちの一方を、稼働系マシンとして設定する場合に、他方を、待機系マシンとして設定する。また、ＦＴ部制御部３１は、第１物理マシン１０および第２物理マシン２０のうちの一方を、待機系マシンに変更する場合に、他方を、稼働系マシンに変更する。図１では、ＦＴ部制御部３１が、第１物理マシン１０を稼働系マシンとして設定し、第２物理マシン２０を待機系マシンとして設定した状態が示されている。本実施の形態では、特に説明なき限り、第１物理マシン１０が稼働系マシンである例を説明する。
【００２１】
稼働系マシンとしての第１物理マシン１０は、業務アプリケーション（プログラム）など、要求された処理を実行する。一方、待機系マシンとしての第２物理マシン２０は、上記業務アプリケーションなどの処理は実行しない。この場合、第２物理マシン２０には、第１物理マシン１０のデータが、所定時間毎にコピーされる。
【００２２】
また、第１デフラグ制御部１３と、第２デフラグ制御部２３とは、協働して、デフラグ制御部３２を構成している。第２デフラグ制御部２３は、第２物理マシン２０の第２記憶装置２２に、デフラグ（デフラグメンテーション）を実行させる。すなわち、第１物理マシン１０が稼働系マシンであり、第２物理マシン２０が待機系マシンである場合、第２デフラグ制御部２３が、第２記憶装置２２のデフラグを実行する。
【００２３】
以上説明したように、本実施の形態では、第１物理マシン１０および第２物理マシン２０のうち、稼働系マシンとしての第１物理マシン１０は、サーバとしての通常の処理を行うけれども、待機系マシンとしての第２物理マシン２０は、このような処理を行わない。このため、待機系マシンの第２記憶装置２２にデフラグを実行する際に、上記通常の処理のためのソースを用いる必要がない。よって、フォールトトレラントサーバ１としての性能低下を招くことなく、フォールトトレラントサーバ１におけるデータの再配置を行うことができる。これにより、第２物理マシン２０が稼働系マシンに変更された場合に、当該第２物理マシン２０の処理速度は、データの断片化の影響を受けることがなく、速い。しかも、稼働系マシンとしての第１物理マシン１０では、デフラグ作業は行われない。このため、第１物理マシン１０において、データの再配置の実行タイミングを見計らう必要がない。以上の次第で、性能低下を招くことなく、第２記憶装置２２に格納されているデータの配置の最適化を実現し得る。
【００２４】
以上が、フォールトトレラントサーバ１の概略説明である。次に、フォールトトレラントサーバ１の、より具体的な構成を、図１に加え、図２〜図３を用いて説明する。
【００２５】
本実施の形態では、第１物理マシン１０の第１記憶装置１２は、第１メモリ１６と、第１ＨＤＤ（Hard Disk Drive）１７と、を有している。また、本実施の形態では、第２物理マシン２０の第２記憶装置２２は、第２メモリ２６と、第２ＨＤＤ（Hard Disk Drive）２７と、を有している。
【００２６】
本実施の形態では、第１メモリ１６および第２メモリ２６は、揮発性メモリであり、それぞれ、第１ＣＰＵ１１および第２ＣＰＵ２１が処理を行う際の主記憶装置として機能する。第１ＨＤＤ１７および第２ＨＤＤ２７は、それぞれ、第１ＣＰＵ１１および第２ＣＰＵ２１が実行するプログラムなどが格納された、不揮発性の補助記憶装置である。第１ＣＰＵ１１および第２ＣＰＵ２１は、それぞれ、第１ＨＤＤ１７および第２ＨＤＤ２７に格納された、本実施の形態におけるプログラム（コード）を、対応する第１メモリ１６および第２メモリ２６に展開し、これらを所定順序で実行することにより、各種の演算を実施する。第１メモリ１６および第２メモリ２６は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。
【００２７】
本実施の形態では、第１仮想化部１５および第２仮想化部２５は、ホストＯＳ３０上に、仮想マシン３３を構築するためのものである。本実施の形態では、第１仮想化部１５によって、仮想マシン３３が構築されており、第２仮想化部２５には、仮想マシン３３を構築していない。仮想マシン３３は、仮想ＣＰＵ３４と、仮想記憶装置３５と、ゲストＯＳ（Operating System）３６と、を有している。
【００２８】
仮想記憶装置３５は、仮想メモリ３７と、仮想ＨＤＤ３８と、を有している。仮想メモリ３７は、仮想マシン３３における主記憶装置として機能する。仮想メモリ３７および、仮想ＨＤＤ３８は、第１記憶装置１２上に、記憶領域を確保している。仮想ＨＤＤ３８は、仮想マシン３３における補助記憶装置として機能する。ゲストＯＳ３６は、仮想マシン３３上で動作するＯＳである。
【００２９】
本実施の形態では、第２物理マシン２０では、前述したように、第２仮想化部２５が起動しておらず、ホストＯＳ３０上に、ミラー領域３９が構築されている。本実施の形態では、ミラー領域３９は、第２記憶装置２２に確保されたメモリ領域である。本実施の形態では、ミラー領域３９の容量は、第２物理マシン２０に対応する仮想マシンのゲストＯＳ用に確保された、当該仮想マシンの仮想記憶装置の容量以上に設定されている。
【００３０】
本実施の形態では、ＦＴ制御部３１は、仮想メモリ３７のデータと、仮想ＨＤＤ３８のデータとを、予め設定された一定期間ごとに、第２物理マシン２０のミラー領域３９にコピーする。この場合のコピーされるデータは、上記一定期間の間に、仮想メモリ３７および仮想ＨＤＤ３８で更新された、ダーティページのデータなどである。このデータは、ミラー領域３９の任意の空き領域にコピーされる。これにより、ゲストの二重化状態を維持可能にしている。
【００３１】
図２は、ゲストＯＳ３６のページテーブル４１と、当該ゲストＯＳ３６に対応する第１物理マシン１０のページテーブル４２と、当該ゲストＯＳ３６に対応する第１物理マシン１０の記憶領域との関係を示す模式図である。本実施の形態では、稼動系マシンとしての第１物理マシン１０におけるメモリ構成の一例を、図２のように示すことができる。本実施の形態のように、第１物理マシン１０が稼動系マシンである場合、ゲストＯＳ３６のページテーブル４１は、第１物理マシン１０のページテーブル４２のアドレスを所持している。この場合、第１物理マシン１０のページテーブル４２は、第１メモリ１６のアドレスを所持している。このため、ページテーブル４１，４２によるメモリ管理を利用して、第１メモリ１６のデータの動的な再配置が可能となる。第２物理マシン２０においても、同様に、ページテーブルによるメモリ管理を利用して、第２メモリ２６のデータの動的な再配置が可能である。
【００３２】
本実施の形態では、第２デフラグ制御部２３は、第２メモリ２６のデフラグを実行する。より具体的には、第２デフラグ制御部２３は、ミラー領域３９内のデータに対してデフラグを実行する。この際、第２デフラグ制御部２３は、ミラー領域３９内において、第２メモリ２６のうち、データの再配置先の領域に、再配置前の領域のデータをコピーする。次いで、第２デフラグ制御部２３は、再配置したデータのページテーブルを書き換える。その後、第２デフラグ制御部２３は、第２メモリ２６における、再配置前のデータを削除する。第２デフラグ制御部２３は、第２メモリ２６のデフラグの実行の要否について判定する時点で、たとえば、第２メモリ２６の断片化の度合いが、予め設定されたしきい値以上であれば、第２メモリ２６のデフラグを実行する。
【００３３】
本実施の形態では、第２デフラグ制御部２３は、デフラグの実行に先立ち、第２メモリ２６に格納されているデータについて、第１物理マシン１０（稼働系マシン）において参照された回数と、ダーティページの回数の統計をとることで、各データのアクセス頻度を測定する。第２デフラグ制御部２３は、このアクセス頻度の測定結果を基に、アクセス頻度の高いメモリデータを、アクセスコストの低いメモリに移行させ、アクセス頻度の低いメモリデータを、アクセスコストの高いメモリに移行させる。
【００３４】
本実施の形態では、第１物理マシン１０が障害によってダウンした場合には、ＦＴ制御部３１によって、第１物理マシン１０が待機系マシンに変更され、第２物理マシン２０が待機系マシンに変更される。これに伴い、第２仮想化部２５が起動し、第２ミラー領域３９にコピーされていたデータを用いて、第２物理マシン２０が、第１物理マシン１０で行っていた処理を継続する。このようなフェイルオーバーによって、第１物理マシン１０が駆動系マシンとなり、第２物理マシン２０が待機系マシンとなる。
【００３５】
ここで、各物理マシン１０、２０は、ゲストＯＳ３６を複数実行することが可能である。また、各物理マシン１０、２０において、各ゲストＯＳ３６の二重化が可能である。このため、ゲストＯＳ３６の起動とシャットダウンとを繰り返すことで、各物理マシン１０、２０のメモリ１６、２６では、メモリの断片化が発生する。
【００３６】
前述したように、待機系マシンとしての第２物理マシン２０は、稼働系マシンとしての第１物理マシン１０からのデータをコピーしているに過ぎない。このため、第２物理マシン２０では、ゲストＯＳは動作しておらず、第２物理マシン２０の物理ＣＰＵの使用率は低い。この場合、デフラグ、及びダーディページのコピー以外で、ミラー領域３９のメモリ（第２メモリ２６）がアクセスされることは、実質的に無い。よって、ページフォルトを発生させることなく、ミラー領域３９にコピーされたメモリデータを、第２メモリ２６において、自由に再配置することが可能である。そこで、本実施の形態では、待機系マシンとしての第２物理マシン２０における、ミラー領域３９のメモリデータを、再配置することによって、メモリの断片化を解消する。
【００３７】
[デフラグに関する動作の説明]
次に、本実施の形態におけるＦＴサーバ１の動作について、図３を用いて説明する。図３は、ＦＴサーバ１における、デフラグに関連する処理の流れを説明するためのフロー図である。また、以下の説明においては、適宜、図１〜図３を参照する。また、本実施の形態では、ＦＴサーバ１を動作させることによって、ＦＴサーバのデフラグ方法が実施される。よって、本実施の形態における、ＦＴサーバのデフラグ方法の説明は、以下のＦＴサーバ１の動作説明に代える。
【００３８】
本実施の形態では、図３に示すフローは、ＦＴサーバ１に異常が生じていない、通常時に実行されるものであり、かつ、所定時間毎に実行される。図３に示すように、本実施の形態では、まず、デフラグの実行条件が満たされているか否かを、第２デフラグ制御部２３が判定する（ステップＡ１）。
【００３９】
第２メモリ２６において、データの断片化の度合いが、しきい値未満であり、デフラグの実行条件が満たされていない場合（ステップＡ１でＮＯ）。第２デフラグ制御部２３は、第２メモリ２６のデフラグを実行しない。この場合、第２ＦＴ制御部２４は、ミラーコピーを行う（ステップＡ２）。すなわち、ＦＴ制御部３１は、仮想メモリ３７、および仮想ＨＤＤ３８のデータを、第２物理マシン２０のミラー領域３９にコピーする。この場合、コピーされるデータは、前回のミラーコピーが実行されて以降、更新または追加されたデータである。
【００４０】
一方、第２メモリ２６において、データの断片化の度合いが、前述したしきい値以上である場合、第２デフラグ制御部２３は、デフラグ実行条件が満たされていると判定する（ステップＡ１でＹＥＳ）。この場合、ＦＴ制御部３１は、仮想メモリ３７、および仮想ＨＤＤ３８からミラー領域３９（第２メモリ２６）へのデータのコピーの受付を停止させる（ステップＡ３）。
【００４１】
次に、第２デフラグ制御部２３は、第２メモリ２６に格納されているデータについて、第１物理マシン１０でアクセスされていた頻度を解析する（ステップＡ４）。第２デフラグ制御部２３は、第２メモリ２６に格納されているデータについてのアクセス頻度の解析が完了した後に、第２メモリ２６のデフラグを実行する（ステップＡ５）。すなわち、前述したように、第２デフラグ制御部２３は、第２メモリ２６に関して、ミラー領域３９内のデータについて、デフラグを実行する。この際、第２デフラグ制御部２３は、第２メモリ２６のデータについて、上記アクセス頻度に応じて、第２メモリ２６の所定の記憶領域へ、データをコピーする。
【００４２】
より具体的には、第２デフラグ制御部２３は、第２メモリ２６のデータのうち、上記アクセス頻度が相対的に高いデータを、第２メモリ２６のうち、アクセスコストが相対的に低い記憶領域にコピーする。また、第２デフラグ制御部２３は、第２メモリ２６のデータのうち、上記アクセス頻度が相対的に低いデータを、第２メモリ２６のうち、アクセスコストが相対的に高い記憶領域にコピーする。その後、して第２デフラグ制御部２３は、デフラグ作業によってコピーされる前のデータを、消去する。
【００４３】
第２ミラー領域３９のデフラグが完了した後、ＦＴ制御部３１は、仮想メモリ３７、および仮想ＨＤＤ３８のデータを、第２物理マシン２０のミラー領域３９にコピーする（ステップＡ６）。この場合、コピーされるデータは、前回のミラーコピーが実行されて以降に、更新または追加されたデータである。
【００４４】
この場合、第２ミラー領域３９へのミラーコピーが完了した後、ＦＴ制御部３１は、フェイルオーバーを実行するか否かを判定する（ステップＡ７）。たとえば、直近のフェイルオーバーからの時間が所定のしきい値よりも小さい場合、稼働系マシンとしての第１物理マシン１０の第１メモリ１６におけるデータの断片化の度合いは、小さいと考えられる。この場合には、ＦＴ制御部３１は、フェイルオーバーが不要であると判定し（ステップＡ７でＮＯ）、フェイルオーバーは行わない。
【００４５】
一方、直近のフェイルオーバーからの時間が、上記しきい値以上である場合、稼働系マシンとしての第１物理マシン１０の第１メモリ１６におけるデータの断片化の度合いは、大きいと考えられる。この場合、ＦＴ制御部３１は、フェイルオーバーが必要である（ステップＡ７でＹＥＳ）と判定する。この場合、ＦＴ制御部３１は、フェイルオーバーの実行を決定する（ステップＡ８）。これにより、ＦＴ制御部３１は、第１物理マシン１０を待機系マシンに変更し、第２物理マシン２０を稼働系マシンに変更する。この場合、第１仮想化部１５がシャットダウンされ、第２仮想化部２５が起動する。
【００４６】
上記のように、第２物理マシン２０が稼働系マシンに変更され、第１物理マシン１０が待機系マシンに変更された場合には、上記の説明において、第１記憶装置１２、第１ＣＰＵ１１、第１デフラグ制御部１３、第１ＦＴ制御部１４、および第１仮想化部１５を、それぞれ、第２記憶装置２２、第２ＣＰＵ２１、第２デフラグ制御部２３、第２ＦＴ制御部２４、および第２仮想化部２５に置き換えた構成が、実現する。
【００４７】
以上のように、本実施の形態では、稼働系マシンとしての第１物理マシン１０では、デフラグ作業は行われず、待機系マシンとしての第２物理マシン２０で、デフラグ作業が行われる。このため、処理速度の低下を招くことなく、データ配置の最適化を実現し得る。
【００４８】
また、本実施の形態では、待機系マシンとしての第２物理マシン２０は、デフラグの実行中には、稼働系マシンとしての第１物理マシン１０からのデータの受け入れを停止し、デフラグの実行後に、データを受け入れる。これにより、待機系マシンにおけるデフラグ作業を、より迅速に完了できる。
【００４９】
また、本実施の形態では、第２デフラグ制御部２３は、第２物理マシン２０にコピーされたデータについて、アクセス頻度に応じて、第２メモリ２６の所定の記憶領域へ、コピーする。より具体的には、第２デフラグ制御部２３は、上記のアクセスされていた頻度が相対的に高いデータを、第２メモリ２６のうち、アクセスコストが相対的に低い記憶領域にコピーする。また、第２デフラグ制御部２３は、上記のアクセスされていた頻度が相対的に低い前記データを、第２メモリ２６のうち、アクセスコストが相対的に高い記憶領域にコピーする。これにより、第２メモリ２６のうちの、ある特定の領域にアクセスが集中する現象を緩和できる。よって、第２メモリ２６において、データ配置のさらなる最適化を実現できる。
【００５０】
また、本実施の形態では、ＦＴ制御部３１は、デフラグ処理が実行された後に、フェイルオーバーを実施する。これにより、フェイルオーバー後の稼働系マシンとしての第２物理マシン２０の第２メモリ２６において、ゲストＯＳ３６のメモリの断片化が解消された状態で、当該ゲストＯＳ３６を稼働させることができる。よって、ゲストＯＳ３６の処理速度の低下を、解消することができる。
【００５１】
また、本実施の形態では、ＦＴ制御部３１は、稼働系マシンとしての第１物理マシン１０に構築された仮想マシン３３が保持するデータを、待機系マシンとしての第２物理マシン２０の第２記憶装置２２にコピーする。これにより、仮想マシンが構築された環境においても、メモリデータの配置の最適化を実現できる。
【００５２】
［プログラム］
本発明の実施の形態におけるプログラムは、２つのコンピュータに、第１物理マシン１０および第２物理マシン２０のうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する、ステップと、図３に示すステップＡ１〜Ａ８と、を実行させるプログラムであればよい。このプログラムを２つのコンピュータにインストールし、実行することによって、本実施の形態におけるＦＴサーバ１を実現することができる。
【００５３】
[変形例]
上記実施の形態の形態では、記憶装置１２、２２のうちのメモリ１６、２６におけるデータを再配置する構成について説明したけれども、この通りでなくてもよい。たとえば、記憶装置１２、２２のうちのＨＤＤ１７、２７について、データを再配置する構成について、本発明を適用してもよい。
【００５４】
また、待機系マシンのメモリのうち、デフラグによって、空き領域となった箇所の電源を切断する構成であってもよい。これにより、消費電力の低減を通じて、フォールトトレラントサーバの運用コストを低減することができる。
【００５５】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１８）によって表現することができるが、以下の記載に限定されるものではない。
【００５６】
（付記１）
第１物理マシンと、
第２物理マシンと、
前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定する場合に、他方を待機系マシンとして設定し、かつ、前記一方を待機系マシンに変更する場合に、前記他方を稼働系マシンに変更する、フォールトトレラント制御部と、
前記待機系マシンに備えられた記憶装置にデフラグを実行させる、デフラグ制御部と、
を備えていることを特徴とする、フォールトトレラントサーバ。
【００５７】
（付記２）
前記待機系マシンは、前記デフラグの実行中には、前記稼働系マシンに備えられた前記記憶装置からコピーされるデータの受け入れを停止し、前記デフラグの実行後に、前記データを受け入れる、付記１に記載のフォールトトレラントサーバ。
【００５８】
（付記３）
前記デフラグ制御部は、前記稼働系マシンに備えられた記憶装置から、前記待機系マシンに備えられた前記記憶装置へコピーされたデータについて、前記稼働系マシンにおいてアクセスされていた頻度を解析し、前記アクセスされていた頻度に応じて、前記待機系マシンの前記記憶装置の所定の記憶領域へ、前記データをコピーする、付記１または付記２に記載のフォールトトレラントサーバ。
【００５９】
（付記４）
前記デフラグ制御部は、
前記アクセスされていた頻度が相対的に高い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に低い記憶領域にコピーし、
前記アクセスされていた頻度が相対的に低い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に高い記憶領域にコピーする、付記３に記載のフォールトトレラントサーバ。
【００６０】
（付記５）
前記フォールトトレラント制御部は、前記デフラグの実行後に、前記第１物理マシンおよび前記第２物理マシンのうちの前記一方を待機系マシンに設定するとともに、前記他方を稼働系マシンに設定する、付記１〜付記４のいずれか１項に記載のフォールトトレラントサーバ。
【００６１】
（付記６）
前記稼働系マシンに仮想マシンが構築され、
前記フォールトトレラント制御部は、前記稼働系マシンに構築された前記仮想マシンが保持するデータを、前記待機系マシンの前記記憶装置にコピーする、付記１〜付記５のいずれか１項に記載のフォールトトレラントサーバ。
【００６２】
（付記７）
第１物理マシンと、
第２物理マシンと、
を備えるフォールトトレラントサーバにおけるデフラグ方法であって、
（ａ）前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する、ステップと、
（ｂ）前記待機系マシンに備えられた記憶装置にデフラグを実行させる、ステップと、
を含むことを特徴とする、デフラグ方法。
【００６３】
（付記８）
前記待機系マシンは、前記デフラグの実行中には、前記稼働系マシンに備えられた前記記憶装置からコピーされるデータの受け入れを停止し、前記デフラグの実行後に、前記データを受け入れる、付記７に記載のデフラグ方法。
【００６４】
（付記９）
前記（ｂ）のステップでは、前記稼働系マシンに備えられた記憶装置から、前記待機系マシンに備えられた前記記憶装置へコピーされたデータについて、前記稼働系マシンにおいてアクセスされていた頻度を解析し、前記アクセスされていた頻度に応じて、前記待機系マシンの前記記憶装置の所定の記憶領域へ、前記データをコピーする、付記７または付記８に記載のデフラグ方法。
【００６５】
（付記１０）
前記（ｂ）のステップでは、
前記アクセスされていた頻度が相対的に高い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に低い記憶領域にコピーし、
前記アクセスされていた頻度が相対的に低い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に高い記憶領域にコピーする、付記９に記載のデフラグ方法。
【００６６】
（付記１１）
（ｃ）前記デフラグの実行後に、前記第１物理マシンおよび前記第２物理マシンのうちの前記一方を待機系マシンに設定するとともに、前記他方を稼働系マシンに設定する、ステップをさらに含んでいる、付記７〜付記１０のいずれか１項に記載のデフラグ方法。
【００６７】
（付記１２）
（ｄ）前記稼働系マシンに構築された仮想マシンが保持するデータを、前記待機系マシンの前記記憶装置にコピーする、ステップ、をさらに含んでいる、付記７〜付記１１のいずれか１項に記載のデフラグ方法。
【００６８】
（付記１３）
第１物理マシンと、
第２物理マシンと、
を備えるフォールトトレラントサーバとしてのコンピュータにデフラグを実行させるためのプログラムであって、
前記コンピュータに、
（ａ）前記第１物理マシンおよび前記第２物理マシンのうちの一方を稼働系マシンとして設定し、他方を待機系マシンとして設定する、ステップと、
（ｂ）前記待機系マシンに備えられた記憶装置にデフラグを実行させる、ステップと、
を実行させる、プログラム。
【００６９】
（付記１４）
前記待機系マシンは、前記デフラグの実行中には、前記稼働系マシンに備えられた前記記憶装置からコピーされるデータの受け入れを停止し、前記デフラグの実行後に、前記データを受け入れる、付記１３に記載のプログラム。
【００７０】
（付記１５）
前記（ｂ）のステップでは、前記稼働系マシンに備えられた記憶装置から、前記待機系マシンに備えられた前記記憶装置へコピーされたデータについて、前記稼働系マシンにおいてアクセスされていた頻度を解析し、前記アクセスされていた頻度に応じて、前記待機系マシンの前記記憶装置の所定の記憶領域へ、前記データをコピーする、付記１３または付記１４に記載のプログラム。
【００７１】
（付記１６）
前記（ｂ）のステップでは、
前記アクセスされていた頻度が相対的に高い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に低い記憶領域にコピーし、
前記アクセスされていた頻度が相対的に低い前記データを、前記待機系マシンの前記記憶装置のうち、アクセスコストが相対的に高い記憶領域にコピーする、付記１５に記載のプログラム。
【００７２】
（付記１７）
（ｃ）前記デフラグの実行後に、前記第１物理マシンおよび前記第２物理マシンのうちの前記一方を待機系マシンに設定するとともに、前記他方を稼働系マシンに設定する、ステップをさらに含んでいる、付記１３〜付記１６のいずれか１項に記載のプログラム。
【００７３】
（付記１８）
（ｄ）前記稼働系マシンに構築された仮想マシンが保持するデータを、前記待機系マシンの前記記憶装置にコピーする、ステップ、をさらに含んでいる、付記１３〜付記１７のいずれか１項に記載のプログラム。
【産業上の利用可能性】
【００７４】
本発明は、二重化されたサーバシステムを有するフォールトトレラントサーバ、デフラグ方法、およびプログラムプログラムに適用することができる。
【符号の説明】
【００７５】
１  フォールトトレラントサーバ。
１０  第１物理マシン
２０  第２物理マシン
３１  フォールトトレラント制御部
３２  デフラグ制御部
３３  仮想マシン
【図１】
2013210930.tif 000003
【図２】
2013210930.tif 000004
【図３】
2013210930.tif 000005