JP2005182781A - バックアッププロセスのチェックポイント状態の永続メモリデバイス - Google Patents

バックアッププロセスのチェックポイント状態の永続メモリデバイス Download PDF

Info

Publication number
JP2005182781A
JP2005182781A JP2004354873A JP2004354873A JP2005182781A JP 2005182781 A JP2005182781 A JP 2005182781A JP 2004354873 A JP2004354873 A JP 2004354873A JP 2004354873 A JP2004354873 A JP 2004354873A JP 2005182781 A JP2005182781 A JP 2005182781A
Authority
JP
Japan
Prior art keywords
npmu
persistent memory
memory
memory unit
checkpoint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004354873A
Other languages
English (en)
Inventor
Roger Hansen
ロジャー・ハンセン
Pankaj Mehra
パンカジ・メラ
Sam Fineberg
サム・ファインバーグ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2005182781A publication Critical patent/JP2005182781A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 障害のある領域のアプリケーションプログラムのチェックポイント状態を、動作可能な領域で実行されるアプリケーションプログラムのバックアップコピーに提供する。
【解決手段】 本発明にかかるシステムは、永続メモリユニットに取り付けられたネットワークインターフェースを含む。永続メモリユニットは、主プロセスからチェックポイントデータを受信し、バックアッププロセスで使用されるようにチェックポイントデータへのアクセスを提供し、主プロセスが障害の場合に、復旧能力をサポートする。ネットワークインターフェースは、永続メモリユニットの仮想アドレスと物理アドレスとの間のアドレス変換情報を提供する。
【選択図】図1A

Description

