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

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

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

特表2024-521286システム間のデータ完全性検査の重複排除
<>
  • 特表-システム間のデータ完全性検査の重複排除 図1
  • 特表-システム間のデータ完全性検査の重複排除 図2
  • 特表-システム間のデータ完全性検査の重複排除 図3
  • 特表-システム間のデータ完全性検査の重複排除 図4
  • 特表-システム間のデータ完全性検査の重複排除 図5A
  • 特表-システム間のデータ完全性検査の重複排除 図5B
  • 特表-システム間のデータ完全性検査の重複排除 図6
  • 特表-システム間のデータ完全性検査の重複排除 図7
  • 特表-システム間のデータ完全性検査の重複排除 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-31
(54)【発明の名称】システム間のデータ完全性検査の重複排除
(51)【国際特許分類】
   G06F 16/11 20190101AFI20240524BHJP
【FI】
G06F16/11
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023564165
(86)(22)【出願日】2022-05-06
(85)【翻訳文提出日】2023-10-19
(86)【国際出願番号】 CN2022091289
(87)【国際公開番号】W WO2022252915
(87)【国際公開日】2022-12-08
(31)【優先権主張番号】17/337,086
(32)【優先日】2021-06-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】アリ、アスマハーン
(72)【発明者】
【氏名】ララ、クリスティーナ
(72)【発明者】
【氏名】エダ、サシカンス
(72)【発明者】
【氏名】ジェイン、アブヒシェク
(72)【発明者】
【氏名】ガンディー、サンジェイ ヴィピン
(57)【要約】
コンピュータ実装方法が、クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることを含む。要求がデータのその一部のファイルシステム・タイプを含むかどうかに関する判定が行われ、要求がデータのその一部のファイルシステム・タイプを含むとの判定に応答して、クラスタ化ファイルシステムがそのファイルシステム・タイプのためのデータ完全性検査をサポートしているかどうかに関するさらなる判定が行われる。クラスタ化ファイルシステムがデータ完全性検査をサポートしているとの判定に応答して、データのその一部が現在利用可能であるかどうかに関するさらなる判定が行われる。また、コンピュータ実装方法は、データのその一部が現在利用可能であるとの判定に応答して、データ完全性検査が行われるようにすることを含む。また、データ完全性検査を行った結果が、フォーマットされたファイルシステムに送られる。
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることと、
前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することと、
前記要求がデータの前記一部のファイルシステム・タイプを含むとの判定に応答して、前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているかどうかを判定することと、
前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているとの判定に応答して、データの前記一部が現在利用可能であるかどうかを判定することと、
データの前記一部が現在利用可能であるとの判定に応答して、データの前記一部に対して前記データ完全性検査が行われるようにすることと、
前記データ完全性検査を行った結果を前記フォーマットされたファイルシステムに送ることとを含む、コンピュータ実装方法。
【請求項2】
前記データ完全性検査がファイルシステム整合性検査(FSCK)操作である、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記フォーマットされたファイルシステムにおけるFSCKプロセスと前記クラスタ化ファイルシステムにおけるFSCKプロセスとの間に通信チャネルを確立することを含み、
前記要求が前記通信チャネルを介して前記フォーマットされたファイルシステムから受け取られ、
データの前記一部に対して前記データ完全性検査が行われるようにすることが、
前記データ完全性検査を行うように前記クラスタ化ファイルシステムにおける前記FSCKプロセスに関連付けられたFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
データの前記一部に対して前記データ完全性検査が行われるようにすることが、前記FSCK操作を行うようにFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記フォーマットされたファイルシステムに送られる前記データ完全性検査を行った前記結果が、FSCKタイムスタンプと、前記FSCK操作の状況と、破損ファイル詳細とからなるグループから選択される結果を含む、請求項2に記載のコンピュータ実装方法。
【請求項6】
データの前記一部が現在利用可能であるかどうかを判定することが、
データの前記一部が前記クラスタ化ファイルシステムからエクスポートされたかどうか、または前記フォーマットされたファイルシステムによって現在ローカル・ストレージとして使用されているかどうか、あるいはその両方を判定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することが、
データの前記一部が、データの前記一部に対応するメタデータ・タグを有するかどうかを判定することを含み、
前記メタデータ・タグがデータの前記一部に関連付けられた情報を含み、
前記情報が、ファイルシステム・タイプと、入力/出力(I/O)活動と、実行時間と、優先度と、アプリケーション・コンテナ詳細とからなるグループから選択される、請求項1に記載のコンピュータ実装方法。
【請求項8】
プログラム命令が具現化されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令が、プロセッサによって読み出し可能または実行可能あるいはその両方であり、前記プロセッサに、
前記プロセッサによって、クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることと、
前記プロセッサによって、前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することと、
前記要求がデータの前記一部のファイルシステム・タイプを含むとの判定に応答して、前記プロセッサによって、前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているかどうかを判定することと、
前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているとの判定に応答して、前記プロセッサによって、データの前記一部が現在利用可能であるかどうかを判定することと、
データの前記一部が現在利用可能であるとの判定に応答して、前記プロセッサによって、データの前記一部に対して前記データ完全性検査が行われるようにすることと、
前記プロセッサによって、前記データ完全性検査を行った結果を前記フォーマットされたファイルシステムに送ることとを行わせる、コンピュータ・プログラム製品。
【請求項9】
前記データ完全性検査がファイルシステム整合性検査(FSCK)操作である、請求項8に記載のコンピュータ・プログラム製品。
【請求項10】
前記プログラム命令が前記プロセッサによって読み出し可能または実行可能あるいはその両方であり、前記プロセッサに、
前記プロセッサによって、前記フォーマットされたファイルシステムにおけるFSCKプロセスと前記クラスタ化ファイルシステムにおけるFSCKプロセスとの間に通信チャネルを確立させ、
前記要求が前記通信チャネルを介して前記フォーマットされたファイルシステムから受け取られ、
データの前記一部に対して前記データ完全性検査が行われるようにすることが、
前記データ完全性検査を行うように前記クラスタ化ファイルシステムにおける前記FSCKプロセスに関連付けられたFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項9に記載のコンピュータ・プログラム製品。
【請求項11】
データの前記一部に対して前記データ完全性検査が行われるようにすることが、前記FSCK操作を行うようにFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項10に記載のコンピュータ・プログラム製品。
【請求項12】
前記フォーマットされたファイルシステムに送られる前記データ完全性検査を行った前記結果が、FSCKタイムスタンプと、前記FSCK操作の状況と、破損ファイル詳細とからなるグループから選択される結果を含む、請求項9に記載のコンピュータ・プログラム製品。
【請求項13】
データの前記一部が現在利用可能であるかどうかを判定することが、
データの前記一部が前記クラスタ化ファイルシステムからエクスポートされたかどうか、または前記フォーマットされたファイルシステムによって現在ローカル・ストレージとして使用されているかどうか、あるいはその両方を判定することを含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項14】
前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することが、
データの前記一部が、データの前記一部に対応するメタデータ・タグを有するかどうかを判定することを含み、
前記メタデータ・タグがデータの前記一部に関連付けられた情報を含み、
前記情報が、ファイルシステム・タイプと、入力/出力(I/O)活動と、実行時間と、優先度と、アプリケーション・コンテナ詳細とからなるグループから選択される、請求項8に記載のコンピュータ・プログラム製品。
【請求項15】
システムであって、
プロセッサと、
前記プロセッサと一体化されているか、前記プロセッサによって実行可能であるか、または前記プロセッサと一体化されて前記プロセッサによって実行可能であるロジックとを含み、前記ロジックは、
前記プロセッサによって、クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることと、
前記プロセッサによって、前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することと、
前記要求がデータの前記一部のファイルシステム・タイプを含むとの判定に応答して、前記プロセッサによって、前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているかどうかを判定することと、
前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているとの判定に応答して、前記プロセッサによって、データの前記一部が現在利用可能であるかどうかを判定することと、
データの前記一部が現在利用可能であるとの判定に応答して、前記プロセッサによって、データの前記一部に対して前記データ完全性検査が行われるようにすることと、
前記プロセッサによって、前記データ完全性検査を行った結果を前記フォーマットされたファイルシステムに送ることとを行うように構成されている、システム。
【請求項16】
前記データ完全性検査がファイルシステム整合性検査(FSCK)操作である、請求項15に記載のシステム。
【請求項17】
前記ロジックが、
前記プロセッサによって、前記フォーマットされたファイルシステムにおけるFSCKプロセスと前記クラスタ化ファイルシステムにおけるFSCKプロセスとの間に通信チャネルを確立するように構成され、
前記要求が前記通信チャネルを介して前記フォーマットされたファイルシステムから受け取られ、
データの前記一部に対して前記データ完全性検査が行われるようにすることが、
前記データ完全性検査を行うように前記クラスタ化ファイルシステムにおける前記FSCKプロセスに関連付けられたFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項16に記載のシステム。
【請求項18】
データの前記一部に対して前記データ完全性検査が行われるようにすることが、前記FSCK操作を行うようにFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項17に記載のシステム。
【請求項19】
前記フォーマットされたファイルシステムに送られる前記データ完全性検査を行った前記結果が、FSCKタイムスタンプと、前記FSCK操作の状況と、破損ファイル詳細とからなるグループから選択される結果を含む、請求項16に記載のシステム。
【請求項20】
データの前記一部が現在利用可能であるかどうかを判定することが、
データの前記一部が前記クラスタ化ファイルシステムからエクスポートされたかどうか、または前記フォーマットされたファイルシステムによって現在ローカル・ストレージとして使用されているかどうか、あるいはその両方を判定することを含み、
前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することが、
データの前記一部が、データの前記一部に対応するメタデータ・タグを有するかどうかを判定することを含み、
前記メタデータ・タグがデータの前記一部に関連付けられた情報を含み、
前記情報が、ファイルシステム・タイプと、入力/出力(I/O)活動と、実行時間と、優先度と、アプリケーション・コンテナ詳細とからなるグループから選択される、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ・ストレージに関し、より詳細には、本発明は、異なるファイルシステム間のデータ完全性検査の重複排除に関する。
【背景技術】
【0002】
ファイルシステムには、それぞれがファイルシステム・オブジェクト、例えばファイルまたはディレクトリについて記述するデータ構造であるiノードを使用するものがある。各iノードには、iノード番号(例えば固有識別番号)、ファイルに関連付けられた所有者およびグループ、ファイルに関連付けられた許可リストなど、対応するファイルシステム・オブジェクトに関する情報が含まれる。したがって、個別のiノードは、実際のファイル・データ、ディレクトリ情報(例えばメタデータ)を含み得るか、あるいは未使用または「空き」であり得るということになる。
【0003】
したがって、新規ファイルを作成する行為は、iノードの状態を空きから割り当て済みに変更することと、新規ファイルにデータを実際に書き込むことと、これらの変更を反映するように対応するメタデータを更新することとを含む。しかし、新規ファイルを作成するこのプロセスが完了可能である前に障害事象が発生する場合があり、それによって、特定の状況では実質的なファイルシステム破損を生じさせることがある。この破損が発生した場合にそれを修復しようとして、例えばファイルシステム整合性検査(FSCK)または、システム破損に対処することができるその他のコマンドなど、データ完全性検査を行うことができる。
【0004】
このようなデータ完全性検査は、典型的には、iノードを含むメタデータを読み出すことと、不整合性問題の解消を試みることとを含む。このようなデータ完全性検査は、破損を克服することはできるが、計算集約的であり、異なるファイルシステムを実装する環境では無用な重複を生じやすい場合がある。
【発明の概要】
【0005】
一実施形態によるコンピュータ実装方法は、クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることを含む。要求がデータのその一部のファイルシステム・タイプを含むかどうかに関する判定が行われ、要求がデータのその一部のファイルシステム・タイプを含むとの判定に応答して、クラスタ化ファイルシステムがデータのその一部のファイルシステム・タイプのためのデータ完全性検査をサポートしているかどうかに関するさらなる判定が行われる。クラスタ化ファイルシステムがデータのその一部のファイルシステム・タイプのためのデータ完全性検査をサポートしているとの判定に応答して、データのその一部が現在利用可能であるかどうかに関するさらなる判定が行われる。また、コンピュータ実装方法は、データのその一部が現在利用可能であるとの判定に応答して、データのその一部に対してデータ完全性検査が行われるようにすることを含む。また、データ完全性検査を行った結果が、フォーマットされたファイルシステムに送られる。
【0006】
別の実施形態によるコンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含む。また、プログラム命令は、プロセッサに上記の方法を行わせるように、プロセッサによって読み出し可能または実行可能あるいはその両方である。
【0007】
さらに別の実施形態によるシステムは、プロセッサと、プロセッサと一体化されているか、プロセッサによって実行可能であるか、またはプロセッサと一体化されてプロセッサによって実行可能であるロジックを含む。また、ロジックは、上記の方法を行うように構成される。
【0008】
本発明のその他の態様および実施形態は、図面とともに読めば本発明の原理を例として示す、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0009】
図1】一実施形態によるネットワーク・アーキテクチャを示す図である。
図2】一実施形態による、図1のサーバまたはクライアントあるいはその両方に関連付けることができるそれぞれのハードウェア環境を示す図である。
図3】一実施形態による、層状データ・ストレージ・システムを示す図である。
図4】一実施形態による、ストレージ・システムを示す部分表現図である。
図5A】一実施形態による方法を示すフローチャートである。
図5B】一実施形態による方法を示すフローチャートである。
図6】使用実施例による分散ファイルシステムを示す部分表現図である。
図7】本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。
図8】本発明の一実施形態による抽象化モデル層を示す図である。
【発明を実施するための形態】
【0010】
以下の説明は、本発明の一般原理を例示する目的で行われるものであり、本出願で特許請求される本発明の概念を限定することは意図されていない。また、本明細書に記載の特定の特徴は、様々な考えられる組合せおよび置換のそれぞれにおける記載されている他の特徴と組み合わせて使用することができる。
【0011】
本明細書で特に定義されていない限り、すべての用語には、本明細書から含意される意味と、当業者によって理解されているかまたは辞書、論文などで定義されているか、あるいはその両方である意味とを含む、可能な最も広義の解釈が与えられるものとする。
【0012】
また、本明細書および添付の特許請求の範囲で使用されている単数形の「a」、「an」および「the」は、特に明記されていない限り、複数形の指示概念を含むことにも留意されたい。また、「comprises(含んでいる)」または「comprising(含む)」あるいはその両方の用語は、本明細書で使用されている場合、記載されている特徴、整数、ステップ、動作、要素またはコンポーネントあるいはその組合せの存在を指定しているが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントまたはこれらのグループあるいはその組合せの存在または追加を排除しないことも理解されたい。
【0013】
以下の説明は、ファイルシステム間のデータ完全性検査の重複を排除することによって、消費される計算リソースを低減するとともに、システム全体の実効性能が確実に維持されるようにするためのシステム、方法およびコンピュータ・プログラム製品のいくつかの好ましい実施形態を開示する。また、例えば以下でさらに詳述するように、これらの重複排除された計算集約的なデータ完全性検査を行うために計算スループットがより高いリソースを選択的に使用することによって、本明細書における実施形態のうちの様々な実施形態は、レイテンシを低減し、スループットを向上させることによって、計算性能をさらに向上させることができる。
【0014】
一般的な一実施形態では、コンピュータ実装方法が、クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることを含む。要求がデータのその一部のファイルシステム・タイプを含むかどうかに関する判定が行われ、要求がデータのその一部のファイルシステム・タイプを含むとの判定に応答して、クラスタ化ファイルシステムがデータのその一部のファイルシステム・タイプのためのデータ完全性検査をサポートしているかどうかに関するさらなる判定が行われる。クラスタ化ファイルシステムがデータのその一部のファイルシステム・タイプのためのデータ完全性検査をサポートしているとの判定に応答して、データのその一部が現在利用可能であるかどうかに関するさらなる判定が行われる。また、コンピュータ実装方法は、データのその一部が現在利用可能であるとの判定に応答して、データのその一部に対してデータ完全性検査が行われるようにすることを含む。また、データ完全性検査を行った結果が、フォーマットされたファイルシステムに送られる。
【0015】
別の一般的な実施形態では、コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読記憶媒体を含む。また、プログラム命令は、プロセッサに上記の方法を行わせるように、プロセッサによって読み出し可能または実行可能あるいはその両方である。
【0016】
さらに別の一般的実施形態では、システムが、プロセッサと、プロセッサと一体化されているか、プロセッサによって実行可能であるか、またはプロセッサと一体化されてプロセッサによって実行可能なロジックとを含む。また、ロジックは、上記の方法を行うように構成される。
【0017】
図1に、一実施形態によるアーキテクチャ100を示す。図1に示すように、第1のリモート・ネットワーク104と第2のリモート・ネットワーク106とを含む複数のリモート・ネットワーク102が設けられている。リモート・ネットワーク102と隣接ネットワーク108との間にゲートウェイ101が結合可能である。本アーキテクチャ100の文脈では、ネットワーク104、106はそれぞれ、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、公衆交換電話網(PSTN)、構内電話網などを含むがこれらには限らない任意の形態をとり得る。
【0018】
使用時、ゲートウェイ101は、リモート・ネットワーク102から隣接ネットワーク108への入口点の役割を果たす。したがって、ゲートウェイ101は、ゲートウェイ101に到着するデータの所与のパケットを方向づけることができるルータ、および、所与のパケットのためにゲートウェイ101に出入りする実際の経路を提供するスイッチとして機能することができる。
【0019】
さらに、隣接ネットワーク108に結合され、ゲートウェイ101を介してリモート・ネットワーク102からアクセス可能な、少なくとも1つのデータ・サーバ114が含まれる。データ・サーバ114は、任意の種類のコンピューティング・デバイス/グループウェアを含み得ることに留意されたい。各データ・サーバ114には、複数のユーザ・デバイス116が結合されている。ユーザ・デバイス116は、ネットワーク104、106、108のうちの1つによって直接接続されてもよい。このようなユーザ・デバイス116には、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタまたは任意のその他の種類のロジックが含まれ得る。一実施形態では、ネットワークのいずれかにユーザ・デバイス111が直接結合されていてもよいことに留意されたい。
【0020】
周辺装置120または一連の周辺装置120、例えば、ファクシミリ機、プリンタ、ネットワーク・ストレージ・ユニットもしくはシステムまたはローカル・ストレージ・ユニットもしくはシステム、あるいはその両方などが、ネットワーク104、106、108のうちの1つまたは複数に結合されていてもよい。データベースまたは追加のコンポーネントあるいはその両方が、ネットワーク104、106、108に結合された任意の種類のネットワーク要素とともに使用されてもよく、または組み込まれてもよいことに留意されたい。本説明の文脈では、ネットワーク要素とは、ネットワークの任意のコンポーネントを指し得る。
【0021】
いくつかの手法によると、本明細書に記載の方法およびシステムは、仮想システム、および/または、IBM(R)z/OS(R)環境(IBMおよびすべてのIBMベースの商標およびロゴは、インターナショナル・ビジネス・マシーンズ・コーポレーションまたはその系列会社あるいはその両方の商標または登録商標である)をエミュレートするUNIX(R)システム、知られているオペレーティング・システム環境を仮想的にホストするUNIX(R)システム、IBM(R)z/OS(R)環境をエミュレートするオペレーティング・システムなど、1つもしくは複数の他のシステムをエミュレートするシステムによって、ならびに/あるいは、その上で、実装可能である。この仮想化またはエミュレーションあるいはその両方は、いくつかの実施形態ではVMware(R)ソフトウェアの使用により強化されてもよい。
【0022】
さらなる手法では、1つまたは複数のネットワーク104、106、108は、「クラウド」と一般に呼ばれるシステムのクラスタに相当し得る。クラウド・コンピューティングでは、処理能力、周辺装置、ソフトウェア、データ、サーバなどの共用リソースが、オンデマンド関係にあるクラウド内の任意のシステムに提供され、それによって多くのコンピューティング・システム間でサービスにアクセスし、配布することを可能にする。クラウド・コンピューティングは、典型的には,クラウド内で動作するシステム間のインターネット接続を必要とするが、システムを接続する他の技術も使用可能である。
【0023】
図2に、一実施形態による、図1のユーザ・デバイス116またはサーバ114あるいはその両方に関連付けられた代表的なハードウェア環境を示す。この図は、マイクロプロセッサなどの中央処理装置210と、システム・バス212を介して相互接続されたいくつかのその他のユニットとを有するワークステーションの典型的なハードウェア構成を示している。
【0024】
図2に示すワークステーションは、ランダム・アクセス・メモリ(RAM)214と、読み出し専用メモリ(ROM)216と、ディスク・ストレージ・ユニット220などの周辺デバイスをバス212に接続するための入力/出力(I/O)アダプタ218と、キーボード224、マウス226、スピーカ228、マイクロフォン232またはタッチ・スクリーンおよびデジタル・カメラ(図示せず)などのその他のユーザ・インターフェース・デバイスあるいはその組合せをバス212に接続するためのユーザ・インターフェース・アダプタ222と、ワークステーションを通信ネットワーク235(例えばデータ処理ネットワーク)に接続するための通信アダプタ234と、バス212をディスプレイ・デバイス238に接続するためのディスプレイ・アダプタ236とを含む。
【0025】
ワークステーションには、Microsoft Windows(R)Operating System(OS)、macOS(R)、UNIX(R)OSなどのオペレーティング・システムが常駐可能である。好ましい実施形態は、述べたもの以外のプラットフォームおよびオペレーティング・システム上でも実装可能であることを理解されたい。好ましい実施形態は、eXtensible Markup Language(XML)、C、もしくはC++言語またはその組合せ、あるいはその他のプログラミング言語を、オブジェクト指向プログラミング方法とともに使用して書かれてもよい。複雑なアプリケーションを開発するためにますます使用されるようになった、オブジェクト指向プログラミング(OOP)が使用されてもよい。
【0026】
次に図3を参照すると、一実施形態によるストレージ・システム300が示されている。図3に示す要素の一部は、様々な実施形態により、ハードウェアまたはソフトウェアあるいはその両方として実装可能であることに留意されたい。ストレージ・システム300は、少なくとも1つの上位ストレージ層302および少なくとも1つの下位ストレージ層306上の複数の媒体またはドライブあるいはその両方と通信するためのストレージ・システム・マネージャ312を含み得る。上位ストレージ層302は、好ましくは、ハード・ディスク・ドライブ(HDD)内のハード・ディスク、不揮発性メモリ(NVM)、ソリッド・ステート・ドライブ(SSD)内のソリッド・ステート・メモリ、フラッシュ・メモリ、SSDアレイ、フラッシュ・メモリ・アレイなどの、または本明細書に記載されているもしくは当技術分野で知られているその他の媒体あるいはその組合せなどの、1つまたは複数のランダム・アクセスまたはダイレクト・アクセスあるいはその両方の媒体304を含み得る。下位ストレージ層306は、好ましくは、テープ・ドライブ内の磁気テープまたは光媒体あるいはその両方などの順次アクセス媒体、より低速アクセスのHDD、より低速アクセスのSSDなど、または本明細書に記載されているか当技術分野で知られているその他の媒体、あるいはその組合せを含む、1つまたは複数のより低性能の記憶媒体308を含み得る。1つまたは複数の追加のストレージ層316が、システム300の設計者が希望するストレージ・メモリ媒体の任意の組合せを含んでもよい。また、上位ストレージ層302または下位ストレージ層306あるいはその両方のいずれも、ストレージ・デバイスまたは記憶媒体あるいはその両方の何らかの組合せを含んでもよい。
【0027】
ストレージ・システム・マネージャ312は、図3に示すようなストレージ・エリア・ネットワーク(SAN)などのネットワーク310または他の何らかの適切なネットワークのタイプを介して、上位ストレージ層302および下位ストレージ層306上のドライブまたは記憶媒体304、308あるいはその両方と通信することができる。ストレージ・システム・マネージャ312は、ストレージ・システム・マネージャ312の一部であってもなくてもよいホスト・インターフェース314を介して、1つまたは複数のホスト・システム(図示せず)とも通信することができる。ストレージ・システム・マネージャ312、またはストレージ・システム300の任意のその他のコンポーネントあるいはその両方は、ハードウェアまたはソフトウェアあるいはその両方で実装可能であり、中央処理装置(CPU)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特殊用途向け集積回路(ASIC)など、当技術分野で知られている種類のコマンドを実行するためのプロセッサ(図示せず)を利用することができる。当然ながら、本明細書を読めば当業者にはわかるように、ストレージ・システムの任意の構成を使用することができる。
【0028】
さらなる実施形態では、ストレージ・システム300は、任意の数のデータ・ストレージ層を含むことができ、各ストレージ層内で同一または異なるストレージ・メモリ媒体を含んでもよい。例えば、各データ・ストレージ層が、HDD、SSD、順次アクセス媒体(テープ・ドライブ内のテープ、光ディスク・ドライブ内の光ディスクなど)、ダイレクト・アクセス媒体(CD-ROM、DVD-ROMなど)、または媒体ストレージ・タイプの任意の組合せなど、同じ種類のストレージ・メモリ媒体を含んでもよい。そのような1つの構成では、上位ストレージ層302は、より高性能のストレージ環境におけるデータの記憶のために大多数のSSD記憶媒体を含んでもよく、下位ストレージ層306を含む残りのストレージ層と追加のストレージ層316が、より低性能のストレージ環境におけるデータの記憶のためにSSD、HDD、テープ・ドライブなどの任意の組合せを含んでもよい。このようにして、より頻繁にアクセスされるデータ、優先順位のより高いデータ、より迅速にアクセスされる必要があるデータなどを上位ストレージ層302に記憶することができ、一方、このような属性を1つも持たないデータは、下位ストレージ層306を含む追加のストレージ層316に記憶することができる。当然ながら、当業者は、本明細書を読めば、本明細書で示されている実施形態により、異なる記憶方式に実装するために、記憶媒体タイプの多くの他の組合せを考案することができる。
【0029】
いくつかの実施形態によると、ストレージ・システム(300など)は、データ・セットを開く要求を受け取るように構成されたロジック、要求されたデータ・セットが層状データ・ストレージ・システム300の下位ストレージ層306に複数の関連付けられた部分単位で記憶されているかを判定するように構成されたロジック、要求されたデータ・セットの関連付けられた各部分を層状データ・ストレージ・システム300の上位ストレージ層302に移動させるように構成されたロジック、および、それらの関連付けられた部分から層状データ・ストレージ・システム300の上位ストレージ層302において要求されたデータ・セットをまとめるように構成されたロジックを含んでもよい。
【0030】
当然ながら、このロジックは、様々な実施形態により、任意のデバイスもしくはシステムまたはその両方上の方法として、あるいはコンピュータ・プログラム製品として実装可能である。
【0031】
前述のように、コンテナまたは仮想マシンのようなソフトウェア・ベースの実体で構成されたアプリケーションは、それぞれ、それらのローカル・ファイルシステムに固有のものであるデータ操作(例えば読み出し操作および書き込み操作)を行う。それによって、そのようなソフトウェア・ベースの実体によって行われるデータ操作は、ソフトウェア・ベースの実体のオペレーティング・システムにのみわかり得る(例えば知られ得る)。コンテナおよび仮想マシンのような実体は、それ自体のローカル・ファイルシステムを有するが、全体的なファイルシステムを同じ場所における他の実体と共用もする。その結果、それらの実体は、全体的なサイズとコンピューティング・リソース消費の低減を実現することができる。
【0032】
コンテナおよび仮想マシンのような実体の使用にはいくつかの利点があるが、これらの実体に依存する従来の実装形態には、実際には著しい非効率があった。このような非効率は、ソフトウェア・ベースの実体の計算能力が限られており、それによってそれらの実体は行われるデータ操作にとってボトルネックとなるという事実に起因する。各ソフトウェア・ベースの実体のローカル・ファイルシステムには全体的なファイルシステムとの協調に難点もあり、それによってシステム操作時に著しい非効率と性能損失が生じる。
【0033】
際だって対照的に、本明細書に含まれる実施形態のうちの様々な実施形態は、データ完全性検査の重複を排除することによって、操作時に消費される計算リソースを低減することができるとともに、システム全体の実効性能が確実に維持されるようにする。これにより、本明細書に含まれる実施形態のうちの様々な実施形態は望ましくは、ストレージ・システムが動作することができる効率の大幅で実質的な向上を実現することができるとともに、データ操作が確実に成功裏に行われるようにする。また、これらのデータ完全性検査を行うために計算スループットがより高いリソースを選択的に使用することによって、本明細書における実施形態のうちの様々な実施形態は、例えば以下でさらに詳述するように、レイテンシを低減し、スループットを向上させることにより計算性能をさらに向上させることができる。
【0034】
次に図4を参照すると、一実施形態によるストレージ・システム400が図示されている。1つの選択肢として、このシステム400は、他の図を参照しながら説明する特徴など、本明細書で列挙されているいずれの他の実施形態の特徴と組み合わせて実装可能である。しかし、本明細書で示されているこのようなシステム400およびその他のシステムは、本明細書で列挙されている例示の実施形態において具体的に記載されている場合も記載されていない場合もある様々な応用または置換あるいはその両方で使用可能である。また、本明細書で示すシステム400は、任意の所望の環境で使用可能である。したがって、図4(およびその他の図)は、あらゆる可能な置換を含むものとみなすことができる。
【0035】
示すように、全体的ストレージ・システム400は、ストレージ環境402とコンテナ環境404とを含む。「環境」という用語は、決して限定することを意図しておらず、これらの環境402、404のいずれも任意の所望のコンポーネント、ソフトウェアなどを含み得ることに留意されたい。本手法によると、ストレージ環境402は、組み合わさって全体的ストレージ・システム400のストレージ・サブシステム410を形成する複数のデータ・ストレージ・デバイス408を含むものとして図示されている。データ・ストレージ・デバイス408は、HDD、SSD、磁気テープ・ライブラリなど、手法に応じて任意の種類のメモリを含むことができる。また、データ・ストレージ・デバイス408は、データ・フローを方向づけ、ソフトウェア・プログラムを実行し、データ操作を行い、コンテナ環境404などと通信するために使用可能なコントローラ412に結合されている。いくつかの手法では、コントローラ412は、少なくとも部分的に、ストレージ環境402におけるクラスタ化ファイルシステムを維持するために使用することができる。
【0036】
次にコンテナ環境404を参照すると、コンテナ・オーケストレータ414が示されており、コンテナ環境404において存在する(または少なくとも機能する)コンテナ416、418、420を管理するために使用することができる。それにより、コンテナ・オーケストレータ414は、いくつかの手法ではコントローラとして機能することができる。また、コンテナ416、418、420のそれぞれは、好ましくは、ストレージ・サブシステム410のデータ・ストレージ・デバイス408に物理的に記憶されているデータにマップ・バックし、したがってデータを管理するために使用することができる。例えば、これらのコンテナ416、418、420のそれぞれは、1つのコンピューティング環境から別のコンピューティング環境に全体を移動させることができる単一のパッケージとして具現化されるアプリケーションの一部に相当し得る。したがって、いくつかの手法では、複数のアプリケーション・コンテナが同じデータにアクセスを許可されてもよく、それによって、これらのアプリケーション・コンテナは、それらのコンテナがマップする基礎にあるデータに実際に影響を与えずに、作成、移動、破壊などを行うことができる。その結果、コンテナに保持されているデータは、好ましくは、例えばデータが異なるオペレーティング・システムまたはアプリケーションあるいはその両方の間で何回繰り返し適用されるかに関わりなく同一のままであるように、ステートレス性の状態でそのようにされる。
【0037】
図4ではコンテナ環境404はコンテナのみを含むものとして図示されているが、コンテナ環境404には、仮想マシン、アプリケーションなど、または任意のその他の所望の種類のソフトウェア・ベースの実体も存在し得る(または少なくとも機能し得る、実施され得る、など)ことにも留意されたい。したがって、例えば本明細書を読めば当業者にはわかるように、コンテナ・オーケストレータ414は、コンテナ環境404に存在する任意の所望の種類のソフトウェア・ベースの実体を管理(例えば、監視、制御、対話など)することができる場合がある。
【0038】
例えば、仮想マシンおよびコンテナ環境は、管理者がそのアプリケーション・ワークロードをホストし、管理することを可能にするととともに、ユーザにとっては開発速度および操作効率の点で有利となる。その結果、ユーザまたは開発者あるいはその両方に、特定の状況に基づいてワークロードをシステム中で移動させる柔軟性が与えられる。いくつかの手法では、ユーザはユーザのアプリケーション・ワークロードをコンテナと仮想マシンとの間で移動させ、またはアプリケーション・ワークロードを同じオーケストレータ内で分割することができる。したがって、本明細書における「コンテナ」という用語の使用は、決して限定的であることを意図しておらず、任意の所望の種類のソフトウェア・ベースの実体を実装することができる。
【0039】
図4を続けて参照すると、ストレージ環境402とコンテナ環境404は、好ましくは、両者間でデータ、コマンド、要求、メタデータ、更新などを送ることによって互いに通信することができる。この手法では、ストレージ環境402とコンテナ環境404は、2つの環境間にわたるネットワーク406を介して互いに通信することができるが、任意の形態の通信が使用されてもよい。例えば、他の手法では、ストレージ環境402とコンテナ環境404は、2つの環境間にわたる物理的電気接続を介して通信してもよいが、任意の種類の通信チャネルを使用することができる。図4に示すネットワーク406は、例えば所望の手法に応じて任意の種類のものであってよいことにも留意されたい。例えば、いくつかの手法では、ネットワーク406はインターネットなどのWANである。しかし、ネットワーク406が実装可能な他のネットワーク・タイプの例示のリストには、これらには限らないがLAN、PSTN、SAN、構内電話網などが含まれる。したがって、ストレージ環境402とコンテナ環境404は、両者の間に存在する離隔の量にかかわらず、例えば異なる地理的場所に位置するにもかかわらず、互いに通信することができる。
【0040】
前述のように、コンテナ(例えば図4の416、418、420参照)または仮想マシンのようなソフトウェア・ベースの実体で構成されたアプリケーションは、それぞれ、それらのローカル・ファイルシステムに固有のものであるデータ操作(例えば読み出し操作および書き込み操作)を行う。ローカル・ファイルシステムは、物理ストレージ内の実際のデータに影響を与えずにローカル・データ操作を行うために使用可能なプラットフォームを提供する。しかし、それによって、そのようなソフトウェア・ベースの実体によって行われるデータ操作は、ソフトウェア・ベースの実体のオペレーティング・システムにのみわかり得る(例えば知られ得る)。コンテナおよび仮想マシンのような実体は、それ自体のローカル・ファイルシステムを有するが、全体的なファイルシステムを同じ場所における他の実体と共用もする。その結果、それらの実体は、全体的なサイズとコンピューティング・リソース消費の低減を実現することができる。
【0041】
コンテナおよび仮想マシンのような実体の使用にはいくつかの利点があるが、これらの実体に依存する従来の実装形態には、実際には著しい非効率があった。このような非効率は、ソフトウェア・ベースの実体の計算能力が限られており、それによってそれらの実体は行われるデータ操作にとってボトルネックとなるという事実に起因する。各ソフトウェア・ベースの実体のローカル・ファイルシステムには全体的なファイルシステムとの協調に難点もあり、それによって、どのような非効率の影響も複数の異なる場所の間で倍増する可能性があるためにシステム操作時に著しい非効率と性能損失が生じる。
【0042】
これらの従来の欠点とは全く対照的に、方法500に含まれるプロセスのうちの様々なプロセスは、操作の重複を排除し、計算リソース消費を低減することによって、性能を大幅に向上させることができる。方法500は、様々な実施形態において、とりわけ図1図4に図示されている実施形態などのうちのいずれかで本発明により行うことができる。当然ながら、本明細書を読めば当業者によって理解されるように、方法500には図5Aおよび図5Bに特に記載されている動作より多いかまたは少ない動作が含まれてもよい。
【0043】
方法500のステップのそれぞれは、知られている技術または本開示を読めば当業者には容易に明らかになる技術あるいはその両方を使用して、動作環境の任意の適切なコンポーネントによって行うことができる。様々な他の実施形態において、方法500は、一部または全体がコントローラ、プロセッサなど、または1つまたは複数のプロセッサを内蔵する何らかの他のデバイスによって行うことができる。プロセッサ、例えば、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有する、処理回路、チップまたはモジュールあるいはその組合せを、方法500の1つまたは複数のステップを行うために任意のデバイスにおいて使用することができる。プロセッサの例には、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野で知られている任意のその他の適切なコンピューティング・デバイスが含まれるが、これらには限定されない。
【0044】
方法500に含まれるプロセスの少なくとも一部は、図4のシステム400に含まれるプロセッサ(例えば、コントローラ、オーケストレータ、CPUなど)の1つによって行うことができる。例えば、方法500に含まれるプロセスは、図4のストレージ環境402におけるコントローラ412によって行われてもよい。したがってコントローラ412は、ネットワーク406を介してコンテナ・オーケストレータ414と通信することができることになる。他の手法では、方法500に含まれるプロセスの少なくとも一部は、図4のコンテナ環境404におけるコンテナ・オーケストレータ414によって行うことができる。したがってコンテナ・オーケストレータ414は、ネットワーク406を介してコンテナ・コントローラ412と通信することができることになる。したがって、方法500の実行は、典型的には、例えば以下でさらに詳述するように、それぞれが異なるファイルシステムを備える少なくとも2つの異なる環境間にわたる通信を必要とする。さらに、方法500に含まれるプロセスについて、クラスタ化ファイルシステムを有するストレージ環境におけるコントローラ(例えば、図4のストレージ環境402におけるコントローラ412)によって行われる文脈で説明したが、これは決して限定を意図していない。
【0045】
次に図5Aを参照すると、方法500の動作502は、2つの異なる環境間に通信チャネルを確立することを含む。上述のように、これらの環境のそれぞれには好ましくは異なるファイルシステムが関連付けられている。例えば、環境のうちの一方は、クラスタ化ファイルシステム(例えば、図4のストレージ環境402におけるクラスタ化ファイルシステム)に対応してもよく、環境のうちの他方はローカル・ファイルシステム(例えば、図4のコンテナ416、418、420のそれぞれにおけるローカル・ファイルシステム)に対応する。また、本明細書に記載のプロセスのうちの様々なプロセスは、2つの異なる環境に関わるが、これは決して限定的であることを意図していないことに留意されたい。例えば本明細書を読めば当業者にはわかるように、所望の手法に応じて、これらのプロセスのうちの1つまたは複数は、3つ以上の異なるファイルシステム間のデータ操作の重複排除のために使用されてもよい。
【0046】
いくつかの実施形態によると、動作502で確立される通信チャネルは、実際には異なるファイルシステム(または、少なくとも、それぞれプロセスを実行または管理あるいはその両方を行うコントローラ)で行われるプロセス間に延びることができる。例えば、いくつかの手法では、動作502は、ローカルのフォーマットされたファイルシステムにおけるデータ完全性検査とクラスタ化ファイルシステムにおけるデータ完全性検査との間に延びる通信チャネルを確立することを含む。いったん図4を参照すると、コンテナ環境404におけるコンテナ416、418、420のうちのいずれか1つのコンテナに関連付けられたローカルのフォーマットされたファイルシステムにおいて行われるデータ完全性検査と、ストレージ環境402に関連付けられたクラスタ化ファイルシステムにおいてコントローラ412によって行われるデータ完全性検査との間に通信チャネルを形成することができることになる。したがって通信チャネルは、バックエンドのクラスタ化ファイルシステムに記憶されている特定のデータが、例えばアプリケーション・ストレージのためのローカルのフォーマットされたファイルシステムにおいてエクスポートされ、使用されているかを識別することができる。
【0047】
具体的な通信チャネルの種類は、関与するファイルシステムのタイプ、通信チャネルが間に形成される実体などに応じて変わり得るが、データ完全性検査の種類も手法に応じて変わり得る。例えば、いくつかの手法では、データ完全性検査はFSCKプロセスである。したがって、そのような手法では、通信チャネルは(例えばコンテナまたは仮想マシンあるいはその両方を有する)ローカルのフォーマットされたファイルシステムにおけるFSCKプロセスと、(例えばストレージ・サブシステムとして機能する)クラスタ化ファイルシステムにおけるFSCKプロセスとの間に延びるように確立可能である。したがって通信チャネル自体が、FSCKプロセスの実行に関連付けられた任意のプロトコルを実装することができ、いずれかのファイルシステム場所において含まれる任意の有線または無線あるいはその両方のコンポーネントと、ファイルシステム間の通信を容易にするためにすでに使用されていてもよい任意のコンポーネントとを使用して形成することができる(例えば図4のネットワーク406参照)。
【0048】
図5Aを続けて参照すると、動作504は、データの一部に対してデータ完全性検査を行う要求を受け取ることを含む。要求は、ストレージ環境のクラスタ化ファイルシステムにおいて、ローカルのフォーマットされたファイルシステムのうちの少なくとも1つから、両者の間に存在する通信チャネルを介して受け取ることができる。また、データ完全性検査は、ローカルのフォーマットされたファイルシステムのうちの少なくとも1つにおけるファイルシステム破損の発生に応答して要求されてもよい。したがって、いくつかの手法では、データ完全性検査はFSCKプロセスである。
【0049】
好ましい手法では、要求は、所望のデータ完全性検査に関連付けられた追加情報を提供するメタデータを含む。例えば、要求は、データが対応するか、または現在含まれているか、あるいはその両方であるファイルシステムのタイプを識別する情報(例えばメタデータ)を含むことができる。一部のファイルシステムはiノード・データ構造を使用し、そのそれぞれがファイルまたはディレクトリなどのオブジェクトに対応する。所与のファイル(例えばデータのグループ)に対応するiノードは、iノード番号(固有識別番号)、その所与のファイルに関連付けられた所有者またはグループあるいはその両方、ファイルまたはファイルシステム・タイプあるいはその両方、その所与のファイルに関連付けられた許可リスト、ファイル作成、アクセスおよび変更時刻、ファイルのサイズ、その所与のファイルの物理記憶場所などを含み得る、その所与のファイルに関する情報を含む。したがって、個別のiノードは、実際のファイル・データ、ディレクトリ情報(例えばファイルに関連付けられたメタデータ)を含むか、または未使用(本明細書では「空き」とも呼ぶ)とすることができる。また、新規ファイルを作成する行為は、対応するiノードの状態を空きから割り当て済みに変更することと、新規ファイルにデータを書き込むことと、新規ファイルに関連付けられたメタデータを更新することとを含む。
【0050】
ファイルを作成し、更新するこのプロセスは、ストレージ内のデータがより効果的に管理され、アクセスされることを可能にするが、プロセスが完了し得る前に計算障害(例えばクラッシュ)が発生することがあり、それによってファイルシステム破損を生じさせる可能性がある。このようなファイルシステム破損が時間の経過とともに発生したときにそれを克服する1つの方法は、典型的にはメタデータ(例えばiノード)の検査と、特定された不整合問題の解消を試みることとを含む、データ完全性検査を行うことである。例えば、FSCK操作は、操作時に発生する可能性のある計算障害を克服するために、いくつかの修正処置を行うことができる。これらの修正処置は、誤って割り当てられたブロックを空きとして示し、割り当てられたiノードを有するがディレクトリ項目が存在しないファイルまたはディレクトリあるいはその両方のディレクトリ項目を作成し、割り当てられていないiノードを指すディレクトリ項目またはそれぞれのiノードに記憶されているメタデータと矛盾するメタデータを含むディレクトリ項目あるいはその両方を除去し、正確な数を反映するようにファイルまたはディレクトリあるいはその両方のリンク数を更新するなどのために、割り当てマップを更新することを含む。
【0051】
FSCK操作のようなデータ完全性検査は、システム全体の性能を向上させることができるが、操作の重複を監視し、防止することが重要である。決して限定的であることを意図していない一例によると、ディスク・サブシステム問題が、特定のディスク・アドレスにあるファイルのデータ破損を生じさせる場合があり、この不整合がコンテナのローカルのフォーマットされたファイルシステムと、バックエンドのクラスタ化ファイルシステムとによって検出されることがある。そのままにしておくと、FSCK処置が両方の層において進められ、その結果、コンテナのローカルのフォーマットされたファイルシステム・レベルと、バックエンドのストレージ・ファイルシステム・レベルとにおける操作の重複実行により、性能損失が生じることになる。上記のように、コンテナのようなソフトウェア・ベースの実体には限られたコンピューティング・リソース(例えばCPUコア、RAM、キャッシュなど)が関連付けられており、したがって無用な操作(例えばFSCK操作など)を行うと、稼働中のアプリケーションが相当なダウン時間と性能低下とをこうむることになる。しかし、ローカルのフォーマットされたファイルシステムの性能とバックエンドのクラスタ化ファイルシステムの性能との間の調整を実現することによって、本明細書に含まれる手法のうちの様々な手法は、例えば以下で明らかになるように、可能な場合にはバックエンドのクラスタ化ファイルシステムのより高いスループットを使用して、コンピューティング・リソースの消費を大幅に低減し、動作ボトルネックを低減することができる。
【0052】
図5Aをさらに参照すると、方法500は、要求がデータのその一部のファイルシステム・タイプを含むかどうかを判定することをさらに含む。決定506を参照されたい。データの所与のセットが対応する特定のタイプのファイルシステムは、データ完全性検査のようなプロセスをどのようにして行うことができるか、または行うことができるかに影響を与える。異なるファイルシステム・タイプは、異なるプロセス、プロトコル、許可レベルなどを含み、したがってどの種類のデータ完全性検査を行うことができるか、およびどのようなコンポーネントがそれらのデータ完全性検査を行うことができるかに有意な影響を与える。
【0053】
上述のように、データが対応するか、または現在含まれているか、あるいはその両方であるファイルシステムのタイプを識別するために、メタデータを使用することができる。したがって、決定506は、要求とともに受け取ることができるメタデータ、またはメモリに(例えばルックアップ・テーブルに)記憶可能なメタデータあるいはその両方を調べることによって決定することができる。いくつかの手法では、この決定は、データのその実際の一部が、それに対応するメタデータ・タグ(本明細書では「拡張属性」とも呼ぶ)を有するかどうかを判定することによって行われる。メタデータ・タグは、好ましくは、データのその一部に関連付けられた情報を含み、所望の形態で存在することができる。例えば、異なる手法において、メタデータ・タグは1つまたは複数のフラグを含んでもよく、ファイル・ヘッダの形態であってもよく、そのデータに関連付けられた1つまたは複数のキーワードまたは用語あるいはその両方を含んでもよく、iノード項目に対応しているなどであってもよい。また、メタデータ・タグは、ファイルシステム・タイプ、受け取った要求に関連付けられたI/O活動、実行時間情報、要求またはデータ自体あるいはその両方に関連付けられた優先度、添付されたアプリケーション・コンテナ詳細など、任意の所望の種類の情報を含んでもよい。
【0054】
したがって、データに関連付けられた任意のメタデータを調べることによって、ファイルシステム・タイプまたは形式あるいはその両方などの情報を望ましく識別することができる。識別メタデータとファイルシステム・タイプまたは形式あるいはその両方が識別された後は、バックエンドのクラスタ・ファイルシステムが、バックエンドのクラスタ化ファイルシステム自体のみを使用して両方のファイルシステムのためのデータ完全性検査を有効に行うことができる。例えば、データ完全性検査が、クラスタ化ファイルシステムによってサポートされているFSCK操作を含む手法では、データ完全性検査を実際に行うためにクラスタ化ファイルシステムで動作するFSCKデーモンを使用することができるとともに、ローカルのフォーマットされたファイルシステムとバックエンドのクラスタ化ファイルシステムの両方の性能を向上させる修正処置を実現する。これにより、重複操作によって生じるコンピューティング・リソースの無用な消費を望ましく回避するとともに、例えば上記のように、バックエンドのクラスタ化ファイルシステムはローカルのフォーマットされたファイルシステムよりも大幅に高いスループットを達成することができるため、データ完全性検査を行う効率も向上させる。
【0055】
受け取った要求がデータのその一部のファイルシステム・タイプのような情報を含むとの判定に応答して、好ましくはその情報がさらなる使用のために抽出される。したがって、方法500は、受け取った要求がデータのその一部のファイルシステム・タイプのような情報を含むとの判定に応答して、決定506から動作508に進む。ここで、動作508は、メタデータ・タグ(または「拡張属性」)を抽出することを含む。
【0056】
いくつかの手法によると、ファイルシステム・タイプなどの情報は、ローカルのフォーマットされたファイルシステムにおけるフォーマットされているファイルからiノード・データまたは構造情報あるいはその両方をエクスポートすることによって抽出することができる。識別されたファイルを調べ、コンテナ・アプリケーションによってフォーマットされたファイルシステムのタイプを識別するためのiノード・メタデータを抽出するために、バックエンドのクラスタ化ファイルシステムのFSCKデーモンを使用することができる。場合によっては、コンテナ・オーケストレーション層も、例えば上述のように、メタデータを使用してコンテナ層からバックエンドのクラスタ化ファイルシステムにフォーマットされたファイルシステム情報を渡すことによって支援する。iノード構造検査に基づいて、FSCKデーモンは、例えばフォーマットされたブロックのサイズ、ファイルシステム・サイズなど、データに関連付けられた情報と、例えば本明細書を読めば当業者にはわかるように、ファイルに対してFSCK操作を行うことに関連するその他の情報を判定することもできる。
【0057】
図5Aをさらに参照すると、方法500は動作508から決定510に進み、決定510は、クラスタ化ファイルシステムがデータのその一部のファイルシステム・タイプのためのデータ完全性検査をサポートしているかどうかを判定することを含む。上述のように、データの所与のセットが対応する特定のタイプのファイルシステムは、データ完全性検査のようなプロセスをどのようにして行うことができるか、または行うことができるかに影響を与える。異なるファイルシステム・タイプは、異なるプロセス、プロトコル、許可レベルなどを含み、したがってどの種類のデータ完全性検査を行うことができるか、およびどのようなコンポーネントがそれらのデータ完全性検査を行うことができるかに有意な影響を与える。したがって、決定510は、抽出されたメタデータ・タグ内の情報を、クラスタ化ファイルシステムによってサポートされている特性または機能あるいはその両方と比較することによって判定することができる。
【0058】
クラスタ化ファイルシステムがデータのその一部のファイルシステム・タイプのためのデータ完全性検査をサポートしているとの判定に応答して、方法500は決定512に進み、決定512はデータのその一部が現在利用可能であるかどうかを判定することを含む。言い換えると、決定512は、受け取ったデータ完全性検査に関連付けられたデータのその一部(例えばファイル)が現在使用中であるかどうか、またはFSCK操作を行うために利用可能であるかどうかを判定することを含む。いくつかの手法では、この判定は、データのその一部がクラスタ化ファイルシステムからエクスポートされているかどうか、またはローカルのフォーマットされたファイルシステムによってローカル・ストレージとして現在使用されているかどうか、あるいはその両方を特定することによって行うことができる。データの現在の使用情報は、論理対物理テーブル、その所与のデータに関連付けられたメタデータ・タグ、メモリ内の所定の場所などに記憶することができる。
【0059】
決定512におけるデータのその一部が現在利用可能であるとの判定に応答して、方法500は動作514に進む。ここで動作514は、要求されたデータ完全性検査で識別されたデータのその一部に対してデータ完全性検査が行われるようにすることを含む。上記のように、方法500に含まれるプロセスのうちの様々なプロセスは、クラスタ化ファイルシステムを有するストレージ環境におけるコントローラによって行うことができる。したがって、データ完全性検査の少なくとも一部は、実際にはストレージ環境のクラスタ化ファイルシステムにおいて動作するデーモンによって行うことができる。いくつかの手法によると、データのその一部に対してデータ完全性検査が行われるようにすることは、実際には、クラスタ化ファイルシステムにおいて動作し、クラスタ化ファイルシステムにおけるFSCKプロセスに関連付けられたFSCKデーモンに、データ完全性検査を行うように1つまたは複数の命令を送ることを含むことができる。
【0060】
バックエンドのクラスタ化ファイルシステムのより高い計算スループットを使用して得られる効率のため、データ完全性検査はローカルのフォーマットされたファイルシステムではなくバックエンドのクラスタ化ファイルシステムによって行われるのが望ましい。上述のように、コンテナおよび仮想マシンのような実体は、計算能力が限られており、したがって、従来の実装形態において行われるデータ操作のボトルネックになっている。各ソフトウェア・ベースの実体のローカル・ファイルシステムは、全体的なファイルシステムとの協調に難点もあり、それによって従来の実装形態におけるシステム操作時の著しい非効率と性能損失を生じさせている。これらの従来の欠点とは際だって対照的に、本明細書の手法は、データ完全性検査の重複を排除することによって、操作時に消費される計算リソースを低減することができるとともに、システム全体の実効性能が確実に維持されるようにする。これにより、本明細書に含まれる実施形態のうちの様々な実施形態は望ましくは、ストレージ・システムが動作することができる効率の大幅で実質的な向上を実現することができるとともに、データ操作とデータ完全性検査が確実に成功裏に行われるようにする。さらに、これらの重複排除されたデータ完全性検査を行うために計算スループットがより高いリソースを選択的に使用することによって、本明細書における実施形態のうちの様々な実施形態は、レイテンシを低減し、全体的なスループットを向上させることにより計算性能をさらに向上させることができる。
【0061】
方法500は動作514から動作516に進み、動作516は、データ完全性検査を行った結果をローカルのフォーマットされたファイルシステムに送ることを含む。ローカルのフォーマットされたファイルシステムに送られる結果に含まれる情報は、特定の手法に応じて、例えば行われるデータ完全性検査のタイプ、ファイルシステム・タイプ、ユーザ選好、所定の設定などに基づいて異なり得る。いくつかの手法によると、ローカルのフォーマットされたファイルシステムに送られるデータ完全性検査を行った結果は、FSCKタイムスタンプ、FSCK操作の状況、破損ファイルの詳細などを含み得る。したがってこの情報は、ローカルのフォーマットされたファイルシステムにおいてデータ完全性検査を実際には行わずに、データ完全性検査の結果を実装するために、ローカルのフォーマットされたファイルシステムによって使用可能である。上記のように、これは、消費されるコンピューティング・リソースの量を望ましく低減するとともに、全体的なシステムが効率的で良好な性能を確実に維持するようにする。
【0062】
動作516の実施に応答して、方法500は終了することができる。しかし、方法500は動作516の実施に応答して終了することができるが、追加のデータ完全性検査を満たすために方法500に含まれるプロセスのうちのいずれか1つまたは複数が繰り返されてもよいことに留意されたい。言い換えると、方法500に含まれるプロセスのうちのいずれか1つまたは複数が、後で受け取ったデータ完全性検査のために繰り返されてもよい。
【0063】
次に、決定506に戻ると、方法500は、要求がデータのその一部のファイルシステム・タイプを含まないとの判定に応答して実際に動作518に進む。言い換えると、方法500は、データのその一部に関連付けられたファイルシステム・タイプを識別する方法がないとの判定に応答して動作518に進む。ここで、動作518は、その所与のデータに関連付けられたファイルシステム・タイプを少なくとも識別するメタデータを含むように要求を更新するために、ローカルのフォーマットされたファイルシステムに要求を送ることを含む。いくつかの手法では、この要求は、ローカルのフォーマットされたファイルシステムがデータ完全性検査要求に拡張属性を付加してから要求を再実行することによって満たすことができる。したがって、方法500は、本明細書において記載または示唆されているかあるいはその両方である様々な手法により、更新された要求または別の要求あるいはその両方を受け取って処理することができるように、動作518から動作504に戻る。
【0064】
次に、決定510を参照すると、方法500は、クラスタ化ファイルシステムがデータのその一部のファイルシステム・タイプのためのデータ完全性検査をサポートしていないとの判定に応答して動作520に進む。上述のように、データの所与のセットが対応する特定のタイプのファイルシステムは、データ完全性検査のようなプロセスをどのように行うことができるか、またはさらに行うことができるかに影響を与える。異なるファイルシステム・タイプが、異なるプロセス、プロトコル、許可レベルなどを含み、したがってどのタイプのデータ完全性検査を行うことができるか、およびどのようなコンポーネントがそれらのデータ完全性検査を行うことができるかに有意な影響を与える。したがって、動作520は、受け取ったデータ完全性検査に失敗することを含む。動作520の実施に応答して、方法500は終了することができる。しかし、いくつかの手法では、例えばその要求を異なるファイルシステム・タイプに再実行することができるように、要求の失敗を示す標識が、最初にその要求を発行した実体またはプログラムあるいはその両方に送られてもよい。
【0065】
また、決定512に戻ると、方法500は、受け取った要求に対応するデータのその一部が現在、利用不能であるとの判定に応答して、動作522に進む。言い換えると、受け取ったデータ完全性検査に関連付けられたデータのその一部(例えばファイル)が現在使用中であり、したがってデータ完全性検査を行うために使用することができないとの判定に応答して、方法500は動作522に進む。ここで、動作522は、データが再び利用可能になったらデータ完全性検査を再実行する要求を送ることを含む。手法に応じて、これはいくつかの異なる方法で行うことができる。例えば、ある状況では、決定512自体を再実行する前に、動作522で単純に時間遅延が加えられてもよい。これにより、要求されたデータ完全性検査を進める再試行の前に、該当データが「空き」状態に戻る時間を設けることができる。さらに他の手法では、まだ修復されていないデータの記録を、例えば将来の反復に備えて維持するために、失敗したデータ完全性検査をメモリに記憶することができる。さらに他の手法では、例えば後の時点で再実行することができるように、要求されたデータ完全性検査が実際に、要求を最初に発行した実体またはプログラムあるいはその両方に返されてもよい。
【0066】
したがって、方法500に含まれるプロセスのうちの様々なプロセスは、データ完全性検査の重複を排除することによって、操作時に消費される計算リソースを望ましく低減することができるとともに、システム全体の実効性能が確実に維持されるようにする。これにより、本明細書に含まれる実施形態のうちの様々な実施形態は望ましくは、ストレージ・システムが動作することができる効率の大幅で実質的な向上を実現することができるとともに、データ操作とデータ完全性検査が確実に成功裏に行われるようにする。さらに、これらの重複排除されたデータ完全性検査を行うために計算スループットがより高いリソースを選択的に使用することによって、本明細書における実施形態のうちの様々な実施形態は、レイテンシを低減し、スループットを向上させることにより計算性能をさらに向上させることができる。ある特定の実施形態では、これは、少なくとも部分的には、特定のコンテナ固有の局在タスクをバックエンドのクラスタ化ファイルシステム・ユーティリティに肩代わりさせ、それによって重複するデータ完全性検査を回避し、性能向上とアプリケーションのダウン時間低減とを実現するように、バックエンドのクラスタ化ファイルシステムにおいて動作するデーモン(例えばFSCKデーモンなど)を強化することにより達成される。
【0067】
したがって、これらの重複排除されたデータ完全性検査を行うために計算スループットがより高いリソースを選択的に使用することによって、本明細書における実施形態のうちの様々な実施形態は、レイテンシを低減し、全体的スループットを高めることにより、計算性能をさらに向上させることができる。次に図6を参照すると、コンテナ・ファイルシステム602からストレージ環境604におけるバックエンドのクラスタ化ファイルシステムにFSCK操作をどのようにして肩代わりさせるかを示す使用実施例による分散ファイルシステム600が示されている。この使用実施例は、例示のためにのみ示すものであり、本発明を限定することは決して意図していないことに留意されたい。
【0068】
示すように、コンテナ・ファイルシステム602は、コンテナ616、618と、コンテナ・オーケストレータ606とを含む。また、コンテナ・ファイルシステム602は、2つの環境間にわたるネットワーク603を使用してストレージ環境604と通信することができるが、任意の形態の通信が使用可能である。例えば、他の手法では、コンテナ・ファイルシステム602とストレージ環境604とは、2つの環境間にわたる物理電気接続を介して通信してもよいが、任意の種類の通信チャネルが使用されてもよい。ネットワーク603は、例えば所望の手法に応じて、任意の種類のものであってよいことにも留意されたい。したがって、コンテナ・ファイルシステム602とストレージ環境604とは、例えば、異なる地理的場所に位置していても、間に存在する離隔の量に関わりなく互いに通信することができる。
【0069】
したがって、コンテナ・オーケストレータ606は、現在コンテナ616、618において使用されているファイルまたはデバイスあるいはその両方を示す標識を、ストレージ環境604におけるコントローラ608に送ることができる。これによって、ストレージ環境604は望ましくは、バックエンドのクラスタ・ファイルシステムのストレージ・サブシステム610に記憶されているファイルがエクスポートされたか、または所与のコンテナのローカル・ストレージとして使用されているかを判定することができる。述べたように、いくつかの手法は、ファイル(例えばデータのグループ)のこの識別を行うためにコンテナ・オーケストレータから送られたクラウド・オーケストレーションのヒントを使用する。ストレージ・サブシステム610は、任意の所望の種類のストレージ・デバイス612、例えばHDD、SSD、磁気テープ・ライブラリなどを含み得ることにも留意されたい。
【0070】
また、オーケストレーション層は、実際に、対応するバックエンド・ストレージに関して、コンテナ616、618(および、例えば仮想マシンなど、コンテナ・ファイルシステム602における任意のその他のソフトウェア・ベースの実体)のストレージ・リソース間の関係を含むことができる。オーケストレーション層に加えて、例えば本明細書を読めば当業者にはわかるように、所与のファイルのマッピングを示すためにメタデータ特性を関連付けるようにコンテナ・ローカル・ストレージが改良されるため、バックエンドのストレージ・ファイルまたはデバイスあるいはその両方のエクスポートを容易にしやすくするために、コンテナ・ストレージ・インターフェース(CSI)などのストレージ・ドライバが使用されてもよい。
【0071】
コントローラ608は、ストレージ環境604に記憶されているデータとそれぞれコンテナ616、618のそれぞれのローカルのファイルシステム・ストレージに記憶されているデータとの間に通信チャネルを作成するためにこの情報を使用することができる。言い換えると、バックエンドのクラスタ化ファイルシステムが、好ましくは、コンテナ616、618内に存在するデータとストレージ環境604に存在するデータとのマッピングに基づいて通信チャネルを作成する。いくつかの手法では、このフレームワークが、添付されたアプリケーション・コンテナ詳細、優先度、実行時間、I/O活動、ローカル・ファイルシステムの形式またはタイプあるいはその両方などの情報を含む追加メタデータ・タグ(または拡張属性)をファイルに付加することによって、コンテナのフォーマットされたローカル・ファイルシステムとバックエンドのストレージからエクスポートされたデータとの間に依存関係マッピングを設定する。
【0072】
バックエンドのクラスタ化ファイルシステムは、iノード・データまたは構造あるいはその両方を、コンテナのローカル・ファイルシステムによってフォーマットされたファイルからエクスポートすることもできる。言い換えると、その識別されたファイルを調べ、iノード・メタデータがあればそれを抽出して、その所与のコンテナ・アプリケーションによってフォーマットされた対応するファイルシステムのタイプを識別するように、ストレージ環境604内で動作するデーモンを強化することができる。場合によっては、コンテナ・オーケストレーション層が、メタデータを使用して、フォーマットされたファイルシステム情報をコンテナ層からバックエンドのクラスタ化ファイルシステムに渡すことによって、このプロセスを支援してもよい。このiノード構造の検査に基づいて、ローカル・ファイルシステムの形式を使用してその特定のファイルに対してFSCKプロセスを行うことができるように、バックエンドのクラスタ化ファイルシステムのFSCKデーモンが、フォーマットされたブロックのサイズ、ファイルシステムのサイズ、およびその他の情報も判定することができる。FSCKデーモンは、調べたファイルシステム情報に基づいてその所与のファイルにメタデータ・ラベルを付加することもできる。
【0073】
バックエンドのクラスタ化ファイルシステムは、上記のマッピングとコンテナ・ストレージ内のローカルのフォーマットされたファイルシステムの検査とを使用して、最初に受け取った要求で識別されているファイルに対してFSCKプロセスを行うことができる。バックエンドのクラスタ化ファイルシステムにおける実際のファイルへのコンテナのローカル・ファイルシステムのマッピングの識別されたマッピングに基づいて、バックエンドのファイルシステムのFSCKフレームワークが、フォーマットされたファイルシステムに基づいてファイルに対してFSCKを行うように強化されることになる。例えば、ローカル・ストレージ・ファイルシステムがコンテナ・アプリケーションにおいてEXT3によってフォーマットされている場合、バックエンドのクラスタ化ファイルシステムがそのファイルに対してFSCK活動を行う場合は常に、そのファイルに対してEXT3用のFSCKユーティリティを実行することになる。
【0074】
バックエンドのクラスタ化ファイルシステムにおけるFSCKデーモンは、外部のネイティブ・ファイルシステム検査ルーチン(例えばext3 FSCK)を実装し、所与のファイルに対して操作を実行するか、またはクラスタ化ファイルシステム・ノード上で利用可能なネイティブOS FSCKプロセスを呼び出すことができる。該当するコンテナとバックエンドのクラスタ化ファイルシステムは、その所与のファイルに対するFSCK操作をいつ実際に行うかの調整も行うことになる。
【0075】
バックエンドのストレージ環境604においてファイルに対して正常にFSCK操作が実施されるとそれに応答して、整合性結果が、最新のFSCKタイムスタンプ、FSCK状況(例えば不合格か合格か)、破損ファイル詳細などの詳細とともに、RPCまたは共通ロギング・インフラストラクチャなどを介してコンテナ・ファイルシステムに渡されることになる。また、対応するデータを実際に記憶しているバックエンド・ストレージ上のブロックにおいて不整合が特定された場合、好ましい手法ではバックエンドのストレージが回復処置の実施を試みる。しかし、これらの回復試行が失敗した場合、バックエンドのクラスタ化ファイルシステムは、コンテナ・アプリケーションが今後どのような回復処置を追求すべきかを判定することができるように、破損の詳細をローカルのコンテナ・ファイルシステムによって解釈可能な形態に変換し、変換された破損の詳細をコンテナに送る。
【0076】
この場合も、本明細書に記載の手法のうちの様々な手法は、データ完全性検査の重複を排除することによって、操作時に消費される計算リソースを望ましく低減することができるとともに、システム全体の実効性能が確実に維持されるようにする。また、本明細書における実施形態のうちの様々な実施形態は、これらの重複排除された計算集約的なデータ完全性検査を行うために計算スループットがより高いリソースを選択的に使用することによって、レイテンシを低減し、スループットを向上させることによって、計算性能をさらに向上させることができる。上記のように、ある状況では、これは、少なくとも部分的には、特定のコンテナ固有の局在タスクを、シン・プロビジョニングされたコンテナではなくバックエンドのクラスタ化ファイルシステム・ユーティリティに肩代わりさせ、それによって、重複するデータ完全性検査を回避し、性能向上とアプリケーションのダウン時間低減とを実現するように、バックエンドのクラスタ化ファイルシステムにおいて動作するデーモン(例えばFSCKデーモンなど)を強化することにより達成される。
【0077】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に記載の教示の実装形態はクラウド・コンピューティング環境には限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているかまたは今後開発される任意の他の種類のコンピューティング環境とともに実装可能である。
【0078】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの相互連絡で迅速にプロビジョニングすることができ、解放することができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
【0079】
特徴は以下の通りである。
【0080】
オンデマンド・セルフサービス:クラウド利用者は、サービスのプロバイダとの間で人間の介在を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0081】
広いネットワーク・アクセス:機能は、ネットワークを介して利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を介してアクセスされる。
【0082】
リソース・プール:マルチテナント・モデルを使用して複数の利用者に対応するために、プロバイダのコンピューティング・リソースがプールされ、需要に応じて、異なる物理および仮想リソースが動的に割り当てられ、再割り当てされる。利用者は一般に、提供されるリソースの厳密な場所について制御することができないかまたは知らないが、より高い抽象レベルの場所(例えば、国、州、またはデータセンター)を指定することが可能な場合があるという点で、位置独立感がある。
【0083】
迅速な伸縮性:迅速かつ伸縮性をもって、場合によっては自動的に機能をプロビジョニングして、迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。利用者にとっては、プロビジョニングのために利用可能な機能はしばしば無制限であるように見え、いつでもどんな量でも購入することができる。
【0084】
測定されるサービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に応じて適切な何らかの抽象化レベルの計量機能を利用することによって、リソース利用を自動的に制御し、最適化する。リソース使用量を監視、制御および報告することができ、利用されたサービスの透明性をプロバイダと利用者の両方に与えることができる。
【0085】
サービス・モデルは以下の通りである。
【0086】
ソフトウェア・アズ・ア・サービス(Software as a Service(SaaS)):利用者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えばウェブ・ベースの電子メール)を介して様々なクライアント・デバイスからアクセス可能である。利用者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
【0087】
プラットフォーム・アズ・ア・サービス(Platform as a Service(PaaS)):利用者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
【0088】
インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service(IaaS)):利用者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング・リソースをプロビジョニングすることであり、その際、利用者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアをデプロイし、実行することができる。利用者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、デプロイされたアプリケーションとを制御することができ、場合によっては選択されたネットワーク・コンポーネント(例えばホスト・ファイアウォール)の限定的な制御を行うことができる。
【0089】
デプロイメント・モデルは以下の通りである。
【0090】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。それは組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
【0091】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス事項)を有する特定のコミュニティをサポートする。それは組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
【0092】
パブリック・クラウド:このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
【0093】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の複合体である。
【0094】
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0095】
次に図7を参照すると、例示のクラウド・コンピューティング環境750が図示されている。示すように、クラウド・コンピューティング環境750は、例えばパーソナル・デジタル・アシスタント(PDA)または携帯電話754A、デスクトップ・コンピュータ754B、ラップトップ・コンピュータ754Cまたは自動車コンピュータ・システム754Nあるいはその組合せなど、クラウド利用者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード710を含む。ノード710は互いに通信することができる。ノード710は、上記のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドあるいはこれらの組合せなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境750は、クラウド利用者がそのためにローカル・コンピューティング・デバイス上でリソースを維持する必要がない、インフラストラクチャ・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、またはソフトウェア・アズ・ア・サービスあるいはその組合せを提供することができる。図7に示すコンピューティング・デバイス754Aないし754Nの種類は、例示のみを意図したものであり、コンピューティング・ノード710およびクラウド・コンピューティング環境750は、(例えばウェブ・ブラウザを使用して)任意の種類のネットワーク接続またはネットワーク・アドレス指定可能接続あるいはその組合せを介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
【0096】
次に図8を参照すると、クラウド・コンピューティング環境750(図7)によって提供される1組の機能的抽象化層が示されている。図8に示すコンポーネント、層および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図示するように、以下の層および対応する機能が提供される。
【0097】
ハードウェアおよびソフトウェア層860は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム861、縮小命令セット・コンピュータ(RISC)アーキテクチャ・ベースのサーバ862、サーバ863、ブレード・サーバ864、ストレージ・デバイス865、ならびにネットワークおよびネットワーキング・コンポーネント866がある。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア867およびデータベース・ソフトウェア868を含む。
【0098】
仮想化層870は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ871と、仮想ストレージ872と、仮想プライベート・ネットワークを含む仮想ネットワーク873と、仮想アプリケーションおよびオペレーティング・システム874と、仮想クライアント875である。
【0099】
一例では、管理層880は、以下に記載の機能を提供することができる。リソース・プロビジョニング881は、クラウド・コンピューティング環境内でタスクを実行するために使用されるコンピューティング・リソースおよびその他のリソースの動的調達を行う。メータリングおよびプライシング882は、クラウド・コンピューティング環境内でリソースが使用されるときのコスト追跡と、それらのリソースの消費に対する請求書発行またはインボイス発行を行う。一例ではこれらのリソースにはアプリケーション・ソフトウェア・ライセンスが含まれる場合がある。セキュリティは、クラウド利用者およびタスクのための本人検証と、データおよびその他のリソースの保護とを行う。ユーザ・ポータル883は、利用者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理884は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割り当ておよび管理を行う。サービス・レベル・アグリーメント(Service Level Agreement(SLA))計画および履行885は、SLAに従って将来の要求が予想されるクラウド・コンピューティング・リソースのための事前取り決めおよび調達を行う。
【0100】
ワークロード層890は、クラウド・コンピューティング環境を使用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション891、ソフトウェア開発およびライフサイクル管理892、仮想教室教育配信893、データ分析処理894、トランザクション処理895、ならびに、本明細書において記載または示唆されているかあるいはその両方である手法のいずれかによる、異なるファイルシステム896間のデータ完全性検査の重複排除が含まれる。
【0101】
本発明は、統合の任意の可能な技術的詳細レベルのシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0102】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(R)、フロッピー(R)・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を伝播する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、またはワイヤを介して伝送される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0103】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワークまたはその組合せなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【0104】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でもしくは一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。いくつかの実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用してコンピュータ可読プログラム命令を実行することにより、電子回路を個人向けにすることができる。
【0105】
本発明の態様について、本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロック、およびフローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実施可能であることを理解されたい。
【0106】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定されている機能/動作を実装する手段を形成するように、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサに供給されて、マシンを作り出すことができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定されている機能/動作の態様を実装する命令を含む製品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはその組合せに対して特定の方式で機能するように指示することができるものであってもよい。
【0107】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定されている機能/動作を実装するように、コンピュータ実装プロセスを提供するために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてもよい。
【0108】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。一部の代替的実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には、1ステップとして行われてもよく、並行して、実質的に並行して、一部または全体が時間的に重なり合った方式で実行されてもよく、またはブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、指定されている機能または動作を実行するか、または専用ハードウェアとコンピュータ命令との組合せを実施する、専用ハードウェア・ベースのシステムによって実装可能であることにも留意されたい。
【0109】
さらに、様々な実施形態によるシステムは、プロセッサと、プロセッサと一体化されるかまたはプロセッサによって実行可能であるかあるいはその両方であるロジックとを含んでもよく、ロジックは、本明細書に記載のプロセス・ステップのうちの1つまたは複数を実行するように構成される。プロセッサは、処理ハードウェア、メモリ、I/Oインターフェースなどの多くのコンポーネントを含むディスクリート・プロセッサまたは処理回路など、本明細書に記載の任意の構成のものとすることができる。一体化されるとは、特定用途向け集積回路(ASIC)、FPGAなど、ハードウェア・ロジックとして埋め込まれたロジックをプロセッサが有することを意味する。プロセッサによって実行可能とは、ロジックが、ハードウェア・ロジック、ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部などのソフトウェア・ロジック、などであるか、または、プロセッサによってアクセス可能であって、プロセッサによって実行されるとプロセッサに何らかの機能を実行させるように構成された、ハードウェア・ロジックとソフトウェア・ロジックとの何らかの組合せであることを意味する。ソフトウェア・ロジックは、当技術分野で知られているどのようなメモリの種類のローカルまたはリモートあるいはその両方のメモリにでも記憶することができる。ソフトウェア・プロセッサ・モジュールまたは、ASIC、FPGA、中央処理装置(CPU)、集積回路(IC)、グラフィックス・プロセッシング・ユニット(GPU)などのハードウェア・プロセッサ、あるいはその両方など、当技術分野で知られているどのようなプロセッサでも使用することができる。
【0110】
上記のシステムまたは方法あるいはその両方の様々な特徴は、任意の方式で組み合わせてもよく、それによって上記の説明から複数の組合せを作成することができることは明らかであろう。
【0111】
また、本発明の実施形態は、サービスをオンデマンドで提供するために顧客に代わって配備されるサービスの形態で提供されてもよいこともわかるであろう。
【0112】
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に対する技術的改良を最もよく説明するために、または他の当業者が本明細書で開示されている実施形態を理解することができるように選定されている。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
【手続補正書】
【提出日】2024-03-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることと、
前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することと、
前記要求がデータの前記一部のファイルシステム・タイプを含むとの判定に応答して、前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているかどうかを判定することと、
前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているとの判定に応答して、データの前記一部が現在利用可能であるかどうかを判定することと、
データの前記一部が現在利用可能であるとの判定に応答して、データの前記一部に対して前記データ完全性検査が行われるようにすることと、
前記データ完全性検査を行った結果を前記フォーマットされたファイルシステムに送ることとを含む、コンピュータ実装方法。
【請求項2】
前記データ完全性検査がファイルシステム整合性検査(FSCK)操作である、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記フォーマットされたファイルシステムにおけるFSCKプロセスと前記クラスタ化ファイルシステムにおけるFSCKプロセスとの間に通信チャネルを確立することを含み、
前記要求が前記通信チャネルを介して前記フォーマットされたファイルシステムから受け取られ、
データの前記一部に対して前記データ完全性検査が行われるようにすることが、
前記データ完全性検査を行うように前記クラスタ化ファイルシステムにおける前記FSCKプロセスに関連付けられたFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
データの前記一部に対して前記データ完全性検査が行われるようにすることが、前記FSCK操作を行うようにFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記フォーマットされたファイルシステムに送られる前記データ完全性検査を行った前記結果が、FSCKタイムスタンプと、前記FSCK操作の状況と、破損ファイル詳細とからなるグループから選択される結果を含む、請求項2に記載のコンピュータ実装方法。
【請求項6】
データの前記一部が現在利用可能であるかどうかを判定することが、
データの前記一部が前記クラスタ化ファイルシステムからエクスポートされたかどうか、または前記フォーマットされたファイルシステムによって現在ローカル・ストレージとして使用されているかどうか、あるいはその両方を判定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することが、
データの前記一部が、データの前記一部に対応するメタデータ・タグを有するかどうかを判定することを含み、
前記メタデータ・タグがデータの前記一部に関連付けられた情報を含み、
前記情報が、ファイルシステム・タイプと、入力/出力(I/O)活動と、実行時間と、優先度と、アプリケーション・コンテナ詳細とからなるグループから選択される、請求項1に記載のコンピュータ実装方法。
【請求項8】
コンピュータ・プログラムであって、前記コンピュータ・プログラムは、プロセッサに、請求項1ないし7のいずれかに記載の方法を実行させるコンピュータ・プログラム。
【請求項9】
システムであって、
プロセッサと、
前記プロセッサと一体化されているか、前記プロセッサによって実行可能であるか、または前記プロセッサと一体化されて前記プロセッサによって実行可能であるロジックとを含み、前記ロジックは、
前記プロセッサによって、クラスタ化ファイルシステムにおいて、フォーマットされたファイルシステムから、データの一部に対してデータ完全性検査を行う要求を受け取ることと、
前記プロセッサによって、前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することと、
前記要求がデータの前記一部のファイルシステム・タイプを含むとの判定に応答して、前記プロセッサによって、前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているかどうかを判定することと、
前記クラスタ化ファイルシステムがデータの前記一部の前記ファイルシステム・タイプのための前記データ完全性検査をサポートしているとの判定に応答して、前記プロセッサによって、データの前記一部が現在利用可能であるかどうかを判定することと、
データの前記一部が現在利用可能であるとの判定に応答して、前記プロセッサによって、データの前記一部に対して前記データ完全性検査が行われるようにすることと、
前記プロセッサによって、前記データ完全性検査を行った結果を前記フォーマットされたファイルシステムに送ることとを行うように構成されている、システム。
【請求項10】
前記データ完全性検査がファイルシステム整合性検査(FSCK)操作である、請求項に記載のシステム。
【請求項11】
前記ロジックが、
前記プロセッサによって、前記フォーマットされたファイルシステムにおけるFSCKプロセスと前記クラスタ化ファイルシステムにおけるFSCKプロセスとの間に通信チャネルを確立するように構成され、
前記要求が前記通信チャネルを介して前記フォーマットされたファイルシステムから受け取られ、
データの前記一部に対して前記データ完全性検査が行われるようにすることが、
前記データ完全性検査を行うように前記クラスタ化ファイルシステムにおける前記FSCKプロセスに関連付けられたFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項10に記載のシステム。
【請求項12】
データの前記一部に対して前記データ完全性検査が行われるようにすることが、前記FSCK操作を行うようにFSCKデーモンに1つまたは複数の命令を送ることを含む、請求項11に記載のシステム。
【請求項13】
前記フォーマットされたファイルシステムに送られる前記データ完全性検査を行った前記結果が、FSCKタイムスタンプと、前記FSCK操作の状況と、破損ファイル詳細とからなるグループから選択される結果を含む、請求項10に記載のシステム。
【請求項14】
データの前記一部が現在利用可能であるかどうかを判定することが、
データの前記一部が前記クラスタ化ファイルシステムからエクスポートされたかどうか、または前記フォーマットされたファイルシステムによって現在ローカル・ストレージとして使用されているかどうか、あるいはその両方を判定することを含み、
前記要求がデータの前記一部のファイルシステム・タイプを含むかどうかを判定することが、
データの前記一部が、データの前記一部に対応するメタデータ・タグを有するかどうかを判定することを含み、
前記メタデータ・タグがデータの前記一部に関連付けられた情報を含み、
前記情報が、ファイルシステム・タイプと、入力/出力(I/O)活動と、実行時間と、優先度と、アプリケーション・コンテナ詳細とからなるグループから選択される、請求項に記載のシステム。
【国際調査報告】