JP2005182781A - バックアッププロセスのチェックポイント状態の永続メモリデバイス - Google Patents
バックアッププロセスのチェックポイント状態の永続メモリデバイス Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2046—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2038—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, 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
【解決手段】 本発明にかかるシステムは、永続メモリユニットに取り付けられたネットワークインターフェースを含む。永続メモリユニットは、主プロセスからチェックポイントデータを受信し、バックアッププロセスで使用されるようにチェックポイントデータへのアクセスを提供し、主プロセスが障害の場合に、復旧能力をサポートする。ネットワークインターフェースは、永続メモリユニットの仮想アドレスと物理アドレスとの間のアドレス変換情報を提供する。
【選択図】図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ネットワークを通じて複数のプロセッサからアクセスすることができる。
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つの問題は、すべての中間計算値を再計算しなければならないということである。
この問題は、特に、大量のユーザデータをこのプロセス中に再ロードしなければならない場合に厄介なものになる可能性がある。
ユーザデータの一部またはすべてがもはや利用可能でない場合には、障害前の状態を再構成できない場合がある。
永続メモリデバイスは、ソフトウェアアプリケーションを起動または再起動するデータを記憶するのに使用されてきた。
単純なシステムでは、永続メモリデバイスは、静的であり、ソフトウェアが実行されるに伴い変更されることはない。
ソフトウェア環境の初期状態は、永続メモリに記憶される。
コンピュータへの電力障害または他の或る障害の場合、ソフトウェアはその実行を初期状態から再起動する。
この手法に関する1つの問題は、すべての中間計算値を再計算しなければならないということである。
この問題は、特に、大量のユーザデータをこのプロセス中に再ロードしなければならない場合に厄介なものになる可能性がある。
ユーザデータの一部またはすべてがもはや利用可能でない場合には、障害前の状態を再構成できない場合がある。
システムメモリは、一般に、システムバスを通じてプロセスに接続され、この場合、このようなメモリは、保証アクセス時間が数十ナノ秒で測定され、比較的高速である。
さらに、システムメモリには、バイトレベルの粒度で直接アクセスすることができる。
しかしながら、システムメモリは、通常、揮発性であり、電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、その内容が失われるようになる。
また、システムメモリは、通例、プロセッサと同じ障害領域内にあり、プロセッサに障害が生じると、この付属メモリにも障害が生じ、もはやアクセスすることができないようになる。
電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、メモリのレイアウトを記述するメタデータも失われる。
さらに、システムメモリには、バイトレベルの粒度で直接アクセスすることができる。
しかしながら、システムメモリは、通常、揮発性であり、電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、その内容が失われるようになる。
また、システムメモリは、通例、プロセッサと同じ障害領域内にあり、プロセッサに障害が生じると、この付属メモリにも障害が生じ、もはやアクセスすることができないようになる。
電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、メモリのレイアウトを記述するメタデータも失われる。
従来技術のシステムは、バッテリバックアップされたダイナミックランダムアクセスメモリ(BBDRAM)、ソリッドステートディスク、およびネットワーク付属揮発性メモリを使用していた。
従来のBBDRAMは、例えば、本来の永続メモリを上回るいくつかの性能の利点を有する場合がある。
しかしながら、BBDRAMには、グローバルにアクセスすることができない。
さらに、付属のCPUと同じ障害領域内にあるBBDRAMは、CPUの障害またはオペレーティングシステムのクラッシュの場合にアクセス不能にされる。
したがって、電力障害または再ブート後にシステムを素早く再起動できるように、BBDRAMは、すべてのシステムメモリが永続的である状況で使用されることが多い。
BBDRAMは、長い停電期間中は、依然として揮発性であり、バッテリが消耗する前にその内容を記憶するように代替的な手段を提供しなければならない。
重要なことは、BBDRAMのこの使用は、非常に制限的であり、例えば、ネットワーク接続型永続メモリの用途に使用するように修正することはできない。
従来のBBDRAMは、例えば、本来の永続メモリを上回るいくつかの性能の利点を有する場合がある。
しかしながら、BBDRAMには、グローバルにアクセスすることができない。
さらに、付属のCPUと同じ障害領域内にあるBBDRAMは、CPUの障害またはオペレーティングシステムのクラッシュの場合にアクセス不能にされる。
したがって、電力障害または再ブート後にシステムを素早く再起動できるように、BBDRAMは、すべてのシステムメモリが永続的である状況で使用されることが多い。
BBDRAMは、長い停電期間中は、依然として揮発性であり、バッテリが消耗する前にその内容を記憶するように代替的な手段を提供しなければならない。
重要なことは、BBDRAMのこの使用は、非常に制限的であり、例えば、ネットワーク接続型永続メモリの用途に使用するように修正することはできない。
バッテリバックアップされたソリッドステートディスク(DDSSD)も、他の実施態様に対して提案されてきた。
これらのBBSSDは、永続メモリを提供するが、機能的には、ディスクドライブをエミュレーションするものである。
この手法の重大な欠点は、I/Oアダプタを通じてこれらのデバイスにアクセスすることに関連して、待ち時間が追加されることである。
この待ち時間は、ホストコンピュータのオペレーティングシステムを迂回しないディスク、さらにはBBSSDによって使用されるブロック指向型ストレージモデルおよびファイル指向型ストレージモデルに固有のものである。
いくつかの欠点をなくすようにソリッドステートディスクを修正することは可能であるが、性能がI/Oプロトコルおよび当該I/Oプロトコルに関連したデバイスドライバによって制限されるので、固有の待ち時間はなくすことができない。
BBDRAMと同様に、障害のある領域のアプリケーションプログラムのチェックポイント状態を、動作可能な領域で実行されるアプリケーションプログラムのバックアップコピーに提供する技術を追加する必要がある。
これらのBBSSDは、永続メモリを提供するが、機能的には、ディスクドライブをエミュレーションするものである。
この手法の重大な欠点は、I/Oアダプタを通じてこれらのデバイスにアクセスすることに関連して、待ち時間が追加されることである。
この待ち時間は、ホストコンピュータのオペレーティングシステムを迂回しないディスク、さらにはBBSSDによって使用されるブロック指向型ストレージモデルおよびファイル指向型ストレージモデルに固有のものである。
いくつかの欠点をなくすようにソリッドステートディスクを修正することは可能であるが、性能がI/Oプロトコルおよび当該I/Oプロトコルに関連したデバイスドライバによって制限されるので、固有の待ち時間はなくすことができない。
BBDRAMと同様に、障害のある領域のアプリケーションプログラムのチェックポイント状態を、動作可能な領域で実行されるアプリケーションプログラムのバックアップコピーに提供する技術を追加する必要がある。
いくつかの実施の形態では、システムは、永続メモリユニットに取り付けられたネットワークインターフェースを含む。
永続メモリユニットは、主プロセスからチェックポイントデータを受信するように構成され、バックアッププロセスで使用されるようにチェックポイントデータへのアクセスを提供して、主プロセスが障害の場合に、復旧能力をサポートするように構成される。
ネットワークインターフェースは、永続メモリユニットの仮想アドレスと物理アドレスとの間のアドレス変換情報を提供するように構成される。
他の実施の形態では、永続メモリユニットは、チェックポイント状態に対する複数の更新を記憶することができる。
チェックポイント状態、および、もしあればチェックポイント状態に対する更新は、バックアッププロセスによって定期的に取り出すこともできるし、主プロセスの障害時に一度に取り出すこともできる。
永続メモリユニットは、主プロセスからチェックポイントデータを受信するように構成され、バックアッププロセスで使用されるようにチェックポイントデータへのアクセスを提供して、主プロセスが障害の場合に、復旧能力をサポートするように構成される。
ネットワークインターフェースは、永続メモリユニットの仮想アドレスと物理アドレスとの間のアドレス変換情報を提供するように構成される。
他の実施の形態では、永続メモリユニットは、チェックポイント状態に対する複数の更新を記憶することができる。
チェックポイント状態、および、もしあればチェックポイント状態に対する更新は、バックアッププロセスによって定期的に取り出すこともできるし、主プロセスの障害時に一度に取り出すこともできる。
さらに別の実施の形態では、主プロセスの動作状態を復旧する方法は、永続メモリユニットの仮想アドレスを永続メモリユニットの物理アドレスにマッピングすること、および永続メモリユニットにおいて、主プロセスの動作状態に関するチェックポイントデータを受信することを含む。
いくつかの実施の形態では、チェックポイントデータは、バックアッププロセスに提供される。
さらに別の実施の形態では、アドレスに関するコンテキスト情報が、主プロセスおよびバックアッププロセスに提供される。
いくつかの実施の形態では、チェックポイントデータは、バックアッププロセスに提供される。
さらに別の実施の形態では、アドレスに関するコンテキスト情報が、主プロセスおよびバックアッププロセスに提供される。
別の実施の形態では、主プロセスが障害の場合に、永続メモリユニットは、バックアッププロセスにチェックポイントデータを提供する。
あるいは、さらに別の実施の形態では、永続メモリユニットは、連続的な時間間隔でプロセッサから送信された複数の組のチェックポイントデータを記憶するように構成することもできるし、複数の組のチェックポイントデータをバックアッププロセスに一度に提供するように構成することもできる。
あるいは、さらに別の実施の形態では、永続メモリユニットは、連続的な時間間隔でプロセッサから送信された複数の組のチェックポイントデータを記憶するように構成することもできるし、複数の組のチェックポイントデータをバックアッププロセスに一度に提供するように構成することもできる。
本開示が関係する技術分野の当業者は、本開示を理解することによって、これらの実施の形態および他の実施の形態を理解することになる。
この明細書に組み込まれてこの明細書の一部を形成する添付図面は、本発明の実施の形態を示すものであり、その説明と共に、本発明の原理を説明するのに役立つものである。
従来技術のシステムは、永続メモリを、待ち時間が比較的長いブロック指向型アーキテクチャおよびファイル指向型I/Oアーキテクチャのコンテキストにおいてのみ使用していたのに対して、本教示は、従来のI/Oストレージデバイスのように永続的ではあるが、粒度が細かく待ち時間の短いシステムメモリのようにアクセスすることができるメモリを説明する。
本教示によるシステムによって、アプリケーションプログラムは、1つまたは複数のチェックポイント状態を記憶することが可能になり、主アプリケーションプログラムの実行を妨げるハードウェア障害またはソフトウェア障害の場合には、そのアプリケーションのバックアップコピーがこれらのチェックポイント状態にアクセスすることができる。
本教示によるシステムによって、アプリケーションプログラムは、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を介したコンテキスト切り換えの回数が削減される。
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に継続してアクセスすることができる。
NPMU102は、ストレージI/Oの耐久性および復旧可能性を、システムメモリの高速アクセスおよび細かな粒度でのアクセスと組み合わせる。
ストレージのように、NPMU102のコンテンツは、電力の喪失またはシステムの再起動を耐え抜くことができる。
リモートメモリのように、SAN112を横切ってNPMU102にアクセスすることができる。
一方、直接接続されたメモリとは異なり、1つまたは複数のプロセッサノード104、106に障害が生じた後であっても、NPMU102に継続してアクセスすることができる。
プロセッサノード104上で実行されている主プロセス116は、リモートコマンド、例えば書き込みコマンドを起動して、NPMU102のチェックポイント状態120のデータを送信することができる。
また、主プロセス116は、チェックポイント状態120のデータを定期的に提供することもできる。
プロセッサノード106上で実行されているバックアッププロセス122は、主プロセス116の障害の場合に、主プロセス116の機能を実行するように構成される。
また、バックアッププロセス122は、読み出しコマンド等のリモート読み出しオペレーションおよびリモート書き込みオペレーションをNPMU102に対して起動し、定期的にかつ/または主プロセス116の障害時にチェックポイント状態120にアクセスすることもできる。
また、主プロセス116は、チェックポイント状態120のデータを定期的に提供することもできる。
プロセッサノード106上で実行されているバックアッププロセス122は、主プロセス116の障害の場合に、主プロセス116の機能を実行するように構成される。
また、バックアッププロセス122は、読み出しコマンド等のリモート読み出しオペレーションおよびリモート書き込みオペレーションをNPMU102に対して起動し、定期的にかつ/または主プロセス116の障害時にチェックポイント状態120にアクセスすることもできる。
例えば、プロセッサノード104によって起動された書き込みオペレーションにおいて、データをNPMU102に記憶するのに成功すると、そのデータは、耐久性のあるものとなり、プロセッサノード104、106の停電または障害を耐え抜くことになる。
特に、電力が長期間切断された後、または、プロセッサノード104、106のオペレーティングシステムが再ブートされた後であっても、NPMU102が正確に機能し続ける限り、メモリのコンテンツは維持される。
NPMU102は、データ転送オペレーションに加えて、さまざまな管理コマンドに対して応答するように構成することもできる。
特に、電力が長期間切断された後、または、プロセッサノード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と通信することもできる。
プロセッサノード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が含まれるが、これらに限定されるものではない。
この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を含む。
本教示は、必要に応じて、より大きな実施態様またはより小さな実施態様を収容するように拡大縮小できることに留意されたい。
しかしながら、より一般的には、プロセッサノードは、読み出しオペレーションおよび書き込みオペレーションを通信する装置に接続されることだけが必要である。
例えば、この実施の形態の別の実施態様では、プロセッサノード104、106は、マザーボード上に、SAN112の代わりにデータバス、例えばPCIバスを利用するさまざまなCPUを含む。
本教示は、必要に応じて、より大きな実施態様またはより小さな実施態様を収容するように拡大縮小できることに留意されたい。
ネットワークインターフェース(NI)108、110、114は、NPMU102に通信接続されて、NPMU102と共に含まれる永続メモリへのアクセスを可能にする。
このタイプの永続メモリを含めて、図1Aのさまざまなコンポーネントに対して、任意の適切な技術を利用することができる。
したがって、図1Aの実施の形態は、永続メモリを実現する特定の技術に限定されるものではない。
実際には、複数のメモリ技術をふさわしいものとすることができ、これらのメモリ技術には、あらゆる種類の磁気ランダムアクセスメモリ(MRAM)、磁気抵抗ランダムアクセスメモリ(MRRAM)、ポリマ強誘電体ランダムアクセスメモリ(PFRAM)、オボニクスユニファイドメモリ(OUM(ovonics unified memory))、BBDRAM、およびフラッシュメモリが含まれる。
システム100は、情報ブロック全体を転送するBBSSDと比較して、バイトレベルメモリアクセスを含む高粒度のメモリアクセスを可能にするように構成することができる。
このタイプの永続メモリを含めて、図1Aのさまざまなコンポーネントに対して、任意の適切な技術を利用することができる。
したがって、図1Aの実施の形態は、永続メモリを実現する特定の技術に限定されるものではない。
実際には、複数のメモリ技術をふさわしいものとすることができ、これらのメモリ技術には、あらゆる種類の磁気ランダムアクセスメモリ(MRAM)、磁気抵抗ランダムアクセスメモリ(MRRAM)、ポリマ強誘電体ランダムアクセスメモリ(PFRAM)、オボニクスユニファイドメモリ(OUM(ovonics unified memory))、BBDRAM、およびフラッシュメモリが含まれる。
システム100は、情報ブロック全体を転送するBBSSDと比較して、バイトレベルメモリアクセスを含む高粒度のメモリアクセスを可能にするように構成することができる。
とりわけ、メモリアクセスの粒度は、システム100の必要に応じて調整することができる。
NPMU102におけるメモリのアクセス速度も、システム100用に実施されるデータ通信方式の転送レートをサポートするのに十分高速であるべきである。
NPMU102におけるメモリのアクセス速度も、システム100用に実施されるデータ通信方式の転送レートをサポートするのに十分高速であるべきである。
永続情報は、使用されている永続メモリがデータを保持できる程度に提供されることに留意すべきである。
例えば、多くの用途では、永続メモリは、電力が失われた時間量に関係なく、データを記憶するように要求される場合があるのに対して、別の用途では、永続メモリは、数分または数時間の間だけ必要とされる場合がある。
例えば、多くの用途では、永続メモリは、電力が失われた時間量に関係なく、データを記憶するように要求される場合があるのに対して、別の用途では、永続メモリは、数分または数時間の間だけ必要とされる場合がある。
1つまたは複数の独立した間接アドレス指定メモリ領域を作成するメモリ管理機能をシステム100に設けることができる。
さらに、電力の喪失またはプロセッサ障害後のメモリ復旧用にNPMUメタデータを設けることもできる。
メタデータには、例えば、NPMU102内の保護されたメモリ領域のコンテンツおよびレイアウトが含まれ得る。
このように、NPMU102は、データだけでなく、データの使用方法も記憶する。
必要があれば、NPMU102は、メタデータをバックアッププロセス122に提供して、システム100が、主プロセス116に関連した電力障害またはシステム障害から復旧することを可能にすることができる。
さらに、電力の喪失またはプロセッサ障害後のメモリ復旧用に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つだけ保持する必要がある。
チェックポイント状態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を書き込む必要をなくすという利点を提供する。
チェックポイント状態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の状態を再現するのに、要求される時間よりも多くの時間量を要する場合にも当てはまる。
最初のチェックポイント状態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に提供する機構が設けられる。
図示するように、主プロセス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)資源の効率的な使用が可能になる。
それとは対照的に、従来の既知のいくつかのチェックポイント技法は、主プロセスとバックアッププロセスとの間のメッセージの受け渡しを利用して、チェックポイント情報を通信する。
したがって、主プロセスは、バックアッププロセスの同一性および位置に関する情報を必要としていた。
さらに、バックアッププロセスは、主プロセスと同期してチェックポイントメッセージを受信するために、従来の既知のシステムで動作しなければならなかった。
バックアッププロセス122は、NPMU102にアクセスできるどのリモートシステムにも作成することができる。
主プロセス116は、バックアッププロセス122がメッセージを受信した旨を知らせるのを待つ必要なく、必要があればいつでも、チェックポイント状態120および/または更新エリア128〜132を書き込むことができる。
さらに、NPMU102によって、
(1)主プロセス116が障害になった時、または、
(2)主プロセス116が、NPMU102のオーバーフローを回避するために、チェックポイント状態120および/または更新エリア128〜132から情報を定期的に読み出すことができなくなった時、
のいずれかにのみバックアッププロセス122を実行する必要があるので、利用可能な情報技術(IT)資源の効率的な使用が可能になる。
それとは対照的に、従来の既知のいくつかのチェックポイント技法は、主プロセスとバックアッププロセスとの間のメッセージの受け渡しを利用して、チェックポイント情報を通信する。
したがって、主プロセスは、バックアッププロセスの同一性および位置に関する情報を必要としていた。
さらに、バックアッププロセスは、主プロセスと同期してチェックポイントメッセージを受信するために、従来の既知のシステムで動作しなければならなかった。
さらに、NPMU102は、ハードウェアで実施することができ、それによって、読み出しオペレーションおよび書き込みオペレーションに高速アクセスを提供することができる。
他の従来の既知のチェックポイント技法は、磁気媒体または光媒体にチェックポイント情報を記憶し、この媒体は、NPMU102よりもはるかに多くのアクセス時間を必要とする。
他の従来の既知のチェックポイント技法は、磁気媒体または光媒体にチェックポイント情報を記憶し、この媒体は、NPMU102よりもはるかに多くのアクセス時間を必要とする。
図2は、通信リンク206を介してNI114に通信接続された不揮発性メモリ202を使用するNPMU102の一実施の形態を示している。
不揮発性メモリ202は、例えば、MRAMまたはフラッシュメモリとすることができる。
NI114は、通常、それ自身の要求を起動しないが、その代わり、NI114は、通信リンク210を介してSAN112から管理コマンドを受信し、要求された管理オペレーションを実行する。
具体的には、NPMU200は、受信要求を変換することができ、次いで、要求されたオペレーションを実行することができる。
コマンド処理のさらに詳細な内容は後述する。
通信リンク206、210は、有線通信および/または無線通信用に構成することができる。
SAN112は、NI114と図1Aのプロセッサノード104、106等の他のノードとの間の任意の適切な通信/処理基盤とすることができる。
例えば、SAN112は、ローカルエリアネットワークおよび/またはインターネット等のワイドエリアネットワークとすることができる。
不揮発性メモリ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は、ネットワークから管理コマンドを受信することができ、要求された管理オペレーションを実行することができる。
この実施の形態では、電力障害になると、揮発性メモリ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は、図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は、電力障害またはオペレーティングシステムのクラッシュが発生したメモリ状態から復旧して、当該メモリ状態からオペレーションを継続することができる。
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物理アドレスに対応することもできる。
このような実施の形態では、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に、悲観的な割り当てを通じて永続メモリ容量を浪費させることもないことにより、永続メモリ容量の容易でかつ効率的な使用が可能になる。
したがって、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仮想アドレスが同じ物理ページを指し示すことができる。
このような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に提供することができる。
このプログラミングは、ネットワーク仮想アドレスのブロックを割り当て、それらの仮想アドレスを物理メモリにおける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は、読み出し許可によりその領域をオープンする。
他の実施の形態では、バックアッププロセス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が記憶することができる。
プロセッサ104、106の各オペレーティングシステム(OS)144、146は、NI108、110へのアクセスを管理するだけでなく、そのNI108、110を通じて生成された接続に関するコンテキスト情報も保持する。
アクセス権および接続コンテキストに関する情報は、各プロセッサ104、106が記憶することができる。
主プロセス116およびバックアッププロセッサ122は、NPMU102の領域をオープンまたは作成する要求をPMM140に送信するために、それらの各オペレーティングシステム144、146から許可を得なければならない。
PMM140は、TPT142に適切なエントリを設定して、許可されたアクセス権を要求側に返す。
PMM140は、TPT142に適切なエントリを設定して、許可されたアクセス権を要求側に返す。
アクセス権が得られた後にのみ、各オペレーティングシステム144、146は、主プロセス116またはバックアッププロセス122が、それらのオープンした領域内において、NPMU102からの物理メモリのコンテンツを書き込みまたは読み出すことを可能にする。
アクセス権はNI114によって実施され、NI114は、NPMU102においてPMM140によって保持されたTPT142のエントリから自身の状態を構成する。
アクセス権はNI114によって実施され、NI114は、NPMU102においてPMM140によって保持されたTPT142のエントリから自身の状態を構成する。
いくつかの実施の形態では、主プロセス116またはバックアッププロセス122は、NPMU102との接続を確立することを選択し、次いで、その接続を介して書き込み要求または読み出し要求を送信すると、アクセス権は、その接続に「バインド」することができ、各要求と共に繰り返す必要はない。
主プロセス116およびバックアッププロセス122が、最初に接続を確立することなく、要求をNPMU102に送信することを選択すると、各要求は、アクセス権に含まれる認証情報を含むことができる。
主プロセス116およびバックアッププロセス122が、最初に接続を確立することなく、要求をNPMU102に送信することを選択すると、各要求は、アクセス権に含まれる認証情報を含むことができる。
NPMU102は、PMM140を直接認証することができる。
さまざまな実施方式を利用することができる。
いくつかの実施の形態では、特定のNPMU120がSAN112に最初に接続されると、PMM140は、一定のNPMU102の所有権を取得する。
このような状況では、PMM140は、TPT142への書き込み許可を自身に認めるように、NPMU102のTPT142を初期化する。
他の実施の形態は、パスワードベースの認証を利用することができる。
この場合、NPMU102は、PMM140にのみ知られている予め構成されたパスワードを使用して、PMM140からの要求の正当性を確認する。
証明書ベースの認証を含めて、さまざまな他の方式が可能であり、この証明書ベースの認証では、SAN112が、サードパーティの認証サービスをサポートして、通信するエンティティを相互に認証することが必要とされる。
さまざまな実施方式を利用することができる。
いくつかの実施の形態では、特定の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は、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は、書き込み転送に、完了した印をつける。
その後、あらゆる待機プロセスは、通知を受けることができ、続いて、処理を受けることができる。
プロセッサノード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は、システムメモリの細かな粒度のアクセスを伴った永続ストレージを有する。
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)を含むことができる。
このコンピュータシステム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に情報およびコマンドを入力することを可能にすることができる。
さらに、コンピュータ可読読み出し専用メモリ(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を表すことができる。
通信ポート518をネットワークインターフェース(NI)520にも接続して、外部ネットワークとの通信を可能にすることもできる。
NI520は、例えば、図1AのNI108、114、141、または110を表すことができる。
表示装置522をバス502に接続して、システム500のユーザに情報を表示することができる。
表示装置522は、液晶デバイス、陰極線管、またはユーザが認識可能なグラフィック画像および英数字を生成するのに適した他の表示デバイスとすることができる。
英数字入力デバイス514およびカーソル制御デバイス516によって、コンピュータユーザは、表示装置522上における可視的なシンボル(ポインタ)の2次元移動を信号で動的に送ることが可能になる。
表示装置522は、液晶デバイス、陰極線管、またはユーザが認識可能なグラフィック画像および英数字を生成するのに適した他の表示デバイスとすることができる。
英数字入力デバイス514およびカーソル制御デバイス516によって、コンピュータユーザは、表示装置522上における可視的なシンボル(ポインタ)の2次元移動を信号で動的に送ることが可能になる。
いくつかの実施の形態では、コンピュータシステム500のコンポーネントは、相互に通信することもできるし、適切なインターフェースリンクを介して他の外部ネットワークと通信することもできる。
適切なインターフェースリンクは、T1、ISDN、ケーブル線、携帯電話ネットワークもしくは衛星ネットワークを通じた無線接続、またはローカルエリアネットワークにわたるイーサネットやトークンリング等のローカルデータ搬送システムのいずれか1つや組み合わせ等である。
ハイパーテキスト転送プロトコル(HTTP)や伝送制御プロトコル/インターネットプロトコル(TCP/IP)等の任意の適切な通信プロトコルを利用して、外部ネットワークの他のコンポーネントと通信することができる。
さらに、コンピュータシステム500は、任意の適切な計算デバイスに組み込むこともでき、任意の適切な計算デバイスには、個人情報端末(PDA)、表示エリアを有する電話、ネットワーク機器、デスクトップ、ラップトップ、Xウィンドウ端末、またはこのような他の計算デバイスが含まれる。
適切なインターフェースリンクは、T1、ISDN、ケーブル線、携帯電話ネットワークもしくは衛星ネットワークを通じた無線接続、またはローカルエリアネットワークにわたるイーサネットやトークンリング等のローカルデータ搬送システムのいずれか1つや組み合わせ等である。
ハイパーテキスト転送プロトコル(HTTP)や伝送制御プロトコル/インターネットプロトコル(TCP/IP)等の任意の適切な通信プロトコルを利用して、外部ネットワークの他のコンポーネントと通信することができる。
さらに、コンピュータシステム500は、任意の適切な計算デバイスに組み込むこともでき、任意の適切な計算デバイスには、個人情報端末(PDA)、表示エリアを有する電話、ネットワーク機器、デスクトップ、ラップトップ、Xウィンドウ端末、またはこのような他の計算デバイスが含まれる。
論理命令は、コンピュータ可読媒体に記憶することもできるし、電子信号の形でアクセスすることもできる。
本明細書で説明した論理モジュール、処理システム、および回路機構は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、他の適切なデバイス等のハードウェア、ソフトウェア、および/またはファームウェアの任意の適切な組み合わせを使用して実施することができる。
論理モジュールは、単独で実施することもできるし、他のシステムコンポーネントの1つに含めることもできる。
同様に、他のコンポーネントは、個別のディスクリートコンポーネントとして本明細書で開示されている。
しかしながら、これらのコンポーネントは、必要に応じて、より大きなまたは異なるソフトウェアモジュール、論理モジュール、集積回路、または電気アセンブリを形成するように組み合わせることができる。
本明細書で説明した論理モジュール、処理システム、および回路機構は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、他の適切なデバイス等のハードウェア、ソフトウェア、および/またはファームウェアの任意の適切な組み合わせを使用して実施することができる。
論理モジュールは、単独で実施することもできるし、他のシステムコンポーネントの1つに含めることもできる。
同様に、他のコンポーネントは、個別のディスクリートコンポーネントとして本明細書で開示されている。
しかしながら、これらのコンポーネントは、必要に応じて、より大きなまたは異なるソフトウェアモジュール、論理モジュール、集積回路、または電気アセンブリを形成するように組み合わせることができる。
本開示はさまざまな実施の形態を説明したが、これらの実施の形態は、例示として理解されるべきであり、特許請求の範囲を限定するものではない。
説明した実施の形態の多くの変形、変更、追加、および改良が可能である。
例えば、当業者は、本明細書で開示した構造および方法を提供するのに必要なプロセスを容易に実施する。
また、本明細書で開示した実施の形態の変形および変更も、添付した特許請求の範囲内に含めつつ行うことができる。
個々のモジュールの機能および機能の組み合わせは、任意の適切な機能とすることができる。
特許請求の範囲の範囲では、特に指定しない限り、数詞を伴わず単数形としても捉えることができる構成要素は、同構成要素の1または複数のものを指す。
説明した実施の形態の多くの変形、変更、追加、および改良が可能である。
例えば、当業者は、本明細書で開示した構造および方法を提供するのに必要なプロセスを容易に実施する。
また、本明細書で開示した実施の形態の変形および変更も、添付した特許請求の範囲内に含めつつ行うことができる。
個々のモジュールの機能および機能の組み合わせは、任意の適切な機能とすることができる。
特許請求の範囲の範囲では、特に指定しない限り、数詞を伴わず単数形としても捉えることができる構成要素は、同構成要素の1または複数のものを指す。
102・・・永続メモリ,
120・・・チェックポイント状態,
142・・・アドレス変換/保護表,
104、106・・・プロセッサ,
116・・・主プロセス,
120・・・チェックポイント状態,
122・・・バックアッププロセス,
144、146・・・オペレーティングシステム,
202・・・不揮発性メモリ,
302・・・揮発性メモリ,
304・・・バッテリ,
306・・・プロセッサ,
310・・・不揮発性2次ストレージ,
506・・・オペレーティングシステム,
508・・・アプリケーションプログラム,
512・・・データストレージ,
514・・・英数字入力,
516・・・カーソル制御部,
518・・・通信ポート,
522・・・表示装置,
120・・・チェックポイント状態,
142・・・アドレス変換/保護表,
104、106・・・プロセッサ,
116・・・主プロセス,
120・・・チェックポイント状態,
122・・・バックアッププロセス,
144、146・・・オペレーティングシステム,
202・・・不揮発性メモリ,
302・・・揮発性メモリ,
304・・・バッテリ,
306・・・プロセッサ,
310・・・不揮発性2次ストレージ,
506・・・オペレーティングシステム,
508・・・アプリケーションプログラム,
512・・・データストレージ,
514・・・英数字入力,
516・・・カーソル制御部,
518・・・通信ポート,
522・・・表示装置,
Claims (9)
- 外部ネットワーク(112)に対するネットワークインターフェース(114)と、
前記ネットワークインターフェース(114)に接続された永続メモリユニット(102)と
を備えるチェックポイント状態情報を記憶するシステム(100)であって、
前記永続メモリユニット(102)は、ネットワークインターフェース(108、110)を通じて、主プロセス(116)からの直接メモリ書き込みコマンドを介して前記チェックポイントデータを受信し、バックアッププロセス(122)からの直接メモリ読み出しコマンドを介して前記チェックポイントデータ(120)へのアクセスを提供するように構成され、
前記バックアッププロセスは、前記主プロセス(116)の障害の場合に復旧能力を提供する
システム。 - 前記ネットワークインターフェース(108)に、アドレスコンテキスト情報を提供するように構成された永続メモリマネージャ(140)
をさらに備える請求項1に記載のシステム。 - 前記永続メモリユニット(102)は、前記チェックポイントデータ(120)を別のプロセッサ(106)に送信するように構成され、
前記バックアッププロセス(122)は、前記別のプロセッサ(106)によって実行される
請求項1に記載のシステム。 - 前記主プロセス(116)の障害時に、前記永続メモリユニット(102)は、前記バックアッププロセス(122)から要求があると、前記チェックポイントデータを提供する
請求項1に記載のシステム。 - 前記永続メモリユニット(102)は、連続的な時間間隔で前記プロセッサ(104)から送信された複数の組のチェックポイントデータを記憶するように構成される
請求項1に記載のシステム。 - 前記永続メモリユニット(102)は、前記バックアッププロセス(122)から要求があると、前記複数の組のチェックポイントデータ(120)を一度に提供する
請求項5に記載のシステム。 - 前記主プロセス(116)は、前記バックアッププロセス(122)とは独立に、前記チェックポイントデータ(120)を、前記永続メモリユニット(102)に提供する
請求項1に記載のシステム。 - 前記永続メモリユニット(102)は、リモートダイレクトメモリアクセスが可能なシステムエリアネットワーク(112)の一部として構成される
請求項1に記載のシステム。 - 前記永続メモリユニット(102)は、リモートプロセッサ(104、106)からの要求を認証し、認証したリモートプロセッサ(104、106)にアクセス情報を提供する
アドレス保護/変換表(142)で構成される、請求項1に記載のシステム。
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)
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)
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)
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 |
-
2003
- 2003-12-16 US US10/737,374 patent/US9213609B2/en active Active
-
2004
- 2004-08-09 DE DE102004038649.8A patent/DE102004038649B4/de not_active Expired - Fee Related
- 2004-12-08 JP JP2004354873A patent/JP2005182781A/ja active Pending
Cited By (2)
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 |