(57)【特許請求の範囲】
【請求項１】
複数の仮想計算機のそれぞれを構成するための特定ファイルの構成を決定するサーバ計算機であって、
前記複数の仮想計算機のそれぞれの上で稼働するアプリケーションにより用いられる前記特定ファイルについて、前記特定ファイルを分割して管理することを判定するための第１評価基準と、前記特定ファイルを実体化して管理することを判定するための第２評価基準とを含む評価基準を記憶するファイル分割評価基準記憶部と、
記憶装置に格納された前記特定ファイルについて、前記評価基準の何れかに合致するか否かを判定し、前記特定ファイルが前記第１評価基準に合致すると判定された場合、前記特定ファイルを第１ファイル及び第２ファイルに分割し、前記第１ファイル及び前記第２ファイルのそれぞれが前記第２評価基準に合致するか否かを判定し、前記第１ファイルが前記第２評価基準に合致し且つ前記第２ファイルが前記第２評価基準に合致しないと判定された場合、前記複数の仮想計算機の一つを構成するファイルを格納するディスクイメージのために前記ディスクイメージの雛形となるファイルを格納する雛形ディスクイメージへ、前記第１ファイルの実体及び前記第２ファイルの実体を格納し、前記雛形ディスクイメージから前記第１ファイルの実体を取り出して前記ディスクイメージへ格納し、前記アプリケーションの処理ロジックとデータモデルに関わる情報であり前記アプリケーションによる前記特定ファイルの処理を示す情報である取扱情報を取得し、前記アプリケーションによる前記第１ファイルの処理が前記ディスクイメージ内の第１ファイルの実体を使用するように前記取扱情報を変更し、前記アプリケーションによる前記第２ファイルの処理が前記雛形ディスクイメージ内の第２ファイルの実体を参照するように前記取扱情報を変更する設定部と
を有するサーバ計算機。
【請求項２】
前記記憶装置に格納された前記特定ファイルを実行させて仮想計算機を動作させる仮想計算機実行部と、
前記仮想計算機による動作中における前記特定ファイルへのアクセスに関するトレースデータを出力するトレースデータ出力部と更に備え、
前記評価基準は、前記トレースデータに関する評価基準であり、
前記判定部は、前記トレースデータに基づいて、前記特定ファイルが前記評価基準に合致するか否かを判定する
請求項１に記載のサーバ計算機。
【請求項３】
前記第１評価基準は、前記特定ファイルの全体のアドレス範囲のうちの所定部分のアドレス範囲のみにアクセスが発生していることである、
請求項２に記載のサーバ計算機。
【請求項４】
前記トレースデータには、前記特定ファイルにおけるアクセスが発生している第１領域と、アクセスが発生していない第２領域とを特定する情報が含まれており、
前記設定部は、前記第１領域を前記第１ファイルと決定し、前記第２領域を前記第２ファイルと決定する、
請求項３に記載のサーバ計算機。
【請求項５】
前記第１ファイルと前記第２ファイルとに分割された分割元の前記特定ファイルを更新するための更新ファイルを受け付ける受付部と、
前記ディスクイメージのレプリカを作成し、前記ディスクイメージに格納された前記第１ファイルの実体と、前記雛形ディスクイメージに格納された前記第２ファイルの実体とを結合することにより前記レプリカにおいて前記特定ファイルの実体を作成し、前記レプリカにおける前記特定ファイルの実体を前記更新ファイルにより更新し、前記ディスクイメージを前記レプリカに置き換える置換部と、
を有する請求項１乃至請求項４のいずれか一項に記載のサーバ計算機。
【請求項６】
前記変更後の前記取扱情報を格納する変更後取扱情報格納部を有する請求項１乃至請求項５のいずれか一項に記載のサーバ計算機。
【請求項７】
前記第２評価基準は、前記特定ファイルに対するリードアクセスの状態及びライトアクセスの状態の少なくとも何れかであり、
前記設定部は、前記特定ファイルが前記第１評価基準に合致しないと判定された場合、前記特定ファイルの実体を前記雛形ディスクイメージへ格納し、前記特定ファイルが前記第１評価基準に合致せず且つ前記第２評価基準に合致すると判定された場合、前記雛形ディスクイメージから前記特定ファイルの実体を読み出して前記ディスクイメージへ格納し、前記特定ファイルが前記第１評価基準及び前記第２評価基準に合致しないと判定された場合、前記アプリケーションによる前記特定ファイルの処理が前記雛形ディスクイメージ内の前記特定ファイルの実体を参照するように前記取扱情報を変更する、
請求項１乃至６のいずれか一項に記載のサーバ計算機。
【請求項８】
前記第２評価基準は、前記特定ファイルに対するライトアクセスが行われたことである、
請求項７に記載のサーバ計算機。
【請求項９】
複数の仮想計算機のそれぞれを構成するための特定ファイルの構成を決定するサーバ計算機と、データを記憶可能なストレージ装置とを備える計算機システムであって、
前記ストレージ装置は、
前記複数の仮想計算機のそれぞれの上で稼働するアプリケーションにより用いられる前記特定ファイルを格納する記憶部と、
前記複数の仮想計算機の一つを構成するファイルを格納するディスクイメージを記憶するディスクイメージ記憶部と、
前記ディスクイメージの雛形となるファイルを格納する雛形ディスクイメージを記憶する雛形ディスクイメージ記憶部と
を有し、
前記サーバ計算機は、
前記特定ファイルを分割して管理することを判定するための第１評価基準と、前記特定ファイルを実体化して管理することを判定するための第２評価基準とを含む評価基準を記憶するファイル分割評価基準記憶部と、
前記特定ファイルについて、前記評価基準の何れかに合致するか否かを判定し、前記特定ファイルが前記第１評価基準に合致すると判定された場合、前記特定ファイルを前記第１ファイルおよび前記第２ファイルに分割し、前記第１ファイル及び前記第２ファイルのそれぞれが前記第２評価基準に合致するか否かを判定し、前記第１ファイルが前記第２評価基準に合致し且つ前記第２ファイルが前記第２評価基準に合致しないと判定された場合、前記雛形ディスクイメージへ前記第１ファイルの実体及び前記第２ファイルの実体を格納し、前記雛形ディスクイメージから前記第１ファイルの実体を取り出して前記ディスクイメージに格納し、前記アプリケーションの処理ロジックとデータモデルに関わる情報であり前記アプリケーションによる前記特定ファイルの処理を示す情報である取扱情報を取得し、前記アプリケーションによる前記第１ファイルの処理が前記ディスクイメージ内の第１ファイルを使用するように前記取扱情報を変更し、前記アプリケーションによる前記第２ファイルの処理が前記雛形ディスクイメージ内の第２ファイルの実体を参照するように前記取扱情報を変更する設定部と
を有する
計算機システム。
【請求項１０】
複数の仮想計算機のそれぞれを構成するための特定ファイルの構成を決定するサーバ計算機によるファイル管理方法あって、
前記サーバ計算機の設定部が、前記特定ファイルであって前記複数の仮想計算機のそれぞれの上で稼働するアプリケーションにより用いられる前記特定ファイルについて、前記特定ファイルを分割して管理することを判定するための第１評価基準と、前記特定ファイルを実体化して管理することを判定するための第２評価基準とを含む前記評価基準を用いて、前記特定ファイルが前記評価基準の何れかに合致するか否かを判定する判定ステップと、
前記サーバ計算機の設定部が、記憶装置に格納された前記特定ファイルについて、前記評価基準の何れかに合致するか否かを判定し、前記特定ファイルが前記第１評価基準に合致すると判定された場合、前記特定ファイルを第１ファイル及び第２ファイルに分割し、前記第１ファイル及び前記第２ファイルのそれぞれが前記第２評価基準に合致するか否かを判定し、前記第１ファイルが前記第２評価基準に合致し且つ前記第２ファイルが前記第２評価基準に合致しないと判定された場合、前記複数の仮想計算機の一つを構成するファイルを格納するディスクイメージのために前記ディスクイメージの雛形となるファイルを格納する雛形ディスクイメージへ、前記第１ファイルの実体及び前記第２ファイルの実体を格納し、前記雛形ディスクイメージから前記第１ファイルの実体を取り出して前記ディスクイメージへ格納し、前記アプリケーションの処理ロジックとデータモデルに関わる情報であり前記アプリケーションによる前記特定ファイルの処理を示す情報である取扱情報を取得し、前記アプリケーションによる前記第１ファイルの処理が前記ディスクイメージ内の第１ファイルを使用するように前記取扱情報を変更し、前記アプリケーションによる前記第２ファイルの処理が前記雛形ディスクイメージ内の前記第２ファイルの実体を参照するように前記取扱情報を変更する設定ステップと
を有するファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想計算機を提供するサーバ計算機、計算機システムおよびファイル管理方法に関し、複数の仮想計算機を構成するためのファイルについての重複排除を行う技術に関する。
【背景技術】
【０００２】
ソフトウェアアズアサービス（Software as a Service）のようなソフトウェアをマルチテナント型サービスとして提供するシステムでは、同様のソフトウェアをユーザ毎にカスタマイズして、このソフトウエアと、このソフトウェアを実行するための計算機能力とをあわせてユーザに提供している。このようなシステムにおいては、計算機能力を提供するための計算機およびストレージを仮想化することによって、計算機資源を有効利用したユーザへのサービス提供が可能となる。
【０００３】
このようなシステムにおいては、仮想計算機を一つの雛形としてマルチテナントユーザに提供する技術（技術１）が知られている。しかしながら、この技術では、共通するＯＳやアプリケーション（ＡＰ）に使用するストレージにおける記憶領域が重複するため、ストレージ利用効率が悪いという問題がある。
【０００４】
これに対してＡＰＰＬＥ社のNetBootやIntel社PXE規格を利用したネットワークブート等により、共通するディスクイメージからＯＳやアプリケーション環境を起動して利用する技術がある。しかしながら、これらの技術では、ネットワークアドレス等の低レベルの構成変更(例えばDHCPやActive
Directoryなど)は可能であるが、各エンドユーザに応じた細かなカスタマイズや構成の違いに対応できないか、或いは、対応するようにすると、異なるディスクイメージが必要となり、ストレージの利用効率が悪くなってしまう問題がある。
【０００５】
更に、これに対して、Ｓｙｍａｎｔｅｃ社のＶＭＡＳでは仮想計算機ファイル中のファイルをスキャンして、重複するファイルを１つのファイルを参照するように置き換えることでファイルの重複を排除し、ストレージの記憶領域の利用効率を高める技術（技術２）が知られている。しかしながら、スキャンは、各仮想計算機として個別にデプロイされているディスクイメージについて行う必要があるため、スキャンを行う際の処理の負荷が高い問題がある。
【０００６】
更に、参照するように置き換える単位がファイル単位であるためにＤＢＭＳファイルのようなサイズが大きいファイルが仮想計算機ファイルに含まれている場合には、仮に、ファイル中のデータの共通部分が多いとしても、重複排除の対象外となり、ストレージの有効活用ができにくいという問題がある。また、カスタマイズしている場合に、その変更内容が共通部分のファイルに関係している場合もあるので、共通部分のファイルの変更に際して注意を要する、換言すると、うかつに変更できない問題がある。
【０００７】
一方、雛形の変更時にはＳＩ（シングルインスタンス）化されている部分については、それのみを変更すれば、その結果が各仮想計算機に反映されることとなるが、ユーザデータ部分の共通箇所の変更については、個別に対応する必要がある。またストレージの利用効率を高めるために、個別対応した後に、スキャンをして重複排除する必要がある。
【０００８】
また、ＮｅｔＡｐｐのＡ−ＳＩＳではファイルシステム全体でブロックレベルでの重複排除をする技術（技術３）が使用されている。これによると、ブロックがビットレベルで同一であれば重複排除できるために、ストレージの利用効率の要請に応えている（例えば、非特許文献１参照）。しかしながら、ファイルシステム全体への適用であるため、分離するレベルを複数設定できず、細かなサービスレベルに応えることができない問題がある。また、構成変更や雛形のアップデートについては、個別変更を実施した場合には、ディスク利用量が増えるという問題点がある。また、雛形への変更を反映させる場合には、ブロックレベルで単純に変更してしまうと、予測できない範囲までその影響がおよぶ虞がある。
【０００９】
【非特許文献１】NetApp社TechnicalReport:NetApp A-SIS Deduplication Deployment and Implementation Guide
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記したように従来の技術においては、種々の問題点がある。すなわち、技術１では、同一の雛形を用いるため、カスタマイズできる部分が限定されるという問題がある。また、技術２では、わずかな部分だけが異なるが残りの部分は共通している巨大な単一ファイルが存在した場合、当該ファイルは重複排除の対象とすることができず、効率的な容量節約を実施できない。また、技術３では、ブロックレベルでシングルインスタンス化を実施するために、共通のファイルを置き換えるような形での効率のよい更新作業を実行することが難しい。
【００１１】
そこで、本発明は、複数の仮想計算機を構成するファイルについて、より効果的に重複排除することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的達成のため、本発明の第１の観点に係るサーバ計算機は、複数の仮想計算機のそれぞれを構成するためのファイルの構成を決定するサーバ計算機であって、仮想計算機の構成に必要なファイルを分割して管理するか否かを判定するための評価基準を記憶するファイル分割評価基準記憶部と、ファイルについて、評価基準に合致するか否かを判定する判定部と、評価基準に合致すると判定されたファイルの一部分を実体として格納する少なくとも１以上の第１ファイルと決定し、ファイルの残りの部分を所定の格納先の実体を参照する少なくとも１以上の第２ファイルと決定する決定部とを有する。
【００１３】
上記サーバ計算機において、決定部により実体として格納するように決定した第１ファイルの実体を仮想計算機を構成するためのディスクイメージに格納し、参照するように決定した第２ファイルについては、所定の格納先の第２ファイルの実体を参照するように設定する設定部を更に有するようにしてもよい。
【００１４】
また、仮想計算機を構成するファイルを実行させて仮想計算機を動作させる仮想計算機実行部と、仮想計算機による動作中における前記ファイルへのアクセスに関するトレースデータを出力するトレースデータ出力部と更に備え、評価基準は、トレースデータに関する評価基準であり、判定部は、トレースデータに基づいて、前記評価基準に合致するか否か判定するようにしてもよい。また、評価基準は、局所的にライトアクセスが発生していることであってもよい。また、トレースデータには、ファイルにおけるライトアクセスが発生している第１領域と、ライトアクセスが発生していない第２領域とを特定する情報が含まれており、決定部は、第１領域を第１ファイルと決定し、第２領域を第２ファイルと決定するようにしてもよい。また、第１ファイルと第２ファイルとに分割された分割元のファイルを更新するための更新ファイルを受け付ける受付部と、第１ファイルと第２ファイルとの実体を結合したファイルを生成する結合部と、結合したファイルを、更新ファイルに置き換える置換部とを有するようにしてもよい。
【００１５】
また、分割すると決定されたファイルは、アプリケーションに用いられるファイルであり、ファイルのアプリケーションでの取り扱いを記述した取扱情報を取得する取扱情報取得部と、取扱情報を第１ファイル及び第２ファイルに対応するように変更する記述変更部と、変更後の取扱情報を格納する変更後取扱情報格納部とを有するようにしてもよい。
【００１６】
また、上記目的達成のため、本発明の第２の観点に係る計算機システムは、複数の仮想計算機のそれぞれを構成するためのファイルの構成を変更するサーバ計算機と、データを記憶可能なストレージ装置とを備える計算機システムであって、ストレージ装置は、それぞれの仮想計算機を構成するためのファイルを格納するためのディスクイメージを記憶するディスクイメージ記憶部と、ディスクイメージの雛形となるファイルを格納する雛形ディスクイメージを記憶する雛形ディスクイメージ記憶部とを有し、サーバ計算機は、仮想計算機の構成に必要なファイルを分割して管理するか否かを判定するための評価基準を記憶するファイル分割評価基準記憶部と、ファイルについて、評価基準に合致するか否かを判定する判定部と、評価基準に合致すると判定されたファイルの一部分を実体として格納する少なくとも１以上の第１ファイルと決定し、ファイルの残りの部分を所定の格納先の実体を参照する少なくとも１以上の第２ファイルと決定する決定部と、ファイルを第１ファイルおよび第２ファイルに分割して、雛形ディスクイメージに格納する分割格納部と、決定部により実体として格納するように決定した第１ファイルの実体を雛形ディスクイメージから取り出してディスクイメージに格納し、参照するように決定した第２ファイルについては、雛形ディスクイメージの対応する第２ファイルの実体を参照するように設定する設定部とを有するようにしてもよい。
【００１７】
また、上記目的達成のため、本発明の第３の観点に係るファイル管理方法は、複数の仮想計算機のそれぞれを構成するためのファイルの構成を変更するサーバ計算機によるファイル管理方法あって、サーバ計算機の判定部が、ファイルについて、ファイル分割評価基準記憶部に記憶されている前記ファイルを分割して管理するか否かを判定するための前記評価基準に合致するか否かを判定する判定ステップと、サーバ計算機の決定部が、評価基準に合致すると判定されたファイルの一部分を実体として格納する少なくとも１以上の第１ファイルと決定し、ファイルの残りの部分を所定の格納先の実体を参照する少なくとも１以上の第２ファイルと決定する決定ステップとを有する。
【発明の効果】
【００１８】
本発明によると、複数の仮想計算機を構成するファイルについて、より効果的に重複排除することができる。
【発明を実施するための最良の形態】
【００１９】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２０】
図１は、本発明の一実施形態に係る計算機システムの機能構成図である。
【００２１】
計算機システム１において、管理コンソール１５１は仮想計算機ストレージ管理・構成変更プログラム実行部１３１および仮想計算機ホスティングプログラム実行部１４１に対して指示を行う。仮想計算機ストレージ管理・構成変更プログラム実行部１３１は、仮想計算機ストレージ管理・構成変更プログラム１３０（図２参照）を実行することにより、仮想計算機ボリュームイメージにおける重複排除を行うための検証分割処理と、仮想計算機ボリュームイメージにおけるファイルの更新を行う更新処理を実行する。仮想計算機ホスティングプログラム実行部１４１は、仮想計算機実行部及びトレースデータ出力部の一例であり、仮想計算機ホスティングプログラム１４０（図２参照）を実行することにより、仮想計算機としての動作を実行する。
【００２２】
ストレージ装置２２０は、ストレージ管理部１１１と、ボリューム・ファイルシステム管理レイヤ１２０と、仮想計算機のリリース版となる仮想計算機ボリュームイメージ（リリース版仮想計算機ボリュームイメージ）１２１と、ユーザ毎に提供する仮想計算機の雛形となる仮想計算機ボリュームイメージ（雛形仮想計算機ボリュームイメージ）１２２と、ユーザ毎に提供される版である仮想計算機ボリュームイメージ（ユーザ個別仮想計算機ボリュームイメージ）１２３と、必要に応じて作成される仮想計算機ボリュームイメージの複製（レプリカ）であるレプリカ仮想計算機ボリュームイメージ（レプリカイメージ）１２４、１２５を保持する。なお、ボリュームイメージ１２１〜１２５の個数は、任意の数であってよい。ボリューム・ファイルシステム管理レイヤ１２０は、マッピングテーブル１２９を保持する。マッピングテーブル１２９は、仮想計算機ボリュームイメージ１２１〜１２５と、その中に含まれるファイルの対応関係および／または物理ボリュームとの対応関係を記憶する。
【００２３】
仮想計算機ホスティングプログラム実行部１４１は、初期リリース時においては、ストレージ装置２２０のリリース版の仮想計算機ボリュームイメージ１２１を読み込み、仮想計算機ボリュームイメージにより仮想計算機として動作を実行し、仮想計算機による実行状況をトレースデータとしてトレースデータテーブル１４２に出力する。
【００２４】
仮想計算機ストレージ管理・構成変更プログラム実行部１３１は、判定部、決定部、設定部、取扱情報取得部、及び変更後取扱情報格納部の一例としての検証分割部１３４と、受付部、結合部及び置換部の一例としての結合変更部１３６を有する。検証分割部１３４は、初期リリース時においては、ＯＳ／ＡＰファイル評価基準テーブル１３２、ユーザデータ評価基準テーブル１３３、トレースデータテーブル１４２、アプリケーションデータモデル処理ロジック１４４ａ、マッピングテーブル１２９、リリース版仮想計算機ボリュームイメージ１２１を読み込み、ファイルの分割等の処理を行い、雛形仮想計算機ボリュームイメージ１２２を生成し、マッピングテーブル１２９を修正し、アプリケーションデータモデル処理ロジック（変更後）１４４ｂを出力する。
【００２５】
その後、検証分割部１３４は、ユーザ毎に応じて、マッピングテーブル１２９及び雛形仮想計算機ボリュームイメージ１２２に基づいてユーザ個別仮想計算機ボリュームイメージ１２３を生成して出力する。この後、仮想計算機ホスティングプログラム実行部１４１は、ユーザ個別仮想計算機ボリュームイメージ１２３を読み込み、仮想計算機として動作を実行することで、クライアント計算機２１０のユーザに対して所定のサービスを提供する。なお、アプリケーションデータモデル処理ロジック（変更後）１４４ｂは、本実施形態では、例えば、仮想計算機ボリュームイメージ１２３に配置されているが、それ以外に配置されていてもよい。
【００２６】
結合変更部１３６は、ユーザ個別仮想計算機ボリュームイメージ１２３のレプリカであるレプリカ仮想計算機ボリュームイメージ１２４を作成し、当該レプリカ仮想計算機ボリュームイメージ１２４、雛形仮想計算機ボリュームイメージ１２２、アプリケーションデータモデル処理ロジック１４４ｂ、および、マッピングテーブル１２９を読み込み、雛形仮想計算機ボリュームイメージ１２２及びレプリカボリュームイメージ１２４により、更新されるべきファイルが分割されている場合には、分割したファイルを結合し、ファイルの更新処理を実行する。このファイルの更新処理を実行した後に、ファイルの結合をした場合には、検証分割部１３４は、ユーザ個別仮想計算機ボリュームイメージ１２３の作成処理を実施する。この際における検証分割部１３４の入力となる仮想計算機ボリュームイメージは、初期リリース時とは異なり、結合変更部１３６が処理対象としたレプリカ仮想計算機ボリュームイメージ１２４を入力対象とする。
【００２７】
ここで、ファイルの結合が必要ではなかった場合は、仮想計算機ホスティングプログラム実行部１４１が、更新処理に成功したレプリカ仮想計算機ボリュームイメージ１２４を読み込んで動作することを確認し、更新処理に成功したレプリカ仮想計算機ボリュームイメージ１２４を、ユーザに対するサービスを提供するためのユーザ個別仮想計算機ボリュームイメージ１２３とする。これにより、更新後に、適切にユーザに対するサービスの提供を行うことができる。なお、ユーザ個別計算機ボリュームイメージ１２３は、本実施形態では、仮想計算機を提供するユーザ毎に備えるようにしているが、これに限られず、複数のユーザでシェアされるようにしてもよく、仮想的な構成としてもよい。
【００２８】
上記構成において、ＯＳ／ＡＰファイル評価基準テーブル１３２、ユーザデータ評価基準テーブル１３３、トレースデータテーブル１４２、アプリケーションデータモデル処理ロジック１４４ａ、およびアプリケーションデータモデル処理ロジック（変更後）１４４ｂは、それぞれを利用する機能部がアクセスできる記憶領域であれば、任意の記憶領域に記憶されていてもよい。また、仮想計算機を構成するボリュームイメージは、ファイルシステム上に配置されていても、ストレージ装置２２０の仮想化機構を用いた物理ボリュームに配置されていてもよい。また、図１に示す構成要素の一部は、専用のハードウェアによって実現されていてもよい。
【００２９】
図２は、本発明の一実施形態に係る計算機システムのハードウエア構成図である。
【００３０】
計算機システム１は、サーバ計算機２００、クライアント計算機２１０およびストレージ装置２２０を有する。
【００３１】
サーバ計算機２００とクライアント計算機２１０は、ＬＡＮ（Local Area Network）ハブ（またはスイッチ）２３０およびケーブルを介して相互に接続されている。ここで、ＬＡＮハブ２３０とネットワークをまとめてＬＡＮと呼ぶこともある。また、サーバ計算機２００とクライアント計算機２１０とを接続するネットワークはＬＡＮでなくてもよい。
【００３２】
サーバ計算機２００とストレージ装置２２０は、ＳＡＮ（Strage Area Network）ハブ（またはスイッチ）２４０およびケーブルを介して相互に接続されている。ここで、ＳＡＮハブ２４０とネットワークをまとめてＳＡＮと呼ぶこともある。なお、サーバ計算機２００とストレージ装置２４０とを接続するネットワークはＳＡＮでなくてもよい。
【００３３】
サーバ計算機２００は、仮想計算機ストレージ管理・構成変更プログラム１３０および仮想計算機ホスティングプログラム１４０を実行する計算機である。サーバ計算機２００は、ＣＰＵ群（ＣＰＵｓ）２０１、メインメモリ２０２、ＣＤ−ＲＯＭ装置２０３、ＳＡＮ  Ｉ／Ｆ２０４、ＬＡＮ  Ｉ／Ｆ２０５およびディスク装置２０６を有する。これら各部２０１〜２０６は、コントローラ２０７によって相互に接続されている。
【００３４】
ディスク装置２０６は、仮想計算機ストレージ管理・構成変更プログラム１３０および仮想計算機ホスティングプログラム１４０などのプログラム、トレースデータテーブル１４２、アプリケーションデータモデル処理ロジック１４４ａ、アプリケーションデータモデル処理ロジック１４４ｂ、更新ファイルリストテーブル１４６などのデータを格納する。ＣＰＵｓ２０１は、これらのプログラムをメインメモリ２０２にロードして実行する。ＣＰＵｓ２０１が仮想計算機ストレージ管理・構成変更プログラム１３０を実行することにより、仮想計算機ストレージ管理・構成変更プログラム実行部１３１が構成され、ＣＰＵｓ２０１が仮想計算機ホスティングプログラム１４０を実行することにより、仮想計算機ホスティングプログラム実行部１４１が構成される。
【００３５】
なお、ディスク装置２０６に記憶するプログラムとデータの少なくとも一部を、クライアント計算機２１０のディスク装置２１６に格納するようにしてもよく、また、ストレージ装置２２０の仮想ボリュームイメージ１２１〜１２３に格納するようにしてもよく、また、ストレージ装置２２０の物理デバイス２２５〜２２８に格納するようにしてもよい。
【００３６】
クライアント計算機２１０は、計算機システム管理者が、サーバ計算機２００により提供される仮想計算機の管理作業および更新作業を行い、サーバ計算機２００に仮想計算機を配置させ、仮想計算機を実行させるための計算機である。クライアント計算機２１０は、ＣＰＵ２１１、メインメモリ２１２、ＣＤ−ＲＯＭ装置２１３、ＬＡＮ  Ｉ／Ｆ２１５、ディスク装置２１６およびこれら各部間を相互に接続するコントローラ２１７を有する。
【００３７】
クライアント計算機２１０のディスク装置２１６は、管理コンソールプログラム１５０を格納する。ＣＰＵ２１１は、これらのプログラムをメインメモリ２１２にロードして実行する。ＣＰＵ２１１が管理コンソールプログラム１５０を実行することにより、管理コンソール１５１を構成する。計算機システム管理者は、管理コンソール１５１により、仮想計算機ストレージ管理・構成変更プログラム実行部１３１および仮想計算機ホスティングプログラム実行部１４１の実行管理を行うことができる。なお、ディスク装置２１６に格納されたプログラムやデータの少なくとも一部を、サーバ計算機２００のディスク装置２０６に格納するようにしてもよく、また、ストレージ装置２２０の物理デバイス２２５〜２２８に格納するようにしてもよい。
【００３８】
なお、本実施形態では、計算機システム１は、別々の装置として構成されたサーバ計算機２００とクライアント計算機２１０とストレージ装置２２０とを有するようにしているが、これにかぎられず、必要な構成を有する１台の装置（計算機・ストレージ装置）としてもよく、また、サーバ計算機２００とクライアント計算機２１０とストレージ装置２２０との少なくともいずれか１つの装置を複数台としてもよい。
【００３９】
ストレージ装置２２０は、ＳＡＮ  Ｉ／Ｆ２２１、ストレージ制御プロセッサ２２２、メモリ２２３、および物理デバイス２２５〜２２８を有する。これらの各部は、バス２２４によって相互に接続されている。管理プログラム１１０はメモリ２２３にロードされ、ストレージ制御プロセッサ２２２により実行されることにより、ストレージ管理部１１１及びボリューム／ファイルシステム管理レイヤ１２０を構成し、ボリューム／ファイルシステム管理レイヤ１２０を制御実行する。ここで、リリース版仮想計算機ボリュームイメージ１２１、雛形仮想計算機ボリュームイメージ１２２、ユーザ個別仮想計算機ボリュームイメージ１２３、レプリカボリュームイメージ１２４、及びレプリカボリュームイメージ１２５は、例えば、物理デバイス２２５〜２２８の少なくとも１つの物理デバイスの少なくとも一部の記憶領域に記憶される。
【００４０】
次に、本実施形態に係る計算機システムの処理の流れの概略を説明する。
【００４１】
まず、計算機システム管理者が、クライアント計算機２１０に構成された管理コンソール１５１に対して指示を行うことにより、リリース版仮想計算機ボリュームイメージ１２１を用いて仮想計算機ホスティングプログラム実行部１４１により構成される仮想計算機を用いてテスト実行を行う。このとき、仮想計算機ホスティングプログラム実行部１４１は、トレースデータ１４２を出力する。テスト実行の終了後、計算機システム管理者は、管理コンソール１５１により、仮想計算機ストレージ管理・構成変更プログラム実行部１３１に対して、検証分割部１３４の実行を要求する。検証分割部１３４は、リリース版仮想計算機ボリュームイメージ１２１を読み込み、それとともに、トレースデータテーブル１４２、ＯＳ／ＡＰファイル評価基準テーブル１３２、ユーザデータ評価基準テーブル１３３、アプリケーションデータモデル処理ロジック１４４ａ、マッピングテーブル１２９から各種データを読み込む。
【００４２】
検証分割部１３４は、トレースデータテーブル１４２のトレースデータに含まれている仮想計算機ボリュームイメージ上のファイルへのアクセス状況に応じて、ファイル毎に共有可能（ユーザによらず同じ）であるか、またはユーザ毎に異なるか否かを判定することにより、対応するファイルを所定の記憶領域のファイルの実体への参照とすることが可能であるか否かを判定し、判定結果に応じてファイルを参照するとのマーキング、または、ファイルを実体とするとのマーキングの作業を行い、マッピングテーブル１２９を更新する。
【００４３】
また、検証分割部１３４は、ＯＳ／ＡＰファイル評価基準テーブル１３２、ユーザデータ評価基準テーブル１３３に格納された評価基準に基づいて、ファイル毎に、ファイル中の共有可能な部分とユーザ毎に異なる部分（共有不可能な部分）とに分割可能であるか否かを判定する。また、検証分割部１３４は、分割が可能であると判定した場合には、対応するファイルを共有可能な部分のファイル（第２ファイル）と、ユーザ毎に異なる部分のファイル（第１ファイル）とに分割し、共有可能な部分を含むファイルについては、所定のファイルを参照するとしてマッピングテーブル１２９を更新し、ユーザ毎に異なる部分のファイルについて実体としてマッピングテーブル１２９を更新する。また、検証分割部１３４は、ファイルの分割に応じてアプリケーションデータモデル処理ロジック１４４ａを書き換え、アプリケーションデータモデル処理ロジック（変更後）１４４ｂとして出力し、ユーザ毎に提供する雛形となる雛形仮想計算機ボリュームイメージ１２２を出力する。
【００４４】
各ユーザに仮想計算機を提供する場合には、仮想計算機ストレージ管理・構成変更プログラム実行部１３１が、雛形となる雛形仮想計算機ボリュームイメージ１２２に基づいてユーザ個別仮想計算機ボリュームイメージ１２３を生成し、当該仮想計算機ボリュームイメージ１２３を用いて仮想計算機ホスティングプログラム実行部１４１が仮想計算機を構成して実行し、ユーザへの提供を行う。ここで、仮想計算機ストレージ管理・構成変更プログラム実行部１３１は、マッピングテーブル１２９に基づいて、参照となるファイルについては雛形仮想計算機ボリュームイメージ１２２中のファイルの実体を参照するようにユーザ個別仮想計算機ボリュームイメージ１２３を生成する。
【００４５】
上述の処理を行うことにより、仮想計算機ボリュームイメージ上のファイルの分割を前処理として実施して、ファイルの重複排除を行うことで、ユーザ個別仮想計算機ボリュームイメージ１２３において実体化するファイルの容量を削減でき、必要なディスクの容量を削減することができる。
【００４６】
次に、仮想計算機を構成するためのファイルを更新する更新作業において、計算機システム管理者が管理コンソール１５１を用いて指示を行うと、結合変更部１３６が、ユーザ個別仮想計算機ボリュームイメージ１２３のレプリカとなるレプリカ仮想計算機ボリュームイメージ１２４を作成するとともに、雛形仮想計算機ボリュームイメージ１２１のレプリカとなるレプリカ仮想計算機ボリューム１２５を作成する。更に、結合変更部１３６は、レプリカ仮想計算機ボリュームイメージ１２４、１２５、アプリケーションデータモデル処理ロジック１４４ｂ、および更新ファイルリストテーブル１４６、マッピングテーブル１２９を読み込む。
【００４７】
結合変更部１３６は、更新ファイルリストテーブル１４６の中身に応じて、レプリカ仮想計算機ボリュームイメージ１２４、１２５のファイルの更新が単純置換ですむ場合には、対象となるファイルを更新後のファイル（更新ファイル）に置き換える。また、結合変更部１３６は、ファイルの更新が単純置換ですまない場合には、検証分割部１３４で分割したファイル等を結合し、結合および実体化したレプリカ仮想計算機ボリュームイメージ１２４に対して更新処理を実行し、更新処理後に検証分割部１３４が再び分割処理を実行する。
【００４８】
更新処理後に、仮想計算機ホスティングプログラム実行部１４１が作成したレプリカ仮想計算機ボリュームイメージ１２４を用いて仮想計算機を構成することにより動作確認を実施する。その後、仮想計算機ホスティングプログラム実行部１４１が更新後のレプリカ仮想計算機ボリュームイメージ１２４をユーザ毎仮想計算機ボリュームイメージ１２３とし、また、更新後のレプリカ仮想計算機ボリュームイメージ１２５を雛形仮想計算機ボリュームイメージ１２２とし、仮想計算機を構成して実行し、ユーザに対して提供する。
【００４９】
図３は、本発明の一実施形態に係るＯＳ／ＡＰファイル評価基準テーブルの一例を示す図である。
【００５０】
ＯＳ／ＡＰファイル評価基準テーブル１３２は、ファイルについて分割処理、参照処理、または実体化処理のいずれをするかを分類するための評価基準を格納する。ＯＳ／ＡＰファイル評価基準テーブル１３２は、ＩＤフィールド３０１、評価基準フィールド３０２、処理内容フィールド３０３とを有するレコードを格納する。ＩＤフィールド３０１は、レコードのＩＤ（例えば、レコード番号）を格納する。評価基準フィールド３０２は、評価基準を格納する。処理内容フィールド３０３は、対応する評価基準を満たす場合のファイルを取扱う処理内容を格納する。ＯＳ／ＡＰファイル評価基準テーブル１３２としては、上述のフィールドに限定されず、評価基準、評価のための数値などに関わる情報を記述するフィールドを更に含んでもよい。また、ＯＳ／ＡＰファイル評価基準テーブル１３２は、評価基準毎に１つのレコードとするようにしていたが、これに限られず、同様な内容を含むように別の観点でまとめたものを１レコードとするようにしてもよい。
【００５１】
レコード３１１は、「Ｒｅａｄ／Ｗｒｉｔｅのアクセスがない」ファイルであることが評価基準であり、ファイルが評価基準に該当する場合には、そのファイルを「参照」として、実体化しないことを示している。レコード３１２は、「Ｒｅａｄアクセスはあるが／Ｗｒｉｔｅのアクセスがない」ファイルであることが評価基準であり、ファイルが評価基準に該当する場合には、そのファイルを「条件付参照」として、実体化しないことを示している。レコード３１３は、「Ｒｅａｄアクセスがあり／Ｗｒｉｔｅのアクセスもある」ファイルであることが評価基準であり、ファイルがこの評価基準に該当する場合には、そのファイルを「実体」として、実体化することを示している。
【００５２】
レコード３１４は「Ｒｅａｄアクセスがなく／Ｗｒｉｔｅのアクセスはある」ファイルであることが評価基準であり、ファイルが評価基準に該当する場合には、そのファイルを「実体」として、実体化することを示している。レコード３１５は「Ｒｅａｄアクセス頻度が定める基準値を超えている」ファイルであることが評価基準であり、評価基準に該当する場合、そのファイルを「条件付実体」として、実体化することを示している。レコード３１６は「局所的にＷｒｉｔｅアクセスが存在する」ファイルであることが評価基準であり、ファイルが評価基準に該当する場合には、そのファイルを「分割」として、ファイルを分割することを示している。
【００５３】
レコード３１７は「ＯＳユーザデータである、または、アプリケーションのデータである」ファイルであることが評価基準であり、評価基準に該当する場合には、そのファイルを「条件付分割」として、ファイルを分割することを示している。レコード３１８は「ＯＳ非ユーザデータである」ファイルであることが評価基準であり、評価基準に該当する場合には、そのファイルを「条件付参照」として、ファイルを参照として実体化しないことを示している。レコード３１９は「データ量が基準値より小さい」ファイルであることが評価基準であり、評価基準に該当する場合、そのファイルを「実体」として、ファイルを実体化することを示している。
【００５４】
なお、上記評価基準によって分割すると判定されたファイルを分割した複数のファイルのそれぞれについては、分割後において、更に、上記評価基準によって、参照または実体の判定が行われることとなる。また、上記評価基準における条件付とは、そのときにアプリケーションデータモデル処理ロジック１４４ａやデータモデルの書き換えにより対応できるか否かによってその処理を行うか否かが決定されるものであり、その処理が行えないものについては、分割においては分割せず、その他の条件付については、基本的には元の処理に従うこととなる。
【００５５】
なお、ＯＳ／ＡＰファイル評価基準テーブル１３２のレコードの構成は、上記した構成に限定されず、別の構成であってもよく、単数のテーブルで構成するのではなく、複数のテーブルの組み合わせによって構成してもよく。また、レコードの個数は上記の数に限定されず、任意の数としてもよい。
【００５６】
図４は、本発明の一実施形態に係るユーザデータ評価基準テーブルの一例を示す図である。
【００５７】
ユーザデータ評価基準テーブル１３３は、主に、ユーザアプリケーションに関わるファイルのデータレベルでの分割、および、参照処理または実体化処理のいずれを実行するかを分類するための評価基準となる情報を格納する。例えば、ＤＢＭＳファイルでは、ユーザの格納する表やそのスキーマが評価の対象に該当する。
【００５８】
ユーザデータ評価基準テーブル１３３は、ＩＤフィールド４０１、評価基準フィールド４０２、処理内容フィールド４０３を有するレコードを格納する。ＩＤフィールド４０１は、レコードのＩＤ（例えば、レコード番号）を格納する。評価基準フィールド４０２は、評価基準を格納する。処理内容フィールド４０３は、対応する評価基準を満たす場合の評価の対象を取扱う処理内容を格納する。
【００５９】
ユーザデータ評価基準テーブル１３３としては、上述のフィールドに限定されず、評価基準、評価のための数値などに関わる情報を記述するフィールドを更に含んでもよい。また、ユーザデータ基準テーブル１３３は、評価基準毎に１つのレコードとするようにしていたが、これに限られず、同様な内容を含むように別の観点でまとめたものを１レコードとするようにしてもよい。
【００６０】
レコード４１１は、「カスタマイズ可能フィールドに指定されている」スキーマであることが評価基準であり、評価基準に該当する場合、そのフィールド部分については「実体」として、実体化することを示している。レコード４１２は、「固定値フィールドに指定されている」スキーマであることが評価基準であり、評価基準に該当する場合、そのフィールド部分については「参照」として、実体化しないことを示している。レコード４１３は、「データモデルに記載のアノテーションがマスタデータや参照など」ユーザ間で共通するスキーマであることが評価基準であり、評価基準に該当する場合、そのデータモデルを持つ表やスキーマについては「参照」として、実体化しないことを示している、レコード４１４は、「データモデルに記載のアノテーションがユーザデータや実体など」ユーザにより異なるスキーマであることが評価基準であり、評価基準に該当する場合、そのデータモデルを持つ表やスキーマについては「実体」として、実体化することを示している。
【００６１】
レコード４１５は、表に関する処理が「ＬｏｏｋｕｐのみでＵｐｄａｔｅ／Ｉｎｓｅｒｔがない」ことが評価基準であり、評価基準に該当する場合、その表やスキーマについては「条件付参照」として実体化しないことを示している。レコード４１６は、表に関する処理が「Ｊｏｉｎ処理はされているが、Ｕｐｄａｔｅ／Ｉｎｓｅｒｔがない」ことが評価基準であり、評価基準に該当する場合、その表やスキーマについては「条件付参照」として実体化しないことを示している。
【００６２】
レコード４１７は、表のデータモデルに関する属性が「Ｕｐｄａｔｅ／Ｉｎｓｅｒｔのフィールド局所性」を有することが評価基準であり、評価基準に該当する場合、その表のスキーマについては「条件付分割」として表を分割することを示している。レコード４１８は、表の属性が「正規化可能」であることが評価基準であり、評価基準に該当する場合、その表については「条件付分割」として表を分割することを示している。レコード４１９は、表のアクセス頻度に関わる属性として「アクセス頻度が基準値以上であるか」が評価基準であり、評価基準に該当する場合、その表については「実体」として表を実体化することを示している。レコード４２０は、表のデータ量に関わる属性について「表のデータ量が基準値より小さいか」が評価基準であり、評価基準に該当する場合、その表については「実体」として表を実体化することを示している。
【００６３】
なお、上記評価基準によって分割すると判定されたファイルを分割した複数のファイルについては、分割後において、更に上記評価基準によって、参照または実体の判定が行われることとなる。また、上記評価基準における条件付とは、そのときにアプリケーションデータモデル処理ロジック１４４ａやデータモデルの書き換えにより対応できるか否かによってその処理を行うか否かが決定されるものであり、その処理が行えないものについては、分割においては分割せず、その他の条件付については、基本的には元の処理に従うこととなる。
【００６４】
なお、ユーザデータ評価基準テーブル１３３のレコードの構成は、上記した構成に限定されず、別の構成であってもよく、単数のテーブルで構成するのではなく、複数のテーブルの組み合わせによって構成されてもよい。また、レコードの個数は上記の数に限定されず、任意の数としてもよい。
【００６５】
図１６は、本発明の一実施形態に係るマッピングテーブルの一例を示す図である。
【００６６】
マッピングテーブル１２９は、雛形仮想計算機ボリュームイメージ１２２と、ユーザ個別仮想計算機ボリュームイメージ１２３とのファイルの対応関係を管理するための情報を格納するテーブルである。
【００６７】
マッピングテーブル１２９は、ＩＤフィールド１６０１、ファイル元フィールド１６０２、対応ファイルフィールド１６０３、区分フィールド１６０４、分割フィールド１６０５、有効フィールド１６０６とを含むレコードを格納する。ＩＤフィールド１６０１は、レコードＩＤ（例えば、レコード番号）を格納する。ファイル元フィールド１６０２は、雛形仮想計算機ボリュームイメージ１２２におけるファイルのファイル名および／又はパス名を格納する。対応ファイルフィールド１６０３は、ユーザ個別仮想計算機ボリュームイメージ１２３における対応するファイル名および／又はパス名を格納する。区分フィールド１６０４は、対応するファイルが実体化されているか、それとも参照するものであるかの区分を格納する。分割フィールド１６０５は、対応するファイルが分割されているか、分割元のファイルか、分割後のファイルかを示す情報を格納する。なお、本実施形態では、分割フィールド１６０５には、分割元のファイルである場合には、分割元と格納されるとともに、対応する分割後のファイルを示すレコードＩＤが格納され、分割後のファイルである場合には、分割後と格納されるとともに、対応する分割元のファイルを示すレコードＩＤが格納される。有効フィールド１６０６は、対応するレコードが有効であるか否かを示す情報を格納する。
【００６８】
なお、マッピングテーブル１２９としては、上述のフィールドに限定されず、その他のマッピングに関わる情報を記述するフィールドを更に含んでもよい。また、マッピングテーブル１２９は、ファイル毎に１つのレコードとするようにしていたが、これに限られず、ディレクトリ単位、その他単位など別の単位でまとめたものを１レコードとするようにしてもよい。
【００６９】
レコード１６１１は、”雛１”で示される雛形仮想計算機ボリュームイメージ１２２のファイル「雛１：/usr/bin」に関わるレコードであり、そのファイルは、任意のユーザ個別仮想計算機ボリュームイメージ１２３上のファイル「ユーザ＊：/usr/bin」に対応し、そのファイルが区分「参照」であり、ユーザ個別仮想計算機ボリュームイメージ１２３のファイル（ファイルフィールド１６０３のファイル）は、雛形仮想計算機ボリュームイメージ１２２のファイル（ファイルフィールド１６０２に記載のファイル）を参照し、実体を持たないことを示し、このファイルは、分割されておらず、このエントリが「有効」であることがわかる。
【００７０】
レコード１６１２は、”雛１”で示される雛形仮想計算機ボリュームイメージ１２２のファイル「雛１：/home/root」に関わるレコードであり、そのファイルは、任意のユーザ個別仮想計算機ボリュームイメージ１２３上のファイル「ユーザ＊：/home/root」に対応し、そのファイルが区分「実体」であり、ユーザ個別仮想計算機ボリューム１２３のファイル（ファイルフィールド１６０３のファイル）は、実体を持つことを示し、このファイルが分割された分割元のファイルであり、現在では使われていない（無効である）ことが示されている。なお、分割フィールド１６０５には、図示していないが、分割後のファイルに対応するレコード番号”４”、”５”が格納されており、レコード１６１２の分割後のファイルに対応するレコードがレコード１６１４、レコード１６１５であることがわかる。
【００７１】
レコード１６１３は、”雛１”で示される雛形仮想計算機ボリュームイメージ１２２のファイル「雛1：/home/root/b.sh」に関わるレコードであり、そのファイルは、任意のユーザ個別仮想計算機ボリュームイメージ１２３上のファイル「/home/root/b.sh」に対応し、そのファイルが区分「実体」であり、ユーザ個別仮想計算機ボリュームイメージ１２３のファイル（ファイルフィールド１６０３のファイル）は、実体を持つことを示している。なお、マッピングテーブル１２９のレコードの構成は、上記した構成に限定されず、別の構成であってもよく、単数のテーブルで構成するのではなく、複数のテーブルの組み合わせによって構成されてもよい。また、レコードの個数は上記の数に限定されず、任意の数としてもよい。
【００７２】
図１７は、本発明の一実施形態に係るトレースデータテーブルの一例を示す図である。
【００７３】
トレースデータテーブル１４２は、仮想計算機ボリュームイメージを仮想計算機ホスティングプログラム実行部１４１が利用した際における、仮想計算機ボリュームイメージ中のファイルへのアクセス情報を格納する。トレースデータテーブル１４２は、ＩＤフィールド１７０１、アクセスファイルフィールド１７０２、アクセス種別フィールド１７０３、アドレスフィールド１７０４、頻度フィールド１７０５、およびデータ量フィールド１７０６を有するレコードを格納する。ＩＤフィールド１７０１は、レコードＩＤ（例えば、レコード番号）を格納する。アクセスファイルフィールド１７０２は、アクセスしたファイル名および／又はパス名を格納する。アクセス種別フィールド１７０３は、アクセスが、リード（Read）のみか、ライト（Write）のみか、又は、リードおよびライトのいずれであるかの種別を格納する。アドレスフィールド１７０４は、ファイル中のアクセスしたアドレスと、ファイル全体のアドレスとを格納する。頻度フィールド１７０５は、アクセスの頻度を格納する。データ量フィールド１７０６は、アクセスしたデータ量（例えば、メガバイト単位）を格納する。
【００７４】
なお、トレースデータテーブル１４２としては、上述のフィールドに限定されず、その他のトレースデータに関わる情報を記述するフィールドを更に含んでもよい。また、トレースデータテーブル１４２は、アクセスしたファイル毎に１つのレコードとするようにしていたが、これに限られず、ディレクトリ単位、セグメント単位など別の単位でまとめたものを１レコードとするようにしてもよい。
【００７５】
レコード１７１１は、ユーザ個別仮想計算機ボリュームイメージ１２３上のファイル「/usr/bin」に関わるレコードであり、そのアクセス種別は「Ｒｅａｄ」、すなわち、読み込み処理のみであったことを示し、そのアクセス先となるファイルのアドレスは、ファイルの全体のアドレス（ＡＡ００−ＣＣ００）の中の前半部分のみ（アドレス（ＡＡ００−ＢＢＯＯ）にアクセスし、そのアクセス頻度が５０回であり、そのデータ量が１００単位であることを示す。レコード１７１２は、ユーザ個別仮想計算機ボリュームイメージ１２３上のファイル「/home/root」に関わるレコードであり、そのアクセス種別は「Ｒｅａｄ／Ｗｒｉｔｅ」、すなわち、読み込みと書き込み処理両方であったことを示し、そのアクセス先となるファイルの全体アドレス（ＣＣ００−ＤＤ００）のうちの極前半部分のみの局所的なアドレス（ＣＣ００−ＣＣ０Ａ）にアクセスしたことを示す。
【００７６】
レコード１７１３は、ユーザ個別仮想計算機ボリュームイメージ１２３上のファイル「/home/root/b.sh」に関わるレコードであり、そのアクセス種別は「Ｒｅａｄ」、すなわち、読み込み処理のみであったことを示し、そのアクセス先としてファイルの全体に渡るアドレス（ＥＥ００−ＥＦ００）にアクセスし、アクセス頻度が５００回と高いことを示している。なお、トレースデータテーブル１４２のレコードの構成は、上記した構成に限定されず、別の構成であってもよく、単数のテーブルで構成するのではなく、複数のテーブルの組み合わせによって構成されてもよい。また、レコードの個数は上記の数に限定されず、任意の数としてもよい。
【００７７】
図１８は、本発明の一実施形態に係るファイルリストテーブルの一例を示す図である。
【００７８】
ファイルリストテーブル１３５は、仮想計算機ボリュームイメージ１２１〜１２５に含まれるファイルに関する情報を格納する。
【００７９】
ファイルリストテーブル１３５は、ＩＤフィールド１８０１、ファイル名称フィールド１８０２、区分フィールド１８０３とを有するレコードを格納する。ＩＤフィールド１８０１は、レコードＩＤ（例えば、レコード番号）を格納する。ファイル名称フィールド１８０２は、ファイル名および／又はパス名を格納する。区分フィールド１８０３は、対応するファイルが、ＯＳに関わるユーザに共通のファイル（ＯＳ非ユーザファイル）であるのか、ユーザ毎に利用するファイル（ユーザファイル）であるのか、アプリケーション用のファイル（ＡＰファイル）であるかを示す区分が格納される。なお、ファイルリストテーブル１３５としては、上述のフィールドに限定されず、その他のファイルに関わる情報を記述するフィールドを更に含んでもよい。また、ファイルリストテーブル１３５は、ファイル毎に１つのレコードとするようにしていたが、これに限られず、ディレクトリ単位、その他単位など別の単位でまとめたものを１レコードとするようにしてもよい。
【００８０】
レコード１８１１は、仮想ボリューム１２１〜１２５の仮想計算機ボリュームイメージ上のファイル「/opt/DBMS/osfiles」に関わるレコードであり、対応するファイルがＯＳ非ユーザファイルであることを示す。レコード１８１２は、仮想ボリューム１２１〜１２５の仮想計算機ボリュームイメージ上のファイル「/home/root/c.sh」に関わるレコードであり、対応するファイルがユーザ毎に利用するファイルであることを示す。レコード１８１３は、仮想ボリューム１２１〜１２５の仮想計算機ボリュームイメージ上のファイル「/opt/DMBS/*」に関わるレコードであり、対応するファイルがアプリケーションに関わるファイルであることを示す。なお、ファイルリストテーブル１３５のレコードの構成は、上記した構成に限定されず、別の構成であってもよく、単数のテーブルで構成するのではなく、複数のテーブルの組み合わせによって構成されてもよい。また、レコードの個数は上記の数に限定されず、任意の数としてもよい。
【００８１】
図１９は、本発明の一実施形態に係る更新ファイルリストテーブルの一例を示す図である。
【００８２】
更新ファイルリストテーブル１４６は、仮想計算機ボリュームイメージ中のどのファイルを更新するかを示す情報を格納する。この更新ファイルリストテーブル１４６は、仮想計算機を構成するためのアプリケーションやＯＳ等のファイルの更新を行う際に利用される。
【００８３】
更新ファイルリストテーブル１４６は、ＩＤフィールド１９０１、ファイル名称フィールド１９０２、区分フィールド１９０３、備考フィールドを有するレコードを格納する。
【００８４】
ＩＤフィールド１９０１は、レコードＩＤ（例えば、レコード番号）を格納する。ファイル名称フィールド１９０２は、更新するファイル名および／又はパス名を格納する。区分フィールド１９０３は、対応するファイルが、ＯＳに関わるユーザに共通のファイル（ＯＳ非ユーザファイル）であるのか、ユーザ毎に利用するファイル（ユーザファイル）であるのか、アプリケーション用のファイル（ＡＰファイル）であるかを示す区分が格納される。なお、更新ファイルリストテーブル１４６としては、上述のフィールドに限定されず、その他の更新ファイルに関わる情報を記述するフィールドを更に含んでもよい。また、更新ファイルリストテーブル１４６は、ファイル毎に１つのレコードとするようにしていたが、これに限られず、ディレクトリ単位、その他単位など別の単位でまとめたものを１レコードとするようにしてもよい。なお、更新ファイルの実体は所定の記憶領域に記憶されている。
【００８５】
レコード１９１１は、仮想計算機ボリュームイメージ上のファイル「/usr/bin」に関わるレコードであり、対応するファイルは、ＯＳに関わるファイルであることを示す。レコード１９１２は、仮想計算機ボリュームイメージ上のファイル「/home/root/b.sh」に関わるレコードであり、対応するファイルがユーザに関わるファイルであることを示す。レコード１９１３は、仮想計算機ボリュームイメージ上のファイル「/opt/DMBS/*」に関わるレコードであり、対応するファイルがアプリケーションに関わるファイルであることを示す。なお、更新ファイルリストテーブル１４６のレコードの構成は、上記した構成に限定されず、別の構成であってもよく、単数のテーブルで構成するのではなく、複数のテーブルの組み合わせによって構成されてもよい。また、レコードの個数は上記の数に限定されず、任意の数としてもよい。
【００８６】
図６、図７、及び図８は、本発明の一実施形態に係るアプリケーションデータモデル処理ロジック及びその分割を説明する図である。なお、図６及び図７においては、図面左側が分割前の各部の状態を示し、図面右側が分割後の各部の状態を示し、図８においては、図面上側は分割前の各部の状態を示し、図面下側が分割後の各部の状態を示している。
【００８７】
アプリケーションデータモデル処理ロジック１４４ａおよび１４４ｂは、仮想計算機上で稼動するアプリケーションの処理ロジックとデータモデルに関わる情報、換言すると、アプリケーションでのファイルの取扱情報を格納する。
【００８８】
図６において、アプリケーションデータモデル処理ロジック１４４ａは、アプリケーション設定６０１を格納している。アプリケーション設定６０１には、アプリケーションで使用するファイル、の名称、例えば、”ｆｉｌｅ００１”が設定されている。ファイル６１１は、ファイル名が”ｆｉｌｅ００１”のファイルであり、ユーザ個別仮想計算機ボリュームイメージ１２３に格納されている。ファイル６１１は、部分６１１ａが局所的に更新されるように利用されている。
【００８９】
アプリケーションデータモデル処理ロジック１４４ａに、アプリケーション設定６０１が格納されている場合には、検証分割部１３４は、アプリケーション設定６０１を、アプリケーション設定６０２に示すように、ｆｉｌｅ００１と、ｆｉｌｅ００２とを使用するように変更し、ユーザ個別仮想計算機ボリュームイメージ１２３のファイル６１１を局所的に更新されない部分のファイル６１２ｂと、局所的に更新される部分６１１ａに対応するファイル６１２ａとに分割する。
【００９０】
図７において、アプリケーションデータモデル処理ロジック１４４ａは、アプリケーションデータ格納方法７０１を格納する。アプリケーションデータ格納方法７０１には、ファイル名がｕｓｅｒ１のファイルに、従業員テーブルと、Lookup_onlyテーブルとが格納されることが記載されている。
【００９１】
ファイル７１１は、ファイル名がｕｓｅｒ１のファイルであり、ユーザ個別仮想計算機ボリュームイメージ１２３に格納されている。ファイル７１１には、従業員テーブル７２１と、Lookup_onlyテーブルが格納されている。
【００９２】
アプリケーションデータモデル処理ロジック１４４ａに、アプリケーション格納方法７０１が格納されている場合には、検証分割部１３４は、アプリケーション格納方法７０１を、アプリケーション格納方法７０２に示すように、従業員テーブルをファイル名がｕｓｅｒ１のファイルに格納し、Lookup_onlyテーブルをファイル名がｒｅｆ１のファイルに格納するように変更し、ユーザ個別仮想計算機ボリュームイメージ１２３のファイル７１１を、従業員テーブル７２１’を格納するファイル名がｆｉｌｅ１のファイル７１２と、Lookup_onlyテーブル７２２’を格納するファイル名がｒｅｆ１のファイル７１３とに分割する。
【００９３】
図８において、アプリケーションデータモデル処理ロジック１４４ａは、テーブルに対するアプリケーションデータロジック８５１とアプリケーションデータモデル（表）８１０とを格納する。アプリケーションデータロジック８５１には、Ｔａｂｌｅ１において、ｉｄフィールドがａａであり、ｆａｃｔｏｒｙフィールドがｂｂであるレコードのＱｔｙフィールドにｘｘを設定して更新するロジックが記載されている。
【００９４】
アプリケーションデータモデル（表）８１０は、ＩＤフィールド８０１と、データフィールド８０２と、処理フィールド８０３と、キー値フィールド８０４とを有する。ＩＤフィールド８０１は、レコードＩＤ（レコード番号）を格納する。データフィールド８０２は、データフィールドの名称を格納する。処理フィールド８０３は、対応するデータフィールドに対する処理種類を格納する。処理フィールド８０３には、対応するデータフィールドが選択に用いられる場合には、Ｓｅｌｅｃｔが格納され、対応するデータフィールドが更新される場合には、Ｕｐｄａｔｅが格納される。キー値フィールド８０４は、対応するデータフィールドがキー値であるか否かの情報を格納する。キー値フィールド８０４には、例えば、対応するデータフィールドがキー値である場合には、ｔｒｕｅが格納される。
【００９５】
レコード８１１は、ＩＤフィールドに関するレコードであり、ＩＤフィールドのデータは、キー値であって、処理がＳｅｌｅｃｔであることを示している。レコード８１２は、Ｑｔｙフィールドに関するレコードであり、キー値でなく、処理がＵｐｄａｔｅ、すなわち更新書き込みが入る可能性があることを示している。レコード８１３〜８１５は、キー値ではなく、処理がＳＥＬＥＣＴであることを示している。
【００９６】
アプリケーションデータモデル処理ロジック１４４ａに、アプリケーションデータロジック８５１と、アプリケーションデータモデル８１０とが格納されている場合には、検証分割部１３４は、アプリケーションデータモデル８１０を、アプリケーションデータモデル８２０およびアプリケーションデータモデル８３０に示すように分割する。すなわち、検証分割部１３４は、アプリケーションデータモデル８１０を、キー値となるデータフィールドと、Ｕｐｄａｔｅ処理を行うデータフィールドとのレコードを含むアプリケーションデータモデル８２０と、キー値となるデータフィールドと、Ｕｐｄａｔｅ処理を行うデータフィールド以外のデータフィールドとを含むアプリケーションデータモデル８３０とに分割する。これによって、アプリケーションデータモデル８３０が示すテーブルを格納するファイルについては、更新が発生しないので、参照するファイルとおくことができる。
【００９７】
また、検証分割部１３４は、アプリケーションデータロジック８５１を、アプリケーションデータロジック８５２に示すように、分割後のアプリケーションデータモデル８２０、８３０においても同様な処理を実行できるように変更する。アプリケーションデータロジック８５２は、アプリケーションデータモデル８２０に対応するＴａｂｌｅ１のＩＤフィールドと、アプリケーションデータモデル８３０に対応するＴａｂｌｅ２のＩＤフィールドとのＩＤがａａであり、Ｔａｂｌｅ２のファクトリーフィールドがｂｂであるＴａｂｌｅ１のＱｔｙフィールドをｘｘに設定して更新するロジックが記載されている。
【００９８】
なお、アプリケーションデータモデル処理ロジック１４４ａとしては、図６乃至図８に記載の構成に限定されず、別の構成であってもよく、例えば、その他アプリケーションデータモデル処理ロジックに関わる情報を格納する項目を含むようにしてもよい。また、本実施形態では、アプリケーションデータモデル処理ロジック１４４ａは、テキスト、表やファイルの模式図によってレコードを表現したが、これを別の単位によってまとめてもよい。
【００９９】
次に、本実施形態に係るファイルの検証分割処理について説明する。
【０１００】
図５は、本発明の一実施形態に係るファイルの検証分割処理の概略を説明する図である。なお、図５は、検証分割処理の概略を示したものであって、すべての構成要素を記載しているわけではない。
【０１０１】
リリース版仮想計算機ボリュームイメージ１２１は、ＯＳ／ＡＰに関わるファイル５０４、ユーザ利用データの雛形のファイル５０１、およびアプリケーションデータモデル処理ロジック１４４ａを格納する。雛形仮想計算機ボリュームイメージ１２２は、検証分割部１３４によって処理された後の仮想計算機ボリュームイメージである。ユーザデータ検証分割部１３４ａは、検証分割部１３４のうちユーザデータに関わる処理を実行する機能部であり、アプリケーションデータモデル処理ロジック１４４ａおよびユーザデータ評価基準テーブル１３３の評価基準を元に、ユーザ利用データの雛形ファイル５０１を分割・参照・実体化のいずれかを決定する処理を行い、雛形仮想計算機ボリュームイメージ１２２において、共有できて参照としておいてよいファイルであるユーザ利用データ（ｓｈ）ファイル５０３および共有できずユーザ個別に書き換えが起こりうる部分であるユーザデータ（ｒｗ）ファイル５０２に分割して格納し、さらに分割したファイルに対応してアプリケーションデータモデル処理ロジック１４４ａの書き換えを行い、アプリケーションデータモデル処理ロジック(変更後)１４４ｂとして格納する。
【０１０２】
ＯＡ／ＡＰ検証分割部１３４ｂは、検証分割部１３４のＯＳ／ＡＰに関わる処理を実行する機能部であり、仮想計算機ホスティングソフトウェア実行部１４１によって、リリース版仮想計算機ボリュームイメージ１２１を実行して得られたトレースデータテーブル１４２およびＯＳ／ＡＰファイル評価基準テーブル１３２を元に、ＯＳ／ＡＰファイル５０４を分割・参照・実体化のいずれかを決定する処理を行い、雛形仮想計算機ボリュームイメージ１２２において、共有できて参照としておいてよいファイルであるＯＳ／ＡＰ（ｓｈ）ファイル５０６および共有できずユーザ個別に書き換えが起こりうる部分であるＯＳ／ＡＰ（ｒｗ）ファイル５０５に分離して格納する。本処理により作成された雛形仮想計算機ボリュームイメージ１２２をさらにユーザ毎にカスタマイズすることでユーザへのカスタマイズ性を維持した提供と、重複排除によるストレージの効率的な利用を実現する。
【０１０３】
以下、本実施形態における計算機システム１の処理について詳細に説明する。
【０１０４】
図９は、本発明の一実施形態に係るトレースデータによる検証分割処理のフローチャートである。
【０１０５】
まず、管理コンソール１５１によって検証分割部１３４の処理が開始されると、トレースデータテーブル１４２のトレースデータによる検証分割処理（ステップ９００）が開始される。次に、検証分割部１３４は、トレースデータテーブル１４２のトレースデータの読み込みとパース処理（解析）を行い、ファイル毎にパース処理の結果をまとめる（ステップ９０１）。
【０１０６】
次いで、検証分割部１３４は、トレースデータのレコードについて、ＯＳ／ＡＰファイル評価基準テーブル１３２の各レコードとの照合を行う、すなわち、トレースデータのレコードに格納されているファイルが、評価基準を満たすＯＳ／ＡＰファイル評価基準テーブル１３２のレコードを検出する（ステップ９０２）。次いで、検証分割部１３４は、評価基準を満たすレコードの処理フィールド３０３が「参照」であるか否かを判定する（ステップ９０３）。
【０１０７】
この結果、処理フィールド３０３が参照であると判定した場合（ステップ９０３：Ｙｅｓ）には、検証分割部１３４は、対応するファイルのデータ量が所定の基準値より小さいかを判定するとともに、対応するファイルに対するアクセス頻度が所定の頻度より大きいかを判定し（ステップ９０５）、データ量が所定の基準値より小さいと判定したか、又はアクセス頻度が所定の頻度より大きいと判定した場合には、マッピングテーブル１２９の対応するファイルのレコードにおける区分フィールド１６０４に実体とマーキングする（ステップ９０７）一方、データ量が所定の基準値より小さくなく、且つアクセス頻度が所定の頻度より大きくないと判定した場合には、マッピングテーブル１２９の対応するファイルのレコードにおける区分フィールド１６０４に参照とマーキングする（ステップ９０９）。
【０１０８】
一方、ステップ９０３で、処理フィールド３０３が参照でないと判定した場合（ステップ９０３：Ｎｏ）には、検証分割部１３４は、対応するファイルが、局所的なＷｒｉｔｅ（ライト）アクセスされているか、ＯＳのユーザデータであるか、アプリケーションデータであるかを判定する（ステップ９０４）。ここで、局所的なＷｒｉｔｅ（ライト）アクセスされているか、ＯＳのユーザデータであるか、アプリケーションデータであるかも評価基準の一例である。
【０１０９】
この結果、ファイルが、局所的なＷｒｉｔｅ（ライト）アクセスされているか、ＯＳのユーザデータであるか、アプリケーションデータであるかのいずれかに該当すると判定した場合には、検証分割部１３４は、ファイルを分割して、分割したファイル（実体）を雛形仮想計算機ディスクイメージ１２２に格納し、更に、マッピングテーブル１２９に分割したファイルを登録するとともに、トレースデータテーブル１４２における分割元のファイルに対応するレコードを、分割した後のファイルのそれぞれに対応するレコードに変更し（ステップ９０６）、ステップ９０２からの処理を実行する。
【０１１０】
一方、ファイルが、局所的なＷｒｉｔｅ（ライト）アクセスされているか、ＯＳのユーザデータであるか、アプリケーションデータであるかのいずれにも該当しないと判定した場合（ステップ９０４：Ｎｏ）には、マッピングテーブル１２９の対応するファイルのレコードにおける区分フィールド１６０４に実体とマーキングする（ステップ９０７）。
【０１１１】
ステップ９０７又はステップ９０９において、マッピングテーブル１２９へマーキングした後には、検証分割部１３４は、トレースデータテーブル１４２のすべてのエントリの処理を終了したか否かを判定し（ステップ９０８）、終了していない場合には、ステップ９０２からの処理を実行する一方、すべてのエントリの処理を終了した場合には、当該検証分割処理を終了する（ステップ９１０）。
【０１１２】
ここで、このトレースデータによる検証分割処理において、例えば、ＯＳ／ＡＰファイル評価基準テーブル１３２には、図３に示すレコード３１１、３１２、３１３、３１４が格納され、トレースデータテーブル１４２には、図１７に示すレコード１７１１〜１７１３が格納されている場合を例にとって説明する。検証分割部１３４は、トレースデータテーブル１４２のレコード１７１１〜１７１３について、ＯＳ／ＡＰファイル評価基準テーブル１３２のレコード３１１〜３１４との照合を行う（ステップ９０２）。トレースデータテーブル１４２のレコード１７１１についてまず照合を行うと、ユーザファイルのアクセス種別がＲｅａｄであることより、レコード３１２に該当し、処理フィールド３０３が「参照」であることを判定し（ステップ９０３）、データ量およびアクセス頻度の判定を行う（ステップ９０５）。ここで、レコード１７１１のアクセス頻度が基準値以下であると判定されたとすると、検証分割部１３４はマッピングテーブル１２９のレコード１６１１に示すように、区分フィールド１６０４を参照とし（ステップ９０９）、次に、トレースデータテーブル１４２のすべてのエントリの処理が終了したかを判定し(ステップ９０８)、まだ、レコード１７１２、１７１３が残っているので、処理を続行する。
【０１１３】
レコード１７１２についても、ステップ９０２、９０３で照合を行い、レコード１７１２は、ＯＳ／ＡＰファイル評価基準テーブル１３２のレコード３１３に該当するため、局所的Ｗｒｉｔｅアクセス等の判定を行い（ステップ９０４）、該当すると判定されるので、ファイルを分割して、分割したファイル（実体）を雛形仮想計算機ディスクイメージ１２２に格納し、更に、マッピングテーブル１２９の分割元のファイルに対応するレコード１６１２を「分割元、無効」とし、新たなレコード１６１４、１６１５を「分割後、有効」として作成し更新し、これらのファイルについて、ステップ９０２からの処理を実行する（ステップ９０６）。このとき、「/home/root」のファイルをCC00-CC0Aに該当するアドレスの部分のファイルと、CC0A-DD00に該当するアドレスの部分のファイルとの２つに分割して、それぞれを「/home/root1」、「/home/root2」とし、それぞれのファイルについてステップ９０２からの処理を実施することとなる。
【０１１４】
これにより、検証分割部１３４は、「/home/root1」のファイルについては、ＯＳ／ＡＰファイル評価基準テーブル１３２のレコード３１３に該当するため実体化するとマーキングし（ステップ９０７）、「/home/root2」のファイルについては、ＯＳ／ＡＰファイル評価基準テーブル１３２のレコード３１１に該当するため参照としてマーキングする（ステップ９０７）。レコード１７１３についても、検証分割部１３４は、ステップ９０２の処理を実行し、ＯＳ／ＡＰファイル評価基準テーブル１３２のレコード３１２に該当し、ステップ９０５の条件に合致すると判定されるので、マッピング１２９のレコード１６１３の区分フィールド１６０４を実体として更新する（ステップ９０７）。これによってトレースデータテーブル１４２中の全レコード１７１１〜１７１３の処理が終了したと判定され（ステップ９０８）、トレースデータによる検証分割処理を終了する（ステップ９１０）。
【０１１５】
図１０は、本発明の一実施形態に係るユーザデータによる検証分割処理のフローチャートである。
【０１１６】
まず、管理コンソール１５１によって検証分割部１３４の処理が開始されると、アプリケーションデータモデル処理ロジックによる検証分割処理（ステップ１０００）が開始される。次に、検証分割部１３４は、アプリケーションデータモデル処理ロジック１４４ａの読み込みおよびパース処理を実施を行い、ファイル毎にパース処理の結果をまとめる（ステップ１００１）。
【０１１７】
次いで、検証分割部１３４は、アプリケーションデータモデル処理ロジックについて、ユーザデータ評価基準テーブル１３３の各レコードとの照合を行う、すなわち、アプリケーションデータモデル処理ロジックに格納されているファイルが、評価基準を満たすユーザデータ評価基準テーブル１３３のレコードを検出する（ステップ１００２）。次いで、検証分割部１３４は、評価基準を満たすレコードの処理フィールド４０３が「参照」であるか否かを判定する（ステップ１００３）。
【０１１８】
この結果、処理フィールド４０３が参照であると判定した場合（ステップ１００３：ＹＥＳ）には、検証分割部１３４は、対応するファイルのデータ量が所定の基準値より小さいか、及びアクセス頻度が所定の基準値より大きいかを判定し（ステップ１００７）、データ量が所定の基準値より小さいか、又はアクセス頻度が所定の基準値より大きいと判定した場合（ステップ１００７：Ｙｅｓ）には、マッピングテーブル１２９の対応するファイルのレコードにおける区分フィールド１６０４に実体とマーキングする（ステップ１００９）一方、データ量が所定の基準値より小さくなく、且つアクセス頻度が所定の頻度より大きくないと判定した場合には、マッピングテーブル１２９の対応するファイルのレコードにおける区分フィールド１６０４に参照とマーキングする（ステップ１００８）。
【０１１９】
一方、ステップ１００３で、処理フィールド４０３が参照でないと判定した場合（ステップ１００３：Ｎｏ）には、検証分割部１３４は、対応するファイル中のデータフィールドに実体と参照が混在しているか否か、フィールド局所性を有しているか否かを判定する（ステップ１００５）。この結果、対応するファイル中のデータフィールドに実体と参照が混在しているか、フィールド局所性を有しているかのいずれかに該当すると判定した場合には、検証分割部１３４は、ファイルやテーブルが分割可能であるか否かを判定し（ステップ１００６）、分割可能であれば、ファイルを分割し、分割したファイル（実体）を雛形仮想計算機ディスクイメージ１２２に格納し、更に、マッピングテーブル１２９に分割したファイルを登録するとともに、トレースデータテーブル１４２における分割元のファイルに対応するレコードを、分割した後のファイルのそれぞれに対応するレコードに変更し（ステップＳ１００４）、ステップ１００２からの処理を実行する。
【０１２０】
一方、ファイルが、対応するファイル中のデータフィールドに実体と参照が混在しているか、フィールド局所性を有しているかのいずれのいずれにも該当しないと判定した場合（ステップ１００４：Ｎｏ）、又は、ファイルやテーブルが分割可能でないと判定した場合（ステップ１００６：Ｎｏ）には、検証分割部１３４は、マッピングテーブル１２９の対応するファイルのレコードにおける区分フィールド１６０４に実体とマーキングする（ステップ１００９）。
【０１２１】
ステップ１００８又はステップ１００９において、マッピングテーブル１２９へマーキングした後には、検証分割部１３４は、アプリケーションデータモデル処理ロジック１４４ａのすべてのエントリの処理を終了したか否かを判定し（ステップ１０１０）、終了していない場合には、ステップ１００２からの処理を実行する一方、すべてのエントリの処理を終了した場合には、当該検証分割処理を終了する（ステップ１０１１）。
【０１２２】
ここで、このユーザデータによる検証分割処理において、例えば、ユーザデータ評価基準テーブル１３３には、図４に示すレコード４１５〜４１８が格納され、アプリケーションデータモデル処理ロジック１４４ａには、図６乃至８に示すアプリケーション設定（レコード）６０１と、アプリケーションデータ格納方法（レコード）７０１と、テーブルに対するアプリケーションデータロジック（レコード）８５１とが格納されている場合を例にとって説明する。
【０１２３】
検証分割部１３４は、レコード６０１と、ファイル６１１について評価基準と照合すると（ステップ１００２）、ファイル６１１の部分６１１ａがレコード４１７に該当すると判定し（ステップ１００５）、レコード６０１が分割可能であるかの判定を行う（ステップ１００６）。このとき、レコード６０１を利用するアプリケーション側の設定で分離できると判定すると、検証分割部１３４は、ユーザファイルをファイル６１２ａ、６１２ｂに分割し、分割したファイル（実体）を雛形仮想計算機ディスクイメージ１２２に格納し、そのファイルを参照するレコード６０１を書き換えてレコード６０２とする（ステップ１００４）。
【０１２４】
次いで、検証分割部１３４は、分割後のそれぞれのファイル６１２ａ、６１２ｂについてステップ１００２に戻って照合を行い、ファイル６１２ａについては「実体」としてマーキングし（ステップ１００９）、ファイル６１２ｂについては、「参照」としてマーキングし（ステップ１００８）、マッピングテーブル１２９において、レコード１６１７を更新し、レコード１６１８、１６１９を追加する。また、検証分割部１３４は、レコード６０２について、アプリケーションデータモデル処理ロジック（変更後）１４４ｂとして出力する。次に、残りのレコードがあるため（ステップ１０１０）、検証分割部１３４は、レコード７０１およびファイル７１１を処理する。検証分割部１３４は、レコード７０１とファイル７１１について評価基準と照合し（ステップ１００２）、領域７２１がレコード４１７に該当すると判定し（ステップ１００５）、レコード７０１が分割可能であるかの判定を行う（ステップ１００６）。
【０１２５】
このとき、検証分割部１３４は、領域間で表跨りなどはなくきれいに分かれているため、分離可能であると判定し、ユーザファイル７１１をファイル７１２、７１３に分割して雛形仮想計算機ディスクイメージ１２２に格納し、ファイル７１１を参照するレコード７０１を書き換えて、ファイル７１２および７１３を参照するためのレコード７０２を生成する（ステップ１００４）。
【０１２６】
次に、検証分割部１３４は、生成したファイル７１２、７１３についてステップ１００２に戻って評価を行い、ファイル７１２については「実体」としてマーキングし（ステップ１００９）、ファイル７１３については「参照」としてマーキングし（ステップ１００８）、マッピングテーブル１２９において、レコード１６２０を更新し、レコード１６２１、レコード１６２２を追加する。また、検証分割部１３４は、レコード７０２について、アプリケーションデータモデル処理ロジック（変更後）１４４ｂとして出力する。
【０１２７】
次に、検証分割部１３４は、レコード８５１およびデータモデル８１０を持つ表を処理対象として、評価基準との照合を行う（ステップ１００２）。データモデル８１０のフィールド＃１と＃２であるレコード８１１、およびレコード８１２に、レコード４１７およびレコード４１８に該当するため、検証分割部１３４は、レコード８５１の処理内容を参照してテーブルが分割可能であることを判定し（ステップ１００６）、ステップ１００４にてデータモデル８１０を、データモデル８２０およびデータモデル８３０に分割し、分割したデータモデル８２０、８３０を分割前のデータモデル８１０と同様に処理できるようにレコード８５１を、レコード８５２に示すように変更する。
【０１２８】
この後、データモデル８２０および８３０をステップ１００２に戻って照合を行い、データモデル８２０については「実体」としてマーキングし（ステップ１００９）、データモデル８３０については「参照」としてマーキングし（ステップ１００８）、マッピングテーブル１２９において、レコード１６２３を更新し、レコード１６２４、１６２５を追加する。また、検証分割部１３４は、レコード８５２について、アプリケーションデータモデル処理ロジック（変更後）１４４ｂとして出力する。そして全ファイルリスト、ユーザデータモデルロジックのデータを処理し終えたので、ユーザデータによる検証分割処理を終了する（ステップ１０１１）。
【０１２９】
なお、トレースデータによる検証分割処理およびユーザデータによる検証分割処理については、いずれの処理から実行するようにしてもよい。
【０１３０】
図１３は、本発明の一実施形態に係るファイルリストによる検証分割処理のフローチャートである。この処理は、例えば、図９、図１０に示す検証分割処理の後に実行される。
【０１３１】
まず、管理コンソール１５１によって検証分割部１３４の処理が開始されると、検証分割部１３４は、ファイルリストテーブル１３５からファイルリストを読み込む（ステップ１３０１）。次に、検証分割部１３４は、ファイルリスト中の処理していないファイルを検知する（ステップ１３０２）。処理していないファイルは、通常の仮想計算機ボリュームイメージの利用において、アクセスが発生していない、または、発生する可能性が少ないファイルであることを意味しているので、検証分割部１３４は、マッピングテーブル１２９の対応するファイルのレコードにおける区分フィールド１６０４に参照とマーキングする（ステップ１３０３）。なお、処理していないファイルが他にもある場合には、ステップ１３０３を繰り返し実行する。なお、マッピングテーブル１２９のすべてのファイルに対応するレコードに対して、初期状態において「参照」を記録しておき、その後、図９および図１０に示す検証分割処理を実行して、分割や実体とする必要があるファイルに対応するレコードのみにその旨をマーキングするようにしてもよく、この場合には、図１３に示す検証分割処理を実行する必要がない。
【０１３２】
ここで、このファイルリストによる検証分割処理において、例えば、ファイルリストテーブル１３５には、図１８に示すレコード１８１１〜１８１３が格納され、レコード１８１３に対応するファイルについては、図１０の検証分割処理において処理されている場合を例にとって説明する。
【０１３３】
検証分割部１３４は、ファイルリストテーブル１３５からファイルリストを読み込み（ステップ１３０１）、処理していないファイルを検知する（ステップ１３０２）。ここで、レコード１８１１、１８１２が、今まで処理されていないレコードであると検知される。これらファイル１８１１，１８１２は、アクセスの発生していない、または、発生する可能性の少ないファイルであるため、検証分割部１３４は、マッピングテーブル１２９のレコード１６２６，１６２７の区分フィールド１６０４を「参照」としてマーキングする（ステップ１３０３）。この処理により、処理がされておらず、トレースデータが出力されていないファイルの状態を適切に決定することができる。
【０１３４】
上記した図９、１０、１３に示す検証分割処理により、分割可能であると判断されたファイルは、複数のファイルに分割されて雛形仮想計算機ディスクイメージ１２２に格納され、マッピングテーブル１２９の各レコードには、対応するファイルを、実体、参照のいずれとするかが格納されることとなる。
【０１３５】
図９、１１、１３に示す検証分割処理が実行された後に、仮想計算機ストレージ管理・構成変更プログラム実行部１３１は、各ユーザに提供するためのユーザ個別仮想計算機ボリュームイメージ１２３を、雛形仮想計算機ボリュームイメージ１２２と、マッピングテーブル１２９とに基づいて作成する。すなわち、仮想計算機ストレージ管理・構成変更プログラム実行部１３１は、マッピングテーブル１２９の各レコードを参照し、対応するファイルが参照である場合には、ユーザ個別仮想計算機ボリュームイメージ１２３においては、当該ファイルを雛形計算機ボリュームイメージ１２２を参照するファイルとし、対応するファイルが実体である場合には、雛形計算機ボリュームイメージ１２２からファイルの実体を取り出して仮想計算機ボリュームイメージ１２３に実体を格納する。この後、仮想計算機ホスティングプログラム実行部１４１が、仮想計算機ボリュームイメージ１２３を実行することで、仮想計算機を構成し、ユーザへのサービスを提供することができるようになる。
【０１３６】
このように、本実施形態による計算機システムにおいては、元は１つであるファイルを複数のファイルに分割して、少なくとも１つのファイルを仮想計算機ボリュームイメージ１２３において雛形計算機ボリュームイメージ１２２を参照するようにすることができる、すなわち、ＳＩ化できるので、複数の仮想計算機ボリュームイメージ１２３を用意する場合において、ストレージ装置２２０における記憶効率を向上することができる。
【０１３７】
次に、ユーザ個別仮想計算機ボリュームイメージ１２３を各ユーザに提供した後に、ＯＳ、アプリケーション、ユーザデータ等のファイルを更新する必要が生じた場合において、ファイルを更新処理について説明する。
【０１３８】
図１１は、本発明の一実施形態に係る共有部分全体更新処理のフローチャートである。共有部分全体更新処理は、更新するファイルが全ユーザ間で共通であって、雛形仮想計算機ボリュームイメージ１２２上のみを更新すれば済むファイルを更新する更新処理である。
【０１３９】
まず、計算機システム管理者による管理コンソール１５１の操作により結合変更部１３６が起動されると、更新処理が開始される（ステップ１１００）。結合変更部１３６は、雛形仮想計算機ボリュームイメージ１２２のレプリカであるレプリカ仮想計算機ボリュームイメージ１２４を作成する（ステップ１１０１）。レプリカ仮想計算機ボリュームイメージ１２４を作成後、結合変更部１３６は、更新ファイルリストテーブル１４６のレコード中の全ユーザ間で共通であって置き換えても問題のないファイルに対応する更新ファイルを読み込み、レプリカ仮想計算機ボリュームイメージ１２４上の対応するファイルと置換する（ステップ１１０２）。例えば、図１９においては、区分がＯＳであるレコード１９１１に対応するファイルが、全ユーザ間で共通であって置き換えても問題のないファイルである。
【０１４０】
次いで、結合変更部１３６は、ファイルを置き換えた後、ユーザ個別仮想計算機ボリュームイメージ１２３における各ファイルの参照先として、レプリカ仮想計算機ボリュームイメージ１２４を参照するようにマッピングテーブル１２９を更新し（ステップ１１０４）、共有部分全体更新処理を終了する（ステップ１１０５）。これにより、レプリカ仮想計算機ボリュームイメージ１２４が新たな雛形仮想計算機ボリュームイメージ１２２となる。
【０１４１】
図１２は、本発明の一実施形態に係る共有部分個別更新処理のフローチャートである。共有部分個別更新処理は、ユーザ間で異なるデータのファイルではあるが、ファイル自体が分割されていないファイルを更新する更新処理である。
【０１４２】
まず、計算機システム管理者による管理コンソール１５１の操作により結合変更部１３６が起動されると、更新処理が開始される（ステップ１２００）。結合変更部１３６は、ユーザ個別仮想計算機ボリュームイメージ１２３のレプリカであるレプリカ仮想計算機ボリュームイメージ１２４を作成する（ステップ１２０１）。レプリカ計算機ボリュームイメージ１２４を作成後、結合変更部１３６は、更新ファイルリストテーブル１４６のレコード中のユーザ間で異なるデータのファイルではあるが、ファイル自体が分割されていないファイルに対応する更新ファイルを読み込み、レプリカ仮想計算機ボリュームイメージ１２４上のファイルが参照であれば、ファイルを実体化する、すなわち、参照先である雛形仮想計算機ボリュームイメージ１２２から対応するファイルの実体を取得する。例えば、図１９においては、区分がユーザであるレコード１９１２に対応するファイルが、ユーザ間で異なるデータではあるが、分割されていないファイルである。更に、結合変更部１３６は、マッピングテーブル１２９の対応するファイルのレコードの区分フィールド１６０４を実体に更新する（ステップ１２０２）。次いで、レプリカ仮想計算機ボリュームイメージ１２４を、仮想計算機ホスティングプログラム実行部１４１によりマウントして、レプリカ仮想計算機ボリュームイメージ１２４の実体化された更新対象のファイルを更新ファイルにより更新する（ステップ１２０３）。なお、レコード１９１２に対応するファイルは、実体を持っているファイルであることがマッピングテーブル１２９のレコード１６１３よりわかるため、マッピングテーブル１２９はそのままとなる。置き換え後、仮想計算機ホスティングプログラム実行部１４１が、ユーザ個別にデプロイする仮想計算機ボリュームイメージとして、ユーザ個別仮想計算機ボリュームイメージ１２３とレプリカ仮想計算機ボリュームイメージ１２４とを置き換え（ステップ１２０４）、個別部分全体更新処理を終了する（ステップ１２０５）。
【０１４３】
図１４は、本発明の一実施形態に係る分割された個別部分更新処理のフローチャートである。個別部分更新処理は、更新対象のファイルが分割されたファイルである場合における更新処理である。
【０１４４】
まず、計算機システム管理者による管理コンソール１５１の操作により結合変更部１３６が起動されると、更新処理が開始される（ステップ１４００）。結合変更部１３６は、ユーザ個別仮想計算機ボリュームイメージ１２３のレプリカであるレプリカ仮想計算機ボリュームイメージ１２４を作成する（ステップ１４０１）。次いで、結合変更部１３６は、更新対象となる分割されたファイルを結合（マージ）するためのマージ処理（図１５参照）を実行し（ステップ１４０２）、結合されたファイルに対して更新処理を実行する（ステップ１４０３）。更新処理後、検証分割部１３４が図９及び図１０に示す検証分割処理を実行し、分割可能なファイルがあれば分割する処理を実行する（ステップ１４０４）。なお、ステップ１４０４においては、リリース版計算機ボリュームイメージ１２１と雛形仮想計算機ボリュームイメージ１２２ではなく、雛形仮想計算機ボリュームイメージ１２２とユーザ個別仮想計算機ボリュームイメージ１２３とが入力の対象となる。検証分割処理実行後、結合変更部１３６は、問題がなければユーザ個別仮想計算機ボリュームイメージ１２３をレプリカ仮想計算機ボリュームイメージ１２４と置換し（ステップ１４０５）、処理を終了する。この後、仮想計算機ホスティングプログラム実行部１４１は、置換後のユーザ個別仮想計算機ボリュームイメージ１２３を実行することで、ユーザへのサービスを提供する。この個別部分更新処理により、分割されているファイルの分割元のファイルを更新対象とする場合であっても、支障なくファイルの更新を行うことができる。
【０１４５】
図１５は、本発明の一実施形態に係るマージ処理のフローチャートである。
【０１４６】
結合変更部１３６は、更新ファイルリストテーブル１４６の更新ファイルリストと、レプリカ仮想計算機ボリュームイメージ１２４を読み込む（ステップ１５０１）。次に、結合変更部１３６は、アプリケーションデータモデル処理ロジック１４４ａ、１４４ｂおよびマッピングテーブル１２９を読み込み、更新ファイルリスト内の更新対象ファイルの中で、分割された上で、参照するように設定されているファイルを検知する（ステップ１５０２）。例えば、更新ファイルリストテーブル１４６のレコード１９１３に対応するファイルが、分割された上で、参照するように設定されているファイルである。結合変更部１３６は、検知したファイルについて、マッピングテーブル１２９とアプリケーションデータモデル処理ロジック１４４ａ、１４４ｂを元に分割を解消し、ファイルの結合を行う（ステップ１５０３）。例えば、レコード１９１３に対応するファイルの場合には、マッピングテーブル１２９のレコード１６２４、１６２５に対応するファイルを結合して、レコード１６２３に対応するファイルとして実体化し、レプリカ仮想計算機ボリュームイメージ１２４上に反映する。次いで、結合変更部１３６は、結合した結果に基づいてマッピングテーブル１２９を更新し（ステップ１５０４）、処理を終了する。このマージ処理により、分割されたファイルを分割されていない更新対象のファイルへと結合することができる。
【０１４７】
上記した図１１に示す共有部分全体更新処理、図１２に示す共有部分個別更新処理、図１４に示す個別部分更新処理を実行する際には、例えば、計算機システム管理者が、管理コンソール１５１により更新ファイルと、実行する処理とを指定することにより、管理コンソール１５１が指定に応じた実行する処理を実行させるようにしてもよく、また、更新ファイルを登録することにより、仮想計算機ストレージ管理・構成変更プログラム実行部１３１が更新ファイルに基づいて、いずれの更新処理を実行すればよいかを判定して実行するようにしてもよい。
【０１４８】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【０１４９】
例えば、上記実施形態では、仮想計算機を構成するためのファイルの状態（実体、分割、参照等）を決定する評価基準を評価基準テーブル１３２、１３３に格納するとともに、プログラムに評価基準及びその判断手順を記憶させておくことにより、ファイルの状態を評価基準に基づいて決定するようにしていたが、テーブルのみに評価基準を格納させ、テーブルを用いてファイルの状態を決定するようにしてもよく、プログラムにすべての評価基準の判断手順を記憶させておいて、それを実行することにより、ファイルの状態を決定するようにしてもよい。
【０１５０】
また、上記実施形態では、参照するように決定されたファイルを単位として所定の領域にあるファイルの実体を参照するようにしていたが、本発明はこれに限られず、参照するように決定された複数のファイルを含むディスクイメージを単位として、対応する複数のファイルの実体を格納したディスクイメージを参照するようにしてもよい。また、上記実施形態では、１つのファイルを分割する際に、実体として格納する１つのファイルと、実体を参照する１つのファイルとに分割するようにしていたが、本発明はこれに限られず、実体として格納するファイルを複数のファイルとしてもよく、また、実体を参照するファイルを複数のファイルとしてもよい。また、上記実施形態では、アプリケーション（プログラム）に用いられるファイルについて、分割し、分割後のファイルに対応するように取扱情報を変更するようにしていたが、本発明はこれに限られず、例えば、ＯＳ（プログラム）に利用される、カーネルに関わる部分以外のファイルについても、分割し、分割後のファイルに対応するように取扱情報を変更するようにしてもよく、要は、種々のプログラムに用いられるファイルに対して、分割し、取扱情報を変更するようにすることができる。
【図面の簡単な説明】
【０１５１】
【図１】本発明の一実施形態に係る計算機システムの機能構成図である。
【図２】本発明の一実施形態に係る計算機システムのハードウエア構成図である。
【図３】本発明の一実施形態に係るＯＳ／ＡＰファイル評価基準テーブルの一例を示す図である。
【図４】本発明の一実施形態に係るユーザデータ評価基準テーブルの一例を示す図である。
【図５】本発明の一実施形態に係るファイルの検証分割処理の概略を説明する図である。
【図６】本発明の一実施形態に係るアプリケーションデータモデル処理ロジック及びその分割を説明する第１の図である。
【図７】本発明の一実施形態に係るアプリケーションデータモデル処理ロジック及びその分割を説明する第２の図である。
【図８】本発明の一実施形態に係るアプリケーションデータモデル処理ロジック及びその分割を説明する第３の図である。
【図９】本発明の一実施形態に係るトレースデータによる検証分割処理のフローチャートである。
【図１０】本発明の一実施形態に係るユーザデータによる検証分割処理のフローチャートである。
【図１１】本発明の一実施形態に係る共有部分全体更新処理のフローチャートである。
【図１２】本発明の一実施形態に係る共有部分個別更新処理のフローチャートである。
【図１３】本発明の一実施形態に係るファイルリストによる検証分割処理のフローチャートである。
【図１４】本発明の一実施形態に係る分割された個別部分更新処理のフローチャートである。
【図１５】本発明の一実施形態に係るマージ処理のフローチャートである。
【図１６】本発明の一実施形態に係るマッピングテーブルの一例を示す図である。
【図１７】本発明の一実施形態に係るトレースデータテーブルの一例を示す図である。
【図１８】本発明の一実施形態に係るファイルリストテーブルの一例を示す図である。
【図１９】本発明の一実施形態に係る更新ファイルリストテーブルの一例を示す図である。
【符号の説明】
【０１５２】
１  計算機システム、１３０  仮想計算機ストレージ管理・構成変更プログラム、１３１  仮想計算機ストレージ管理・構成変更プログラム実行部、１３２  ＯＳ／ＡＰファイル評価基準テーブル、１３３  ユーザデータ評価基準テーブル、１３４  検証分割部、１３５  ファイルリストテーブル、１３６  結合変更部、１４０  仮想計算機ホスティングプログラム、１４１  仮想計算機プログラム実行部、１４２  トレースデータテーブル、１４４ａ  アプリケーションデータモデル処理ロジック、１４４ｂ  アプリケーションデータモデル処理ロジック（変更後）、１４６  更新ファイルリストテーブル、１２９  マッピングテーブル、２２０  ストレージ装置。
【図１】
0005248912.tif 000002
【図２】
0005248912.tif 000003
【図３】
0005248912.tif 000004
【図４】
0005248912.tif 000005
【図５】
0005248912.tif 000006
【図６】
0005248912.tif 000007
【図７】
0005248912.tif 000008
【図８】
0005248912.tif 000009
【図９】
0005248912.tif 000010
【図１０】
0005248912.tif 000011
【図１１】
0005248912.tif 000012
【図１２】
0005248912.tif 000013
【図１３】
0005248912.tif 000014
【図１４】
0005248912.tif 000015
【図１５】
0005248912.tif 000016
【図１６】
0005248912.tif 000017
【図１７】
0005248912.tif 000018
【図１８】
0005248912.tif 000019
【図１９】
0005248912.tif 000020