(57)【特許請求の範囲】
【請求項１】
第１のオペレーティングシステムを記憶する第１の記憶領域とは異なる第２の記憶領域に記憶された移行プログラムであって、
前記第２の記憶領域に記憶された第２のオペレーティングシステムで前記第１および第２の記憶領域を有する移行元装置が起動された場合、前記第１の記憶領域に前記第１のオペレーティングシステムが存在することを検出し、
前記第１の記憶領域に前記第１のオペレーティングシステムが存在することが検出された場合、前記第１の記憶領域内の少なくとも前記第１のオペレーティングシステムを含む移行対象データを、前記移行元装置と通信可能な移行先装置へ転送する、
処理を前記移行元装置に実行させることを特徴とする移行プログラム。
【請求項２】
前記転送する処理は、
前記第１の記憶領域に前記第１のオペレーティングシステムが存在することが検出された場合、前記移行対象データに対する転送の単位をブロック単位に設定して、前記移行先装置に前記移行対象データを転送する、
ことを特徴とする請求項１に記載の移行プログラム。
【請求項３】
２つの記憶領域のデータを同期するミラーリング部を有する移行先装置に、
移行対象オペレーティングシステムを含む移行対象データを記憶する移行元記憶領域を有する移行元装置から、前記移行対象データの移行指示を受け付け、
前記移行指示が受け付けられた場合、前記移行先装置の記憶領域のうち前記移行対象オペレーティングシステムがアクセス可能な移行先記憶領域を確保するとともに、前記移行先装置の記憶領域のうち前記移行先記憶領域とは異なる他の記憶領域を確保し、
前記移行先記憶領域が確保された場合、前記移行対象データを前記移行元記憶領域と前記移行先記憶領域とで同期するように前記ミラーリング部を制御し、
前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの書込要求が発行された場合、前記移行元記憶領域への書込を前記他の記憶領域への書込に変更するように前記ミラーリング部を制御し、
前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの読込要求が発行された場合、前記移行元記憶領域および前記他の記憶領域に記憶されたデータを組み合わせたデータを前記移行元記憶領域からの読込結果とするように前記ミラーリング部を制御し、
前記ミラーリング部による同期が完了した場合、前記移行対象オペレーティングシステムからの前記移行対象データへのアクセス要求先を、前記ミラーリング部から前記移行先記憶領域に切り替える、
処理を実行させることを特徴とする移行プログラム。
【請求項４】
２つの記憶領域のデータを同期するミラーリング部を有する移行装置であって、
移行対象オペレーティングシステムを含む移行対象データを記憶する移行元記憶領域を有する他装置から、前記移行対象データの移行指示を受け付ける受付部と、
前記移行指示が受け付けられた場合、前記移行装置の記憶領域のうち前記移行対象オペレーティングシステムがアクセス可能な移行先記憶領域を確保するとともに、前記移行装置の記憶領域のうち前記移行先記憶領域とは異なる他の記憶領域を確保する確保部と、
前記移行先記憶領域が確保された場合、前記移行対象データを前記移行元記憶領域と前記移行先記憶領域とで同期するように前記ミラーリング部を制御し、前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの書込要求が発行された場合、前記移行元記憶領域への書込を前記他の記憶領域への書込に変更するように前記ミラーリング部を制御し、前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの読込要求が発行された場合、前記移行元記憶領域および前記他の記憶領域に記憶されたデータを組み合わせたデータを前記移行元記憶領域からの読込結果とするように前記ミラーリング部を制御する制御部と、
前記ミラーリング部による同期が完了した場合、前記移行対象オペレーティングシステムからの前記移行対象データへのアクセス要求先を、前記ミラーリング部から前記移行先記憶領域に切り替える切替部と、
を備えることを特徴とする移行装置。
【請求項５】
２つの記憶領域のデータを同期するミラーリング部を有する移行先装置が、
移行対象オペレーティングシステムを含む移行対象データを記憶する移行元記憶領域を有する移行元装置から、前記移行対象データの移行指示を受け付け、
前記移行指示が受け付けられた場合、前記移行先装置の記憶領域のうち前記移行対象オペレーティングシステムがアクセス可能な移行先記憶領域を確保するとともに、前記移行先装置の記憶領域のうち前記移行先記憶領域とは異なる他の記憶領域を確保し、
前記移行先記憶領域が確保された場合、前記移行対象データを前記移行元記憶領域と前記移行先記憶領域とで同期するように前記ミラーリング部を制御し、
前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの書込要求が発行された場合、前記移行元記憶領域への書込を前記他の記憶領域への書込に変更するように前記ミラーリング部を制御し、
前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの読込要求が発行された場合、前記移行元記憶領域および前記他の記憶領域に記憶されたデータを組み合わせたデータを前記移行元記憶領域からの読込結果とするように前記ミラーリング部を制御し、
前記ミラーリング部による同期が完了した場合、前記移行対象オペレーティングシステムからの前記移行対象データへのアクセス要求先を、前記ミラーリング部から前記移行先記憶領域に切り替える、
処理を実行することを特徴とする移行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機環境を移行する移行プログラム、移行装置、および移行方法に関する。
【背景技術】
【０００２】
従来から、パフォーマンスの増強を計ったり、負荷分散を行ったり、メンテナンスを行ったり、という理由により、既存の計算機環境を異なる計算機環境に移行させる場合がある。計算機環境の種類としては、実計算機環境となる場合、または仮想マシンモニタ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）によって実行される仮想計算機環境となる場合が存在する。計算機環境を移行する場合には、移行元計算機環境のディスクのデータを、移行先計算機環境のディスクのデータにコピーすることになる。
【０００３】
また、コピーに関する技術として、ポストコピーという技術が開示されている。ポストコピーは、移行先環境において移行元環境のデータが手元にあるかのように透過に参照可能としておき、移行先にて未コピーのデータが参照された場合、未コピーのデータを移行元から移行先へコピーする技術である。
【０００４】
たとえば、計算機環境を移行する場合の技術として、ポストコピーを適用した技術が開示されている（たとえば、下記特許文献１、２を参照。）。文献の例では、データのポストコピーを制御するモジュールは、移行対象データを、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の起動時に使用される第１のデータと、残余の第２のデータに分割する。
【０００５】
その後、モジュールは、第１のデータを移行先計算機環境に移行し、移行先計算機環境は、コピーされた第１のデータを用いてＯＳを起動して業務の実行を再開する。前述のモジュールは、移行先のＯＳが、第２のデータのうち未コピーのデータを要求した場合オンデマンドでコピーしつつ、並行してバックグラウンドで第２のデータのコピーを行い、計算機環境を移行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−３３５００号公報
【特許文献２】特開２００８−３３４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術は、移行先の計算機環境や仮想マシンモニタに、予めポストコピーを行うモジュールが含まれている場合を対象としていた。したがって、ポストコピーを行うモジュールが含まれていない既存の計算機環境において、ポストコピーによる移行処理を実行することが困難である。
【０００８】
本発明は、１つの側面では、ポストコピーにて計算機環境を移行できる移行プログラム、移行装置、および移行方法を提供することを目的とする。１つの側面では、既存の計算機環境や仮想マシンモニタについての変更の必要性を抑えることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、第１のオペレーティングシステムを記憶する第１の記憶領域は異なる第２の記憶領域に記憶された移行プログラムであって、第２の記憶領域に記憶された第２のオペレーティングシステムで第１および第２の記憶領域を有する移行元装置が起動された場合、第１の記憶領域に第１のオペレーティングシステムが存在することを検出し、第１の記憶領域に第１のオペレーティングシステムが存在することが検出された場合、第１の記憶領域内の少なくとも第１のオペレーティングシステムを含む移行対象データを、移行元装置と通信可能な移行先装置へ転送する移行プログラムが提案される。
【００１０】
また、本発明の一側面によれば、２つの記憶領域のデータを同期するミラーリング部を有する移行先装置に、移行対象オペレーティングシステムを含む移行対象データを記憶する移行元記憶領域を有する移行元装置から、移行対象データの移行指示を受け付け、移行指示が受け付けられた場合、移行先装置の記憶領域のうち移行対象オペレーティングシステムがアクセス可能な移行先記憶領域を確保し、移行先記憶領域が確保された場合、移行対象データを移行元記憶領域と移行先記憶領域とで同期するようにミラーリング部を制御し、ミラーリング部による同期が完了した場合、移行対象オペレーティングシステムからの移行対象データへのアクセス要求先を、ミラーリング部から移行先記憶領域に切り替える移行プログラム、移行装置、移行方法が提案される。
【発明の効果】
【００１１】
本発明の一側面によれば、ポストコピーにて計算機環境を移行できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１にかかる移行システム１００による移行処理の動作例を示す説明図である。
【図２】図２は、実施の形態１、２にかかる移行元装置１０１のハードウェアを示すブロック図である。
【図３】図３は、実施の形態１にかかる移行システム１００の機能例を示すブロック図である。
【図４】図４は、同期管理テーブル３３１の記憶内容の一例を示す説明図である。
【図５】図５は、パーティションの種別と指定端末３０６での画面例を示す説明図である。
【図６】図６は、移行システム１００の移行処理時の動作を示すシーケンス図である。
【図７】図７は、移行処理における移行元処理手順の一例を示すフローチャートである。
【図８】図８は、移行処理における移行先処理手順の一例を示すフローチャートである。
【図９】図９は、業務ＯＳに移行制御部がインストールされている場合の移行システム９００による移行処理の動作例を示す説明図である。
【図１０】図１０は、実施の形態２にかかる移行システム１００の機能例を示すブロック図である。
【図１１】図１１は、コピーオンライト部１００４の動作例を示す説明図である。
【図１２】図１２は、コピーオンライト部１００４による書込処理手順の一例を示すフローチャートである。
【図１３】図１３は、コピーオンライト部１００４による読込処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、開示の移行プログラム、移行装置、および移行方法の実施の形態を詳細に説明する。
【００１４】
図１は、実施の形態１にかかる移行システム１００による移行処理の動作例を示す説明図である。計算機環境を移行するシステムである移行システム１００は、移行元装置１０１と、管理サーバ１０２と、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）サーバ１０３と、ストレージサーバ１０４と、ストレージ１０５と、を含む。各装置はネットワーク１０６で接続されている。なお、本実施の形態にかかる移行システム１００は、移行元計算機環境が物理環境であり、移行先計算機環境が仮想環境となるＰ２Ｖ（Ｐｈｙｓｉｃａｌ  ｔｏ  Ｖｉｒｔｕａｌ）について説明を行う。
【００１５】
移行元装置１０１は、移行元計算機環境となる装置であり、ライブＯＳ１１１と、移行対象データ１１４を含む移行元ディスク１１２を含む。移行対象データ１１４には、移行元計算機環境で実行しているＯＳである業務ＯＳ１１５が含まれる。ライブＯＳ１１１は、ライブＣＤである移行プログラムライブＣＤ１１３から移行に際して一時的に起動されたＯＳである。
【００１６】
管理サーバ１０２は、移行処理における移行先側の装置群の動作を管理するサーバである。ＶＭサーバ１０３は、移行先計算機環境となる移行先仮想計算機１２２と、移行先仮想計算機を実行する仮想マシンモニタ１２１と、を含む。ストレージサーバ１０４は、ストレージ１０５を管理しており、汎用のミラーリングツールを起動する。以下の説明において、汎用のミラーリングツールが起動され、ストレージサーバ１０４のメモリに展開された実体をミラーインスタンス１３１と呼称する。ミラーインスタンス１３１の詳細は、図３にて後述する。ストレージ１０５は、移行先仮想計算機１２２のストレージとなる移行先仮想ディスク１４１を含む。
【００１７】
図１に示した状態で、ライブＯＳ１１１は、移行元装置１０１を起動した場合、移行元ディスク１１２に業務ＯＳ１１５が存在することを検出する。業務ＯＳ１１５の検出後、ライブＯＳ１１１は、移行元ディスク１１２内の少なくとも業務ＯＳ１１５を含む移行対象データ１１４を、ストレージサーバ１０４へ転送し始める。転送を受けるミラーインスタンス１３１は、移行元ディスク１１２の移行対象データ１１４が記憶された移行元記憶領域と移行先仮想ディスク１４１の移行対象データ１１４が記憶される予定となる移行先記憶領域とで、ミラーリング処理を実行する。また、管理サーバ１０２は、ＶＭサーバ１０３に対して移行先仮想計算機１２２の作成および起動を行う。移行先仮想計算機１２２では、移行先仮想ディスク１４１上に複製されつつある業務ＯＳ１１５が実行される。
【００１８】
ミラーリング処理中において、ストレージサーバ１０４は、移行先仮想計算機１２２で動作中の業務ＯＳ１１５から発行された移行対象データ１１４へのアクセス要求をミラーインスタンス１３１に通知する。ミラーリング処理完了後、ストレージサーバ１０４は、アクセス要求先をミラーインスタンス１３１から移行先仮想ディスク１４１に切り替える。
【００１９】
このように、移行システム１００は、ポストコピーを実行可能にするモジュールを含む移行プログラムライブＣＤ１１３から移行元装置１０１を起動し、外部からは単なるストレージ装置に見えるストレージサーバ１０４へ移行処理を行う。これにより、移行システム１００は、移行対象の計算機環境や移行先計算機、仮想マシンモニタに移行モジュールがなくても移行でき、既存の計算機環境を変更せずに移行が行える。
【００２０】
なお、本実施の形態にかかる移行システム１００は、Ｐ２Ｖの場合について説明しているが、移行元計算機環境が仮想環境であるＶ２Ｖ（Ｖｉｒｔｕａｌ  ｔｏ  Ｖｉｒｔｕａｌ）であってもよい。移行システム１００がＶ２Ｖである場合、移行元装置１０１は仮想マシンモニタを有し、仮想マシンモニタ１２１で実行される仮想計算機の１つが業務ＯＳ１１５を実行する移行元計算機環境となる。
【００２１】
また、移行システムがＶ２Ｖである場合、ライブＯＳ１１１を実行する仮想計算機Ｂ（図示せず）存在し、仮想計算機Ｂが、移行対象となる業務ＯＳ１１５を実行する仮想計算機を移行する。なお、仮想計算機Ｂで実行中のライブＯＳ１１１は、移行プログラムライブＣＤ１１３から起動せずに、移行元装置１０１内の移行元ディスク１１２のうち、仮想計算機Ｂがアクセスする仮想ディスクにライブＯＳ１１１が含まれていてもよい。
【００２２】
（移行システム１００の装置群のハードウェア）
図２は、実施の形態１、２にかかる移行元装置１０１のハードウェアを示すブロック図である。なお、管理サーバ１０２、ＶＭサーバ１０３、ストレージサーバ１０４についても、移行元装置１０１と同様のハードウェアを含むため、説明を省略する。図２において、移行元装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を含む。
【００２３】
また、記憶装置として移行元装置１０１は、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、を含む。また、ユーザやその他の機器との入出力装置として移行元装置１０１は、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、を含む。また、各部はバス２１２によってそれぞれ接続されている。
【００２４】
ここで、ＣＰＵ２０１は、移行元装置１０１の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２５】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２６】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。たとえば、ディスプレイ２０８は、ＣＲＴ、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２７】
Ｉ／Ｆ２０９は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１０６に接続され、このネットワーク１０６を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク１０６と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２８】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード２１０は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。また、移行元装置１０１は、マウス２１１の代わりとして、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどを有していてもよい。なお、移行元装置１０１がユーザから直接操作を受けない場合、ユーザインターフェイスとなるディスプレイ２０８、キーボード２１０、マウス２１１がなくてもよい。
【００２９】
（実施の形態１にかかる移行システム１００の機能）
図３は、実施の形態１にかかる移行システム１００の機能例を示すブロック図である。移行元装置１０１は、ライブＯＳ１１１と、移行制御部３０１と、検出部３０２と、指定部３０３と、転送部３０４と、を含む。転送部３０４は、移行元ブロックＩ／Ｆ３０５を含む。なお、移行元装置１０１は、指定端末３０６と接続している。この制御部となる機能（移行制御部３０１〜転送部３０４）は、移行プログラムライブＣＤ１１３に記憶されたプログラムをＣＰＵ２０１が実行することにより、その機能を実現する。
【００３０】
管理サーバ１０２は、管理部３１１を含む。管理部３１１は、管理サーバ１０２に記憶されたプログラムを管理サーバ１０２内のＣＰＵが実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、管理サーバ１０２内のＲＯＭ、ＲＡＭ、磁気ディスク、光ディスクなどである。または、管理サーバ１０２は、Ｉ／Ｆを経由して他のＣＰＵが実行することにより、その機能を実現してもよい。
【００３１】
ＶＭサーバ１０３は、仮想マシンモニタ１２１と、移行先仮想計算機１２２と、を含む。ストレージサーバ１０４は、受付部３２１と、確保部３２２と、制御部３２３と、通知部３２４と、移行先ブロックＩ／Ｆ３２５と、ミラーインスタンス１３１と、を含む。制御部３２３は、ミラー作成破棄部３２６と、同期監視部３２７と、を含む。通知部３２４は、ストレージインターフェース３２８と、切替部３２９と、を含む。
【００３２】
受付部３２１〜移行先ブロックＩ／Ｆ３２５、ミラーインスタンス１３１は、ストレージサーバ１０４に記憶されたプログラムをストレージサーバ１０４のＣＰＵが実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、ストレージサーバ１０４のＲＯＭ、ＲＡＭ、磁気ディスク、光ディスク、ストレージ１０５などである。また、各機能部は、ストレージサーバ１０４のＩ／Ｆを経由して他のＣＰＵが実行することにより、その機能を実現してもよい。
【００３３】
ミラーインスタンス１３１の内部には、同期管理テーブル３３１と、ミラーリング部３３２と、を含む。ミラーリング部３３２の内部には、オンデマンドコピー部３３３と、連続コピー部３３４と、を含む。また、図３で示すソフトウェアからアクセスされる記憶領域として、移行システム１００は、移行元装置１０１内に存在する移行元ディスク１１２と、ストレージ１０５内に存在する移行先仮想ディスク１４１を含む。なお、ストレージ１０５は、ストレージサーバ１０４に含まれていてもよい。
【００３４】
また、本実施の形態１にかかる移行プログラムは、第１のＯＳを記憶する第１の記憶領域とは異なる第２の記憶領域に記憶されている。たとえば、第１のＯＳとなる業務ＯＳ１１５は第１の記憶領域となる磁気ディスク２０５に記憶されており、移行プログラムは第２の記憶領域となる光ディスク２０７に記憶されている。
【００３５】
または、移行システム１００がＶ２Ｖである場合、業務ＯＳ１１５は磁気ディスク２０５の記憶領域のうち、あるＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）が設定された仮想ディスクに記憶されており、移行プログラムは、異なるＬＵＮが設定された仮想ディスクに記憶されている。このように、移行システム１００がＰ２Ｖである場合、第１および第２の記憶領域は、物理的に異なる記憶媒体である。また、移行システム１００がＶ２Ｖである場合、第１および第２の記憶領域は、物理的に異なる記憶媒体であってもよいし、物理的には同一の記憶媒体であるが、ＬＵＮが異なるといった論理的に異なる記憶媒体であってもよい。
【００３６】
移行制御部３０１は、移行処理における移行元側を制御する。具体的に、移行制御部３０１は、管理部３１１に移行処理の準備を通知した後、移行元ブロックＩ／Ｆ３０５を作成する。なお、移行制御部３０１は、ライブＯＳ１１１の１モジュールであってもよいし、ライブＯＳ１１１上で実行可能なアプリケーションソフトウェア（以下、「アプリ」と称する）であってもよい。
【００３７】
検出部３０２は、第２の記憶領域に記憶された第２のＯＳで第１および第２の記憶領域を有する移行元装置１０１が起動された場合、第１の記憶領域に第１のＯＳが存在することを検出する機能を有する。たとえば、検出部３０２は、第１の記憶領域となる磁気ディスク２０５に業務ＯＳ１１５が存在することを検出する。具体的な検出方法として、検出部３０２は、磁気ディスク２０５の先頭セクタであるＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）を取得し、ＭＢＲに記述されたパーティションを検出する。続けて、検出部３０２は、検出したパーティション群のうち、ブート識別子がアクティブパーティションに設定されているパーティションを検出する。
【００３８】
また、検出部３０２は、第２のＯＳで移行元装置が起動された場合、移行元装置１０１が有する記憶領域のうち第２の記憶領域を除いた記憶領域が第１の記憶領域である状態を検出してもよい。また、検出部３０２は、検出したパーティションからヒント情報を検出する。検出されたパーティション、ヒント情報は、指定端末３０６に通知される。なお、検出部３０２によって検出された情報は、ＣＰＵ２０１のレジスタや、ＲＡＭ２０３などの記憶領域に記憶される。
【００３９】
ヒント情報とは、指定部３０３によって移行対象データ１１４を指定する際にヒントとなる情報である。たとえば、ヒント情報は、パーティションがどのＯＳ用として作成されているかを示す情報となる。また、ヒント情報には、たとえば、パーティション内のブロック数やサイズ（バイト）が含まれてもよい。
【００４０】
指定部３０３は、検出されたパーティションの中から移行対象データ１１４を指定する。具体的には、指定部３０３は、指定端末３０６に表示されたパーティション一覧のうち、ユーザにより選択されたパーティションを移行対象データ１１４として指定する。指定されたパーティションの情報は、ＣＰＵ２０１のレジスタや、ＲＡＭ２０３などの記憶領域に記憶される。
【００４１】
転送部３０４は、検出部３０２によって第１の記憶領域に第１のＯＳが存在することが検出された場合、第１の記憶領域内の少なくとも第１のＯＳを含む移行対象データ１１４を、移行元装置１０１と通信可能な移行先装置へ転送する。移行先装置は、図３では、ストレージサーバ１０４となる。また、移行対象データ１１４は、指定部３０３によって指定されたデータであってもよい。移行対象データ１１４の転送の単位として、例えば、ファイル単位であってもよい。
【００４２】
また、転送部３０４は、移行対象データ１１４に対する転送の単位をブロック単位に設定して、移行先装置に移行対象データ１１４を転送してもよい。ブロック単位で転送する場合、転送部３０４は、移行元装置１０１内に移行元ブロックＩ／Ｆ３０５を作成し、また、移行制御部３０１を経由して、ストレージサーバ１０４に移行先ブロックＩ／Ｆ３２５を作成させる。
【００４３】
移行元ブロックＩ／Ｆ３０５は、移行元ディスク１１２に対してブロック単位でアクセスし、ネットワーク１０６を経由して、移行先ブロックＩ／Ｆ３２５と通信するインターフェースである。たとえば、移行元ブロックＩ／Ｆ３０５は、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）プロトコルをＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク上で使用するｉＳＣＳＩ（ｉｎｔｅｒｎｅｔ  ＳＣＳＩ）プロトコルにて実装されるソフトウェアである。
【００４４】
指定端末３０６は、検出したパーティション一覧を画面に表示し、ユーザに選択させる。また、指定端末３０６は、検出したヒント情報を、検出したパーティションと併せて表示してもよい。具体的な表示例は、図５にて図示する。なお、移行システム１００は、指定端末３０６を含まずに、移行元装置１０１のディスプレイ２０８に検出したパーティション一覧を表示してもよい。また、検出したパーティションが１つである場合、または、前回ブートしていたパーティションを常に選択する、といった固定的ルールが予め決定されている場合、ユーザに選択させなくてよいため、この場合、指定端末３０６がなくてもよい。
【００４５】
移行元ディスク１１２は、移行対象データ１１４に含まれる業務ＯＳ１１５、また業務ＯＳ１１５で実行される業務アプリ、業務アプリがアクセスする業務データ等が格納されている。移行元ディスク１１２は、複数のパーティションに別れていてもよく、または、複数のディスクであってもよい。また、業務ＯＳ１１５とライブＯＳ１１１は異なる種類のＯＳであってもよい。
【００４６】
管理部３１１は、移行処理における移行先側の装置群を管理する。たとえば、管理部３１１は、移行制御部３０１から移行指示を受けると、ＶＭサーバ１０３にＶＭ起動指示し、ストレージサーバ１０４にミラーインスタンス１３１の作成指示を通知する。
【００４７】
仮想マシンモニタ１２１は、コンピュータを仮想化し、複数のＯＳを実行できるように制御するソフトウェアである。図３の例では、仮想マシンモニタ１２１は、仮想マシンとなる移行先仮想計算機１２２を稼働させる。図３の例では、１つの仮想計算機しか稼働していないが、複数の仮想計算機が存在してもよい。
【００４８】
移行元装置１０１が移行された計算機環境である移行先仮想計算機１２２は、ＶＭサーバ１０３で動作する仮想的なコンピュータである。たとえば、移行先仮想計算機１２２は、ＶＭサーバ１０３のハードウェア資源となるＣＰＵ、メモリ等を仮想化し、仮想化された環境を仮想マシンモニタ１２１上で実行されるソフトウェアに提供するソフトウェアである。
【００４９】
受付部３２１は、移行対象ＯＳを含む移行対象データ１１４を記憶する移行元記憶領域を有する移行元装置１０１から、移行対象データ１１４の移行指示を受け付ける機能を有する。たとえば、受付部３２１は、移行対象データ１１４の情報や移行元ブロックＩ／Ｆ３０５へ接続する情報が含まれた移行指示を移行元装置１０１から管理サーバ１０２を経由して受け付ける。なお、受け付けた移行指示は、ストレージサーバ１０４のＣＰＵのレジスタ、ＲＡＭ、磁気ディスクなどの記憶領域に記憶される。
【００５０】
確保部３２２は、移行指示が受け付けられた場合、移行先装置の記憶領域のうち移行対象ＯＳがアクセス可能な移行先記憶領域を確保する機能を有する。移行先記憶領域は、ストレージ１０５内のストレージプールとなる。たとえば、確保部３２２は、ストレージ１０５内のストレージプールから、新たなＬＵＮを設定した移行先仮想ディスク１４１を切り出す。切り出された移行先仮想ディスク１４１は、業務ＯＳ１１５を実行する移行先仮想計算機１２２がアクセス可能な移行先記憶領域となる。
【００５１】
制御部３２３は、確保部３２２によって移行先記憶領域が確保された場合、移行対象データ１１４を移行元記憶領域と移行先記憶領域とで同期するようにミラーリング部３３２を制御する。たとえば、制御部３２３は、ミラー作成破棄部３２６がミラーインスタンス１３１を作成する時に、移行元記憶領域と移行先記憶領域をコマンドライン引数に設定する。これにより、ミラーリング部３３２は、コマンドライン引数に設定された２つの記憶領域について同期をとる。
【００５２】
通知部３２４は、ミラーリング部３３２による同期中に移行対象ＯＳによって移行対象データ１１４へのアクセス要求が発行された場合、アクセス要求をミラーリング部３３２に通知しつつ、ミラーリング部３３２からの応答を移行対象ＯＳに通知する機能を有する。たとえば、通知部３２４は、ストレージインターフェース３２８によって受け付けた移行対象ＯＳを実行するＶＭサーバ１０３からのアクセス要求をミラーリング部３３２に通知する。また、通知部３２４は、アクセス要求に対応する応答をストレージインターフェース３２８によってＶＭサーバ１０３に通知する。
【００５３】
移行先ブロックＩ／Ｆ３２５は、ネットワーク１０６を経由して、移行元ブロックＩ／Ｆ３０５と通信するインターフェースである。また、移行先ブロックＩ／Ｆ３２５は、ミラーリング部３３２からブロック単位でアクセスされる。
【００５４】
ミラー作成破棄部３２６は、ミラーインスタンス１３１、移行先ブロックＩ／Ｆ３２５を作成したり、破棄したりする。同期監視部３２７は、ミラー同期の進捗状況を監視する。具体的に、同期監視部３２７は、同期管理テーブル３３１を監視してミラー同期が完了したか否かを判断し、ミラー同期完了後に、切替部３２９に切替指示を通知する。
【００５５】
ストレージインターフェース３２８は、ＶＭサーバ１０３から移行対象データ１１４にアクセスするためのインターフェースである。なお、ストレージサーバ１０４は、ＶＭサーバ１０３からは単なるストレージ装置であるようにアクセスされる。
【００５６】
切替部３２９は、ミラーリング部による同期が完了した場合、移行対象ＯＳからの移行対象データ１１４へのアクセス要求先を、ミラーリング部３３２から移行先記憶領域に切り替える機能を有する。具体的に、切替部３２９は、ストレージインターフェース３２８のアクセス先がミラーリング部３３２となる第１のストレージモードから、アクセス先がストレージ１０５内の移行先仮想ディスク１４１となる第２のストレージモードに切り替える。切替のタイミングとして、切替部３２９は、同期監視部３２７からの切替指示を受け付けた場合、第１のストレージモードから第２のストレージモードに切り替える。
【００５７】
ミラーインスタンス１３１は、汎用のミラーリングツールが起動され、ストレージサーバ１０４のメモリに展開された実体である。具体的にメモリに展開される内容としては、たとえば、ミラーリングツールの実行コード、ストレージサーバ１０４のＣＰＵのレジスタ変数の値、実行コードがアクセスするデータである。実行コードの一部がミラーリング部３３２であり、実行コードがアクセスするデータの一部が同期管理テーブル３３１である。また、汎用のミラーリングツールとしては、たとえば、Ｌｉｎｕｘ（登録商標）に標準で付属しているｄｅｖｉｃｅ＿ｍａｐｐｅｒがある。
【００５８】
同期管理テーブル３３１は、汎用のミラーリングツールが有するミラーリングの進捗状況をブロックごとに管理するテーブルである。同期管理テーブル３３１の詳細は、図４にて後述する。
【００５９】
ミラーリング部３３２は、ポストコピーを行うための機能であり、ＶＭサーバ１０３からのアクセス要求があると、移行先仮想ディスク１４１にアクセス対象のデータがあるか否かを判断し、判断結果に応じて、アクセスに対する応答を行う。
【００６０】
アクセス対象のデータが移行先仮想ディスク１４１に存在する場合、ミラーリング部３３２は、移行先仮想ディスク１４１にアクセスすることでＶＭサーバ１０３からのアクセス要求に対する応答を行う。また、アクセス対象のデータが移行先仮想ディスク１４１に存在しない場合、ミラーリング部３３２は、オンデマンドコピー部３３３によって移行元ディスク１１２にアクセスすることで、ＶＭサーバ１０３からのアクセス要求に対する応答を行う。また、ミラーリング部３３２は、連続コピー部３３４によって移行元ディスク１１２の移行対象データ１１４を連続的に移行先仮想ディスク１４１にコピーする。
【００６１】
移行先仮想ディスク１４１は、移行対象データ１１４を格納するディスクである。移行先仮想ディスク１４１は、ストレージ１０５内の複数の物理ディスクからなるストレージプールから、新たなＬＵＮを設定した一つの仮想ディスクとして切り出したディスクであることを示している。なお、移行先仮想ディスク１４１は、一つの物理ディスクであってもよい。
【００６２】
このような機能を有する移行システム１００にて、初めに、業務ＯＳ１１５を終了した後、移行プログラムライブＣＤ１１３内のライブＯＳ１１１から起動した移行元装置１０１は、移行制御部３０１によって移行元ブロックＩ／Ｆ３０５を作成する。次に、移行元装置１０１は、管理サーバ１０２に対して、移行先仮想計算機１２２の移行指示を通知する。
【００６３】
移行指示を受け付けた管理サーバ１０２は、ＶＭサーバ１０３に対して移行先仮想計算機１２２の起動を指示し、同時にミラー同期を開始する。この時点で移行先仮想計算機１２２は業務ＯＳ１１５を起動することが可能であり、従来技術であった第１のデータのコピー完了を待つことがなく、業務停止時間をより短くすることができる。ミラー同期の完了後、管理サーバ１０２は、切替部３２９によってストレージモードを切り替え、移行処理を終了する。
【００６４】
図４は、同期管理テーブル３３１の記憶内容の一例を示す説明図である。符号４０１で示す図は、同期管理テーブル３３１の記憶内容を示しており、符号４０２で示す図は、記憶領域内における同期管理テーブル３３１の実装例を示している。同期管理テーブル３３１は、ブロックごとにコピーが完了したか否かを記憶するテーブルである。同期管理テーブル３３１は、ブロック番号、コピー済フラグという２つのフィールドを含む。ブロック番号フィールドには、移行対象データのブロックごとの先頭からの番号が格納される。コピー済フラグフィールドには、コピーが完了したか否かを示す識別子が格納される。識別子としては、たとえば、コピー未完了を示す“未”、また、コピー完了を示す“済”、といった識別子となる。
【００６５】
符号４０１で示す同期管理テーブル３３１では、たとえば、ブロックサイズが５１２［バイト］であると仮定すると、０〜２ブロック目の０〜１５３６［バイト］目と、６、７ブロック目の３０７２〜４０９５［バイト］目がコピー済みであることを示している。たとえば、符号４０１の状態は、連続コピー部３３４が先頭のブロックからコピーを開始して、０〜２ブロック目までのコピーを完了している。さらに、オンデマンドコピー部３３３がＶＭサーバ１０３からのアクセス要求により、６、７ブロック目までのコピーを完了している。
【００６６】
このように、同期管理テーブル３３１の記憶内容について、ブロック番号フィールドは０から始まり１ずつ増加する数列が格納されており、コピー済フラグは２値が格納される。したがって、同期管理テーブル３３１の記憶内容は、ビット列で表現することができる。符号４０２で示す図では、記憶領域内での符号４０１で示した同期管理テーブル３３１の実装例を示している。
【００６７】
たとえば、ストレージサーバ１０４は、記憶領域内のバイト列“０ｘｅ３…”を、ビット列“１１１０００１１…０”として読み取る。続けて、ストレージサーバ１０４は、ビットが０であれば未コピーであり、ビットが１であればコピー済であると判断する。たとえば、ストレージサーバ１０４は、ビット列の先頭から３番目までのビットが１であるため、ブロック番号０〜ブロック番号２がコピー済であると判断する。
【００６８】
図５は、パーティションの種別と指定端末３０６での画面例を示す説明図である。図５では、移行元ディスク１１２として、ディスク５０１とディスク５０２が存在していることを想定している。ディスク５０１は、パーティションＡ、パーティションＢ、パーティションＣ、というように３つのパーティションに分割されている。また、ディスク５０２は、パーティションＤ、パーティションＥ、というように２つのパーティションに分割されている。また、パーティションＡ、パーティションＤは、業務ＯＳ１１５が利用するパーティションであり、パーティションＢ、パーティションＣ、パーティションＥは、他のＯＳが利用するパーティションである。さらに、パーティションＡは、アクティブパーティションに設定されている。
【００６９】
この状態で、検出部３０２は、ディスク５０１、ディスク５０２を検出し、さらに、ディスク５０１、ディスク５０２内のパーティションＡ〜パーティションＥを検出する。また、検出部３０２は、ＭＢＲのブート識別子を読み取り、パーティションＡがアクティブパーティションであるため、業務ＯＳ１１５が存在することを検出する。さらに、検出部３０２は、ヒント情報として、パーティションＡ〜パーティションＥが利用されるＯＳの情報も検出する。
【００７０】
指定端末３０６は、検出されたパーティションとヒント情報を表示する。図５の状態では、業務ＯＳ１１５が存在するパーティションＡ、業務ＯＳ１１５が利用するパーティションＤが選択されている状態である。この状態で、指定端末３０６がＯＫボタンの押下を受け付けると、指定部３０３は、パーティションＡ〜パーティションＥのうち、パーティションＡ、パーティションＤを移行対象データ１１４として指定する。このように、移行元ディスク１１２から移行対象データ１１４を指定することにより、移行対象のデータ量を削減することができる。
【００７１】
図６は、移行システム１００の移行処理時の動作を示すシーケンス図である。移行制御部３０１は、移行元ディスク１１２を検出し（ステップＳ６０１）、移行対象データ１１４を指定する（ステップＳ６０２）。指定後、移行制御部３０１は、移行元ブロックＩ／Ｆ３０５を作成（ステップＳ６０３）した後、移行処理の実行を要求する移行指示を管理部３１１に通知する（ステップＳ６０４）。なお、移行指示には、移行対象データ１１４の情報と、移行元ブロックＩ／Ｆ３０５へ接続する情報が含まれる。
【００７２】
移行対象データ１１４の情報として、たとえば、移行対象データ１１４のブロック数が含まれる。移行元ブロックＩ／Ｆ３０５へ接続する情報として、たとえば、移行元ブロックＩ／Ｆ３０５と移行先ブロックＩ／Ｆ３２５がｉＳＣＳＩプロトコルで実装されている場合、移行元装置１０１のＩＰアドレス、ＴＣＰポート番号、およびｉＳＣＳＩネームが含まれる。通知後、移行制御部３０１は、移行元ブロックＩ／Ｆ３０５に接続が有るまで確認し続ける（ステップＳ６０５）。
【００７３】
移行指示を受け付けた管理部３１１は、移行先仮想ディスク１４１を作成する（ステップＳ６０６）。移行先仮想ディスク１４１の作成方法の例として、ストレージ１０５に存在するディスクのうち、新たなＬＵＮを設定したディスクを移行先仮想ディスク１４１とする。なお、移行先仮想ディスク１４１は、移行指示にて通知された移行対象データ１１４のブロック数以上のブロック数を有する。
【００７４】
作成後、管理部３１１は、ミラー作成破棄部３２６に移行先ブロックＩ／Ｆ３２５の作成指示を通知する（ステップＳ６０７）。作成指示の通知を受け付けたミラー作成破棄部３２６は、移行先ブロックＩ／Ｆ３２５を作成し（ステップＳ６０８）、作成結果を管理部３１１に通知する。作成結果を受け付けた管理部３１１は、移行元ブロックＩ／Ｆ３０５に接続する（ステップＳ６０９）。接続を受けた移行制御部３０１は、移行元ブロックＩ／Ｆ３０５の接続が切断されたか否かを確認し続ける（ステップＳ６１０）。
【００７５】
接続後、管理部３１１は、ミラーインスタンス１３１の作成指示をミラー作成破棄部３２６に通知する（ステップＳ６１１）。通知後、管理部３１１は、ミラーインスタンス１３１が作成完了されたことが通知されるまで待機する。
【００７６】
ミラーインスタンス１３１の作成指示を受け付けたミラー作成破棄部３２６は、ミラーインスタンス１３１を作成する（ステップＳ６１２）。作成されたミラーインスタンス１３１は、ミラー同期を開始し（ステップＳ６１３）、ミラー作成破棄部３２６にミラー同期の開始を通知する。ミラー作成破棄部３２６は、管理部３１１にミラー同期の開始を通知する。
【００７７】
ミラー同期の開始を受け付けた管理部３１１は、ＶＭサーバ１０３に対して移行先仮想計算機１２２作成および起動を指示し（ステップＳ６１４）、同期監視部３２７に同期監視指示を通知する（ステップＳ６１５）。通知を受けた同期監視部３２７は、ミラー同期が完了するまで確認し続ける（ステップＳ６１６）。具体的に、同期監視部３２７は、同期管理テーブル３３１のコピー済フラグが全て済となるまで確認し続ける。ミラー同期の完了を確認した同期監視部３２７は、同期完了報告を管理部３１１に通知する（ステップＳ６１７）。
【００７８】
同期完了報告を受け付けた管理部３１１は、切替部３２９に、ストレージモード切替を指示する（ステップＳ６１８）。具体的に、切替部３２９は、第１のストレージモードから第２のストレージモードに切り替える。
【００７９】
切替後、管理部３１１は、ミラーインスタンス１３１の破棄指示をミラー作成破棄部３２６に通知する（ステップＳ６１９）。通知を受け付けたミラー作成破棄部３２６は、ミラーインスタンス１３１を破棄し（ステップＳ６２０）、破棄完了後、管理部３１１に破棄完了を通知する。破棄完了の報告を受け付けた管理部３１１は、移行元ブロックＩ／Ｆ３０５を切断し（ステップＳ６２１）、移行処理を終了する。
【００８０】
続けて、図７、図８にて、図６で示したシーケンス図を実行する移行元装置１０１、管理サーバ１０２、ストレージサーバ１０４のフローチャートを示す。図７では移行元装置１０１による移行処理における移行元処理を説明し、図８では管理サーバ１０２、ストレージサーバ１０４による移行処理における移行先処理を説明する。
【００８１】
図７は、移行処理における移行元処理手順の一例を示すフローチャートである。移行元装置１０１は、移行元装置１０１の停止後、ライブＯＳ１１１が移行プログラムライブＣＤ１１３で起動され、ライブＯＳ１１１の起動完了後に移行処理を実行する。
【００８２】
移行元装置１０１は、移行元ディスク１１２、移行元ディスク１１２内のパーティションを検出する（ステップＳ７０１）。検出後、移行元装置１０１は、移行元ディスク１１２、または各パーティションに、業務ＯＳ１１５が存在することを検出する（ステップＳ７０２）。検出後、移行元装置１０１は、業務ＯＳ１１５を含む移行対象データ１１４を指定する（ステップＳ７０３）。移行対象データ１１４の指定方法として、たとえば、図５で示したように、移行元装置１０１は、指定端末３０６等のディスプレイにて表示されたパーティションの一覧から、選択されたパーティションに格納されたデータを移行対象データ１１４として指定する。
【００８３】
指定後、移行元装置１０１は、移行元ブロックＩ／Ｆ３０５を作成し（ステップＳ７０４）、管理サーバ１０２へ移行指示を通知する（ステップＳ７０５）。通知後、移行元装置１０１は、移行元ブロックＩ／Ｆ３０５に接続があるか否かを判断する（ステップＳ７０６）。なお、移行元ブロックＩ／Ｆ３０５に接続がある場合とは、後述する図８のステップＳ８０４にて移行先ブロックＩ／Ｆ３２５から接続された場合である。接続がない場合（ステップＳ７０６：Ｎｏ）、移行元装置１０１は、一定時間経過後、ステップＳ７０６の処理を再び実行する。
【００８４】
接続がある場合（ステップＳ７０６：Ｙｅｓ）、移行元装置１０１は、ミラーリング部３３２からの要求に応じて移行対象データ１１４を接続先に転送し（ステップＳ７０７）、移行元ブロックＩ／Ｆ３０５の接続が切断されたか否かを判断する（ステップＳ７０８）。移行元ブロックＩ／Ｆ３０５の接続が切断されていない場合（ステップＳ７０８：Ｎｏ）、移行元装置１０１は、ステップＳ７０７の処理に移行する。切断されている場合（ステップＳ７０８：Ｙｅｓ）、移行元装置１０１は、移行元ブロックＩ／Ｆ３０５を破棄する（ステップＳ７０９）。なお、移行元ブロックＩ／Ｆ３０５の接続が切断される場合とは、後述する図８のステップＳ８１２にて移行先ブロックＩ／Ｆ３２５から接続が切断された場合である。破棄後、移行元装置１０１は、移行プログラムライブＣＤ１１３を排出し（ステップＳ７１０）、移行元装置１０１の電源を切断し、移行処理における移行元処理を終了する。
【００８５】
なお、ステップＳ７０１の処理にて、検出された移行元ディスク１１２が１つである場合、さらに、移行元ディスク１１２のパーティションが１つである場合、検出された１つのパーティションに業務ＯＳ１１５が存在することになる。したがって、移行元装置１０１は、１つのパーティションに業務ＯＳ１１５の存在を確認せず、１つのパーティションを移行対象データとして、転送を行ってもよい。
【００８６】
図８は、移行処理における移行先処理手順の一例を示すフローチャートである。なお、移行先処理は、ステップＳ７０５にて移行元装置１０１からの移行指示を受け付けることで実行される。管理サーバ１０２は、移行元装置１０１から移行指示を受け付ける（ステップＳ８０１）。移行指示を受け付けた管理サーバ１０２は、管理部３１１の指示によってストレージサーバ１０４に移行先仮想ディスク１４１を作成させる（ステップＳ８０２）。これにより、ストレージサーバ１０４は、移行先記憶領域を確保する。なお、ステップＳ８０２を含む以降の処理では、ステップＳ８０７を除き管理サーバ１０２の指示によってストレージサーバ１０４が実行する。したがって、ステップＳ８０７を除くステップＳ８０２以下の説明は、ストレージサーバ１０４を実行主体として説明を行う。
【００８７】
移行先仮想ディスク１４１の作成後、ストレージサーバ１０４は、移行先ブロックＩ／Ｆ３２５を作成する（ステップＳ８０３）。作成後、ストレージサーバ１０４は、移行元ブロックＩ／Ｆ３０５に接続する（ステップＳ８０４）。接続後、ストレージサーバ１０４は、ミラーインスタンス１３１を作成し（ステップＳ８０５）、ミラー同期を開始する（ステップＳ８０６）。
【００８８】
ミラー同期を開始後、管理サーバ１０２は、管理部３１１の指示によってＶＭサーバ１０３に移行先仮想計算機１２２の作成および移行先仮想計算機１２２を起動させる（ステップＳ８０７）。移行先仮想計算機１２２の起動完了後、ストレージサーバ１０４は、移行先仮想計算機１２２上で実行されている移行対象ＯＳからのアクセス要求に応答する（ステップＳ８０８）。具体的に、ストレージサーバ１０４は、ストレージインターフェース３２８を介して発行されたアクセス要求を、ミラーリング部３３２に通知しつつ、ミラーリング部３３２からの応答をストレージインターフェース３２８を介して移行対象ＯＳに通知する。
【００８９】
続けて、ストレージサーバ１０４は、ミラー同期が完了したか否かを確認する（ステップＳ８０９）。ミラー同期が完了していない場合（ステップＳ８０９：Ｎｏ）、ストレージサーバ１０４は、ステップＳ８０８の処理に移行する。
【００９０】
ミラー同期が完了している場合（ステップＳ８０９：Ｙｅｓ）、ストレージサーバ１０４は、ストレージモードを切り替え（ステップＳ８１０）、ミラーインスタンス１３１を破棄する（ステップＳ８１１）。破棄後、ストレージサーバ１０４は、移行元ブロックＩ／Ｆ３０５との接続を切断し（ステップＳ８１２）、移行先ブロックＩ／Ｆ３２５を破棄し（ステップＳ８１３）、移行処理における移行先処理を終了する。
【００９１】
このように、本実施の形態にかかる移行システム１００は、移行元装置１０１に移行制御部３０１がインストールされていなくともポストコピー形式による移行処理を実行することができる。次に、図９にて、従来技術となる、業務ＯＳに移行制御部がインストールされている場合の動作例について説明する。
【００９２】
図９は、業務ＯＳに移行制御部がインストールされている場合の移行システム９００による移行処理の動作例を示す説明図である。図９で示す移行システム９００について、本実施の形態にかかる移行システム１００と同等のハードウェア、ソフトウェアについては、同一の符号を付与し、説明を省略する。従来技術にかかる移行システム９００は、移行元装置１０１、管理サーバ１０２、ＶＭサーバ１０３、ストレージ１０５を含む。各装置は、ネットワーク１０６で接続している。
【００９３】
移行元装置１０１は、移行元ディスク１１２を含む。移行元ディスク１１２には、移行元装置を起動した業務ＯＳ９０１が含まれる。業務ＯＳ９０１には、移行制御部９０２と、ファイルシステム９０３を含む。管理サーバ１０２は、管理部９１１を含む。ＶＭサーバ１０３は、仮想マシンモニタ１２１と、移行先仮想計算機１２２と、を含む。仮想マシンモニタ１２１は、ポストコピー部９２１を含む。ポストコピー部９２１には、コピー進捗テーブル９２２、ファイルＩ／Ｆ９２３、ミラーリング部３３２と、を含む。
【００９４】
ミラーリング部３３２の内部には、オンデマンドコピー部３３３と、連続コピー部３３４と、を含む。また、図９で示すソフトウェアからアクセスされる記憶領域として、移行システム９００は、移行元装置１０１内に存在する移行元ディスク１１２と、ストレージ１０５内に存在する移行先仮想ディスク１４１を含む。
【００９５】
業務ＯＳ９０１は、移行対象データ１１４となるＯＳであり、内部には予め移行制御部９０２がインストールされている。移行制御部９０２は、移行処理における移行元側を制御する。ファイルシステム９０３は、移行元ディスク１１２を管理するソフトウェアである。
【００９６】
管理部９１１は、移行処理における移行先側の装置群を管理する。ポストコピー部９２１は、ポストコピーを行うための機能である。コピー進捗テーブル９２２は、コピーの進捗状況を記憶する。ファイルＩ／Ｆ９２３は、ネットワーク１０６を経由して、移行制御部９０２と通信するインターフェースである。また、ファイルＩ／Ｆ９２３は、ミラーリング部３３２からファイル単位でアクセスされる。
【００９７】
この状態で、移行制御部９０２は、移行処理の準備指示を管理部９１１に通知する。通知後、移行制御部９０２は、ファイルシステム９０３を探索して作成したコピーリストをポストコピー部９２１に通知する。通知を受けたポストコピー部９２１は、コピーリストをコピー進捗テーブル９２２に反映する。続けて、移行制御部９０２は、移行先仮想計算機の起動指示とポストコピーの準備指示を管理部９１１に通知する。
【００９８】
通知を受けた管理サーバ１０２は、ＶＭサーバ１０３に移行先仮想計算機１２２を起動させ、同時に、連続コピー部３３４によって連続コピーを実行させることで、移行処理を完了させる。また、移行処理中に、移行先仮想計算機１２２からのアクセス要求があると、オンデマンドコピー部３３３によってアクセス要求に対応するファイルのコピーを実施し、アクセス要求に応答する。
【００９９】
以上説明したように、実施の形態１にかかる移行プログラム、移行装置、および移行方法によれば、ポストコピーを行う移行モジュールを含むライブＣＤから移行元装置を起動し、移行先装置へ移行処理を行う。これにより、実施の形態１にかかる移行システムは、ポストコピーによる計算機環境の移行処理について、既存の計算機環境や仮想マシンモニタに変更を加えることなくアドオンできるようになる。なお、従来技術にかかる移行システムでは、図９で示したように移行対象となる業務ＯＳに移行制御部をインストールするため、ポストコピーの機能を持たない既存の計算機環境に適用することが困難であった。
【０１００】
また、実施の形態１にかかる移行システムは、移行対象データに対する転送の単位をブロック単位に設定して、移行先装置に移行対象データを転送してもよい。これにより、実施の形態１にかかる移行システムは、ファイルレベルでコピーする際に作成していたコピーリストを作成せずに済むため、移行にかかる時間を短縮することができる。コピーリストは、移行対象データにファイル数が多いと作成するのに時間がかかり、結果、移行にかかる時間が増大してしまっていた。
【０１０１】
また、実施の形態１にかかる移行システムは、ブロックレベルでコピーを行うため、移行対象ＯＳとなる業務ＯＳの種類、また業務ＯＳのファイルシステムの種類を意識せずにコピーを行うことができる。また、ブロックレベルで管理されている同期管理テーブルは、ファイルレベルで管理されているコピー進捗テーブルより、データサイズを小さくすることができる。特に、同期管理テーブルは、ビット列で表現することが可能であり、データサイズを小さくすることができる。
【０１０２】
また、実施の形態１にかかる移行システムは、移行元装置が有する記憶領域のうち、移行プログラムライブＣＤを除いた記憶領域が１つである場合、１つの記憶領域を移行対象データとして移行先装置へ転送してもよい。これにより、実施の形態１にかかる移行システムは、各ディスク、パーティションについて、ＯＳが存在するか否かを検出しなくてもよく、移行処理にかかる時間を短くすることができる。
【０１０３】
（実施の形態２の概要）
実施の形態１にかかる移行システム１００では、移行処理中に移行対象データ１１４への書込要求が発生した場合、ミラーインスタンス１３１の処理によって移行先仮想ディスク１４１に書き込まれると共に、移行元ディスク１１２にも書き込まれていた。実施の形態２にかかる移行システム１００では、移行対象データ１１４への書込要求が発生した場合に、移行元ディスク１１２への書込を抑止する形態をとる。
【０１０４】
（実施の形態２にかかる移行システム１００の機能）
図１０は、実施の形態２にかかる移行システム１００の機能例を示すブロック図である。図１０で示す移行システム１００は、実施の形態２にて機能が変更するストレージサーバ１０４、ストレージ１０５について表示しており、移行元装置１０１、管理サーバ１０２、ＶＭサーバ１０３については、機能が変更しないため、表示を省略する。
【０１０５】
確保部１００１は、移行指示が受け付けられた場合、実施の形態１で示した確保部３２２によって移行先記憶領域を確保したうえ、さらに、移行先装置の記憶領域のうち移行先記憶領域とは異なる他の記憶領域を確保する。たとえば、確保部１００１は、ストレージ１０５内のストレージプールから、移行先仮想ディスク１４１に設定されたＬＵＮとは異なる新たなＬＵＮを設定した他の記憶領域となる差分書込ディスク１００５を切り出す。
【０１０６】
制御部１００２は、ミラーリング部３３２による同期中に移行対象ＯＳによって移行対象データ１１４への書込要求が発行された場合、移行元記憶領域への書込を他の記憶領域への書込に変更するようにミラーリング部３３２を制御する。また、制御部１００２は、読込要求が発行された場合、移行元記憶領域および他の記憶領域に記憶されたデータを組み合わせたデータを移行元記憶領域からの読込結果とするようにミラーリング部３３２を制御する。
【０１０７】
具体的に、制御部１００２は、ミラー作成破棄部３２６がミラーインスタンス１００３を作成する時に、コピーオンライト部１００４を含めることを示す識別子と他の記憶領域となる差分書込ディスク１００５をコマンドライン引数に含めて設定する。これにより、ミラーインスタンス１００３は、コピーオンライト部１００４を含めて作成される。
【０１０８】
ミラーインスタンス１００３は、同期管理テーブル３３１と連続コピー部３３４とに加え、コピーオンライト部１００４を含む。また、ストレージ１０５は、移行先仮想ディスク１４１に加え、差分書込ディスク１００５を含む。
【０１０９】
差分書込ディスク１００５は、コピーオンライト部１００４での差分データの書込先ディスクである。具体的に、差分書込ディスク１００５は、コピーオンライト部１００４にて書込処理が発生した場合に差分データが書き込まれる。なお、差分書込ディスク１００５は、移行先仮想ディスク１４１と同様に、ストレージ１０５内の複数の物理ディスクからなるストレージプールから、移行先仮想ディスク１４１のＬＵＮとは異なるＬＵＮを設定した一つの仮想ディスクとして設定されている。また、差分書込ディスク１００５は、差分データが書き込まれる場合、対象のブロック全てのデータが書き込まれていてもよいし、一つのブロックのデータのうち、移行元ディスク１１２の対象ブロックからの差分データのみが書き込まれていてもよい。
【０１１０】
このような機能を有する移行システム１００にて、ミラー同期中に移行対象データ１１４への書込要求が発生した場合、コピーオンライト部１００４は、移行元ディスク１１２へ書き込まず、書込による差分を差分書込ディスク１００５に書き込む。また、ミラー同期が終了した場合、ストレージサーバ１０４は、差分書込ディスク１００５を破棄する。差分書込ディスク１００５の破棄とは、差分書込ディスク１００５用に設定していたＬＵＮの解除を行うことである。
【０１１１】
図１１は、コピーオンライト部１００４の動作例を示す説明図である。ミラーリング部３３２は、移行先仮想計算機１２２から移行対象データ１１４の読み書き要求を受け付けると、移行先仮想ディスク１４１とコピーオンライト部１００４に移行対象データ１１４の読み書き要求を通知する。コピーオンライト部１００４は、移行対象データ１１４への書込要求を受け付けた場合、書込データを差分書込ディスク１００５に書き込み、移行元ディスク１１２には書き込まない。
【０１１２】
また、コピーオンライト部１００４は、移行対象データ１１４への読込要求を受け付けた場合、差分書込ディスク１００５に読込要求の対象ブロックが存在するかを判断する。コピーオンライト部１００４は、存在するブロックに対しては差分書込ディスク１００５の対象ブロックを読み込み、存在しないブロックに対しては移行元ディスク１１２の対象ブロックを読み込む。
【０１１３】
また、差分書込ディスク１００５に一つのブロックのデータのうち移行元ディスク１１２の対象ブロックからの差分データのみが書き込まれている場合、コピーオンライト部１００４は、移行元ディスク１１２と差分書込ディスク１００５の読込結果を組み合わせる。たとえば、ブロックサイズが５１２［バイト］であり、差分書込ディスク１００５にブロック先頭から４バイトのみのデータが格納されている場合を想定する。このとき、コピーオンライト部１００４は、移行元ディスク１１２の対象ブロックからの５１２バイトに差分書込ディスク１００５からの４バイトを上書きするように組み合わせた後、ミラーリング部３３２に組み合わせた結果を通知する。
【０１１４】
続けて、実施の形態２にかかる移行処理のフローチャートについて説明する。実施の形態２にかかる移行処理は、ステップＳ８０２を除いて図７、図８で示した移行処理のフローチャートと等しい処理であるため、説明を省略する。ステップＳ８０２にて、ストレージサーバ１０４は、移行先仮想ディスク１４１と差分書込ディスク１００５を作成する。
【０１１５】
次に、図１２、図１３にて、コピーオンライト部１００４の書込処理と読込処理のフローチャートを示す。コピーオンライト部１００４の書込処理と読込処理は、コピーオンライト部１００４の機能によってストレージサーバ１０４が実行する。図１２と図１３では、コピーオンライト部１００４の機能でストレージサーバ１０４が実行することを分かりやすくするため、実行主体をコピーオンライト部１００４として説明する。なお、図１２、図１３で示す書込処理、読込処理は、図８で示したステップＳ８０８にて実行される。
【０１１６】
図１２は、コピーオンライト部１００４による書込処理手順の一例を示すフローチャートである。コピーオンライト部１００４は、ミラーリング部３３２から書込要求を受け付ける（ステップＳ１２０１）。書込要求を受け付けた後、コピーオンライト部１００４は、差分書込ディスク１００５に書込対象のブロックがあるか否かを判断する（ステップＳ１２０２）。書込対象のブロックがない場合（ステップＳ１２０２：Ｎｏ）、コピーオンライト部１００４は、書込対象のブロックを移行元ディスク１１２から読み込む（ステップＳ１２０３）。書込対象のブロックがある場合（ステップＳ１２０２：Ｙｅｓ）、コピーオンライト部１００４は、書込対象のブロックを差分書込ディスク１００５から読み込む（ステップＳ１２０４）。書込対象のブロックの読込後、コピーオンライト部１００４は、読み込んだブロックについて、ストレージサーバ１０４内のメモリ内で書込、または更新する（ステップＳ１２０５）。書込、または更新後、コピーオンライト部１００４は、書込、または更新したブロックを差分書込ディスク１００５に書き込む（ステップＳ１２０６）。
【０１１７】
書き込み後、コピーオンライト部１００４は、要求分全ての書込を終了したか否かを判断する（ステップＳ１２０７）。書込が全て終了していない場合（ステップＳ１２０７：Ｎｏ）、コピーオンライト部１００４は、ステップＳ１２０２の処理に移行する。書込が全て終了している場合（ステップＳ１２０７：Ｙｅｓ）、コピーオンライト部１００４は、書込完了の応答をミラーリング部３３２に通知し（ステップＳ１２０８）、書込処理を終了する。
【０１１８】
図１３は、コピーオンライト部１００４による読込処理手順の一例を示すフローチャートである。コピーオンライト部１００４は、ミラーリング部３３２から読込要求を受け付ける（ステップＳ１３０１）。読込要求を受け付けた後、コピーオンライト部１００４は、差分書込ディスク１００５に対象ブロックがあるか否かを判断する（ステップＳ１３０２）。対象ブロックがない場合（ステップＳ１３０２：Ｎｏ）、コピーオンライト部１００４は、移行元ディスク１１２内の対象ブロックを読み込んでミラーリング部３３２に通知する（ステップＳ１３０３）。対象ブロックがある場合（ステップＳ１３０２：Ｙｅｓ）、コピーオンライト部１００４は、差分書込ディスク１００５内の対象ブロックを読み込んでミラーリング部３３２に通知する（ステップＳ１３０４）。
【０１１９】
読み込んだ対象ブロックをミラーリング部３３２に通知後、コピーオンライト部１００４は、要求分全ての読込を終了したか否かを判断する（ステップＳ１３０５）。読込が終了していない場合（ステップＳ１３０５：Ｎｏ）、コピーオンライト部１００４は、ステップＳ１３０２の処理に移行する。読込が終了した場合（ステップＳ１３０５：Ｙｅｓ）、コピーオンライト部１００４は、読込完了の応答をミラーリング部３３２に通知し（ステップＳ１３０６）、読込処理を終了する。
【０１２０】
以上説明したように、移行プログラム、移行装置、および移行方法によれば、移行先装置の記憶領域のうち前記移行先記憶領域とは異なる他の記憶領域を確保し、書込時に他の記憶領域に書き込み、読込時には、移行元記憶領域と他の記憶領域を組み合わせる。
【０１２１】
これにより、実施の形態２にかかる移行システムは、移行元ディスクへの書込要求を送らないようになるため、ネットワークのトラフィックを削減し、また、書込要求に対する応答待ち時間を削減することができる。特に、ネットワークがＷＡＮである場合、ネットワークの転送速度が遅いため、トラフィックを削減することで、移行処理にかかる時間を大幅に削減することができる。また、実施の形態２にかかる移行システムは、移行元ディスクに書込を行わないため、移行対象データを変更せずに移行時の状態で保全することができる。たとえば、移行処理完了後、移行先装置が何らかのデータの更新後に不具合が発生した場合、移行システムは、保全されていた移行対象データで再度移行処理を行うことができる。
【０１２２】
なお、本実施の形態で説明した移行方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本移行プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本移行プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１２３】
上述した実施の形態１、２に関し、さらに以下の付記を開示する。
【０１２４】
（付記１）第１のオペレーティングシステムを記憶する第１の記憶領域とは異なる第２の記憶領域に記憶された移行プログラムであって、
前記第２の記憶領域に記憶された第２のオペレーティングシステムで前記第１および第２の記憶領域を有する移行元装置が起動された場合、前記第１の記憶領域に前記第１のオペレーティングシステムが存在することを検出し、
前記第１の記憶領域に前記第１のオペレーティングシステムが存在することが検出された場合、前記第１の記憶領域内の少なくとも前記第１のオペレーティングシステムを含む移行対象データを、前記移行元装置と通信可能な移行先装置へ転送する、
処理を前記移行元装置に実行させることを特徴とする移行プログラム。
【０１２５】
（付記２）前記転送する処理は、
前記第１の記憶領域に前記第１のオペレーティングシステムが存在することが検出された場合、前記移行対象データに対する転送の単位をブロック単位に設定して、前記移行先装置に前記移行対象データを転送する、
ことを特徴とする付記１に記載の移行プログラム。
【０１２６】
（付記３）前記第２のオペレーティングシステムで前記移行元装置が起動された場合、前記移行元装置が有する記憶領域のうち前記第２の記憶領域を除いた記憶領域が前記第１の記憶領域である状態を検出し、
前記状態が検出された場合、前記第１の記憶領域を前記移行対象データとして前記移行先装置へ転送する、
ことを特徴とする付記１または２に記載の移行プログラム。
【０１２７】
（付記４）２つの記憶領域のデータを同期するミラーリング部を有する移行先装置に、
移行対象オペレーティングシステムを含む移行対象データを記憶する移行元記憶領域を有する移行元装置から、前記移行対象データの移行指示を受け付け、
前記移行指示が受け付けられた場合、前記移行先装置の記憶領域のうち前記移行対象オペレーティングシステムがアクセス可能な移行先記憶領域を確保し、
前記移行先記憶領域が確保された場合、前記移行対象データを前記移行元記憶領域と前記移行先記憶領域とで同期するように前記ミラーリング部を制御し、
前記ミラーリング部による同期が完了した場合、前記移行対象オペレーティングシステムからの前記移行対象データへのアクセス要求先を、前記ミラーリング部から前記移行先記憶領域に切り替える、
処理を実行させることを特徴とする移行プログラム。
【０１２８】
（付記５）前記移行指示が受け付けられた場合、さらに、前記移行先装置の記憶領域のうち前記移行先記憶領域とは異なる他の記憶領域を確保し、
前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの書込要求が発行された場合、前記移行元記憶領域への書込を前記他の記憶領域への書込に変更するように前記ミラーリング部を制御し、
前記ミラーリング部による同期中に前記移行対象オペレーティングシステムによって前記移行対象データへの読込要求が発行された場合、前記移行元記憶領域および前記他の記憶領域に記憶されたデータを組み合わせたデータを前記移行元記憶領域からの読込結果とするように前記ミラーリング部を制御する、
処理を実行させることを特徴とする付記４に記載の移行プログラム。
【０１２９】
（付記６）２つの記憶領域のデータを同期するミラーリング部を有する移行装置であって、
移行対象オペレーティングシステムを含む移行対象データを記憶する移行元記憶領域を有する他装置から、前記移行対象データの移行指示を受け付ける受付部と、
前記移行指示が受け付けられた場合、前記移行先装置の記憶領域のうち前記移行対象オペレーティングシステムがアクセス可能な移行先記憶領域を確保する確保部と、
前記移行先記憶領域が確保された場合、前記移行対象データを前記移行元記憶領域と前記移行先記憶領域とで同期するように前記ミラーリング部を制御する制御部と、
前記ミラーリング部による同期が完了した場合、前記移行対象オペレーティングシステムからの前記移行対象データへのアクセス要求先を、前記ミラーリング部から前記移行先記憶領域に切り替える切替部と、
を備えることを特徴とする移行装置。
【０１３０】
（付記７）２つの記憶領域のデータを同期するミラーリング部を有する移行先装置が、
移行対象オペレーティングシステムを含む移行対象データを記憶する移行元記憶領域を有する移行元装置から、前記移行対象データの移行指示を受け付け、
前記移行指示が受け付けられた場合、前記移行先装置の記憶領域のうち前記移行対象オペレーティングシステムがアクセス可能な移行先記憶領域を確保し、
前記移行先記憶領域が確保された場合、前記移行対象データを前記移行元記憶領域と前記移行先記憶領域とで同期するように前記ミラーリング部を制御し、
前記ミラーリング部による同期が完了した場合、前記移行対象オペレーティングシステムからの前記移行対象データへのアクセス要求先を、前記ミラーリング部から前記移行先記憶領域に切り替える、
処理を実行することを特徴とする移行方法。
【符号の説明】
【０１３１】
１００  移行システム
１０１  移行元装置
１０２  管理サーバ
１０３  ＶＭサーバ
１０４  ストレージサーバ
１０５  ストレージ
１０６  ネットワーク
１１１  ライブＯＳ
１１２  移行元ディスク
１１３  移行プログラムライブＣＤ
１１４  移行対象データ
１１５  業務ＯＳ
１２１  仮想マシンモニタ
１２２  移行先仮想計算機
１３１  ミラーインスタンス
１４１  移行先仮想ディスク
３０２  検出部
３０４  転送部
３２１  受付部
３２２  確保部
３２３  制御部
３２４  通知部
３２９  切替部
３３１  同期管理テーブル
３３２  ミラーリング部
【図１】
0005720483.tif 000002
【図２】
0005720483.tif 000003
【図３】
0005720483.tif 000004
【図４】
0005720483.tif 000005
【図５】
0005720483.tif 000006
【図６】
0005720483.tif 000007
【図７】
0005720483.tif 000008
【図８】
0005720483.tif 000009
【図９】
0005720483.tif 000010
【図１０】
0005720483.tif 000011
【図１１】
0005720483.tif 000012
【図１２】
0005720483.tif 000013
【図１３】
0005720483.tif 000014