本発明は、バックアッププロセスのチェックポイント状態の永続メモリデバイスに関する。
コンピュータの障害、さらにはコンピュータ上で実行されるアプリケーションプログラムの障害は、多くの場合、かなりの量のデータおよび中間計算値を失うことになる可能性がある。
障害の原因は、ハードウェアが関係している可能性もあれば、ソフトウェアが関係している可能性もあるが、いずれの場合も、結果は、費用を要するものとなる可能性があり、特に、データ操作が中途で中断された場合に費用の要するものとなる可能性がある。
大きなソフトウェアアプリケーションの場合、障害は、障害前のアプリケーションの状態のステータスを再生するのに多大な労力を必要とするおそれがある。
一般に、チェックポイントおよび復旧の技法は、正常な実行中にプロセス状態を定期的に保存し、その後、保存された状態を、障害に続くバックアッププロセスに復旧させる。
このように、復旧されたチェックポイントからのアプリケーションプロセスによって行われる進行に対して、失われた作業の量が最小限に抑えられる。
従来、コンピュータは、コンピュータのプロセッサに接続されたシステムメモリまたは磁気テープや磁気ディスク等の他の入出力(I/O)ストレージデバイスのいずれかにチェックポイントデータを記憶していた。
I/Oストレージデバイスは、PCI(本来の名称は周辺機器相互接続)等のI/Oバスを通じて、または、ファイバチャネル(Fiber Channel)、インフィニバンド(Infiniband)、サーバネット(ServerNet)、イーサネット(登録商標)等のネットワークを通じてシステムに取り付けることができる。
I/Oストレージデバイスは、アクセス時間が1ミリ秒よりも多くかかり、通常、低速である。
それらI/Oストレージデバイスは、小型コンピュータ用周辺機器インターフェース(SCSI)プロトコルや伝送制御プロトコル/インターネットプロトコル(TCP/IP)等の特別なI/Oプロトコルを利用し、通常、ブロック交換デバイスとして動作する(例えば、データは、固定サイズのデータブロックで読み書きされる)。
これらのタイプのストレージI/Oデバイスの特徴は、これらのデバイスが電力を失ったり、再起動されたりした時に、事前に記憶された情報を保持するように永続的であるということである。
さらに、I/Oストレージデバイスは、いくつかのプロセッサが障害になった後であっても、共有I/Oネットワークを通じて複数のプロセッサからアクセスすることができる。
本明細書で使用される際に、用語「永続」とは、メモリの内容を失うことなく、パワーリセットに耐えることができるコンピュータメモリストレージデバイスを指す。
永続メモリデバイスは、ソフトウェアアプリケーションを起動または再起動するデータを記憶するのに使用されてきた。
単純なシステムでは、永続メモリデバイスは、静的であり、ソフトウェアが実行されるに伴い変更されることはない。
ソフトウェア環境の初期状態は、永続メモリに記憶される。
コンピュータへの電力障害または他の或る障害の場合、ソフトウェアはその実行を初期状態から再起動する。
この手法に関する1つの問題は、すべての中間計算値を再計算しなければならないということである。
この問題は、特に、大量のユーザデータをこのプロセス中に再ロードしなければならない場合に厄介なものになる可能性がある。
ユーザデータの一部またはすべてがもはや利用可能でない場合には、障害前の状態を再構成できない場合がある。
システムメモリは、一般に、システムバスを通じてプロセスに接続され、この場合、このようなメモリは、保証アクセス時間が数十ナノ秒で測定され、比較的高速である。
さらに、システムメモリには、バイトレベルの粒度で直接アクセスすることができる。
しかしながら、システムメモリは、通常、揮発性であり、電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、その内容が失われるようになる。
また、システムメモリは、通例、プロセッサと同じ障害領域内にあり、プロセッサに障害が生じると、この付属メモリにも障害が生じ、もはやアクセスすることができないようになる。
電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、メモリのレイアウトを記述するメタデータも失われる。
従来技術のシステムは、バッテリバックアップされたダイナミックランダムアクセスメモリ(BBDRAM)、ソリッドステートディスク、およびネットワーク付属揮発性メモリを使用していた。
従来のBBDRAMは、例えば、本来の永続メモリを上回るいくつかの性能の利点を有する場合がある。
しかしながら、BBDRAMには、グローバルにアクセスすることができない。
さらに、付属のCPUと同じ障害領域内にあるBBDRAMは、CPUの障害またはオペレーティングシステムのクラッシュの場合にアクセス不能にされる。
したがって、電力障害または再ブート後にシステムを素早く再起動できるように、BBDRAMは、すべてのシステムメモリが永続的である状況で使用されることが多い。
BBDRAMは、長い停電期間中は、依然として揮発性であり、バッテリが消耗する前にその内容を記憶するように代替的な手段を提供しなければならない。
重要なことは、BBDRAMのこの使用は、非常に制限的であり、例えば、ネットワーク接続型永続メモリの用途に使用するように修正することはできない。
バッテリバックアップされたソリッドステートディスク(DDSSD)も、他の実施態様に対して提案されてきた。
これらのBBSSDは、永続メモリを提供するが、機能的には、ディスクドライブをエミュレーションするものである。
この手法の重大な欠点は、I/Oアダプタを通じてこれらのデバイスにアクセスすることに関連して、待ち時間が追加されることである。
この待ち時間は、ホストコンピュータのオペレーティングシステムを迂回しないディスク、さらにはBBSSDによって使用されるブロック指向型ストレージモデルおよびファイル指向型ストレージモデルに固有のものである。
いくつかの欠点をなくすようにソリッドステートディスクを修正することは可能であるが、性能がI/Oプロトコルおよび当該I/Oプロトコルに関連したデバイスドライバによって制限されるので、固有の待ち時間はなくすことができない。
BBDRAMと同様に、障害のある領域のアプリケーションプログラムのチェックポイント状態を、動作可能な領域で実行されるアプリケーションプログラムのバックアップコピーに提供する技術を追加する必要がある。
いくつかの実施の形態では、システムは、永続メモリユニットに取り付けられたネットワークインターフェースを含む。
永続メモリユニットは、主プロセスからチェックポイントデータを受信するように構成され、バックアッププロセスで使用されるようにチェックポイントデータへのアクセスを提供して、主プロセスが障害の場合に、復旧能力をサポートするように構成される。
ネットワークインターフェースは、永続メモリユニットの仮想アドレスと物理アドレスとの間のアドレス変換情報を提供するように構成される。
他の実施の形態では、永続メモリユニットは、チェックポイント状態に対する複数の更新を記憶することができる。
チェックポイント状態、および、もしあればチェックポイント状態に対する更新は、バックアッププロセスによって定期的に取り出すこともできるし、主プロセスの障害時に一度に取り出すこともできる。
さらに別の実施の形態では、主プロセスの動作状態を復旧する方法は、永続メモリユニットの仮想アドレスを永続メモリユニットの物理アドレスにマッピングすること、および永続メモリユニットにおいて、主プロセスの動作状態に関するチェックポイントデータを受信することを含む。
いくつかの実施の形態では、チェックポイントデータは、バックアッププロセスに提供される。
さらに別の実施の形態では、アドレスに関するコンテキスト情報が、主プロセスおよびバックアッププロセスに提供される。
別の実施の形態では、主プロセスが障害の場合に、永続メモリユニットは、バックアッププロセスにチェックポイントデータを提供する。
あるいは、さらに別の実施の形態では、永続メモリユニットは、連続的な時間間隔でプロセッサから送信された複数の組のチェックポイントデータを記憶するように構成することもできるし、複数の組のチェックポイントデータをバックアッププロセスに一度に提供するように構成することもできる。
本開示が関係する技術分野の当業者は、本開示を理解することによって、これらの実施の形態および他の実施の形態を理解することになる。
この明細書に組み込まれてこの明細書の一部を形成する添付図面は、本発明の実施の形態を示すものであり、その説明と共に、本発明の原理を説明するのに役立つものである。
従来技術のシステムは、永続メモリを、待ち時間が比較的長いブロック指向型アーキテクチャおよびファイル指向型I/Oアーキテクチャのコンテキストにおいてのみ使用していたのに対して、本教示は、従来のI/Oストレージデバイスのように永続的ではあるが、粒度が細かく待ち時間の短いシステムメモリのようにアクセスすることができるメモリを説明する。
本教示によるシステムによって、アプリケーションプログラムは、1つまたは複数のチェックポイント状態を記憶することが可能になり、主アプリケーションプログラムの実行を妨げるハードウェア障害またはソフトウェア障害の場合には、そのアプリケーションのバックアップコピーがこれらのチェックポイント状態にアクセスすることができる。
図1に示すように、ネットワーク接続型永続メモリを使用するシステム100は、ネットワーク接続型永続メモリユニット(NPMU(network-attached persistent memory unit))102およびリモートダイレクトメモリアクセス(RDMA)が可能なシステムエリアネットワーク(SAN(system area network))等のSAN112を含む。
NPMU102には、1つまたは複数のプロセッサノード104、106が、対応するネットワークインターフェース(NI)108、110を通じてアクセスすることができる。
RDMAは、NI108、110、および114の特徴として実施することができ、それによって、プロセッサノード104、106は、NPMU102のメモリに情報を直接記憶することができ、NPMU102のメモリの情報を直接取り出すことができる。
NPMU102へまたはMPMU102から直接データを転送することによって、プロセッサノード104、106のメモリとオペレーティングシステム144、146のカーネルI/Oプロセスとの間でデータをコピーする必要がなくなる。
このように、RDMA能力によって、主プロセス116とバックアッププロセス122との間、および、メモリ転送をハンドリング中のオペレーティングシステム144、146間のSAN112を介したコンテキスト切り換えの回数が削減される。
SAN112は、ネットワークインターフェース(NI)114を介してNPMU102にアクセスする。
NPMU102は、ストレージI/Oの耐久性および復旧可能性を、システムメモリの高速アクセスおよび細かな粒度でのアクセスと組み合わせる。
ストレージのように、NPMU102のコンテンツは、電力の喪失またはシステムの再起動を耐え抜くことができる。
リモートメモリのように、SAN112を横切ってNPMU102にアクセスすることができる。
一方、直接接続されたメモリとは異なり、1つまたは複数のプロセッサノード104、106に障害が生じた後であっても、NPMU102に継続してアクセスすることができる。
プロセッサノード104上で実行されている主プロセス116は、リモートコマンド、例えば書き込みコマンドを起動して、NPMU102のチェックポイント状態120のデータを送信することができる。
また、主プロセス116は、チェックポイント状態120のデータを定期的に提供することもできる。
プロセッサノード106上で実行されているバックアッププロセス122は、主プロセス116の障害の場合に、主プロセス116の機能を実行するように構成される。
また、バックアッププロセス122は、読み出しコマンド等のリモート読み出しオペレーションおよびリモート書き込みオペレーションをNPMU102に対して起動し、定期的にかつ/または主プロセス116の障害時にチェックポイント状態120にアクセスすることもできる。
例えば、プロセッサノード104によって起動された書き込みオペレーションにおいて、データをNPMU102に記憶するのに成功すると、そのデータは、耐久性のあるものとなり、プロセッサノード104、106の停電または障害を耐え抜くことになる。
特に、電力が長期間切断された後、または、プロセッサノード104、106のオペレーティングシステムが再ブートされた後であっても、NPMU102が正確に機能し続ける限り、メモリのコンテンツは維持される。
NPMU102は、データ転送オペレーションに加えて、さまざまな管理コマンドに対して応答するように構成することもできる。
いくつかの実施の形態では、プロセッサノード104、106は、少なくとも1つの中央処理装置(CPU)およびシステムメモリを含み、CPUがオペレーティングシステム144、146を実行するように構成されるコンピュータシステムである。
プロセッサノード104、106は、さらに、主プロセス116およびバックアッププロセス118等の任意のタイプのアプリケーションプログラムの1つまたは複数を実行するように構成することもできる。
システム100は、2つのプロセッサノード104、106と共に示されるが、追加されたプロセッサノード(図示せず)が、ネットワークインターフェース108、110、114を介してネットワーク(図示せず)により、SAN112、さらにはプロセッサノード104、106と通信することもできる。
いくつかの実施の形態では、SAN112は、複数のネットワークインターフェースユニット(NI)を接続する、RDMAが可能なネットワークである。
このNIは、NI108、110、114等であり、オペレーティングシステム144、146に通知することなく、2つのプロセッサノード104、106の間、または、プロセッサノード104、106とNPMU102等のデバイスとの間でバイトレベルのメモリオペレーションを実行することができる。
この場合、SAN112は、仮想/物理アドレス変換を実行して、連続したネットワーク仮想アドレス空間を不連続な物理アドレス空間にマッピングするように構成される。
このタイプのアドレス変換によって、NPMU102の動的管理が可能になる。
RDMA能力を有する市販のSAN112には、サーバネット、ギガネット(GigaNet)、インフィニバンド、および仮想インターフェースアーキテクチャ(Virtual Interface Architecture)に準拠したすべてのSANが含まれるが、これらに限定されるものではない。
プロセッサノード104、106は、一般的に、各NI108、110を通じてSAN112に取り付けられるが、多くの変形が可能である。
しかしながら、より一般的には、プロセッサノードは、読み出しオペレーションおよび書き込みオペレーションを通信する装置に接続されることだけが必要である。
例えば、この実施の形態の別の実施態様では、プロセッサノード104、106は、マザーボード上に、SAN112の代わりにデータバス、例えばPCIバスを利用するさまざまなCPUを含む。
本教示は、必要に応じて、より大きな実施態様またはより小さな実施態様を収容するように拡大縮小できることに留意されたい。
ネットワークインターフェース(NI)108、110、114は、NPMU102に通信接続されて、NPMU102と共に含まれる永続メモリへのアクセスを可能にする。
このタイプの永続メモリを含めて、図1Aのさまざまなコンポーネントに対して、任意の適切な技術を利用することができる。
したがって、図1Aの実施の形態は、永続メモリを実現する特定の技術に限定されるものではない。
実際には、複数のメモリ技術をふさわしいものとすることができ、これらのメモリ技術には、あらゆる種類の磁気ランダムアクセスメモリ(MRAM)、磁気抵抗ランダムアクセスメモリ(MRRAM)、ポリマ強誘電体ランダムアクセスメモリ(PFRAM)、オボニクスユニファイドメモリ(OUM(ovonics unified memory))、BBDRAM、およびフラッシュメモリが含まれる。
システム100は、情報ブロック全体を転送するBBSSDと比較して、バイトレベルメモリアクセスを含む高粒度のメモリアクセスを可能にするように構成することができる。
とりわけ、メモリアクセスの粒度は、システム100の必要に応じて調整することができる。
NPMU102におけるメモリのアクセス速度も、システム100用に実施されるデータ通信方式の転送レートをサポートするのに十分高速であるべきである。
永続情報は、使用されている永続メモリがデータを保持できる程度に提供されることに留意すべきである。
例えば、多くの用途では、永続メモリは、電力が失われた時間量に関係なく、データを記憶するように要求される場合があるのに対して、別の用途では、永続メモリは、数分または数時間の間だけ必要とされる場合がある。
1つまたは複数の独立した間接アドレス指定メモリ領域を作成するメモリ管理機能をシステム100に設けることができる。
さらに、電力の喪失またはプロセッサ障害後のメモリ復旧用にNPMUメタデータを設けることもできる。
メタデータには、例えば、NPMU102内の保護されたメモリ領域のコンテンツおよびレイアウトが含まれ得る。
このように、NPMU102は、データだけでなく、データの使用方法も記憶する。
必要があれば、NPMU102は、メタデータをバックアッププロセス122に提供して、システム100が、主プロセス116に関連した電力障害またはシステム障害から復旧することを可能にすることができる。
図1Aに示すシステム100の実施の形態では、チェックポイント状態120に対する各更新は、チェックポイント状態120用に現在記憶されている情報の一部またはすべてを上書きすることができる。
チェックポイント状態120のコピーは1つしかないので、主プロセス116が障害になるまで、バックアッププロセス122はアイドルの状態にしておくことができ、その後、チェックポイント状態120を読み出して、主プロセス116が実行していた機能を継続することができる。
図1Bは、NPMU102からチェックポイント状態120にアクセスする方法の一実施の形態の図である。
図示するように、主プロセス116は、チェックポイント状態120の開始アドレスにデータを書き込み、バックアッププロセス122は、チェックポイント状態120の開始からデータを読み出す。
このような実施の形態では、チェックポイント状態120のコピーは1つだけ保持する必要がある。
図1Cは、チェックポイント状態120に関連付けられた複数のチェックポイント更新エリア128〜132で構成されたNPMU102の別の実施の形態を示している。
チェックポイント状態120は、主プロセス116のすべてのバックアップ状態を含むことができる。
チェックポイント状態120に対する各更新は、先に書き込まれた情報の最後に追加することができ、それによって、NPMU102の重なり合わない更新エリア128〜132にチェックポイント状態120に対する一連の更新を作成することができる。
チェックポイント状態120が比較的大きい場合には、更新エリア128〜132は、情報がチェックポイントされる(checkpointed)ごとに、主プロセス116が完全なチェックポイント状態120を書き込む必要をなくすという利点を提供する。
例えば、主プロセス116は、初期化中、大きなデータブロックで読み出すことができ、別のオペレーション段階では、データのさまざまなセグメントを更新することができる。
最初のチェックポイント状態120は、すべてのデータのバックアップを含むことができる一方、更新エリア128〜132は、セグメントが更新されるにつれて、データの小さなセグメントを記憶するのに使用することができる。
バックアッププロセス122は、次に、チェックポイント状態120で自身を初期化することができ、それに続く更新エリア128〜132からのデータを、書き込まれた順序で適用することができる。
さらに、バックアッププロセス122は、主プロセス116がチェックポイント状態120および更新エリア128〜132からのデータで自身の初期化を開始できなくなるまで待つ必要はない。
このことは、チェックポイント状態120および更新エリア128〜132に利用可能なストレージ空間の量をオーバーフローする可能性がある場合に特に当てはまる。
また、このことは、主プロセス116が障害になった後、バックアッププロセス122が主プロセス116の状態を再現するのに、要求される時間よりも多くの時間量を要する場合にも当てはまる。
図1Dは、図1CのNPMU102のチェックポイント状態120にアクセスする方法の一実施の形態の図である。
図示するように、主プロセス116は、チェックポイント状態120のアドレス、および、データがNPMU102に最後に書き込まれたアドレスに続く更新エリア(図示せず)にデータを追加する。
バックアッププロセス122は、主プロセス116が書き込んだ最後のエリアの開始から終了までのデータを読み出す。
このような実施の形態では、本明細書でさらに説明するように、チェックポイント状態120に対する最も近時の更新の開始位置および終了位置をバックアッププロセス122に提供する機構が設けられる。
バックアッププロセス122がチェックポイント状態120および更新エリア128〜132を定期的に読み出そうと、主プロセス116に障害が生じた時に読み出すそうと、バックアッププロセス122は、主プロセス116を引き継ぐ前に、チェックポイント状態120および更新エリア128〜132の前に読み出されていないあらゆる部分を読み出すことができる。
NPMU102を利用することによって、主プロセス116は、バックアッププロセス122の同一性、位置、または動作状態にかかわらず、チェックポイント状態120を記憶することが可能になる。
バックアッププロセス122は、NPMU102にアクセスできるどのリモートシステムにも作成することができる。
主プロセス116は、バックアッププロセス122がメッセージを受信した旨を知らせるのを待つ必要なく、必要があればいつでも、チェックポイント状態120および/または更新エリア128〜132を書き込むことができる。
さらに、NPMU102によって、
(1)主プロセス116が障害になった時、または、
(2)主プロセス116が、NPMU102のオーバーフローを回避するために、チェックポイント状態120および/または更新エリア128〜132から情報を定期的に読み出すことができなくなった時、
のいずれかにのみバックアッププロセス122を実行する必要があるので、利用可能な情報技術(IT)資源の効率的な使用が可能になる。
それとは対照的に、従来の既知のいくつかのチェックポイント技法は、主プロセスとバックアッププロセスとの間のメッセージの受け渡しを利用して、チェックポイント情報を通信する。
したがって、主プロセスは、バックアッププロセスの同一性および位置に関する情報を必要としていた。
さらに、バックアッププロセスは、主プロセスと同期してチェックポイントメッセージを受信するために、従来の既知のシステムで動作しなければならなかった。
さらに、NPMU102は、ハードウェアで実施することができ、それによって、読み出しオペレーションおよび書き込みオペレーションに高速アクセスを提供することができる。
他の従来の既知のチェックポイント技法は、磁気媒体または光媒体にチェックポイント情報を記憶し、この媒体は、NPMU102よりもはるかに多くのアクセス時間を必要とする。
図2は、通信リンク206を介してNI114に通信接続された不揮発性メモリ202を使用するNPMU102の一実施の形態を示している。
不揮発性メモリ202は、例えば、MRAMまたはフラッシュメモリとすることができる。
NI114は、通常、それ自身の要求を起動しないが、その代わり、NI114は、通信リンク210を介してSAN112から管理コマンドを受信し、要求された管理オペレーションを実行する。
具体的には、NPMU200は、受信要求を変換することができ、次いで、要求されたオペレーションを実行することができる。
コマンド処理のさらに詳細な内容は後述する。
通信リンク206、210は、有線通信および/または無線通信用に構成することができる。
SAN112は、NI114と図1Aのプロセッサノード104、106等の他のノードとの間の任意の適切な通信/処理基盤とすることができる。
例えば、SAN112は、ローカルエリアネットワークおよび/またはインターネット等のワイドエリアネットワークとすることができる。
図3は、バッテリ304を有する揮発性メモリ302および不揮発性2次ストア310の組み合わせを使用するNPMU102の別の実施の形態を示している。
この実施の形態では、電力障害になると、揮発性メモリ302内のデータが、不揮発性2次ストア310に保存できるまで、バッテリ304の電力を使用して維持される。
不揮発性2次ストアは、例えば、磁気ディスクまたは低速のフラッシュメモリとすることができる。
揮発性メモリ302から不揮発性2次メモリストア310へのデータの転送は、外部からの介入も、バッテリ304以外からの別の電力もなく行うことができる。
したがって、バッテリ304が完全に放電される前に、必要なあらゆるタスクは通常完了する。
図示するように、NPMU120は、内蔵オペレーティングシステムを実行するオプションのCPU306を含む。
したがって、バックアップタスク(すなわち、揮発性メモリ302から不揮発性2次メモリストア310へのデータ転送)は、CPU306上で実行されているソフトウェアによって実行することができる。
NI114は、CPU306上で実行されているソフトウェアの制御の下で要求を起動する。
CPU306は、ネットワークから管理コマンドを受信することができ、要求された管理オペレーションを実行することができる。
資源割り当ておよび資源共有を容易にするように、NPMU102のさまざまな実施の形態を管理することができる。
いくつかの実施の形態では、NPMU102は、図1Aに示すように、永続メモリマネージャ(PMM(persistent memory manager))140によって管理される。
PMM140は、NPMU102の内部に配置することもできるし、外部に配置することもできる。
PMM140がNPMU102の内部にある場合、プロセッサノード104、106は、SAN112およびネットワークインターフェース(NI)114を介してPMM140と通信し、NPMU102の永続メモリの領域の割り当てや割り当て解除等の要求された管理タスクを実行することもできるし、永続メモリの既存の領域を使用することもできる。
PMM140がNPMU102の外部にある場合、プロセッサノード104、106は、NPMU102に要求を発行することができ、NPMU102は、NI114、SAN112、およびPMM140に関連付けられたNI141とインターフェースすることができる。
さらに代替的なものとして、プロセッサノード104、106は、NI108、110のそれぞれ、ならびにSAN112およびNI141を介してPMM140と直接通信することができる。
PMM140は、その後、適切なコマンドをNPMU102に発行して、要求された管理タスクを実行することができる。
NPMU102は、耐久性があり、永続データの自己記述体(self-describing body)を保持することができるので、既存の永続メモリ領域に関係したメタデータをNPMU102に記憶できることに留意されたい。
PMM140は、NPMU102のメタデータをNPMU102に記憶された永続データと一貫性のあるものに維持する管理タスクを実行することができる。
このように、NPMUの記憶データは、常に、NPMUの記憶メタデータを使用して解釈でき、それによって、起こり得るシステムのシャットダウンまたは障害後に復旧することができる。
したがって、NPMU102は、操作されるデータだけでなく、このようなデータの処理状態も永続的に保持する。
したがって、復旧の必要があり次第、NPMU102を使用するシステム100は、電力障害またはオペレーティングシステムのクラッシュが発生したメモリ状態から復旧して、当該メモリ状態からオペレーションを継続することができる。
図1Aを参照して説明したように、SAN112は、基本的なメモリ管理および仮想メモリのサポートを提供する。
このような実施の形態では、PMM140は、リモート読み出しオペレーションおよびリモート書き込みオペレーションを可能にするようにNI114の論理をプログラミングすることができると同時に、SAN112の選択された1組のエンティティを除くすべてのものによる認可されていないアクセスまたは不注意によるアクセスから永続メモリを保護することができる。
さらに、図4に示すように、NPMU102は、仮想/物理アドレス変換をサポートすることができる。
例えば、永続メモリ(PM)仮想アドレス402〜416等の連続した仮想アドレス空間は、不連続な永続メモリ物理アドレス418〜448にマッピングまたは変換することができる。
PM仮想アドレスは、ベースアドレスを基準にN増分アドレスを通じて参照することができる。
一方、このようなPM仮想アドレスは、不連続なPM物理アドレスに対応することもできる。
図示するように、PM仮想アドレス402は、実際には、PM物理アドレス436等に対応することができる。
したがって、NPMU102は、PM仮想アドレス空間からPM物理アドレス空間への適切な変換およびその逆の変換を提供することができる。
このように、この変換メカニズムによって、NPMU102は、連続した仮想アドレスの範囲をプロセッサノード104、106に提示することが可能になる一方、依然として、NPMUの物理メモリの動的管理が可能である。
これは、NPMU102のデータの永続的性質のために重要となり得る。
構成の変更により、特定のNPMU102にアクセスするプロセスの個数、あるいは、プロセスの各割り当てのサイズが時間の経過と共に変化する場合がある。
このアドレス変換メカニズムによって、NPMU102は、データを失うことなく、このような変化に容易に対応することが可能になる。
さらに、このアドレス変換メカニズムによって、プロセッサノード104、106に、割り当てに先立って今後のメモリのニーズを予想させることもなく、プロセッサノード104、106に、悲観的な割り当てを通じて永続メモリ容量を浪費させることもないことにより、永続メモリ容量の容易でかつ効率的な使用が可能になる。
図1Aを再び参照して、その本来のアクセス妥当性確認/変換ブロック転送エンジン(A VT/BTE(access validation and translation block transfer engine))モードで動作するサーバネットSANは、単一のアドレス空間のSAN112の例である。
このようなSANにおける各ターゲットは、プロセッサノード104、106等の、SAN112に要求を発行したすべてのコンポーネントに同じ平坦なネットワーク仮想アドレス空間を提示する。
ターゲットは、ネットワーク仮想アドレスの範囲をページの粒度でPM仮想アドレスの範囲からPM物理アドレスの範囲にマッピングすることができる。
ネットワークPM仮想アドレスの範囲は、単一のイニシエータ(例えば、プロセッサノード104)に排他的に割り当てることができ、複数のPM仮想アドレスが同じ物理ページを指し示すことができる。
プロセッサノード104が、NPMU102の永続メモリの領域をオープンする(すなわち、割り当てて、次に、使用を開始する)ようにPMM140に要求すると、PMM140は、プロセッサノード104が適切な領域にアクセスできるようにNPMUのNI114をプログラミングすることができる。
このプログラミングは、ネットワーク仮想アドレスのブロックを割り当て、それらの仮想アドレスを物理メモリにおける1組の物理ページにマッピング(すなわち、変換)するものである。
PM仮想アドレスの範囲は、PM物理アドレスのどれだけ多くのページがアクセスされるかにかかわらず、連続的なものとすることができる。
しかしながら、物理ページは、PM物理メモリ内のいずれかの場所とすることができる。
変換の設定に成功すると、NPMU102は、連続したブロックのPM仮想アドレスを要求側プロセッサノード104に通知することができる。
一旦オープンすると、プロセッサノード104は、読み出しオペレーションまたは書き込みオペレーションをNPMU102に発行することによって、NPMUメモリページにアクセスすることができる。
また、NPMU102は、プロセッサノード104によって提供されたデータへのアクセスを要求する後続の要求側プロセッサノード106にも、対応するメモリの仮想アドレスを通知することができる。
PMM140は、仮想アドレスを、メモリの対応する物理アドレスに変換して、チェックポイント状態120および/または更新エリア128〜132等の要求された情報をプロセッサ106のバックアッププロセス122に提供することができる。
いくつかの実施の形態では、バックアッププロセス122は、チェックポイント状態120および/または更新エリア128〜132の位置に関する情報で構成することができる。
他の実施の形態では、バックアッププロセス122は、実行時に、チェックポイント状態120および更新エリア128〜132の位置をPMM140、NPMU102、および/または主プロセス116に要求するメッセージを発行することができる。
PMM140、NPMU102、および/または主プロセス116は、次に、NPMU102のチェックポイント状態120および更新エリア128〜132の要求された位置を有する応答メッセージを発行する。
いくつかの実施の形態では、PMM140は、最新の情報がチェックポイント状態120にあろうと、更新エリア128〜132にあろうと、チェックポイント状態120に対する最新の更新の開始アドレスおよび終了アドレスに関する情報を記録する。
最も近時のチェックポイント状態120および更新エリア128〜132の開始アドレスおよび終了アドレスは、その後、バックアッププロセス122からの要求時に提供することができる。
NPMU102のメモリ資源のアクセス許可は、変換/保護表(TPT(Translation and Protection table))142に保持することができる。
このTPT142は、NPMU102内に示されている。
PMM140は、永続メモリの領域の生成時またはオープン時に、適切な許可を有するTPT142のエントリを生成することができる。
例えば、主プロセス116は、書き込み許可により領域を作成するようにPMM140に要求する。
その後、バックアッププロセス122は、読み出し許可によりその領域をオープンする。
主プロセス116およびバックアッププロセス122は、それらの各NIを通じてPMM140と通信し、NPMU102にアクセスすることができる。
プロセッサ104、106の各オペレーティングシステム(OS)144、146は、NI108、110へのアクセスを管理するだけでなく、そのNI108、110を通じて生成された接続に関するコンテキスト情報も保持する。
アクセス権および接続コンテキストに関する情報は、各プロセッサ104、106が記憶することができる。
主プロセス116およびバックアッププロセッサ122は、NPMU102の領域をオープンまたは作成する要求をPMM140に送信するために、それらの各オペレーティングシステム144、146から許可を得なければならない。
PMM140は、TPT142に適切なエントリを設定して、許可されたアクセス権を要求側に返す。
アクセス権が得られた後にのみ、各オペレーティングシステム144、146は、主プロセス116またはバックアッププロセス122が、それらのオープンした領域内において、NPMU102からの物理メモリのコンテンツを書き込みまたは読み出すことを可能にする。
アクセス権はNI114によって実施され、NI114は、NPMU102においてPMM140によって保持されたTPT142のエントリから自身の状態を構成する。
いくつかの実施の形態では、主プロセス116またはバックアッププロセス122は、NPMU102との接続を確立することを選択し、次いで、その接続を介して書き込み要求または読み出し要求を送信すると、アクセス権は、その接続に「バインド」することができ、各要求と共に繰り返す必要はない。
主プロセス116およびバックアッププロセス122が、最初に接続を確立することなく、要求をNPMU102に送信することを選択すると、各要求は、アクセス権に含まれる認証情報を含むことができる。
NPMU102は、PMM140を直接認証することができる。
さまざまな実施方式を利用することができる。
いくつかの実施の形態では、特定のNPMU120がSAN112に最初に接続されると、PMM140は、一定のNPMU102の所有権を取得する。
このような状況では、PMM140は、TPT142への書き込み許可を自身に認めるように、NPMU102のTPT142を初期化する。
他の実施の形態は、パスワードベースの認証を利用することができる。
この場合、NPMU102は、PMM140にのみ知られている予め構成されたパスワードを使用して、PMM140からの要求の正当性を確認する。
証明書ベースの認証を含めて、さまざまな他の方式が可能であり、この証明書ベースの認証では、SAN112が、サードパーティの認証サービスをサポートして、通信するエンティティを相互に認証することが必要とされる。
次に、例えば図1Aに示すような本手法のさらなる機能を理解することができる。
例えば、プロセッサノード104は、PMM140と通信してメモリ領域をオープンすると、その後、PMM140を通過することなく、NPMU102のメモリに直接アクセスすることができる。
例えば、リモート読み出しコマンドは、開始ネットワーク仮想アドレスおよびオフセットならびに(複数のアドレス空間の場合の)コンテキスト識別子を提供する。
適切なオペレーションでは、このアドレス範囲は、PMM140が割り当てた範囲内にあるべきである。
プロセッサノード104は、ノード104におけるローカル物理メモリ位置へのポインタを含むリモート読み出しコマンドをNI108に提供する。
次に、要求側プロセッサノード104のNI108は、そのリモート読み出しコマンドを、SAN112を介してNPMU102のNI114に送信する。
NI114は、その領域に関連付けられた変換表を使用して、開始ネットワーク仮想アドレスをNPMU102内の物理アドレスに変換する。
次に、NI114によって、NPMU102は、変換された物理アドレスから開始するデータを読み出し側プロセッサノードに返す。
連続したPM仮想アドレスの物理ページは、必ずしも、連続したPM物理アドレスに変換されるとは限らないので、たとえNPMU102がページ境界に到達しても、NI114はアドレスを変換し続ける。
読み出しコマンドが完了すると、NI108は、読み出し転送に、完了した印をつける。
さらに、あらゆる待機プロセスが、通知を受けることができ、続いて、処理を受けることができる。
永続メモリへのリモート書き込みも同様である。
プロセッサノード104は、NPMU102の開始PMネットワーク仮想アドレスおよびオフセットならびに(複数のアドレス空間の場合の)コンテキスト識別子を提供する。
上記と同様に、PMネットワーク仮想アドレス範囲は、割り当てられた範囲内に含まれなければならない。
また、プロセッサノード104は、送信されるデータの物理アドレスへのポインタも提供する。
次に、プロセッサノード104のNI108は、NPMU102のNI114にリモート書き込みコマンドを発行し、データの送信を開始する。
NI114は、その領域に関連付けられた変換表を使用して、開始アドレスをNPMU102の物理アドレスに変換する。
また、NPMU102は、変換された物理アドレスから開始するアドレスにデータを記憶する。
連続したPMネットワーク仮想アドレスの物理ページは、必ずしも、連続したPM物理アドレスに変換されるとは限らないので、たとえNPMU102がページ境界に到達しても、NI114はアドレスを変換し続ける。
書き込みコマンドが完了すると、NI108は、書き込み転送に、完了した印をつける。
その後、あらゆる待機プロセスは、通知を受けることができ、続いて、処理を受けることができる。
本教示によるNPMU102の一実施の形態の待ち時間試験では、80マイクロ秒内に十分入るメモリアクセスを達成することができたことに留意すべきである。
NPMU102の性能は、800マイクロ秒以上を要する代替的なI/Oオペレーションと比べても非常に有利である。
実際には、I/Oオペレーションの待ち時間は、当該I/Oオペレーションの必要な割り込みを含めて回避されるので、この結果は可能である。
したがって、本教示によるNPMUは、システムメモリの細かな粒度のアクセスを伴った永続ストレージを有する。
いくつかの実施の形態では、プロセッサユニット104、106、NPMU102、およびPMM140は、図5に示すようなコンピュータシステム500上で実施することができる。
このコンピュータシステム500は、通常、さまざまなコンポーネントを通信接続するデータバス502で構成される。
図5に示すように、中央処理装置(CPU)504は、バス502に接続されて、オペレーティングシステム506や1つまたは複数のアプリケーションプログラム508等の情報および命令を処理する。
例えば、オペレーティングシステム506は、オペレーティングシステム144または146(図1A)を表すことができ、アプリケーションプログラム508は、主プロセス116またはバックアッププロセス122(図1A)を含むことができる。
ランダムアクセスメモリ(RAM)509等のコンピュータ可読揮発性メモリもバス502に接続して、CPU504によって実行される情報および命令をロードすることができる。
さらに、コンピュータ可読読み出し専用メモリ(ROM)510もバス502に接続して、CPU504がアクセスできる静的な情報および命令を記憶することができる。
磁気ディスク媒体や光ディスク媒体等のデータストレージデバイス512もバス502に接続して、大量の情報および命令を記憶することができる。
英数字キーおよびファンクションキーを含む英数字入力デバイス514およびマウス等のカーソル制御デバイス516をバス502に接続して、ユーザがCPU504に情報およびコマンドを入力することを可能にすることができる。
1つまたは複数の通信ポート518をシステム500に含めて、例えば、プリンタ等のさまざまな周辺デバイス、SAN112等の外部ネットワーク、およびプロセッサノード104、106(図1A)等の他の処理システムとの通信を可能にすることができる。
通信ポート518をネットワークインターフェース(NI)520にも接続して、外部ネットワークとの通信を可能にすることもできる。
NI520は、例えば、図1AのNI108、114、141、または110を表すことができる。
表示装置522をバス502に接続して、システム500のユーザに情報を表示することができる。
表示装置522は、液晶デバイス、陰極線管、またはユーザが認識可能なグラフィック画像および英数字を生成するのに適した他の表示デバイスとすることができる。
英数字入力デバイス514およびカーソル制御デバイス516によって、コンピュータユーザは、表示装置522上における可視的なシンボル(ポインタ)の2次元移動を信号で動的に送ることが可能になる。
いくつかの実施の形態では、コンピュータシステム500のコンポーネントは、相互に通信することもできるし、適切なインターフェースリンクを介して他の外部ネットワークと通信することもできる。
適切なインターフェースリンクは、T1、ISDN、ケーブル線、携帯電話ネットワークもしくは衛星ネットワークを通じた無線接続、またはローカルエリアネットワークにわたるイーサネットやトークンリング等のローカルデータ搬送システムのいずれか1つや組み合わせ等である。
ハイパーテキスト転送プロトコル(HTTP)や伝送制御プロトコル/インターネットプロトコル(TCP/IP)等の任意の適切な通信プロトコルを利用して、外部ネットワークの他のコンポーネントと通信することができる。
さらに、コンピュータシステム500は、任意の適切な計算デバイスに組み込むこともでき、任意の適切な計算デバイスには、個人情報端末(PDA)、表示エリアを有する電話、ネットワーク機器、デスクトップ、ラップトップ、Xウィンドウ端末、またはこのような他の計算デバイスが含まれる。
論理命令は、コンピュータ可読媒体に記憶することもできるし、電子信号の形でアクセスすることもできる。
本明細書で説明した論理モジュール、処理システム、および回路機構は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、他の適切なデバイス等のハードウェア、ソフトウェア、および/またはファームウェアの任意の適切な組み合わせを使用して実施することができる。
論理モジュールは、単独で実施することもできるし、他のシステムコンポーネントの1つに含めることもできる。
同様に、他のコンポーネントは、個別のディスクリートコンポーネントとして本明細書で開示されている。
しかしながら、これらのコンポーネントは、必要に応じて、より大きなまたは異なるソフトウェアモジュール、論理モジュール、集積回路、または電気アセンブリを形成するように組み合わせることができる。
本開示はさまざまな実施の形態を説明したが、これらの実施の形態は、例示として理解されるべきであり、特許請求の範囲を限定するものではない。
説明した実施の形態の多くの変形、変更、追加、および改良が可能である。
例えば、当業者は、本明細書で開示した構造および方法を提供するのに必要なプロセスを容易に実施する。
また、本明細書で開示した実施の形態の変形および変更も、添付した特許請求の範囲内に含めつつ行うことができる。
個々のモジュールの機能および機能の組み合わせは、任意の適切な機能とすることができる。
特許請求の範囲の範囲では、特に指定しない限り、数詞を伴わず単数形としても捉えることができる構成要素は、同構成要素の1または複数のものを指す。
チェックポイント状態情報を記憶できるネットワーク接続型永続メモリユニット(NPMU)を含むシステムの一実施の形態のブロック図である。 図1AのNPMUからのチェックポイント状態情報にアクセスする一方法の一実施の形態の図である。 複数の組のチェックポイント状態情報を記憶できるネットワーク接続型永続メモリユニット(NPMU)を含むシステムの一実施の形態のブロック図である。 図1CのNPMUからのチェックポイント状態情報にアクセスする別の方法の一実施の形態の図である。 ネットワーク接続型永続メモリユニット(NPMU)の一実施の形態のブロック図である。 バッテリバックアップを使用したネットワーク接続型永続メモリユニット(NPMU)の一実施の形態のブロック図である。 永続メモリ仮想アドレス空間から永続メモリ物理アドレス空間へのマッピングを示すブロック図である。 ネットワーク接続型永続メモリユニット(NPMU)を実施できる例示のコンピュータシステムのブロック図である。
符号の説明
102・・・永続メモリ,
120・・・チェックポイント状態,
142・・・アドレス変換/保護表,
104、106・・・プロセッサ,
116・・・主プロセス,
120・・・チェックポイント状態,
122・・・バックアッププロセス,
144、146・・・オペレーティングシステム,
202・・・不揮発性メモリ,
302・・・揮発性メモリ,
304・・・バッテリ,
306・・・プロセッサ,
310・・・不揮発性2次ストレージ,
506・・・オペレーティングシステム,
508・・・アプリケーションプログラム,
512・・・データストレージ,
514・・・英数字入力,
516・・・カーソル制御部,
518・・・通信ポート,
522・・・表示装置,

