IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-506520損失したストレージボリュームの自動再作成
<>
  • 特表-損失したストレージボリュームの自動再作成 図1
  • 特表-損失したストレージボリュームの自動再作成 図2
  • 特表-損失したストレージボリュームの自動再作成 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-14
(54)【発明の名称】損失したストレージボリュームの自動再作成
(51)【国際特許分類】
   G06F 3/06 20060101AFI20240206BHJP
   G06F 11/14 20060101ALI20240206BHJP
【FI】
G06F3/06 301Z
G06F11/14 635
G06F3/06 306Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023544553
(86)(22)【出願日】2022-01-11
(85)【翻訳文提出日】2023-07-24
(86)【国際出願番号】 IB2022050176
(87)【国際公開番号】W WO2022172095
(87)【国際公開日】2022-08-18
(31)【優先権主張番号】17/175,634
(32)【優先日】2021-02-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100118599
【弁理士】
【氏名又は名称】村上 博司
(74)【復代理人】
【識別番号】100160738
【弁理士】
【氏名又は名称】加藤 由加里
(72)【発明者】
【氏名】ロング,ジェームス
(72)【発明者】
【氏名】ヴァンス,マイケル
(72)【発明者】
【氏名】キング,ジャスティン
(72)【発明者】
【氏名】スタントン,デヴィッド
(57)【要約】
損失したストレージボリュームを自動的に再作成する為の、コンピューティングデバイス、非一時的なコンピュータ可読ストレージ媒体及び方法が提供される。SCMストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドが受信される。該ボリュームメタデータは、該SCMストレージデバイスよりも揮発性の低い別のストレージデバイスにおいて記憶される。該ストレージボリュームは、該ボリュームコマンドをSCMデバイスドライバに転送することを含む該ボリュームコマンドに従って構成される。該SCMストレージデバイスにおける永続性損失の通知は、該ボリュームコマンドを転送した後に受信される。該ボリュームメタデータは、該永続性損失の通知を受信した後に、該別のストレージデバイスから取得される。該取得したボリュームメタデータを該SCMデバイスドライバに送信することを含む該ボリュームコマンドに従って、該ストレージボリュームが自動的に再構成される。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、前記コンピューティングデバイスが、
プロセッサ;
前記プロセッサに接続されたストレージクラスメモリ(SCM)ストレージデバイス;
前記プロセッサに接続された前記SCMストレージデバイスよりも揮発性の低い別のストレージデバイス;
前記SCMストレージデバイスのボリュームを管理するSCMデバイスドライバ;
前記別のストレージデバイス内に記憶されたストレージデバイスマネージャ
を備えており、
ここで、前記ストレージデバイスマネージャを前記プロセッサによって実行することが、
前記SCMストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドを受信すること;
前記ボリュームメタデータを前記別のストレージデバイスに記憶すること;
前記ボリュームコマンドを前記SCMデバイスドライバに転送することを含む前記ボリュームコマンドに従って前記ストレージボリュームを構成すること;
前記ボリュームコマンドを転送した後に、前記SCMストレージデバイスにおける永続性損失の通知を受信すること;
前記永続性損失の前記通知を受信した後に、前記ボリュームメタデータを前記別のストレージデバイスから取得すること;及び、
前記取得したボリュームメタデータを前記SCMデバイスドライバに提出することを含む前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成すること
を含む行為を実行するように前記コンピューティングデバイスを構成する、
前記コンピューティングデバイス。
【請求項2】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームをパーティション又は仮想マシンに割り当てることを含む、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームを作成することを含む、請求項1に記載のコンピューティングデバイス。
【請求項4】
前記ボリュームメタデータを含むボリュームコマンドを受信することが、ボリューム識別子、ボリューム名、ボリュームサイズ、ボリューム位置、又はボリューム所有者のうちの1以上を受信することを含む、請求項1に記載のコンピューティングデバイス。
【請求項5】
前記ボリュームメタデータを前記別のストレージデバイスに記憶することが、前記ボリュームメタデータを不揮発性ランダムアクセスメモリ(NvRAM)デバイスに記憶することを含む、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームをパーティション又は仮想マシンに自動的に割り当てることを含む、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを自動的に作成することを含む、請求項1に記載のコンピューティングデバイス。
【請求項8】
前記ボリュームコマンドを受信することが、前記ボリュームコマンドをユーザインタフェースから受信すること、又は前記ボリュームコマンドをプログラムをロードすることから受信することのうちの1つを含む、請求項1に記載のコンピューティングデバイス。
【請求項9】
複数のコンピュータ可読命令を有するコンピュータ可読プログラムコードを実態的に収録する非一時的なコンピュータ可読ストレージ媒体であって、該複数のコンピュータ可読命令は、実行されるときに、ストレージデバイスを構成する方法をユーザデバイスに実行させ、該方法は、
ストレージクラスメモリ(SCM)ストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドを受信すること;
前記ボリュームメタデータを、前記SCMストレージデバイスよりも揮発性の低い別のストレージデバイスに記憶すること;
前記ボリュームコマンドを前記SCMデバイスドライバに転送することを含む前記ボリュームコマンドに従って前記ストレージボリュームを構成すること;
前記ボリュームコマンドを転送した後に、前記SCMストレージデバイスにおける永続性損失の通知を受信すること;
前記永続性損失の前記通知を受信した後に、前記ボリュームメタデータを前記別のストレージデバイスから取得すること;及び、
前記取得したボリュームメタデータを前記SCMデバイスドライバに提出することを含む前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成すること
を含む、前記非一時的なコンピュータ可読ストレージ媒体。
【請求項10】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームをパーティション又は仮想マシンに割り当てることを含む、請求項9に記載の非一時的なコンピュータ可読ストレージ媒体。
【請求項11】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームを作成することを含む、請求項9に記載の非一時的なコンピュータ可読ストレージ媒体。
【請求項12】
前記ボリュームメタデータを前記別のストレージデバイスから取得することが、ボリューム識別子、ボリューム名、ボリュームサイズ、ボリューム位置、又はボリューム所有者のうちの1以上を受信することを含む、請求項9に記載の非一時的なコンピュータ可読ストレージ媒体。
【請求項13】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームをパーティション又は仮想マシンに自動的に割り当てることを含む、請求項9に記載の非一時的なコンピュータ可読ストレージ媒体。
【請求項14】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを自動的に作成することを含む、請求項9に記載の非一時的なコンピュータ可読ストレージ媒体。
【請求項15】
ストレージデバイスを構成する為の、コンピュータに実装された方法であって、
ストレージクラスメモリ(SCM)ストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドを受信すること;
前記ボリュームメタデータを、前記SCMストレージデバイスよりも揮発性の低い別のストレージデバイスに記憶すること;
前記ボリュームコマンドを前記SCMデバイスドライバに転送することを含む前記ボリュームコマンドに従って前記ストレージボリュームを構成すること;
前記ボリュームコマンドを転送した後に、前記SCMストレージデバイスにおける永続性損失の通知を受信すること;
前記永続性損失の前記通知を受信した後に、前記ボリュームメタデータを前記別のストレージデバイスから取得すること;及び、
前記取得したボリュームメタデータを前記SCMデバイスドライバに提出することを含む前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成すること
を含む、前記方法。
【請求項16】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームをパーティション又は仮想マシンに割り当てることを含む、請求項15に記載の、コンピュータに実装された方法。
【請求項17】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを前記パーティション又は仮想マシンに自動的に割り当てることを含む、請求項16に記載の、コンピュータに実装された方法。
【請求項18】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームを作成することを含む、請求項15に記載の、コンピュータに実装された方法。
【請求項19】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを再び自動的に作成することを含む、請求項18に記載の、コンピュータに実装された方法。
【請求項20】
前記ボリュームメタデータを含むボリュームコマンドを受信することが、ボリューム識別子、ボリューム名、ボリュームサイズ、ボリューム位置、又はボリューム所有者のうちの1以上を受信することを含み、及び、
前記ボリュームメタデータを前記別のストレージデバイスから取得することが、前記ボリューム識別子、前記ボリューム名、前記ボリュームサイズ、前記ボリューム位置、又は前記ボリューム所有者のうちの1以上を受信することを含む、
請求項15に記載の、コンピュータに実装された方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般的に、ストレージデバイスに関し、より特には、損失したストレージボリュームを自動的に再作成するシステム及び方法に関する。
【背景技術】
【0002】
様々な中間ストレージソリューション(intermediate storage solution)、例えば、ストレージクラスメモリ(SCM:Storage Class Memory)を包含する上記の中間ストレージソリューションは、ダイナミックランダムアクセスメモリ(DRAM:Dynamic Random-Access Memory)とフラッシュメモリとの間のコスト/性能の代替に対処するように設計されている。一般的に、これらの中間ストレージソリューションは、より低レイテンシの転送技術を使用し、及びコンピュータシステムのRAMのようにアクセス/使用される。例えば、中間ストレージソリューションの一部は、通常のCPUリード/ライトサイクルを容易にするメモリ内に直接的にマッピングされることができる(すなわち、メインページテーブルの一部として)。有利なことに、中間ストレージソリューションは永続的である。その為に、中間ストレージソリューションを使用するシステムは、通常、メモリの内容を維持したまま、(例えば、フラッシュメモリと比較して)より迅速に再起動/再始動することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の様々な実施態様に従うと、損失したストレージボリュームを自動的に再作成する為の、コンピューティングデバイス、非一時的なコンピュータ可読ストレージ媒体、及び方法が提供される。
【0004】
ボリュームコマンド、例えば、ストレージクラスメモリ(SCM)ストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含む上記のボリュームコマンド、は、(例えば、プログラムから、又はユーザインタフェースを通じてユーザから)受信される。該ボリュームメタデータは、該SCMストレージデバイスよりも揮発性の低い別のストレージデバイスにおいて記憶される。該ストレージボリュームは、ボリュームコマンドをSCMデバイスドライバに転送することを含む該ボリュームコマンドに従って構成される。
【0005】
該SCMストレージデバイスにおける永続性損失の通知が、該ボリュームコマンドを転送することに続いて受信される。該SCMストレージデバイスにおける該永続性損失の通知に続いて、該記憶されたボリュームメタデータが該別のストレージデバイスから取得される。該ストレージボリュームは、該取得されたボリュームメタデータを該SCMデバイスドライバに提出することを含む該ボリュームコマンドに従って自動的に再構成される。
【0006】
これらの及び他の特徴は、添付の図面と関連して読まれるべきである例示的な実施態様の以下の詳細な説明から明らかになるであろう。
【0007】
図面は、例示的な実施態様のものである。それらは全ての実施態様を例示するものでない。他の実施態様が追加されてもよく又は代わりに使用されてもよい。スペースを節約する為に又はより効果的な説明の為に、明白な又は不要な詳細が省略される場合がある。幾つかの実施態様は、追加の構成要素又は工程を使用して、及び/又は図示されている構成要素又は工程の全てを使用すること無しに実施されうる。同じ数字が異なる図面に現れる場合、それは、同じ又は同様の構成要素又は工程を指す。
【図面の簡単な説明】
【0008】
図1図1は、損失したストレージボリュームの自動再作成を容易にする例示的なコンピュータアーキテクチャを図示する。
図2図2は、損失したストレージボリュームを自動的に再作成する例示的な方法のフローチャート図を図示する。
図3図3は、特に構成されたコンピュータハードウェアプラットフォームを図示する。
【発明を実施するための形態】
【0009】
以下の詳細な説明において、関連する教示の徹底的な理解を提供する為に、多数の具体的な詳細が例として挙げられている。しかしながら、本教示は、そのような詳細無しに実施されうることが明らかであるべきである。他の例において、本教示の観点を不必要に不明瞭にすることを避ける為に、周知の方法、手順、構成要素、及び/又は回路が、詳細を伴わずに相対的に高いレベルで説明されている。
【0010】
本開示は一般的に、損失したストレージボリュームを自動的に再作成するシステム及び方法に関する。本明細書において議論されている概念により、ストレージデバイスにおけるボリュームは、該ストレージデバイスにおける永続性の損失後に自動的に(再)作成/(再)構成されることができる。
【0011】
ストレージクラスメモリ(SCM)並びに他の中間ストレージデバイスソリューションは、様々な程度の安定性を有し、或る条件下において永続性を維持することができない場合がある。このことが生じる場合に、該デバイス上の(潜在的に全ての)データが失われる可能性がある。データの損失は、(例えば、SCM)ボリューム及び対応するボリュームメタデータの消去を含むことができる。SCMデバイスは、相当数のボリューム(例えば、数百又は数千)を含むことができる。該ボリュームを手動で再作成し、そして、該ボリュームをそれらのパーティション(例えば、仮想マシン)に戻して再割り当てすることは、かなりの時間を消費する可能性がある。1つの観点において、中間ストレージソリューション、例えばSCMストレージソリューション、が永続性を失う場合に、該中間ストレージソリューションのボリュームが自動的に再作成される。
【0012】
ボリューム再作成を容易にする為に、中間ストレージソリューションよりも揮発性が低い(すなわち、より安定している)別の記憶ソリューションが利用される。1つの例において、不揮発性ランダムアクセスメモリ(NvRAM:Non-Volatile Random Access Memory)が利用される。しかしながら、実質的に揮発性の低い(すなわち、より安定した)任意のストレージソリューション、例えばフラッシュメモリのタイプを包含する上記のストレージソリューション、が使用されうる。
【0013】
ボリュームが中間ストレージソリューションにおいて作成又は変更される場合に、ボリューム作成又はボリューム変更に対応するボリュームメタデータが、他の(揮発性の低い、より安定した)ストレージソリューションにおいて保存される。永続性の損失後に、該保存されたメタデータが取得され、そして、該中間ストレージソリューション上でボリュームを自動的に再作成し、そして、該ボリュームを所有していた以前のパーティション(例えば、仮想マシン)に該ボリュームを再割り当てする為に使用されることができる。ユーザ又は管理者は、以前の(例えば、SCM)ボリューム構成を記憶し、及び再作成することを心配する必要がない。従って、ボリュームを自動的に再作成し及び再割り当てすることは、ボリュームを手動で再作成し及び再割り当てすることと比較して、有意に時間を節約することができる。
【0014】
より具体的な例において、SCMデバイスにおけるSCMボリュームを作成する為の、変更する為の又は破壊する為の要求は、ユーザインタフェースを介して作成され、そして、要求管理ソフトウェアに引き渡される。該要求は、ボリュームメタデータ、例えば、ボリュームID(例えば、普遍的に一意の識別子(UUID:Universally Unique Identifier))、ボリューム名、ボリューム位置、ボリュームサイズ、該ボリュームを所有するパーティション(例えば、仮想マシン)、を含むことができる。該要求管理ソフトウェアは、該要求から該ボリュームメタデータにアクセスし(例えば、抽出し)、該ボリュームメタデータを不揮発性ストレージ、例えばNvRAM、内に記憶する。該要求管理ソフトウェアは、ユーザ又は管理者がSCMボリューム構成を変更する場合に、ボリュームメタデータを継続的に更新することができる。
【0015】
要求に関連付けられた該ボリュームメタデータを保存した後、要求マネージャは該要求をSCMデバイスドライバに転送し、該SCMデバイスにおいて該要求されたアクション(ボリュームを作成すること、ボリュームを変更すること、ボリュームを破壊すること等)を実行することができる。該SCMデバイスが永続性を損失する場合又は損失したときに、該SCMデバイスドライバは該要求管理ソフトウェアに該損失を通知する。該通知に応答して、該要求マネージャは、以前に保存されたボリュームメタデータを解析する。該保存されたボリュームメタデータを使用して、要求マネージャソフトウェアは、1以上の要求を自動的に作成/複製することができる。該要求マネージャソフトウェアは、該1以上の要求を該SCMデバイスドライバに送信することができる。該SCMデバイスドライバは、該SCMデバイスを永続性の損失前の構成に戻すことを含む、ボリュームを再作成し且つ再割り当てする1以上の要求を実行することができる。
【0016】
従って、保存されたボリュームメタデータを使用して、該要求マネージャソフトウェアは、損失したSCMボリュームを自動的に再作成し、そして、該損失したSCMボリュームを、以前に所有していたパーティション(例えば、仮想マシン)に自動的に再割り当てすることができる。本発明の観点は、様々なSCMストレージソリューション、例えば、不揮発性デュアルインラインメモリモジュール(NvDIMM:non-volatile dual in-line memory module)、インテル オプティン(Intel Optane)、3D Xpoint、抵抗RAM(RRAM又はReRAM)、磁気抵抗RAM(MRAM:Magnetoresistive RAM)、スピン注入磁化反転MRAM(STT-MRAM:Spin-transfer torque MRAM)、ナノチューブRAMを包含する上記のSCMストレージソリューション、に適用されることができる。
【0017】
本開示の態様はまた、ストレージソリューションの他の組み合わせに一般的に適用可能である。より揮発性の高い(低い安定性)ストレージデバイスに関連付けられたメタデータは、より揮発性の低い(高い安定性)ストレージデバイスにおいて記憶されることができる。該記憶されたメタデータは、揮発性の低いストレージデバイスから取得されることができ、及び揮発性の高いストレージデバイスにおける永続性の損失に応答して、該揮発性の高いストレージデバイスのボリュームを自動的に(再)構成する為に使用されることができる。ストレージデバイスの揮発性は、ストレージデバイスがどの程度の頻度で若しくはどのような条件又はそれらの組み合わせで永続性を失う可能性があるかに関連して考慮されることができる。より多い頻度で若しくはより多くの条件で又はそれらの組み合わせで永続性を失うストレージデバイスは、より少ない頻度で若しくはより少ない条件で又はそれらの組み合わせで永続性を失うストレージデバイスと比較して、より揮発性が高い(すなわち、低い安定性)と考えることができる。一方、より少ない頻度で若しくはより少ない条件で又はそれらの組み合わせで永続性を失うストレージデバイスは、より多い頻度で若しくはより多くの条件で又はそれらの組み合わせで永続性を失うストレージデバイスと比較して、より揮発性が低い(すなわち、高い安定性)と考えることができる。
【0018】
本明細書及び添付の特許請求の範囲において、「パーティション」は、ある機能を実行する為に割り当てられた相互運用可能なコンピューティングリソースのグループとして定義される。様々な種類のリソース、例えば、プロセッサ、メモリ、ネットワーク、ストレージ等、がパーティションに割り当てられることができる。本明細書添付の特許請求の範囲において、パーティションはまた、「仮想マシン」として言及されうる。コンピューティングリソースがパーティション又は仮想マシンに割り当てられる場合に、該パーティション又は仮想マシンは、コンピューティングリソースを「所有」しているとみなされることができる。例えば、パーティション又は仮想マシンは、ストレージボリュームを「所有」することができる。
【0019】
本開示の特徴をより良く理解する為に、例示的なアーキテクチャを議論することが有用であろう。その為に、図1は、損失したストレージボリュームを自動的に再作成することを容易にする例示的なコンピュータアーキテクチャ100を図示する。
【0020】
例示的なアーキテクチャ
【0021】
ここで、図1を参照すると、該図1は、例示的な実施態様と一致する、損失したストレージボリュームを自動的に再作成することを容易にする例示的なコンピュータアーキテクチャ100である。アーキテクチャ100は、ストレージデバイスマネージャ101、ストレージ102、デバイスドライバ103、SCMデバイス104、プログラム106、及びユーザインタフェース107を備えている。ストレージ102(例えば、NvRAM)は、SCMデバイス104と比較して揮発性の低い(より安定した)ストレージソリューションであることができる。
【0022】
一般的に、プログラム106又はユーザインタフェース107を介したユーザは、SCMデバイス104におけるボリューム構成を変更する為にボリュームコマンドを送信することができる。該ボリュームコマンドは、デバイスドライバ103に向けられることができる。図示されているように、ストレージデバイスマネージャ101は、プログラム106/ユーザインタフェース107とデバイスドライバ103との間に配置される。ストレージデバイスマネージャ101は、デバイスドライバ103に先行して該ボリュームコマンドを受信することができる。
【0023】
ストレージデバイスマネージャ101は、該ボリュームコマンドに含まれているメタデータを抽出し、そして、ストレージ102において該メタデータを記憶することができる。次に、ストレージデバイスマネージャ101は、該ボリュームコマンド(メタデータを含む)をデバイスドライバ103に転送することができる。デバイスドライバ103は、該ボリュームコマンド及び含まれるメタデータに従って、SCMデバイス104においてボリューム構成変更を実施することができる。
【0024】
該構成変更の実装に続いて、SCMデバイス104は、永続性を損失しうる。永続性は、様々な理由、例えば、ファームウェアエラー、ハードウェアエラー、電力の突然の損失、データ保存前のコンデンサ放電、エラー訂正コード(ECC:error correction code)障害を包含する上記の様々な理由、で失われる可能性がある。デバイスドライバ103は、SCMデバイス104における永続性の損失を検出し、そして、ストレージデバイスマネージャ101に該永続性の損失を通知することができる。
【0025】
該永続性損失の通知に応答して、ストレージデバイスマネージャ101は、ストレージ102からの該抽出されたメタデータにアクセスすることができる。ストレージデバイスマネージャ101は、該抽出されたメタデータから若しくはそれを含む又はそれらの組み合わせの(以前に受信した)ボリュームコマンド(又は別の同様のボリュームコマンド)を自動的に形成することができる。ストレージデバイスマネージャ101は、該自動的に形成されたボリュームコマンドをデバイスドライバ103に送信することができる。デバイスドライバ103は、該自動的に形成されたボリュームコマンド及び抽出されたメタデータに従って、SCMデバイス104において別のボリューム構成変更を実施することができる。他のボリューム構成変更を実施することにより、SCMデバイス104は、永続性の損失前のボリューム構成に一致するボリューム構成に戻る。
【0026】
図2は、損失したストレージボリュームを自動的に再作成する為の例示的な方法200のフローチャート図を図示する。方法200は、コンピュータアーキテクチャ100の構成要素に関して記載されている。
【0027】
方法200は、SCMストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドを受信することを含む(201)。例えば、ストレージデバイスマネージャ101は、プログラム106又はユーザインタフェース107から、メタデータ112を含むコマンド111を受信することができる。メタデータ112は例えば、SCMデバイス104におけるボリュームID(例えば、普遍的に一意の識別子(UUID:Universally Unique Identifier))、SCMデバイス104におけるボリューム名、SCMデバイス104におけるボリューム位置、SCMデバイス104におけるボリュームサイズ、SCMデバイス104においてボリュームを所有するパーティション(仮想マシン)等のうちの1以上を含むことができる。
【0028】
方法200は、該ボリュームメタデータを、SCMストレージデバイスよりも揮発性の低い別のストレージデバイスに記憶することを含む(202)。例えば、ストレージデバイスマネージャ101は、コマンド111からメタデータ112を抽出し、そして、メタデータ112をストレージ102内に格納することができる。
【0029】
方法200は、該ボリュームコマンドをSCMデバイスドライバに転送することを含む該ボリュームコマンドに従って該ストレージボリュームを構成することを含む(203)。例えば、ストレージデバイスマネージャ101は、メタデータ112を含むコマンド111をデバイスドライバ103に送信することができる。デバイスドライバ103は、ストレージデバイスマネージャ101から、メタデータ112を含むコマンド111を受信することができる。デバイスドライバ103は、コマンド111及びメタデータ112に従って、SCMデバイス104においてストレージボリュームを構成することができる。例えば、デバイスドライバ103は、コマンド111及びメタデータ112から構成116を策定することができる。デバイスドライバ103は例えば、ボリューム作成、ボリューム変更(例えば、サイズ変更、場所変更等)、ボリューム破壊、ボリュームをパーティション(仮想マシン)に割り当てる等のうちの1以上を含む、SCMデバイス104における構成116を実装することができる。
【0030】
構成116を実装することに続いて、SCMデバイス104は、ある時間の間、意図された通りに、コマンド111及びメタデータ112に従って動作することができる。更に後のある時間において、SCMデバイス104は例えば、SCMデバイス104における若しくはそれに関連付けられた又はそれらの組み合わせにおける、ファームウェアエラー、ハードウェアエラー、電力の突然の損失、データ保存前のコンデンサ放電、エラー訂正コード(ECC:error correction code)障害等のうちの1以上により(永続性損失117により表される)永続性を損失しうる。
【0031】
方法200は、ボリュームコマンドを転送することに続いて、該SCMストレージデバイスにおける永続性損失の通知を受信することを含む(204)。例えば、デバイスドライバ103は、SCMデバイス104において永続性損失117を検出することができる。デバイスドライバ103は、ストレージデバイスマネージャ101に永続性損失117を通知することができる。別の態様において、ストレージデバイスマネージャ101は、永続性損失117を直接検出する。
【0032】
方法200は、該永続性損失の該通知を受信することに続いて、該ボリュームメタデータを該別のストレージデバイスから取得することを含む(205)。例えば、永続性損失117の通知を受ける(又は検出する)ことに続いて、ストレージデバイスマネージャ101は、クエリ113をストレージ102に提出することができる。クエリ113は、SCMデバイス104に関連付けられたメタデータについてのクエリであることができる。クエリ113に応答して、ストレージ102は、メタデータ112をストレージデバイスマネージャ101に返すことができる。
【0033】
方法200は、該取得したボリュームメタデータを該SCMデバイスドライバに提出することを含む該ボリュームコマンドに従って該ストレージボリュームを自動的に再構成することを含む(206)。例えば、ストレージデバイスマネージャ101は、メタデータ112から及びメタデータ112を含むコマンド114を自動的に形成することができる。コマンド114は、(完全に複製しないとしても)コマンド111と類似することができる。ストレージデバイスマネージャ101は、メタデータ112を含むコマンド114をデバイスドライバ103に自動的に送信することができる。デバイスドライバ103は、ストレージデバイスマネージャ101から、メタデータ112を含むコマンド114を受信することができる。
【0034】
デバイスドライバ103は、コマンド114及びメタデータ112に従って、SCMデバイス104においてボリュームを構成することができる。例えば、デバイスドライバ103は、コマンド114及びメタデータ112から再構成118を策定することができる。デバイスドライバ103は例えば、ボリューム作成、ボリューム変更(例えば、サイズ変更、場所変更等)、ボリューム破壊、ボリュームをパーティション(仮想マシン)に割り当てる等のうちの1以上を含む、SCMデバイス104における再構成118を実装することができる。
【0035】
再構成118を実装することに続いて、SCMデバイス104は、ある時間の間、意図された通りに、コマンド114及びメタデータ112に従って動作することができる。再構成118に従ったSCMデバイス104の動作は、構成116に従ったSCMデバイス104の動作と(同一でないにしても)実質的に類似しうる。例えば、コマンド111に関連付けられたボリューム構成動作は、コマンド114を通じて自動的に再実行されることができる。
【0036】
1つの観点において、ストレージ102は、1以上のSCMデバイスを備えていてもよいより揮発性の高い(低い安定性)複数の別のストレージデバイスの為のボリュームメタデータを格納する為に利用される。該複数のストレージデバイスは各々、一意の(例えば、ハードウェア)デバイス識別子に関連付けられることができる。ユーザ又はプログラムがボリュームコマンドを策定するときに、該ユーザ又はプログラムは、該ボリュームコマンドに、場合によっては含まれているメタデータに、一意のデバイス識別子を含めることができる。デバイスドライバ(例えば、103)が、ストレージデバイスマネージャ101に、SCMデバイス(又は、別のストレージデバイス)における永続性損失を通知するときに、該デバイスドライバは、該通知に一意のデバイス識別子を含めることができる。
【0037】
従って、ストレージデバイスマネージャ101において受信されたボリュームコマンド及び永続性損失通知は、一意のデバイス識別子を含むことができる。ストレージデバイスマネージャ101は、異なるストレージデバイスに関連付けられたメタデータを区別する為に、受信した一意のデバイス識別子を利用することができる。例えば、ストレージデバイスマネージャは、受信したデバイス識別子によってボリュームメタデータを格納し且つアクセスすることができる。受信したボリュームコマンド並びに永続性損失通知が、デバイス識別子を含む/デバイス識別子を示すことができる。ストレージデバイスマネージャ101は、受信され、格納され又はアクセスされたボリュームメタデータを、より揮発性の高い(低い安定性)適切なストレージデバイスにリンクする為に、デバイス識別子を使用することができる。例えば、ストレージデバイスマネージャ101は、デバイス識別子に対応するストレージデバイスに関連付けられたボリュームメタデータにアクセスする為に該デバイス識別子でストレージ102に問い合わせることができる。
【0038】
図3は、特に構成されたコンピュータハードウェアプラットフォーム300を図示する。コンピュータハードウェアプラットフォームは、コンピュータアーキテクチャ100の構成要素を備えているコンピュータシステムを実装する為に使用されることができる。
【0039】
コンピュータプラットフォーム300は、システムバス302に接続される、中央処理ユニット(CPU:central processing unit)304、ハードディスクドライブ(HDD:hard disk drive)306、ランダムアクセスメモリ(RAM:random access memory)若しくは読み取り専用メモリ(ROM:read only memory)308又はそれらの組み合わせ、キーボード310、マウス312、ディスプレイ314、及び通信インタフェース316を備えていてもよい。
【0040】
HDD 306は、実行されるプログラム、例えばストレージデバイスマネージャ101、を格納する為の機能を含むことができる。ストレージデバイスマネージャ101は、異なる機能を実行するように構成された様々なモジュール、例えば、ボリュームコマンドプロセッサ342、メタデータストレージ及びクエリモジュール346、並びに永続性検出器348を備えている上記の様々なモジュール、を備えていることができる。ボリュームコマンドプロセッサ342は、受信したボリュームコマンドからボリュームメタデータを抽出すること、ボリュームコマンドをデバイスドライバに転送すること、及び永続性を損失するボリュームを再構成する際に使用する為に格納されたメタデータからボリュームコマンドを形成することを含むボリュームコマンドを処理するように構成されていることができる。メタデータストレージ及びクエリモジュール346は、ボリュームメタデータを(例えば、デバイス識別子によって)(例えば、揮発性の低い)ストレージデバイスにおいて記憶し、そこからボリュームメタデータにアクセスするように構成されていることができる。永続性検出器348は、複数の(例えば、より揮発性の高い)ストレージデバイスのいずれかにおける永続性を監視し、及び複数の(例えば、より揮発性の高い)ストレージデバイスのいずれかにおける永続性の損失を検出するように構成されていることができる。
【0041】
例示的な動作プラットフォーム
【0042】
実装は、以下でより詳細に議論されるように、特殊目的又は汎用目的のコンピュータを備えていることができ又はそれらを利用することができ、該特殊目的又は汎用目的のコンピュータは、コンピュータハードウェア、例えば、1以上のコンピュータ若しくはハードウェア又はそれらの組み合わせのプロセッサ(中央処理デバイス(CPU:Central Processing Unit)、若しくはグラフィック処理デバイス(GPU:Graphical Processing Unit)又はそれらの組み合わせ、汎用GPU(GPGPU:general-purpose GPU)、フィールドプログラム可能なゲートアレイ(FPGA:Field Programmable Gate Array)、アプリケーション特定集積回路(ASIC:application specific integrated circuit)、テンソル処理ユニット(TPU:Tensor Processing Unit)のいずれかを備えている)及びシステムメモリ、を備えている。実装はまた、コンピュータ実行可能命令若しくはデータ構造又はそれらの組み合わせを担持又は記憶する為の物理的及び他のコンピュータ可読媒体を含む。そのようなコンピュータ可読媒体は、汎用目的又は特殊目的のコンピュータシステムによってアクセスされることができる任意の利用可能な媒体であることができる。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、コンピュータストレージ媒体(デバイス)である。コンピュータ実行可能命令を担持するコンピュータ可読媒体は、伝送媒体である。従って、限定ではなく例として、実装は、コンピュータストレージ媒体(デバイス)及び伝送媒体という少なくとも2つの明確に異なるタイプのコンピュータ可読媒体を備えていることができる。
【0043】
コンピュータストレージ媒体(デバイス)は、SCM(及び、他の中間ストレージソリューション)、RAM、ROM、EEPROM、CD-ROM、ソリッドステートドライブ(SSD:Solid State Drive)(例えば、RAMベース又はフラッシュベース)、シングル磁気記録方式(SMR:Shingled Magnetic Recording)デバイス、フラッシュメモリ、相変化メモリ(PCM:phase-change memory)、他のタイプのメモリ、他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、又はコンピュータ実行可能命令若しくはデータ構造の形態で所望のプログラムコード手段を格納する為に使用されることができ且つ汎用目的若しくは特殊目的のコンピュータによってアクセスできる他の任意の媒体を包含する。
【0044】
1つの観点において、1以上のプロセッサは、記載された複数の動作のいずれかを実行する為の命令(例えば、コンピュータ可読命令、コンピュータ実行可能命令等)を実行するように構成されている。1以上のプロセッサは、システムメモリから情報にアクセスし、若しくはシステムメモリに情報を記憶し、又はそれらの組み合わせを実行することができる。1以上のプロセッサは、異なるフォーマットの間、例えば、ボリュームコマンド、ボリュームメタデータ、クエリ、ボリューム構成、ボリューム再構成、永続性損失通知、永続性損失検出等のいずれかの間、で情報を(例えば、自動的に)変換することができる。
【0045】
システムメモリは、1以上のプロセッサに接続されることができ、及び1以上のプロセッサによって実行される命令(例えば、コンピュータ可読命令、コンピュータ実行可能命令等)を記憶することができる。該システムメモリはまた、本明細書で記載されたコンポーネントによって生成され若しくは変換され又は生成且つ変換される複数の他のタイプのデータ、例えば、ボリュームコマンド、ボリュームメタデータ、クエリ、ボリューム構成、ボリューム再構成、永続性損失通知、永続性損失検出等、のいずれかを記憶するように構成されることができる。
【0046】
「ネットワーク」は、コンピュータシステム及び/又はモジュール及び/又は他の電子デバイス間で電子データの伝送を可能にする1以上のデータリンクと定義される。ネットワーク又は他の通信接続(ハードワイヤード、ワイヤレス、又はハードワイヤード若しくはワイヤレスの組み合わせのいずれか)を介してコンピュータに情報が転送又は提供される場合、該コンピュータは接続を伝送媒体として適切に認識する。伝送媒体は、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラムコード手段を伝送する為に使用されることができ、汎用又は特殊目的のコンピュータによってアクセス可能なネットワーク若しくはデータリンク又はそれらの組み合わせを備えていてもよい。上記の組み合わせはまた、コンピュータ可読媒体の範囲に含まれるはずである。
【0047】
更に、様々なコンピュータシステムコンポーネントに到達することに応じて、コンピュータ実行可能命令又はデータ構造の形態のプログラムコード手段が、伝送媒体からコンピュータストレージ媒体(デバイス)へ(又はその逆で)自動的に転送されることができる。例えば、ネットワーク又はデータリンクを介して受信されたコンピュータ実行可能命令又はデータ構造は、ネットワークインタフェースモジュール(例えば、「NIC」)内のRAM内にバッファリングされ、そして、次に、最終的に、コンピュータシステムのRAM若しくはコンピュータシステム又はそれらの組み合わせにおける揮発性の低いコンピュータストレージ媒体(デバイス)に転送されうる。従って、コンピュータストレージ媒体(デバイス)は、伝送媒体も(又は、主に)利用するコンピュータシステムコンポーネントに備えられていることができることが理解されるべきである。
【0048】
コンピュータ実行可能命令は例えば、プロセッサにおける実行に応答して、汎用目的のコンピュータ、特殊目的のコンピュータ、又は特殊目的の処理デバイスに、或る機能又は複数の機能群を実行させる命令及びデータを含む。コンピュータ実行可能命令は例えば、中間フォーマット命令、例えば、バイナリ若しくはアセンブリ言語、又はソースコードであってもよい。主題は、構造的特徴若しくは方法論的行為又はそれらの組み合わせに特有の言語で説明されてきたが、添付の特許請求の範囲に定義される主題は、必ずしも上述された特徴又は行為に限定されないことが理解されるべきである。寧ろ、本明細書において記載された特徴及び行為は、特許請求の範囲を実施する例示的な形態として開示されている。
【0049】
当業者は、記載された態様が、多くの種類のコンピュータシステム構成、例えば、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、ウェアラブルデバイス、マルチコアプロセッサシステム、マルチプロセッサシステム、マイクロプロセッサベース又はプログラム可能な家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、タブレット、ルータ、スイッチ等、を有するネットワークコンピューティング環境において実施されてもよいことを理解するであろう。本明細書において記載された観点はまた、ネットワークを介して(ハードワイヤードデータリンク、ワイヤレスデータリンク、又はハードワイヤードデータリンク及びワイヤレスデータリンクの組み合わせのいずれかによって)リンクされているローカル及びリモートのコンピュータシステムが共にタスクを実行する分散型システム環境において実施されうる。分散型システム環境において、プログラムモジュールは、ローカル及びリモートの両方のメモリストレージデバイスに配置されてもよい。
【0050】
更に、適切な場合、本明細書において記載されている機能は、ハードウェアコンポーネント、ソフトウェアコンポーネント、ファームウェアコンポーネント、デジタルコンポーネント、又はアナログコンポーネントのうちの1以上において実行されることができる。例えば、1以上のフィールドプログラム可能なゲートアレイ(FPGA)及び/又は1以上の特定集積回路(ASIC)及び/又は1以上のテンソル処理ユニット(TPU)は、本明細書において記載されたシステム及び手順の1以上を実行するようにプログラムされることができる。ハードウェアコンポーネント、ソフトウェアコンポーネント、ファームウェアコンポーネント、デジタルコンポーネント、又はアナログコンポーネントは、永続性の損失に応答して、より揮発性のストレージデバイスにおけるボリュームを(再)構成する為に特別に調整し設計される(tailor-designed)ことができる。別の例において、コンピュータコードは、1以上のプロセッサにおける実行の為に構成され、及びコンピュータコードによって制御されるハードウェア論理/電気回路を備えていることができる。これらの例示的なデバイスは、本明細書において説明の目的の為に提供され、限定されることが意図されていない。本開示の実施態様は、更なるタイプのデバイス内に実装されうる。
【0051】
本明細書において記載された観点はまた、クラウドコンピューティング環境において実施されることができる。本明細書及び添付の特許請求の範囲において、「クラウドコンピューティング」は、構成可能なコンピューティングリソースの共有プールへのオンデマンドネットワークアクセスを可能にする為のモデルとして定義される。例えば、クラウドコンピューティングは、構成可能なコンピューティングリソース(例えば、計算リソース、ネットワークリソース、及びストレージリソース)の共有されたプールへのユビキタス且つ便利なオンデマンドアクセスを提供する為に市場において使用されることができる。構成可能なコンピューティングリソースの該共有されたプールは、仮想化を介してプロビジョニングされることができ、及び少ない労力又はサービスプロバイダの相互作用で解放され、そして次に、それに応じて拡張されることができる。
【0052】
クラウドコンピューティングモデルは、様々な特徴、例えば、オンデマンドセルフサービス、幅広いネットワークアクセス、リソースプーリング、迅速な弾力性、測定されたサービス等、を備えていることができる。クラウドコンピューティングモデルはまた、様々なサービスモデル、例えば、サービスとしてのソフトウェア(SaaS:Software as a Service)、サービスとしてのプラットフォーム(PaaS:Platform as a Service)、及びサービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service)、を公開することができる。クラウドコンピューティングモデルはまた、異なる展開モデル、例えば、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、を使用して展開することができる。本明細書及び添付の特許請求の範囲において、「クラウドコンピューティング環境」は、クラウドコンピューティングが使用される環境である。
【0053】
結論
【0054】
本教示の様々な実施態様の記載は、例示を目的として提示されているが、網羅的であること、又は開示された実施形態に限定されることが意図されるものでない。本明細書において記載された実施態様の範囲及び精神から逸脱すること無しに、多くの修正及び変形が当業者には明らかであろう。本明細書において使用されている語は、実施態様の原理、市場において見出される技術に対する実用化若しくは技術的改善、又は当業者が本明細書において開示された実施態様を理解することを可能にする為に、最適に説明する為に選択された。
【0055】
上記では、最良の形態若しくは他の例又はそれらの組み合わせであると考えられる内容について記載されているが、これには様々な変更が行われ得、本明細書に開示されている主題は様々な形態及び例で実装され得、これらの教示は多数の応用例で適用され得、その一部のみが本明細書に記載されていることが理解されるであろう。教示の真の範囲内に入る任意の及び全ての応用例、変更形態及び変形形態を請求することが添付の特許請求の範囲によって意図されている。
【0056】
本明細書において論じられている構成要素、ステップ、特徴、目的、利益、及び利点は、単なる例示である。これら又はこれらに関する議論はいずれも、保護範囲を限定することが意図されたものでない。様々な利点が本明細書において記載されているが、必ずしも全ての実施態様が全ての利点を有するとは限らないことが理解されるであろう。別途記載されていない限り、特許請求の範囲を含めて、本明細書において述べる全ての測定、値、等級、位置、規模(magnitudes)、サイズ、及び他の仕様は近似であり、厳密なものでない。これらは、これらが関係する機能及び当技術分野での通例に一貫している合理的な範囲を有することが意図されたものである。
【0057】
多数の他の実施態様がまた企図されている。これらは、より少数、追加、若しくは別個、又はそれらの組み合わせの構成要素、ステップ、特徴、目的、利益、及び利点を有する実施態様を包含する。これらはまた、構成要素若しくはステップ又はそれらの組み合わせが異なる配置若しくは順序又はそれらの組み合わせになっている実施態様を包含する。
【0058】
本開示の観点は、本開示の実施態様に従う方法、装置(システム)、及びコンピュータプログラム製品のコール・フロー図(call flow illustrations)若しくはブロック図又はそれらの組み合わせに関連して本明細書に記載されている。フローチャート図若しくはブロック図又はそれらの組み合わせの各ステップ、及びコール・フロー図若しくはブロック図又はそれらの組み合わせにおけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
【0059】
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令がコール・フロー・プロセス若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体内に記憶されてもよく、従って、該コンピュータ可読記憶媒体内に記憶された命令を有する該コンピュータ可読記憶媒体は、該コール・フロー・プロセス若しくは1以上のブロック図又はそれらの組み合わせにおいて特定された機能/動作の観点を実装する命令を含む製造品を備えている。
【0060】
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
【0061】
図面におけるフローチャート図及びブロック図は、本開示の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能及び動作を図示する。これに関して、コール・フロー・プロセス又はブロック図の各ブロックは、命令のモジュール、セグメント又は部分を表し得、これらの命令は、特定の1以上の論理機能を実装する為の1以上の実行可能な命令を含む。幾つかの代替の実装において、これらのブロックに記載された機能は、該図に示されている順序以外で行われうる。例えば、関与する機能に応じて、連続して示されている2つのブロックは実際には実質的に同時に実行されてもよく、又はこれらのブロックは場合により逆の順序で実行されてもよい。ブロック図若しくはコール・フロー図又はそれらの組み合わせの1以上のブロック図若しくはコール・フロー図又はそれらの組み合わせにおけるブロックの組み合わせは、特定の機能若しくは動作又は特別の目的のハードウェア及びコンピュータ命令の組み合わせを実施する特別の目的のハードウェアに基づくシステムによって実装されることができることにまた留意されるだろう。
【0062】
上記について例示的な実施態様に関連して説明されてきたが、語「例示的」は、最良又は最適ではなく、単に一つの例であることを意味することが理解される。上記された場合を除いて、記載された又は図示された内容はいずれも、特許請求の範囲に記載されているか否かにかかわらず、いかなる構成要素、ステップ、特徴、目的、利益、利点、又は均等物の一般への供与が意図されたものではなく、又はそのように解釈されるべきでない。
【0063】
本明細書において使用される語及び表現は、特有の意味が本明細書に別途記載されている場合を除いて、対応する夫々の探求及び研究領域に関してそのような語及び表現に与えられる一般的な意味を有することが理解されるであろう。第1及び第2等の関係を示す語は、実体又は動作を互いに区別する為だけに使用することができ、必ずしもそのような実体又は動作間の実際のそのような関係又は順序を必要としたり示唆したりするものでない。「備えている、包含する(comprises)」、「備えている、包含する(comprising)」という語、又はこれらのあらゆる他の変形体は、非排他的な包含を含むことを意図したものであり、従って要素の一覧を含むプロセス、方法、物品、又は装置は、それらの要素を有するだけでなく、そのようなプロセス、方法、物品、又は装置に明白に列挙されていない又は固有でない他の要素も含みうる。一つ(「a」又は「an」)に続く要素は、さらなる制約を受けずに、その要素を含むプロセス、方法、物品、又は装置における追加の同一の要素の存在を除外するものでない。
【0064】
本開示の要約書は、技術的開示の性質を読み手が迅速に確認することを可能にする為に提供されている。それは、特許請求の範囲又は意味を解釈又は限定する為に使用されるものでないことを理解した上で提出される。加えて、上記の発明を実施する為の形態において、本開示を簡略化する目的で、様々な特徴が様々な実施態様で共にグループ化されていることが分かる。この開示方法は、特許請求されている実施態様が各請求項に明白に記載されたものよりも多くの特徴を有するという意図を反映すると解釈されるべきでない。寧ろ、別途の特許請求の範囲が反映するように、本発明の主題は、開示された単一の実施態様の全ての特徴にあるわけではない。従って、別途の特許請求の範囲は、本明細書によって発明を実施する為の形態に組み込まれており、各請求項は、別個に特許請求される主題として独立して存在する。
図1
図2
図3
【手続補正書】
【提出日】2023-08-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、該コンピューティングデバイスは、
プロセッサ;
前記プロセッサに接続されたストレージクラスメモリ(SCM)ストレージデバイス;
前記プロセッサに接続された前記SCMストレージデバイスよりも揮発性の低い別のストレージデバイス;
前記SCMストレージデバイスのボリュームを管理するSCMデバイスドライバ;
前記別のストレージデバイス内に記憶されたストレージデバイスマネージャ
を備えており、
ここで、前記ストレージデバイスマネージャを前記プロセッサによって実行することが、
前記SCMストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドを受信すること;
前記ボリュームメタデータを前記別のストレージデバイスに記憶すること;
前記ボリュームコマンドを前記SCMデバイスドライバに転送することを含む前記ボリュームコマンドに従って前記ストレージボリュームを構成すること;
前記ボリュームコマンドを転送した後に、前記SCMストレージデバイスにおける永続性損失の通知を受信すること;
前記永続性損失の前記通知を受信した後に、前記ボリュームメタデータを前記別のストレージデバイスから取得すること;及び、
前記取得したボリュームメタデータを前記SCMデバイスドライバに提出することを含む前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成すること
を含む行為を実行するように前記コンピューティングデバイスを構成する、
前記コンピューティングデバイス。
【請求項2】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームをパーティション又は仮想マシンに割り当てることを含む、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームを作成することを含む、請求項1に記載のコンピューティングデバイス。
【請求項4】
前記ボリュームメタデータを含むボリュームコマンドを受信することが、ボリューム識別子、ボリューム名、ボリュームサイズ、ボリューム位置、又はボリューム所有者のうちの1以上を受信することを含む、請求項1に記載のコンピューティングデバイス。
【請求項5】
前記ボリュームメタデータを前記別のストレージデバイスに記憶することが、前記ボリュームメタデータを不揮発性ランダムアクセスメモリ(NvRAM)デバイスに記憶することを含む、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームをパーティション又は仮想マシンに自動的に割り当てることを含む、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを自動的に作成することを含む、請求項1に記載のコンピューティングデバイス。
【請求項8】
前記ボリュームコマンドを受信することが、前記ボリュームコマンドをユーザインタフェースから受信すること、又は前記ボリュームコマンドをプログラムをロードすることから受信することのうちの1つを含む、請求項1に記載のコンピューティングデバイス。
【請求項9】
ストレージデバイスを構成する為のコンピュータプログラムであって、
ストレージクラスメモリ(SCM)ストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドを受信すること;
前記ボリュームメタデータを、前記SCMストレージデバイスよりも揮発性の低い別のストレージデバイスに記憶すること;
前記ボリュームコマンドを前記SCMデバイスドライバに転送することを含む前記ボリュームコマンドに従って前記ストレージボリュームを構成すること;
前記ボリュームコマンドを転送した後に、前記SCMストレージデバイスにおける永続性損失の通知を受信すること;
前記永続性損失の前記通知を受信した後に、前記ボリュームメタデータを前記別のストレージデバイスから取得すること;及び、
前記取得したボリュームメタデータを前記SCMデバイスドライバに提出することを含む前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成すること
を含む方法の各工程をユーザデバイスに実行させる、前記コンピュータプログラム。
【請求項10】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームをパーティション又は仮想マシンに割り当てることを含む、請求項9に記載のコンピュータプログラム。
【請求項11】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームを作成することを含む、請求項9に記載のコンピュータプログラム。
【請求項12】
前記ボリュームメタデータを前記別のストレージデバイスから取得することが、ボリューム識別子、ボリューム名、ボリュームサイズ、ボリューム位置、又はボリューム所有者のうちの1以上を受信することを含む、請求項9に記載のコンピュータプログラム。
【請求項13】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームをパーティション又は仮想マシンに自動的に割り当てることを含む、請求項9に記載のコンピュータプログラム。
【請求項14】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを自動的に作成することを含む、請求項9に記載のコンピュータプログラム。
【請求項15】
ストレージデバイスを構成する為の、コンピュータに実装された方法であって、
ストレージクラスメモリ(SCM)ストレージデバイスのストレージボリュームに関連付けられたボリュームメタデータを含むボリュームコマンドを受信すること;
前記ボリュームメタデータを、前記SCMストレージデバイスよりも揮発性の低い別のストレージデバイスに記憶すること;
前記ボリュームコマンドを前記SCMデバイスドライバに転送することを含む前記ボリュームコマンドに従って前記ストレージボリュームを構成すること;
前記ボリュームコマンドを転送した後に、前記SCMストレージデバイスにおける永続性損失の通知を受信すること;
前記永続性損失の前記通知を受信した後に、前記ボリュームメタデータを前記別のストレージデバイスから取得すること;及び、
前記取得したボリュームメタデータを前記SCMデバイスドライバに提出することを含む前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成すること
を含む、前記方法。
【請求項16】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームをパーティション又は仮想マシンに割り当てることを含む、請求項15に記載の、コンピュータに実装された方法。
【請求項17】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを前記パーティション又は仮想マシンに自動的に割り当てることを含む、請求項16に記載の、コンピュータに実装された方法。
【請求項18】
前記ボリュームコマンドに従って前記ストレージボリュームを構成することが、前記ストレージボリュームを作成することを含む、請求項15に記載の、コンピュータに実装された方法。
【請求項19】
前記ボリュームコマンドに従って前記ストレージボリュームを自動的に再構成することが、前記ストレージボリュームを再び自動的に作成することを含む、請求項18に記載の、コンピュータに実装された方法。
【請求項20】
前記ボリュームメタデータを含むボリュームコマンドを受信することが、ボリューム識別子、ボリューム名、ボリュームサイズ、ボリューム位置、又はボリューム所有者のうちの1以上を受信することを含み、及び、
前記ボリュームメタデータを前記別のストレージデバイスから取得することが、前記ボリューム識別子、前記ボリューム名、前記ボリュームサイズ、前記ボリューム位置、又は前記ボリューム所有者のうちの1以上を受信することを含む、
請求項15に記載の、コンピュータに実装された方法。
【国際調査報告】