(57)【特許請求の範囲】
【請求項１】
第１のサーバ、第２のサーバおよび情報処理装置を含む情報処理システムであって、
前記情報処理装置は、
前記第１のサーバ上で稼働するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を前記第２のサーバ上で稼働させる処理を管理する管理部を備え、
前記第１のサーバは、
前記ＯＳを起動する起動用ＯＳを稼働させるための物理メモリ領域を確保して前記物理メモリ領域のアドレスを取得するドライバと、
前記取得されたアドレスを前記管理部に通知する通信部と、
を備え、
前記管理部は、前記第１のサーバまたは前記第２のサーバの前記取得されたアドレスにおいて前記起動用ＯＳを稼働させ、前記ＯＳを前記第１のサーバから前記第２のサーバに転送して前記第２のサーバ上で稼働させる、
情報処理システム。
【請求項２】
前記管理部は、前記第２のサーバが物理サーバである場合に、前記第２のサーバに前記取得されたアドレスを通知し、前記第２のサーバで、前記通知されたアドレスにおいて、前記起動用ＯＳを稼働させる、
請求項１に記載の情報処理システム。
【請求項３】
前記管理部は、前記第２のサーバの物理メモリ領域の構成情報を前記第１のサーバに通知し、前記第１のサーバは、前記第１のサーバ上で稼働する前記ＯＳの制御により、前記構成情報に応じて前記第１のサーバにおける物理メモリ領域の構成を変更する、
請求項２に記載の情報処理システム。
【請求項４】
前記管理部は、前記第１のサーバから前記第２のサーバに転送された前記ＯＳに対する接続情報を変更する、
請求項２または３に記載の情報処理システム。
【請求項５】
前記管理部は、前記第１のサーバが物理サーバである場合に、前記第１のサーバの前記取得されたアドレスにおいて、前記起動用ＯＳを稼働させ、前記第１のサーバで稼働する前記ＯＳを前記起動用ＯＳ上で起動させる、
請求項１から４のいずれか一項に記載の情報処理システム。
【請求項６】
前記起動用ＯＳは、前記第１のサーバ上で稼働する前記ＯＳのプロセッサの制御情報を取得し、前記制御情報に基づいて、前記第１のサーバ上で前記ＯＳを再稼働させる、
請求項５に記載の情報処理システム。
【請求項７】
コンピュータに、
第１のサーバ上で稼働するＯＳを起動する起動用ＯＳを稼働させるための物理メモリ領域を確保して前記物理メモリ領域のアドレスを取得し、
前記第１のサーバ、または前記第１のサーバから転送される前記ＯＳを稼働させる第２のサーバの前記取得されたアドレスにおいて前記起動用ＯＳを稼働させ、
前記ＯＳを前記第１のサーバから前記第２のサーバに転送して前記第２のサーバ上で稼働させる、
ことを実行させるための情報処理プログラム。
【請求項８】
前記第２のサーバが物理サーバである場合に、前記第２のサーバに前記取得されたアドレスを通知し、前記第２のサーバで、前記通知されたアドレスにおいて、前記起動用ＯＳ
を稼働させる、
請求項７に記載の情報処理プログラム。
【請求項９】
前記第１のサーバが物理サーバである場合に、前記第１のサーバの前記取得されたアドレスにおいて、前記起動用ＯＳを稼働させ、前記第１のサーバで稼働する前記ＯＳを前記起動用ＯＳ上で起動させる、
請求項７または８に記載の情報処理プログラム。
【請求項１０】
第１のサーバ上で稼働するＯＳを第２のサーバ上で稼働させる処理を管理する管理部を備え、
前記管理部は、前記第１のサーバに、前記ＯＳを起動する起動用ＯＳを稼働させるための物理メモリ領域を確保して前記物理メモリ領域のアドレスを取得するドライバおよび前記取得されたアドレスを前記管理部に通知する通信部を配置し、前記第１のサーバまたは前記第２のサーバの前記取得されたアドレスにおいて前記起動用ＯＳを稼働させ、前記ＯＳを前記第１のサーバから前記第２のサーバに転送して前記第２のサーバ上で稼働させる、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
運用中のサーバ上で稼働するオペレーティングシステム（Operating System、ＯＳ）を停止することなく、他のサーバで稼働させること（以下、活性移行ともいう）ができれば、サーバの運用管理は簡易化される。
【０００３】
サーバの活性移行は、仮想化された複数の異なるＯＳの実行を制御するハイパーバイザ上の仮想サーバ間では可能である。仮想サーバは、ハイパーバイザを介してＣＰＵに命令を実行させており、移行元と移行先のハイパーバイザ間の連携により、プロセッサの制御情報の取得や移行先での再稼働が可能となるからである。
【０００４】
一方、消費電力を削減するため、複数の物理サーバが、１台の仮想サーバに移行され統合される場合がある。また、省電力ＣＰＵの登場により、サーバは、負荷状況に比例した消費電力で稼働されるようになってきている。このため、省電力ＣＰＵを搭載した新規サーバへの移行の増加が見込まれる。さらに、省電力ＣＰＵを搭載するサーバでは、消費電力の無駄を回避するために、１台のサーバ上で複数の仮想サーバを稼働させなくてもよく、仮想サーバから物理サーバへの移行の増加も見込まれる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１４５９３１号公報
【特許文献２】特開２０１３−２０５９４６号公報
【特許文献３】特開２０１２−７４０９０号公報
【特許文献４】特開２０１２−２３４５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、仮想サーバと物理サーバ間、または物理サーバ間でサーバを移行する場合、移行元のサーバは、一時停止され、移行先のサーバで復旧等の作業が行われた後に移行される。物理サーバを含むサーバ間の移行は、仮想サーバ間での移行と異なり、移行元のサーバの稼働中に、移行先で移行元と同一の物理メモリ領域を確保し、ＯＳの再稼働を指示する仕組みを持たないからである。
【０００７】
また、電源の遮断によるサーバの停止の他、サーバを休止状態として移行することが考えられる。この場合、メモリ状態を移行するために、サーバを休止状態とする前に、メインメモリが保持している内容をハードディスクに書込み、移行先での再開時にはハードディスクからメモリの内容を読み出し、電源を切る直前の状態に戻す処理に時間がかかる。
【０００８】
本発明の一態様は、仮想サーバと物理サーバ間、または物理サーバ間における運用中の移行を可能とする情報処理システム、情報処理プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の態様の一つは、情報処理システムによって例示される。情報処理システムは、第１のサーバ、第２のサーバおよび情報処理装置を含む。情報処理装置は、第１のサーバ
上で稼働するＯＳを第２のサーバ上で稼働させる処理を管理する管理部を備え、第１のサーバは、ＯＳを起動する起動用ＯＳを稼働させるための物理メモリ領域を確保して該物理メモリ領域のアドレスを取得するドライバと、該取得されたアドレスを管理部に通知する通信部とを備え、管理部は、第１のサーバまたは第２のサーバの該取得されたアドレスにおいて起動用ＯＳを稼働させ、ＯＳを第１のサーバから第２のサーバに転送して第２のサーバ上で稼働させる。
【発明の効果】
【００１０】
開示の情報処理システム、情報処理プログラムおよび情報処理装置によれば、仮想サーバと物理サーバ間、または物理サーバ間における運用中の移行を可能とすることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態における情報処理システムのシステム構成の一例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】プロセッサおよび物理メモリのハードウェア構成の一例を示す図である。
【図４】ハードウェア仮想化により設定される特権レベルの一例を示す図である。
【図５】第１実施形態における物理メモリ領域確保の動作例を示す図である。
【図６】サーバＯＳでの物理メモリ領域確保の処理の一例のフローチャートである。
【図７】メモリ空間上における起動用ＯＳやドライバ等の配置例を示す図である。
【図８】移行先サーバでの起動用ＯＳ稼働の動作例を示す図である。
【図９】移行先サーバでの起動用ＯＳ稼働の処理の一例のフローチャートである。
【図１０】移行先サーバでの起動用ＯＳ稼働の処理の具体例のフローチャートである。
【図１１】移行元の仮想サーバのメモリ構成変更の動作例を示す図である。
【図１２】Advanced Configuration and Power Interface（ＡＣＰＩ）によるメモリ構成変更の動作例を示す図である。
【図１３】第１実施形態における移行先サーバでのサーバＯＳ起動の動作例を示す図である。
【図１４】第２実施形態における情報処理システムのシステム構成の一例を示す図である。
【図１５】第２実施形態における物理メモリ領域確保の動作例を示す図である。
【図１６】移行元サーバでの起動用ＯＳ稼働の動作例を示す図である。
【図１７】移行元サーバでのサーバＯＳ起動の動作例を示す図である。
【図１８】物理サーバから仮想サーバへのサーバＯＳの移行の動作例を示す図である。
【図１９】第３実施形態における情報処理システムのシステム構成の一例を示す図である。
【図２０】第３実施形態における物理サーバ間での移行処理の一例のフローチャートである。
【図２１】第３実施形態における移行先サーバでのサーバＯＳ起動の動作例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１３】
＜第１実施形態＞
第１実施形態は、仮想サーバから物理サーバへの活性移行を説明する。情報処理装置は
、移行元の仮想サーバにおいて、起動用ＯＳをロードするための物理メモリ領域を動的に確保する。情報処理装置は、移行先の物理サーバにおいて、起動用ＯＳを稼働させ、仮想サーバから物理サーバに転送されたＯＳを起動する。
【００１４】
＜システム構成＞
図１は、第１実施形態における情報処理システム１のシステム構成の一例を示す図である。情報処理システム１は、情報処理装置１０、移行元サーバ２０および移行先サーバ２１を含む。第１実施形態において、移行元サーバ２０は仮想サーバであり、移行先サーバ２１は物理サーバである。
【００１５】
情報処理装置１０は、管理マネージャ２を備える。管理マネージャ２は、移行元サーバ２０から移行先サーバ２１への活性移行の処理を管理する。管理マネージャ２は、移行対象のサーバＯＳ  ４上に、物理メモリ領域を確保する。管理マネージャ２は、確保した物理メモリ領域で、起動用ＯＳを稼働させる。管理マネージャ２は、移行先サーバ２１に移行したサーバＯＳ  ４を起動する。
【００１６】
移行元サーバ２０は、ハイパーバイザ３を備える。移行対象のサーバＯＳ  ４は、ハイパーバイザ３上で稼働する。サーバＯＳ  ４は、エージェント５およびドライバ６を含む。移行元サーバ２０は、第１のサーバの一例である。
【００１７】
ハイパーバイザ３は、仮想サーバで稼働する複数の仮想化されたＯＳを管理するためのプログラムである。図１の例では、１つのサーバＯＳ  ４が稼働している。ハイパーバイザ３は、主に２つの方法で仮想化を実現する。１つめは、仮想サーバが発行するシステムコール等の特権レベルの命令を、ハイパーバイザ３が受け取って変換し、Central Processing Unit（ＣＰＵ）に実行させる方法である。２つめは、仮想サーバ側で修正された特
権レベルの命令をハイパーバイザ３がＣＰＵに受け渡して実行させる方法である。
【００１８】
ハイパーバイザ３は、移行対象のサーバＯＳ  ４のメモリイメージの転送処理（以下、マイグレーションともいう）を行う。また、ハイパーバイザ３は、サーバＯＳ  ４の起動を制御する。
【００１９】
サーバＯＳ  ４は、仮想サーバから物理サーバへの移行対象のＯＳである。具体的には、サーバＯＳ  ４のメモリイメージが、移行元サーバ２０から移行先サーバ２１に転送される。サーバＯＳ  ４上のエージェント５およびドライバ６は、管理マネージャ２により配置されてもよく、ユーザの操作により配置されてもよい。サーバＯＳ  ４は、第１のサーバ上で稼働するＯＳの一例である。
【００２０】
エージェント５は、管理マネージャ２との通信を行う。エージェント５は、ＯＳ上で動作するアプリケーションが使用するメモリ領域であるユーザ空間上に配置される。移行元サーバ２０において、エージェント５は、管理マネージャ２の指示により、ドライバ６を介して物理メモリ領域を確保し、確保した領域のアドレスを管理マネージャ２に通知する。エージェント５は、通信部の一例である。
【００２１】
ドライバ６は、サーバＯＳ  ４の移行処理に用いられるドライバであり、物理メモリにアクセスし、物理メモリ領域を確保する機能を有する。また、ドライバ６は、エージェント５との通信インタフェースを有する。ドライバ６は、ＯＳの基幹部分であるカーネルが使用するメモリ領域であるカーネル空間上に配置される。移行元サーバ２０のドライバ６は、管理マネージャ２の指示を受けたエージェント５により、サーバＯＳ  ４にインストールされてもよい。また、ドライバ６は、ユーザの操作により、サーバＯＳ  ４にインストールされてもよい。ドライバ６は、エージェント５の指示により、物理メモリ領域を確
保し、確保した物理メモリ領域のアドレスをエージェント５に通知する。
【００２２】
移行先サーバ２１は、起動用ＯＳ  ７を備える。移行先サーバ２１に転送されたサーバＯＳ  ４は、エージェント５およびドライバ６を含む。移行先サーバ２１は、第２のサーバの一例である。
【００２３】
起動用ＯＳ  ７は、管理マネージャ２により稼働される。起動用ＯＳ  ７は、移行元サーバ２０から移行先サーバ２１へのサーバＯＳ  ４およびＣＰＵ制御情報の転送を受ける。起動用ＯＳ  ７は、サーバＯＳ  ４の起動を制御する。
【００２４】
＜ハードウェア構成＞
図２は、情報処理装置１０のハードウェア構成の一例を示す図である。情報処理装置１０は、プロセッサ１１、主記憶装置１２、補助記憶装置１３、入力装置１４、出力装置１５、ネットワークインタフェース１６を備える。また、これらはバス１７により互いに接続される。
【００２５】
プロセッサ１１は、補助記憶装置１３に保持されたＯＳや様々なコンピュータプログラムを主記憶装置１２にロードして実行することによって、様々な処理を実行する。ただし、コンピュータプログラムによる処理の一部がハードウェア回路により実行されてもよい。プロセッサ１１は、例えば、Central Processing Unit（ＣＰＵ）や、Digital Signal Processor（ＤＳＰ）である。
【００２６】
プロセッサ１１は、コンピュータプログラムにより、管理マネージャ２の処理を実行する。ただし、管理マネージャ２の処理の一部がハードウェア回路により実行されてもよい。
【００２７】
主記憶装置１２は、プロセッサ１１に、補助記憶装置１３に格納されているプログラムをロードするための記憶領域、及びプログラムを実行するための作業領域を提供する。また、主記憶装置１２は、データを保持するためのバッファとして用いられる。主記憶装置１２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）等の半導体メモリである。
【００２８】
補助記憶装置１３は、様々なプログラムや、各プログラムの実行に際してプロセッサ１１が使用するデータを格納する。補助記憶装置１３は、例えば、Erasable Programmable ROM（ＥＰＲＯＭ）、又はハードディスクドライブ（Hard Disk Drive、ＨＤＤ）等の不揮発性のメモリである。補助記憶装置１３は、例えば、オペレーティングシステム（Operating System、ＯＳ）、情報処理プログラム、その他様々なアプリケーションプログラムを保持する。
【００２９】
入力装置１４は、ユーザからの操作入力を受け付ける。例えば、入力装置１４は、タッチパッド、マウス、タッチパネル等のポインティングデバイス、キーボード、操作ボタン、遠隔操作機からの信号を受信する回路等である。出力装置１５は、例えば、液晶ディスプレイ（Liquid Crystal Display、ＬＣＤ）である。
【００３０】
ネットワークインタフェース１６は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース１６は、有線のネットワーク、または無線のネットワークと接続する。ネットワークインタフェース１６は、例えば、Network Interface Card（ＮＩＣ）、無線Local Area Network（ＬＡＮ）カード等である。ネットワークインタフェース１６で受信されたデータ等は、プロセッサ１１に出力される。
【００３１】
例えば、情報処理装置１０では、プロセッサ１１が、補助記憶装置１３に保持される情報処理プログラムを主記憶装置１２にロードして実行する。なお、情報処理装置１０のハードウェア構成は一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略、置換または追加が可能である。
【００３２】
＜ハードウェア仮想化＞
図３は、プロセッサ１１および物理メモリ１２ａのハードウェア構成の一例を示す図である。物理メモリ１２ａは、主記憶装置１２の一例である。図３は、ハードウェア仮想化技術の一つであるVirtualization Technology（ＶＴ−ｘ）のVirtual Machine eXtensions（ＶＭＸ）モードによる仮想化の例を示す。
【００３３】
ＯＳを仮想化する技術として、ＯＳ自体の特権レベルを下げることで、仮想化されたゲストＯＳのカーネル中の特権命令の実行を制限する方法（ソフトウェアによる仮想化）が知られている。ソフトウェアによる仮想化では、機械命令の変換やゲストＯＳ側の変更が行われる。このため、仮想化される場合と、物理サーバで稼働する場合とで、ＯＳ上の機械命令の入れ替えが発生する。
【００３４】
一方で、ＶＴ−ｘによるハードウェア仮想化技術では、プロセッサの動作モードを切り替えることで、ゲストＯＳを変更することなく、ゲストＯＳの特権命令の実行を制限することができる。
【００３５】
実施形態においてサーバＯＳ  ４を仮想化する際、サーバＯＳ  ４は、ソフトウェアによる仮想化の技術により仮想化されてもよい。ソフトウェアによる仮想化では、ＯＳが変更されることになるため、本実施形態では、サーバＯＳ  ４は、ハードウェアにより仮想化されるものとして説明される。
【００３６】
ＶＴ−ｘは、Virtual Machine Control Structure（ＶＭＣＳ）と呼ばれるデータ構造
により、コンテキストや動作条件などのＣＰＵ制御情報を定義する。サーバ上で動作する複数のＯＳは、ＶＭゲスト（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅゲスト）、ゲストまたはゲストＯＳとも称される。複数のゲストを効率的に実行するため、ＶＭＣＳ構造のＣＰＵ制御情報は、コア毎に設定されてもよい。
【００３７】
プロセッサ１１は、稼働中ＶＭＣＳ格納領域１１１を含む。稼働中ＶＭＣＳ格納領域１１１は、稼働中のＶＭゲストのＣＰＵ制御情報を格納する。物理メモリ１２ａは、稼働中ＶＭゲスト１２１および停止中ＶＭゲスト１２２の領域を含む。また、物理メモリ１２ａは、ハイパーバイザ専用領域１２３を含む。ハイパーバイザ専用領域１２３は、停止中ＶＭＣＳ格納領域１１２を含む。
【００３８】
稼働中ＶＭゲスト１２１は、ハイパーバイザ３または起動用ＯＳ  ７によりハードウェア仮想化される。なお、稼働中ＶＭゲスト１２１は、実施形態におけるサーバＯＳ  ４に対応する。サーバＯＳ  ４は、図３における稼働中ＶＭゲスト１２１と同様にハードウェア仮想化される。
【００３９】
まず、稼働中ＶＭＣＳ格納領域１１１に格納された稼働中ＶＭゲスト１２１のＣＰＵ制御情報は、ハイパーバイザ専用領域１２３内の停止中ＶＭＣＳ格納領域１１２に書き込まれる。次に、物理メモリ領域が確保され、停止中ＶＭゲスト１２２が起動される。そして、稼働中ＶＭゲスト１２１は停止される。制御が稼働中ＶＭＣＳ格納領域１１１から停止中ＶＭＣＳ格納領域１１２に切り替えられ、停止中ＶＭゲスト１２２は稼働される。
【００４０】
図４は、ハードウェア仮想化により設定される特権レベルの一例を示す図である。サー
バＯＳ  ４は、ドライバ６および起動用ＯＳ  ７を配置する。矢印Ａ１は、サーバＯＳ  ４の論理メモリアドレス空間を示す。矢印Ａ２は、ハイパーバイザ３の論理メモリアドレス空間を示す。矢印Ａ３は、物理メモリのアドレス空間を示す。
【００４１】
ハイパーバイザ３の論理メモリアドレス空間は、特権レベルによってＢ１とＢ２の範囲に分けられる。Ｂ１は、起動用ＯＳ  ７の領域に対応し、ＶＭＸ  ＲＯＯＴの特権レベルが設定される。Ｂ２は、ＶＭＸ  ＮＯＮ−ＲＯＯＴの特権レベルが設定される。
【００４２】
ハードウェア仮想化を動作させるＶＭＸＯＮ命令が実行されると、サーバＯＳ  ４は、特権レベルがＶＭＸ  ＲＯＯＴの領域Ｂ１、すなわち、起動用ＯＳ  ７の領域にはアクセスできなくなる。これにより、起動用ＯＳ  ７の領域内の権限を制限して実行される機械命令は保護され、サーバＯＳ  ４は、ハイパーバイザ３上での稼働が保証される。
【００４３】
サーバＯＳ  ４の単体での稼働時と、ゲストとしての稼働時とで、メモリアドレスの一貫性を保つため、物理メモリアドレスとハイパーバイザ３の論理メモリアドレスとの間では、アドレス変換は行わない。なお、サーバＯＳ  ４の論理メモリアドレスとハイパーバイザ３の論理メモリアドレスとの間では、アドレス変換は、ハードウェア仮想化前と同様に行う。
【００４４】
＜第１実施形態の処理例＞
管理マネージャ２は、（１−１）移行元での物理メモリ領域の確保、（１−２）移行先での起動用ＯＳ稼働、（１−３）メモリ領域の再構成、（１−４）移行先でのサーバＯＳ起動により、仮想サーバである移行元サーバ２０から物理サーバである移行先サーバ２１への活性移行を行う。
【００４５】
起動用ＯＳ  ７のための物理メモリ領域は、サーバＯＳ  ４の起動時に物理メモリ領域が確保される。仮想サーバから物理サーバへの活性移行において、稼働中のサーバＯＳ  ４を移行先の物理サーバで再稼働させるためには、起動用ＯＳ  ７は、移行元での物理メモリ領域と同じアドレスにロードすることが望ましい。管理マネージャ２は、エージェント５およびドライバ６を介して移行元サーバ２０において物理メモリ領域を確保し、確保した物理メモリ領域のアドレスを移行先サーバ２１の起動用ＯＳ  ７に通知する。起動用ＯＳ  ７は、移行先サーバ２１において、確保した物理メモリ領域のアドレスで稼働される。
【００４６】
（１−１）移行元での物理メモリ領域確保
図５は、第１実施形態における物理メモリ領域確保の動作例を示す図である。サーバＯＳ  ４は、ハイパーバイザ３上で稼働する。管理マネージャ２は、移行元サーバ２０にアクセスし、サーバＯＳ  ４上のファイルシステムに、エージェント５およびドライバ６を配置する（Ｓ１）。エージェント５は、サーバＯＳ  ４のユーザ空間に配置される。ドライバ６は、サーバＯＳ  ４のカーネル空間に配置される。
【００４７】
管理マネージャ２は、サーバＯＳ  ４に配置するエージェント５およびドライバ６を、補助記憶装置１３から取得することができる。また、管理マネージャ２は、エージェント５およびドライバ６を、ネットワークインタフェース１６を経由して外部から取得してもよい。
【００４８】
管理マネージャ２は、エージェント５に対して物理メモリ領域の確保を指示する。エージェント５は、ドライバ６をサーバＯＳ  ４にインストールし、ドライバ６に対して物理メモリ領域の確保を指示する（Ｓ２）。
【００４９】
ドライバ６は、図５において斜線で示される物理メモリ領域１２ｂを確保する（Ｓ３）。ドライバ６は、確保した物理メモリ領域１２ｂのアドレスをエージェント５に通知する。エージェント５は、通知されたアドレスを管理マネージャ２に通知する（Ｓ４）。
【００５０】
図６は、サーバＯＳ  ４での物理メモリ領域確保の処理の一例のフローチャートである。物理メモリ領域確保の処理は、仮想サーバから物理サーバへの活性移行において、起動用ＯＳ  ７の稼働前に、管理マネージャ２の指示により開始される。なお、図６に示される処理は、実行主体はプロセッサ１１であるが、管理マネージャ２を動作主体として説明される。
【００５１】
ＯＰ１１では、管理マネージャ２は、サーバＯＳ  ４上のファイルシステムに、エージェント５およびドライバ６を配置する。次に、処理がＯＰ１２に進む。ＯＰ１２では、管理マネージャ２は、エージェント５を通じて、ドライバ６に対し物理メモリの確保を指示する。移行元における物理メモリ領域の確保は、移行先で移行元と同じ物理メモリ領域を確保し、移行元と移行先との物理メモリの状態が同一になるようにするためである。次に、処理がＯＰ１３に進む。ＯＰ１３では、管理マネージャ２は、ドライバ６が確保した物理メモリ領域のアドレスを、エージェント５を経由して取得する。また、管理マネージャ２は、プロセッサ１１のメモリモードも取得する。メモリモードは、プロセッサ１１の性能や動作に関わる各種パラメータである。その後、図６に示される処理は終了する。
【００５２】
図７は、メモリ空間上における起動用ＯＳ  ７やドライバ６等の配置例を示す図である。図７は、論理アドレスと物理アドレス間のアドレス変換を説明する。サーバＯＳ  ４は、論理メモリアドレスのうちカーネル空間として設定された領域に、ドライバ６および起動用ＯＳ  ７を配置する。矢印Ａ１は、サーバＯＳ  ４の論理メモリアドレス空間を示す。矢印Ａ３は、物理メモリのアドレス空間を示す。
【００５３】
ドライバ６は、物理メモリ領域を確保すると、サーバＯＳ  ４によるアドレス変換を経て、起動用ＯＳが配置されるアドレスを取得する。物理アドレスと論理アドレスは、メモリ空間をページ単位で管理するページング方式、または情報の属性などによって分類されたセグメント単位で管理するセグメント方式により変換される。
【００５４】
なお、各方式に応じて、論理アドレス上で特権レベルが設定される。ページング方式は、ページごとに特権の有無を設定する。セグメント方式は、セグメントごとにセキュリティが高い方から順にリング０からリング３の特権レベルを設定する。
【００５５】
（１−２）移行先での起動用ＯＳ稼働
図８は、移行先サーバ２１での起動用ＯＳ稼働の動作例を示す図である。図８において、移行先サーバ２１は物理サーバである。起動用ＯＳ  ７は、管理マネージャ２の指示により、図８に示される動作例の処理を行う。
【００５６】
起動用ＯＳ  ７は、移行先サーバ２１の物理メモリ１２ａ上の初期起動域１２ｃで立ち上げられる（Ｓ１１）。起動用ＯＳ  ７は、管理マネージャ２が図６のＯＰ１３において、物理メモリ領域のアドレスと共に取得したメモリモードに移行する。
【００５７】
起動用ＯＳ  ７は、移行元サーバ２０のサーバＯＳ  ４上で確保した物理メモリ領域のアドレスを、管理マネージャ２から取得する（Ｓ１２）。取得した物理メモリ領域のアドレスは、移行先サーバ２１における起動用ＯＳ稼働域１２ｂのアドレスとして使用される。起動用ＯＳ  ７は、物理メモリ１２ａ上の初期起動域１２ｃから起動用ＯＳ稼働域１２ｂに移動する（Ｓ１３）。Ｓ１２、Ｓ１３の処理によって、移行元サーバ２０で確保されている物理メモリのアドレスで指定される移行先サーバ２１の物理メモリで、起動用ＯＳ
７が稼働される。その結果、移行元サーバ２０と移行先サーバ２１の物理メモリの確保状態が一致した状態で、移行先サーバ２１において起動用ＯＳ  ７が稼働される。
【００５８】
起動用ＯＳ  ７は、移行元サーバ２０の接続情報を、管理マネージャ２から取得する（Ｓ１４）。接続情報は、サーバＯＳ  ４のInternet Protocol（ＩＰ）アドレスや公開鍵
データ等の識別情報である。移行先サーバ２１は、これらの接続情報を用いて、移行元サーバ２０からの接続を許可する。起動用ＯＳ  ７は、起動用ＯＳ稼働域１２ｃにおいて稼働する。
【００５９】
図９は、移行先サーバ２１での起動用ＯＳ稼働の処理の一例のフローチャートである。起動用ＯＳ稼働の処理は、仮想サーバから物理サーバへの活性移行において、起動用ＯＳ
７のための物理メモリ領域が確保された後、管理マネージャ２の指示により開始される。なお、図９に示される処理は、実行主体はプロセッサ１１であるが、起動用ＯＳ  ７を動作主体として説明される。
【００６０】
ＯＰ２１では、起動用ＯＳ  ７は、移行先サーバ２１で立ち上げられる。次に、処理がＯＰ２２に進む。ＯＰ２２では、起動用ＯＳ  ７は、管理マネージャ２から取得した移行元サーバ２０でのメモリモードに移行する。次に、処理がＯＰ２３に進む。
【００６１】
ＯＰ２３では、起動用ＯＳ  ７は、管理マネージャ２から、確保した物理メモリ領域のアドレスを取得する。次に、処理がＯＰ２４に進む。ＯＰ２４では、起動用ＯＳ  ７は、取得したアドレスの物理メモリ領域に移動する。次に、処理がＯＰ２５に進む。
【００６２】
ＯＰ２５では、起動用ＯＳ  ７は、管理マネージャ２から、移行元サーバ２０の接続情報を取得する。移行先サーバ２１は、取得した接続情報を用いて、移行元サーバ２０からの接続を許可する。接続の許可により、移行元サーバ２０は、サーバＯＳのメモリイメージやプロセッサ１１の制御情報を移行先サーバ２１に転送することができる。次に、処理がＯＰ２６に進む。ＯＰ２６では、起動用ＯＳ  ７は、移動先のアドレスで稼働する。その後、図９に示される処理は終了する。
【００６３】
図１０は、移行先サーバでの起動用ＯＳ稼働の処理の具体例のフローチャートである。すなわち、図１０は、図９に示される処理を具体化した例を示す。起動用ＯＳ稼働の処理は、仮想サーバから物理サーバへの活性移行において、起動用ＯＳ  ７のための物理メモリ領域が確保された後、管理マネージャ２の指示により開始される。なお、図１０に示される処理は、実行主体はプロセッサ１１であるが、起動用ＯＳ  ７を動作主体として説明される。
【００６４】
ＯＰ３１では、起動用ＯＳ  ７は、移行先サーバ２１で立ち上げられる。次に、処理がＯＰ３２に進む。ＯＰ３２では、起動用ＯＳ  ７は、実行コードの物理メモリ配置をExecutable and Linking Format（ＥＬＦ）書式により示される情報で確認する。具体的には
、起動用ＯＳ  ７は、物理メモリに展開されているＥＬＦ書式のＨｅａｄｅｒの物理メモリでのアドレスを取得する。取得したアドレスは、移行先サーバ２１で立ち上げられた起動ＯＳ  ７の現行のアドレス（図８の初期起動域１２ｃのアドレス）である。次に、処理がＯＰ３３に進む。
【００６５】
ＯＰ３３では、起動用ＯＳ  ７は、ＯＰ３２で取得した起動ＯＳ  ７の現行のアドレスが初期値、例えばゼロであるか否かを判定する。起動ＯＳ  ７の現行のアドレスがゼロである場合には（ＯＰ３３：Ｙ）、処理がＯＰ３５に進む。起動ＯＳ  ７の現行のアドレスがゼロでない場合、すなわち、ＯＰ３５からＯＰ３８の処理によって起動用ＯＳ  ７がゼロ（初期値）から他のアドレスに移動している場合には（ＯＰ３３：Ｎ）、処理がＯＰ３
４に進む。ＯＰ３４では、起動用ＯＳ  ７は、サーバＯＳ  ４の転送処理であるマイグレーションを行う。その後、図１０に示される処理は終了する。
【００６６】
ＯＰ３５では、起動用ＯＳ  ７は、管理マネージャ２から、確保した物理メモリ領域のアドレスを取得する。次に、処理がＯＰ３６に進む。ＯＰ３６では、起動用ＯＳ  ７は、ＯＰ３５で取得したアドレスが、ＯＰ３２で取得したＥＬＦ書式のＨｅａｄｅｒのアドレス、すなわち現行のアドレスと同じであるか否かを判定する。ＯＰ３５で取得したアドレスが現行のアドレスと同じである場合には（ＯＰ３６：Ｙ）、処理がＯＰ３４に進む。ＯＰ３５で取得したアドレスが現行のアドレスと同じでない場合には（ＯＰ３６：Ｎ）、処理がＯＰ３７に進む。
【００６７】
ＯＰ３７では、起動用ＯＳ  ７は、メモリにマップされたコード領域とテキスト領域のデータを、ＯＰ３５で取得した物理メモリ領域のアドレスに移動する。ＯＰ３７において、起動用ＯＳ  ７は、一時的に使用されるメモリ領域であるスタックおよびヒープ領域は移動しない。次に、処理がＯＰ３８に進む。ＯＰ３８では、起動用ＯＳ  ７は、移動先のメモリ領域の起動位置にジャンプし、起動用ＯＳを稼働する。次に、処理がＯＰ３１に戻る。
【００６８】
（１−３）メモリ領域の再構成
起動用ＯＳ  ７の稼働後、管理マネージャ２は、マイグレーションの開始前に、移行元サーバ２０のハイパーバイザ３上の仮想サーバに割り当てられた擬似物理メモリの構成を、移行先サーバ２１の物理メモリと同様の構成となるように変更する。管理マネージャ２は、例えば図９のＯＰ２３またはＯＰ２５の処理において、起動用ＯＳ  ７から、移行先サーバ２１の物理メモリの構成に関する情報を取得することができる。
【００６９】
具体的には、管理マネージャ２は、仮想サーバの擬似物理メモリのサイズを、移行先サーバ２１の物理メモリのサイズに変更する処理等を行う。なお、仮想サーバの擬似物理メモリの構成は、移行先サーバ２１の物理メモリの構成と同一でなくてもよく、サーバＯＳ
４の移行が可能となるように変更されればよい。
【００７０】
図１１は、移行元の仮想サーバのメモリ構成変更の動作例を示す図である。管理マネージャ２は、移行先サーバ２１の物理メモリ領域の構成情報を、起動用ＯＳ  ７に取得させる（Ｓ２１）。
【００７１】
管理マネージャ２は、起動用ＯＳ  ７から、物理メモリ領域の構成情報を取得する（Ｓ２２）。管理マネージャ２は、ハイパーバイザ３に対して、移行元サーバ２０のサーバＯＳ  ４の物理メモリ領域の構成を変更するよう通知する（Ｓ２３）。
【００７２】
ハイパーバイザ３は、ＡＣＰＩエミュレーション制御部３１を含む。エミュレーションとは、特定のハードウェアやＯＳ向けに開発されたソフトウェアを、異なる動作環境で擬似的に実行させることである。ここでは、エミュレーションは、物理サーバ上で稼働するサーバＯＳ  ４を、ハイパーバイザ３上で稼働させることも含む。また、ハイパーバイザ３上での稼働に切り替えることは、エミュレートするとも称される。ＡＣＰＩエミュレーション制御部３１は、ＡＣＰＩに対する操作を制御する。
【００７３】
ハイパーバイザ３は、ＡＣＰＩエミュレーション制御部３１により、サーバＯＳ  ４に対し、擬似的にメモリの故障または追加があったとの通知をする。また、ハイパーバイザ３は、ＡＣＰＩエミュレーション制御部３１により、サーバＯＳ  ４に対し、物理メモリ領域の割り当てを変更する（Ｓ２４）。ハイパーバイザ３は、メモリの故障の通知に対してはメモリサイズを縮小し、メモリの追加の通知に対してはメモリサイズを増やすように
変更する。Ｓ２４の処理によって、移行元サーバ２０のメモリ構成は、移行先サーバ２１のメモリ構成に合わせて変更される。ハイパーバイザ３は、割り当て変更完了後、管理マネージャ２に対し、構成情報の変更が完了した旨を通知する（Ｓ２５）。管理マネージャ２は、マイグレーションを開始する（Ｓ２６）。
【００７４】
図１２は、ＡＣＰＩによるメモリ構成変更の動作例を示す図である。まず、図１２における機能構成が説明される。移行先サーバ２１は、ＡＣＰＩ  ３０を含む。ＡＣＰＩ  ３０は、サーバの本体装置とソフトウェアとの連携を行うためのプログラム可能なインタフェースである。ＡＣＰＩ  ３０は、Basic Input/Output System（ＢＩＯＳ）の一部とし
て機能する。
【００７５】
サーバＯＳ  ４は、ハイパーバイザ３上で稼働する仮想サーバである。サーバＯＳ  ４は、ＡＣＰＩドライバ３５を含む。ＡＣＰＩドライバ３５は、ＡＣＰＩを制御し、操作するためのソフトウェアである。
【００７６】
ハイパーバイザ３は、ＡＣＰＩエミュレーション制御部３１、ＡＣＰＩ  Ｒｅｇｉｓｔｅｒｓ  ３２、ＡＣＰＩ  ＢＩＯＳ  ３３およびＡＣＰＩ  Ｔａｂｌｅ  ３４を含む。ＡＣＰＩエミュレーション制御部３１は、図１１と同一であるため、その説明は省略される。
【００７７】
ＡＣＰＩ  Ｒｅｇｉｓｔｅｒｓ  ３２は、ＡＣＰＩ対応しているハードウェアデバイスが保持するレジスタ群である。ＡＣＰＩ  ＢＩＯＳ  ３３は、ＡＣＰＩ  ３０の操作をするためのＢＩＯＳ機能群である。ＡＣＰＩ  Ｔａｂｌｅ  ３４は、ＡＣＰＩ  ３０が管理対象とするデバイス群を登録する。
【００７８】
サーバＯＳ  ４上のＢＩＯＳ用のメモリ領域に、ＡＣＰＩ  Ｒｅｇｉｓｔｅｒｓ  ３２およびＡＣＰＩ  Ｔａｂｌｅ  ３４が配置される。ＡＣＰＩ  Ｒｅｇｉｓｔｅｒｓ  ３２は、読み書き可能であり、ＡＣＰＩ  Ｔａｂｌｅ  ３４は、読出し可能である。
【００７９】
次に、図１２における動作例が説明される。起動用ＯＳ  ７は、移行先サーバ２１のＡＣＰＩ  ３０からメモリ構成情報を取得し（Ｓ３１）、ＡＣＰＩエミュレーション制御部３１に通知する（Ｓ３２）。
【００８０】
ＡＣＰＩエミュレーション制御部３１は、移行元サーバ２０でエミュレートしているサーバＯＳ  ４のＡＣＰＩ  Ｔａｂｌｅ  ３４からメモリ構成情報を取得する。ＡＣＰＩエミュレーション制御部３１は、移行先サーバ２１と移行元サーバ２０から取得したメモリ構成情報を比較し、メモリ構成情報の変更内容を決定する（Ｓ３３）。
【００８１】
ＡＣＰＩエミュレーション制御部３１は、Ｓ３３の結果もとに、エミュレートしているサーバＯＳ  ４のＡＣＰＩ  Ｔａｂｌｅ  ３４のメモリ構成情報を変更する（Ｓ３４）。ＡＣＰＩエミュレーション制御部３１は、サーバＯＳ  ４に対し、General Purpose Event（ＧＰＥ）を発生させる。ＡＣＰＩエミュレーション制御部３１は、例えばInterrupt ReQuest（ＩＲＱ）９による割込みを要求する。ＡＣＰＩドライバ３５は、割込み要求に対し、ＡＣＰＩ  Ｔａｂｌｅ  ３４を読み込み、メモリ構成情報の変更を反映する（Ｓ３５）。
【００８２】
（１−４）移行先でのサーバＯＳ起動
図１３は、第１実施形態における移行先サーバ２１でのサーバＯＳ  ４起動の動作例を示す図である。起動用ＯＳ  ７は、管理マネージャ２の指示により、ハイパーバイザ３からの通信を受け付ける（Ｓ４１）。
【００８３】
ハイパーバイザ３は、移行元のサーバＯＳ  ４の擬似物理ページを移行先サーバ２１に転送する（Ｓ４２）。なお、起動用ＯＳ  ７用に確保した物理メモリ領域は、空であるため転送されない。
【００８４】
起動用ＯＳ  ７は、ハイパーバイザ３から転送されたデータを受け付け、物理メモリに書き込む（Ｓ４３）。ハイパーバイザ３は、移行元のサーバＯＳ  ４を、ＡＣＰＩ  Ｓ３（休止）状態に移行する（Ｓ４４）。
【００８５】
ハイパーバイザ３は、移行元のサーバＯＳ  ４のＣＰＵ制御情報を、移行先サーバ２１に転送する（Ｓ４５）。起動用ＯＳ  ７は、移行先のサーバＯＳ  ４を、ＡＣＰＩ  Ｓ３状態に移行する（Ｓ４６）。
【００８６】
管理マネージャ２は、移行先のサーバＯＳ  ４に対し、ネットワーク経由でＷａｋｅ  Ｏｎ  Ｌａｎパケットを送信し、移行先のサーバＯＳ  ４を起動状態にする（Ｓ４７）。Ｗａｋｅ  Ｏｎ  Ｌａｎは、ネットワークに繋がっているコンピュータの電源を遠隔で投入する技術であり、コンピュータにＷａｋｅ  Ｏｎ  Ｌａｎパケットを送信することにより、自ら電源を投入させることができる。
【００８７】
移行先のサーバＯＳ  ４の起動は、起動用ＯＳ  ７から移行先のサーバＯＳ  ４への切換え前に、ＡＣＰＩ  ３０の機能であるウェイクアップのタイマーをかけることにより行ってもよい。
【００８８】
移行先のサーバＯＳ  ４上のエージェント５は、ネットワーク再設定通知を実行する（Ｓ４８）。具体的には、エージェント５は、サーバＯＳ  ４のＩＰアドレスを更新し、Gratuitous Address Resolution Protocol（ＧＡＲＰ）等をブロードキャストにより発信する。ＧＡＲＰは、同一ネットワーク内でＩＰアドレスが重複しているかどうかをチェックしたり、同一セグメント上のネットワーク機器上のＡＲＰキャッシュを更新したりするために発信される。ＧＡＲＰは、起動用ＯＳ  ７により発信されてもよい。
【００８９】
＜第１実施形態の作用効果＞
第１実施形態では、管理マネージャ２は、サーバＯＳ  ４上にエージェント５およびドライバを配置し、移行元サーバ２０において起動用ＯＳ  ７をロードするための物理メモリ領域を確保する。管理マネージャ２は、物理サーバである移行先サーバ２１において、確保した物理メモリ領域のアドレスで起動用ＯＳ  ７を稼働させる。起動用ＯＳ  ７は、移行元サーバ２０のハイパーバイザ３からサーバＯＳ  ４の物理メモリイメージのデータを受け付け、移行先サーバ２１のメモリ上にマップする。管理マネージャ２は、サーバＯＳ  ４を起動する。移行先サーバ２１における物理メモリ領域の物理アドレスを、移行元サーバ２０が稼働中の状態で確保した物理メモリ領域のアドレスと同じにすることで、仮想サーバから物理サーバへの活性移行が可能となり、サーバの運用管理が簡易化される。
【００９０】
また、管理マネージャ２は、仮想サーバから物理サーバへの移行前に、移行元である仮想サーバのメモリ領域の構成を、移行先の物理サーバのメモリ領域の構成に合わせて変更する。すなわち、本実施形態では、移行先サーバ２１で起動用ＯＳ  ７が起動された後の移行先サーバ２１の物理メモリと移行元サーバ２０のハイパーバイザ３上の疑似物理メモリとが同じ状態になるように調整される。そして、移行元サーバ２０のサーバＯＳ  ４は、物理メモリイメージのまま移行先サーバ２１にコピーされる。これにより、移行先サーバ２１において、メモリの故障やメモリの追加があった場合でも、管理マネージャ２は、移行先の構成に合わせた状態で、仮想サーバから物理サーバへサーバＯＳ  ４を活性移行することができる。
【００９１】
また、管理マネージャ２は、移行先サーバ２１で起動したサーバＯＳ  ４のＩＰアドレスの更新やＧＡＲＰの発信等、接続情報を設定する。これにより、ネットワークの設定も含めた活性移行が可能となる。
【００９２】
＜第２実施形態＞
第２実施形態は、物理サーバから仮想サーバへの活性移行を説明する。情報処理装置は、移行元の物理サーバにおいて、起動用ＯＳをロードするための物理メモリ領域を動的に確保する。情報処理装置は、移行元の物理サーバにおいて、起動用ＯＳを稼働させ、サーバＯＳを起動する。情報処理装置は、サーバＯＳを移行先の仮想サーバに転送し、移行先の仮想サーバで起動する。
【００９３】
＜システム構成＞
図１４は、第２実施形態における情報処理システム１のシステム構成の一例を示す図である。移行元サーバ２０は物理サーバであり、移行先サーバ２１は仮想サーバである点を除いて、第１実施形態と同様であるため、同一の符号を付して、その説明は省略される。なお、移行元サーバ２０は、物理サーバであるため、ハイパーバイザ３の代わりに起動用ＯＳ  ７を備える。また、移行先サーバ２１は仮想サーバであるため、起動用ＯＳ  ７の代わりにハイパーバイザ３を備える。
【００９４】
＜ハードウェア構成＞
第２実施形態における情報処理装置１０のハードウェア構成は、第１実施形態と同じであるため、その説明は省略される。
【００９５】
＜第２実施形態の処理例＞
管理マネージャ２は、（２−１）移行元での物理メモリ領域の確保、（２−２）移行元での起動用ＯＳ稼働、（２−３）移行元でのサーバＯＳ仮想化、（２−４）サーバＯＳの移行および移行先でのサーバＯＳ起動により、物理サーバである移行元サーバ２０から仮想サーバである移行先サーバ２１への活性移行を行う。
【００９６】
稼働中のサーバＯＳ  ４を移行元でゲストＯＳとして再稼働させるためには、起動用ＯＳ  ７は、移行元での物理メモリ領域と同じ擬似物理アドレスにロードすることが望ましい。管理マネージャ２は、エージェント５およびドライバ６を介して移行元サーバ２０において物理メモリ領域を確保し、確保した物理メモリ領域のアドレスを、ゲストＯＳの起動用ＯＳ  ７に通知する。移行元サーバ２０において、起動用ＯＳ  ７は、確保した物理メモリ領域のアドレスと同じ擬似物理アドレスで稼働される。ゲストＯＳとして再稼働されたサーバＯＳ  ４の擬似物理メモリイメージは、仮想サーバである移行先サーバ２１に転送される。メモリイメージの転送により、移行先サーバ２１においても、起動用ＯＳ  ７は、移行元サーバ２０の擬似物理メモリと同じアドレスで稼働される。移行元サーバ２０の擬似物理メモリでのアドレスと同じアドレスで起動用ＯＳ  ７が稼働されることにより、移行元サーバ２０で稼働中のサーバＯＳ  ４は、移行先サーバ２１に稼働状態を保持したまま活性移行することができる。
【００９７】
（２−１）移行元での物理メモリ領域の確保
図１５は、第２実施形態における物理メモリ領域確保の動作例を示す図である。サーバＯＳ  ４が、ハイパーバイザ３上ではなく、物理サーバである移行元サーバ２０上で稼働する点を除いて、図５の第１実施形態におけるサーバＯＳ  ４での物理メモリ領域確保と同様であるため、同一の符号を付して、その説明は省略される。
【００９８】
（２−２）移行元での起動用ＯＳ稼働
図１６は、移行元サーバ２０での起動用ＯＳ稼働の動作例を示す図である。図１６において、移行元サーバ２０は物理サーバである。管理マネージャ２はエージェント５に指示することにより、図１６に示される動作例の処理を行う。
【００９９】
サーバＯＳ  ４を仮想化する際、管理マネージャ２は、起動用ＯＳ  ７を「（２−１）移行元での物理メモリ領域の確保」で確保した物理メモリ領域のアドレスと同じ擬似物理アドレスで稼働させることで、サーバＯＳ  ４をゲストＯＳとして再稼働することが可能となる。
【０１００】
管理マネージャ２は、起動用ＯＳ稼働域１２ｂで起動用ＯＳ  ７をロードする（Ｓ５１）。管理マネージャ２は、移行元サーバ２０での制御を、ドライバ６、すなわち稼働中のサーバＯＳ  ４から、起動用ＯＳ  ７に切り替え、起動用ＯＳ  ７を稼働させる（Ｓ５２）。
【０１０１】
（２−３）移行元でのサーバＯＳ仮想化
図１７は、移行元サーバ２０でのサーバＯＳ起動の動作例を示す図である。まず、起動用ＯＳ  ７は、サーバＯＳ  ４のＣＰＵ制御情報を取得し、ゲストのＣＰＵ制御情報の格納領域に設定する（Ｓ６１）。例えば、起動用ＯＳ  ７は、サーバＯＳ  ４のメモリ領域からレジスタ群の値を取得し、起動用ＯＳ  ７のメモリ領域に、例えばＶＭＣＳのデータ構造で、取得した値を設定すればよい。
【０１０２】
次に、起動用ＯＳ  ７は、サーバＯＳ  ４のネットワークインタフェースを、例えば、Single Root I/O Virtualization（ＳＲ−ＩＯＶ）の技術を使って割り当てる（Ｓ６２）。ＳＲ−ＩＯＶはハードウェア仮想化技術の一つであり、デバイスの共有処理をハードウェア側で実装する。１つの物理Network Interface Card（ＮＩＣ）デバイスにおいて、複数の仮想的なＮＩＣデバイスを生成し、ハードウェア内に実装されているＮＩＣ内ネットワークスイッチに、各ＮＩＣデバイスを接続することで、ＮＩＣデバイスの共有が可能となる。さらに、起動用ＯＳ  ７は、サーバＯＳ  ４をハードウェア仮想化技術の一つであるＶＴ−ｘのゲストとして起動する（Ｓ６３）。
【０１０３】
（２−４）サーバＯＳの移行および移行先でのサーバＯＳ起動
図１８は、物理サーバから仮想サーバへのサーバＯＳ  ４の移行の動作例を示す図である。起動用ＯＳ  ７は、管理マネージャ２の指示により、ハイパーバイザ３に対し、サーバＯＳ  ４の擬似物理メモリイメージの転送を開始する（Ｓ７１）。なお、ハイパーバイザ３上の擬似物理アドレスは、移行元サーバ２０での物理アドレスと同じものとする。
【０１０４】
起動用ＯＳ  ７は、メモリ転送の残量が所定量以下となったか否かの収束条件を判定し、条件を満たす場合には、サーバＯＳ  ４を停止する。さらに、起動用ＯＳ  ７は、サーバＯＳ  ４の残りの物理メモリイメージおよびＣＰＵ制御情報を、ハイパーバイザ３に転送する（Ｓ７２）。ハイパーバイザ３は、転送されたＣＰＵ制御情報をサーバＯＳ  ４のメモリ領域に設定し、サーバＯＳ  ４を起動する（Ｓ７３）。
【０１０５】
＜第２実施形態の作用効果＞
第２実施形態では、管理マネージャ２は、サーバＯＳ  ４上にエージェント５およびドライバを配置し、移行元サーバ２０において起動用ＯＳ  ７をロードするための物理メモリ領域を確保する。管理マネージャ２は、物理サーバである移行元サーバ２０において、確保した物理メモリ領域のアドレスで起動用ＯＳ  ７を稼働させる。起動用ＯＳ  ７は、移行元サーバ２０において、ゲストとしてサーバＯＳ  ４を起動する。起動用ＯＳ  ７は、移行先サーバ２１にサーバＯＳ  ４を転送する。移行先サーバ２１のハイパーバイザは、転送されたサーバＯＳ  ４を起動する。これにより、物理サーバ上のサーバＯＳ  ４の
仮想化が可能となる。また、物理サーバである移行元サーバ２０において、確保した物理メモリ領域のアドレスで起動用ＯＳ  ７を稼働させ、サーバＯＳ  ４を仮想化することにより、物理サーバから仮想サーバへの活性移行が可能となり、サーバの運用管理が簡易化される。
【０１０６】
起動用ＯＳ  ７は、移行元サーバ２０のＣＰＵ制御情報を取得し、移行先サーバ２１のハイパーバイザ３に転送する。移行先サーバ２１のハイパーバイザ３は、転送されたＣＰＵ制御情報に基づき、サーバＯＳ  ４を起動する。これにより、ＣＰＵの制御情報を含めた活性移行が可能となる。
【０１０７】
＜第３実施形態＞
第３実施形態は、物理サーバから物理サーバへの活性移行を説明する。第３実施形態は、第１実施形態および第２実施形態における処理の組み合わせにより実現される。
【０１０８】
＜システム構成＞
図１９は、第３実施形態における情報処理システム１のシステム構成の一例を示す図である。移行元サーバ２０および移行先サーバ２１がいずれも物理サーバである点を除いて、第１実施形態と同様であるため、同一の符号を付して、その説明は省略される。なお、移行元サーバ２０は、物理サーバであるため、ハイパーバイザ３の代わりに移行元起動用ＯＳ  ７ａを備える。また、移行先サーバ２１は移行先起動用ＯＳ  ７ｂを備える。
【０１０９】
＜ハードウェア構成＞
第３実施形態における情報処理装置１０のハードウェア構成は、第１実施形態と同じであるため、その説明は省略される。
【０１１０】
＜第３実施形態の処理例＞
管理マネージャ２は、第１実施形態および第２実施形態の処理のうち、以下の処理によって、物理サーバである移行元サーバ２０から物理サーバである移行先サーバ２１への活性移行を行う。
（２−１）移行元での物理メモリ領域の確保
（２−２）移行元での起動用ＯＳ稼働
（２−３）移行元でのサーバＯＳ仮想化
（１−２）移行先での起動用ＯＳ稼働
（１−３）メモリ領域の再構成
（１−４）移行先でのサーバＯＳ起動
【０１１１】
図２０は、第３実施形態における物理サーバ間での移行処理の一例のフローチャートである。物理サーバ間での移行処理の前半は、物理サーバから仮想サーバへの移行処理である第２実施形態の前半の処理と同様である。物理サーバ間での移行処理の後半は、仮想サーバから物理サーバへの移行処理である第１実施形態の後半の処理と同様である。物理サーバ間での移行処理は、例えば管理マネージャ２の指示により開始される。
【０１１２】
ＯＰ４１では、管理マネージャ２は、移行元サーバ２０での物理メモリ領域を確保する。具体的には、管理マネージャ２は、エージェント５を介して、ドライバ６に移行元サーバ２０のサーバＯＳ  ４での物理メモリ領域を確保させる。また、管理マネージャ２は、エージェント５を介して、ドライバ６から確保された物理メモリ領域のアドレスを取得する。次に、処理がＯＰ４２に進む。
【０１１３】
ＯＰ４２では、管理マネージャ２は、移行元サーバ２０で移行元起動用ＯＳ  ７ａを稼働させる。具体的には、管理マネージャ２は、確保した物理メモリ領域のアドレスにおい
て移行元起動用ＯＳ  ７ａを稼働させる。次に、処理がＯＰ４３に進む。
【０１１４】
ＯＰ４３では、管理マネージャ２は、移行元サーバ２０でサーバＯＳ  ４を仮想化する。具体的には、移行元起動用ＯＳ  ７ａは、管理マネージャ２の指示により、サーバＯＳ
４をゲストとして起動する。次に、処理がＯＰ４４に進む。
【０１１５】
ＯＰ４４では、管理マネージャ２は、移行先サーバ２１で移行先起動用ＯＳ  ７ｂを稼働させる。具体的には、移行先起動用ＯＳ  ７ｂは、管理マネージャ２の指示により、移行先サーバ２１において稼働し、ＯＰ４２で確保した物理メモリ領域のアドレスと同じアドレスに移動する。移動先に制御が移り、移行先起動用ＯＳ  ７ｂは、移動先のアドレスで稼働する。次に、処理がＯＰ４５に進む。
【０１１６】
ＯＰ４５では、管理マネージャ２は、メモリ領域を再構成する。具体的には、管理マネージャ２は、移行元サーバ２０の移行元起動用ＯＳ  ７ａ上で仮想化されたサーバＯＳ  ４に割り当てられた擬似物理メモリの構成を、移行先サーバ２１の物理メモリと同様の構成となるように変更する。次に、処理がＯＰ４６に進む。
【０１１７】
ＯＰ４６では、管理マネージャ２は、移行先サーバ２１でサーバＯＳ  ４を起動する。ＯＰ４６の処理の動作例は、図２１により示される。図２１は、第３実施形態における移行先サーバでのサーバＯＳ起動の動作例を示す図である。
【０１１８】
移行先起動用ＯＳ  ７ｂは、管理マネージャ２の指示により、移行元起動用ＯＳ  ７ａからの通信を受け付ける（Ｓ８１）。移行元起動用ＯＳ  ７ａは、移行元のサーバＯＳ  ４の擬似物理ページを移行先サーバ２１に転送する（Ｓ８２）。なお、移行元起動用ＯＳ
７ａ用に確保した物理メモリ領域は、空であるため転送されない。
【０１１９】
移行先起動用ＯＳ  ７ｂは、移行元起動用ＯＳ  ７ａから転送されたデータを受け付け、物理メモリに書き込む（Ｓ８３）。移行元起動用ＯＳ  ７ａは、移行元のサーバＯＳ  ４を、ＡＣＰＩ  Ｓ３（休止）状態に移行する（Ｓ８４）。
【０１２０】
移行元起動用ＯＳ  ７ａは、移行元のサーバＯＳ  ４のＣＰＵ制御情報を、移行先サーバ２１に転送する（Ｓ８５）。移行先起動用ＯＳ  ７ｂは、移行先のサーバＯＳ  ４を、ＡＣＰＩ  Ｓ３状態に移行する（Ｓ８６）。
【０１２１】
管理マネージャ２は、移行先のサーバＯＳ  ４に対し、ネットワーク経由でＷａｋｅ  Ｏｎ  Ｌａｎパケットを送信し、移行先のサーバＯＳ  ４を起動状態にする（Ｓ８７）。Ｗａｋｅ  Ｏｎ  Ｌａｎは、ネットワークに繋がっているコンピュータの電源を遠隔で投入する技術であり、コンピュータにＷａｋｅ  Ｏｎ  Ｌａｎパケットを送信することにより、自ら電源を投入させることができる。
【０１２２】
移行先のサーバＯＳ  ４の起動は、移行先起動用ＯＳ  ７ｂから移行先のサーバＯＳ  ４への切換え前に、ＡＣＰＩ  ３０の機能であるウェイクアップのタイマーをかけることにより行ってもよい。
【０１２３】
移行先のサーバＯＳ  ４上のエージェント５は、ネットワーク再設定通知を実行する（Ｓ８８）。具体的には、エージェント５は、サーバＯＳ  ４のＩＰアドレスを更新し、Gratuitous Address Resolution Protocol（ＧＡＲＰ）等をブロードキャストにより発信する。ＧＡＲＰは、同一ネットワーク内でＩＰアドレスが重複しているかどうかをチェックしたり、同一セグメント上のネットワーク機器上のＡＲＰキャッシュを更新したりするために発信される。ＧＡＲＰは、移行先起動用ＯＳ  ７ｂにより発信されてもよい。
【０１２４】
＜第３実施形態の作用効果＞
第１実施形態および第２実施形態の処理を組み合わせることにより、物理サーバ間でのサーバＯＳ  ４の活性移行が可能となり、サーバの運用管理が簡易化される。
【０１２５】
上記の実施形態の構成、変形例の構成は、可能な限り、組み合わされて実施されうる。
【０１２６】
＜記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【０１２７】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。さらに、Solid State Drive（ＳＳＤ）はコンピュータ等から取り外し可能な記録媒体としても、コンピュータ等
に固定された記録媒体としても利用可能である。
【符号の説明】
【０１２８】
１        情報処理システム
２        管理マネージャ
３        ハイパーバイザ
４        サーバＯＳ
５        エージェント
６        ドライバ
７        起動用ＯＳ
１０      情報処理装置
１１      プロセッサ
１２      主記憶装置
１３      補助記憶装置
１４      入力装置
１５      出力装置
１６      ネットワークインタフェース
１７      バス
２０      移行元サーバ
２１      移行先サーバ
【図１】
0006458650.tif 000002
【図２】
0006458650.tif 000003
【図３】
0006458650.tif 000004
【図４】
0006458650.tif 000005
【図５】
0006458650.tif 000006
【図６】
0006458650.tif 000007
【図７】
0006458650.tif 000008
【図８】
0006458650.tif 000009
【図９】
0006458650.tif 000010
【図１０】
0006458650.tif 000011
【図１１】
0006458650.tif 000012
【図１２】
0006458650.tif 000013
【図１３】
0006458650.tif 000014
【図１４】
0006458650.tif 000015
【図１５】
0006458650.tif 000016
【図１６】
0006458650.tif 000017
【図１７】
0006458650.tif 000018
【図１８】
0006458650.tif 000019
【図１９】
0006458650.tif 000020
【図２０】
0006458650.tif 000021
【図２１】
0006458650.tif 000022