Claims (9)

  1. 外部ネットワーク(112)に対するネットワークインターフェース(114)と、
    前記ネットワークインターフェース(114)に接続された永続メモリユニット(102)と
    を備えるチェックポイント状態情報を記憶するシステム(100)であって、
    前記永続メモリユニット(102)は、ネットワークインターフェース(108、110)を通じて、主プロセス(116)からの直接メモリ書き込みコマンドを介して前記チェックポイントデータを受信し、バックアッププロセス(122)からの直接メモリ読み出しコマンドを介して前記チェックポイントデータ(120)へのアクセスを提供するように構成され、
    前記バックアッププロセスは、前記主プロセス(116)の障害の場合に復旧能力を提供する
    システム。
  2. 前記ネットワークインターフェース(108)に、アドレスコンテキスト情報を提供するように構成された永続メモリマネージャ(140)
    をさらに備える請求項1に記載のシステム。
  3. 前記永続メモリユニット(102)は、前記チェックポイントデータ(120)を別のプロセッサ(106)に送信するように構成され、
    前記バックアッププロセス(122)は、前記別のプロセッサ(106)によって実行される
    請求項1に記載のシステム。
  4. 前記主プロセス(116)の障害時に、前記永続メモリユニット(102)は、前記バックアッププロセス(122)から要求があると、前記チェックポイントデータを提供する
    請求項1に記載のシステム。
  5. 前記永続メモリユニット(102)は、連続的な時間間隔で前記プロセッサ(104)から送信された複数の組のチェックポイントデータを記憶するように構成される
    請求項1に記載のシステム。
  6. 前記永続メモリユニット(102)は、前記バックアッププロセス(122)から要求があると、前記複数の組のチェックポイントデータ(120)を一度に提供する
    請求項5に記載のシステム。
  7. 前記主プロセス(116)は、前記バックアッププロセス(122)とは独立に、前記チェックポイントデータ(120)を、前記永続メモリユニット(102)に提供する
    請求項1に記載のシステム。
  8. 前記永続メモリユニット(102)は、リモートダイレクトメモリアクセスが可能なシステムエリアネットワーク(112)の一部として構成される
    請求項1に記載のシステム。
  9. 前記永続メモリユニット(102)は、リモートプロセッサ(104、106)からの要求を認証し、認証したリモートプロセッサ(104、106)にアクセス情報を提供する
    アドレス保護/変換表(142)で構成される、請求項1に記載のシステム。
