(57)【要約】  少なくとも２台以上の計算機がネットワークを介して接続された仮想化計算機システムにおいて、仮想装置を第１の計算機から第２の計算機に動的に移動する際に発生するサービス停止時間を短縮する。  第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶手段にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定する。
2010126048.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動システムであって、
前記物理装置は、各々が有する主記憶部に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶部及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いることを特徴とする仮想装置の高速移動システム。
【請求項２】
請求項１に記載の仮想装置の高速移動システムにおいて、
前記物理装置は、前記仮想装置を作成する仮想化部を更に備えており、
当該仮想化部は、前記主記憶部の物理的なアドレス及び前記高速記憶装置の物理的なアドレスの両方からなる物理的なアドレス空間にマッピングされた論理的なメモリアドレス空間を有していることを特徴とする仮想装置の高速移動システム。
【請求項３】
請求項１又は２に記載の仮想装置の高速移動システムにおいて、
或る仮想装置に対して割り当てられたメモリアドレス空間領域について、動的にその物理アドレスと論理アドレスの前記マッピング情報を変更し、アクセス制御のための記憶領域の所有権情報を併せて変更することを特徴とする仮想化された計算機システムにおける仮想装置の高速移動システム。
【請求項４】
請求項１乃至３の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記高速記憶装置は、前記主記憶部と比べ若干の低速若しくは同等以上の速度で動作する記憶装置であり、当該高速記憶装置が、前記物理装置が更に備えるメモリ制御部及び演算部と性能ボトルネックにならない程度に高速なインターフェースで接続されていることを特徴とする仮想装置の高速移動システム。
【請求項５】
請求項１乃至４の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記高速記憶装置の制御管理と、前記物理装置との間のアクセスを制御する記憶装置制御部を更に備えており、
当該記憶装置制御部は、特に前記高速記憶装置の一部または全部の記憶領域について、当該高速記憶装置を共有している前記物理装置又は前記仮想装置単位で付与された前記アクセスに関する所有権を管理することを特徴とする仮想装置の高速移動システム。
【請求項６】
請求項１乃至５の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置は、前記論理メモリアドレスと物理メモリアドレスとの対応を、チップセットの特にはＮＯＲＴＨＢＲＩＤＧＥ、若しくは、演算装置に搭載されたメモリーマネジメントユニットを用いて管理することを特徴とする仮想装置の高速移動システム。
【請求項７】
請求項１乃至６の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置間の前記ネットワークを介した接続による通信のために、ネットワークスイッチの集合を有しており、前記接続に際し、キュー管理に基づく輻輳制御、パケット棄却率の低減又はゼロ化、といった高信頼性通信のための機能を有することを特徴とする仮想装置の高速移動システム。
【請求項８】
請求項７に記載の仮想装置の高速移動システムにおいて、
前記ネットワークを介した接続による通信のために規定された第１のプロトコルと、前記物理装置と前記高速記憶装置との通信のために規定された第２のプロトコルと、を変換するブリッジを有しており、前記物理装置内で動作するソフトウェアプログラムからはネットワーク介した接続が透明的であることを特徴とする仮想装置の高速移動システム。
【請求項９】
請求項８項に記載の仮想装置の高速移動システムにおいて、
前記ブリッジと前記ネットワークスイッチが、前記ネットワークスイッチからのフィードバック信号を利用することにより連携し、送信レートの制御や、棄却されたパケットについて再送する、といった高信頼性を保つ機能を有することを特徴とする仮想化された計算機システムにおける仮想装置の高速移動システム。
【請求項１０】
請求項１乃至９の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置とは異なる計算機が、前記物理装置及び高速記憶装置が通信を行うために用いているネットワークと同一のネットワーク又は当該同一のネットワークとは別の専用ネットワークを介して接続されており、
当該計算機が、前記アドレスマッピング情報を含む計算機上の記憶領域の管理や、仮想装置の移動の契機の管理を行なうことを特徴とする仮想装置の高速移動システム。
【請求項１１】
請求項１乃至１０の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記アドレスマッピング情報のマッピングは当該計算機システムの起動時に行なわれ、前記高速記憶装置はＩ／Ｏデバイスとして読み込まれ、前記物理装置の管理するメモリ領域にマッピングされ、当該マッピングに際し、予め設定された領域割り当て情報を用いて、前記物理装置の各々に対して、認識・登録を許可する記憶領域と、認識・登録は許可するが使用不可の属性を付与する記憶領域と、を設定することを特徴とする仮想装置の高速移動システム。
【請求項１２】
請求項１１に記載の仮想装置の高速移動システムにおいて、
前記許可の種類は読み込みのみ、或いは、読み込み及び書き出しといった細かい粒度で設定が可能なことを特徴とする仮想装置の高速移動システム。
【請求項１３】
請求項１乃至１２の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置上で動作するアプリケーションプログラム、若しくは前記仮想装置として動作するアプリケーションプログラムが、アクセスを許可されていない領域についてアクセスが発生した時は、当該アクセスが制限されることを特徴とする仮想装置の高速移動システム。
【請求項１４】
第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする仮想装置の高速移動システム。
【請求項１５】
前記主記憶部から前記高速記憶装置へのコピーの間、前記仮想装置は停止させず、バックグラウンドで逐次的に書き換えのあったデータ部分のみのコピーによる同期処理を行ない、当該コピーにかかる時間に書き換わるデータの量が飽和したと判断した時点から、差分データコピーと同時に仮想装置からの当該領域データへの書き込み処理の発生に対して主記憶部のみならず高速記憶装置へも同時書き込みを開始し、同期が完全に終了したところで、それ以降は主記憶部から高速記憶装置にアクセスするように論理アドレスと物理アドレスのマッピング更新を行うことにより仮想装置の動作を継続することを特徴とする請求項１４に記載の仮想装置の高速移動システム。
【請求項１６】
前記所有権の付け替え処理の後、移動前仮想装置と同様の設定情報を有し、第２の物理装置の演算装置上で動作する新規に起動された移動後仮想装置が、前記高速記憶装置上の仮想装置のメモリデータにアクセスすることで第１の物理装置上で動作していた前記移動前仮想装置と全く同じ動作を継続し、前記第１の物理装置から第２の物理装置へ前記仮想装置移動させた方法と同様の方法で、前記高速記憶装置から第２の物理装置の主記憶部に仮想装置の停止を伴わずデータが移行されることを特徴とする請求項１４又は１５に記載の仮想装置の高速移動システム。
【請求項１７】
前記移動対象の仮想装置のメモリデータが逐次的に書き込まれる前記高速記憶装置の領域について、前記所有権の付け替え前から、第２の物理装置からのアクセスを完全利用不可から読み出しのみ可に設定することで予め第２の物理装置の主記憶部上の当該仮想装置のために確保されたメモリ領域にデータを逐次的に移動することを特徴とする請求項１４乃至１６の何れか１項に記載の仮想装置の高速移動システム。
【請求項１８】
ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理装置であって、
前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする管理装置。
【請求項１９】
前記主記憶部から前記高速記憶装置へのコピーの間、前記仮想装置は停止させず、バックグラウンドで逐次的に書き換えのあったデータ部分のみのコピーによる同期処理を行なわせ、当該コピーにかかる時間に書き換わるデータの量が飽和したと判断した時点から、差分データコピーと同時に仮想装置からの当該領域データへの書き込み処理の発生に対して主記憶部のみならず高速記憶装置へも同時書き込みを開始させ、同期が完全に終了したところで、それ以降は主記憶部から高速記憶装置にアクセスするように論理アドレスと物理アドレスのマッピング更新を行わすことにより仮想装置の動作を継続させることを特徴とする請求項１８に記載の管理装置。
【請求項２０】
ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動方法であって、
前記物理装置は、各々が有する主記憶装置に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶装置及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いることを特徴とする仮想装置の高速移動方法。
【請求項２１】
第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶装置にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする仮想装置の高速移動方法。
【請求項２２】
ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理方法であって、
前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶装置にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする管理方法。
【請求項２３】
ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動プログラムであって、
前記物理装置は、各々が有する主記憶部に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶部及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いる計算機システムとしてコンピュータを機能させることを特徴とする仮想装置の高速移動プログラム。
【請求項２４】
第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在する実態メモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定する計算機システムとしてコンピュータを機能させることを特徴とする仮想装置の高速移動プログラム。
【請求項２５】
ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理プログラムであって、
前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定する管理装置としてコンピュータを動作させることを特徴とする管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークを介して相互に接続された物理マシン上の仮想装置により構成されたコンピュータシステムにおける仮想装置の移動の高速化に関する。
【背景技術】
【０００２】
複数の物理装置上に仮想装置を設けるシステムにおいて、物理装置の使用状況等に応じて、異なる物理装置間で仮想装置を移動（マイグレーション）する、といった技術が一般に用いられている（例えば特許文献１参照）。【０００３】
このような仮想装置で構成された仮想化計算機システムにおける、仮想装置の移動の高速化に関する技術の一例が非特許文献１に記載されている。この技術について図７を用いて説明する。【０００４】
図７に示すように、この仮想化計算機システムは、第１の物理装置１０００と第２の物理装置１１００を有している。【０００５】
第１の物理装置１０００は、メモリ１００１と、物理装置間を接続するためのネットワークインターフェースカード（ＮＩＣ：Network Interface Card）１００２を有している。また、第２の物理装置１１００も同様に、メモリ１１０１と、ネットワークインターフェースカード１１０２を有している。両装置は、例えばＥｔｈｅｒｎｅｔ（登録商標）に準拠したスイッチ等で接続されたネットワーク１２００により相互に接続されている。また、両装置はハイパーバイザ（Hyper visor）に代表される仮想化部１０１０、仮想化部１１１０を有している。【０００６】
次に、バーチャルマシン（Virtual Machine）に代表される仮想装置である移動前仮想装置１０２０を第１の物理装置１０００から第２の物理装置１１００へ移動する場合について説明する。なお、図中では、移動前仮想装置１０２０を破線、移動後の仮想装置１１２０を実線で表す。【０００７】
図７に示す仮想計算機システムは仮想装置の移動の高速化を、移動前仮想装置１０２０に割り当てられた物理装置１０００のメモリ領域１００１のデータを、移動後仮想装置１１２０が物理装置１１００で動作するために割り当てられたメモリ１１０１に高速にコピーすることで実現する。【０００８】
このコピーはネットワーク１２００を用いて、仮想化部１０１０及び１１１０間のデータ転送によって行なわれる。一般的に、この転送はＴＣＰ（Transmission Control Protocol）等の信頼性の高いデータ転送方式を用いて行なわれる。もっとも、この転送時間は転送データ量や、ネットワーク帯域やプロトコル処理に起因するオーバーヘッド、更には、メモリ読み書き速度などに依存する。具体例を１つ挙げると、一般にネットワークプロトコルを介したデータ転送には複数のデータコピーが伴うため、プロトコル処理に起因するオーバーヘッドに加えデータコピー（少なくともネットワークインターフェース→バッファ領域→仮想装置の該当メモリ領域へのコピー）に起因するオーバーヘッドが存在する。【０００９】
そして、この転送が終了するまでの間は、仮想装置の動作を停止する必要がある。そのため、この停止時間をなるべく短くすることが望ましい。【００１０】
たとえば非特許文献１では、停止時間を短くするために、すべてのメモリデータをコピーするのではなく、逐次的に書き換えのあったメモリ（以下、このようなメモリのことを適宜「ダーティメモリ」と表記する。）のみを転送する。そして、転送効率と書き換えレートが釣り合ったところで、仮想装置を停止する。その後、最後のコピーを行い、異動先の物理措置で仮想装置を起動する、という処理を行なっている。このような処理を行うことにより移動時間の短縮化を図ることが可能となる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−２１７３０２号公報
【非特許文献】
【００１２】
【非特許文献１】Christopher Clark、 et al. “Live Migration of Virtual Machines”、 In Proceedings of the 2nd ACM/USENIX Symposium on Networked Systems Design and Implementation (NSDI １０１)、[online]［平成２１年４月２０日検索］、インターネット＜URL：http://www.cl.cam.ac.uk/netos/papers/１０１-migration-nsdi-pre.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述のように非特許文献１に記載の技術は、仮想装置の停止時間を決定する要因であるコピーするデータの量を削減している。もっとも、非特許文献１に記載の技術を用いた場合であっても、ネットワーク経由でのデータコピーが伴うという本質に変化はない。そのため、信頼性の高いネットワークプロトコルを利用したデータ転送やデータコピー処理の間、仮想装置のサービスが停止する必要があるという点は変わらない。その上、広範囲にわたって書き換えがあるようなケースには特にそのオーバーヘッドが顕著となる。【００１４】
すなわち、一般的な技術には、物理装置間で仮想装置を移動するにあたって、以下のような２つの問題点が有ることとなる。【００１５】
第１の問題点は、仮想装置の異なる物理装置間の移動におけるサービス停止時間の低減には限界があるということである。【００１６】
その理由は、データコピー量を必要最低限にしたとしても、データコピーという動作自体は本質的に同じであり、コピーのための転送時間、処理オーバーヘッド分に費やされる時間が必ず必要となるためである。【００１７】
第２の問題点は、仮想装置上で動作するアプリケーションの種類によっては、非特許文献１に記載の技術等を用いたとしても、その効果が乏しい場合があるということである。【００１８】
その理由は、メモリの書き換えが広範囲にわたるようなアプリケーションが動作している場合、ダーティメモリ量が多いためその転送には時間がかかってしまうからである。【００１９】
そこで、本発明は、仮想計算機システムにおいて、仮想装置を異なる物理装置間で高速に移動することが可能な、仮想化された計算機システムにおける仮想装置の高速移動システム、その方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明によれば、第１のシステムとしてネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動システムであって、前記物理装置は、各々が有する主記憶手段に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶手段及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いることを特徴とする仮想装置の高速移動システムが提供される。【００２１】
更に、第２のシステムとして、第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶手段にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする仮想装置の高速移動システムが提供される。【００２２】
更に、第１の装置として、ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理装置であって、前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶手段にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする管理装置が提供される。【００２３】
更に、第１の方法として、ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動方法であって、前記物理装置は、各々が有する主記憶装置に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶装置及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いることを特徴とする仮想装置の高速移動方が提供される。【００２４】
更に、第２の方法として、第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶装置にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする仮想装置の高速移動方法が提供される。【００２５】
更に、第３の方法として、ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理方法であって、前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶装置にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする管理方法が提供される。【００２６】
更に、第１のプログラムとして、ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動プログラムであって、前記物理装置は、各々が有する主記憶手段に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶手段及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いる計算機システムとしてコンピュータを機能させることを特徴とする仮想装置の高速移動プログラムが提供される。【００２７】
更に、第２のプログラムとして、第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶手段にマッピングされた領域上に存在する実態メモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定する計算機システムとしてコンピュータを機能させることを特徴とする仮想装置の高速移動プログラムが提供される。【００２８】
更に、第３のプログラムとして、ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理プログラムであって、前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶手段にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定する管理装置としてコンピュータを動作させることを特徴とする管理プログラムが提供される。
【発明の効果】
【００２９】
本発明によれば、データコピー方式ではなく、メインメモリとは別に設定された複数物理装置間で共有しその特定領域の所有権が動的に設定可能な高速記憶デバイスを用いてその領域の所有権を物理装置間で付け替える処理を行うことから仮想装置が異なる物理装置の間で高速に移動し、そのサービス停止時間を削減することが可能となる。
【図面の簡単な説明】
【００３０】
【図１】本発明の発明を実施するための形態の構成を示すプロック図である。
【図２】発明を実施するための形態の構成における仮想化手段の保有するメモリ空間設定例の模式図である。
【図３−１】発明を実施するための形態の構成の仮想化手段の保有するメモリ空間において仮想装置に割り当てられた領域の所有権付け替え処理の模式図（１／２）である。
【図３−２】発明を実施するための形態の構成の仮想化手段の保有するメモリ空間において仮想装置に割り当てられた領域の所有権付け替え処理の模式図（２／２）である。
【図４】発明を実施するための形態の動作を示す流れ図である。
【図５】第１の実施例の構成を示すプロック図である。
【図６】第２の実施例の構成を示すプロック図である。
【図７】本発明に関連する技術の構成の一例を示すブロック図である。
【符号の説明】
【００３１】
１００、１０００、２０００  第１の物理装置
１０１、２０１  演算部
１０２、２０２  メモリ制御部
１０３、２０３  主記憶部
１０３−１、２０３−１  メモリ領域
１０４、２０４、３２０  通信インターフェース部
１１０、２１０  仮想化部
１１１、２１１  メモリ空間
１２０、２２０  仮想装置
２００、１１００、２１００  第２の物理装置
３００  高速記憶部
３０１、３０２  記憶領域
３１０  記憶装置制御部
４００、１２００  ネットワーク
５００  管理装置
１００１、１１０１  メモリ
１００２、１１０２  ネットワークインターフェースカード
１０１０、１１１０  仮想化部
１０２０  移動前仮想装置
１０２１  移動後仮想装置
２００１、２１０１  ＣＰＵ
２００２、２１０２  メインメモリ
２００３、２１０３  ＮＯＲＴＨＢＲＩＦＧＥ
２００４、２１０４、２２０３  Ｂｒｉｄｇｅ
２００５、２１０５  ＳＯＵＴＨＢＲＩＤＧＥ
２００６、２１０６  ネットワークインターフェースカード
２０１０、２１１０  Ｈｙｐｅｒｖｉｓｏｒ
２０２１、２０２２、２１２０  ＶＭ
２２０１  ＮＡＮＤ  ＦＬＡＳＨ
２２０２  ＭＲ−ＩＯＶ対応ＮＡＮＤ  ＦＬＡＳＨコントローラ
２２０４、３３００  ネットワークスイッチ・ルータ
２３００  管理サーバ
３０００、３１００  物理装置
３００１、３１０１  メインメモリ
３０１０、３１１０  Ｈｙｐｅｒｖｉｓｏｒ
３０２０、３１２０  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ
３２０１、３２０２、３２０３  メモリ領域
Ａ１、Ａ２  利用可能領域
Ａ３、Ａ４、Ａ５  記憶領域
【発明を実施するための形態】
【００３２】
次に、発明を実施するための形態について図面を参照して詳細に説明する。
【００３３】
[構成の説明]
【００３４】
図１を参照すると、本発明の実施形態は、第１の物理装置１００及び第２の物理装置２００を有する。
【００３５】
両物理装置は、それぞれ演算部１０１、２０１と、メモリ制御部１０２、２０２と、主記憶部１０３、２０３と、通信インターフェース部１０４、２０４と、を有している。
【００３６】
演算部１０１、２０１は、ＣＰＵに代表される演算処理装置である。メモリ制御部１０２、２０２は主記憶装置を制御する装置であり、典型的にはチップセットに搭載される。主記憶部１０３、２０３は、主記憶装置であり、記憶領域としてそれぞれメモリ領域１０３−１、２０３−１を有している。通信インターフェース部１０４、２０４は、各装置間で通信を行うためのインターフェースである。
【００３７】
両物理装置は、仮想化部１１０、２１０を更に有している。仮想化部１１０、２１０それぞれの当該物理装置の上で動作するプログラムであり、ハイパーバイザを典型例とするものである。
【００３８】
加えて、両物理装置は、それぞれの仮想化部によって作成され、動作する仮想装置１２０、２２０を有している。
【００３９】
更に、本発明の実施形態は、両物理装置の外部に搭載される高速記憶部３００と、高速記憶部３００の制御部である高速記憶制御部３１０と、高速記憶部３００及び高速記憶制御部３１０が用いる通信インターフェースである通信インターフェース３２０と、を有している。また、高速記憶部３００は、記憶領域として、記憶領域３０１及び記憶領域３０２を有している。
【００４０】
第１の物理装置１００、第２の物理装置２００、高速記憶制御部３１０及び高速記憶部３００は、上記した各通信インターフェース部及びネットワーク４００を介して相互に接続されている。なお、通信方式の具体例としてはＥｔｈｅｒｎｅｔ（登録商標）が挙げられるが、本実施形態において具体的な通信方式は特に限定されるものではなく、任意の通信方式を採用することが可能である。
【００４１】
また、本実施形態は仮想装置１２０及び仮想装置２２０とネットワークを介して接続される管理装置５００を更に有している。
【００４２】
なお、図１に示したのは、あくまで実施形態としての一例であり種々の変更を加えることが可能である。例えばメモリ制御部１０２、２０２はチップセット以外の場所に実装されてもよい。例えばチップセットではなく、演算部１０１、２０１の内部に搭載されていてもよい。
【００４３】
更に、高速記憶部３００及び高速記憶制御部３１０は必ずしも両物理装置の外部にある必要はなく、どちらかの物理装置の筐体内部に搭載されていてもよい。
【００４４】
また、本ブロック図は一般に論理的な関係を示すものであり、物理的接続状態は必ずしもこれに限定されるものではない。更に、管理装置５００と仮想化部１１０、２１０及び高速記憶制御部３１０への通信はネットワーク４００を経由してもよいし、経由しなくてもよい。
【００４５】
これらの各部はそれぞれ概略次のように動作する。
【００４６】
演算部１０１及び２０１は各種プログラムを実行する演算処理を行なう。
【００４７】
主記憶部１０２及び２０２はＤＲＡＭに代表される記憶装置で、物理装置は少なくとも一つ以上の主記憶部を有し、一般に上記演算部１０１、２０１の近くに実装され、演算部１０１、２０１とのデータ通信は非常に高速であるとする。
【００４８】
通信インターフェース部１０４、２０４はメモリ制御部１０２及び２０２と高速記憶制御部３１０が互いにリモートに位置していてもネットワーク４００を通して通信できるようネットワークプロトコル処理を行なう。
【００４９】
ネットワーク４００は例えば、Ｅｔｈｅｒｎｅｔに準拠したスイッチ・ルータなどで構成されるネットワークを表し、エンドポイント間でデータの送受信を可能にする。このデータ通信は信頼性を確保することが好ましい。そのため、パケットが棄却された場合は再送し、かつ送信レートをコントロールすることで輻輳を抑制する、といった機能を特にハードウェア化された形態で有することが望ましい。
【００５０】
この処理を実現するための機能は、通信インターフェース部１０４、２０４に実装されていてもよいし、ネットワーク４００と通信インターフェース部１０４、２０４の両方に実装されていてもよい。前者の場合、例えばＴＣＰに準拠する機能のエンドポイントへの実装等により実現することが可能である。また、後者の場合はネットワークではクレジット方式によるパケット棄却が起きないような仕組み、エンドポイントではネットワーク側からの輻輳度合い信号をもとにした送信レートのコントロール機能の実装、等により実現可能である。もっとも、同等の機能が実現できるのであれば、具体的な手段は必ずしもこの限りではない。
【００５１】
高速記憶装置３００はＮＡＮＤ型フラッシュメモリ（以下、適宜「ＮＡＮＤ  Ｆｌａｓｈ」と記述する。）やＤＲＡＭ、ＳＲＡＭといった高速でのデータ読み書き処理が可能なデバイスである。すなわち、少なくともハードディスクなどのデバイスに比べて桁違いに高速に動作し、主記憶装置と少なくとも同等若しくは若干低速で動作するデバイスである。
【００５２】
高速記憶制御部３１０は、演算部１０１及び２０１からの高速記憶装置３００に対する安全なアクセスが可能なように設定・制御を行なう。本実施形態の説明において特に重要な機能は高速記憶部３００の記憶領域管理の方式などであるが、これは本実施形態の構成要素を高速記憶部３００の記憶領域管理の方式のみに限定するという趣旨ではない。
【００５３】
メモリ制御部１０２、２０２は仮想化部１１０、２１０等のオペレーションシステムに代表される管理者権限を持ったソフトウェアが管理するメモリ空間のアドレスと、実際の物理的な記憶デバイスの物理アドレスとの対応を管理する部分である。
【００５４】
仮想装置１２０及び２２０は仮想化部１１０、２１０に管理され、仮想的な資源が提供されたコンピュータ装置であり、その上でオペレーションシステムを典型例とする管理ソフトウェアやアプリケーションプロセスが動作する。
【００５５】
管理装置５００は主に、仮想化部１１０、２１０と高速記憶制御部３１０の設定を管理する。
【００５６】
以下の説明では、第１の物理装置１００及び第２の物理装置２００とそこで動作するソフトウェアプログラムとを含めて、それぞれ第１の計算機１、第２の計算機２と呼ぶこととする。また、ディスクデバイスはＳＡＮ（Storage Area Network）やＮＦＳ（Network File System）などを利用し両計算機で共有されているとする。
【００５７】
[動作の説明] 
【００５８】
次に、図１、図２、図３−１、図３−２及び図４のフローチャートを参照して本実施形態の全体の動作について詳細に説明する。
【００５９】
１．処理設定
【００６０】
まず、マイグレーションの際の動作について説明する前提として、第１の計算機１及び第２の計算機２を起動する際に、仮想化部１１０、２１０が管理するメモリ空間を構成する方法を詳細に説明する。併せて、本実施形態のメモリ割当ての概念についても説明する。
【００６１】
第１の計算機１のメモリ空間１１１は主記憶部１０３と高速記憶部３００から構成される。一般にＩ／Ｏデバイスは仮想化部の起動時に認識される際に、主記憶部と同様にそのレジスタへのアクセスのためのアドレスをメモリにマップし、演算部からアクセスすることが可能である。本実施形態において、高速記憶部３００も同様の手法ですべての領域（図１の例では領域３０１と３０２）をマップしておく。
【００６２】
オペレーティングシステムとして例えば６４ｂｉｔ対応のものを用いれば理論的には１６ＥＢの領域をメモリ領域として持つことが可能である。この点、現在の典型的オペレーティングシステムでは例えばＴＢ程度のメモリ空間を持つことができるよう設計されている。
【００６３】
今回の説明においては、高速記憶部３００の一部の領域３０１を第１の計算機１に、領域３０２を第２の計算機２に排他的に割り当てるとする。その割当ては、図２に示すように、メモリ空間のうち、利用可能領域と利用不可領域との属性を与えることで実現する。例えば領域３０１に該当する部分は第１の計算機１のメモリ空間内では利用可能に、第２の計算機２では利用不可に設定され、それは管理装置５００からの命令によって起動時に設定される。図２では領域Ａ１が利用可能領域で、例えば主記憶部１０２全てと高速記憶部の領域３０１が仮想化部１１０のメモリ空間における利用可能領域に設定されている。仮想化部１１０は仮想装置にメモリ空間を割り当てる時にはこの利用可能領域のみ利用するよう割り当てを行ない、利用不可領域は利用しない。
【００６４】
同様に仮想化部２１０のメモリ空間においても、記憶領域３０２に対応する部分は主記憶装置部分とあわせて利用可能に設定され（この領域は、図中の領域Ａ２に相当）、それ以外は利用不可に設定されている。
【００６５】
一般に論理メモリアドレスと物理メモリアドレス変換は高速に行なわれる必要があるためメモリ制御部としてハードウェア回路デバイスを用いて実現される。そして、もし利用不可部分へのアクセスがあった場合は例外を発生させ、利用可能部分以外へのアクセスを禁止することで複数の計算機の間でセキュアな利用が確保される。高速記憶制御部３１０はＰＣＩ−ＳＩＧで規定されているＩＯＶ（I/O Virtualization）などの仮想化システムにおけるＩＯ仮想化機能に準拠するようにしてもよい。そして、ＩＯ仮想化機能に準拠することで、各仮想装置に割り当てられた領域をより管理容易性が高く高速で安全なデバイス共有を実現することが可能であり、本説明もそれを前提とする。もっとも、同等の機能が実現できるのであれば、具体的な手段は必ずしもこの限りではない。
【００６６】
［マイグレーション動作］
【００６７】
次に図４のフローチャートと図３の概念図を参照して、本発明のマイグレーション部分の詳細動作について説明する。
【００６８】
すでに述べた通り、本発明はマイグレーションの際に、仮想装置のサービスが停止する要因である主記憶部間でのメモリ転送・コピーにかかる時間を短縮する方法を提供することを目的としている。以下にその動作フローについて順を追って説明する。なおマイグレーションの実施前は、仮想装置１２０にはメモリ空間１１１のうち、主記憶部部分から利用可能メモリ領域Ａ３が割り当てられている（図１では領域１０３−１に対応）とする。
【００６９】
まず、管理装置５００や、直接仮想化部１１０が操作を受け付けることにより、マイグレーションの開始コマンドが発行される（ステップＳ６０１）。
【００７０】
高速記憶装置３００部分の利用可能領域から領域Ａ３と同じ大きさの領域Ａ４を確保し、バックグラウンドで領域Ａ３の内容を領域Ａ４にコピーする。この間、仮想装置１２０の動作は停止せず、一度コピーが終わった後に再度書き換えが生じた場合はダーティメモリとして情報を残す（ステップＳ６０２）。
【００７１】
次に、可能な限りサービス停止時間を短縮するために、移行先の仮想化部２１０において仮想装置１２０の立ち上げのための事前処理を行なっておく（ステップＳ６０３）。本処理は実装などにも依存するが、たとえばＸｅｎなどに代表される仮想化部の場合、仮想装置に割り当てるリソース設定（割り当てメモリ領域やＣＰＵ資源分配のためのパラメータなど）などの新規仮想装置起動のために必要な設定一般を指す。メモリの中身のデータは現在は第１の計算機１上のメモリ空間にあるものを上書きすることになるが、その上書きが完全に完了するまで少なくとも仮想装置は動作させず、比喩的にはいわば仮想装置の「箱」だけを作っておく。ここでは本実施形態において重要となるメモリ領域の説明のみを行なう。移動する仮想装置に割り当てられているメモリ領域と同じ大きさのメモリ領域を確保しておく。確保するメモリは主記憶部２０３の領域２０３−１とする。
【００７２】
ステップＳ６０２で行なったデータ同期処理が一度終了した後、次はダーティメモリのみを再度バックグラウンドコピーする（ステップＳ６０４）。
【００７３】
最初のうちはダーティメモリの量が減っていくため、逐次コピーを繰り返す（ステップＳ６０５においてＮｏ、ステップＳ６０４）。もっとも、一般に逐次コピーを繰り返していると、コピー時間が有限で仮想装置が動作している以上、メモリの更新は或るレート（頻度）で起こっているため、逐次コピー量があまり減少しなくなってくる。その飽和点となったら（ステップＳ６０５においてＹｅｓ）ステップＳ６０６に進む。なお飽和点の判断は例えば事前に設定した値と、ダーティメモリコピー量の変化率などを比較することで実現可能であるが、方法は必ずしもこの限りではない。
【００７４】
仮想装置のこれ以降のメモリ書き込みに関しては主記憶部１０２と高速記憶部３００の両方への同時書き込みを行なうことで、主記憶部１０２と高速起動部３００を同期させる。主記憶部１０２と高速起動部３００の仮想装置データの領域が完全に同期するまで残りのダーティメモリの書き込みを続ける（ステップＳ６０６）。
【００７５】
同期処理が終了したら仮想装置を一時停止し領域Ａ４を第１の計算機１では利用不可に、第２の計算機２では利用可能に変更する（ステップＳ６０７）。ここで、計算機に割り当てる総メモリサイズを保存するための一つの方法としては、高速記憶制御部３１０が図３に示したように、現在第２の計算機２で利用可能と設定されている領域Ａ４と同じ大きさの領域Ａ５をあらかじめ用意し、その領域を交換する方法を用いることができる。なお、この方法はあくまで一例であり、必ずしもこの方法を用いる必要はない。たとえば、高速記憶制御部３１０は、物理的なアドレスそのものではなく仮想的な記憶装置領域を示すアドレスを計算機に提示しておき、本当の物理的アドレスと仮想的なアドレスの対応テーブルを管理しておき、このテーブルを書き換える、ということによって交換するということも可能である。
【００７６】
仮想化部２１０は領域Ａ４に対応するメモリ空間内の領域を使って仮想装置を起動する。これは例えば、ステップＳ６０３でした事前処理で設定したメモリ領域２０３−１へのアクセスはすべて高速記憶装置の領域Ａ４の物理アドレスを使うようにメモリ制御部２０２にあらかじめ設定することで実現可能である（ステップＳ６０８）。
【００７７】
バックグラウンドで記憶領域Ａ４部分のデータを主記憶装置のメモリ領域２０３−１にコピーする（ステップＳ６０９）。このコピーは、ステップＳ６０４〜ステップＳ６０５と同様に逐次的にダーティメモリをコピーし、適当なところで高速記憶部と主記憶部への同時書き込みを行い完全に領域Ａ４と領域２０３−１が同期したら、それ以降は領域２０３−１を用いるよう論理メモリアドレスと物理メモリアドレスをマッピング設定することにより行う。
【００７８】
次に、本実施形態の効果について説明する。
【００７９】
本実施形態では、仮想装置のメモリデータを第１の計算機１から第２の計算機２に移す際に、ネットワークプロトコルを利用したコピーではなく、高速記憶部へのダイレクトなメモリ書き込み処理と当該領域の付け替えのみで行なうように構成されている。そのため、不要なプロトコル処理やメモリコピーを減らすことができ、仮想装置のマイグレーションの高速化が図れる。
【００８０】
仮想装置の完全停止は第１の計算機１から第２の計算機２への高速記憶部３００における当該領域の所有権の付け替え処理の時間のみであり、従来の手法と異なりダーティメモリ発生率の飽和点から第１の計算機１から第２の計算機２へのネットワーク越しのコピーによるデータ転送処理に起因するオーバーヘッドは生じない。
【００８１】
つまり例えば通常のＴＣＰを利用した転送では、送信側では一度送信バッファにデータをコピーし、ＴＣＰのプロトコル処理を行ない、セグメントごとに分けられたデータをＮＩＣのレジスタにコピーし、それをネットワーク越しに送信する。そして送信途中には、ＡＣＫ処理を行ない、もしパケットが棄却されたら再送信する。また、受信側では、ＮＩＣから割り込みが入ったら受信データを一度受信バッファにコピーし、そのデータをコピーして該当する受信プロセスに渡すことで実現される。
【００８２】
一方、本実施形態ではこれらの処理に対し、高信頼転送にかかわる部分は通信インターフェース部１０４、２０４でハードウェア化されるためプロトコル処理に起因するオーバーヘッドを省くことが可能である。加えて、ネットワークプロトコルを用いるための不要なデータコピーを省くことが可能である。
【００８３】
最後のダーティメモリコピーの直前から領域付け替えが終了するまでの仮想装置の処理速度は高速記憶部へのアクセス速度に依存するが、このダーティメモリコピーは、演算部からの直接書き込みである。これは異なるメモリアドレスへのデータコピーと同様の処理で行なわれるため、上記のような処理オーバーヘッドは本質的に生じておらず、何より仮想装置を停止する必要はない。
【００８４】
また、本発明実施形態では、さらに、仮想装置の移動に際して、一連の処理を、最後のダーティメモリの高速記憶部への書き込み、所有権の付け替え、高速記憶部上のダーティデータから主記憶部への書き込みに分割して考える。そして、その時の負荷率やダーティメモリ（データ）発生率にあわせた柔軟な仮想装置の移行による、連続サービス停止時間と仮想装置の処理速度の柔軟なマネジメントが可能である。仮想装置上で動くプログラムの特性によっては、例えば高速記憶部の動作速度が遅くかつダーティメモリ量の発生率が大変高いような場合がある。このような場合は、いったん仮想装置を停止し、最後のダーティメモリを移した後に再度仮想装置を再開し、付け替え処理の準備をすべて整えてから、次は所有権の付け替えのみを行なうといった処理など、その状況に合わせたマネジメントが可能となる。同様に高速記憶部１０２から主記憶部２０３への移動も必要なときに行えばよいため、例えば現在の負荷率やダーティメモリ発生率、アクセス速度などを勘案して移行処理を行なうことが可能である。さらに、今回の説明では高速記憶部の領域割り当ては第１の計算機１、第２の計算機２の間で排他的に行なったが、ｒｅａｄ処理はデータを破壊しないため、例えば付け替え直前までは第２の計算機２から領域Ａ４（図１では３０１）へのｒｅａｄ処理を許可し、メモリ領域２０３−１へのデータコピーを併せて行なわせておくことで更に高速化を図ることも可能である。
【実施例１】
【００８５】
次に、具体的な実施例を用いて本発明を実施するための形態の動作を説明する。【００８６】
図５に実施例１を示す。図５に示すように、第１の物理装置２０００及び第２の２１００はその内部にＣＰＵ２００１、２１０１、ＮＩＣ（ネットワークインターフェースカード）２００６、２１０６、ＳＯＵＴＨＢＲＩＤＧＥ２００５、２１０５、ＮＯＲＴＨＢＲＩＤＧＥ２００３、２１０３、メインメモリ２００２、２１０２、Ｂｒｉｄｇｅ２００４、２１０４をそれぞれ有する。当該第１の物理装置２０００及び第２の２１００上でＸｅｎやＶＭＷａｒｅなどに代表されるＨｙｐｅｒｖｉｓｏｒ２０１０、２１１０が動作し、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）２０２２が作成され、動作している。【００８７】
なおここでＶＭ２０２２現在は物理装置２０００上で動作し、移動後は物理装置２１００で動作するものを指すとする。この点を明示すべく図中では、物理装置２０００上のＶＭ２０２２を破線、移動後の物理装置２１００上のＶＭ２０２２を実線で表す。【００８８】
また管理サーバ２３００、Ｂｒｉｄｇｅ２２０３、ＮＩＣ２００６、２１０６はスイッチ２２０４に接続され、互いに通信が可能である。このネットワークは典型的にはＥｔｈｅｒｎｅｔなどに代表されるネットワークであるがそれに限定されるものではない。本実施例では一つのネットワークスイッチ２２０４で全てが接続されるようにＢｒｉｄｇｅはＰＣＩｅ−Ｅｔｈｅｒｎｅｔのプロトコル変換を行なう。そして、管理サーバ２３００がＨｙｐｅｒｖｉｓｏｒにアクセスする時はＮＩＣ２００６及び２１０６を用い、ＢｒｉｄｇｅやＭＲ−ＩＯＶ  ＰＣＩｅコントローラにアクセスする時はＢｒｉｄｇｅを介している。もっともこの構成は一例であり、これらは別々のネットワークで構成されていてもよい。管理サーバ２３００はまたスイッチ２２０４にもアクセス可能でありその設定などを変更することができる。また、ＢｒｉｄｇｅにはたとえばＥＣＮ、ＢＣＮやＱＣＮといった送信レートの制御機能及びパケットロスを検出し再送する機能が搭載されていてもよい。また、それ以外にも、レートをコントロールする機能のみがあり、たとえばＰＡＵＳＥやクレジット方式による送受信方式などによりパケットロスを起こさない仕組みがネットワーク側に組み込まれていていることが望ましい。更にＢｒｉｄｇｅは送信レート制御や再送制御などの高信頼通信を行う上で、ネットワークからの信号を利用するなどして連携して行なってもよいし、完全にエンド−エンドで制御を行なってもよい。Ｈｙｐｅｒｖｉｓｏｒなどの管理プログラムやＣＰＵからはＴｒａｎｓｐａｒｅｎｔな形でハードウェア的に高速かつ高信頼なデータ転送処理機能が組み込まれていることが望ましい。もっとも、パケットロスがゼロであることを保証できる限りにおいて、これらの方式に制限されるものではない。【００８９】
さらに本実施例において、Ｂｒｉｄｇｅ２２０３にはＭＲ−ＩＯＶ（Multi-Root I/O virtualization）対応ＰＣＩｅコントローラである、ＭＲ−ＩＯＶ  ＮＡＮＤ  Ｆｌａｓｈコントローラ２２０２と、さらに高速記憶装置としてＮＡＮＤ  Ｆｌａｓｈ２２０１が接続されている。【００９０】
ＮＯＲＴＨＢＲＩＤＧＥにはメモリコントローラが実装されており、ＣＰＵとメインメモリやＢｒｉｄｇｅを通したＦｌａｓｈ間のアクセスなどの高速信号部分を処理する。特にＮｏｒｔｈｂｒｉｄｇｅとＭＲ−ＩＯＶ  ＰＣＩｅコントローラ間はＰＣＩｅで接続されており、メインメモリへのアクセス速度に対して大きく遜色せず、この間の通信がボトルネックにならない程度に高速な帯域が確保されていることが望ましい。ここでＮＯＲＴＨＢＲＩＤＧＥ２００３及び２１０３はＰＣＩｅネットワークにおけるＲｏｏｔ  Ｃｏｍｐｌｅｘとして認識される。本実施例ではＭＲ−ＩＯＶを用いた。また、その他にもＳＲ−ＩＯＶ（Single Root IOV）を用いて、Ｂｒｉｄｇｅとネットワークスイッチでアドレス空間を切り分けることで同等の効果を付与し、複数ＲｏｏｔＣｏｍｐｌｅｘでも動作設定可能なような機能を搭載することも可能である。【００９１】
ＳＯＵＴＨＢＲＩＤＧＥは主に低速側インターフェースを担い、ＮＩＣに代表されるＩ／ＯカードとＣＰＵなどとの接続を担当する。【００９２】
本実施例は、起動時に第１の物理装置２０００及び第２の２１００（第１の物理装置２０００及び第２の２１００の文言には、ハードウェアとしての第１の物理装置２０００及び第２の２１００、その上で動作するプログラム、若しくは物理装置とプログラムの組合せが含まれるものである。）はＮＡＮＤ  Ｆｌａｓｈ２２０１の一部または全部を自分の管理デバイスとして設定する。【００９３】
管理サーバ２３００はあらかじめＮＡＮＤ  Ｆｌａｓｈコントローラ２２０２に対してどの物理装置にどれくらいの領域を可視にして、そのうちどのくらいの領域を利用可能領域として割り当てるかを設定しておく。物理装置は起動時に可視領域を自分の管理デバイスとして登録し、メモリ空間にマップするが、同時に管理サーバ２３００は物理装置に対してそのうちの利用可能領域を通知する。これにより、Ｈｙｐｅｒｖｉｓｏｒはどのメモリ領域が各プログラムやＶＭに対して割り当て可能であるかを認識し、属性設定を行なう。ＮＯＲＴＨＢＲＩＤＧＥに搭載されたメモリコントローラはこの情報をもとにアクセス監視を行い、禁止された部分へのアクセス要求があった場合はそのアクセスを遮断し、Ｈｙｐｅｒｖｉｓｏｒに通知する。【００９４】
また、ＮＡＮＤ  Ｆｌａｓｈコントローラにおいても同様のアクセス管理機能が搭載され、同時に設定されていることが望ましい。本機能によりＶＭからＩ／Ｏデバイスへの直接アクセスが可能となるため処理の高速化が図れる。ＨｙｐｅｒｖｉｓｏｒはＶＭを起動する時にメモリ領域を割り当てるが、その情報はＮＡＮＤ  Ｆｌａｓｈコントローラにも通知される。そして、ＭＲ−ＩＯＶで規定された機能を用いてそのＶＭが利用する領域を設定する。これによりＶＭから直接アクセスに対しても領域の保護が可能となる。【００９５】
次にＶＭのマイグレーション動作について詳細に説明する。管理サーバからＶＭのマイグレーションコマンドを発行すると、Ｈｙｐｅｒｖｉｓｏｒ２０１０はＶＭのマイグレーションを開始する。これは直接管理者がＨｙｐｅｒｖｉｓｏｒ２０１０の該当コマンドを入力してもよい。Ｈｙｐｅｒｖｉｓｏｒは、本発明の実施形態として図４に示したものと同様のフローで、ＶＭ２０２２のメモリ領域をＮＡＮＤ  Ｆｌａｓｈがマップされている領域にコピーする。逐次コピーを繰り返し、ダーティメモリ発生率が飽和したところでＨｙｐｅｒｖｉｓｏｒはＶＭ２０２２からのメモリ書き込み処理の発生に対してメインメモリへの書き込みと同時にＮＡＮＤ  ＦＬＡＳＮへの書き込みを行う。そして、メインメモリとＮＡＮＤ  ＦＬＡＳＨとの当該領域の完全同期が実現されるまでバックグラウンドではダーティメモリのコピーを行う。同期が達成された後にＶＭ２０２２はＮＡＮＤ  Ｆｌａｓｈのみへアクセスするようにする。同時にＨｙｐｅｒｖｉｓｏｒ２１１０は新しいＶＭの起動準備を行なう。このときに、まずＮＡＮＤ  ＦｌａｓｈのＶＭ２０２２の利用する領域をＲＥＡＤ  ＯＮＬＹで第２の計算機２に可視にして、その情報をメインメモリに確保された領域に常に逐次コピーして同期させておいてもよい。同期が終了した後、必要なら負荷率の変動なども監視しながら、適当なタイミングでＶＭを一時停止し、実施の形態に記述の要領でＮＡＮＤ  Ｆｌａｓｈの利用可能領域と利用不可領域の更新を行う。これにより、第２の計算機２からＶＭ２０２２領域へのアクセスが可能であるようにし、Ｈｙｐｅｒｖｉｓｏｒ２１１０は新規作成しておいたＶＭのメモリ領域の物理アドレスを当該高速記憶装置のデータ部分に指定して起動する。同時にダーティメモリをメインメモリ上に確保された領域にコピーすることで両者の同期をはかり、適当なタイミングでメインメモリ領域にマッピングしなおすことでマイグレーションは完全に終了する。【００９６】
なお、図４に示した処理フローはＮＡＮＤ  Ｆｌａｓｈを介することで段階を踏みながらマイグレーションが可能であるが、どのタイミングでどうＶＭを移動させるべきかはＶＭの動作状況やＮＡＮＤ  ＦＬＡＳＨへのアクセス速度で変わるものである。
【実施例２】
【００９７】
本発明の第２の実施例としてバックアップサーバの構築へ応用することが考えられる。【００９８】
具体例としては、例えば図６に示すように、物理装置３０００をマスターサーバ、物理装置３１００をスレーブ（バックアップ用）サーバとする。ＮＡＮＤ  Ｆｌａｓｈは前記の実施の形態と同様にネットワークスイッチを通して共有され、物理装置３０００及び３１００の論理メモリ空間にマッピングされているとする。物理装置３０００と物理装置３１００はＮＡＮＤ  Ｆｌａｓｈを共有し、物理装置３０００の利用可能領域のうち一部を物理装置３１００からでも利用可能と設定されている。ただし、その重複領域は物理装置３１００からは読み出しのみが可能であるとする。物理装置３０００の上ではＶＭ３０２０が動作し、メインメモリ３１００においてそのメモリ領域３２０１が確保されている。ここで、バックグラウンドで常にダーティメモリはＮＡＮＤ  Ｆｌａｓｈ上にマッピングされた領域３２０２にコピーされており、この領域３２０２は物理装置３１００からも読み出しのみアクセスが許可されている領域であるとする。【００９９】
一方で物理装置３１００ではやはりＶＭ３１２０が動作しているが、そのメモリ領域は物理的にはメインメモリ３１０１に論理メモリ空間では領域３２０３として確保されている。物理装置３１００は読み出し可能である領域３２０２から３２０３へ常に差分データ（ダーティメモリ）をコピーしている。このため、ＶＭ３０２０のメモリデータはＶＭ３１２０のメモリデータと差分データのコピーにかかる時間を除けば同じものであり、例えば、ある瞬間に物理装置３０００のＣＰＵやメモリなどのデバイスが故障するなどのなんらかの障害が起きた時でも、すぐに物理装置３１００上のＶＭ３１２０に切り替えることで、瞬時にバックアップサーバへの以降が可能となる。【０１００】
典型的なアプリケーションとしては、Ｗｅｂサーバに代表される外部からのアクセスに対して何らかの処理を行なうようなシステムを考える。一般的にはこのようなサーバはユーザからのアクセスを契機に新たな演算を行なう。そして、物理装置３０００が故障しても、すぐさま物理装置３１００へ切り替えれば、次にユーザがアクセスしてもユーザからはその故障に気づくことなくサービス利用が継続して提供される。ちょうどユーザアクセスの処理をしている最中に故障した場合は、差分データの書き込みディレイ分に関係する処理については復旧不可能ではある。しかし、その場合のために、処理に不整合があったことを検出したらその処理事態をアボートする処理を入れるようアプリケーションプログラムを設計すればよく、問題とはならない。【０１０１】
以上説明した、本発明の実施形態及び実施例は、以下のような効果を奏する。【０１０２】
第１の効果は、仮想装置が異なる物理装置の間で高速に移動しそのサービス停止時間を削減できることにある。【０１０３】
その理由は、従来のデータコピー方式ではなく、メインメモリとは別に設定された複数物理装置間で高速記憶デバイスを共有し、その特定領域の所有権が動的に設定可能な高速記憶デバイスを用いてその領域の所有権を物理装置間で付け替える処理のみで同等の効果を奏することができるためである。【０１０４】
第２の効果は、第１の効果を実現する上で必要な処理が非常に簡略なものでよいことにある。【０１０５】
その理由は、仮想化部などのソフトウェアの大幅な変更が不要であり、かつ高速記憶デバイスの追加にともなう設定処理は簡単に自動化ができ、実際の移動に際して必要な動的処理も非常に簡単な設定変更で実現できるためである。【０１０６】
第３の効果は、仮想装置の異なる物理装置の間の移動において性能を最大限に発揮できるよう移動プロセスが柔軟に設定できることにある。【０１０７】
その理由は、本発明の実施形態によれば高速記憶部へのアクセス速度やダーティメモリ発生率、仮想装置の負荷率など様々なパラメータを元に仮想装置の起動や停止のタイミングの設定幅が広く取れるためである。【０１０８】
第４の効果は、複数の物理装置上の複数ホストプログラム間でお互いの存在を意識せずにかつ矛盾なくデバイス共有が行えることである。【０１０９】
本発明に関連する技術として、例えば、一台の物理装置における入出力装置の共有に関して、ホストプログラムというデバイスを完全に管理できるプログラムが、その支配下にある仮想計算機のアクセスについてマッピング情報の更新を行うといった技術が考えられる。もっとも、このような技術では複数の物理装置間での複数ホストプログラム間でお互いの存在を意識せずにかつ矛盾なくデバイス共有することができなかった。【０１１０】
しかし、本発明では、異なる物理マシン上で動作する複数のホストプログラムが共有するネットワーク上に位置するデバイスに関するマッピング情報の管理をしており、ただ単なるマッピング情報の更新ではない。そのため、上述したように、複数ホストプログラム間でお互いの存在を意識せずにかつ矛盾なくデバイス共有が行えるという効果を奏することができる。【０１１１】
なお、本発明の実施形態である仮想装置の高速移動システムは、ハードウェアにより実現することもできるが、コンピュータをその仮想装置の高速移動システムとして機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。【０１１２】
また、本発明の実施形態による仮想装置の高速移動方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。【０１１３】
また、上述した実施形態は、本発明の好適な実施形態及び実施例ではあるが、上記実施形態及び実施例のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。【０１１４】
本願は、日本の特願２００９−１０９０８３（２００９年４月２８日に出願）に基づいたものであり、又、特願２００９−１０９０８３に基づくパリ条約の優先権を主張するものである。特願２００９−１０９０８３の開示内容は、特願２００９−１０９０８３を参照することにより本明細書に援用される。  【０１１５】
本発明の代表的な実施の形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。【０１１６】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。【０１１７】
（付記１）  ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動システムであって、
前記物理装置は、各々が有する主記憶部に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶部及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いることを特徴とする仮想装置の高速移動システム。【０１１８】
（付記２）  付記１に記載の仮想装置の高速移動システムにおいて、
前記物理装置は、前記仮想装置を作成するための部分である、仮想化部を更に備えており、
当該仮想化部は、前記主記憶部の物理的なアドレス及び前記高速記憶装置の物理的なアドレスの両方からなる物理的なアドレス空間にマッピングされた論理的なメモリアドレス空間を有していることを特徴とする仮想装置の高速移動システム。【０１１９】
（付記３）  付記１又は２に記載の仮想装置の高速移動システムにおいて、
或る仮想装置に対して割り当てられたメモリアドレス空間領域について、動的にその物理アドレスと論理アドレスの前記マッピング情報を変更し、アクセス制御のための記憶領域の所有権情報を併せて変更することを特徴とする仮想化された計算機システムにおける仮想装置の高速移動システム。【０１２０】
（付記４）  付記１乃至３の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記高速記憶装置は、前記主記憶部と比べ若干の低速若しくは同等以上の速度で動作する記憶装置であり、当該高速記憶装置が、前記物理装置が更に備えるメモリ制御部及び演算部と性能ボトルネックにならない程度に高速なインターフェースで接続されていることを特徴とする仮想装置の高速移動システム。【０１２１】
（付記５）  付記１乃至４の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記高速記憶装置の制御管理と、前記物理装置との間のアクセスを制御する記憶装置制御部を更に備えており、
当該記憶装置制御部は、特に前記高速記憶装置の一部または全部の記憶領域について、当該高速記憶装置を共有している前記物理装置又は前記仮想装置単位で付与された前記アクセスに関する所有権を管理することを特徴とする仮想装置の高速移動システム。【０１２２】
（付記６）  付記１乃至５の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置は、前記論理メモリアドレスと物理メモリアドレスとの対応を、チップセットの特にはＮＯＲＴＨＢＲＩＤＧＥ、若しくは、演算装置に搭載されたメモリーマネジメントユニットを用いて管理することを特徴とする仮想装置の高速移動システム。【０１２３】
（付記７）  付記１乃至６の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置間の前記ネットワークを介した接続による通信のために、ネットワークスイッチの集合を有しており、前記接続に際し、キュー管理に基づく輻輳制御、パケット棄却率の低減又はゼロ化、といった高信頼性通信のための機能を有することを特徴とする仮想装置の高速移動システム。【０１２４】
（付記８）  付記７に記載の仮想装置の高速移動システムにおいて、
前記ネットワークを介した接続による通信のために規定された第１のプロトコルと、前記物理装置と前記高速記憶装置との通信のために規定された第２のプロトコルと、を変換するブリッジを有しており、前記物理装置内で動作するソフトウェアプログラムからはネットワーク介した接続が透明的であることを特徴とする仮想装置の高速移動システム。【０１２５】
（付記９）  付記８項に記載の仮想装置の高速移動システムにおいて、
前記ブリッジと前記ネットワークスイッチが、前記ネットワークスイッチからのフィードバック信号を利用することにより連携し、送信レートの制御や、棄却されたパケットについて再送する、といった高信頼性を保つ機能を有することを特徴とする仮想化された計算機システムにおける仮想装置の高速移動システム。【０１２６】
（付記１０）  付記１乃至９の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置とは異なる計算機が、前記物理装置及び高速記憶装置が通信を行うために用いているネットワークと同一のネットワーク又は当該同一のネットワークとは別の専用ネットワークを介して接続されており、
当該計算機が、前記アドレスマッピング情報を含む計算機上の記憶領域の管理や、仮想装置の移動の契機の管理を行なうことを特徴とする仮想装置の高速移動システム。【０１２７】
（付記１１）  付記１乃至１０の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記アドレスマッピング情報のマッピングは当該計算機システムの起動時に行なわれ、前記高速記憶装置はＩ／Ｏデバイスとして読み込まれ、前記物理装置の管理するメモリ領域にマッピングされ、当該マッピングに際し、予め設定された領域割り当て情報を用いて、前記物理装置の各々に対して、認識・登録を許可する記憶領域と、認識・登録は許可するが使用不可の属性を付与する記憶領域と、を設定することを特徴とする仮想装置の高速移動システム。【０１２８】
（付記１２）  付記１１に記載の仮想装置の高速移動システムにおいて、
前記許可の種類は読み込みのみ、或いは、読み込み及び書き出しといった細かい粒度で設定が可能なことを特徴とする仮想装置の高速移動システム。【０１２９】
（付記１３）  付記１乃至１２の何れか１項に記載の仮想装置の高速移動システムにおいて、
前記物理装置上で動作するアプリケーションプログラム、若しくは前記仮想装置として動作するアプリケーションプログラムが、アクセスを許可されていない領域についてアクセスが発生した時は、当該アクセスが制限されることを特徴とする仮想装置の高速移動システム。【０１３０】
（付記１４）  第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする仮想装置の高速移動システム。【０１３１】
（付記１５）  前記主記憶部から前記高速記憶装置へのコピーの間、前記仮想装置は停止させず、バックグラウンドで逐次的に書き換えのあったデータ部分のみのコピーによる同期処理を行ない、当該コピーにかかる時間に書き換わるデータの量が飽和したと判断した時点から、差分データコピーと同時に仮想装置からの当該領域データへの書き込み処理の発生に対して主記憶部のみならず高速記憶装置へも同時書き込みを開始し、同期が完全に終了したところで、それ以降は主記憶部から高速記憶装置にアクセスするように論理アドレスと物理アドレスのマッピング更新を行うことにより仮想装置の動作を継続することを特徴とする付記１４に記載の仮想装置の高速移動システム。【０１３２】
（付記１６）  前記所有権の付け替え処理の後、移動前仮想装置と同様の設定情報を有し、第２の物理装置の演算装置上で動作する新規に起動された移動後仮想装置が、前記高速記憶装置上の仮想装置のメモリデータにアクセスすることで第１の物理装置上で動作していた前記移動前仮想装置と全く同じ動作を継続し、前記第１の物理装置から第２の物理装置へ前記仮想装置移動させた方法と同様の方法で、前記高速記憶装置から第２の物理装置の主記憶部に仮想装置の停止を伴わずデータが移行されることを特徴とする付記１４又は１５に記載の仮想装置の高速移動システム。【０１３３】
（付記１７）  前記移動対象の仮想装置のメモリデータが逐次的に書き込まれる前記高速記憶装置の領域について、前記所有権の付け替え前から、第２の物理装置からのアクセスを完全利用不可から読み出しのみ可に設定することで予め第２の物理装置の主記憶部上の当該仮想装置のために確保されたメモリ領域にデータを逐次的に移動することを特徴とする付記１４乃至１６の何れか１項に記載の仮想装置の高速移動システム。【０１３４】
（付記１８）  ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理装置であって、
前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする管理装置。【０１３５】
（付記１９）  前記主記憶部から前記高速記憶装置へのコピーの間、前記仮想装置は停止させず、バックグラウンドで逐次的に書き換えのあったデータ部分のみのコピーによる同期処理を行なわせ、当該コピーにかかる時間に書き換わるデータの量が飽和したと判断した時点から、差分データコピーと同時に仮想装置からの当該領域データへの書き込み処理の発生に対して主記憶部のみならず高速記憶装置へも同時書き込みを開始させ、同期が完全に終了したところで、それ以降は主記憶部から高速記憶装置にアクセスするように論理アドレスと物理アドレスのマッピング更新を行わすことにより仮想装置の動作を継続させることを特徴とする付記１８に記載の管理装置。【０１３６】
（付記２０）  ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動方法であって、
前記物理装置は、各々が有する主記憶装置に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶装置及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いることを特徴とする仮想装置の高速移動方法。【０１３７】
（付記２１）  第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶装置にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする仮想装置の高速移動方法。【０１３８】
（付記２２）  ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理方法であって、
前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶装置にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定することを特徴とする管理方法。【０１３９】
（付記２３）  ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を備えた仮想化された計算機システムにおいて、前記物理装置間で仮想装置を移動させる仮想装置の高速移動プログラムであって、
前記物理装置は、各々が有する主記憶部に加えて、前記高速記憶装置へのアクセスに際し衝突が生じないようにそれぞれに割り当てられている当該高速記憶装置内の領域にアクセスが可能であり、前記物理装置は、前記主記憶部及び前記高速記憶装置が提供する記憶領域に基づいて作成された論理メモリアドレス空間情報、及び、物理的なメモリアドレス情報とのマッピング情報を有し、或る一つの前記物理装置内で動作する前記仮想装置は前記高速記憶装置を介して他の前記物理装置に移動し、当該移動にあたり前記マッピング情報を用いる計算機システムとしてコンピュータを機能させることを特徴とする仮想装置の高速移動プログラム。【０１４０】
（付記２４）  第１の物理装置から第２の物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在する実態メモリデータを、第１の物理装置では利用可能と設定された高速記憶装置にマッピングし、かつ第２の物理装置では登録されているが利用不可と設定された領域にコピーし、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定する計算機システムとしてコンピュータを機能させることを特徴とする仮想装置の高速移動プログラム。【０１４１】
（付記２５）  ネットワークを介して相互に接続された複数の物理装置と、前記物理装置がアクセス可能な高速記憶装置と、を管理し、前記物理装置間で仮想装置を移動させるための管理プログラムであって、
前記物理装置の各々に、アクセスに際し衝突が生じないよう排他的に前記高速記憶装置の記憶領域を割り当て、第１の前記物理装置から第２の前記物理装置への仮想装置の移動に際し、第１の物理装置が有する主記憶部にマッピングされた領域上に存在するメモリデータを、第１の物理装置では利用可能と設定された高速記憶装置の記憶領域にマッピングさせ、かつ第２の物理装置では登録されているが利用不可と設定された高速記憶装置の記憶領域にコピーさせ、前記仮想装置の一時停止中に高速記憶装置の利用可・不可に関する所有権情報を第１の物理装置からは不可に第２の物理装置からは可に設定し直すという所有権の付け替え処理を行うことで第２の物理装置の演算処理装置を用いて仮想装置が動作できるように動的に設定する管理装置としてコンピュータを動作させることを特徴とする管理プログラム。
【産業上の利用可能性】
【０１４２】
本発明によれば、データセンターなどの相互にネットワークを介して接続された少なくとも二つ以上の計算機を有するシステムにおける、高速な仮想装置のマイグレーションによる設定変更といった用途に適用できる。また、高速記憶装置における仮想装置情報の領域をリードオンリーモードで他の計算機で利用することでバックアップサーバとして用いるといった用途にも適用可能である。
【図１】
2010126048.tif 000003
【図２】
2010126048.tif 000004
【図３−１】
2010126048.tif 000005
【図３−２】
2010126048.tif 000006
【図４】
2010126048.tif 000007
【図５】
2010126048.tif 000008
【図６】
2010126048.tif 000009
【図７】
2010126048.tif 000010
【国際調査報告】
2010126048.tif 000011
2010126048.tif 000012