(57)【特許請求の範囲】
【請求項１】
第１メモリ・デバイスと第２メモリ・デバイスと第３メモリ・デバイスとプロセッサとを有するマシンにおいて機器の障害を復旧する方法であって、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは異なるディスク記憶装置の長期記憶装置であり、
前記第３メモリ・デバイスは、前記第１メモリ・デバイスと前記第２メモリ・デバイスとは異なる固体ドライブ装置であり、
前記プロセッサが下記の（ａ）−（ｄ）を実行する
（ａ）前記第１メモリ・デバイス上で前記第１仮想機械の動作を開始させるステップと、
（ｂ）ファイルシステムと、前記第１メモリ・デバイスの第１メモリ内容と、前記第１仮想機械のネットワーク状態の内の少なくとも１つを、前記第２メモリ・デバイスにミラー転写するステップと、
（ｃ）下記の（ｉ）と（ｉｉ）の内の少なくとも１つを検出するステップと、
（ｉ）前記第１メモリ・デバイスと前記第２メモリ・デバイスの内の少なくとも一方に影響を及ぼす停電、
（ｉｉ）第２メモリ・デバイスに影響を及ぼすディスク故障、
（ｄ）前記ステップに応答して、下記のサブステップ(ｄ１）と（ｄ２）の内の少なくとも一方を実行するステップと、
（ｄ１）前記ファイルシステムと、前記第１メモリ内容と、前記第２メモリ・デバイスから第３メモリ・デバイスへのネットワーク状態の内の少なくとも１つを故障回復するサブステップ、
このサブステップ（ｄ１）により、前記第１仮想機械が前記第１メモリ・デバイス上で動き続け、
（ｄ２）前記ファイルシステムと、前記第１メモリ内容と、前記第１メモリ・デバイスと第２メモリ・デバイスから前記第３メモリ・デバイスへのネットワーク状態を故障回復するサブステップと、
このサブステップ（ｄ２）により、前記第１仮想機械は、前記第１メモリ・デバイス上で動作を終了し、前記第３メモリ・デバイス上で動作を開始する、
ことを特徴とする機器の障害を復旧する方法。
【請求項２】
前記サブステップ（ｄ１）が実行される際、
前記第１メモリ・デバイスは、サーバ内にあり、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは別個に配置され、
前記第１メモリ・デバイスと前記第２メモリ・デバイスは、ネットワークを介して通信状態にあり、
前記第２メモリ・デバイスは、ディスク記憶装置であり、
無停電電源装置を更に有し、
前記無停電電源装置は、停電を通知あるいは検知する機能を具備し、一定期間遮断されない電源を提供する
ことを特徴とする請求項１記載の方法。
【請求項３】
前記サブステップ（ｄ２）が実行される際、
前記第１メモリ・デバイスは、サーバ内にあり、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは別個に配置され、
前記第１メモリ・デバイスと前記第２メモリ・デバイスは、ネットワークを介して通信状態にあり、
前記第２メモリ・デバイスは、ディスク記憶装置であり、
無停電電源装置を更に有し、
前記無停電電源装置は、停電を通知あるいは検知する機能を具備し、一定期間遮断されない電源を提供する
ことを特徴とする請求項１記載の方法。
【請求項４】
前記サブステップ（ｄ２）は、
（ｄ２１）前記第１仮想機械をパースィングするステップと、
これにより、前記第１仮想機械のページを、前記第１メモリ・デバイスに与え、
（ｄ２２）前記第１メモリ・デバイス内のページを、前記第３メモリ・デバイス内のページに再度マッピングするステップと、
（ｄ２３）その後、前記第３メモリ・デバイス上で、前記第１仮想機械の操作を再開するステップと、
を有し、
下記（ｉ）と（ｉｉ）の少なくとも一方は、電源不足で発生し、
（ｉ）前記第１メモリ・デバイスと前記第２メモリ・デバイスの少なくとも一方に影響を及ぼす停電、
（ｉｉ）第２メモリ・デバイスに影響を及ぼすディスク故障、
本発明の方法は、
（ｅ）前記ステップ（ｃ）に応答し、パワーを保存するために、第２仮想機械は動作させず前記第１仮想機械の動作のみを継続すると決定するステップと、
（ｆ）前記プロセッサにより前記第２仮想機械の動作を終了させるステップと、
をさらに有する
ことを特徴とする請求項３記載の方法。
【請求項５】
請求項１の各ステップを前記プロセッサが実行できるようなインストラクションを有するコンピュータで読み取り可能な記憶媒体。
【請求項６】
第１メモリ・デバイスと第２メモリ・デバイスと第３メモリ・デバイスとプロセッサとを有するマシンにおいて、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは異なるディスク記憶装置の長期記憶装置であり、
前記第３メモリ・デバイスは、前記第１メモリ・デバイスと前記第２メモリ・デバイスとは異なる固体ドライブ装置であり、
前記プロセッサは、下記の（ａ）−（ｄ）を実行する、
（ａ）前記第１メモリ・デバイス上で前記第１仮想機械の動作を開始させ、
（ｂ）ファイルシステムと、前記第１メモリ・デバイスの第１メモリ内容と、前記第１仮想機械のネットワーク状態の内の少なくとも１つを、前記第２メモリ・デバイスにミラー転写し、
（ｃ）下記の（ｉ）と（ｉｉ）の内の少なくとも１つを検出し、
（ｉ）前記第１メモリ・デバイスと前記第２メモリ・デバイスの少なくとも一方に影響を及ぼす停電、
（ｉｉ）第２メモリ・デバイスに影響を及ぼすディスク故障、
（ｄ）前記ステップに応答して、下記の動作(ｄ１）と（ｄ２）
（ｄ１）前記ファイルシステムと、前記第１メモリ内容と、前記第２メモリ・デバイスから第３メモリ・デバイスへのネットワーク状態の内の少なくとも１つを故障回復する第１動作、
この第１動作により、前記第１仮想機械が前記第１メモリ・デバイス上で動き続け、
（ｄ２）前記ファイルシステムと、前記第１メモリ内容と、前記第１メモリ・デバイスと第２メモリ・デバイスから前記第３メモリ・デバイスへのネットワーク状態を故障回復する第２動作、
この第２動作により、前記第１仮想機械は、前記第１メモリ・デバイス上で動作することを終了し、前記第３メモリ・デバイス上で動作を開始する、
の少なくとも一方を実行する、
ことを特徴とするマシン。
【請求項７】
前記第１動作（ｄ１）が実行される際、
前記第１メモリ・デバイスは、サーバ内にあり、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは別個に配置され、
前記第１メモリ・デバイスと前記第２メモリ・デバイスは、ネットワークを介して通信状態にあり、
前記第２メモリ・デバイスは、ディスク記憶装置である
ことを特徴とする請求項６記載のマシン。
【請求項８】
前記第２動作（ｄ２）が実行される際、
前記第１メモリ・デバイスは、サーバ内にあり、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは別個に配置され、
前記第１メモリ・デバイスと前記第２メモリ・デバイスは、ネットワークを介して通信状態にあり、
前記第２メモリ・デバイスは、ディスク記憶装置であり、
前記第２動作（ｄ２）は、下記の（ｄ２１）−（ｄ２３）の動作
（ｄ２１）前記第１仮想機械をパースィングする動作と、
これにより、前記第１仮想機械のページを、前記第１メモリ・デバイスに与える動作と、
（ｄ２２）前記第１メモリ・デバイス内のページを、前記第３メモリ・デバイス内のページに再度マッピングする動作と、
（ｄ２３）その後、前記第３メモリ・デバイス上で、前記第１仮想機械の操作を再開する動作と
を行う
ことを特徴とする請求項６記載のマシン。
【請求項９】
下記（ｉ）と（ｉｉ）の少なくとも一方は、電源不足で発生し、
（ｉ）前記第１メモリ・デバイスと前記第２メモリ・デバイスの少なくとも一方に影響を及ぼす停電、
（ｉｉ）第２メモリ・デバイスに影響を及ぼすディスク故障、
本発明のマシンは、
（ｅ）前記動作（ｃ）に応答し、パワーを保存するために、前記第１仮想機械の動作のみを継続すると決定し、
（ｆ）前記第２仮想機械の動作を継続しないとの決定に応じて、前記プロセッサにより第２仮想機械の動作を終了させ、
前記第１仮想機械は、前記第３メモリ・デバイス上で動作し、
前記プロセッサは、前記第１メモリ・デバイス上で、ファイルシステムと、前記第１メモリ・デバイスの第１メモリ内容と、前記第１仮想機械のネットワーク状態の内の少なくとも１つを、ミラー転写する
ことを特徴とする請求項６記載のマシン。
【請求項１０】
前記第３メモリ・デバイスは、揮発性メモリと非揮発性メモリを有し、
前記第１仮想機械が、前記第３メモリ・デバイスの揮発性メモリ上で動いている間、前記プロセッサは、前記第３メモリ・デバイスの非揮発性メモリ上で、ファイルシステムと、前記第１メモリ内容と、前記第１仮想機械のネットワーク状態の内の少なくとも１つをミラー転写する
ことを特徴とする請求項６記載のマシン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高利用率と仮想化を実現するシステムに関し、特に、メモリをミラー転写する仮想化システム（memory mirrored virtualization sytem）に関する。
【背景技術】
【０００２】
固体ドライブ（ＳＳＤｓ：Solid-state drives）は、省エネで安定した記憶装置に向けた更なる一歩である。ＳＳＤは、永久的にデータを記憶するために、固体メモリを用いたデータ記憶装置である。ＳＳＤは、ハードディスク・ドライブ・インターフェースを模擬し、その代役を務める。フラッシュ・メモリを用いたＳＳＤは、フラッシュ・ドライブとして知られている。ＳＲＡＭとＤＲＡＭと用いたＳＳＤは、ＲＡＭドライブと称する。ＤＲＡＭベースのＳＳＤは、内部バッテリ又は外部のＡＣ／ＤＣアダプタのいずれかに接続され、記憶システムをバックアップして、外部から電力がドライブに供給されない停電間でも、データの永続性を保障する。電源が失われると、バッテリが電力を供給し、その間、全ての情報は、ＲＡＭからバックアップ記憶装置にコピーされる。電源が回復すると、情報は、ＲＡＭにバックアップ記憶装置から戻され、ＳＳＤは、通常動作に戻る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
省エネと仮想化とパフォーマンスを考慮に入れることにより、新たに注目され出したマーケットは生まれている。この為、ＳＳＤは、システムのミラー転写するメモリと、ファイル−ディスク状態に対する相互の実行装置として、仮想化技術と組み合わせての使用例を見出している。それ故に、これらを開発する様々な機会がある。例えば、ＳＳＤ環境に独自の手段による障害回復（ＤＲ：disaster recovery）がある。通常、企業クラスのＳＳＤは、ＳＲＡＭでバックアップされ、これが次に低電源あるいは低コストのバッテリ（ＳＳＤユニット上のオンボードの充電可能なボタン電池）で、さらにバックアップ（例えば、fusion-io（商標）社の商品名Drive Duo（商標）で市販されているＳＳＤにより）される。このようなＳＳＤの使用は、安定した記憶が可能なメイン・メモリを有し、停電に備えて、バックアップし、ファイルシステムあるいは高度にダイナミックなシステム状態とファイルシステムをリアルタイムでバックアップする。
【課題を解決するための手段】
【０００４】
上記の必要性あるいは他の必要性は、本発明の様々な実施例により解決される。本発明は、仮想環境において、固体ドライブを使用して、障害回復を提供する。
【０００５】
本発明の第１実施例によれば、機器の障害を復旧する方法は、請求項１に記載のとうりである。即ち、第１メモリ・デバイスと第２メモリ・デバイスと第３メモリ・デバイスとプロセッサとを有するマシンにおいて機器の障害を復旧する方法において、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは異なるディスク記憶装置の長期記憶装置であり、
前記第３メモリ・デバイスは、前記第１メモリ・デバイスと前記第２メモリ・デバイスとは異なる固体ドライブ装置であり、
前記プロセッサが下記の（ａ）−（ｄ）を実行する。
（ａ）前記第１メモリ・デバイス上で前記第１仮想機械の動作を開始させるステップと、
（ｂ）ファイルシステムと、前記第１メモリ・デバイスの第１メモリ内容と、前記第１仮想機械のネットワーク状態の内の少なくとも１つを、前記第２メモリ・デバイスにミラー転写するステップと、
（ｃ）下記の（ｉ）と（ｉｉ）の内の少なくとも１つを検出するステップと、
（ｉ）前記第１メモリ・デバイスと前記第２メモリ・デバイスの内の少なくとも一方に影響を及ぼす停電、
（ｉｉ）第２メモリ・デバイスに影響を及ぼすディスク故障、
（ｄ）前記ステップに応答して、下記のサブステップ(ｄ１）と（ｄ２）の内の少なくとも一方を実行するステップと、
（ｄ１）前記ファイルシステムと、前記第１メモリ内容と、前記第２メモリ・デバイスから第３メモリ・デバイスへのネットワーク状態の内の少なくとも１つを故障回復するサブステップ、
このサブステップ（ｄ１）により、前記第１仮想機械が前記第１メモリ・デバイス上で動き続け、
（ｄ２）前記ファイルシステムと、前記第１メモリ内容と、前記第１メモリ・デバイスと第２メモリ・デバイスから前記第３メモリ・デバイスへのネットワーク状態を故障回復するサブステップと、
このサブステップ（ｄ２）により、前記第１仮想機械は、前記第１メモリ・デバイス上で動作を終了し、前記第３メモリ・デバイス上で動作を開始する、
ことを特徴とする。
【０００６】
本発明の一実施例によれば、第１メモリ（揮発性）と、サポーティング・プロセッサ・システムが、停電から限られた期間、機器を保護する機能を有する無停電電源（ＵＰＳ：Uninterruptible Power Supply）によりバックアップされる。このＵＰＳは、メイン・パワーアウテッジ(停電)・シグナルを出力するが、これはプロセッサ・システムを停止することなく行う。プロセッサ・システムのソフトウェアは、これを検知できる。これによりフォローアップ動作ができる。
【０００７】
本発明の一実施例によれば、ステップ（ｄ２）は、メモリ再マッピング・ステップを有する。このステップにより、停電信号を受領すると直ちに、現在の第１メモリ・デバイスを第３メモリ・デバイスに、再度マッピングする。このステップは、ＵＰＳが機能しなくなる遙か前に終了する。
【０００８】
本発明の第２実施例によれば、第１メモリ・デバイスと第２メモリ・デバイスと第３メモリ・デバイスとプロセッサとを有するマシンにおいて機器の障害を復旧する方法において、
前記第２メモリ・デバイスは、前記第１メモリ・デバイスとは異なるディスク記憶装置の長期記憶装置であり、
前記第３メモリ・デバイスは、前記第１メモリ・デバイスと前記第２メモリ・デバイスとは異なる固体ドライブ装置であり、
前記プロセッサが下記の（ａ）−（ｄ）を実行する
（ａ）前記第１と第２仮想機械を、前記第１と第２のメモリ・デバイスと通信しながら、前記プロセッサ上で実行するステップと、
（ｂ）ファイルシステムと、ネットワーク状態と、前記第１と第２仮想機械の出力を、前記第２メモリ・デバイスに記憶するステップと、
（ｃ）前記プロセッサと第１メモリ・デバイスに影響を及ぼす停電を検知するステップと、
（ｄ）前記ステップ（ｃ）に応答し、パワーを保持するために、前記第１仮想機械の動作を継続すると決定するステップと、
（ｅ）前記プロセッサにより、前記第２仮想機械の動作を終了させるステップと
を有する。
【０００９】
本発明は、様々な実施例があり、それにより様々な利点がある。本発明の一実施例により、低電力の動作モードが可能となる。この低電力の動作モードにおいて、重要ではないディスク向け（diskbound）のサービスが最少にできる。このようなシステムを用いて、長期化した停電あるいはディスクの故障を、ほとんどシームレスに（セッションの保存と呼びの保存を行いながら）フェイルオーバー（故障回復）することができる。低コストのＳＳＤにより、仮想化のレベルと高利用性のレベルが上がり、高バンド幅のシステムのミラー転写に、ファイルシステムのフェイルオーバーによる（移行によるのではなく）非明示的な仮想環境のフェイルオーバー（故障回復）を与える。例えば、第２実施例は、ＳＳＤのＲＡＭミラー転写を用いて直接仮想機械の故障回復を行うが、これは仮想機械の故障回復／切り替えを用いるものではない。システムの融通性により、計画通りのスイッチオーバー（切り替え）の場合には、短期間ではあるが完全なサービスへの切り替えか、長期間に渡る限られたサービスへの故障回復のいずれかを選択することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施例による仮想化システムのブロック図。
【図２】本発明の一実施例によるフローチャート図。
【図３】本発明の一実施例によるフローチャート図。
【図４】本発明の一実施例による仮想化システムのブロック図。
【図５】本発明の一実施例によるフローチャート図。
【発明を実施するための形態】
【００１１】
本発明の仮想化システムは、ＳＳＤの使用範囲を広げて、操作の連続性を提供する。これは、高利用率と高利用率−仮想化のＳＳＤ記憶装置の永続性を利用して、短期のフェイルオーバ（故障回復）／スイッチオーバ（切り替え）を確保する。ディスクの故障や停電の場合には、ＳＳＤは、その間仮想機械に永続的なメモリを提供する。これは、システムのメイン・メモリ上の動作によるか、ＳＳＤそのものの動作によるかのいずれでもよい。その後、システムは、パワー回復のメイン・システムのモードにフェイルバック（故障から戻る）か、オンボード・バッテリの場合にはＳＳＤの安定した記憶装置内での保持状態にフォールバック（待避）するか、長期の停電に対しては無停電電源装置（ＵＰＳ）が切れることになる。
【００１２】
図１は、本発明の仮想化システム１００を示す。このシステム１００は、プロセッサ１０４（複数の仮想機械を実行するマイクロ・プロセッサ）と、メイン・メモリ１０８と、ディスク記憶装置１１２と、ＳＳＤ１１６とを有し、これらは、シグナル・キャリア（信号線）１２０で接続されている。メイン・メモリ１０８とディスク記憶装置１１２は、コンピュータで読み取り可能な記憶媒体を形成する。一般的に、ディスク記憶装置１１２は、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、磁気光学媒体、ＣＤ−ＲＯＭ、他の光学媒体、パンチ・カード、ペーパーテープ、あるいは他の穴の開いた物理的媒体のいずれかである。シグナル・キャリア１２０は、バス（bus）、ＬＡＮ、ＷＡＮ、あるいは他の適宜なキャリアである。一実施例において、プロセッサ１０４とメイン・メモリ１０８は、例えば、近くに、例えばサーバー内に配置され、ディスク記憶装置１１２又はＳＳＤ１１６は、そこから離れて配置される。本発明は、クライアント−サーバ・ネットワーク・タイプについて議論するが、ピアツーピア（peer-to-peer）のネットワーク・タイプにも、採用できる。
【００１３】
図１には示していないが、システム内のプロセッサ１０４とメイン・メモリ１０８は、無停電電源装置（パワーバックアップ機構）に接続されている。無停電電源装置は、停電を通知する信号をシステムに流す。ＶＭ制御モジュール１５６は、この通知信号を検知しそれに応答する。
【００１４】
ＳＳＤ１１６は、揮発性メモリ１２４とドライブ・コントローラ１２８とオンボード電源１３２と非揮発性メモリ１３６を有する。非揮発性メモリ１３６と揮発性メモリ１２４とドライブ・コントローラ１２８は、シグナル・キャリア１４０により相互に接続される。センサ１４４は、シングル・キャリア１４６を介して、ドライブ・コントローラ１２８に、オンボード電源１３２の残り寿命を通知する。パワーライン１４８は、オンボード電源１３２からの電力を、揮発性メモリ１２４とドライブ・コントローラ１２８に与える。ＳＳＤ１１６は、fusion-io（商標）社より製造されたioDrive Duo（商標）である。
【００１５】
ドライブ・コントローラ１２８により、プロセッサ１０４が、揮発性メモリ１２４と非揮発性メモリ１３６と通信する。
オンボード電源１３２は、オンボードのエネルギー貯蔵装置であり、例えば、バッテリー電源（例、ＳＳＤ上のボタン電池）である。
揮発性メモリ１２４と非揮発性メモリ１３６は、コンピュータで読み取り可能な記憶媒体である。
【００１６】
メイン・メモリ１０８は、第１、第２，−−第ｎ（活性）の仮想機械１５２ａ−ｎとＶＭ（仮想機械）制御モジュール１５６とを有する。ＶＭ制御モジュール１５６は、ハイパーバイザ（hypervisor：１台のコンピュータ上で複数のOSを動かす仮想化ソフトウェア)である。ＶＭ制御モジュール１５６は、メイン・メモリ１０８内の仮想機械システム内のドメイン又は仮想機械ゼロである。仮想機械の操作を制御することとは別に、ＶＭ制御モジュール１５６は、所定のフェイルオーバー（故障回復）措置を実行する。これについては、以下説明する。
【００１７】
ディスク記憶装置１１２と揮発性メモリ１２４は、第１、２、．．．ｎ番目のバックアップＶＭを有する。「バックアップＶＭ（仮想機械）」とは、ミラー転写された（メイン）メモリ、ネットワーク（セッション）、対応する仮想機械に取り付けられたファイルシステムの内の１つを意味する。バックアップＶＭのメインテナンスは、様々な技術で実行可能である。
【００１８】
Remus（商標）の商品名で市販されているソフトウェア・システムの一実施例において、ファイルシステム、ネットワーク（セッション）、ＶＭ出力キャッシュ（メイン・メモリ１０８内の）、選択された活性状態のＶＭのメイン・メモリ１０８の状態の周期的な「スナップショット」は、比較的高い頻度で複製される。これらの技術は、４つのステップを利用する。即ち、チェックポイント、送信、同期、リリース（開放）の各ステップを利用する。チェックポイント・ステップと送信ステップにおいては、仮想機械の実行は中断され、活性状態の仮想機械の状態をコピーし、このコピーされた状態を外部のバックアップ記憶装置（特に、ディスク記憶装置１１２又は揮発性メモリ１２４）に送信し、仮想機械が予測実行（speculative execution）を再開する。予測実行は、バックアップ記憶装置からの受領確認を待つことなく、行われる。状態の完全な組を受領すると、チェックポイントは、外部記憶装置からプロセッサ１０４に受領確認される。リリース・ステップにおいては、バッファされたネットワーク出力がリリースされる。通常の出力ストリームが、同期を取らなければならない時を指定する代わりに、仮想機械出力は、メイン・メモリ１０８内に、適宜の時点までバッファされ、同期ポイントに先立って予測的に計算を実行する。仮想機械出力をメイン・メモリ１０８内にバッファすることにより、複製が非同期的に行われる。外部バックアップ記憶装置において、仮想機械のイメージが、活性状態のシステムの故障を検知すると、直ちに実行を開始する。バックアップは、活性状態の仮想機械と周期的にしか一致していないために、全てのネットワーク出力は、状態がバックアップの記憶装置と同期を取るまで、メイン・メモリ１０８内にバッファ（一時的に記憶）される。
【００１９】
Paragon Software Group（商標）社のSnaphot（商標）の商品名で市販されているソフトウェアシステムにより実行される実施例において、ファイルシステムは、所定の第１データ・ブロックを、コンピュータで読み取り可能な記憶媒体に書き込み、その時それらにポインターでマークを付ける。スナップショットが行われるが、このスナップショットは、データを記憶媒体に読み込んだり、書き込んだり、コピーしたりすることなく、行われる。スナップショットは、ファイルシステム、ネットワーク、第１ＶＭ１５２ａ−ｎの仮想機械出力キャッシュ状態のスナップショットである。スナップショットは、単に現在のロケーションを指すだけである。一変形例において、ファイルシステムは、第１データブロックの所定の１つを修正し、所定のブロックで第２データを記憶媒体に書き込む。最初に、所定の第１データブロックを新たなロケーションにコピーし、その後、元の所定の第１データブロックを第２データに変更する。このファイルシステムは、同一のロケーションを指す。他の変形例において、ファイルシステムは、第２データを記憶媒体に書き込むが、これは所定の第１データブロックを変更することなく行う。このファイルシステムは、所定の第１データブロックの代わりに、第２データを指すが、同時にスナップショットは、依然として選択された第１データブロック（これは変化していない）を指す。
【００２０】
他のミラー転写技術は、Double-Take（商標）社から市販されているDouble-Take（商標）Softwareを用いる技術である。
【００２１】
揮発性メモリ１２４は、アラーム・モジュール１６４を有し、ディスク記憶装置が故障した時や停電が発生した時を、決定する。これは、ＶＭ制御モジュール１５６からの警報信号や中断指令信号に応答して、行われる。この信号は、無停電電源装置ＵＰＳ（図示せず）で受領する。
【００２２】
図２に本発明のシステム１００の動作を示す。この実施例において、第１ＶＭ１５２ａ−ｎのミラーリング（ミラー転写）動作は、ディスク記憶装置１１２で行われるものとする。
【００２３】
ステップ２００において、ディスク記憶装置１１２の故障を、ＶＭ制御モジュール１５６が検知し、警報信号あるいは中断信号が、アラーム・モジュール１６４に送信される。ＶＭ制御モジュール１５６には、故障が通知される。これは、書き込みあるいは読み出しコマンドに応答して受領したエラーメッセージにより、行われる。
【００２４】
それに応答して、アラーム・モジュール１６４は、ドライブ・コントローラ１２８とＶＭ制御モジュール１５６に、通知し、所定の故障復旧操作を実行する。この故障復旧操作は、ＶＭ（仮想機械）状態の変更を、ディスク記憶装置１１２の代わりにＳＳＤ１１６にミラー転写することである。この実施例において、揮発性メモリ１２４内の第１，第２，第ｎ番目のバックアップＶＭ１６０ａ−ｎで示すように、ＳＳＤ１１６へファイルシステムのフェイルオーバー（故障回復）が行われ、活性状態にある連続した第１、第２，第ｎ番目のＶＭ１５２ａ−ｎの操作が可能となる。言い替えると、所定の活性状態にある仮想機械用のメイン・メモリ１０８へのデータ記憶装置のポインター（あるいはリファレンス）は、前記の所定の仮想機械に対し保持され、揮発性メモリ１２４に対するデータ記憶ポインターは、ディスク記憶装置１１２を参照する為に使用された前のものとは異なり、ディスク記憶装置１１２により以前にミラー転写された仮想機械状態情報を参照する為に、用いられる。その後、ミラー転写は、揮発性メモリ１２４内で継続する。これは上記の技術を用いて行われる。揮発性メモリ１２４によるミラー転写は、ディスク記憶装置１１２によるミラー転写と並行して行われるか、或いは揮発性メモリ１２４によりディスク記憶装置１１２の故障後にのみ行われる。揮発性メモリ１２４内の第１、第２、第ｎ番目のバックアップＶＭ１６０ａ−ｎのミラー転写は、非揮発性メモリ１３６内で同時に行われる。この実施例により、別のメモリ内の新たな（別の）活性仮想機械は、この操作を実行しないが、メイン・メモリ内の同一の活性仮想機械が、この操作を継続する。所定の活性状態のバックアップＶＭ１６０に対して、特定のＶＭインスタンスから別のＶＭインスタンスへの切り替えは、行われない。
【００２５】
図１、３、４を参照して、本発明のシステム１００の動作を説明する。前の実施例と比較すると、本発明の実施例は、ファイルシステムのＶＭ参照の切り替え（あるいはディスク記憶装置１１２からのＳＳＤ１１６の揮発性メモリ１２４へのフェイルオーバーの実行）のみならず、メイン・メモリ１０８からＳＳＤ１１６の揮発性メモリ１２４へのメモリのフェイルオーバーの実行をする。言い替えると、活性状態にある第１、第２，第ｎ番目のＶＭ１５２ａ−ｎは、ＳＳＤ１１６の揮発性メモリ１２４に直接マッピングされる。ディスク記憶装置１１２の故障の場合、活性状態のＶＭフェイルオーバーがトリガーされて、メイン・インスタンス（あるいは活性ＶＭ）を走らす。これは、メイン・メモリ１０８をＳＳＤ１１６にメモリ・ミラー転写させ、かつメイン・メモリ１０８が活性ＶＭを走らすことを停止させることにより、行う。
【００２６】
ステップ３００において、ディスク記憶装置１１２の故障が検出される。ディスク記憶装置１１２の故障の前において、図１に示す仮想化システムは、メイン・メモリ１０８内にある第１、第２，第ｎ番目のＶＭ１５２ａ−ｎは活性状態で、ディスク記憶装置１１２と、更には選択事項として、揮発性メモリ１２４内の第１，第２、第ｎ番目のＶＭ１６０ａ−ｎをバックアップしている。
【００２７】
ステップ３０４においては、図４に示すように、活性状態にある第１ＶＭ１５２ａ−ｎを切り替えて、メイン・メモリ１０８ではなくＳＳＤ１１６を走らす。言い替えると、活性状態の第１ＶＭ１５２ａ−ｎの全てのリファレンスあるいはポインターを、メイン・メモリ１０８とディスク記憶装置１１２から、ＳＳＤ１１６に切り替える。これは、活性状態にあるＶＭ１６０ａ−ｎをパーシング（parsing：構文解析）し、活性状態にあるＶＭ１６０ａ−ｎの物理的（実際の）ページを、ＳＳＤ１１６のミラー転写された揮発性メモリ１２４の物理的（実際の）ページに再度マッピングし、その後、揮発性メモリ１２４上で、活性状態にあるＶＭ１６０ａ−ｎの操作を再スタートすることにより、行う。言い替えると、メイン・メモリ１０８とディスク記憶装置１１２から、ＳＳＤ１１６内の揮発性メモリ１２４への完全な切り替えがなされたことになる。ＳＳＤ１１６の揮発性メモリ１２４は、チェックポイントされたメモリとネットワークとファイルシステムの状態に依存する、即ちそれを参照する。揮発性メモリ１２４内の第１ＶＭ１５２ａ−ｎのミラー転写は、非揮発性メモリ１３６内で同時に実行される。図４に示す実施例では、メイン・メモリ１０８は、ＶＭミラー転写操作用に、使用される。
【００２８】
図４、５を参照して、本発明のシステム１００の動作を説明する。前と実施例に比較すると、この実施例は、活性状態にある第１ＶＭ１５２ａ−ｎのファイルシステムのリファレンスを、ＳＳＤ１１６の揮発性メモリ１２４に直接マッピングし、このＶＭ１６０ａ−ｎを、非揮発性メモリ１３６にミラー転写している。この実施例において、ＳＳＤ１１６の揮発性メモリ１２４を、プロセッサ１０４のプライマリ・メモリとして使用しているために、ある記憶媒体から別の記憶媒体への切り替えとフェイルオーバーの複雑さを回避できる。選択的事項として、メイン・メモリ１０８は仮想機械操作用にのみ使用される。第１ＶＭ１５２ａ−ｎの動作がＳＳＤ１１６の揮発性メモリ１２４上で行われる。図４の実施例は、ＵＰＳ（バックアップ用電源）４００を含む。これにより、バックアップ・パワーを、ライン４０４を介して、電源の故障の場合には、プロセッサ１０４とメイン・メモリ１０８に与える。
【００２９】
この実施例は、停電時の回復性を提供する。
図５において、停電がステップ５００で検出される。この停電は、プロセッサ１０４と、メイン・メモリ１０８と、ＳＳＤ１１６に、影響する。この停電の結果として、プロセッサ１０４と、メイン・メモリ１０８と、ＳＳＤ１１６が、一時的な電源で動作する。ＳＳＤ１１６の一時的電源はオンボード電源１３２であり、プロセッサ１０４とメイン・メモリ１０８の一時的電源は無停電電源装置（バックアップ電源）４００である。
【００３０】
ステップ５０４において、ＶＭ制御モジュール１５６は、第１、第２、第ｎ番目のＶＭ１５２ａ−ｎの内、どの仮想機械の動作を継続し、どの仮想機械の動作を止めるを決定する。これは、プロセッサ１０４と、メイン・メモリ１０８と、ＳＳＤ１１６により消費される電力を減らし、かつ高い処理能力を維持するためである。仮想機械（ＶＭ）を選択をする際に用いられるファクターの一例は以下である。システム操作用に選択されたＶＭの重要性（これは仮想機械の種類と機能に依存する）と、各ＶＭを走らすために使用されるメモリ量、各ＶＭを実行するのに必要な処理パワー量（又はＶＭにより消費されるエネルギー量）と、ＶＭがリアルタイムで実行すべきかあるいは時間差を持って実行してもよいかの判断（ディスク記憶装置の管理は、時間差を許容し、それ故に、より遅い非揮発性メモリ１３６内で走ることができる、これはより早い揮発性メモリ１２４を使用しなければならないのと対照的である）とを含む。
【００３１】
ステップ５０８において、選択された仮想機械の状態は、非揮発性メモリ１３６に記憶され、その動作を終了する。その間動作を継続すべき仮想機械は、揮発性メモリ１２４上で走る。
【００３２】
ステップ５１２において、センサ１４４は、オンボード電源１３２の残り寿命を決定する。
【００３３】
ステップ５１６において、ドライブ・コントローラ１２８は、残り寿命が動作の継続に十分であるか否かを決定する。十分な場合には、プロセスはステップ５１２に行き、適宜の間隔で、又は別の構成として、ステップ５０４に戻り、そこで追加の仮想機械の動作を中止すべきか否かの決定がなされる。残寿命が十分でない場合には、プロセスはステップ５２０に移る。
【００３４】
ステップ５２０において、ドライブ・コントローラ１２８は、メイン・メモリ１０８内のバックアップＶＭ１６０ａ−ｎに移る。別の構成においては、第１、第２、第ｎ番目のＶＭ１５２ａ−ｎは、非揮発性メモリ１３６にミラー転写され、全てのＶＭの動作を終了する。
【００３５】
ステップ５２４において、前の構成において、メイン・メモリ１０８上のバックアップＶＭ１５２ａ−ｎの実行が開始される。ＳＳＤ１１６のオンボード電源１３２が、所定のレベルまでチャージされると、ＶＭの実行は、再び揮発性メモリ１２４に移され、動作が継続される。
【００３６】
フェイルバック（故障から戻る）とスイッチバック（切り替えから戻る）は、フェイルオーバー（故障回避）とスイッチオーバー（切り替え）の反対動作である。フェイルオーバーとスイッチオーバーは、メイン・メモリ１０８が停電の障害を受け、第１、第２，第ｎ番目のＶＭ１５２ａ−ｎを記憶することを継続する時には、メイン・メモリ１０８に適応される。
【００３７】
他の実施例において、第１、第２，第ｎ番目のＶＭ１５２ａ−ｎは、非揮発性メモリ１３６に直接マッピングされるが、選択的事項として、メイン・メモリ１０８を用いて、フェイルバック、或いは、第１、第２，第ｎ番目のバックアップＶＭ１６０ａ−ｎを、ＳＳＤ１１６の揮発性メモリ１２４にミラー転写してもよい。言い換えると、第１、第２，第ｎ番目のＶＭ１５２ａ−ｎは、非揮発性メモリ１３６上で走らせてもよい。
【００３８】
用語「ファイル・システム（filesystem)」とは、コンピュータファイルとそれが含む日付を記憶し組織化することにより、そのファイルを見出しアクセスを容易にするシステムである。ファイル・システムは、コンピュータで読み取り可能な記憶媒体を使用し、ファイルの物理的な位置（ロケーション）を保持する。
用語「ハイパーバイザ（hypervisor）」あるいは仮想機械のモニタは、仮想化を提供するソフトウェア・レイヤーを指す。ハイパーバイザは、ベアーなハードウェア（タイプＩあるいはネイティブ仮想機械）、あるいはオペレーティング・システム（タイプＩＩあるいはホストされた仮想機械）上で動作する。
用語「ページ（page）」とは、ある時点でアクセス可能なメモリの一部を意味する。
用語「仮想機械」とは、システム仮想機械とプロセス仮想機械を含む。システム仮想機械は、ハードウェア仮想機械とも称し、完全なシステム・プラットフォームを提供して、完全なオペレーティング・システムの実行をサポートする。プロセス仮想機械は、１つのプロセスとサポートする１つのプログラムを動かす。システム仮想機械により、元となる物理的マシーンのリソースを異なる仮想機械間で共有できる。各仮想機械は、それ自身のオペレーティング・システム上で動作する。プロセス仮想機械は、オペレーティング・システム内の通常のアプリケーションとして動作し、サポートされるプロセスがスタートした時に作りだされ、そのプロセスが終了した時に壊される。仮想機械の共通の特徴は、内部のソフトウェア・ランニングが、仮想機械により提供されるリソースと、アブストラクションに限定される点である。
【００３９】
用語「コンピュータで読み取り可能な媒体」とは、コンピュータが実行するプロセスを記憶する媒体或いは伝送媒体を意味する。媒体とは、非揮発性媒体、揮発性媒体、伝送媒体を意味する。非揮発性の媒体とは、ＮＶＲＡＭ、磁気ディスク又は光学ディスクである。揮発性媒体とは、ＤＲＡＭ、メインメモリを意味する。このコンピュータで読み取り可能な媒体の一般的なものとしては、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気ディスク、他の磁気媒体、磁気光学媒体、ＣＤ−ＲＯＭ、パンチカード、ペーパーテープ等、更にＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、メモリカード、メモリチップ、或いはカートリッジ等がある。ｅ−ｍａｉｌ或いは他の自己保存型の情報アーカイブに付属したデジタルファイルは、記憶媒体に等価な分配型の記憶媒体であり、本発明でいう記憶媒体と見なすことができる。コンピュータで読み取り可能な媒体がデータベースとして構築された場合には、このデータベースは、あらゆる種類のデータベース、例えば関連型、階層型、オブジェクト志向型のいずれをも含む。
冗長な説明を回避するために公知の構造については省略した、或いはブラックボックスの形態で示している。この省略は本発明の範囲を制限するものではない。ここに開示した実施例は、発明を理解するためのものであり、本発明は個々に述べた特定の実施例以外の様々な方法で実現できる。
上記の実施例では、システムの様々な構成要素或いはシステムのある構成要素は、遠隔地に即ち分散型ネットワーク（ＬＡＮ、ケーブルネットワーク、インターネット）のノードに、又は専用のシステム内の離れた点に配置されている。しかしシステムのこれ等の構成要素は、１つの装置例えばゲートウエイに組み込むこともできる。或いは分散型ネットワーク（例えばアナログ又はデジタルの通信ネットワーク、パケット交換ネットワーク、回路交換ネットワーク、ケーブルネットワーク）の特定のノード上に、集めることもできる。
ここで議論したフローチャートは、特定のイベントのシーケンスを例に説明するが、本発明の操作に影響を及ぼすことなく、これ等のシーケンスの変更、追加、一部省略も可能である。本発明のシステムと方法は、特殊コンピュータ、プログラムされたマイクロプロセッサ、マイクロコントローラ、ＡＳＩＣ、他の集積回路ＤＳＰ、ハードワイヤド電子素子、論理素子、例えばディスクリートな要素回路、プログラム可能な論理回路、ゲートアレイ、例えばＰＬＤ、ＰＬＡ、ＦＰＧＡ、ＰＡＬ、特殊目的コンピュータ或いは他の手段で実現できる。
他の実施例に於いては、ここに開示された方法は、オブジェクト指向のソフトウエア開発環境を用いたソフトウエアと組み合わせて実現できる。このソフトウエア環境は、様々なコンピュータ又はワークステーションで使用されるポータブルなソースコードを提供する。別の構成として、開示されたシステムは、標準の論理回路又はＶＬＳＩデザインを用いて一部又は全部のハードウエアで実現できる。本発明のシステムを実行するのにハードウエア又はソフトウエアを用いるかは、システムに要求される速度と効率に依存する。特に使用される特定のソフトウエア、ハードウエアのシステム、マイクロプロセッサ又はマイクロコンピュータシステムに依存する。
他の実施例に於いては、開示された方法は、コンピュータで読み取り可能な記憶媒体に記憶されたソフトウエアで実行され、コントローラとメモリとを有するプログラムされた汎用コンピュータ、特殊目的コンピュータ、マイクロプロセッサ等で実施される。これ等の実施例に於いては、本発明のシステムと方法は、パソコンに組み込まれたプログラムで実行できる。例えばアプレット、ＪＡＶＡ、ＣＧＩスクプリト、サーバ或いはコンピュータ、ワークステーションに記録された資源或いは専用の測定システムに組み込まれたルーチン等で実施できる。
本発明のシステムは、本発明のシステムと方法をソフトウエア又はハードウエアのシステムに物理的に組み込むことにより実施することもできる。  本発明は、特定の標準及びプロトコルを例に説明したが、本発明はこのような標準とプロトコルに制限されるものではない。他の類似の標準とプロトコルも本発明で用いることができる。これ等の標準とプロトコルは、今後開発されるより効率的な標準とプロトコルで置換されるかも知れないが、このような置換も本発明の一態様（一実施例）と考えられる。
【００４０】
以上の説明は、本発明の一実施例に関するもので、この技術分野の当業者であれば、本発明の種々の変形例を考え得るが、それらはいずれも本発明の技術的範囲に包含される。特許請求の範囲の構成要素の後に記載した括弧内の番号は、図面の部品番号に対応し、発明の容易なる理解の為に付したものであり、発明を限定的に解釈するために用いてはならない。また、同一番号でも明細書と特許請求の範囲の部品名は必ずしも同一ではない。これは上記した理由による。用語「又は」に関して、例えば「Ａ又はＢ」は、「Ａのみ」、「Ｂのみ」ならず、「ＡとＢの両方」を選択することも含む。特に記載のない限り、装置又は手段の数は、単数か複数かを問わない。
【符号の説明】
【００４１】
１００  システム
１０４  プロセッサ
１０８  メイン・メモリ
１１２  ディスク記憶装置
１２４  揮発性メモリ
１２８  ドライブ・コントローラ
１３２  オンボード電源
１３６  非揮発性メモリ
１４４  センサ
１５２ａ  第１ＶＭ
１５６  ＶＭ制御モジュール
１６０ａ  第１バックアップＶＭ
１６４  アラーム・モジュール
図２
２００：ディスク記憶装置の故障が検出された
２０４：状態変化の所定の組がディスク記憶装置の代わりにＳＳＤにミラー転写される
図３
３００：ディスク記憶装置の故障が検出された
３０４：仮想機械がＳＳＤ上のバックアップ用仮想機械に切り替わる。
図５
５００：停電を検出した
５０４：停止すべき仮想機械を選択する。
５０８：選択された仮想機械の状態を非揮発性メモリにセーブし終了する
５１２：オンボード電源の残り寿命をチェックする
５１６：許容可能か？
５２０：メイン・メモリのバックアップＶＭに移行する
５２４：メイン・メモリを用いてＶＭを実行する
【図１】
0005578720.tif 000002
【図２】
0005578720.tif 000003
【図３】
0005578720.tif 000004
【図４】
0005578720.tif 000005
【図５】
0005578720.tif 000006