JP2004354873A 2003-12-16 2004-12-08 バックアッププロセスのチェックポイント状態の永続メモリデバイス Pending JP2005182781A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/737,374 US9213609B2 (en) 2003-12-16 2003-12-16 Persistent memory device for backup process checkpoint states

Publications (1)

Publication Number Publication Date
JP2005182781A true JP2005182781A (ja) 2005-07-07

Family

ID=34654098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004354873A Pending JP2005182781A (ja) 2003-12-16 2004-12-08 バックアッププロセスのチェックポイント状態の永続メモリデバイス

Country Status (3)

Country Link
US (1) US9213609B2 (ja)
JP (1) JP2005182781A (ja)
DE (1) DE102004038649B4 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5516411B2 (ja) * 2008-10-29 2014-06-11 日本電気株式会社 情報処理システム
US11561924B2 (en) 2020-05-29 2023-01-24 Fujitsu Limited Information processing device and non-transitory computer-readable storage medium for storing reception processing program

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7219210B2 (en) * 2004-03-30 2007-05-15 International Business Machines Corporation Memory allocation to multiple computing units
US8688800B2 (en) * 2005-10-05 2014-04-01 Hewlett-Packard Development Company, L.P. Remote configuration of persistent memory system ATT tables
CN101356519B (zh) * 2006-06-19 2011-11-09 三星电子株式会社 用于可利用空中机制的便携式设备的程序升级系统及方法
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US7818610B2 (en) * 2007-09-27 2010-10-19 Microsoft Corporation Rapid crash recovery for flash storage
US8245013B2 (en) * 2008-10-10 2012-08-14 International Business Machines Corporation Mapped offsets preset ahead of process migration
US8244954B2 (en) * 2008-10-10 2012-08-14 International Business Machines Corporation On-demand paging-in of pages with read-only file system
US8250588B2 (en) 2009-06-16 2012-08-21 Microsoft Corporation Persisting application state
US8769535B2 (en) * 2009-09-24 2014-07-01 Avaya Inc. Providing virtual machine high-availability and fault tolerance via solid-state backup drives
US8424009B2 (en) * 2009-12-04 2013-04-16 Microsoft Corporation Lock resolution for distributed durable instances
US20110179303A1 (en) 2010-01-15 2011-07-21 Microsoft Corporation Persistent application activation and timer notifications
US8296780B2 (en) * 2010-03-23 2012-10-23 Microsoft Corporation Reducing persistence commands
US8898509B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Policy-based checkpointing fault tolerance across remote virtual machines
US8898518B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Method and system for enabling checkpointing fault tolerance across remote virtual machines
US8898508B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Method and system for enabling checkpointing fault tolerance across remote virtual machines
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
EP2820548B1 (en) * 2012-03-02 2016-12-14 Hewlett Packard Enterprise Development LP Versioned memories using a multi-level cell
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9146819B2 (en) 2013-07-02 2015-09-29 International Business Machines Corporation Using RDMA for fast system recovery in virtualized environments
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
JP6194764B2 (ja) * 2013-11-08 2017-09-13 富士通株式会社 情報処理装置、制御方法、および制御プログラム
US9792190B2 (en) 2015-06-26 2017-10-17 Intel Corporation High performance persistent memory
WO2017131779A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Versioning virtual address spaces
US10949378B2 (en) * 2016-05-31 2021-03-16 Fujitsu Limited Automatic and customisable checkpointing
US10565057B2 (en) * 2016-07-19 2020-02-18 Western Digital Technologies, Inc. Indirection-based storage system backups using markers including sets of serial numbers associated with segments
US9794366B1 (en) * 2016-10-19 2017-10-17 Red Hat, Inc. Persistent-memory management
US10255153B2 (en) 2016-10-21 2019-04-09 Microsoft Technology Licensing, Llc Systematic testing of failover and recovery for distributed system components
US10789179B1 (en) * 2017-10-06 2020-09-29 EMC IP Holding Company LLC Decentralized access management in information processing system utilizing persistent memory
US10523675B2 (en) * 2017-11-08 2019-12-31 Ca, Inc. Remote direct memory access authorization
US11029875B2 (en) * 2018-09-28 2021-06-08 Dell Products L.P. System and method for data storage in distributed system across multiple fault domains
EP3726384B1 (en) * 2019-04-18 2022-01-05 Bayerische Motoren Werke Aktiengesellschaft Method and system for preserving consistency of states during fail-operational context switch
US11249804B2 (en) 2019-10-07 2022-02-15 International Business Machines Corporation Affinity based optimization of virtual persistent memory volumes
US11416148B2 (en) 2020-01-10 2022-08-16 Samsung Electronics Co., Ltd. System and method of providing atomicity to large writes to persistent memory
US11847048B2 (en) * 2020-09-24 2023-12-19 Advanced Micro Devices, Inc. Method and apparatus for providing persistence to remote non-volatile memory
US11249907B1 (en) 2020-12-08 2022-02-15 Micron Technology, Inc. Write-back cache policy to limit data transfer time to a memory device
US11775382B2 (en) 2020-12-09 2023-10-03 Micron Technology, Inc. Modified parity data using a poison data unit
US11416331B2 (en) 2020-12-09 2022-08-16 Micron Technology, Inc. Modified checksum using a poison data pattern
US11544007B2 (en) * 2021-03-30 2023-01-03 Netapp, Inc. Forwarding operations to bypass persistent memory
US11966608B2 (en) * 2021-11-15 2024-04-23 Samsung Electronics Co., Ltd. Memory controller with improved data reliability and memory system including the same
CN114090317B (zh) * 2021-11-16 2023-04-28 河南省儿童医院郑州儿童医院 一种高可用婴幼儿呼吸设备及系统

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US122001A (en) * 1871-12-19 Improvement in japanned furniture-springs
US71463A (en) * 1867-11-26 Edward -da-vies and richard hobbs taunton
US62005A (en) * 1867-02-12 John s
US709321A (en) * 1901-08-30 1902-09-16 Ichthyol Ges Cordes Hermanni & Co Process of separating sulfonic acids.
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US5446857A (en) * 1992-06-12 1995-08-29 Unisys Corporation Method and apparatus for writing files on nonerasable storage medium
US5715386A (en) * 1992-09-30 1998-02-03 Lucent Technologies Inc. Apparatus and methods for software rejuvenation
WO1994017474A1 (en) * 1993-01-21 1994-08-04 Apple Computer, Inc. Apparatus and method for backing up data from networked computer storage devices
DK0880096T3 (da) * 1993-07-19 2000-04-03 Cheyenne Advanced Tech Ltd Sikkerhedskopieringssystem for datafiler
JP3504763B2 (ja) * 1994-08-19 2004-03-08 富士通株式会社 分散システムに使用されるクライアント,サーバ及び記憶装置並びに分散システムにおける資源管理用サーバの復旧方法
US6044475A (en) * 1995-06-16 2000-03-28 Lucent Technologies, Inc. Checkpoint and restoration systems for execution control
US6105148A (en) * 1995-06-16 2000-08-15 Lucent Technologies Inc. Persistent state checkpoint and restoration systems
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
JP2916420B2 (ja) * 1996-09-04 1999-07-05 株式会社東芝 チェックポイント処理加速装置およびデータ処理方法
US5842222A (en) * 1996-10-04 1998-11-24 Taiwan Semiconductor Manufacturing Company, Ltd. Production information system enhanced for availability
US5864849A (en) * 1996-12-16 1999-01-26 Lucent Technologies Inc. System and method for restoring a multiple checkpointed database in view of loss of volatile memory
US6393569B1 (en) * 1996-12-18 2002-05-21 Alexander S. Orenshteyn Secured system for accessing application services from a remote station
US6185702B1 (en) * 1997-01-24 2001-02-06 Kabushiki Kaisha Toshiba Method and system for process state management using checkpoints
US7082553B1 (en) * 1997-08-25 2006-07-25 At&T Corp. Method and system for providing reliability and availability in a distributed component object model (DCOM) object oriented system
US6279119B1 (en) * 1997-11-14 2001-08-21 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US6351754B1 (en) * 1998-06-23 2002-02-26 Oracle Corporation Method and system for controlling recovery downtime
US6141773A (en) * 1998-06-30 2000-10-31 Emc Corporation Method and apparatus for undoing changes to computer memory
US6266781B1 (en) * 1998-07-20 2001-07-24 Academia Sinica Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network
US6195760B1 (en) * 1998-07-20 2001-02-27 Lucent Technologies Inc Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
US6449623B1 (en) * 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
DE60043873D1 (de) * 1999-06-01 2010-04-08 Hitachi Ltd Verfahren zur Datensicherung
US6622263B1 (en) * 1999-06-30 2003-09-16 Jack Justin Stiffler Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
JP3697124B2 (ja) 1999-12-15 2005-09-21 京セラミタ株式会社 画像形成装置
GB0002019D0 (en) * 2000-01-29 2000-03-22 Ibm Data migration tool
AU2001259403A1 (en) * 2000-05-02 2001-11-12 Sun Microsystem, Inc. Method and system for providing cluster replicated checkpoint services
WO2001093106A2 (en) * 2000-05-26 2001-12-06 Infolibria, Inc. High performance efficient subsystem for data object storage
US6957237B1 (en) * 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6941410B1 (en) * 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
WO2002008870A2 (en) * 2000-07-26 2002-01-31 David Dickenson Distributive access controller
US6691245B1 (en) * 2000-10-10 2004-02-10 Lsi Logic Corporation Data storage with host-initiated synchronization and fail-over of remote mirror
US7085742B2 (en) * 2000-10-30 2006-08-01 Xybo Systems, Inc. Authenticating software licenses
US6658656B1 (en) * 2000-10-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions
WO2002061525A2 (en) * 2000-11-02 2002-08-08 Pirus Networks Tcp/udp acceleration
JP2002140315A (ja) 2000-11-02 2002-05-17 Nec Soft Ltd 二重化マルチプロトコルスイッチ
US6704831B1 (en) * 2000-11-16 2004-03-09 Sun Microsystems, Inc. Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol
US6742136B2 (en) * 2000-12-05 2004-05-25 Fisher-Rosemount Systems Inc. Redundant devices in a process control system
US20020103819A1 (en) * 2000-12-12 2002-08-01 Fresher Information Corporation Technique for stabilizing data in a non-log based information storage and retrieval system
US6766471B2 (en) * 2000-12-28 2004-07-20 International Business Machines Corporation User-level checkpoint and restart for groups of processes
US6662281B2 (en) * 2001-01-31 2003-12-09 Hewlett-Packard Development Company, L.P. Redundant backup device
US6847983B2 (en) * 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US6601148B2 (en) * 2001-03-01 2003-07-29 International Business Machines Corporation Infiniband memory windows management directly in hardware
JP2003015901A (ja) 2001-06-28 2003-01-17 Nissin Electric Co Ltd 監視制御装置
US20030018828A1 (en) * 2001-06-29 2003-01-23 International Business Machines Corporation Infiniband mixed semantic ethernet I/O path
US7251747B1 (en) * 2001-09-20 2007-07-31 Ncr Corp. Method and system for transferring data using a volatile data transfer mechanism such as a pipe
US6829685B2 (en) * 2001-11-15 2004-12-07 International Business Machines Corporation Open format storage subsystem apparatus and method
US6883068B2 (en) * 2001-12-17 2005-04-19 Sun Microsystems, Inc. Methods and apparatus for implementing a chche replacement scheme
US7047358B2 (en) * 2001-12-26 2006-05-16 Boon Storage Technologies, Inc. High-performance log-structured RAID
JP4108973B2 (ja) * 2001-12-26 2008-06-25 株式会社日立製作所 バックアップシステム
US6983303B2 (en) * 2002-01-31 2006-01-03 Hewlett-Packard Development Company, Lp. Storage aggregator for enhancing virtualization in data storage networks
US20030163780A1 (en) * 2002-02-18 2003-08-28 Marc Kossa Enhancing management of a distributed computer system
US20040030731A1 (en) * 2002-04-03 2004-02-12 Liviu Iftode System and method for accessing files in a network
JP2003330782A (ja) * 2002-05-10 2003-11-21 Hitachi Ltd 計算機システム
AU2003251492A1 (en) * 2002-06-11 2003-12-22 Ashish A. Pandya High performance ip processor for tcp/ip, rdma and ip storage applications
JP3774826B2 (ja) * 2002-07-11 2006-05-17 日本電気株式会社 情報処理装置
JP4186537B2 (ja) * 2002-07-23 2008-11-26 株式会社日立製作所 ディスクアレイシステムのバックアップ方法
FR2843209B1 (fr) * 2002-08-02 2006-01-06 Cimai Technology Procede de replication d'une application logicielle dans une architecture multi-ordinateurs, procede pour realiser une continuite de fonctionnement mettant en oeuvre ce procede de replication, et systeme multi-ordinateurs ainsi equipe.
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US20040049580A1 (en) * 2002-09-05 2004-03-11 International Business Machines Corporation Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms
US6721806B2 (en) * 2002-09-05 2004-04-13 International Business Machines Corporation Remote direct memory access enabled network interface controller switchover and switchback support
US7069307B1 (en) * 2002-12-20 2006-06-27 Network Appliance, Inc. System and method for inband management of a virtual disk
US20040148360A1 (en) * 2003-01-24 2004-07-29 Hewlett-Packard Development Company Communication-link-attached persistent memory device
US7080221B1 (en) * 2003-04-23 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a clustered computer system environment
US7260737B1 (en) * 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US7577692B1 (en) * 2003-04-25 2009-08-18 Netapp, Inc. System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images
US8631133B1 (en) * 2003-05-06 2014-01-14 Symantec Operating Corporation Method and system of providing a virtual transport session
US7610348B2 (en) * 2003-05-07 2009-10-27 International Business Machines Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed
US20040230862A1 (en) * 2003-05-16 2004-11-18 Arif Merchant Redundant data assigment in a data storage system
US7412460B2 (en) * 2003-06-19 2008-08-12 International Business Machines Corporation DBMS backup without suspending updates and corresponding recovery using separately stored log and data files
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7308607B2 (en) * 2003-08-29 2007-12-11 Intel Corporation Periodic checkpointing in a redundantly multi-threaded architecture
US7165186B1 (en) * 2003-10-07 2007-01-16 Sun Microsystems, Inc. Selective checkpointing mechanism for application components
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US20050129039A1 (en) * 2003-12-11 2005-06-16 International Business Machines Corporation RDMA network interface controller with cut-through implementation for aligned DDP segments
US7912979B2 (en) * 2003-12-11 2011-03-22 International Business Machines Corporation In-order delivery of plurality of RDMA messages
US7529897B1 (en) * 2003-12-31 2009-05-05 Vmware, Inc. Generating and using checkpoints in a virtual computer system
JP2007279890A (ja) * 2006-04-04 2007-10-25 Hitachi Ltd バックアップシステム及びバックアップ方法
US8069366B1 (en) * 2009-04-29 2011-11-29 Netapp, Inc. Global write-log device for managing write logs of nodes of a cluster storage system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5516411B2 (ja) * 2008-10-29 2014-06-11 日本電気株式会社 情報処理システム
US11561924B2 (en) 2020-05-29 2023-01-24 Fujitsu Limited Information processing device and non-transitory computer-readable storage medium for storing reception processing program

