(57)【要約】      （修正有）【課題】メモリに格納されたユーザデータを保護する方法を提供する。【解決手段】ユーザデータ保護方法であって、管理サーバには、仮想サーバに割り当てられているメモリのメモリアドレスと仮想化機構に割り当てられているメモリのメモリアドレスとの対応関係が通常時とは異なるアドレス置換えテーブルを有し、イベントが発生、これを検知した場合に、管理サーバは、イベントが発生した仮想サーバを特定し、アドレス置換えテーブルを特定された仮想サーバを備える物理サーバの仮想化機構に送付し、アドレス置換えテーブルに基づいて、仮想サーバのメモリアドレスと仮想化機構のメモリアドレスとの対応関係を変更する。【選択図】図１
2009230596.tif 000002
【特許請求の範囲】
【請求項１】
管理サーバと、少なくとも一つの仮想サーバと仮想化機構とを備える物理サーバとを有するサーバ装置のユーザデータ保護方法であって、
前記管理サーバには、前記仮想サーバに割り当てられているメモリのメモリアドレスと前記仮想化機構に割り当てられているメモリのメモリアドレスとは対応関係が異なるアドレス置換えテーブルを有し、
前記仮想サーバでイベントが発生した場合に、仮想サーバから仮想サーバを特定する仮想サーバ識別子情報を管理サーバに送付するステップと、
前記管理サーバは、前記イベントを検知するステップと、
前記イベントを検知した場合に、前記管理サーバは、前記仮想サーバ識別子情報により前記イベントが発生した仮想サーバを特定するステップと、
特定された場合は、前記アドレス置換えテーブルを特定された仮想サーバを備える物理サーバの前記仮想化機構に送付するステップと、
前記アドレス置換えテーブルに基づいて、前記特定された仮想サーバのメモリアドレスと前記仮想化機構のメモリアドレスとの対応関係を変更するステップとを有することを特徴とするサーバ装置のユーザデータ保護方法。
【請求項２】
請求項１において
前記アドレス置換えテーブルは、前記仮想サーバのメモリアドレスと前記仮想化機構の一つのメモリアドレスとを対応付けたテーブル、前記仮想サーバのメモリアドレスを前記仮想化機構が未使用のメモリアドレスに変更するように対応付けたテーブル、前記仮想サーバのメモリアドレスを存在しないメモリアドレスに変更するように対応付けたテーブル、又は、前記仮想サーバのメモリアドレスと前記仮想化機構のメモリアドレスとの対応関係を乱数でランダムに変更させて対応付けたテーブルであることを特徴とするサーバ装置のユーザデータ保護方法。
【請求項３】
請求項１において、
前記変更後の仮想化機構のメモリアドレスに対応する情報は、０、NULL、又は、特定の文字列であることを特徴とするサーバ装置のユーザデータ保護方法。
【請求項４】
請求項１において、
前記イベントは障害であることを特徴とするサーバ装置のユーザデータ保護方法。
【請求項５】
請求項１において、
前記管理サーバは、ユーザ認証部を有し、
前記ユーザ認証部は、ユーザからメモリ参照要求があった場合に権限を持ったユーザであるかを判断し、
権限を持ったユーザである場合には、前記アドレス置換えテーブルの参照及び変更を可能とすることを特徴とするサーバ装置のユーザデータ保護方法。
【請求項６】
請求項１において、
前記仮想サーバのメモリアドレスと前記仮想化機構のメモリアドレスとの対応関係を変更とは、
仮想化機構のメモリの論理アドレスと、仮想化機構のメモリの物理アドレスの対応関係を変更することを特徴とするサーバ装置のユーザデータ保護方法。
【請求項７】
請求項１において、
前記イベントとは、前記仮想サーバの一時停止、又は、前記仮想サーバの異なる物理サーバへの移動であることを特徴とするサーバ装置のユーザデータ保護方法。
【請求項８】
請求項７において、
前記物理サーバに対応するディスクボリュームに蓄積されたデータを暗号化することを特徴とするサーバ装置のユーザデータ保護方法。
【請求項９】
請求項１において、
前記管理サーバは前記仮想サーバ毎に前記メモリの用途を区別する情報を保持し、前記用途に基づいて、前記仮想サーバのメモリアドレスと前記仮想化機構のメモリアドレスとの対応関係を変更するかどうかを判断することを特徴とするサーバ装置のユーザデータ保護方法。
【請求項１０】
請求項９において、
前記メモリの用途はそれぞれ優先度が設けられ、
前記管理サーバは、前記仮想サーバのダンプ取得時に前記優先度に応じて前記仮想化機構に対して前記仮想サーバのＣＰＵの割当量を変更することを特徴とするユーザデータ保護方法。
【請求項１１】
請求項１において、
前記仮想サーバに割り当てられているメモリはインメモリＤＢの常駐領域であることを特徴とするユーザデータ保護方法。
【請求項１２】
管理サーバと、少なくとも一つの仮想サーバと仮想化機構とを備える物理サーバとを有するサーバ装置であって、
前記管理サーバには、前記仮想サーバに割り当てられているメモリのメモリアドレスと前記仮想化機構に割り当てられているメモリのメモリアドレスとは対応関係が通常時とは異なるアドレス置換えテーブルを有し、
イベントが発生した場合に、仮想サーバから仮想サーバを特定する仮想サーバ識別子情報を管理サーバに送付し、
前記管理サーバは前記イベントを検知し、
前記イベントを検知した場合に、前記管理サーバは、前記仮想サーバ識別子情報により前記イベントが発生した仮想サーバを特定し、
特定された場合は、前記アドレス置換えテーブルを特定された仮想サーバを備える物理サーバの前記仮想化機構に送付し、
前記アドレス置換えテーブルに基づいて、前記仮想サーバのメモリアドレスと前記仮想化機構のメモリアドレスとの対応関係を変更することを特徴とするサーバ装置。
【請求項１３】
請求項１２において
前記アドレス置換えテーブルは、前記仮想サーバのメモリアドレスと前記仮想化機構の一つのメモリアドレスとを対応付けたテーブル、前記仮想サーバのメモリアドレスを前記仮想化機構が未使用のメモリアドレスに変更するように対応付けたテーブル、前記仮想サーバのメモリアドレスを存在しないメモリアドレスに変更するように対応付けたテーブル、又は、前記仮想サーバのメモリアドレスと前記仮想化機構のメモリアドレスとの対応関係を乱数でランダムに変更させて対応付けたテーブルであることを特徴とするサーバ装置。
【請求項１４】
請求項１２において、
前記変更後の仮想化機構のメモリアドレスに対応する情報は、０、NULL、又は、特定の文字列であることを特徴とするサーバ装置。
【請求項１５】
コンピュータに、管理サーバと、少なくとも一つの仮想サーバと仮想化機構とを備える物理サーバとを有するサーバ装置を機能させるコンピュータプログラムであって、
前記管理サーバには、前記仮想サーバに割り当てられているメモリのメモリアドレスと前記仮想化機構に割り当てられているメモリのメモリアドレスとは対応関係が通常時とは異なるアドレス置換えテーブルを有し、
イベントが発生した場合に、仮想サーバから仮想サーバを特定する仮想サーバ識別子情報を管理サーバに送付するステップと、
前記管理サーバは前記イベントを検知するステップと、
前記イベントを検知した場合に、前記管理サーバは、前記仮想サーバ識別子情報により前記イベントが発生した仮想サーバを特定するステップと、
特定された場合は、前記アドレス置換えテーブルを特定された仮想サーバを備える物理サーバの前記仮想化機構に送付するステップと、
前記アドレス置換えテーブルに基づいて、前記仮想サーバのメモリアドレスと前記仮想化機構のメモリアドレスとの対応関係を変更するステップとをそれぞれ実行するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化機構上の仮想サーバのユーザデータを保護するための方法、サーバ装置及びコンピュータプログラムに関するものである。
【背景技術】
【０００２】
サーバ装置が備えるメモリ装置には、サーバ装置上で稼動するオペレーティング・システム（ＯＳ）、アプリケーションプログラム、ユーザデータなどがプログラム実行時に格納される。格納されている情報は主にオペレーティングシステムの情報が格納されるカーネル空間とアプリケーションプログラムやユーザデータが格納されるユーザ空間がある。
【０００３】
また、従来、引用文献１に記載のように、障害解析の情報などを目的としてメモリの情報をディスクへ書き出すメモリダンプが行われている。
【０００４】
【特許文献１】特開２００２−２０２９０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
昨今、メモリ装置の容量の伸びは大きく、多量のプログラムやデータがメモリ装置に格納できるようになってきている。しかし、一方でメモリ装置の大容量化はセキュリティに対する問題を表面化する要因になっている。例えば、従来は顧客情報データベースのような非常に多くの記憶領域が必要なプログラムは、データはディスクへ格納され必要な場合にのみメモリにロードされていたが、メモリ容量の増加により、データベースの情報全てがメモリに格納されるようになった。そのような状況において障害が発生し、障害解析目的でメモリダンプのようなメモリの内容をディスクに出力するプログラムを実行すると、大量のユーザデータをディスク等の外部記憶媒体に格納し、取得データをサポートセンタへネットワーク経由で転送したり、ディスクそのものの郵送を行う。そのため、ネットワーク経由での情報抜き取りや郵送トラブルによるディスクの紛失は、重大な情報漏洩に繋がってしまうという課題がある。
【０００６】
本発明の目的は、メモリに格納されたユーザデータを保護することである。
【課題を解決するための手段】
【０００７】
本発明の一つの特徴は、ユーザデータ保護方法であって、管理サーバには、仮想サーバに割り当てられているメモリのメモリアドレスと仮想化機構に割り当てられているメモリのメモリアドレスとは対応関係が通常時とは異なるアドレス置換えテーブルを有し、
イベントが発生した場合に、仮想サーバから仮想サーバを特定する仮想サーバ識別子情報を管理サーバに送付するステップと、管理サーバは前記イベントを検知するステップと、イベントを検知した場合に、管理サーバは、前記仮想サーバ識別子情報により前記イベントが発生した仮想サーバを特定するステップと、特定された場合は、前記アドレス置換えテーブルを特定された仮想サーバを備える物理サーバの前記仮想化機構に送付するステップと、アドレス置換えテーブルに基づいて、前記仮想サーバのメモリアドレスと仮想化機構のメモリアドレスとの対応関係を変更するステップとを有することを特徴とすることである。
【発明の効果】
【０００８】
本発明によれば、メモリに格納されたユーザデータのセキュリティを強化することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
【実施例１】
【００１０】
図１は、本発明が適用された計算機システムの一実施例における論理的なシステム構成を示すシステム構成図である。
【００１１】
本実施例の計算機システムは、ネットワーク１１５で接続された、物理サーバ１１２と管理サーバ１０１を有する。物理サーバ１１２は仮想化機構１１０（ハイパバイザ、仮想化プログラムでも実現可能である。本実施例では、仮想化機構として説明する。）と仮想サーバ１０９を有して構成されており、仮想化機構１１０ではメモリ管理部１１１を有する。管理サーバ１０１は、ユーザ情報管理部１０２と仮想化機構管理部１０３と物理サーバ管理テーブル１０４と仮想サーバ管理テーブル１０５とワークロード管理テーブル１０６とユーザ情報管理テーブル１０７とアドレス置き換えテーブル１０８とを有している。また、物理サーバ１１２は複数のディスクボリューム１１４からなるストレージ装置１１３を有している。ストレージ装置１１３は物理サーバ１１２の内蔵型でも、ファイバーチャネルなどを経由した外部装置でも良い。
【００１２】
管理サーバ１０１は、ユーザ又は管理者、仮想サーバ上のアプリケーションなどからメモリ内の保護が要求される情報（センシティブ）の保護要求を受取った後、仮想化機構１１０と連携し、保護が要求される情報が保存されているアドレスを特定し、その情報を保護するための置換えテーブルを作成する機能を有する。また、管理サーバ１０１は障害を検知する機能を有しており、障害検知後に事前作成したアドレス置換えテーブル１０８を、仮想化機構１１０に送付する。
【００１３】
ユーザ情報管理部１０２は、アプリケーション３０２からの情報保護要求の受付や受付後の保護すべきアドレスを特定するため、仮想化機構管理部１０３の呼び出し、アドレス置換えテーブル１０８の作成などの機能を有する。
【００１４】
物理サーバ管理テーブル１０４は、ＣＰＵやディスク情報、メモリ情報といった、物理サーバ１１２毎のリソース情報が格納される。
【００１５】
仮想サーバ管理テーブル１０５は、仮想サーバ１０９毎の割り当てリソース情報が格納される。
【００１６】
ワークロード管理テーブル１０６は、管理サーバ１０１が管理している仮想化機構１１０毎のＣＰＵの割り当て量や使用率情報を持っている。
【００１７】
ユーザ情報管理テーブル１０７は、仮想サーバ１０９毎のメモリ使用範囲やステータス情報が格納されている。
【００１８】
アドレス置換えテーブル１０８は、保護が要求される情報を置換えるための情報が格納されている。任意のタイミングでアドレス置換えテーブルに登録されているメモリ情報を仮想化機構マップテーブル３０７に置換えることで保護が要求される情報を守る事ができる。
【００１９】
仮想化機構管理部１０３は保護が要求される情報のメモリアドレスを特定するために、ユーザ情報管理部１０２から呼び出され、仮想化機構１１０を呼び出し、仮想化機構１１０が仮想化機構アドレスマップテーブル３０７を利用して保護が要求される情報のメモリアドレスを特定した結果を受け取り、ユーザ情報管理部１０２に特定したメモリアドレスを返す機能を有する。また仮想化機構管理部１０３は、障害が発生した際に障害を検知するユーザ情報管理部１０２から呼び出され、アドレス置換えテーブルの情報を仮想化機構アドレスマップテーブル３０７に上書きするために、仮想化機構１１０を呼び出す機能を有する。
【００２０】
本実施例では、アプリケーションが、保護が要求される情報の格納位置情報であるメモリアドレスを管理サーバ１０１へ伝達し、管理サーバ１０１と仮想化機構１１０が連携し格納位置情報からアドレス置換えテーブル１０８を作成する。
【００２１】
そして、イベントが発生した場合や任意のタイミングで、アドレス置換えテーブル１０８を仮想化機構１１０に転送し、メモリのアドレスをアドレス変換テーブルで書き変えることで、データ保護を実現する例を示す。なお、保護が要求される情報の格納位置情報保持とアドレス置換えテーブル１０８の作成は、ＯＳ及び仮想サーバ１０９にインストールされているＯＳ、仮想化機構１１０、サーバを構成するハードウェアでもよい。
【００２２】
図２は図１で示した構成の管理サーバ１０１を詳細化したものである。
【００２３】
管理サーバ１０１は、メモリ２０１とプロセッサ２０２とネットワークインターフェース２０３とディスクインターフェース２０４を有している。
【００２４】
管理サーバ１０１のメモリ２０１に割り当てられているユーザ情報管理部１０２は、ユーザ情報取得部２０５と障害検出部２０６とユーザ情報保護部２０７とユーザ認証部２０８が割り当てられている。仮想化機構管理部１０３は、アドレス置換え管理部２１０とメモリアドレス取得部２１２が割当てられている。
【００２５】
メモリ２０１に格納されたユーザ情報取得部２０５、障害検出部２０６、ユーザ情報保護部２０７、ユーザ認証部２０８、アドレス置換え管理部２１０、メモリアドレス取得部２１２など各種プログラムをプロセッサ２０２が実行することで、ユーザ情報取得処理１５０７、障害検出処理１２０６、ユーザ情報保護処理１５０９、ユーザ認証処理、アドレス置換え管理処理１２０４、メモリアドレス取得処理１５０８の各処理が行われる。ネットワークインターフェース２０３は、ネットワーク１１５に接続され保護が要求される情報の保護要求などが転送される。
【００２６】
ユーザ情報取得処理１５０７、障害検出処理１２０６、ユーザ情報保護処理１５０９、ユーザ認証処理、アドレス置換え管理処理１２０４、メモリアドレス取得処理１５０８の各処理は、各プログラムをプロセッサ２０２で実行することにより実現されるが、これらは、ユーザ情報取得部２０５、障害検出部２０６、ユーザ情報保護部２０７、ユーザ認証部２０８、アドレス置換え管理部２１０、メモリアドレス取得部２１２など、各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
【００２７】
なお、ユーザ認証部２０８では、ユーザからのメモリ参照要求時に参照する権限を持ったユーザであるかどうか判断し、参照する権限を持ったユーザである場合には、アドレス置換えテーブル１０８の参照及び変更を可能とすることができる。
【００２８】
図３は図１で示した構成の物理サーバ１１２を詳細化したものである。
【００２９】
物理サーバ１１２は、メモリ２０１とプロセッサ２０２とネットワークインターフェース２０３とディスクインターフェース２０４を有している。メモリ２０１内には、仮想サーバ１０９、仮想化機構１１０を有している。
【００３０】
仮想サーバ１０９には、ＯＳ３０１がインストールされ、仮想サーバ１０９毎に独立に動作することができる。仮想化機構１１０には、メモリ管理部１１１、アドレス変換部３０５、メモリ登録部３０６、が割り当てられている。仮想化機構１１０は、仮想サーバ１０９に対してメモリ２０１やプロセッサ２０２等のリソースを分割して割り当てる処理やメモリ管理、仮想サーバ１０９の実行スケジュールを制御する処理が行われる。
【００３１】
仮想サーバ１０９は、アプリケーション３０２とダンプ取得部３０４が備えられている。さらに、アプリケーション３０２はユーザ情報伝達部が備えられている。
【００３２】
アドレス変換部３０５は管理サーバ１０１などからアドレス変換の要求があった場合に、仮想化機構アドレスマップテーブル３０７を参照し、アドレスの変換を行い、その結果を管理サーバ１０１へ伝達する機能を有する。
【００３３】
メモリ登録部３０６は管理サーバ１０１などからメモリアドレス登録要求や置換え要求があった場合に、仮想化機構アドレスマップテーブル３０７の内容を登録、変更、削除する機能を有する。
【００３４】
ユーザ情報伝達部３０３は情報保護要求があった場合に、ＯＳアドレスマップテーブル３０７を参照し、保護すべきアドレスを管理サーバ１０１に伝達する機能を有する。
【００３５】
ダンプ取得部３０４は障害情報を取得するために、メモリ２０１の情報をディスクインタフェース２０４を経由してディスクボリューム１１４に書き込む機能を有する。
【００３６】
ＯＳアドレスマップテーブル３０８にはＯＳが所持している、論理アドレスと物理アドレスの対応情報が格納されている。ここで、物理アドレスとはメモリ２０１の先頭からの番地を表しており、論理アドレスとは１つの物理アドレスに対して１つの論理アドレスが関連付けされており、不連続な物理メモリ領域をアプリケーションから見て連続に見せかけるためのアドレスである。ソフトウェアは論理アドレスを使用することで、不連続な物理メモリ領域も連続な論理アドレス領域として使用できるため、メモリ２０１の利用や管理が容易になる。
【００３７】
仮想化機構アドレスマップテーブル３０７には仮想化機構１１０が所持している、仮想物理アドレス、論理アドレス、物理アドレスの対応情報が格納されている。ここで、仮想物理アドレスとは仮想化機構上１１０で動作するＯＳ３０１の物理アドレスを表しており、仮想化機構１１０が保持しているメモリの一部として、論理アドレスに対応付けされている。また、前述の理由と同様に、不連続な物理メモリ領域も連続な仮想アドレス領域として使用できるため、論理アドレスと物理アドレスが格納されている。
【００３８】
メモリ２０１に格納されたアドレス変換部３０５、メモリ登録部３０６、ユーザ情報伝達部３０３、ダンプ取得部など各種プログラムをプロセッサ２０２が実行することで、アドレス変換処理１７０２、メモリ登録処理１４０４、ユーザ情報伝達処理１５１０、ダンプ取得処理１２０５の各処理を行う。
【００３９】
アドレス変換処理１７０２、メモリ登録処理１４０４、ユーザ情報伝達処理１５１０、ダンプ取得処理１２０５の各処理は、各プログラムをプロセッサ２０２で実行することにより実現するが、これらは、アドレス変換部３０５、メモリ登録部３０６、ユーザ情報伝達部３０３、ダンプ取得部３０４など、各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
【００４０】
図４は実施例１における仮想サーバ１０９のリソース割当て状況を示す概念図である。仮想化機構１１０は、物理サーバ１１２内のメモリ２０１、プロセッサ２０２、ディスクボリューム１１４内に設けられた論理ディスク４０１を各仮想サーバに割当てる。
【００４１】
メモリ２０１の割当てとは、仮想化機構１１０の管理下にある、物理サーバ１１２が有するメモリ２０１の一部を、仮想サーバ１０９の専用領域として割当てることを意味する。
【００４２】
プロセッサ２０２の割当てとは、仮想サーバ１０９に対して所定の時間だけプロセッサ２０２を使用して実行するようにスケジュールする事を意味する。
【００４３】
仮想ディスク４０１の割当てとは、ディスクボリューム１１４の一部の領域を、仮想サーバ１０９の専用領域として割当てることを意味する。
【００４４】
メモリ、プロセッサ、論理ディスクは、それぞれ物理サーバの一部分を使用しているが、仮想サーバ１０９上で稼動するＯＳ３０１からは一般的なメモリ２０１、プロセッサ２０２、論理ディスク４０１として認識される。
【００４５】
図６は、本発明における実施例１のメモリ２０１の構成と使用状況の概要を表すメモリマップである。
【００４６】
メモリ２０１は使用領域リスト６０１と未使用領域リスト６０２とユーザ空間６０３とカーネル空間６０４から構成されている。カーネル空間６０４とはＯＳが所持しているプログラム制御、メモリ管理、ディスク管理など、ＯＳの制御に関するプログラムが格納される領域である。ユーザ空間６０３とはＯＳの制御以外のプログラム、アプリケーションプログラム、アプリケーションユーザーデータなどが格納される領域である。
【００４７】
本実施例１では、ユーザ空間６０３に情報を保護すべきＤＢデータ情報、保護対象ではないＤＢプロセス情報、保護対象ではないアプリケーションＡプロセス情報が格納され、カーネル空間には前述のＯＳの制御に関するプログラムの総称としてカーネル情報が格納されている状況を想定している。
【００４８】
本実施例１では、保護すべき情報をＤＢデータ情報としたが、保護すべき情報として、機密性の高いプログラムのプロセス領域、メールサーバのメール情報領域など、機密性の高い情報が考えられる。
【００４９】
図５は仮想化機構１１０に割り当てられている仮想サーバ１０９のＯＳのメモリアドレスのマッピングを表している。
【００５０】
メモリ２０１に割り当てられているメモリアドレス５０５、仮想化機構１１０に割り当てられている論理アドレス５０３と物理アドレス５０４、仮想サーバ１０９内のＯＳ３０１に割り当てられている仮想論理アドレス５０１、仮想物理アドレス５０２の、仮想論理アドレス５０１からメモリアドレス５０５までのメモリマッピングを表している。
【００５１】
仮想論理アドレス５０１からメモリアドレス５０５までのメモリマッピングについて仮想論理アドレス５０１への参照命令を例に説明する。仮想化サーバ１０９が、仮想論理アドレス５０１に対して参照命令が出されると、ＯＳ３０１は仮想論理アドレス５０１を仮想物理アドレス５０２にアドレス変換する。変換後ＯＳ３０１は仮想物理アドレス５０２を仮想化機構１１０へ伝達する。伝達後、仮想化機構１１０は仮想物理アドレス５０２を論理アドレス５０３に変換する。変換後、仮想化機構１１０は論理アドレス５０３を物理アドレス５０４に変換する。変換後、仮想化機構１１０は物理アドレス５０４をメモリ２０１に伝達し、メモリ２０１は伝達されたメモリアドレス５０５の値を参照する。
【００５２】
前述の図６における保護すべきＤＢデータ情報のマッピング状況例を、図５の太枠で表している。仮想サーバ１０９内のＯＳ３０１で仮想論理アドレス５０１を用いてＤＢ情報を参照した場合、仮想論理アドレス、仮想物理アドレス５０２、論理アドレス５０３、物理アドレス５０４、メモリアドレス５０５へと変換を実施して値を参照する事ができる。
【００５３】
本実施例１では、仮想化機構１１０内に仮想物理アドレス５０２、論理アドレス５０３、物理アドレス５０４が存在しているが、論理アドレス５０３が存在せずＯＳから受取る仮想物理アドレス５０２を物理アドレス５０４に変換する方法も考えられる。なお、仮想化機構１１０は論理アドレス５０３と物理アドレス５０４の対応付けに変化が生じることを検知すると、変化後の対応付けを利用してアドレス置換えテーブル１０８を再作成する。これによって、ＯＳ実行中の動的な論理物理対応の変化にも追従できる。
【００５４】
図２１は仮想化機構１１０のメモリアドレスの置換えが行われた後のメモリマップを示している。
前述の図５と同様保護すべきＤＢ情報のマッピング状況を、太枠で表している。管理サーバ１０１が事前にアドレス変換テーブル１０８を作成し、仮想化機構１１０のメモリ登録部３０６を活用し、メモリマップを変更すると、保護すべき情報の物理アドレス５０４の参照先が１つのメモリアドレスを参照するように変更される。この参照されるメモリアドレスの値を事前に０やＮＵＬＬ、特定の文字列など任意の情報として意味を持たない値にしておくことで、ＯＳ内の仮想論理アドレス５０１からの参照を防ぐことができる。
【００５５】
そのため、このメモリアドレスの置換えを実施することで、障害発生時のダンプ取得のような、ＯＳ内の仮想論理アドレス５０１を仮想物理アドレス５０２、メモリアドレス５０５へと変換し、出力する処理があった場合、保護領域の出力は全て変更後のアドレスに格納されている参照値が返ってくるため、保護すべき情報が出力される事を防ぐことができる。また、変更される値が、０やＮＵＬＬなどの一定文字列の場合は、圧縮処理などは圧縮率が上がり、ディスク等の外部記憶媒体への出力データサイズが減少するため、ディスク出力時間など短縮する事ができる。これにより、メモリの大容量化によってディスクへの書き込み量が増加してしまう課題や、障害が発生した後にメモリ内容を取得するプログラムであるメモリダンプ処理において、全てのメモリ内容がディスクに出力されないとプログラムが終了せず、システムが再起動に時間がかかってしまうという課題を解決することができるという効果がある。
【００５６】
なお、本実施例では、図２１に示すように、保護すべき情報の物理アドレス５０４の参照先が１つのメモリアドレスを参照するように変更されているが、この実施例のみに限定されず様々な方法が考えられる。
【００５７】
例えば、参照先が図２１のように保護すべき情報の物理アドレスのメモリアドレスではなく、保護する必要のない情報の物理アドレスのメモリアドレスを参照する方法、未使用の物理アドレスのメモリアドレスを参照する方法、存在しない物理アドレスのメモリアドレスを参照する方法、及び、参照する物理アドレスのメモリアドレスを乱数でランダムに変更させる等の方法が考えられる。また、本実施例では、置換えるアドレスを物理アドレス５０４としたが、論理アドレス５０３、仮想物理アドレス５０２を変更する方法も考えられる。
【００５８】
つまり、仮想化環境において、保護すべきメモリ情報をアドレス変換テーブル１０８によりアドレス参照箇所を変更することにより、保護すべきメモリ情報の漏洩を防止できることが本発明の特徴の一つである。
【００５９】
図７は、物理サーバ管理テーブル１０４の構成を示している。カラム７０１は、物理サーバ識別子を示す。複数の物理サーバ１１０が存在する場合は、複数の情報が格納される。
【００６０】
カラム７０２は、ＣＰＵ（プロセッサ）のスペックが格納される。カラム７０３は、物理サーバ１１２の搭載メモリ容量が格納される。カラム７０４は、物理サーバに接続されているデバイスに関する情報が格納される。例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）であれば、種類や固有の識別子であるＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）であれば、ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）である。カラム７０５は、接続ディスクに関する情報が格納される。例えば、ストレージ装置１１３内のディスクボリューム１１４内のボリューム識別子や容量が格納される。ここに格納されたディスクボリューム１１４は、他の物理サーバ１１２からそれぞれ共有されていても良い。その場合は、各物理サーバ１１２に対して、同じボリューム識別子が格納される。
【００６１】
図８は、仮想サーバ管理テーブル１０５の構成を示している。
【００６２】
カラム８０１は、仮想化機構識別子が格納される。通常、１つの物理サーバ１１２には一つの仮想化機構１１０が含まれる。カラム８０２は、仮想化機構１１０が稼動している物理サーバ識別子が格納される。カラム８０３は、仮想サーバ識別子が格納される。仮想サーバ識別子は、仮想化機構１１０内でユニークな値でも良いし、複数の仮想化機構１１０に渡ってユニークな値でも構わない。
【００６３】
カラム８０３に格納されている仮想サーバ識別子は、仮想化機構１１０上で生成された仮想サーバ１０９の数だけ登録される。
【００６４】
カラム８０４は、それぞれの仮想サーバ１０９に割り当てられたリソースが格納される。例えば、ＣＰＵの割り当て状態、メモリ容量、ＮＩＣの情報、仮想ディスク識別子などである。
【００６５】
カラム８０５は、各仮想サーバ１０９のステータスを示している。例えば、稼動中や非稼動などの情報である。稼動している仮想サーバ１０９を把握することで、物理サーバ全体の負荷を得やすくなる。
【００６６】
図９は、ワークロード管理テーブル１０６の構成を示している。
【００６７】
カラム９０１は、仮想化機構識別子が格納される。カラム９０２は、稼動物理サーバ識別子が格納される。ここで稼動物理サーバ識別子とは、カラム９０１で示した仮想化機構識別子の仮想化機構１１０が稼動している物理サーバ１１２の識別子である。一つの物理サーバ１１２上で複数の仮想化機構１１０が稼動している場合は、稼動物理サーバ識別子９０２に対して、複数の仮想化機構識別子９０１が格納される。
【００６８】
カラム９０３は、仮想サーバ識別子が格納される。仮想化機構識別子９０１によって生成され、ワークロードの制御を行う仮想サーバ１０９の識別子が格納される。仮想化機構識別子９０１で生成された全ての仮想サーバ１０９が格納されても良いし、ワークロードの制御を行う仮想サーバ１０９の識別子だけでも良い。
【００６９】
カラム９０４は、ＣＰＵ割当て量が格納される。ＣＰＵ割当て量は、仮想サーバ１０９に対して割当てるＣＰＵの量である。ＣＰＵ割当て量が大きいほど仮想サーバ１０９の処理性能は向上する。なお、ＣＰＵ割当て量の単位はユーザが任意に指定できる。例えば、仮想化機構１１０毎に全体を１００％として、仮想サーバ１０９毎に割当て率として値を格納しても良い。また、仮想化機構１１０が有する性能の全てを仮想サーバ１０９に割当てる必要はない。仮想サーバ１０９の急な負荷増大に備えて、未使用のＣＰＵを残しておいても良い。
【００７０】
カラム９０５は、物理ＣＰＵ使用率が格納される。物理ＣＰＵ使用率とは、物理サーバ識別子９０２が有するＣＰＵ２０２の全処理量を１００％とした時の使用率である。物理ＣＰＵ使用率は、仮想化機構１１０が各仮想サーバ１０９のＣＰＵ利用率をスケジューリングした時間から算出しても良いし、仮想サーバ１０９上で仮想サーバ１０９自身の使用率を採取しＣＰＵ割り当て量９０４と掛け合わせて算出しても良い。物理ＣＰＵ利用率９０５によって、稼動物理サーバ識別子９０２が示す物理サーバ１１２の負荷を知ることができる。
【００７１】
図１０はユーザ情報管理テーブル１０７の構成を示している。ユーザ情報管理テーブル１０７は管理する物理サーバ１１２ごとに作成する。
【００７２】
カラム１００１は仮想サーバ識別子が格納されている。カラム１００２には、仮想サーバ１０９にインストールされているＯＳ３０１が所持している、ＯＳアドレスマップテーブル３０８の仮想物理アドレス５０２と同じ内容の仮想物理アドレスが格納されている。カラム１００３には、前述カラム１００２に格納されている仮想物理アドレスに対応する、論理アドレスが格納されている。カラム１００４には、前述カラム１００３に格納されている論理アドレスに対応する、物理アドレスが格納されている。
【００７３】
カラム１００５にはステータスが格納されている。ステータスとはメモリの状態や補足情報を表すもので、値としてはメモリ未使用、センシティブ、ノンセンシティブなどが想定される。メモリ未使用とは、仮想化機構１１０が仮想サーバ１０９にまだ割当されていないメモリのことを表す。センシティブとは、保護したい情報であることを表し、さらに優先度や用途付加することでメモリの使用状況を詳細に表す。ノンセンシティブとは、保護を必要としてない情報であることを表し、さらに優先度や用途付加することでメモリの使用状況を詳細に表す。このステータスがあることで、メモリ使用率の把握と保護すべき情報か保護すべきでない情報かの区別をつける事が可能となる。
【００７４】
実施例１では、ユーザ情報管理テーブル１０７を使用することなく、メモリの置換えを実施しているが、本テーブルを活用することで詳細な情報保護やワークロードを活用した情報取得を実施することが可能となる。例えば、ステータス情報にメモリの用途を割り当てておき、障害を検知した際、障害部位に応じて関連したメモリの領域を取る取らないといった情報取得の決定することで、効率よく障害情報を取得することが可能となる。さらに、優先順位を指定しておき、優先順位が高い障害情報はワークロード高とし早期に情報取得し、高くないものは他のシステムに影響を与えないようワークロードを下げて情報を取得することで、情報取得の柔軟性が向上する。
【００７５】
図１１はアドレス置換えテーブルの構成を示している。
【００７６】
カラム１１０１は仮想化機構識別子が格納される。カラム１１０２は稼動物理サーバ識別子が格納される。カラム１１０３は仮想サーバ識別子が格納される。カラム１１０４は物理アドレスが格納される。ここで格納される物理アドレスとは、保護すべき情報が格納されている、仮想サーバにインストールされているＯＳの仮想論理アドレス５０１に対応する物理アドレス５０４を表している。
【００７７】
カラム１１０５は置換え物理アドレスが格納される。ここで格納される置換え物理アドレスとは、物理アドレス置換え後に参照させる物理アドレスを表す。例としては、予め物理アドレスのＦＦＦＦに値０を入れておき、置換え物理アドレスとしてＦＦＦＦを格納する。格納後、前述のカラム１１０４で登録された物理アドレスを置換え物理アドレスに置換えることによって物理アドレスがＦＦＦＦとなるため、アドレスの参照値が０となり、保護したい情報を見せなくすることが可能となる。
【００７８】
本実施例１では、ユーザ情報伝達部とアドレス置換え管理部の処理によって、置換えテーブルを事前に作成しておき、作成した情報を元にメモリ置換えを実施する。これにより、保護したい情報の参照先を変えることで、情報保護が可能となる。
【００７９】
また、本実施例１ではアドレス置換えテーブル１０８を作成、所持し、任意のタイミングでアドレス置換えテーブル１０８に登録されているメモリ情報をメモリに置換えることで保護が要求される情報の保護を実現しているが、ＣＰＵの機能を追加することでアドレス置換えテーブル１０８を作成、所持しなくとも情報保護を実現可能である。例えば現在、物理メモリは４ＫＢｙｔｅといった固定長で仕切られているが、仕切りと仕切りの間に保護領域かを識別するための特殊なフラグを有効、無効に設定できるとする。この場合にＣＰＵは保護すべき情報の領域確保命令を受取ると、確保した領域の物理アドレスに対してページ単位でフラグを有効にしていく。そして、普段はフラグを参照することなくデータの読み書きをする。情報保護が必要になった場合は、ＣＰＵはフラグを参照し、フラグが有効の場合はＣＰＵがそのページの参照結果として意味のないデータを返すといった方法である。
【００８０】
図２２は仮想化機構アドレスマップテーブル３０７の構成を示している。
【００８１】
カラム２２０１は、仮想サーバ識別子を表している。カラム２２０２は仮想物理アドレスを表している。ここで格納される仮想物理アドレスとは、仮想サーバ１０９にインストールされているＯＳ３０１の仮想物理アドレス５０２を表す。仮想化機構アドレスマップテーブル３０７の仮想物理アドレス５０２は、仮想化機構１１０が、仮想サーバ１０９にインストールされているＯＳからの仮想物理アドレスを受取り格納される。
【００８２】
カラム２２０３は論理アドレスを表している。ここで格納される論理アドレスとは、カラム２２０２に登録されている仮想物理アドレスに対して、仮想物理アドレスを仮想化機構１１０のメモリマップに対応させた際のアドレスを表す。
【００８３】
カラム２２０４は物理アドレスを表している。ここで格納される物理アドレスとは、カラム２２０３の論理アドレスに対応する物理アドレスを表す。
【００８４】
本実施例１では、仮想化機構１１０は仮想サーバ１０９にインストールされているＯＳから、仮想物理アドレスを受取り、仮想化機構１１０がアドレス変換し、仮想化機構アドレスマップテーブル３０７が作成済である状況を想定している。
【００８５】
図２３はＯＳアドレスマップテーブル３０８の構成を示している。
【００８６】
カラム２３０１は仮想論理アドレスが格納されている。ここで格納される仮想論理アドレスとは、仮想サーバ１０９にインストールされているＯＳの仮想論理アドレスを表す。ＯＳから見ると、仮想論理アドレスは通常の論理アドレスとして認識される。
【００８７】
カラム２３０２は仮想物理アドレスが格納されている。ここで格納される仮想物理アドレスとは、カラム２３０１に登録されている仮想論理アドレスに対応する仮想物理アドレスを表す。ＯＳから見ると、仮想物理アドレスは通常の物理アドレスとして認識される。
【００８８】
本実施例１では、仮想サーバにインストールされているＯＳに、ＯＳアドレスマップテーブル３０８が作成済である状況を想定している。なお、ＯＳアドレスマップテーブル３０８は仮想論理アドレスから仮想物理アドレスの対応付けを管理している表である。
【００８９】
図１２は障害検出部２０６の処理部分に該当する障害検出処理１２０６のフローを示す。障害検出処理１２０６は障害を検知し、アドレス置換えテーブル１０８によってメモリを置き換える命令を出す。障害検出処理１２０６は対象となる仮想サーバ１０９にインストールされているＯＳの障害を監視する(ステップ１２０１)。具体例としては、障害が発生した際にＯＳから呼び出される障害情報取得ルーチンのアドレスを入手し、障害情報取得ルーチンが呼び出されてアドレスが参照されたら、仮想化機構がトラップをかけて仮想サーバのＯＳの制御を奪う。障害検出処理１２０６はアドレス置換えテーブル１０８によってメモリアドレス変換などの処理が終了すると、ダンプ取得処理１２０５などの障害情報を取得するルーチンに制御を戻す。
【００９０】
障害を検知しない場合はステップ１２０１に移行し、検知した場合はステップ１２０３に移行する(ステップ１２０２)。障害検出後、検知した仮想サーバ１０９を特定する(ステップ１２０３)。具体例としては、仮想サーバ１０９が事前に仮想サーバＩＤ、ＩＰアドレス、ＭＡＣアドレスなどＯＳごとに一意に定まる仮想サーバ識別子情報をテーブルとして保持しておく。特定したいタイミングで仮想サーバ１０９から仮想サーバＩＤ、ＩＰアドレス、ＭＡＣアドレスなどの仮想サーバ識別子情報を受取り、予め作成しておいたテーブルと仮想サーバ識別子情報が一致するものを検索することで仮想サーバを特定する。
【００９１】
特定した仮想サーバ１０９のメモリアドレスをアドレス置換えテーブル１０８によって上書きするため、アドレス置換え管理処理１２０４を呼び出す(ステップ１２０４)。アドレス置換え管理処理１２０４から制御が戻ってきたら、メモリアドレス５０５が上書きされたのを確認し、ダンプ取得処理１２０５を呼び出しダンプを取得する(ステップ１２０５)。
【００９２】
図１３はアドレス置換え管理部２１０の処理部分に該当するアドレス置換え管理処理１２０４のフローを示す。
【００９３】
本フローは障害検出処理１２０６から呼び出され、呼び出し前に特定された仮想サーバ識別子に対して、アドレス置換えテーブル１０８によってメモリを置換えるための処理を行う。
【００９４】
アドレス置換え管理処理１２０４は呼び出されると、呼び出し時にパラメータとして渡された仮想サーバ識別子を確認する。そして、パラメータとして渡された仮想サーバ識別子とアドレス置換えテーブル１０８の仮想サーバ識別子１１０３が一致するものを確認し、一致する仮想サーバ識別子１１０３の物理アドレス１１０２、置換えアドレス１１０３を確認する(ステップ１３０１)。
【００９５】
メモリを置換えるため、確認した仮想サーバ識別子１１０１と物理アドレス１１０２と置換えアドレス１１０３をパラメータとして、該当する物理サーバ上で動作する仮想化機構のメモリ登録部３０６の処理であるメモリ登録処理１４０４を呼び出す(ステップ１３０２)。
【００９６】
メモリ登録処理１４０４から制御が戻ってきたら、正常終了したことを確認する(ステップ１３０３)。確認後、置換えた仮想サーバ識別子のアドレス置換えテーブルエントリを削除する(ステップ１３０４)。
【００９７】
図１４はメモリ登録部３０６の処理部分に該当するメモリ登録処理１４０４フローを示す。
【００９８】
本フローは、アドレス置換え管理処理１２０４から呼び出され、パラメータとして渡された、置換えアドレス１１０３の仮想サーバ識別子、物理アドレス１１０２、置換えアドレス１１０３を元にアドレス置換え処理を行う。
【００９９】
メモリ登録処理１４０４は呼び出されると、呼び出し時にパラメータとして渡された仮想サーバ識別子１１０１、物理アドレス１１０２、置換えアドレス１１０３を確認する(ステップ１４０１)。確認後、パラメータとして渡された仮想サーバ識別子１１０１と仮想化機構アドレスマップテーブル３０７の仮想サーバ識別子が一致するエントリを確認する(１４０２)。エントリ確認後一致した仮想サーバ識別子のエントリに対して、パラメータとして渡された物理アドレス１１０２と仮想化機構アドレスマップテーブルの物理アドレスが一致するエントリを確認し、一致したらパラメータとして渡された置換えアドレス１１０５を上書きする(ステップ１４０２)。
【０１００】
図１５はユーザ情報伝達部３０３の処理部分に該当するユーザ情報伝達処理１５１０のフローを示す。本フローはメモリアドレス変換に必要な、アドレス置換えテーブル１０８の作成処理を行う。
【０１０１】
ユーザ情報伝達処理１５１０はメモリ領域の確保後またはメモリ領域の開放前に、保護すべき情報の仮想物理アドレス情報をパラメータとしてユーザまたはアプリケーションから呼び出されることを想定している。
【０１０２】
ここで渡される保護すべき情報の仮想物理アドレス情報の取得例としては、仮想サーバ１０９にインストールされたＯＳ３０１が所持している、ＯＳアドレスマップテーブル３０８の仮想論理アドレス２３０１の先頭アドレスと大きさを表す。一般的にメモリ領域の確保はメモリ確保命令と共に大きさを指定し、ＯＳから実行結果として確保した仮想論理アドレス２３０１の先頭アドレスが返される。
【０１０３】
ユーザ情報伝達処理１５１０は呼びだされると、メモリ確保要求かを判断し、確保要求の場合はステップ１５０４に制御を移し、確保要求でない場合はステップ１５０２に制御を移す(ステップ１５０１)。
【０１０４】
メモリ確保要求だった場合、確保要求されたアドレスがセンシティブな情報かどうか判定し、センシティブだった場合はステップ１５０６に制御が移り、センシティブでない場合は制御を終了する(ステップ１５０４)。
【０１０５】
メモリ確保要求かつセンシティブだった場合、ＯＳから取得するＯＳアドレスマップテーブル３０８の仮想論理アドレス２３０１と確保した領域の仮想論理アドレスが一致するエントリを確認し、仮想論理アドレス２３０１に対応付けされている仮想物理アドレス２３０２を特定する(ステップ１５０６)。
【０１０６】
仮想物理アドレス２３０２特定後、ネットワーク１１５を経由して、特定した仮想物理アドレス２３０２をパラメータとしてユーザ情報取得処理１５０７を呼び出す。ユーザ情報取得処理１５０７はユーザ情報伝達処理１５１０を呼び出した仮想サーバ１０９を特定する(ステップ１５０７)。
【０１０７】
仮想サーバ１０９特定後、仮想物理アドレス５０２に対応する論理アドレス５０３と物理アドレス５０４を特定するため、ステップ１５０７で特定した仮想サーバ１０９とステップ１５０７で渡された仮想物理アドレス５０２をパラメータとしてメモリアドレス取得部２１２を呼び出す(ステップ１５０８)。
【０１０８】
メモリアドレス取得処理１５０８の処理が終了したら、ユーザ情報保護処理１５０９を呼び出し、アドレス置換えテーブル１０８の該当する仮想サーバ識別子１１０３の物理アドレス１１０４、置換え物理アドレス１１０５を更新する (ステップ１５０９)。
【０１０９】
ステップ１５０１での判定が確保要求でなかった場合、開放要求かを判定し、開放要求だった場合はステップ１５０３に制御を移し、開放要求でない場合は制御を終了する(ステップ１５０２)。
【０１１０】
開放要求だった場合は、センシティブ情報かどうかを判定し、センシティブ情報だった場合はステップ１５０５に制御を移し、センシティブ情報でない場合は、制御を終了する(ステップ１５０３)。
【０１１１】
開放要求かつセンシティブ情報だった場合、開放されたメモリの仮想論理アドレスから仮想物理アドレスを特定し制御をステップ１５０７に移す。(ステップ１５０５)。
【０１１２】
本実施例１ではメモリ確保、メモリ開放後にユーザ情報伝達部を呼んでいるが、保護すべき情報の仮想物理アドレス情報が特定できているのであれば、ユーザ情報伝達部はどのタイミングで呼んでも良い。
【０１１３】
また、本実施例１でのユーザ情報伝達部が呼ばれるケースとして、インメモリＤＢなどのユーザデータが格納されるユーザ領域やプロセス領域、機密性の高いプログラムのプロセス領域、メールサーバのメール情報領域など、機密性の高い情報がメモリにロードされる場合が考えられる。
【０１１４】
図１６はユーザ情報取得部の処理部分に該当するユーザ情報取得処理１５０７のフローを示す。本フローでは、仮想サーバ管理テーブル１０５の仮想サーバ識別情報８０１とパラメータとして受取った仮想サーバ識別情報を利用して、情報保護要求を出した仮想サーバを特定する。
【０１１５】
ユーザ情報取得処理１５０７はユーザ情報伝達処理１５１０からの要求を受ける(ステップ１６０１)。仮想サーバ管理テーブル１０５の仮想サーバ識別情報８０６とパラメータとして受取った仮想サーバ識別情報が一致する仮想サーバ１０５を確認し、仮想サーバ１０５を特定する(ステップ１６０２)。ステップ１６０２で特定した仮想サーバ１０５を呼び出し元に返す（ステップ１６０３）
図１７はメモリアドレス取得部２１２の処理部分に該当するメモリアドレス取得処理１５０８のフローを示す。
【０１１６】
本フローでは、パラメータとして受取った仮想サーバ識別子８０３と仮想物理アドレス２３０２の情報を元に、仮想化機構１１０内のアドレス変換部３０５を呼び出し、論理アドレスと物理アドレスを特定する。
【０１１７】
メモリアドレス取得処理１５０８はパラメータとして受取った、情報保護要求を出した仮想サーバ識別子８０３と仮想物理アドレス２３０２を確認する(ステップ１７０１)。仮想物理アドレス２３０２に対応する論理アドレス２２０３と物理アドレス２２０４を特定するため、要求を出した仮想サーバ識別子８０３と仮想物理アドレス２３０２をパラメータとして、アドレス変換部３０５を呼び出す(ステップ１７０２)。アドレス変換部３０５の処理が終了すると、アドレス変換部３０５で取得した、論理アドレス２２０３と物理アドレス２２０４を確認する(ステップ１７０３)。
【０１１８】
ステップ１７０３で確認した論理アドレス２２０３と物理アドレス２２０４を呼び出し元に返す（ステップ１７０４）
図１８はアドレス変換部３０５の処理部分に該当するメモリアドレス変換処理１７０２のフローを示す。
【０１１９】
本フローでは、メモリアドレス取得処理１５０８に呼び出され、パラメータとして受取った仮想サーバ識別子８０３と仮想物理アドレス２３０２の情報と、仮想化機構アドレスマップテーブル３０７の情報を元に論理アドレス２２０３と物理アドレス２２０４を特定する。
【０１２０】
アドレス変換処理１７０２はパラメータとして渡された、仮想サーバ識別子８０３と仮想物理アドレス２３０２を確認する(ステップ１８０１)。
【０１２１】
ステップ１８０１で確認した仮想物理アドレス２３０２に一致する論理アドレスを確認する（ステップ１８０２）。ステップ１８０２で確認した論理アドレスに一致する物理アドレスを確認する（ステップ１８０３）。ステップ１８０２、１８０３で確認した結果を呼び出し元に返す。（ステップ１８０４）
図１９はユーザ情報保護部２０７の処理部分に該当するユーザ情報保護処理１５０９のフローを示す。
【０１２２】
ユーザ情報保護処理１５０９では、ユーザ情報伝達処理１５１０から呼び出され、パラメータとして受取った、仮想サーバ識別子８０３と物理アドレス２２０４を用いてアドレス置換え１０８テーブルを作成、または削除する。
【０１２３】
ユーザ情報保護処理１５０９はパラメータとして渡された、仮想サーバ識別子８０３と物理アドレス２２０４を確認する(ステップ１９０４)。
【０１２４】
このアドレス置換えテーブル１０８の作成のステップがメモリ確保要求か判定し、確保要求だった場合はステップ１９０３に制御を移し、確保要求でない場合はステップ１９０２に制御を移す(ステップ１９０１)。
【０１２５】
確保要求だった場合、アドレス置換えテーブル１０８へエントリを追加するため、仮想サーバ識別子８０３、物理アドレス２２０４、置換え後の物理アドレス１１０３を登録する(ステップ１９０３)。
【０１２６】
確保要求でなかった場合は、アドレス置換えテーブル１０８のエントリを削除するため、パラメータとして受取った仮想サーバ識別子８０３と物理アドレス２２０４と置換え後の物理アドレス１１０３がアドレス置換えテーブル１０８のエントリと一致するものを削除する(ステップ１９０２)
図２０はダンプ取得部３０４の処理部分に該当するダンプ取得処理１２０５のフローを示す。
【０１２７】
ダンプ取得処理１２０５は、ＯＳ３０１が一般的に所持している機能を利用する。
【０１２８】
ダンプ取得処理１２０５は呼ばれると、ＯＳ３０１が所持しているアドレスマップテーブル３０８の全ての論理アドレス２３０１と論理アドレス２３０１に対応する物理アドレス２３０２と物理アドレス２３０２に対応するメモリアドレス５０５の値をディスクに出力する(ステップ２００１)。
【０１２９】
なお、上記では、障害が発生した仮想サーバ１０９は、ダンプ取得処理１２０５がダンプを取得し終わった後に、障害が発生した仮想サーバ１０９を再起動するが、他の方法も考えられる。障害が発生した仮想サーバ１０９の再起動をさらに高速にするために、ダンプ取得部１２０５の終了を待たずに再起動する方法である。仮想サーバ１０９には、図６に示すようにメモリ２０１内のユーザ領域６０３とカーネル空間６０４が割り当てられている。ダンプ取得部１２０５は、この内のユーザ空間６０３やカーネル空間６０４のデータを選択的にダンプするが、このユーザ空間６０３やカーネル空間６０４を残したまま、仮想サーバ１０９を再起動することでダンプ取得部１２０５と仮想サーバ１０９の再起動を並列に実行することができるようになる。具体的には、当該仮想サーバ１０９が稼動する仮想化機構１１０が保有するメモリ２０１内に、少なくともユーザ領域６０３とカーネル空間６０４を割り当てることが出来る空きメモリがあれば、その領域を当該仮想サーバ１０９の新たなメモリ領域として割り当てる。空きメモリが存在するかどうかは、仮想サーバ管理テーブル１０６の割当リソース８０４のメモリの値について、当該仮想化機構８０１上で稼動している全ての仮想サーバ１０９の合計値を求める。この値と、当該仮想化機構１１０が稼動する物理サーバ１０１が有するメモリの容量７０３とを比較することで求めることができる。これにより、当該仮想サーバは新たに割り当てられたメモリ領域を用いて再起動することができるとともに、ダンプ取得部１２０５を並列に実行することができるようになる。一方、当該仮想サーバ１０９に新たなメモリ領域を割り当てられなかった場合は、当該仮想サーバを他の物理サーバ１０１で実行する方法も考えられる。物理サーバ管理テーブル１０４と仮想サーバ管理テーブル１０５から、当該仮想サーバを割り当てることができるリソースが存在するかどうかを検索し、空きリソースが存在する物理サーバ１０１で稼動する仮想化機構１１０に、当該仮想サーバ１０９の割当リソース８０４の情報を転送し、仮想サーバを生成することで実現することができる。これにより、当該仮想サーバ１０９の実行範囲を広げることができるため、ダンプ取得部１２０５と並行して実行できるシーンを増すことができるようになる。
【０１３０】
実施例１においては、仮想サーバ１０９の障害時のダンプ時のユーザデータ保護について述べたが、他のシーンにおけるユーザデータ保護も考えられる。障害時のダンプだけでなく、仮想サーバ１０９の一時停止時や、仮想サーバ１０９が他の物理サーバ１０１へ移動するケースが考えられる。仮想サーバ１０９の一時停止とは、仮想サーバ１０９を停止し、仮想サーバ１０９に割り当てられたユーザ空間６０３やカーネル空間６０４、あるいは仮想サーバ１０９のプロセッサ２０２の制御情報、ネットワークインターフェース２０３やディスクインターフェース２０４の制御情報などを、ディスクボリューム１１４などに保存しておき、仮想サーバの起動時には保存された情報をリストアすることで、起動を高速化することができる仮想化機構１１０の機能の一つである。仮想サーバ１０９の物理サーバ１０１間の移動とは、仮想サーバ１０９に割り当てられたユーザ空間６０３やカーネル空間６０４、あるいは仮想サーバ１０９のプロセッサ２０２の制御情報、ネットワークインターフェース２０３やディスクインターフェース２０４の制御情報などを、ネットワークを介して他の物理サーバ１０１に転送し、転送先の物理サーバ上で転送されたデータや情報に基づき仮想サーバを再構築することで、物理サーバ１０１間で仮想サーバ１０９を転送する機能である。こういったケースでは、ユーザデータが物理サーバ１０１から外部に送出されるため、ディスクインターフェースやネットワークを流れるデータを監視することによってユーザデータが漏洩する可能性がある。こういった場合に、管理サーバ１０１のユーザ情報管理部１０２は、仮想サーバ１０９の一時停止時要求や、物理サーバ１０１間の移動要求を検知し、仮想化機構１１０に対して当該データを暗号化する指示を出すことで、ディスクボリューム１１４へ格納されたデータや、ネットワークを流れるデータは暗号化されるため、漏洩を防止することができるようになる。
【０１３１】
なお、本願発明は、障害時、仮想サーバの一時停止、仮想サーバの移動のみならず、メンテナンス等情報漏洩が起きる可能性があるイベントが生じた場合にも有効であることはいうまでもない。
【０１３２】
また、本願発明はコンピュータプログラムにより実現されると考えられる。
【０１３３】
さらに、本願発明は、仮想化環境におけるメモリの保護方法について述べたが仮想化環境に限定されないことはいうまでもない。
【０１３４】
仮想化環境でない、メモリアドレスによりメモリが対応付けられている通常のコンピュータ環境においても、障害等のイベントが生じた場合に、ダンプ処理前にメモリアドレスの対応関係を予め定められたテーブルにより変更させることにより、メモリ内の保護が要求される情報を保護することができる。
【図面の簡単な説明】
【０１３５】
【図１】本発明の全体構成を示す。
【図２】管理サーバの構成図を示す。
【図３】物理サーバの構成図を示す。
【図４】仮想化機構が仮想サーバに対して、リソースを割り当てている図を示す。
【図５】本発明におけるメモリマッピングを表す。
【図６】メモリの構成図を表す。
【図７】物理サーバ管理テーブルを示す。
【図８】仮想サーバ管理テーブルを示す。
【図９】ワークロード管理テーブルを示す。
【図１０】ユーザ情報管理テーブルを示す。
【図１１】アドレス置換えテーブルを示す。
【図１２】障害検出処理のフローチャートを示す。
【図１３】アドレス置換え管理処理のフローチャートを示す。
【図１４】メモリ登録処理のフローチャートを示す。
【図１５】ユーザ情報伝達処理のフローチャートを示す。
【図１６】ユーザ情報取得処理のフローチャートを示す。
【図１７】メモリアドレス取得処理のフローチャートを示す。
【図１８】アドレス置換え処理のフローチャートを示す。
【図１９】ユーザ情報保護処理のフローチャートを示す。
【図２０】ダンプ取得処理のフローチャートを示す。
【図２１】メモリアドレス変更の概要を表す。
【図２２】仮想化機構アドレスマップテーブルを示す。
【図２３】ＯＳアドレスマップテーブルを示す。
【符号の説明】
【０１３６】
１０１  管理サーバ
１０２  ユーザ情報管理部
１０３  仮想化機構管理部
１０４  物理サーバ管理テーブル
１０５  仮想サーバ管理テーブル
１０６  ワークロード管理テーブル
１０７  ユーザ情報管理テーブル
１０８  アドレス置換えテーブル
１０９  仮想サーバ
１１１  メモリ管理部
２０５  ユーザ情報取得部
２０６  障害検出部
２０７  ユーザ情報保護部
２０８  ユーザ認証部
２１０  アドレス置換え管理部
２１２  メモリアドレス取得部
３０３  ユーザ情報伝達部
３０７  仮想化機構アドレスマップテーブル
３０８  ＯＳアドレスマップテーブル
６０１  使用領域リスト
６０２  未使用領域リスト
５０１  仮想論理アドレス
５０２  仮想物理アドレス
５０３  論理アドレス
５０４  物理アドレス
５０５  メモリアドレス
【図１】
2009230596.tif 000003
【図２】
2009230596.tif 000004
【図３】
2009230596.tif 000005
【図４】
2009230596.tif 000006
【図５】
2009230596.tif 000007
【図６】
2009230596.tif 000008
【図７】
2009230596.tif 000009
【図８】
2009230596.tif 000010
【図９】
2009230596.tif 000011
【図１０】
2009230596.tif 000012
【図１１】
2009230596.tif 000013
【図１２】
2009230596.tif 000014
【図１３】
2009230596.tif 000015
【図１４】
2009230596.tif 000016
【図１５】
2009230596.tif 000017
【図１６】
2009230596.tif 000018
【図１７】
2009230596.tif 000019
【図１８】
2009230596.tif 000020
【図１９】
2009230596.tif 000021
【図２０】
2009230596.tif 000022
【図２１】
2009230596.tif 000023
【図２２】
2009230596.tif 000024
【図２３】
2009230596.tif 000025