(57)【要約】  それぞれがバーチャルマシンを有し、バーチャルマシンのデータが階層化された記憶領域に格納されている複数のストレージシステムを互いにネットワークで接続する計算機システムである。第１のストレージシステムから第２のストレージシステムに前記第１のストレージシステムのバーチャルマシンが移動された際、第２のストレージシステムは、自身のバーチャルマシンのデータも含めて、第１のストレージシステムのバーチャルマシンのデータを前記第２のストレージシステムの階層化された記憶領域に格納する。【選択図】図1
2013517539.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージシステムがネットワークによって互いに接続されている計算機システムであって、
第１のストレージシステムと、
第２のストレージシステムと、を備え、
前記第１のストレージシステムは、第１のバーチャルマシンを稼働させる第１の計算機を備え、前記第１のバーチャルマシンのデータを階層化された第１の記憶部に格納し、
前記第２のストレージシステムは、第２のバーチャルマシンを稼働させる第２の計算機を備え、前記第２１のバーチャルマシンのデータを階層化された第２の記憶部に格納し、
前記第１の計算機が前記第１のバーチャルマシンを前記第２の計算機に移動させる際、前記第２の計算機は、前記第１のバーチャルマシンのデータと前記第２のバーチャルマシンのデータとを、前記第２の記憶部に格納する、計算機システム。
【請求項２】
前記第１のストレージシステム及び第２のストレージシステムが共有する共有ストレージが前記ネットワークに接続され、
前記第１のストレージシステムは、前記第１のバーチャルマシンのデータを専用記憶する第１の専用ストレージを有し、前記第１の記憶部は前記第１の専用ストレージと前記共有ストレージとを階層化したものであり、
前記第２のストレージシステムは、前記第２のバーチャルマシンのデータを専用記憶する第２の専用ストレージを有し、前記第２の記憶部は前記第２の専用ストレージと前記共有ストレージとを階層化したものである、請求項１記載の計算機システム。
【請求項３】
前記第１の計算機は、前記第１のバーチャルマシンのアクセス用の第１の論理ボリュームを有し、
前記第２の計算機は、前記第２のバーチャルマシンのアクセス用の第２の論理ボリュームを有し、
前記第１の計算機は前記第１のバーチャルマシンを前記第２の計算機に移動する際、前記第１の論理ボリュームを前記２の計算機に移動する、請求項２記載の計算機システム。
【請求項４】
前記第１の専用ストレージ及び前記第２の専用ストレージは、それぞれ、Ｔｉｒｅ０のストレージデバイスを備え、
前記共用ストレージはＴｉｒｅ２のストレージデバイスを備える、請求項２記載の計算機システム。
【請求項５】
前記第１の論理ボリュームは第１の仮想ボリュームを有し、前記第１の記憶部の記憶領域が前記第１の仮想ボリュームに割当てられ、
前記第２の論理ボリュームは第２の仮想ボリュームを有し、前記第２の記憶部の記憶領域が前記第２の仮想ボリュームに割当てられている、請求項３記載の計算機システム。
【請求項６】
前記第２の計算機は、前記第１のバーチャルマシンの前記第１の論理ボリュームに対するアクセス頻度に応じて、前記第１の論理ボリュームに対する前記第１の記憶部の記憶領域の割当ての形態を変更する、請求項５記載の計算機システム。
【請求項７】
前記第２の計算機は、前記第２のバーチャルマシンの前記第２の論理ボリュームに対するアクセス頻度に応じて、前記第２の論理ボリュームに対する前記第２の記憶部の記憶領域の割当ての形態を変更する、請求項５記載の計算機システム。
【請求項８】
前記第２の計算機は、
前記第１のバーチャルマシンの前記第１の論理ボリュームに対するアクセス頻度に応じて、前記第１の論理ボリュームに対する前記第１の記憶部の記憶領域の割当ての形態を変更し、
前記第２のバーチャルマシンの前記第２の論理ボリュームに対するアクセス頻度に応じて、前記第２の論理ボリュームに対する前記第２の記憶部の記憶領域の割当ての形態を変更する、請求項５記載の計算機システム。
【請求項９】
前記第２の計算機は、
前記第２の専用ストレージのデータを前記共用ストレージに移行し、
前記第１の専用ストレージのデータを前記第２の専用ストレージに移行する、請求項３記載の計算機システム。
【請求項１０】
前記第２の計算機は、
前記第２の専用ストレージのデータに対するアクセス頻度と、前記第１の専用ストレージに対するアクセス頻度とを比較し、
前者のアクセス頻度が後者のアクセス頻度より低い場合は、前記第２の専用ストレージのデータを前記共用ストレージに移行し、前記第１の専用ストレージのデータを前記第２の専用ストレージに移行する、請求項３記載の計算機システム。
【請求項１１】
前記第２の計算機は、前記第１の専用ストレージのデータのうち、前記共用ストレージに移行されないデータを前記共用ストレージに移行する、請求項１０記載の計算機システム。
【請求項１２】
前記第１のバーチャルマシンと前記第１の論理ボリューム我前記第２の計算機に移動後、前記第１のバーチャルマシンのデータが前記第２の計算機側に移行される前、前記第２の計算機は、前記第１のバーチャルマシンからの前記第１の論理ボリュームに対するアクセスに基づいて、前記第１の計算機にアクセスし、
前記第１の計算機は前記第２の計算機からのアクセスに基づいて前記第１の専用ストレージから目的のデータを読み出し、このデータを前記第２の計算機に送信する、請求項１１記載の計算機システム。
【請求項１３】
それぞれがバーチャルマシンを有し、バーチャルマシンのデータが階層化された記憶領域に格納されている複数のストレージシステムを互いにネットワークで接続する計算機システムのデータ格納制御方法であって、
第１のストレージシステムから第２のストレージシステムに前記第１のストレージシステムのバーチャルマシンが移動された際、第２のストレージシステムは、自身のバーチャルマシンのデータも含めて、第１のストレージシステムのバーチャルマシンのデータを前記第２のストレージシステムの階層化された記憶領域に格納する、計算機システムのデータ格納制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システムに係り、特に、計算機の仮想化技術とストレージの階層化技術とを利用した計算機システムと、そのデータ格納制御方法に関するものである。
【背景技術】
【０００２】
情報ライフサイクル管理の考え方に基づくソルーションの一つとして、ストレージの階層化技術がある。この技術は、情報の利用価値に応じて、情報を保存する先のストレージを性能、コスト、そして、信頼性によって階層に分けるというものであり、例えば、ストレージを、Ｔｉｒｅ(層)１、Ｔｉｒｅ２、Ｔｉｒｅ３からなる３層に階層化することが一般的に行われている。
【０００３】
Ｔｉｒｅ１は、最も情報価値が高い、生成されて現在活用されている最中の情報を保存するストレージである。高性能で高信頼性を有するファイバチャネルストレージがＴｉｒｅ１として利用されている。Ｔｉｒｅ１はオンラインストレージとも呼ばれている。
【０００４】
Ｔｉｒｅ２は、活用されることを終えたが、再利用のために検索、参照されるようなデータを保存するものである。大容量で低コストであるストレージ、例えば、ＡＴＡやＳＡＴＡのストレージがＴｉｒｅ２として利用されている。
【０００５】
Ｔｉｒｅ３は、アクセスがほぼ無いデータを格納するために特化されたストレージであり、容量単価が低いテープドライブが利用されている。Ｔｉｒｅ３はオフラインストレージとも呼ばれ、Ｔｉｒｅ２はＴｉｒｅ１とＴｉｒｅ３の中間であるため、ニアラインストレージと呼ばれている。本発明に関連する先行技術として、例えば、特開２００８−３０５２８８号公報に記載されたものが存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−３０５２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ストレージの性能をさらに優先する観点から、近年、Ｔｉｒｅ０という階層も提唱されている。Ｔｉｒｅ０として代表的なのは、フラッシュメモリである。一方、最近では、フラッシュメモリのビットコストの低下が進展しているため、従来のストレージの階層化技術も変貌して、ストレージの階層がＴｉｒｅ０とＴｉｒｅ２に二極化する傾向もみられている。
【０００８】
したがって、複数の計算機がネットワークに接続している計算機システムにおいては、計算機にＴｉｒｅ０のストレージを直結して各計算機のオンライデータを専用のＴｉｒｅ０のストレージに保存し、ネットワークにＴｉｒｅ２のストレージを有するＮＡＳを接続して、各計算機のニアラインデータをＴｉｒｅ２のストレージに保存することが提唱されている。
【０００９】
一方、計算機のリソースを仮想化し、計算機に複数の仮想機械（Virtual Machine（バーチャルマシン）：ＶＭ）を設定する仮想化技術が普及しつつある。計算機の計画的な保守、計算機のＣＰＵの負荷分散、計算機の消費電力削減等を目的として、ＶＭを複数の計算機間で移動させることも行われる。
【００１０】
仮想化機能を備えた複数の計算機がネットワークを介して接続されている計算機システムに、既述のようなストレージの階層化制御が適用されていると、ＶＭが複数の計算機間を移動する際、複数の計算機に対するストレージの階層化制御の統一性が乱れて、計算機システムにおけるデータ管理品質が低下するおそれがある。例えば、移動後のＶＭが移動前のデータに迅速にアクセスできず、移動後のＶＭが正常に機能しない。
【００１１】
そこで、この発明の目的は、仮想化機能を備えた複数の計算機がネットワークを介して接続され、ストレージの階層化制御が適用された計算機システムにおいて、ＶＭが複数の計算機間を移動しても、複数の計算機に対するストレージの階層化制御の品質を維持し、計算機システムにおけるデータ管理を向上させた計算機システム、及び、そのデータ格納制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、この目的を達成するために、それぞれがＶＭを有し、ＶＭのデータが階層化された記憶領域に格納されている複数のストレージシステムと、複数のストレージシステムを互いに接続するネットワークと、を備えた計算機システムを提供する。ＶＭが、あるストレージシステムから他のストレージシステムに移動された際、移動先のストレージシステムは、自身のＶＭのデータも含めて、移動元ストレージシステムのＶＭのデータを移動先ストレージシステムの階層化された記憶領域に格納する。
【発明の効果】
【００１３】
本発明によれば、仮想化機能を備えた複数の計算機がネットワークを介して接続され、ストレージの階層化制御が適用された計算機システムにおいて、ＶＭが複数の計算機間を移動しても、複数の計算機に対するストレージの階層化制御の品質を維持し、計算機システムにおけるデータ管理を向上させた計算機システムとそのデータ格納制御方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】計算機システムの第１の実施形態を示すハードウエアのブロック図である。
【図２】計算機の詳細を示すハードウエアブロック図である。
【図３】管理端末の詳細を示すハードウエアブロック図である。
【図４Ａ】複数の計算機間をＶＭが移動する前の状態を示す計算機システムのブロック図である。
【図４Ｂ】複数の計算機間でＶＭが移動された後の計算機システムのブロック図である。
【図５Ａ】移動先計算機において、デステージが行われた後の計算機システムのブロック図である。
【図５Ｂ】それぞれが計算機に直結する直結ストレージ間で、ＶＭの移動後、データの移動が行われた後の計算機システムのブロック図である。
【図６】移動元計算機ＳＶ１においてデステージが行われた後の状態に係る計算機システムのブロック図を示す。
【図７Ａ】ＶＭの管理・制御情報を規定するＶＭテーブルである。
【図７Ｂ】仮想ＬＵの管理・制御情報を規定する仮想ＬＵテーブルである。
【図７Ｃ】外部ストレージの特性を示す外部ストレージテーブルである。
【図８Ａ】ＶＭから仮想ＬＵへのアクセスを直結ストレージ、又は、外部ストレージに対するアクセスする変換するための管理・制御情報を規定したマッピングマッピングテーブル、同マッピングテーブルのデータ構造例である。
【図８Ｂ】直結ストレージの管理・制御情報を規定した直結ストレージページテーブルである。
【図９】外部ストレージの実ページの管理・制御情報を規定する、外部ストレージページテーブルである。
【図１０Ａ】計算機の管理・制御情報を規定する計算機テーブルである。
【図１０Ｂ】ＶＭの管理・制御情報を規定するＶＭテーブルである。
【図１０Ｃ】外部ストレージの管理・制御情報を規定する外部ストレージテーブルである。
【図１１Ａ】計算機システムに計算機を追加するためのＧＵＩの例である。
【図１１Ｂ】外部ストレージ追加画面に係るＧＵＩの一例である。
【図１２】ＶＭを計算機に追加するためのＧＵＩの一例である。
【図１３】計算機の内部ライト処理のフローチャートである。
【図１４】計算機が実行するページ割当処理のフローチャートである。
【図１５】計算機が、ストレージの階層間でデータを緊急に移行する処理のフローチャートである。
【図１６】計算機が実行する内部リード処理のフローチャートである。
【図１７Ａ】計算機１が実行する外部ライト処理のフローチャートである。
【図１７Ｂ】計算機１が実行する外部リード処理のフローチャートである。
【図１８】計算機がストレージの階層間でデータを移行する処理の第１の形態に係るフローチャートである。
【図１９】計算機がストレージの階層間でデータを移行する処理の第２の形態に係るフローチャートである。
【図２０】ＶＭが複数の計算機間を移動する過程での、計算機システムにおける通信シーケンスについてのタイムチャートである。
【図２１Ａ】ＶＭの移動先計算機での移行先決定テーブルである。
【図２１Ｂ】ＶＭの状態に関するテーブルある。
【図２２Ａ】管理端末のＶＭ移動画面の例である。
【図２２Ｂ】管理端末のＶＭ状態表示画面の例である。
【図２３Ａ】ＶＭの移動先計算機において更新されたＶＭテーブルである。
【図２３Ｂ】ＶＭの移動先計算機において更新された仮想ＬＵテーブルである。
【図２３Ｃ】ＶＭの移動先計算機において更新されたマッピングテーブルマッピングテーブルである。
【図２３Ｄ】ＶＭの移動先計算機において更新された外部ストレージページテーブルである。
【図２４Ａ】ＶＭの移動先計算機でのデステージ処理が完了した後のマッピングテーブルマッピングテーブルである。
【図２４Ｂ】ＶＭの移動先計算機でのデステージ処理が完了した後の直結ストレージテーブルである。
【図２４Ｃ】ＶＭの移動先計算機でのデステージ処理が完了した後の外部ストレージページテーブルである。
【図２５Ａ】直結ストレージ間移行処理が完了した後のテーブルである。
【図２５Ｂ】直結ストレージ間移行処理が完了した後のテーブルである。
【図２６Ａ】図３０のデステージ処理が完了した後のマッピングテーブルマッピングテーブルである。
【図２６Ｂ】図３０のデステージ処理が完了した後の直結ストレージテーブルである。
【図２６Ｃ】図３０のデステージ処理が完了した後の外部ストレージテーブルである。
【図２７】移行先決定テーブルの作成フローチャートである。
【図２８】移動先計算機の直結ストレージから外部ストレージへのデステージ処理のフローチャートである。
【図２９】直結ストレージ間でのデータ移行を示すフローチャートである。
【図３０】移動元計算機の直結ストレージから外部ストレージへのデステージ処理を説明するフローチャートである。
【図３１】外部ストレージを増設した後の計算機システムのブロック図である。
【図３２】複数の外部ストレージ間でのデータ移行を実行するフローチャート例を示す。
【図３３】計算機の変形を説明するブロック図である。
【図３４】計算機システムの他の実施形態に係るハードウエアブロック図である。
【図３５】図３４の実施形態に係る計算機と計算機に直結するストレージの詳細なブロック図である。
【図３６】仮想ＬＵの管理・制御情報を規定する仮想ＬＵテーブルの他の例の管理テーブルである。
【発明を実施するための形態】
【００１５】
次に、本発明の実施形態を添付図面に従って説明する。図１は、計算機システムの第１の実施形態を示すハードウエアブロック図である。このシステムは、計算機１と、計算機１に直結される直結ストレージ２と、外部ストレージ３と、管理者が直結ストレージ２及び外部ストレージ３を管理するための管理端末（或いは管理計算機）４と、そして、計算機１と外部ストレージ３と管理端末４とを相互に接続するネットワーク５と、を備えている。計算機１とこれに直結するストレージ２によって各サイトでのストレージシステムが構成されることになる。
【００１６】
計算機１、外部ストレージ３、及び、管理端末４は、ネットワーク５に、銅ケーブルや光ファイバケーブル等の通信線２２を介して接続している。計算機１と直結ストレージ２とは、銅ケーブルや光ファイバケーブル等の通信線２３によって接続されている。
【００１７】
計算機１のストレージ制御プログラム(後述)は、ＶＭが、直結ストレージ２、及び、外部ストレージ３の論理化された記憶領域にアクセスするための、論理ボリューム（ＬＵ：Ｌｏｇｉｃａl Ｕｎｉｔ）を設定している。後述のとおり、この論理ボリュームは容量が仮想化されたもの、すなわち、実容量を有しない仮想的なボリュームである。この仮想ボリュームには、例えば、シン・プロビジョニング（Ｔｈｉｎ Ｐｒｏｖｉｓｉｏｎｉｎｇ）によって、直結ストレージ２又は外部ストレージ３からストレージリソースが割当てられる。
【００１８】
直結ストレージ２は、Ｔｉｒｅ０に相当するものであって、例えば、ＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｉｓｋ）のように、高速、高性能、高信頼性の記憶媒体を１つ以上備えたものを備えている。もっとも、直結ストレージ２がＴｉｒｅ１に相当するものでることを妨げるものではない。
【００１９】
外部ストレージ３はＴｉｒｅ２に相当するものであって、ＳＡＳやＳＡＴＡのハードディスクドライブのように、低速ではあるものの低コストの記憶媒体を１つ以上備えている。もっとも、直結ストレージ２がＴｉｒｅ０である場合に、外部ストレージをＴｉｒｅ１であってもよい。直結ストレージ２、及び、外部ストレージ３は、ＲＡＩＤによって構成されていることが好ましいが、これに限るものではない。
【００２０】
ネットワーク５は有線でも無線でもかまわない。ネットワーク５が無線の場合、通信線２２は不要である。また、ネットワーク５はＥｔｈｅｒｎｅｔ、ＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）ネットワーク、ＦＣ（Ｆｉｂｒｅ Ｃｈａｎｎｅｌ）ネットワーク、或いは、その他のネットワークでもよい。さらに、管理端末４、計算機１及び、外部ストレージ３を相互に接続する管理ネットワークがネットワーク５とは別であってもよい。
【００２１】
図２は、計算機１のハードウエアブロック図である。計算機１は、演算装置（ＣＰＵ）１１、揮発性の主メモリ１２、計算機１と通信線２２とを接続するネットワークインタフェース（ＮＷ  ＩＦ）１３、例えば、ＨＤＤなどの不揮発性の記憶装置１４、計算機１と通信線２３とを接続するデバイスインタフェース（デバイスＩＦ）１５、そして、ＣＰＵ１１と、主メモリ１２とＮＷ  ＩＦ１３と、ＨＤＤ１４と、デバイスＩＦ１５とを相互接続するバス等の通信線２１と、を備えている。
【００２２】
ＨＤＤ１４は、プログラムや情報テーブルを記憶しており、ＣＰＵ１１は、プログラム、情報テーブルをＨＤＤ１４から主メモリ１２にマウントして、プログラムの実行やテーブルの参照等を行う。図２は、主メモリ１２に格納されたプログラム及びテーブルを示している。
【００２３】
ストレージを制御するためのストレージ制御プログラム３８は、階層制御プログラム３１、分散制御プログラム３２、内部Ｉ／Ｏ制御プログラム３３、外部Ｉ／Ｏ制御プログラム３４、管理端末通信プログラム３５から構成されている。主メモリ１２は、さらに、ＯＳを含むアプリケーションプログラム３６とＶＭ制御プログラムから構成される。
【００２４】
従来、ストレージ制御プログラム３８は、直結ストレージ２や外部ストレージ３において実行されていたが、計算機１は、ストレージ制御プログラム３８を、アプリケーションプログラム３６と共に自身の演算装置１１によって実行するため、計算機１に直結された直結ストレージ２と、ネットワーク５を介して接続された外部ストレージ３との間で階層ストレージ管理（Ｈｉｅｒａｒｃｈｉｃａｌ Ｓｔｏｒａｇｅ Ｍａｎａｇｅｍｅｎｔ）を可能にした。
【００２５】
以下、アプリケーションプログラム３６、ＶＭ制御プログラム３７、及びストレージ制御プログラム３８の動作概要を説明する。各計算機のＣＰＵ１１は、ＶＭ制御プログラム３７を実行することによって、仮想的な計算機であるＶＭを計算機に１つ以上設定できる。そして、ＣＰＵ１１は、ＶＭ制御プログラム３７に基づき、ＶＭを実行主体として、アプリケーションプログラム３６を実行する。ＶＭ制御プログラム３７は、計算機の制御リソースを仮想化しているために、ＶＭを複数の計算機の間で移動させることができる。
【００２６】
ＶＭ制御プログラム３７は、ＶＭに既述の仮想ボリュームを提供する。この仮想ボリュームを後述のように、仮想ＬＵと呼ぶ。ＣＰＵ１１がアプリケーションプログラム３６に基づき仮想ＬＵにアクセスしてこれにデータを書き込む際、ＣＰＵ１１は、ＶＭ制御プログラム３７に基づき、データ及びそのデータのアドレスを主メモリ１２に退避し、その後、ＣＰＵ１１は、ストレージ制御プログラム３８に基づき、そのデータを主メモリ１２から、仮想ＬＵに対応された、直結ストレージ２、又は、外部ストレージ３へ転送する。
【００２７】
一方、ＣＰＵ１１がアプリケーションプログラム３６に基づき、仮想ＬＵからデータを読み込む時、ＣＰＵ１１はＶＭ制御プログラム３７に基づき、そのデータのアドレスを主メモリ１２に退避し、その後、ＣＰＵ１１はストレージ制御プログラム３８に基づき、そのアドレスのデータを直結ストレージ２、又は外部ストレージ３から主メモリ１２に転送する。
【００２８】
ＨＤＤ１４には、ＶＭテーブル４１、仮想ＬＵテーブル４２、外部ストレージテーブル４３、マッピングテーブルマッピングテーブル４４、直結ストレージページテーブル４５、外部ストレージページテーブル４６、そして、移行先決定テーブル４７等の各種管理テーブルが格納されている。各テーブルの詳細は後述する。
【００２９】
図３は、管理端末４のハードウエアブロック図を示す。管理端末４は、ＣＰＵ１１、主メモリ１２、ＮＷ  ＩＦ１３、ＨＤＤ１４、マウスやキーボード等の入力装置１６、ディスプレイ等の出力装置１７、及び、通信線２１を備えている。
【００３０】
ＨＤＤ１４には、画面制御プログラム５１、ＶＭ移動プログラム５２、計算機通信プログラム５３及び外部ストレージ通信プログラム５４等のプログラムが格納される。また、ＨＤＤ１４には、計算機テーブル６１、ＶＭテーブル６２、外部ストレージテーブル６３及び状態テーブル４４等のテーブルが格納されている。
【００３１】
ＣＰＵ１１は、これらのプログラムをＨＤＤ１４Ａから主メモリ２１に複製して実行する。ＣＰＵ１１はさらにテーブルをＨＤＤ１４Ａから主メモリ２１に複製して参照する。また、主メモリ２１のテーブルは、ＣＰＵ１１により書き換えられ、そして、ＨＤＤ１４に複製される。
【００３２】
以後の説明において、ハードウエアの構成要素を示す符号について、ＶＭの移動元計算機が有する構成要素の符号には[ａ]を付し、ＶＭの移動先計算機の構成要素の符号には[ｂ]を付し、管理端末の構成要素の符号には[ｃ]を付すことによってお互いを区別することとする。例えば、ＣＰＵ１１ａはＶＭの移動元計算機のものであり、ＣＰＵ１１ｂはＶＭの移動先計算機のものであり、ＣＰＵ１１ｃは管理端末のものである。
【００３３】
次に、複数の計算機間でのＶＭの移動と、ＶＭの移動に伴う仮想ＬＵの移動、及びデータの移動の動作について説明する。図４Ａは複数の計算機間をＶＭが移動する前の状態を示す計算機システムのブロック図である。ＩＤがＳＶ１である計算機は、ＩＤがＤＳ１である直結ストレージに接続している。計算機ＳＶ１には、ＩＤがＶＭ１のＶＭが動作している。また、計算機ＳＶ１はＩＤがＶＬ１である仮想ＬＵを設定しており、ＶＭ１は仮想ＬＵ（ＶＬ１）にアクセスする。仮想ＬＵ（ＶＬ１）は、１つ以上のページからなる。ページとは、ＬＵを構成する記憶領域の単位である。仮想ボリュームのページが記憶資源を有するのではなく、仮想ＬＵのページにはストレージのＬＵのページが割り当てられる。仮想ＬＵのページを仮想ページと呼ぶ。これに対して、ストレージのＬＵは記憶資源を有しているために、これを実ＬＵと呼び、実ＬＵのページを実ページと呼ぶ。
【００３４】
仮想ＬＵ（ＬＶ１）は、少なくとも、ＩＤがＶＰ１１、ＶＰ１２及びＶＰ１３である３つの仮想ページを有している。計算機ＳＶ１に直接接続した直結ストレージＤＳ１は、ＩＤがＲＬ１である実ＬＵを有し、これを計算機ＳＶ１に提供する。実ＬＵ（ＲＬ１）は、少なくとも、ＩＤがＲＰ１１及びＲＰ１２である２つの実ページを有している。実ページＲＰ１１は仮想ページＶＰ１１に割当てられており、実ページＲＰ１２は仮想ページＶＰ１２に割当てられている。
【００３５】
ＩＤがＥＳ１である外部ストレージ３は、ネットワーク５を介して計算機ＳＶ１にＩＤがＲＬ３である実ＬＵを提供する。実ＬＵ（ＲＬ３）は、少なくとも、ＩＤがＲＰ３１及びＲＰ３２である実ページを有する。仮想ページＶＰ１１及び仮想ページＶＰ１２は、仮想ＶＰ１３と比較して、ＶＭ１からのアクセス頻度が高いとする。そのため、仮想ページＶＰ１１及び仮想ページＶＰ１２に対するライトデータは、高速・高性能である直結ストレージＤＳ１の実ページＲＰ１１及び実ページＲＰ１２にそれぞれ格納される。また、仮想ページＶＰ１３に対するライトデータは、低速・低性能である外部ストレージＥＳ１の実ＬＵ（ＲＬ３）の実ページＲＰ３１に格納される。
【００３６】
ＩＤがＳＶ２である計算機には、ＩＤがＤＳ２であるストレージが直接接続されている。計算機ＳＶ２では、ＩＤがＶＭ２であるＶＭが動作している。ＶＭ２は、ＩＤがＶＬ２である仮想ＬＵにアクセスする。仮想ＬＵ（ＶＬ２）は、少なくとも、ＩＤがＶＰ２１である仮想ページを有している。直結ストレージＤＳ２は、計算機ＳＶ１に、ＩＤがＲＬ２である実ＬＵを提供する。実ＬＵ（ＲＬ２）は、少なくとも、ＩＤがＲＰ２１である実ページを有している。仮想ページＶＰ２１に対するデータは、実ページＲＰ２１に格納されている。これは、仮想ページＶＰ２１に実ページＲＰ２１が割り当てられからである。仮想ページＶＰ２１のアクセス頻度は、仮想ページＶＰ１２、及び、仮想ページＶＰ１３よりは高いが、仮想ページＶＰ１１より低いとする。
【００３７】
外部ストレージＥＳ１は、さらに、ＩＤがＲＬ４である実ＬＵを有している。実ＬＵ（ＲＬ４）は、少なくとも、ＩＤがＲＰ４１である実ページを有している。実ページＲＰ４１はまだどの仮想ページにも割り当てられていない。
【００３８】
図４Ｂは、複数の計算機間でＶＭが移動された後の計算機システムのブロック図である。管理者は、管理端末４を介して、計算機ＳＶ１から計算機ＳＶ２へ、ＶＭ１を移動すると、その移動に伴い、仮想ＬＵ（ＶＬ１）と、仮想ＬＵの仮想ページＶＰ１１、ＶＰ１２、及び、ＶＰ１３が、計算機ＳＶ１から計算機ＳＶ２へ移動する。したがって、ＶＭが移動する前、計算機ＳＶ１に存在していた、ＶＭがＶＭに割当られたデータにアクセスするための管理・制御情報がＶＭの移動先である計算機ＳＶ２で再現できることになる。ＶＭが移動直後、仮想ページと実ページとの対応関係はＶＭの移動前と同じである。
【００３９】
これに対して、図５Ａは、移動先計算機において、デステージが行われた後の計算機システムのブロック図を示す。デステージとは、直結ストレージ２内の実ページのデータが外部ストレージ３の実ページへ移行されることである。ＶＭ１が計算機ＳＶ１から計算機ＳＶ２に移動して、ＶＭ１が仮想ＬＵ（ＶＬ１）の仮想ページにアクセスしようとすると、ＶＭ１は仮想計算機ＳＶ２からネットワーク５を経由し、さらに、計算機ＳＶ１から直結ストレージＤＳ１の実ページにアクセスしなければならず、レイテンシが増大する。特に、アクセス頻度が高い仮想ページ（ＶＰ１１）ほどこの傾向が大きくなる。このレイテンシを避けるためには、仮想ＬＵ（ＶＬ１）の仮想ページ、特に、ＶＭ１〜のアクセス頻度が高い仮想ページＶＰ１１のデータは計算機ＳＶ２の直結ストレージＤＳ２の実ページにあることがよい。
【００４０】
そこで、管理端末４は、仮想ページＶＰ１１のために、直結ストレージＤＳ２に空きページを作る必要から、仮想ページＶＰ１１よりアクセス頻度の低い仮想ページＶＰ２１に割り当てられた実ページＲＰ２１のデータを、直結ストレージＤＳ２から外部ストレージＥＳ１の実ＬＵ（ＲＬ４）の未使用ページであるＲＰ４１にデステージする。そして、管理端末４は、先ず、仮想ページＶＰ２１に実ページＲＰ４１を再割り当てし、仮想ページＶＰ２１の実ページＲＰ２１に対する割り当てを解除する。
【００４１】
図５Ｂは、直結ストレージＤＳ１の実ページＲＰ１１のデータが直結ストレージＤＳ２の実ページＲＰ２１に直接移行された後の計算機システムのブロック図である。デステージにより、直結ストレージＤＳ２に「空き」ページ（実ページＲＰ２１）が生成されたため、管理端末４は、ＶＭ１が使用する直結ストレージＤＳ１内の実ページのうち、アクセス頻度の高い実ページＲＰ１１のデータを直結ストレージＤＳ２内の実ページＲＰ２１へ移行する。そして、管理端末４は、仮想ページＶＰ１１と実ページＲＰ１１の割当を解除し、次いで、仮想ページＶＰ１１を直結ストレージＤＳ２の実ページＲＰ２１に再割り当てする。
【００４２】
図６は、移動元計算機ＳＶ１においてデステージが行われた後の状態に係る計算機システムのブロック図を示す。計算機ＤＳ１には、計算機ＤＳ２に移動したＶＭ１がアクセスする仮想ページＶＰ１２に割り当てられた実ページＲＰ１２がまだ存在している。この実ページは、計算機ＳＶ１に存在する他のＶＭがアクセスする仮想ページのために空ける方が好ましい。そこで、実ページＲＰ１２のデータが、外部ストレージＥＳ１内の空き実ページＲＰ３２にデステージされる。そして、管理端末４は仮想ページＶＰ１２に実ページＲＰ３２を再割り当てし、仮想ページＶＰ１２を実ページＲＰ１２の割り当てから解放する。
【００４３】
なお、移動するＶＭ１がアクセスする全ての仮想ページのアクセス頻度が、移動先計算機上で動作するＶＭがアクセスする仮想ページのアクセス頻度より低い場合、直結ストレージ間でのデータ移行、及び、移動先計算機におけるデステージは実行されない。アクセス頻度の高い仮想ページには、より高速のストレージである、直結ストレージを割当てるようにするためである。また、直結ストレージ間でのデータ移行は、移動先計算機におけるデステージの後に実行されるが、移動元計算機におけるデステージは、直結ストレージ間でのデータ移行より前に実行されてもよい。
【００４４】
既述の実施形態では、ＶＭ毎に仮想ＬＵが存在することを前提としたが、複数のＶＭが一つ又は複数の仮想ＬＵを共有するようにしてもよい。その場合、ＣＰＵ１１ａ，１１ｂは、どのＶＭが仮想ＬＵのどの領域を使用するかを、ＶＭ制御プログラム３７からストレージ制御プログラム３８へ、特別なＡＰＩを介して受け渡す必要がある。このようなＡＰＩの例として、ＶＭＷａｒｅ社の「ｖＳｔｏｒａｇｅ  ＡＰＩ」がある。そのために、図３６に示すように、仮想ＬＵテーブル４２にはエントリ４２４が追加され、エントリ４２４には、ＶＭが使用する領域の範囲を示す情報、例えば、先頭アドレスと最後尾アドレスのペアが格納される。
【００４５】
次に、図７から図１０までを用いて、既述の管理テーブルの構造を説明する。これらのテーブルは配列構造を持ち、１つ以上のレコードを格納する。ただし、データ構造が配列構造に限定されるものではない。
【００４６】
図７Ａは、ＶＭの管理・制御情報を規定するＶＭテーブル４１（図２）のデータ構造の例を示すものである。ＶＭテーブル４１は、計算機１において動作するＶＭの数分のレコードを有する。本テーブルのレコードは、ＶＭのＩＤが格納されるエントリ４１１、ＶＭに割り当てられたＷＷＮが格納されるエントリ４１２、ＶＭがアクセスする外部ストレージのＩＤとそのＬＵＮがそれぞれ格納されるエントリ４１３とエントリ４１４とから構成される。ＶＭに割当てられたＷＷＮを仮想ＷＷＮと呼ぶ。ＶＭテーブル４１ａは計算機ＳＶ１のＶＭに対してのものであり、ＶＭテーブル４１ｂは計算機ＳＶ２に対するものである。以後、テーブルを示す符号の末尾が「ａ」は、ＶＭ移動元計算機ＳＶ１のテーブルであることを示し、テーブルを示す符号の末尾が「ｂ」は、ＶＭ移動元計算機ＳＶ２のテーブルであることを示す。ａ，ｂの区別がない場合は、管理端末のテーブルであるか、移動元計算機及び移動先計算機に共通のものであることを示す。
【００４７】
図７Ｂは、仮想ＬＵの管理・制御情報を規定する仮想ＬＵテーブル４２のデータ構造の例を示す。このテーブルは、計算機１に設定されたＶＭの数分のレコードを有する。このテーブルのレコードには、ＶＭがアクセスする仮想ＬＵのＬＵＮが格納されるエントリ４２１、仮想ＬＵに設定されたＷＷＮが格納されるエントリ４２２、及び、仮想ＬＵの仮想容量が格納されるエントリ４２３から構成される。仮想ＬＵテーブル４２ａ及び仮想ＬＵテーブル４２ｂは、それぞれ、計算機ＳＶ１及び計算機ＳＶ２の仮想ＬＵテーブルである。
【００４８】
図７Ｃは、外部ストレージ３の特性を示す外部ストレージテーブルのデータ構造を示す一例である。このテーブルは、外部ストレージの数分のレコードを有する。このテーブルのレコードには、外部ストレージ３のＩＤが格納されるエントリ４３１、及び、外部ストレージ３のＷＷＮが格納されるエントリ４３２がある。計算機ＳＶ１及び計算機ＳＶ２は、同じ内容の外部ストレージテーブル４３を備えている。
【００４９】
図８Ａは、ＶＭから仮想ＬＵへのアクセスを直結ストレージ２、又は、外部ストレージ３に対するアクセスする変換するための管理・制御情報を規定したマッピングテーブルマッピングテーブル４４のデータ構造の例を示す。このテーブルは、計算機１がアクセスする仮想ＬＵを構成する仮想ページ数分のレコードを有する。
【００５０】
このテーブルのレコードには、仮想ページを含む仮想ＬＵのＬＵＮが格納されるエントリ４４１と、仮想ページのＩＤが格納されるエントリ４４２と、ＶＭから仮想ページにアクセスされた頻度が格納されるエントリ４４３と、仮想ページのデータが実際に格納されるストレージのＩＤが格納されるエントリ４４４と、データが実際に格納される実ＬＵのＬＵＮが格納されるエントリ４４５と、データが実際に格納される実ページのＩＤが格納されるエントリ４４６とがある。マッピングテーブルマッピングテーブル４４ａ及びマッピングテーブルマッピングテーブル４４ｂは、それぞれ計算機ＳＶ１及び計算機ＳＶ２のテーブルである。
【００５１】
図８Ｂは直結ストレージの管理・制御情報を規定した直結ストレージページテーブル４５のデータ構造の例である。このテーブルは、直結ストレージ２を構成する実ページ数分のレコードを有する。このテーブルのレコードには、直結ストレージのＩＤが格納されるエントリ４５１と、実ＬＵのＬＵＮが格納されるエントリ４５２と、実ページのＩＤが格納されるエントリ４５３と、実ページの状態が格納されるエントリ４５４とが存在する。実ページの状態には、未割当を表す[Not Assigned]、実ページが仮想ページに対して割当済みを表す[Assigned]、及び、割当ての予約がされていることを示す[Reserved]がある。直結ストレージページテーブル４５ａ及び４５ｂは、それぞれ計算機ＳＶ１及び計算機ＳＶ２のテーブルである。
【００５２】
図９は、外部ストレージの実ページの管理・制御情報を規定する、外部ストレージページテーブル４６（図２）のデータ構造の例である。このテーブルは、計算機１がアクセスする外部ストレージ３の実ＬＵを構成する実ページ数分のレコードを有する。このテーブルのレコードには、レコードに対応する実ページを含む外部ストレージ３のＩＤが格納されるエントリ４６１と、実ページを含む実ＬＵのＬＵＮが格納されるエントリ４６２と、実ページのＩＤが格納されるエントリ４６３、及び、実ページの状態が格納されるエントリ４６４とがある。実ページの状態には、未割当を表す[Not Assigned]、及び、割当済みを表す[Assigned]がある。外部ストレージページテーブル４６ａ及び４６ｂは、それぞれ計算機ＳＶ１及び計算機ＳＶ２のテーブルである。移行先決定テーブル４７の説明は図２１Ａにおいて後述する。
【００５３】
図１０Ａは、計算機の管理・制御情報を規定する、管理装置４の計算機テーブル６１（図３）のデータ構造の例を示す。このテーブルは、計算機システムに存在する計算機の数分のレコードを有する。テーブルのレコードには、計算機１のＩＤが格納されるエントリ６１１と、計算機１のＩＰアドレスが格納されるエントリ６１２と、計算機のＷＷＮが格納されるエントリ６１３とがある。
【００５４】
図１０Ｂは、ＶＭの管理・制御情報を規定する、管理装置４のＶＭテーブル６２（図３）のデータ構造の例である。このテーブルは、システム内のＶＭの数分のレコードを有する。テーブルの各レコードは、当該レコードに対応するＶＭのＩＤが格納されるエントリ６２１、及び、ＶＭが動作する計算機１のＩＤが格納されるエントリ６２２とから構成される。
【００５５】
図１０Ｃは、外部ストレージの管理・制御情報を規定する、管理端末４の外部ストレージテーブル６３（図３）のデータ構造の例を示す。このテーブルは、外部ストレージ３数分のレコードを有する。テーブルのレコードは、外部ストレージ３のＩＤが格納されるエントリ６３１、外部ストレージ３のＩＰアドレスが格納されるエントリ６３２、及び、外部ストレージのＷＷＮが格納されるエントリ６３３と、がある。状態テーブル６４の説明は図２１Ｂにおいて後述する。
【００５６】
図１１と図１２とを用いて、管理端末４のＣＰＵ１１が、画面制御プログラム５１に基づいて出力装置１７に表示するグラフィカルユーザインタフェース（ＧＵＩ）を説明する。さらに、計算機１の主メモリ１２ａ．１２ｂや管理端末４の主メモリ１２ｃに格納されるテーブルの初期化処理の動作を説明する。
【００５７】
図１１Ａは、計算機システムに計算機を追加するための画面１１００の例を示す。管理者は、計算機１を新たにネットワーク５に接続するたびにこの画面を利用する。この画面は、追加される計算機１のＩＤが入力される領域１１０１、計算機１のＩＰアドレスが入力される領域１１０２、計算機１にアクセスするためのＷＷＮが入力される領域１１０３、計算機１に直結される直結ストレージ２のＩＤが入力される領域１１０４、直結ストレージ２に作成される実ＬＵのＬＵＮが入力される領域１１０５、実ＬＵの容量が入力される領域１１０６、管理者が計算機１を追加するためのボタン１１０７、及び管理者が計算機１の追加を取りやめるためのボタン１１０８とから構成される。
【００５８】
管理者がボタン１１０７をクリックすると、管理端末４のＣＰＵ１１ｃは、画面制御プログラム５１に基づき、領域１１０１、領域１１０２、及び領域１１０３に入力されたデータを用いて新しいレコードを計算機テーブル６１（図１０Ａ）に追加する。
【００５９】
また、管理端末４のＣＰＵ１１ｃは、計算機通信プログラム５３に基づき、領域１１０１に入力されたＩＤを持つ計算機１に対して、直結ストレーにＬＵを作成するＵ作成要求を送信する。この要求の送信先ＩＰアドレスは領域１１０２に入力されたＩＰアドレスである。この要求には、領域１１０４、領域１１０５、及び領域１１０６に入力されたデータが含まれる。なお、直結ストレージが管理ネットワークに接続されている場合には、この作成要求を直結ストレージに直に送ってもよい。
【００６０】
計算機１がこの要求を受信すると、計算機１のＣＰＵ１１は、管理端末通信プログラム３５に基づき、この要求に含まれるデータを取り出す。次に、計算機１のＣＰＵ１１は、内部Ｉ／Ｏ制御プログラム３３に基づき、領域１１０４に入力されたＩＤを持つ直結ストレージ２に、領域１１０５に入力されたＬＵＮと領域１１０６に入力された容量を持つ実ＬＵを作成する。
【００６１】
次に、計算機１のＣＰＵ１１は、内部Ｉ／Ｏ制御プログラム３３に基づき、１つ以上のレコードを直結ストレージページテーブル４５（図８Ｂ）に追加する。レコードの数は、領域１１０６に入力されたデータ、すなわち、作成された直結ストレージ２の実ＬＵの容量をページのサイズで割った数である。各レコードのエントリ４５１には、領域１１０４に入力されたデータ、すなわち、直結ストレージ２のＩＤを、エントリ４５２には領域１１０５、すなわち、作成された実ＬＵのＬＵＮを、エントリ４５３には、レコードに対応するページのＩＤを、エントリ４５４には未割当を表す値、例えば、「Ｎｏｔ  Ａｓｓｉｇｎｅｄ」がそれぞれ格納される。ページのＩＤは、自動的に採番される。そして、計算機１のＣＰＵ１１は、管理端末通信プログラム３５に基づき、管理端末４へ直結ストレージ内にＬＵを作成した旨の応答を送信する。管理端末４がこの応答を受信すると、管理端末４のＣＰＵ１１は、画面制御プログラム５１に基づき、画面１１００を消去する。
【００６２】
図１１Ｂは、外部ストレージ追加画面１１１０の例を示す。この画面は、追加される外部ストレージ３のＩＤが入力される領域１１１１、外部ストレージ３のＩＰアドレスが入力される領域１１１２、外部ストレージ３にアクセスするためのＷＷＮが入力される領域１１１３、管理者が外部ストレージ３を追加するためのボタン１１１４、及び、管理者が外部ストレージ３の追加を取りやめるためのボタン１１１５を有している。
【００６３】
管理者がボタン１１１４をクリックすると、管理端末４のＣＰＵ１１ｃは、画面制御プログラム５１に基づき、領域１１１１、領域１１１２、及び、領域１１１３に入力されたデータを用いて新しいレコードを外部ストレージテーブル６３(図１０Ｃ)に追加する。
【００６４】
また、管理端末４のＣＰＵ１１ｃは、計算機通信プログラム５３に基づき、計算機テーブル６１（図１０Ａ）に登録されている全ての計算機１に対して、外部ストレージ追加要求を送信する。この要求には、領域１１１１及び領域１１１３に入力されたデータが含まれる。
【００６５】
計算機１がこの要求を受信すると、計算機１のＣＰＵ１１は、管理端末通信プログラム
３５に基づき、この要求に含まれるデータを取り出す。次に、計算機１のＣＰＵ１１は、外部Ｉ／Ｏ制御プログラム３４に基づき、１つのレコードを外部ストレージテーブル４３（図７Ｃ）に追加する。追加されるレコードのエントリ４３１には領域１１１１に入力されたデータ、すなわち、外部ストレージ３のＩＤが、エントリ４３２には領域１１１３に入力されたデータ、すなわち、外部ストレージ３のＷＷＮがそれぞれ格納される。そして、計算機１のＣＰＵ１１は、管理端末通信プログラム３５に基づき、管理端末４へ外部ストレージ追加応答を送信する。管理端末４が全ての計算機１から外部ストレージ追加応答を受信すると、管理端末４のＣＰＵ１１ｃは、画面制御プログラム５１に基づき、画面１１１０を消去する。
【００６６】
図１２は、ＶＭを計算機に追加するために、管理装置４の設定画面１２００の例を示す。画面は、ＶＭを追加する計算機１を選択する領域１２０１、ＶＭのＩＤを入力する領域１２０２、ＶＭが利用する仮想ＷＷＮを入力する領域１２０３、ＶＭがアクセスする仮想ＬＵのＬＵＮを入力する領域１２０４、仮想ＬＵの仮想容量を入力する領域１２０５、ＶＭがアクセスする外部ストレージ３のＩＤを選択する領域１２０６、ＶＭがアクセスする外部ストレージ３内の実ＬＵのＬＵＮを入力する領域１２０７、実ＬＵの容量を入力する領域１２０８、管理者がＶＭを追加するためのボタン１２０９、及び管理者がＶＭの追加を取りやめるためのボタン１２１０を有している。
【００６７】
管理者がボタン１２０９をクリックすると、管理端末４のＣＰＵ１１ｃは、画面制御プログラム５１に基づき、領域１２０１、及び、領域１１０２に入力されたデータを用いて新しいレコードをＶＭテーブル６２（図１０Ｂ）に追加する。
【００６８】
また、管理端末４のＣＰＵ１１ｃは、外部ストレージ通信プログラム５４に基づき、領域１２０６で選択されたＩＤを持つ外部ストレージ３に対して、領域１２０７に入力されたＬＵＮと領域１２０８に入力された容量を持つ実ＬＵの作成要求を送信する。管理端末４がこの要求に対応する応答を外部ストレージ３から受信すると、管理端末４のＣＰＵ１１は、計算機通信プログラム５３に基づき、領域１２０１で選択されたＩＤを持つ計算機１に対して、ＶＭ追加準備要求を送信する。この要求には、領域１２０２、領域１２０３、領域１２０４、領域１２０５、領域１２０６、領域１２０７及び領域１２０８に入力或いは選択されたデータが含まれる。
【００６９】
計算機１がこの要求を受信すると、計算機１のＣＰＵ１１は、管理端末通信プログラム３５に基づき、この要求に含まれるデータを取り出す。次に、計算機１のＣＰＵ１１は、外部Ｉ／Ｏ制御プログラム３４に基づき、１つ以上のレコードを外部ストレージページテーブル４６（図９）に追加する。
【００７０】
追加するレコードの数は、領域１２０８に入力されたデータ、すなわち、作成された外部ストレージ３の実ＬＵの容量を実ページのサイズで割った数である。追加したレコードのエントリ４６１には領域１２０６で選択されたデータ、すなわち外部ストレージ３のＩＤ、エントリ４６２には領域１２０７で入力されたデータ、すなわち、作成された実ＬＵのＬＵＮ、エントリ４６３には実ＬＵのＬＵＮに対応するページのＩＤ、エントリ４６４には未割当を表す値、例えば「Ｎｏｔ  Ａｓｓｉｇｎｅｄ」がそれぞれ格納される。ページのＩＤは、自動的に採番される。
【００７１】
次に、計算機１のＣＰＵ１１は、外部Ｉ／Ｏ制御プログラム３４に基づき、１つのレコードをＶＭテーブル４１(図７Ａ)に追加する。追加されたレコードのエントリ４１１に領域１２０２に入力されたデータ、すなわち、追加されるＶＭのＩＤを、エントリ４１２に領域１２０３に入力されたデータ、すなわち、追加されるＶＭが利用する仮想ＷＷＮを、エントリ４１３には領域１２０６で選択されたデータ、すなわち追加されるＶＭがアクセスする外部ストレージ３のＩＤを、エントリ４１４には領域１２０７に入力されたデータ、すなわち、追加されるＶＭがアクセスする外部ストレージ３内の実ＬＵのＬＵＮをそれぞれ格納する。
【００７２】
次に、計算機１のＣＰＵ１１は、内部Ｉ／Ｏ制御プログラム３３に基づき、１つのレコードを仮想ＬＵテーブル４２（図７Ｂ）に追加する。追加するレコードのエントリ４２１に、領域１２０４に入力したデータ、すなわち、追加するＶＭに提供される仮想ＬＵのＬＵＮを、エントリ４２２に、領域１２０３に入力したデータ、すなわち、追加するＶＭが利用する仮想ＷＷＮを、エントリ４２３に、領域１２０５に入力したデータ、すなわち、前記仮想ＬＵの仮想容量をそれぞれ格納する。
【００７３】
次に、計算機１のＣＰＵ１１は、内部Ｉ／Ｏ制御プログラム３３に基づき、１つ以上のレコードをマッピングテーブルマッピングテーブル４４（図８Ａ）に追加する。追加されるレコードの数は、領域１２０５に入力したデータ、すなわち、仮想ＬＵの仮想容量をページのサイズで割った数である。追加する各レコードのエントリ４４１には領域１２０４に入力したデータ、すなわち、仮想ＬＵのＬＵＮを、エントリ４４２にはレコードに対応するページのＩＤを、エントリ４４３には未だアクセスしていない事を表すデータ、すなわち、「０」を、エントリ４４４、エントリ４４５、及びエントリ４４６にはまだ仮想ページに実ページが割り当てられていない事を表すデータ、例えば「Ｎ／Ａ」をそれぞれ格納する。ページのＩＤは、自動的に採番される。そして、計算機１のＣＰＵ１１は、管理端末通信プログラム３５に基づき、管理端末４へＶＭの追加の準備が完了した旨の応答を送信する。
【００７４】
管理端末４がこの応答を受信すると、管理端末４のＣＰＵ１１は、計算機通信プログラム５３に基づき、領域１２０１で選択されたＩＤを持つ計算機１に対して、ＶＭを追加する要求を送信する。この要求には、領域１２０２、領域１２０３及び領域１２０４に入力されたデータが含まれる。計算機１がこの要求を受信すると、計算機１のＣＰＵ１１は、管理端末通信プログラム３５を実行して、この要求に含まれるデータを取り出す。次に、計算機１のＣＰＵ１１は、ＶＭ制御プログラム３７に基づき、領域１２０２に入力されたＩＤを持つＶＭを作成する。このＶＭは、領域１２０３に入力された仮想ＷＷＮを用いて、領域１２０４に入力されたＬＵＮを持つ仮想ＬＵにアクセスする。そして、計算機１のＣＰＵ１１は、管理端末通信プログラム３５に基づき、管理端末４へＶＭを追加した旨の応答を送信する。
【００７５】
管理端末４が計算機１からＶＭ追加応答を受信すると、管理端末４のＣＰＵ１１ｃは、画面制御プログラム５１に基づき、画面１２００を消去する。
【００７６】
図１３から図１９までを用いて、計算機１の動作を説明する。図１３は、計算機１のＣＰＵ１１が内部Ｉ／Ｏ制御プログラム３３に基づいて、内部ライト処理を実行するフローチャートの例を示す。この処理は、計算機１のＶＭがアプリケーションプログラム３６を実行して仮想ＬＵへのデータの書き込みが発生した場合に開始される。
【００７７】
まず、計算機１のＣＰＵ１１は、書き込まれるデータのアドレスからそのデータに対応する仮想ページを特定する。そして、ＣＰＵ１１は、マッピングテーブルマッピングテーブル４４（図８Ａ）を参照して、その仮想ページに実ページが既に割り当てられているかを調べる（Ｓ１３０１）。もし、まだ割り当てられていない場合、ＣＰＵ１１は、図１４において後述するページ割当処理を実行する（Ｓ１３０２）。既に割り当てられている場合、ＣＰＵ１１は、マッピングテーブルマッピングテーブル４４を参照して、割り当てられた実ページが直結ストレージ２の実ページか否かを調べる（Ｓ１３０３）。
【００７８】
この判定結果が直結ストレージ２の実ページである場合、ＣＰＵ１１は、直結ストレージ２の実ページに対してデータをライトする（Ｓ１３０４）。直結ストレージ２の実ページではない場合、ＣＰＵ１１は、マッピングテーブルマッピングテーブル４４を参照して、割り当てられた実ページが外部ストレージ３の実ページか否かを調べる（Ｓ１３０５）。外部ストレージ３の実ページの場合、ＣＰＵ１１は、外部ストレージ３へデータをライトするする（Ｓ１３０６）。
【００７９】
外部ストレージ３の実ページではない場合、ＣＰＵ１１は、他の計算機１へデータをライトする（Ｓ１３０７）。Ｓ１３０４、Ｓ１３０６或いはＳ１３０７が完了後、ＣＰＵ１１は、マッピングテーブル４４のＳ１３０１で特定された仮想ページに対応するレコードのアクセス頻度（４４３）を更新し（Ｓ１３０８）、本処理を終了する。
【００８０】
なお、ＣＰＵは、仮想ページを直結ストレージへ割当てるべきか外部ストレージへ割当てるべきかの区別を、マッピングテーブル４４の、実ページに対応するレコードのストレージＩＤ４４４を見て、当該実ページが直結ストレージの実ページか外部ストレージの実ページかを判定することに基づいて実行する。
【００８１】
図１４は、計算機１のＣＰＵ１１が、内部Ｉ／Ｏ制御プログラム３３に基づいて実行するページ割当処理のフローチャート例を示す。まず、ＣＰＵ１１は、直結ストレージページテーブル４５を参照して、まだ割り当てられていない実ページを選択する（Ｓ１４０１）。
【００８２】
ＣＰＵ１１は、この選択が出来たか否かで処理を分岐する（Ｓ１４０２）。選択出来なかった場合、図１５で詳しく説明する階層間データ緊急移行処理を実行し（Ｓ１４０３）、本処理を終了する。選択出来た場合、ＣＰＵ１１は、直結ストレージページテーブル４５（図８Ｂ）の、選択された実ページに対応するレコードを更新する（Ｓ１４０４）。すなわち、レコードのエントリ４５４を、割当済みを表すデータ例えば[Assigned]に変更する。
【００８３】
次に、ＣＰＵ１１は、マッピングテーブル４４のＳ１３０１で特定された仮想ページに対応するレコードを更新する（Ｓ１４０５）。すなわち、レコードのエントリ４４３を最新のアクセス頻度の値に、エントリ４４４を直結ストレージ２のＩＤに、エントリ４４５を直結ストレージ２に作成された実ＬＵのＬＵＮに、エントリ４４６をＳ１４０１で選択された実ページのＩＤにそれぞれ変更する。最後に、ＣＰＵ１１は、Ｓ１４０１で選択された実ページにデータをライトする（Ｓ１４０６）。
【００８４】
図１５は、計算機１のＣＰＵ１１が、階層制御プログラム３１に基づいて、ストレージの階層間でデータを緊急に移行する処理のフローチャートの一例である。まず、ＣＰＵ１１は、マッピングテーブル４４を参照し、直結ストレージ２の割り当て済み実ページのうち、最もアクセス頻度の低い実ページを選択し（Ｓ１５０１）、その実ページのデータをリードする（Ｓ１５０２）。
【００８５】
次に、ＣＰＵ１１は、外部ストレージページテーブル４６（図９）を参照し、まだ割り当てられていない実ページを選択する（Ｓ１５０３）。ＣＰＵ１１は、この選択が出来たか否かで処理を分岐する（Ｓ１５０４）。選択出来なかった場合、直結ストレージ２にも外部ストレージ３にも空き容量がないため、ＣＰＵ１１は、エラーの発生を管理者に通知する（Ｓ１５０９）。この通知は、例えば、電子メールやイベントログで行われる。
【００８６】
選択が出来た場合、ＣＰＵ１１は、Ｓ１５０２でリードされたデータを、Ｓ１５０３で選択された実ページにライトし（Ｓ１５０５）、Ｓ１５０１で選択された実ページのデータを初期化する（Ｓ１５０６）。この初期化は、例えば、ＣＰＵ１１が、実ページの全ての記憶領域に０を書き込むことで行われる。
【００８７】
ＣＰＵ１１は、マッピングテーブル４４（図８Ａ）及び、外部ストレージページテーブル４６（図９）を更新する（Ｓ１５０８）。すなわち、マッピングテーブル４４のレコードのうち、Ｓ１５０１で選択された実ページが割り当てられている仮想ページに対応するレコードのエントリ４４４を外部ストレージ３のＩＤに、エントリ４４５を外部ストレージ３の実ＬＵのＬＵＮに、エントリ４４６をＳ１５０３で選択された実ページのＩＤにそれぞれ変更する。
【００８８】
また、マッピングテーブル４４のレコードのうち、Ｓ１３０１で特定された仮想ページに対応するレコードのエントリ４４３を最新のアクセス頻度の値に、エントリ４４４を直結ストレージ２のＩＤに、エントリ４４５を直結ストレージ２に作成された実ＬＵのＬＵＮに、エントリ４４６をＳ１５０１で選択された仮想ページに割り当てられていた直結ストレージ２の実ページのＩＤにそれぞれ変更する。
【００８９】
計算機１のＣＰＵは、外部ストレージページテーブル４６(図９)の、Ｓ１５０３で選択された実ページに対応するレコードのエントリ４６４を、割当済みを表すデータにそれぞれ変更する。最後に、ＣＰＵ１１が、Ｓ１５０１で選択された実ページへデータをライトして（Ｓ１５０７）、本処理を終了する。
【００９０】
図１６は、計算機１のＣＰＵ１１が内部Ｉ／Ｏ制御プログラム３３に基づいて実行する内部リード処理のフローチャートの一例である。本処理は、計算機１のＶＭがアプリケーションプログラム３６に基づいて仮想ＬＵからデータを読み込む時に実行される。
【００９１】
まず、ＣＰＵ１１は、読み込まれるデータのアドレスからそのデータに対応する仮想ページを特定する。そして、ＣＰＵ１１は、マッピングテーブル４４(図８Ａ)を参照して、その仮想ページに実ページが既に割り当てられているかを調べる（Ｓ１６０１）。割り当てられていない場合、ＣＰＵ１１は、０データを主メモリ１２に送信して（Ｓ１６０２）、処理を終了する。
【００９２】
既に割り当てられている場合、ＣＰＵ１１は、マッピングテーブル４４を参照して、割り当てられた実ページが直結ストレージ２の実ページか否かを調べる（Ｓ１６０３）。直結ストレージ２の実ページの場合、ＣＰＵ１１は、直結ストレージ２の実ページからデータをリードする（Ｓ１６０４）。
【００９３】
直結ストレージ２の実ページではない場合、ＣＰＵ１１は、マッピングテーブル４４を参照して、割り当てられた実ページが外部ストレージ３の実ページか否かを調べる（Ｓ１６０５）。外部ストレージ３の実ページの場合、ＣＰＵ１１は、外部ストレージ３からデータをリードする（Ｓ１６０６）。
【００９４】
外部ストレージ３の実ページではない場合、ＣＰＵ１１は、他の計算機１からデータをリードする（Ｓ１６０７）。Ｓ１６０４、Ｓ１６０６或いはＳ１６０７が完了後、ＣＰＵ１１は、マッピングテーブル４４のＳ１６０１で特定された仮想ページに対応するレコードのエントリ４４３（アクセス頻度）を更新する（Ｓ１６０８）。
【００９５】
最後に、ＣＰＵ１１は、リードされたデータを主メモリ１２に送信し（Ｓ１６０９）、処理を終了する。その後、ＣＰＵ１１がアプリケーションプログラム３６に基づいて、主メモリ２１に転送されたデータを読み出し、アプリケーションプログラムの様々な処理を実行する。なお、アクセス頻度に代わる特性としては、データの重要性、データの作成日付などがある。
【００９６】
図１７Ａは、計算機１のＣＰＵ１１が外部Ｉ／Ｏ制御プログラム３４に基づいて実行する外部ライト処理のフローチャートの一例である。この処理は、計算機１が他の計算機１のＶＭから書き込み要求を受領した時に実行される。
【００９７】
まず、ＣＰＵ１１は、書き込まれるデータのアドレスからそのデータに対応する仮想ページを特定する。そして、ＣＰＵ１１は、マッピングテーブル４４を参照して、その仮想ページに直結ストレージ２の実ページが既に割り当てられているかを調べる（Ｓ１７０１）。仮想ページに直結ストレージの実ページが割り当てられていない場合、ＣＰＵ１１は、直結ストレージに他の計算機から受信したデータを書き込めないためにエラーを管理者に通知して（Ｓ１７０２）、この処理を終了する。一方、既に割り当てられている場合、ＣＰＵ１１は、Ｓ１７０１で特定された実ページにデータをライトして（Ｓ１７０３）、この処理を終了する。
【００９８】
図１７Ｂは、計算機１のＣＰＵ１１が外部Ｉ／Ｏ制御プログラム３４に基づいて実行する外部リード処理のフローチャート例を示す。この処理は、計算機１が他の計算機１のＶＭから読み込み要求を受領した時に実行される。まず、ＣＰＵ１１は、読み込まれるべきデータのアドレスからそのデータに対応する仮想ページを特定する。
【００９９】
そして、ＣＰＵ１１は、マッピングテーブル４４（図８Ａ）を参照して、その仮想ページに直結ストレージ２の実ページが既に割り当てられているかを調べる（Ｓ１７１１）。まだ、割り当てがない場合、ＣＰＵ１１は、０データを他の計算機１へ送信し（Ｓ１７１２）、この処理を終了する。既に割り当てがあった場合、ＣＰＵ１１は、Ｓ１７１１で特定された実ページからデータをリードし（Ｓ１７１３）、そのデータを他の計算機１へ送信し（Ｓ１７１４）、この処理を終了する。
【０１００】
図１８は、計算機１のＣＰＵ１１が、階層制御プログラム３１に基づいて、ストレージの階層間でデータを移行する処理の第１の形態に係るフローチャートである。本処理は、直結ストレージ２の空き容量、或いは、空き実ページを増やす目的で、ＣＰＵ１１が、直結ストレージ２に格納された比較的アクセス頻度の低いデータを外部ストレージ３へ移行する処理である。本処理は、予め決められた、或いは、管理者により入力された時間間隔で実行される。或いは、本処理は、直結ストレージ２の空きページ数が予め決められた、或いは、管理者により入力された閾値を下回った時に実行されてもよい。
【０１０１】
まず、計算機１のＣＰＵ１１は、直結ストレージページテーブル４５(図８Ｂ)を参照し、直結ストレージ２の１つの実ページを選択する（Ｓ１８０１）。
【０１０２】
次に、ＣＰＵ１１は、マッピングテーブル４４(図８Ａ)を参照し、Ｓ１８０１で選択された実ページが割り当てられた仮想ページのアクセス頻度が、予め決められた、或いは、管理者により入力された閾値より低いか否かを調べる（Ｓ１８０２）。アクセス頻度が所定のものより高い、ＣＰＵ１１は、Ｓ１８０８にジャンプする。一方、アクセス頻度が低い場合、ＣＰＵ１１は、外部ストレージページテーブル４６を参照し、まだ割り当てられていない実ページを選択する（Ｓ１８０３）。
【０１０３】
ＣＰＵ１１は、この選択が出来たか否かで処理を分岐する（Ｓ１８０４）。外部ストレージ３に空き容量がないため、選択が失敗した場合、ＣＰＵ１１はこの処理を終了する。選択が成功すると、ＣＰＵ１１は、Ｓ１８０１で選択された、直結ストレージの実ページのデータをＲｅａｄし、そのデータをＳ１８０３で選択された、外部ストレージの実ページへＷｒｉｔｅする（Ｓ１８０５）。さらに、ＣＰＵ１１は、Ｓ１８０１で選択された、直結ストレージの実ページのデータを初期化する（Ｓ１８０６）。
【０１０４】
次いで、ＣＰＵ１１は、マッピングテーブル４４（図８Ａ）、直結ストレージページテーブル４５（図８Ｂ）、及び、外部ストレージページテーブル４６（図９）を更新する（Ｓ１８０７）。すなわち、マッピングテーブル４４のレコードのうち、Ｓ１８０１で選択された実ページが割り当てられた仮想ページに対応するレコードのエントリ４４４を外部ストレージ３のＩＤに、エントリ４４５を外部ストレージ３の実ＬＵのＬＵＮに、エントリ４４６をＳ１８０３で選択された実ページのＩＤにそれぞれ変更する。また、直結ストレージページテーブル４５の、Ｓ１８０１で選択された実ページに対応するレコードのエントリ４５４を、未割当を表すデータに変更する。さらに、外部ストレージページテーブル４６の、Ｓ１８０３で選択された実ページに対応するレコードのエントリ４６４を、割当済を表すデータに変更する。ＣＰＵ１１は、Ｓ１８０１からＳ１８０７までの処理を、直結ストレージ２の全ての実ページに対して繰り返す（Ｓ１８０８）。
【０１０５】
図１９は、計算機１のＣＰＵ１１が階層制御プログラム３１に基づいて実行するストレージ階層間でデータを移行する処理の第２の形態に係るフローチャートである。本処理は、外部ストレージ３に格納された比較的アクセス頻度の高いデータに対する，ＶＭからのアクセス性能を高める目的で、ＣＰＵ１１が、外部ストレージ３に格納された比較的アクセス頻度の高いデータを直結ストレージ２へ移行する。
【０１０６】
本処理は、図１８の階層間データ移行処理の直後に実行される。或いは、本処理は、予め決められた、また、管理者により入力された時間間隔で実行されても良い。また、本処理は、外部ストレージ３の空きページ数が予め決められた、或いは、管理者により入力された閾値を下回った時に実行されてもよい。
【０１０７】
まず、ＣＰＵ１１は、外部ストレージページテーブル４６(図９)を参照し、外部ストレージ３の１つの実ページを選択する（Ｓ１９０１）。次に、ＣＰＵ１１は、マッピングテーブル４４（図８Ａ）を参照し、Ｓ１９０１で選択された実ページが割り当てられた仮想ページのアクセス頻度が、予め決められた、或いは、管理者により入力された閾値より高いか否かを調べる（Ｓ１９０２）。
【０１０８】
アクセス頻度が低い場合、ＣＰＵ１１は、Ｓ１９０８の処理にジャンプする。アクセス頻度が高い場合、ＣＰＵ１１は、直結ストレージページテーブル４５を参照し、まだ、割り当てられていない実ページを選択する（Ｓ１９０３）。ＣＰＵ１１は、この選択が出来たか否かで処理を分岐する（Ｓ１９０４）。
【０１０９】
直結ストレージ２に空き容量がないため、この選択が失敗すると、ＣＰＵ１１は、本処理を終了する。選択が成功すると、ＣＰＵ１１は、Ｓ１９０１で選択した、外部ストレージの実ページのデータをリードし、そのデータをＳ１９０３で選択した、直結ストレージの実ページへライトする（Ｓ１９０５）。
【０１１０】
次に、ＣＰＵ１１は、Ｓ１９０１で選択された実ページのデータを初期化する（Ｓ１９０６）。さらに、ＣＰＵ１１は、マッピングテーブル４４、直結ストレージページテーブル４５、及び、外部ストレージページテーブル４６を更新する（Ｓ１９０７）。すなわち、マッピングテーブル４４のレコードのうち、Ｓ１９０１で選択された実ページが割り当てられた仮想ページに対応するレコードのエントリ４４４を直結ストレージ２のＩＤに、エントリ４４５を直結ストレージ２の実ＬＵのＬＵＮに、エントリ４４６をＳ１９０３で選択された実ページのＩＤにそれぞれ変更する。
【０１１１】
また、直結ストレージページテーブル４５の、Ｓ１９０３で選択された実ページに対応するレコードのエントリ４５４を、割当済を表すデータに変更する。さらに、外部ストレージページテーブル４６の、Ｓ１９０１で選択された実ページに対応するレコードのエントリ４６４を、未割当を表すデータに変更する。ＣＰＵ１１は、Ｓ１９０１からＳ１９０７までの処理を、外部ストレージ３の実ＬＵのうち、計算機１が使用する全ての実ＬＵの全ての実ページに対して繰り返す（Ｓ１９０８）。
【０１１２】
以下に、ＶＭが移動する際の計算機システムの動作を説明する。図２１Ｂは、ＶＭの状態に関するテーブル６４のデータ構造の例である。本テーブルは、移動中のＶＭの数分のレコードを有する。本テーブルの各レコードは、移動中のＶＭのＩＤが格納されるエントリ６４１、ＶＭに関係するデータの状態が格納されるエントリ６４２から構成される。
【０１１３】
図２２Ａは、管理端末４のＣＰＵ１１ｃが、画面制御プログラム５１に基づいて出力装置１７に表示するＶＭ移動画面２２００の画面の例である。管理者は、ＶＭを計算機間で移動させる時、このＧＵＩを利用する。この画面は、ＶＭの移動元の計算機１のＩＤを選択する領域２２０１、移動させるＶＭのＩＤを選択する領域２２０２、ＶＭの移動先の計算機１のＩＤを選択する領域２２０３、管理者がＶＭを移動させるためのボタン２２０４、及び、管理者がＶＭの移動を取りやめるためのボタン２２０５から構成される。
【０１１４】
管理者がボタン２２０４をクリックすると、管理端末４のＣＰＵ１１ｃは、ＶＭ移動プログラム５２に基づき、領域２２０２で選択されたＶＭに対応する、状態テーブル６４のエントリ６４２を、ＶＭ移動中を表すステイタス、例えば、「ＶＭ移動中」に更新する。図４Ａは、管理者がボタン２２０４を操作する前（ＶＭが移動する前）での計算機システムの状態を示している。
【０１１５】
図２２Ｂは、管理端末４の状態表示画面２２１０の画面例を示す。本画面は、移動されるＶＭのＩＤが表示される領域２２１１、ＶＭがアクセスするデータの状態が表示される領域２２１２、及び、ＶＭの移動を途中で取り消すためのボタン２２１３から構成される。管理端末４のＣＰＵ１１ｃは、状態テーブル６４を更新した後、画面制御プログラム５１に基づいて出力装置１７に本画面を表示する。領域２２１２にはＶＭ移動中を表すメッセージ、例えば、「ＶＭ移動中」が表示される。
【０１１６】
図２０は、ＶＭが複数の計算機間を移動する過程での、計算機システムにおける通信シーケンスについてのタイムチャートの例である。図２０は、図４Ａ〜図６に対応するものである。すなわち、ＶＭ１は、計算機ＳＶ１から計算機ＳＶ２に移動し、それに伴い、ストレージ間でのデータ移動処理我実行される。ＶＭの移動元となる計算機１を移動元計算機、ＶＭの移動先となる計算機１を移動先計算機という。移動元計算機はＳＶ１であり、移動先計算機はＳＶ２である。
【０１１７】
管理端末４のＣＰＵ１１ｃは、状態表示画面２２１０（図２２Ｂ）を表示した後、計算機通信プログラム５３に基づき、領域２２０１で選択された移動元計算機（ＳＶ１）へＶＭ移動要求２００１を送信する。この要求には、領域２２０２で選択されたデータ、すなわち、移動するＶＭのＩＤ、及び、領域２２０３で選択されたデータ、すなわち、移動先計算機のＩＤが含まれる。また、この要求には、移動先計算機ＳＶ２のＩＰアドレス（図１０Ａ）も含まれる。
【０１１８】
移動元計算機ＳＶ１がＶＭ移動要求２００１を受信すると、移動元計算機ＳＶ１のＣＰＵ１１ａは、管理端末通信プログラム３５に基づき、この要求からデータを取り出す。次に、ＣＰＵ１１ａは、分散制御プログラム３２に基づき、仮想ＬＵを計算機ＳＶ１から計算機ＳＶ２に移動するための要求２００２を、移動先計算機ＳＶ２に送信する。
【０１１９】
この要求には、ＶＭテーブル４１ａ（図７Ａ）のレコードのうち、移動されるＶＭ（ＶＭ１）に対応するレコードのデータ（仮想ＷＷＮが[00000001]、外部ストレージＩＤが[ＥＳ１]、そのＬＵＮが［ＲＬ３］）が含まれる。また、この要求には、仮想ＬＵテーブル４２ａ（図７Ｂ）のレコードのうち、ＶＭに提供される仮想ＬＵに対応するレコードのデータが含まれる。さらに、この要求には、マッピングテーブル４４ａ（図８Ａ）のレコードのうち、仮想ＬＵに対応するレコードのデータが含まれる。さらにまた、この要求には、外部ストレージページテーブル４６ａ（図９）のレコードのうち、ＶＭが利用する実ＬＵに対応するレコードのデータが含まれる。
【０１２０】
移動先計算機（ＳＶ２）が仮想ＬＵ移動要求２００２を受信すると、移動先計算機（ＳＶ２）のＣＰＵ１１ｂは、分散制御プログラム３２に基づき、この要求からデータを取り出し、取り出されたデータに基づき、ＶＭテーブル４１ｂ（図７Ａ）、仮想ＬＵテーブル４２ｂ（図７ｂ）、マッピングテーブル４４ｂ（図８Ａ）及び外部ストレージテーブル４６ｂ（図９）を更新する。
【０１２１】
そこで、この更新後の、計算機ＳＶ２のテーブルのデータ構造の例を説明する。ＶＭテーブル４１ｂ(図２３Ａ)にはレコード４１０１が、仮想ＬＵテーブル４２ｂ（図２３Ｂ）にはレコード４２０１が、マッピングテーブル４４ｂ（図２３Ｃ）には３つのレコード４４０１が、外部ストレージページテーブル４６ｂ（図２３Ｄ）には２つのレコード４６０１がそれぞれ追加される。
【０１２２】
次に、ＶＭの移動先計算機（ＳＶ２）のＣＰＵ１１ｂは、分散制御プログラム３２に基づき、移行先決定テーブル４７を作成する。移行先決定テーブルとは、ＶＭの移動に伴い、ストレージ間でのデータの移行先をＶＭが移動された計算機が決定するために活用されるテーブルである。図２１Ａは、移行先決定テーブル４７のデータ構造例を示す。本テーブルは、計算機１で動作するＶＭに提供される仮想ＬＵのＬＵＮが格納されるエントリ４７１、仮想ＬＵに対応する仮想ページのＩＤが格納されるエントリ４７２、仮想ページのアクセス頻度が格納されるエントリ４７３、移行元のストレージのＩＤが格納されるエントリ４７４、移行先のストレージのＩＤが格納されるエントリ４７５から構成される。この移行先決定テーブル４７の作成処理を、図２７に基づいて説明する。
【０１２３】
図２７は、移動先計算機のＣＰＵ１１ｂが分散制御プログラム３２に基づいて実行する移行先ストレージを決定する処理のフローチャートの一例である。まず、ＣＰＵ１１ｂは、マッピングテーブル４４ｂ(図８Ａ)から実ページが割り当てられている仮想ページに対応するレコードをアクセス頻度の高い順に取り出す。
【０１２４】
次に、ＣＰＵ１１ｂは、取り出されたレコードのデータに基づき移行先決定テーブル４７(図２１Ａ)にレコードを追加する。追加されるレコードのエントリ４７１には取り出されたレコードのエントリ４４１のデータが、エントリ４７２には取り出されたレコードのエントリ４４２のデータが、エントリ４７３には取り出されたレコードのエントリ４４３のデータが、エントリ４７４には取り出されたレコードのエントリ４４４のデータが、エントリ４７５には未決定を表すデータ、例えば「ＴＢＤ」がそれぞれ格納される。以上の処理を、マッピングテーブル４４ｂの、実ページが割り当てられている仮想ページに対応する全てのレコードに対して実行する（Ｓ２７０１）。
【０１２５】
次に、ＣＰＵ１１ｂは、移行先決定テーブル４７の、直結ストレージＤＳ２の実ＬＵのページ数分のレコードをアクセス頻度の高い順に選択する（Ｓ２７０２)。そして、ＣＰＵ１１ｂは、それらのレコードのエントリ４７５移動先計算機ＳＶ２の直結ストレージ２のＩＤ（ＤＳ２）を格納する（Ｓ２７０３）。最後に、ＣＰＵ１１ｂは、残りのレコードのエントリ４７５に外部ストレージ３のＩＤを格納する（Ｓ２７０４）。これは、ＶＭの移動によってＤＳ２の実ページの消費を抑制するという配慮のためである。
【０１２６】
なお、変形例として、たとえば、ＤＳ２のＲＰ２１をＲＰ４１にマイグレーションすることなくそのままにし、ＲＰ１１にＤＳ２の空の実ページを割当てることも考えられる。
移動先計算機（ＳＶ２）のＣＰＵ１１ｂは、このように移行先決定テーブル４７(図２１Ａ)を作成した後、仮想ＬＵ移動要求に対する応答２００３を移動元計算機（ＳＶ１）に送信する。  移動元計算機（ＳＶ１）が仮想ＬＵ移動応答２００３を受信すると、移動元計算機（ＳＶ１）のＣＰＵ１１ａは、ＶＭ制御プログラム３７に基づき、移動先計算機（ＳＶ２）に対して、ＶＭ移動要求２００４を送信する。
【０１２７】
移動先計算機（ＳＶ２）がＶＭ移動要求２００４を受信すると、移動先計算機（ＳＶ２）のＣＰＵ１１ａは、仮想ＬＵ移動要求２００２に含まれている情報を利用して、ＶＭ制御プログラム３７に基づき、移動されたＶＭを作成し、ＶＭ移動の応答２００５を移動元計算機（ＳＶ１）に送信する。
【０１２８】
移動元計算機（ＳＶ１）がＶＭ移動応答２００５を受信すると、移動元計算機ＳＶ１のＣＰＵ１１ａは、移動されたＶＭを停止し、ＶＭを削除する処理を行う。ＣＰＵ１１ａは、分散制御プログラム３２に基づき、ＶＭテーブル４１ａ、仮想ＬＵテーブル４２ａ、マッピングテーブル４４ａ、及び外部ストレージページテーブル４６ａを更新する。すなわち、ＣＰＵ１１ａはこれらのテーブルのレコードのうち、移動先計算機ＳＶ２に送信したレコードを削除する。そして、ＣＰＵ１１ａは、管理端末通信プログラム３５に基づき、管理端末４にＶＭ移動の応答２００６を送信する。図４Ｂは、この時点でのシステムを示している。
【０１２９】
次いで、移動されたＶＭのデータの状態は、ＶＭ移動中から移動先計算機ＳＶ２におけるデステージ中に遷移する。従って、管理端末４のＣＰＵ１１ｃは、ＶＭ移動プログラム５２に基づき、状態テーブル（図２１Ｂ）のエントリ６４２を移動先計算機におけるデステージ中を表すデータ、例えば、「移動先計算機におけるデステージ中」に変更し、そして、画面制御プログラム５１に基づき、領域２２０２(図２２Ａ)を移動先計算機ＳＶ２におけるデステージ中を表すメッセージ、例えば、「移動先計算機におけるデステージ中」に変更する。その後、管理端末４のＣＰＵ１１ｃは、計算機通信プログラム５３に基づいて、移動先計算機ＳＶ２に移動先計算機デステージ要求２００７を送信する。
【０１３０】
移動先計算機ＳＶ２が移動先計算機デステージ要求２００７を受信すると、移動先計算機ＳＶ２のＣＰＵ１１ｂは、分散制御プログラム３２に基づき、デステージ処理１を実行する。デステージ処理１とは、移動先計算機ＳＶ２の直結ストレージＤＳ２から外部ストレージＥＳ１へのデステージ処理のことである。
【０１３１】
図２８は、デステージ処理１のフローチャートの例を示す。まず、移動先計算機ＳＶ２のＣＰＵ１１ｂは、移行先決定テーブル４７（図２１Ａ）を参照し、移行元ストレージが移動先計算機ＳＶ２の直結ストレージＤＳ２であり、かつ、移行先ストレージが外部ストレージＥＳ１である仮想ページを１つ選択する（Ｓ２８０１）。
【０１３２】
次に、ＣＰＵ１１ｂは、外部ストレージページテーブル４６ｂ（図９）を参照し、外部ストレージ３の未割当の実ページを選択する（Ｓ２８０２）。ＣＰＵ１１ｂは、この選択が出来たか否かによって、処理を分岐する（Ｓ２８０３）。選択が出来なかった場合、ＣＰＵ１１ｂは、エラーが発生したことを管理者に通知する（Ｓ２８０４）。選択が出来た場合、ＣＰＵ１１ｂは、Ｓ２８０１で選択された仮想ページに割り当てられた、直結ストレージＤＳ２の実ページのデータをリードし、Ｓ２８０２で選択された、外部ストレージの実ページへライトする（Ｓ２８０５）。次に、ＣＰＵ１１ｂは、Ｓ２８０１で選択された実ページのデータを初期化する（Ｓ２８０６）。
【０１３３】
そして、ＣＰＵ１１ｂは、マッピングテーブル４４ｂ（図８Ａ）、直結ストレージページテーブル４５ｂ（図８Ｂ）、及び、外部ストレージページテーブル４６ｂ（図９）を更新する（Ｓ２８０７）。すなわち、マッピングテーブル４４ｂのレコードのうち、Ｓ２８０１で選択された仮想ページに対応するレコードのエントリ４４４を外部ストレージ３のＩＤに、エントリ４４５を外部ストレージＥＳ１の実ＬＵのＬＵＮに、エントリ４４６をＳ２８０２で選択された実ページのＩＤにそれぞれ変更する。
【０１３４】
また、直結ストレージページテーブル４５ｂの、Ｓ２８０１で選択された、仮想ページに割り当てられた実ページに対応するレコードのエントリ４５４を、予約済を表すデータ、例えば、「Reserved」に変更する。さらに、外部ストレージページテーブル４６ｂの、Ｓ２８０２で選択された実ページに対応するレコードのエントリ４６４を、割当済を表すデータに変更する。
【０１３５】
移動先計算機ＳＶ２のＣＰＵ１１ｂは、Ｓ２８０１からＳ２８０７までの処理を、移行元ストレージが移動先計算機の直結ストレージ２であり、かつ移行先ストレージが外部ストレージ３である全ての実ページに対して繰り返す（Ｓ２８０８）。
【０１３６】
図２４に、デステージ処理１が完了した後の、テーブルのデータ構造例を示す。マッピングテーブル４４ｂ（図２４Ａ）のレコード４４０２が、直結ストレージページテーブル４５ｂ（図２４Ｂ）のレコード４５０２が、外部ストレージページテーブル４６ｂ（図２４Ｃ）のレコード４６０２が、それぞれ変更される。移動先計算機（ＳＶ２）のＣＰＵ１１は、デステージ処理１を完了すると、移動先計算機デステージ応答２００８を管理端末４へ送信する。図５Ｃは、この時点での計算機システムを示している。
【０１３７】
次に、移動されたＶＭに関係するデータの状態は、移動先計算機におけるデステージ中から直結ストレージ間移行中に遷移する。従って、管理端末４のＣＰＵ１１ｃは、ＶＭ移動プログラム５２に基づき状態テーブル（図２１Ｂ）のエントリ６４２を、直結ストレージ間移行中を表すデータ、例えば、「直結ストレージ間移行中」に変更し、また、画面制御プログラム５１に基づき領域２２０２を、直結ストレージ間移行中を表すメッセージ、例えば、「直結ストレージ間移行中」に変更する。その後、管理端末４のＣＰＵ１１ｃは、計算機通信プログラム５３に基づいて、移動先計算機ＳＶ２に直結ストレージ間移行要求２００９を送信する。
【０１３８】
移動先計算機ＳＶ２が直結ストレージ間移行要求２００９を受信すると、移動先計算機ＳＶ２のＣＰＵ１１ｂは、分散制御プログラム３２に基づき、直結ストレージ間でのデータ移行処理を実行する。図２９は、直結ストレージ間移行処理のフローチャートの例を示す。まず、移動先計算機ＳＶ２のＣＰＵ１１ｂは、移行先決定テーブル４７（図２１Ａ）を参照し、移行元ストレージが移動元計算機ＳＶ１の直結ストレージＤＳ１であり、かつ移行先ストレージが移動先計算機ＳＶ２の直結ストレージＤＳ２である仮想ページを１つ選択する（Ｓ２９０１）。この結果、仮想ページＶＰ１１が線なくされる。
【０１３９】
次に、ＣＰＵ１１ｂは、直結ストレージページテーブル４５ｂ（図８Ｂ）を参照し、直結ストレージＤＳ２の予約済ページを選択する（Ｓ２９０２）。この予約は、図２８のステップｓ２８０７で行われている。予約済みページの選択に代えて、未割当の実ページを選択することでもよい。ＣＰＵ１１ｂは、この選択が出来たか否かによって、処理を分岐する（Ｓ２９０３）。選択が出来なかった場合、ＣＰＵ１１ｂは、エラーが発生したことを管理者に通知する（Ｓ２９０４）。
【０１４０】
選択が出来た場合、ＣＰＵ１１ｂは、Ｓ２９０１で選択された仮想ページに割り当てられた、移行元ストレージＤＳ１の実ページのデータをリードし、Ｓ２９０２で選択された、移行先ストレージＤＳ２の実ページへライトする（Ｓ２９０５）。ＣＰＵ１１ｂは、Ｓ２９０１で選択された仮想ページに割り当てられた、移行元ストレージＤＳ１の実ページについて、データの初期化と割り当て解放を移動元計算機ＳＶ１に要求する（Ｓ２９０６）。この要求に対応する応答を移行元計算機ＳＶ１のＣＰＵ１１ａから受信すると、ＣＰＵ１１ｂは、マッピングテーブル４４ｂ（図８Ａ）及び直結ストレージページテーブル４５ｂ（図８Ｂ）を更新する（Ｓ２９０７）。
【０１４１】
すなわち、マッピングテーブル４４ｂのレコードのうち、Ｓ２９０１で選択された仮想ページに対応するレコードのエントリ４４４を直結ストレージＤＳ２のＩＤに、エントリ４４５を直結ストレージＤＳ２の実ＬＵのＬＵＮに、エントリ４４６をＳ２９０２で選択された実ページのＩＤにそれぞれ変更する。
【０１４２】
また、直結ストレージページテーブル４５ｂの、Ｓ２９０２で選択された実ページに対応するレコードのエントリ４５４を、割当済を表すデータに変更する。ＣＰＵ１１ｂは、Ｓ２９０１からＳ２９０７までの処理を、移行元ストレージが移動元計算機ＳＶ１の直結ストレージＤＳ１であり、かつ、移行先ストレージが移動先計算機ＳＶ２の直結ストレージＤＳ２である全ての実ページに対して繰り返す（Ｓ２９０８）。
【０１４３】
図２５に、直結ストレージ間移行処理が完了した後の、テーブルのデータ構造例を示す。マッピングテーブル４４ｂのレコード４４０３が、移動元計算機の直結ストレージのページテーブル４５ａのレコード４５０３ａが、移動先計算機の直結ストレージのページテーブル４５ｂのレコード４５０３ｂが、それぞれ変更される。
【０１４４】
移動先計算機ＳＶ２のＣＰＵ１１ｂは、直結ストレージ間移行処理を完了すると、直結ストレージ間移行応答２０１０を管理端末４へ送信する。図５Ａは、この時点でのシステムを示している。
【０１４５】
ここで、移動されたＶＭのデータの状態は、直結ストレージ間移行中から移動元計算機におけるデステージ中に遷移する。従って、管理端末４のＣＰＵ１１ｃは、ＶＭ移動プログラム５２に基づき、状態テーブル６４（図２１Ｂ）のエントリ６４２を移動元計算機におけるデステージ中を表すデータ、例えば、「移動元計算機におけるデステージ中」に変更し、また、画面制御プログラム５１に基づき領域２２０２を移動元計算機におけるデステージ中を表すメッセージ、例えば、「移動元計算機におけるデステージ中」に変更する。その後、管理端末４のＣＰＵ１１は、計算機通信プログラム５３に基づいて、移動先計算機（ＳＶ２）に移動元計算機デステージ要求２０１１を送信する。
【０１４６】
移動先計算機ＳＶ２が移動元計算機デステージ要求２０１１を受信すると、移動先計算機ＳＶ２のＣＰＵ１１ｂは、分散制御プログラム３２に基づき、デステージ処理２を実行する。デステージ処理２とは、移動元計算機の直結ストレージ２から外部ストレージ３へのデステージ処理のことである。
【０１４７】
図３０は、デステージ処理２のフローチャートの例を示す。まず、移動先計算機ＣＰＵ１１ｂは、移行先決定テーブル４７（図２１）を参照し、移行元ストレージが移動元計算機ＳＶ１の直結ストレージＤＳ１であり、かつ、移行先ストレージが外部ストレージＥＳ１である仮想ページを１つ選択する（Ｓ３００１）。
【０１４８】
次に、ＣＰＵ１１ｂは、外部ストレージページテーブル４６ｂ(図９)を参照し、外部ストレージ３の未割当の実ページを選択する（Ｓ３００２）。ＣＰＵ１１ｂは、この選択が出来たか否かによって、処理を分岐する（Ｓ３００３）。
選択が出来なかった場合、ＣＰＵ１１ｂは、エラーが発生したことを管理者に通知する（Ｓ３００４）。選択が出来た場合、ＣＰＵ１１ｂは、Ｓ３００１で選択された仮想ページに割り当てられた、直結ストレージＤＳ１の実ページのデータをリードし、Ｓ３００２で選択された、外部ストレージＥＳ１の実ページへライトする（Ｓ３００５）。
【０１４９】
次に、ＣＰＵ１１ｂは、Ｓ３００１で選択された仮想ページに割り当てられた実ページについて、データの初期化と割り当ての解放を移動元計算機ＳＶ１に要求する（Ｓ３００６）。この要求に対応する応答を受信すると、ＣＰＵ１１ｂは、マッピングテーブル４４ｂ(図２６Ａ)、及び、外部ストレージページテーブル４６ｂ(図２６ｃ)を更新する（Ｓ３００７）。
【０１５０】
すなわち、マッピングテーブル４４ｂのレコードのうち、Ｓ３００１で選択された仮想ページに対応するレコードのエントリ４４４を外部ストレージ３のＩＤに、エントリ４４５を外部ストレージ３の実ＬＵのＬＵＮに、エントリ４４６をＳ３００２で選択された実ページのＩＤにそれぞれ変更する。
【０１５１】
また、外部ストレージページテーブル４６ｂの、Ｓ３００２で選択された実ページに対応するレコードのエントリ４５４を、割当済を表すデータに変更する。ＣＰＵ１１ｂは、Ｓ３００１からＳ３００７までの処理を、移行元ストレージＤＳ１が移動元計算機ＳＶ１の直結ストレージであり、かつ、移行先ストレージが外部ストレージＥＳ１である全ての実ページに対して繰り返す（Ｓ３００８）。
【０１５２】
次に、デステージ処理２(図３０)が完了した後の、テーブルデータの構造例を説明する。移動先計算機ＳＶ２のマッピングテーブル４４ｂ（図２６Ａ）のレコード４４０４が、移動元計算機ＳＶ１の直結ストレージページテーブル４５ａ（図２６Ｂ）のレコード４５０４が、移動先計算機ＳＶ２の外部ストレージページテーブル４６ｂ（図２６Ｃ）のレコード４６０４が、それぞれ変更される。なお、上記のＳ３００５の説明では、移動先計算機ＳＶ２が、移動元計算機ＳＶ１から、直結ストレージＤＳ１のデータをリードし、外部ストレージＥＳ１へデータ移行を行う、としたが、移動先計算機ＳＶ２が、移動元計算機ＳＶ１に対して直結ストレージＤＳ１から外部ストレージＥＳ１へのデータ移行を指示してもよい。なお、移動元計算機デステージ要求２０１１が移動元計算機に送られことを妨げない。
【０１５３】
移動先計算機ＳＶ２のＣＰＵ１１ｂは、デステージ処理２を完了すると、移動元計算機デステージ応答２０１２を管理端末４へ送信し、移行先決定テーブル４７(図２１Ａ)のデータをクリアする。図６は、この時点での計算機システムの状態を示している。
【０１５４】
最後に、管理端末４が移動元計算機デステージ応答２０１２を受信すると、管理端末４のＣＰＵ１１ｃは、ＶＭ移動プログラム５２に基づき、ＶＭテーブル６２(図１０Ｂ)を変更する。すなわち、ＶＭテーブル６２の移動対象となったＶＭに該当するレコードのエントリ６３２を、移動先計算機１のＩＤ（ＳＶ１）に変更する。
【０１５５】
なお、ＶＭ移動の理由が、例えば計画的な保守の場合、管理者は、ＶＭを移動先計算に移動した後、移動元計算機に再移動する可能性が高い。この場合、そのＶＭのデータを移動元計算機の直結ストレージ２に残しておき、かつデステージ処理２を実行しないようにすると、移動時のデータ移行に要する時間を短縮でき、かつ再移動時のデータ移行を不要化できる。本明細書では、このような動作モードを「高速再移動モード」と呼ぶ。この場合、ＶＭ移動画面２２００に、管理者が高速再移動モードでの動作を指示するためのチェックボックスが追加される。
【０１５６】
また、図２９で説明された直結ストレージ間移行処理のＳ２９０６にて、ＣＰＵ１１ｂは、Ｓ２９０１で選択された仮想ページに割り当てられた、移動先計算機の実ページを暫定的に利用不可とする事を移動元計算機に要求する。そして、Ｓ２９０７にて、ＣＰＵ１１ｂは、マッピングテーブル４４ｂのレコードのうち、Ｓ２９０１で選択された仮想ページに対応するレコードを更新する前に、そのレコードの内容を主メモリ２１ｂに退避する。そのレコードの内容は、例えば、マッピングテーブル４４ｂ（図８Ｂ）に追加されたエントリ４４７に退避されてもよい。そして、ＶＭが移動元計算機に再移動する時、エントリ４４７に退避された内容に従って、Ｓ２９０１で選択された仮想ページと、その仮想ページに元々割り当てられていた実ページ（移動元計算機の直結ストレージ２内の実ページ）との対応関係を回復する。
【０１５７】
以上説明したように、既述の実施形態に係る計算機システムによれば、ＶＭが、第１のストレージシステムから第２のストレージシステムに移動された際、移動先のストレージシステムは、自身のＶＭのデータも含めて、移動元ストレージシステムのＶＭのデータを移動先ストレージシステムの階層化された記憶領域に格納するため、ＶＭが複数の計算機間を移動しても、複数の計算機に対するストレージの階層化制御の品質を維持し、計算機システムにおけるデータ管理を向上させることができる。
【０１５８】
次に、本発明の第２の実施形態について、図３１及び図３２を用いて、第１の実施形態と相違する部分に限って説明する。第２の実施形態では、計算機システムの共有ストレージに外部ストレージＥＳ２が増設された時（図３１）、計算機ＳＶ１又は計算機ＳＶ２のＣＰＵ１１が、ストレージ制御プログラム３８に基づいて、以前から存在していた外部ストレージ３のデータを増設された外部ストレージ３へ移行することで、性能及び容量を拡張する。
【０１５９】
まず、図３１を用いて、本実施形態におけるシステムの動作例を説明する。計算機ＳＶ１にはＶＭ１が動作している。ＶＭ１は仮想ＬＵ（ＶＬ１）へアクセスする。仮想ＬＵ（ＶＬ１）は、少なくとも、ＶＰ１１、ＶＰ１２、及びＶＰ１３から構成される。直結ストレージＤＳ１は計算機ＳＶ１に直結されており、計算機ＳＶ１に実ＬＵ（ＲＬ１）を提供する。実ＬＵ（ＲＬ１）は、少なくとも、実ページＲＰ１１から構成される。外部ストレージＥＳ１は、ネットワーク５を介して計算機ＳＶ１に実ＬＵ（ＲＬ３）を提供する。実ＬＵ（ＲＬ３）は、少なくとも、実ページＲＰ３１及びＲＰ３２から構成される。仮想ページＶＰ１１には実ページＲＰ１１が、仮想ページＶＰ１２には実ページＲＰ３１が、仮想ページＶＰ１３には実ページＲＰ３２がそれぞれ割り当てられている。
【０１６０】
他方、計算機ＳＶ２ではＶＭ２が動作する。ＶＭ２は仮想ＬＵ（ＶＬ２）へアクセスする。仮想ＬＵ（ＶＬ２）は、少なくとも、花王ページＶＰ２１及びＶＰ２２から構成される。直結ストレージＤＳ２は計算機ＳＶ２に直結されており、計算機ＳＶ２に実ＬＵ（ＲＬ２）を提供する。実ＬＵ（ＲＬ２）は、少なくとも、実ページＲＰ２１から構成される。外部ストレージＥＳ１は、ネットワーク５を介して計算機ＳＶ２に実ＬＵ（ＲＬ４）を提供する。実ＬＵ（ＲＬ４）は、少なくとも実ページＲＰ４１から構成される。仮想ページＶＰ２１には実ページＲＰ４１が、仮想ページＶＰ２２には実ページＲＰ２１がそれぞれ割り当てられている。
【０１６１】
管理者が、ＩＤがＥＳ２である外部ストレージ３をネットワーク５に接続したものとする。外部ストレージＥＳ２は、ネットワーク５を介して計算機ＳＶ１にＩＤがＲＬ５である実ＬＵを提供する。実ＬＵ（ＲＬ５）は、少なくとも、ＩＤがＲＰ５１である実ページ）から構成される。実ＬＵ（ＲＬ３）の空き容量が少なくなった、或いは、実ＬＵ（ＲＬ３）へのアクセス頻度が高く外部ストレージＥＳ１の性能が低下したといった理由により、実ＬＵ（ＲＬ３）を構成する実ページであるＲＰ３２のデータが実ページＲＰ５１に移行される。この移行を、外部ストレージ間移行という。そして、仮想ページＶＰ１３には、実ページＲＰ５１が再割り当てされて、仮想ページＶＰ１３に対する実ページＲＰ３２の割り当ては解除される。
【０１６２】
図３２は、計算機ＳＶ１のＣＰＵ１１ａが分散制御プログラム３２に基づいて実行する外部ストレージ間でのデータ移行処理を実行するフローチャートの例である。本処理は、管理者が外部ストレージ追加画面１１１０を用いて、２つ目以降の外部ストレージＥＳ１をシステムに追加した時に実行される。まず、ＣＰＵ１１ａは、追加された外部ストレージＥＳ２にＬＵの作成を要求し、外部ストレージページテーブル４６ａ（図９）にレコードを追加する（Ｓ３２０１）。
【０１６３】
次に、ＣＰＵ１１は、既に存在していた外部ストレージＥＳ１の実ＬＵのうち、追加された外部ストレージＥＳ２へデータ移行する実ＬＵを選択する（Ｓ３２０２）。次に、ＣＰＵ１１ａは、Ｓ３２０２で選択された実ＬＵを構成する実ページのうち、データ移行する実ページを選択する（Ｓ３２０３）。ＣＰＵ１１ａは、Ｓ３２０１で作成された実ＬＵの実ページのうち、未割当の実ページを選択する（Ｓ３２０４）。ＣＰＵ１１ａは、Ｓ３２０３で選択された実ページのデータをＲｅａｄし、Ｓ３２０４で選択された実ページへＷｒｉｔｅし（Ｓ３２０５）、Ｓ３２０３で選択された実ページのデータを初期化する。そして、ＣＰＵ１１ａは、マッピングテーブル４４ａ及び外部ストレージページテーブル４６ａを更新する（Ｓ３２０６）。ＣＰＵ１１ａは、Ｓ３２０３からＳ３２０６までの処理を全ページに対して実行する（Ｓ３２０７）。さらに、ＣＰＵ１１ａは、Ｓ３２０１からＳ３２０７までの処理を全ての実ＬＵに対して実行する（Ｓ３２０８）。
【０１６４】
次に、本発明の第３の実施形態について、図３３を用いて、第１の実施形態と相違する部分について説明する。第３の実施形態では、高速だが高価な記憶媒体を備えるストレージが計算機１に直結されるのではなく、計算機１に内蔵されることを特徴としている。
【０１６５】
図３３は、計算機１の変形例を示すブロック図である。計算機１は、ＣＰＵ１１、主メモリ１２、ＮＷ  ＩＦ１３、ＨＤＤ１４、内部ストレージ６及びバス等の通信線２１から構成される。内部ストレージ３は、計算機１に内蔵されている以外は第１の実施形態の直結ストレージ２と同様である。
【０１６６】
次に、本発明の第４の実施形態について、図３４及び図３５を用いて、第１一の実施形態と相違する部分について説明する。第４の実施形態では、第１の実施例において、計算機が実行するとして説明したプログラムを直結ストレージ２のＣＰＵ１１が実行する。
図３４は、本実施形態のシステムの構成例を示す。このシステムの構成要素は第１の実施形態と同じであるが、直結ストレージ２が通信線２２によってネットワーク５と接続される点のみ、第１の実施形態と異なる。
【０１６７】
図３５は、本実施形態の計算機１及び直結ストレージ２２の構成例を示す。計算機１のＣＰＵ１１は、アプリケーションプログラム３６、及び、ＶＭ制御プログラム３７を実行する。そして、ＣＰＵ１１がアプリケーションプログラム３６に基づき仮想ＬＵにデータを書き込む時、ＣＰＵ１１はＶＭ制御プログラム３７に基づき、そのデータの書き込み要求を直結ストレージ２へ送信する。他方、ＣＰＵ１１がアプリケーションプログラム３６に基づき仮想ＬＵからデータを読み込む時、ＣＰＵ１１はＶＭ制御プログラム３７に基づき、そのデータの読み込み要求を直結ストレージ２へ送信する。
【０１６８】
直結ストレージ２は、ＣＰＵ１１、主メモリ１２、ＮＷ  ＩＦ１３、デバイスＩＦ１５、通信線２１及び１つ以上の不揮発性メモリ１８から構成される。不揮発性メモリは、例えば、フラッシュメモリ、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  ＲＡＭ）、ＳＳＤであってもよい。直結ストレージ２のＣＰＵ１１は、ストレージ制御プログラム３８を実行する。また、直結ストレージ２の主メモリ１２は、ＶＭテーブル４１、仮想ＬＵテーブル４２、外部ストレージテーブル４３、マッピングテーブル４４、直結ストレージページテーブル４５、外部ストレージページテーブル４６及び移行先決定テーブル４７等のテーブルが格納される。
【０１６９】
直結ストレージ２のＣＰＵ１１は、ストレージ制御プログラム３８に基づき、第１の実施形態において計算機１のＣＰＵ１１が実行した各種処理を実行する。
【産業上の利用可能性】
【０１７０】
本発明は、計算機の仮想化技術とストレージの階層化技術とを利用した計算機システムと、そのデータ格納制御方法を提供するものである。
【符号の説明】
【０１７１】
１：計算機１
２：直結ストレージ
３：外部ストレージ
４：管理端末
５：ネットワーク
【図１】
2013517539.tif 000003
【図２】
2013517539.tif 000004
【図３】
2013517539.tif 000005
【図４Ａ】
2013517539.tif 000006
【図４Ｂ】
2013517539.tif 000007
【図５Ａ】
2013517539.tif 000008
【図５Ｂ】
2013517539.tif 000009
【図６】
2013517539.tif 000010
【図７Ａ】
2013517539.tif 000011
【図７Ｂ】
2013517539.tif 000012
【図７Ｃ】
2013517539.tif 000013
【図８Ａ】
2013517539.tif 000014
【図８Ｂ】
2013517539.tif 000015
【図９】
2013517539.tif 000016
【図１０Ａ】
2013517539.tif 000017
【図１０Ｂ】
2013517539.tif 000018
【図１０Ｃ】
2013517539.tif 000019
【図１１Ａ】
2013517539.tif 000020
【図１１Ｂ】
2013517539.tif 000021
【図１２】
2013517539.tif 000022
【図１３】
2013517539.tif 000023
【図１４】
2013517539.tif 000024
【図１５】
2013517539.tif 000025
【図１６】
2013517539.tif 000026
【図１７Ａ】
2013517539.tif 000027
【図１７Ｂ】
2013517539.tif 000028
【図１８】
2013517539.tif 000029
【図１９】
2013517539.tif 000030
【図２０】
2013517539.tif 000031
【図２１Ａ】
2013517539.tif 000032
【図２１Ｂ】
2013517539.tif 000033
【図２２Ａ】
2013517539.tif 000034
【図２２Ｂ】
2013517539.tif 000035
【図２３Ａ】
2013517539.tif 000036
【図２３Ｂ】
2013517539.tif 000037
【図２３Ｃ】
2013517539.tif 000038
【図２３Ｄ】
2013517539.tif 000039
【図２４Ａ】
2013517539.tif 000040
【図２４Ｂ】
2013517539.tif 000041
【図２４Ｃ】
2013517539.tif 000042
【図２５Ａ】
2013517539.tif 000043
【図２５Ｂ】
2013517539.tif 000044
【図２６Ａ】
2013517539.tif 000045
【図２６Ｂ】
2013517539.tif 000046
【図２６Ｃ】
2013517539.tif 000047
【図２７】
2013517539.tif 000048
【図２８】
2013517539.tif 000049
【図２９】
2013517539.tif 000050
【図３０】
2013517539.tif 000051
【図３１】
2013517539.tif 000052
【図３２】
2013517539.tif 000053
【図３３】
2013517539.tif 000054
【図３４】
2013517539.tif 000055
【図３５】
2013517539.tif 000056
【図３６】
2013517539.tif 000057
【国際調査報告】
2013517539.tif 000058
2013517539.tif 000059
2013517539.tif 000060