Also Published As

Publication number Publication date
DE102004038649B4 (de) 2016-05-19
US20050132250A1 (en) 2005-06-16
DE102004038649A1 (de) 2005-07-21
US9213609B2 (en) 2015-12-15

Similar Documents

Publication Publication Date Title
US9213609B2 (en) Persistent memory device for backup process checkpoint states
US11556433B2 (en) High performance persistent memory
EP2851807B1 (en) Method and system for supporting resource isolation under multi-core architecture
US20040148360A1 (en) Communication-link-attached persistent memory device
US7793061B1 (en) Techniques for using flash-based memory as a write cache and a vault
EP3764237A1 (en) System startup method and apparatus, electronic device and storage medium
US9092426B1 (en) Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing
US7620784B2 (en) High speed nonvolatile memory device using parallel writing among a plurality of interfaces
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
US8688800B2 (en) Remote configuration of persistent memory system ATT tables
JP2005276208A (ja) 通信リンク接続の永久メモリシステム
US8433888B2 (en) Network boot system
KR20160022226A (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
US11954369B2 (en) Command draining using host memory buffer
US20170104820A1 (en) Method for logical mirroring in a memory-based file system
EP3989052B1 (en) Method of operating storage device and method of operating storage system using the same
US20240086105A1 (en) DRAM-Less SSD With Command Draining
US20190324868A1 (en) Backup portion of persistent memory
US7694079B2 (en) Tagged sequential read operations
US9971532B2 (en) GUID partition table based hidden data store system
US20050223144A1 (en) Information terminal and data transfer method for information terminal
US6401151B1 (en) Method for configuring bus architecture through software control
CN114546902A (zh) 基于多协议访问存储器的系统、设备和方法
US6425029B1 (en) Apparatus for configuring bus architecture through software control
US20220137816A1 (en) Native memory semantic remote memory access system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070502