(57)【要約】【課題】分散型重複データ削除技術を用いて記憶システムの重複データ削除プログラムを、接続されているエッジコンポーネントにダウンロードするとともに、分散集中型記憶システム中の大きな重複データ削除テーブルデータを、全ての記憶ユニット中にダウンロードするＩｏＴ装置がデータセンタでバックアップするための記憶システムを提供する。【解決手段】本発明は、ＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システム及びその分散型重複データ削除を実現する方法を開示する。該システムは複数の記憶ユニットを備えており、各記憶ユニットは、複数の被記憶位置と、記憶ユニットの動作を制御するための制御ユニットと、前記決定的関数を前記制御ユニット及びエッジコンポーネントに提供し、そして制御ユニット及び／又はエッジコンポーネント中にて前記方法の各一ステップを実行するための分散型重複データ削除モジュールと、を備える。【選択図】図２
2019021284.tif 000002
【特許請求の範囲】
【請求項１】
ＩｏＴ装置がデータセンタでバックアップする記憶システムの分散型重複データ削除を実現するための方法であって、
ａ）各制御ユニットが記憶システム中の記憶ユニットに用いられる複数の制御ユニット及び前記記憶システムに接続されるエッジコンポーネントに、決定的関数を提供するステップと、
ｂ）  前記エッジコンポーネントにより、前記エッジコンポーネント中の被バックアップデータ（Ｔｏ−Ｂｅ−Ｂａｃｋｕｐ  Ｄａｔａ）を所定サイズを有する複数の被記憶データチャンク（Ｔｏ−Ｂｅ−Ｓｔｏｒｅｄ  Ｃｈｕｎｋｓ）に分割するステップと、
ｃ）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶データチャンクのためにハッシュ値を計算するステップと、
ｄ）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶データチャンクのために被記憶位置（Ｔｏ−Ｂｅ−Ｓｔｏｒｅｄ  Ｄｅｓｔｉｎａｔｉｏｎ）を計算するステップと、
ｅ）前記決定的関数により選択した記憶ユニット中の制御ユニットが、対応する被記憶位置に被記憶データチャンクがすでに存在するか否をチェックするステップと、
ｆ）被記憶データチャンクを、被記憶データチャンクに対応しつつ存在していない被記憶位置に送信し、そして関連するハッシュ値を制御ユニット中に送信するステップと、
ｇ）被記憶データチャンクを対応する被記憶位置に記憶し、そしてハッシュ値を前記決定的関数により選択された記憶ユニット中に記憶するステップと、
ｈ）前記記憶する被記憶データチャンクと対応するハッシュ値、及び被記憶位置を、前記エッジコンポーネント及び前記記憶ユニット中の制御ユニットに紐付けるインデックスを付すステップと、を含む、
ＩｏＴ装置がデータセンタでバックアップする記憶システムの分散型重複データ削除を実現するための方法。
【請求項２】
前記決定的関数は、ハッシュ値変数、レジリエンススキーム、記憶ユニットの割当てルール、サービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ，ＱｏＳ）ポリシー又はサービスレベル協定（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ，ＳＬＡ）ポリシーにより駆動される、請求項１に記載の方法。
【請求項３】
ステップｈの後、更に、ｉ）対応する記憶ユニット中の制御ユニットにより、全ての記憶する被記憶データチャンクが対応する被記憶位置に保存されているか否かを定期的にチェックするステップと、ｊ）もしステップｉの結果がＮＯであれば、遺失した記憶していた被記憶データチャンクを再度記憶するステップと、を含む、請求項１に記載の方法。
【請求項４】
ステップｂとステップｃとの間に、更に、ｂ１）前記被記憶データチャンクを符号化することで複数の被記憶パリティ群を生成するステップを、含む、請求項１に記載の方法。
【請求項５】
ステップｂとステップｅとの間に、更に、ｃ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のためにハッシュ値を計算するステップと、ｄ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のために被記憶位置を計算するステップと、を、含む、請求項４に記載の方法。
【請求項６】
ＩｏＴ装置がデータセンタでバックアップする記憶システムの分散型重複データ削除を実現するための方法であって、
ａ）各制御ユニットが記憶システム中の記憶ユニットに用いられる複数の制御ユニット及び前記記憶システムに接続されるエッジコンポーネントに、決定的関数を提供するステップと、
ｂ）  前記エッジコンポーネントにより、前記エッジコンポーネント中の被バックアップデータを所定サイズを有する複数の被記憶データチャンクに分割するステップと、
ｃ）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶データチャンクのためにハッシュ値を計算するステップと、
ｄ）前記エッジコンポーネントにより、決定的関数を用いて、前記被バックアップデータのＮ個のレプリカの各被記憶データチャンクのために被記憶位置を計算するステップと、
ｅ）第１のレプリカの被記憶データチャンクがすでに対応する被記憶位置に存在するか否かを、制御ユニットによりチェックするステップと、
ｆ）被記憶データチャンクがその被記憶位置に存在していない被記憶データチャンク及びその他レプリカ中の同一の被記憶データチャンクに関連する被記憶位置を対応する被記憶位置に送信し、そして関連するハッシュ値を制御ユニットに送信するステップと、
ｇ）被記憶データチャンクを対応する被記憶位置に記憶し、そしてハッシュ値を前記決定的関数により選択された記憶ユニット中に記憶するステップと、
ｈ）送信する被記憶データチャンクを、その他レプリカ中の同一の被記憶データチャンクの被記憶位置に複製するステップと、
ｉ）前記記憶する被記憶データチャンクと対応するハッシュ値、及び被記憶位置を、前記エッジコンポーネント及び前記記憶ユニット中の制御ユニットに紐付けるインデックスを付すステップと、を含む、
ＩｏＴ装置がデータセンタでバックアップする記憶システムの分散型重複データ削除を実現するための方法。
【請求項７】
前記決定的関数は、ハッシュ値変数、レジリエンススキーム、記憶ユニットの割当てルール、サービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ，ＱｏＳ）ポリシー又はサービスレベル協定（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ，ＳＬＡ）ポリシーにより駆動される、請求項６に記載の方法。
【請求項８】
ステップｈの後、更に、ｊ）対応する記憶ユニット中の制御ユニットにより、全ての記憶する被記憶データチャンクが対応する被記憶位置に保存されているか否かを定期的にチェックするステップと、ｋ）もしステップｉの結果がＮＯであれば、遺失した記憶していた被記憶データチャンクのために新たな一つのレプリカを作成するステップと、を含む、請求項６記載の方法。
【請求項９】
ステップｂとステップｃとの間に、更に、ｂ１）前記被記憶データチャンクを符号化することで複数の被記憶パリティ群を生成するステップを含む、請求項６に記載の方法。
【請求項１０】
ステップｂとステップｅとの間に、更に、ｃ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のためにハッシュ値を計算するステップと、ｄ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のために被記憶位置を計算するステップと、を含む、請求項９に記載の方法。
【請求項１１】
請求項１から１０のいずれか一項に記載の前記方法により実現する、ＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システムであって、複数の記憶ユニットを備えており、各記憶ユニットが、
複数の被記憶位置と、
記憶ユニットの動作を制御するための制御ユニットと、
前記決定的関数を前記制御ユニット及びエッジコンポーネントに提供し、そして制御ユニット及び／又はエッジコンポーネント中にて前記方法の各一ステップを実行するための分散型重複データ削除モジュールと、を備える、
ＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システム。
【請求項１２】
前記分散型重複データ削除モジュールが前記制御ユニット中に実装されるハードウェア又はソフトウェアである、請求項１１に記載の記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩｏＴ装置がデータセンタでバックアップするための記憶システム及び関連する方法に関し、特に分散型重複データ削除技術を用いて記憶システムの重複データ削除プログラムを、接続されているエッジコンポーネントにダウンロードするとともに、分散集中型記憶システム中の大きな重複データ削除テーブルデータを、全ての記憶ユニット中にダウンロードするＩｏＴ装置がデータセンタでバックアップするための記憶システムに関する。
【背景技術】
【０００２】
データセンサはアクセスに供する大量のデジタルデータを記憶している。時代の変遷に伴って、同一のデータが異なるフォーマットでパッケージされている、例えば、統計チャートがそれぞれＥＸＣＥＬ（登録商標）ファイル又はＷＯＲＤファイル内に埋込まれていると、これが同一のデータの記憶空間を占めてしまい、記憶空間の無駄になってしまう。
一方で、単一の出所から入力された連続したデータについては、重複データもまたデータセンサの運用性能を低下させてしまう。これはストリーミング更新監視動画中にて頻繁に現れるものであり、この動画は、そのうちの一つ又は複数のコーナが変わらない複数の連続したフレームが含まれる。これは記憶空間の別の種類の無駄となるばかりか、限りある帯域幅のネットワーク環境中でデータ伝送における障害となっている。
【０００３】
上記問題を解決するために、従来技術では重複データを削除する数多くの方法が提案されている。常用される方法は、データセンサの記憶システムにて重複データ削除テーブルを使用している。
従来の重複データ削除テーブルの運用方法は以下の通りである。ファイルを複数のブロック又はサイズ可変のユニットに切り分ける。各ブロック又はサイズ可変のユニットを、暗号化が安全であるハッシュ署名（ｈａｓｈ  ｓｉｇｎａｔｕｒｅ）、例えば、ＳＨＡ−１として特徴付ける。識別及び重複解消のために、ハッシュ署名と記憶位置とを紐付けるインデックスを付す。重複データ削除テーブルは通常、記憶システムのＲＡＭモジュール中に保存されている。経験則から言えば、Ｚファイルシステム（Ｚ  Ｆｉｌｅ  Ｓｙｓｔｅｍ，ＺＦＳ）、重複データ削除テーブルのサイズ計算は、１ＴＢデータ毎に約５ＧＢのＲＡＭモジュールの記憶空間を要するものであって、その他ファイルシステムでもほとんど同じである。ＺＢレベルのデータセンタにとって、重複データ削除テーブルの大きさは５ＥＢにまで拡大してしまい、これは負担できないコストとなってしまう。
【０００４】
上記状況に鑑みると、データセンタ内の重複データ削除テーブルの負担を効果的に軽減する方法が必要となってきている。当該方法を用いたシステムは非常に期待されるものであって、特にＩｏＴ装置の需要が増加したとき、当該システムは重複データを削除することで記憶空間を低減し、同時に限りある帯域幅ネットワーク環境中の余分なデータ伝送を最小化することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本部分では、本発明の一部特徴を抽出して編集する。その他特徴は後述の段落中に開示する。その目的は、添付の特許請求の範囲を包括する技術思想及び範囲における各方式の修正及び類似の配列にある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明では、ＩｏＴ装置がデータセンタでバックアップするための記憶システムの分散型重複データ削除を実現する方法を提案する。前記方法は、ａ）各制御ユニットが記憶システム中の記憶ユニットに用いられる複数の制御ユニット及び前記記憶システムに接続されるエッジコンポーネントに、決定的関数を提供するステップと、ｂ）  前記エッジコンポーネントにより、前記エッジコンポーネント中の被バックアップデータ（Ｔｏ−Ｂｅ−Ｂａｃｋｕｐ  Ｄａｔａ）を所定サイズを有する複数の被記憶データチャンク（Ｔｏ−Ｂｅ−Ｓｔｏｒｅｄ  Ｃｈｕｎｋｓ）に分割するステップと、ｃ）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶データチャンクのためにハッシュ値（ｈａｓｈ  ｖａｌｕｅ）を計算するステップと、ｄ）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶データチャンクのために被記憶位置（Ｔｏ−Ｂｅ−Ｓｔｏｒｅｄ  Ｄｅｓｔｉｎａｔｉｏｎ）を計算するステップと、ｅ）前記決定的関数により選択した記憶ユニット中の制御ユニットが、対応する被記憶位置に被記憶データチャンクがすでに存在するか否をチェックするステップと、ｆ）被記憶データチャンクを、被記憶データチャンクに対応しつつ存在していない被記憶位置に送信し、そして関連するハッシュ値を制御ユニット中に送信するステップと、ｇ）被記憶データチャンクを対応する被記憶位置に記憶し、そしてハッシュ値を前記決定的関数により選択された記憶ユニット中に記憶するステップと、ｈ）前記記憶する被記憶データチャンクと対応するハッシュ値、及び被記憶位置を、前記エッジコンポーネント及び前記記憶ユニット中の制御ユニットに紐付けるインデックスを付すステップと、を含む。
【０００７】
好ましくは、前記決定的関数は、ハッシュ値変数、レジリエンススキーム、記憶ユニットの割当てルール、サービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ，ＱｏＳ）ポリシー又はサービスレベル協定（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ，ＳＬＡ）ポリシーにより駆動される。前記方法は、ステップｈの後、更に、ｉ）対応する記憶ユニット中の制御ユニットにより、全ての記憶する被記憶データチャンクが対応する被記憶位置に保存されているか否かを定期的にチェックするステップと、ｊ）もしステップｉの結果がＮＯであれば、遺失した記憶していた被記憶データチャンクを再度記憶するステップと、を含むことができる。前記方法は、ステップｂとステップｃとの間に、更に、ｂ１）前記被記憶データチャンクを符号化することで複数の被記憶パリティ群（Ｔｏ−Ｂｅ−Ｓｔｏｒｅｄ  Ｐａｒｉｔｙ）を生成するステップを含むことをできる。前記方法は、ステップｂとステップｅとの間に、更に、ｃ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のためにハッシュ値を計算するステップと、ｄ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のために被記憶位置を計算するステップと、を含むことができる。
【０００８】
本発明はまた、ＩｏＴ装置がデータセンタでバックアップする記憶システムの分散型重複データ削除を実現するための他の方法を提案する。前記方法は、ａ）各制御ユニットが記憶システム中の記憶ユニットに用いられる複数の制御ユニット及び前記記憶システムに接続されるエッジコンポーネントに、決定的関数を提供するステップと、ｂ）  前記エッジコンポーネントにより、前記エッジコンポーネント中の被バックアップデータを所定サイズを有する複数の被記憶データチャンクに分割するステップと、ｃ）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶データチャンクのためにハッシュ値を計算するステップと、ｄ）前記エッジコンポーネントにより、決定的関数を用いて、前記被バックアップデータのＮ個のレプリカの各被記憶データチャンクのために被記憶位置を計算するステップと、ｅ）第１のレプリカの被記憶データチャンクがすでに対応する被記憶位置に存在するか否かを、制御ユニットによりチェックするステップと、ｆ）被記憶データチャンクがその被記憶位置に存在していない被記憶データチャンク及びその他レプリカ中の同一の被記憶データチャンクに関連する被記憶位置を対応する被記憶位置に送信し、そして関連するハッシュ値を制御ユニットに送信するステップと、ｇ）被記憶データチャンクを対応する被記憶位置に記憶し、そしてハッシュ値を前記決定的関数により選択された記憶ユニット中に記憶するステップと、ｈ）送信する被記憶データチャンクを、その他レプリカ中の同一の被記憶データチャンクの被記憶位置に複製するステップと、ｉ）前記記憶する被記憶データチャンクと対応するハッシュ値、及び被記憶位置を、前記エッジコンポーネント及び前記記憶ユニット中の制御ユニットに紐付けるインデックスを付すステップと、を含む。
【０００９】
好ましくは、前記決定的関数は、ハッシュ値変数、レジリエンススキーム、記憶ユニットの割当てルール、サービス品質ポリシー又はサービスレベル協定ポリシーにより駆動される。前記方法は、ステップｈの後、更に、ｊ）対応する記憶ユニット中の制御ユニットにより、全ての記憶する被記憶データチャンクが対応する被記憶位置に保存されているか否かを定期的にチェックするステップと、ｋ）もしステップｉの結果がＮＯであれば、遺失した記憶していた被記憶データチャンクのために新たな一つのレプリカを作成するステップと、を含むことができる。前記方法は、ステップｂとステップｃとの間に、更に、ｂ１）前記被記憶データチャンクを符号化することで複数の被記憶パリティ群を生成するステップを含むことができる。前記方法は、ステップｂとステップｅとの間に、更に、ｃ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のためにハッシュ値を計算するステップと、ｄ１）前記エッジコンポーネントにより、決定的関数を用いて、各被記憶パリティ群のために被記憶位置を計算するステップと、を含むことができる。
【００１０】
本発明は更に、上記方法により実現する、ＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システムを開示する。記憶システムは、各記憶ユニットが複数の被記憶位置を有する複数の記憶ユニットと、記憶ユニットの動作を制御するための制御ユニットと、前記決定的関数を前記制御ユニット及びエッジコンポーネントに提供し、そして制御ユニット及び／又はエッジコンポーネント中にて前記方法の各一ステップを実行するための分散型重複データ削除モジュールと、を備えることができる。好ましくは、前記分散型重複データ削除モジュールが前記制御ユニット中に実装されるハードウェア又はソフトウェアとすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係るＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システムの応用場面、及び該記憶システムの構成を示す。
【図２】ＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システムの一つの方法を実現するフローチャートである。
【図３】実施例にてフローチャートに用いる全てのデータの表である。
【図４】他の実施例にて用いる全てのデータの表である。
【図５】ＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システムの他の一つの方法を実現するフローチャートである。
【図６】他の実施例にてフローチャートに用いる全てのデータの表である。
【図７】更に他の実施例にて用いる全てのデータの表である。
【発明を実施するための形態】
【００１２】
本発明は下記する実施形態によって具体的に説明する。
【００１３】
本発明に係るＩｏＴ装置がデータセンタでバックアップするための分散型重複データ削除記憶システム１０の応用場面、及び該記憶システム１０の構成を示す図１を参照されたい。
記憶システム１０は概ね複数の記憶ユニットを備えており、記憶システム１０にて出入する全てのデータはホスト装置５０を通過する。記憶ユニットは、ＨＤＤ、ＳＳＤ、磁気テープ又はＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）とすることができるが、これに限定されない。記憶ユニットの台数は際限のない多数とすることができ、データセンタの必要性に応じて決定する。
本発明が良好に理解されるように、８個の記憶ユニットで説明する（第１の記憶ユニット２０１、第２の記憶ユニット２０２、第３の記憶ユニット２０３、第４の記憶ユニット２０４、第５の記憶ユニット２０５、第６の記憶ユニット２０６、第７の記憶ユニット２０７及び第８の記憶ユニット２０８）。各記憶ユニットは、例えばブロック又はボリュームといった複数の被記憶位置を有しているが、これらは下記にて記述する。各記憶ユニットは、記憶ユニットの動作を制御するための制御ユニットも備えている（該第１の記憶ユニット２０１に用いる第１の制御ユニット１０１、該第２の記憶ユニット２０２に用いる第２の制御ユニット１０２、該第３の記憶ユニット２０３に用いる第１の制御ユニット１０３、該第４の記憶ユニット２０４に用いる第４の制御ユニット１０４、該第５の記憶ユニット２０５に用いる第５の制御ユニット１０５、該第６の記憶ユニット２０６に用いる第６の制御ユニット１０６、該第７の記憶ユニット２０７に用いる第７の制御ユニット１０７及び該第８の記憶ユニット２０８に用いる第１の制御ユニット１０８）。
従来技術との相違点は、本発明における各記憶ユニットは、分散型重複データ削除モジュール１１０を更に備えるところである。該分散型重複データ削除モジュール１１０は、決定的関数を記憶システム１０に提供するとともに、各記憶ユニット中に組み込まれている。同時に、分散型重複データ削除モジュール１１０は、記憶システム１０（図１中には図示せず）に接続されているエッジコンポーネントにも組み込まれる、又は実装されている。もし該決定的関数がその要素変更により変化すると、該変化は、各記憶ユニットの分散型重複データ削除モジュール１１０及び全てのエッジコンポーネントの分散型重複データ削除モジュール１１０中にて更新されるべきである。該決定的関数は更に、下記にて記憶システム１０で分散型重複データ削除を実現するための方法で説明する。
記憶システム１０は制御ユニット及び／又はエッジコンポーネント側でこれら方法中の各ステップを実行することもできるものであって、これは本発明の鍵となる部分である。実際の運用にて、分散型重複データ削除モジュール１１０は、記憶システム１０を補助的に操作するための図１に示すハードウェアとすることができ、このハードウェアは制御ユニット中のソフトウェアとしてインストールされてもよいが、本発明はこれに限定されない。
【００１４】
エッジコンポーネントはいずれもネットワーク３００を通じて記憶システム１０に接続されている装置又は機器であり、電子装置、ソフトウェア、センサ、アクチュエータに組み込まれ、ネットワークに接続して、エッジコンポーネントのデータ収集及び交換を起動する。収集したデータは、データセンタ（記憶システム１０）にて更に使用又は分析するためにバックアップする必要がある。エッジコンポーネントは、自家製動画をアップロードして他者に配信するためのパーソナルコンピュータ４１０、記憶システム１０を介してソーシャルコミュニケーションアプリをサポートし使用するスマートフォン４２０、スマート衣服にて体温を持続的に記録するとともにデータを記憶システム１０に記憶することで分析する埋込型センサ４３０、商店入口で人を観察するとともに、監視影像を記憶システム１０中にバックアップする監視カメラ４４０、レンタカー中に取付けられて当該車を追跡するリモート追跡装置４５０とすることができる。各エッジコンポーネントは本発明における応用場面の一つを表す。
明らかに、どの応用が生じたとしても、記憶システム１０が余分なデータで瞬く間に占拠されないようにするために、記憶システム１０に送信されたデータに対して重複データ削除は必ず実行しなければならない。本発明では新たな方式、つまり分散型重複データ削除を提供している。これは、重複データ削除は記憶システム１０（制御ユニット）のみで実行されることはないことを意味している。反対に、全ての過程は、記憶システム１０及びこれに接続されているエッジコンポーネントにより実現される。記憶システム１０の負荷はこれによって減少することができる。ＩｏＴ装置がデータセンタでバックアップするための記憶システムの分散型重複データ削除を実現する方法は、下記にて実施例を合わせて詳細に説明する。
【００１５】
使用者がパーソナルコンピュータ４１０を用いて他の動画を記憶システム１０にアップロードして、記憶システム１０中の動画一つを共有する作業負荷は該動画に興味がある人が分担することができると仮定する。該動画はムービークリップに由来するシーンを含み、そして該ムービークリップは記憶システム１０の記憶ユニット中ですでにバックアップされている可能性がある。これらシーンに対して重複データ削除を行うとともに記憶空間を節約するために、本発明で提供する方法を応用することができる。
図２及び図３を参照するとともに以下の説明を参照されたい。図２はこの方法のフローチャートであり、図３は実施例にてフローチャートに用いる全てのデータの表である。記憶システム１０の構成及び図１におけるエッジコンポーネントによれば、本方法の第１のステップは、各記憶ユニット（２０１から２０８）の制御ユニット（１０１から１０８）及び記憶システム１０に接続されているパーソナルコンピュータ４１０中に決定的関数を提供する（Ｓ０１）、というものである。ハッシュ値変数、レジリエンススキーム、記憶ユニットの割当てルール、サービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ，ＱｏＳ）ポリシー又はサービスレベル協定（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ，ＳＬＡ）ポリシーにより駆動されることで、各被記憶データチャンクのために被記憶位置（下記にて説明する）を決定することができる。つまり、ある「変数」が入力されると、対応する一つの被記憶位置が得られる（算出される）。
例えば、ハッシュ値は一つの被記憶データチャンクに由来し、レジリエンススキームは再記憶時間が２００ｍｓが超えないように要求し、記憶ユニットの割当てルールは一つのバックアップデータからの全ての被記憶データチャンクが同一の記憶ユニット中にあってはならない（分配する）ことを要求し、そしてＱｏＳ及びＳＬＡの両者はいずれも動画ダウンロードの遅延が３秒間以内であることを要求する。よって、被記憶位置が決定され得る。注意すべきは、上記にて言及した変数は単に説明の目的のためであって、唯一の変数として見るべきではなく、一つの被記憶位置に正確に割当てるのに用いられるその他要素もこれを応用できるということである。
決定的関数は分散型重複データ削除モジュール１１０により提供される。決定的関数は、制御ユニット又はパーソナルコンピュータ４１０中にインストールされているプログラムとしてのコードなどを付帯する可能性もある。パーソナルコンピュータ４１０が記憶システム１０に接続されると、該プログラムが起動して、決定的関数は分散型重複データ削除に用いることができる。
【００１６】
本方法の第２のステップは、パーソナルコンピュータ４１により、パーソナルコンピュータ４１０中の被バックアップデータを所定サイズを有する複数の被記憶データチャンクに分割する（Ｓ０２）、というものである。被バックアップデータが本例において意味するものは動画ファイルのことである。該所定サイズが５１２ｋｂｉｔｓであれば、記憶ユニットの一つのブロックのサイズに等しい。該動画ファイルのサイズが４０００Ｋｂｉｔｓであり、８個の被記憶データチャンクを有すると仮定する（図３における表の１列目に示すＣ１からＣ８の通り）。８個目の被記憶データチャンクの有効ビット値は５１２Ｋｂｉｔｓ未満であるため、最後の９６Ｋｂｉｔｓは「０」で埋めることができる。ある重複データ削除の作業がエッジコンポーネントに分散された後、これら制御ユニットに決定的関数がインストールされていたとしても、ステップＳ０２が強調したいことはパーソナルコンピュータ４１０で実行されるということである。
続いて、パーソナルコンピュータ４１０により、決定的関数を用いて、各被記憶データチャンクのためにハッシュ値を計算する（Ｓ０３）。再度、パーソナルコンピュータ４１０が局所的な計算作業を実行する。データチャンクが対応するハッシュ値は図３における表の２列目にｈ１からｈ８として示している。数多くの従来の方法、例えばＳＨＡ−１は、データ画像用のハッシュ値を取得するのに用いることができるものであるが、本発明はこれに限定しない。一般的には、一つの特定の被記憶データチャンクは一つの特定のハッシュ値に対応する。
【００１７】
続いてのステップは、パーソナルコンピュータ４１０により、決定的関数を用いて、各被記憶データチャンクのために被記憶位置を計算する（Ｓ０４）、というものである。
図３を参照されたい。本実施例において、データチャンクで使用する被記憶位置は、記憶ユニット２０１のブロック２００（Ｓ１＿Ｂ２００）をＣ１に用いる、記憶ユニット２０２のブロック２００（Ｓ２＿Ｂ２００）をＣ２に用いる、記憶ユニット２０３のブロック２００（Ｓ３＿Ｂ２００）をＣ３に用いる、記憶ユニット２０４のブロック２００（Ｓ４＿Ｂ２００）をＣ４に用いる、記憶ユニット２０５のブロック２００（Ｓ５＿Ｂ２００）をＣ５に用いる、記憶ユニット２０６のブロック２００（Ｓ６＿Ｂ２００）をＣ６に用いる、記憶ユニット２０７のブロック２００（Ｓ７＿Ｂ２００）をＣ７に用いる、記憶ユニット２０７のブロック２００（Ｓ８＿Ｂ２００）をＣ８に用いる。このとき、該決定的関数により選択した記憶ユニット中の制御ユニットが、対応する被記憶位置に被記憶データチャンクがすでに存在するか否をチェックする（Ｓ０５）が、この作業は記憶ユニットにおける各制御ユニットにより実行され、該制御ユニットはエッジコンポーネントからの要求を受取る。
図３の表にて、Ｃ１、Ｃ３、Ｃ４、Ｃ６及びＣ８の被記憶位置は記憶システム１０中にすでに存在しており、これは記憶システム１０に余分な５個のシーンの動画が存在している可能性があることを意味している。Ｃ２、Ｃ５及びＣ７の被記憶位置は対応する被記憶データチャンクに用いることができる。チェック結果によって、もし「ＹＥＳ」であれば、対応する被記憶位置中の被記憶データチャンクを維持し（Ｓ０６）、そして、もし「ＮＯ」であれば、被記憶データチャンクを、被記憶データチャンクに対応しつつ存在していない被記憶位置に送信し、関連するハッシュ値を制御ユニット中に送信する（Ｓ０７）。
制御ユニットは、対応する記憶ユニット中の全ての被記憶データチャンクのハッシュ値を有するはずである。しかしながら、このような状況では、新たな被記憶データチャンク及びそのハッシュ値のみが、記憶システム１０の制御ユニットにより保留される必要がある
【００１８】
続いて、被記憶データチャンクを対応する被記憶位置に記憶し、そしてハッシュ値を該決定的関数により選択された記憶ユニット中に記憶する（Ｓ０８）。ステップＳ０８において、ハッシュ値の位置は、決定的関数に基づく操作により適正な位置を探し出すのであって、如何なる具体的なルールにも割当てられることはない。上記したように、記憶ユニットは複数の被記憶位置を有しており、該被記憶位置は被記憶データチャンクのために保留した最小記憶単位であって、どの被記憶位置がどの作業に割当てられるかにかかわらず、記憶ユニットはハッシュ値の記憶に用いられるのみである。
【００１９】
次のステップは、該記憶する被記憶データチャンクと対応するハッシュ値、及び被記憶位置を、パーソナルコンピュータ４１０及び記憶ユニット中の制御ユニットに紐付けるインデックスを付す（Ｓ０９）。本ステップでは、新たな一つの被記憶データチャンクが対応する被記憶位置に記憶されたことから、対応するハッシュ値及び被記憶位置が個々にて承認されるべきであることを意味している。
インデックス値は、制御ユニット又は記憶システム１０の記憶ユニットにおけるある被記憶位置、及びパーソナルコンピュータ４１０のメモリ又は記憶装置中のサンドボックスにより保留することができる。図３から分かるように、Ｃ２＋ｈ２＋Ｓ２＿Ｂ２００、Ｃ５＋ｈ５＋Ｓ５＿Ｂ２００及びＣ７＋ｈ７＋Ｓ７＿Ｂ２００はすでにインデックスが付されていることは明らかである。
【００２０】
最終ステップは、対応する記憶ユニット中の制御ユニットにより、全ての記憶する被記憶データチャンクが対応する被記憶位置に保存されているか否かを定期的にチェックする（Ｓ１０）、というものである。ある種の原因により、例えば記憶していた一つの被記憶位置が不注意で削除されてしまうと、記憶していた被記憶データチャンクは失われてしまう。遺失した被記憶データチャンクは、システムの同期及び一致性を保持するために、リカバリする必要がある。よって、もしいずれかの記憶していた被記憶データチャンクの遺失を発見したのであれば、遺失した記憶していた被記憶データチャンクをリカバリする（Ｓ１１）。これはインデックスのハッシュ値により可逆的に派生させることができる。
もし記憶していた被記憶データチャンクの遺失を発見しないのであれば、全ての被記憶データチャンクを対応する被記憶位置に維持する（Ｓ１２）。ステップＳ１０を一回、また一回と実行することで、記憶システム１０中にバックアップした記憶している被記憶データチャンクが遺失しないように確保する。
【００２１】
前記した実施例においては、一般的な被バックアップデータに用いる方法を示している。本発明の技術思想によれば、エラーチェック機能を有するパリティビットの一般的な被バックアップデータに用いることができる他の方法が更にある。以下にて、この方法の他の実施例を紹介する。
【００２２】
図２及び図４を参照されたい。図４は他の実施例にて用いるデータの表である。新たな方法と以前の方法とは一部共通するが、二つの点で異なっている。まず、一つのステップ、Ｓ０２’が、ステップＳ０２とＳ０３との間に存在する。Ｓ０２’は該被記憶データチャンクを符号化することで複数の被記憶パリティ群を生成する、というものである。被記憶パリティ群のサイズは、被記憶データチャンクのサイズと同サイズであるべきで、０は埋めるのに用いることができる。図４に示すように、３つの被記憶パリティ群Ｐ１、Ｐ２、Ｐ３を有する。
第２の相違点は、二つ以上のステップをステップＳ０２とステップＳ０５との間に挿入するというものである。これらはパーソナルコンピュータ４１０により、決定的関数を用いて、各被記憶パリティ群のためにハッシュ値を計算し（Ｓ０３’）、及びパーソナルコンピュータ４１０により、決定的関数を用いて、各被記憶パリティ群のために被記憶位置を計算する（Ｓ０４’）、というものである。ステップＳ０３’及びＳ０４’の順序はステップＳ０３及びステップＳ０４の順序に限定されないが、これは該方法では全ての被記憶パリティ群の前に全ての被記憶データチャンクを処理することができるためであり、該方法では全てのハッシュ値を先に処理して、次に全ての被記憶位置を処理してもよい。
被記憶データチャンクと被記憶パリティ群はいずれもステップＳ０２’の後に得られるため、全ての被記憶パリティ群は先に処理して、その後被記憶データチャンクを処理することができる。残りのステップは同一である。
【００２３】
図４にて、Ｐ１、Ｐ２及びＰ３に対応するハッシュ値は各々ｈ９、ｈ１０及びｈ１１である。Ｐ１、Ｐ２及びＰ３に対応する被記憶位置は、記憶ユニット１のブロック２１０（Ｓ１＿Ｂ２１０）がＰ１に対応し、記憶ユニット１のブロック２２０（Ｓ１＿Ｂ２２０）がＰ２に対応し、記憶ユニット１のブロック２３０（Ｓ１＿Ｂ２３０）がＰ３に対応する。
ステップＳ０５の後、全ての三つの被記憶位置が空になる。よって、Ｐ１＋ｈ９、Ｐ２＋ｈ１０及びＰ３＋ｈ１１は制御ユニットにより送信及び記憶される。最後に、Ｐ１＋ｈ９＋Ｓ１＿Ｂ２１０、Ｐ２＋ｈ１０＋Ｓ１＿Ｂ２２０及びＰ３＋ｈ１１＋Ｓ１＿Ｂ２３０はインデックスが付される。ステップＳ１０を繰り返すことで、被記憶データチャンク又は被記憶パリティ群の遺失がないかを監視する。
【００２４】
レプリカが必要ないときには、上記二つの実施例を適用することができる。安全性の考慮によるレプリカは、ある種のデータではレプリカを作成する必要がある。送信データ量及び記憶空間は記憶装置にとってはかなり大きいことから、本発明ではその他方法で処理することを提供している。以下の二つの実施例は関連する方法を紹介するためのものである。
【００２５】
埋込型センサ４３０が、後続の分析のために、体温及び関連情報を記憶システム１０に持続的に送信すると仮定する。健康な体であっては、情報は随時一定に保持されるはずである。よって、一定時間内にて多くのデータは変わらない可能性がある。これは本発明の方法を応用する良い例である。
図５及び図６を参照するとともに以下の説明を参照されたい。図５はこの方法のフローチャートであり、図６は本実施例にて該フローチャートに用いる全てのデータの表である。記憶システム１０の構成及び図１におけるエッジコンポーネントによれば、この方法の第１のステップは、決定的関数を制御ユニット及び該記憶システム１０に接続されている埋込型センサ４３０に提供するというものであり、このうち各制御ユニットは記憶システム１０中の記憶ユニットに用いられる（Ｓ２１）。第２のステップは、埋込型センサ４３０により、埋込型センサ４３０中の被バックアップデータを所定サイズを有する複数の被記憶データチャンクに分割する（Ｓ２２）、というものである。第３のステップは、埋込型センサ４３０により、決定的関数を用いて、各被記憶データチャンクのためにハッシュ値を計算する（Ｓ２３）、というものである。
ステップＳ０１からＳ０３及びＳ２１からＳ２３までの間には明確な相違点はないが、唯一の差異は被記憶データチャンクのサイズにある。体温及び時間に伴って変化する関連データはデジタル化データであり且つ大きくないため、重複データ削除の効果をより好適にするために、被記憶データチャンクのサイズは１６Ｋｂｉｔｓ以下とすることができる。つまりこれは一つのブロックのサイズではなく、しかも複数の被記憶データチャンクを組合わせて一つのブロックに埋込んだものであることを意味している。
【００２６】
続いてのステップは、該埋込型センサ４３０により、決定的関数を用いて、該被バックアップデータのＮ個のレプリカの各被記憶データチャンクのために被記憶位置を計算する（Ｓ２４）、というものである。Ｎは一つの整数であって、これは該方法はいずれの数量の安全性の考慮によるレプリカに適用することができることを意味している。本実施例において、Ｎは３である。
図６を参照されたい。三つのレプリカはいずれも、各々がＣ１、Ｃ２及びＣ３である三つの被記憶データチャンクを有する。全ての被記憶データチャンクのハッシュ値はいずれも同一で、ｈ１、ｈ２及びｈ３である。しかしながら、レプリカの被記憶データチャンクの対応する被記憶位置は異なる。これは決定的関数の特別な設計であって、同一のデータであっても同一のハッシュ値を有しており、これらは異なる位置に複製される。
本実施例において、第１のレプリカ（Ｒ１）のＣ１は記憶ユニット２０１のブロック１００（Ｓ１＿Ｂ１００）に割当てられ、第１のレプリカのＣ２は記憶ユニット２０１のブロック１１０（Ｓ１＿Ｂ１１０）に割当てられ、第１のレプリカのＣ３は記憶ユニット２０１のブロック１２０（Ｓ１＿Ｂ１２０）に割当てられ、第２のレプリカ（Ｒ２）のＣ１は記憶ユニット２０２のブロック１００（Ｓ２＿Ｂ１００）に割当てられ、第２のレプリカのＣ２は記憶ユニット２０２のブロック１１０（Ｓ２＿Ｂ１１０）に割当てられ、第２のレプリカのＣ３は記憶ユニット２０２のブロック１２０（Ｓ２＿Ｂ１２０）に割当てられ、第３のレプリカ（Ｒ３）のＣ１は記憶ユニット２０３のブロック１００（Ｓ３＿Ｂ１００）に割当てられ、第３のレプリカのＣ２は記憶ユニット２０３のブロック１１０（Ｓ３＿Ｂ１１０）に割当てられ、第３のレプリカのＣ３は記憶ユニット２０３のブロック１２０（Ｓ３＿Ｂ１２０）に割当てられる。
【００２７】
続いてのステップは、第１のレプリカの被記憶データチャンクがすでに対応する被記憶位置に存在するか否かを、制御ユニットによりチェックする（Ｓ２５）、というものである。もし回答がＹＥＳであれば、被記憶データチャンクを対応する被記憶位置に維持する（Ｓ２６）。もし回答がＮＯであれば、被記憶データチャンクがその被記憶位置に存在していない被記憶データチャンク及びその他レプリカ中の同一の被記憶データチャンクに関連する被記憶位置を対応する被記憶位置に送信し、そして関連するハッシュ値を制御ユニットに送信する（Ｓ２７）。
より良好に理解するために、図６に戻られたい。ステップＳ２５の後、Ｓ１＿Ｂ１１０中にはＣ２がすでに存在していることを発見した。よって、Ｃ２は元の状態を維持する（ステップＳ２６）。Ｒ１のＣ１及びＣ２は各々Ｓ１＿Ｂ１００及びＳ１＿Ｂ１２０に送信される。Ｃ１及びｈ１は共に送信され、Ｃ３及びｈ３は共に送信される。同時に、Ｒ２及びＲ３中のＣ１及びＣ３の被記憶位置も制御ユニットに送信される（ステップＳ２７）。続いてのステップは、被記憶データチャンクを対応する被記憶位置に記憶し、そしてハッシュ値を該決定的関数により選択された記憶ユニット中に記憶する（Ｓ２８）、というものである。この段階にて、第１のレプリカの全ての被記憶データチャンクがすでに対応する被記憶位置にバックアップされているが、残りのレプリカはまだバックアップされていない。一つ前の実施例と同じく、ハッシュ値、ｈ１、ｈ２及びｈ３は制御ユニットより保存される。
【００２８】
次のステップは、送信する被記憶データチャンクを、その他レプリカ中の同一の被記憶データチャンクの被記憶位置に複製する。直覚的には、このステップは余分な二つのレプリカを作成するように見える。しかしながら、これは通常応用される複製とは異なる。これら位置、つまり被記憶位置は、すでに決定的関数により決定されている。
続いて、該記憶する被記憶データチャンクと対応するハッシュ値、及び被記憶位置を、該エッジコンポーネント及び該記憶ユニット中の制御ユニットに紐付けるインデックスを付す（Ｓ３０）。ここで強調することは、本実施例にて、インデックスは全ての三つの被記憶データチャンクに用いられるものであって、第１のレプリカのみに用いるものではない。データインデックスは図６中に示されているので、ここでは再度説明しない。
【００２９】
最終ステップは、対応する記憶ユニット中の制御ユニットにより、全ての記憶する被記憶データチャンクが対応する被記憶位置に保存されているか否かを定期的にチェックする（Ｓ３１）、というものである。ステップＳ３１の目的は前記実施例におけるステップＳ１０の目的と同じである。遺失した被記憶データチャンクはリカバリする必要がある。よって、もしいずれかの記憶していた被記憶データチャンクが遺失したのであれば、遺失した記憶していた被記憶データチャンクのために新たな一つのレプリカを作成する（Ｓ３２）。もし記憶していた被記憶データチャンクが遺失していないのであれば、全ての被記憶データチャンクを対応する被記憶位置に維持する（Ｓ３３）。ステップＳ３１を一回、また一回と実行することで、記憶システム１０中の三つのレプリカの記憶データチャンクが消失しないように確保する。
【００３０】
類似するように、前記実施例においては、複数のレプリカにおける一般的な被バックアップデータに用いる方法を示している。本発明の技術思想によれば、エラーチェック機能を有するパリティビット及び安全性の考慮によるレプリカの一般的な被バックアップデータに用いることができる他の方法が更にある。以下はこの方法の他の実施例である。
【００３１】
図５及び図７を参照されたい。図７は他の実施例にて用いる全てのデータを表にて列記している。新たな方法と以前の方法とは一部共通するが、二つの点で異なっている。まず、一つのステップ、Ｓ２２’が、ステップＳ２２とＳ２３との間に存在する。Ｓ２２’は該被記憶データチャンクを符号化することで複数の被記憶パリティ群を生成する。被記憶パリティ群のサイズは、被記憶データチャンクのサイズと同サイズであるべきで、０は埋めるのに用いることができる。本実施例においては、一つの被記憶パリティ群があるのみである。該被記憶パリティ群、Ｐは、ハッシュ値ｈ４を有している。
第２の相違点は、ステップＳ２２とステップＳ２５との間に更に二つのステップがあるところである。これらはそれぞれ、埋込型センサ４３０により、決定的関数を用いて、各被記憶パリティ群のためにハッシュ値を計算し（Ｓ２３’）、及び埋込型センサ４３０により、決定的関数を用いて、各被記憶パリティ群のために被記憶位置を計算する（Ｓ２４’）、というものである。ステップＳ２３’及びＳ２４’の順序はステップＳ２３及びステップＳ２４の順序に限定されないが、これは該方法では全ての被記憶パリティ群と一つのレプリカの前に全ての被記憶データチャンクを処理することができるからである。該方法では全てのハッシュ値を先に処理して、次に全ての被記憶位置及び一つのレプリカを処理してもよい。被記憶データチャンクと被記憶パリティ群はいずれもステップＳ２２’の後に得られるため、全ての被記憶パリティ群及び一つのレプリカは先に処理して、その後全ての被記憶データチャンクを処理することになる。残りのステップは同じである。
【００３２】
本発明はすでに上記のとおり実施形態を開示したが、これは本発明を限定するためのものではなく、当業者であれば、本発明の技術思想及び範囲内で、いくらかの変更及び付加を行うことは可能であるのが当然であるため、本発明の保護範囲は別紙の特許請求の範囲で限定されるものを基準とする。
【符号の説明】
【００３３】
１０    記憶システム
５０    ホスト装置
１０１  第１の制御ユニット
１０２  第２の制御ユニット
１０３  第３の制御ユニット
１０４  第４の制御ユニット
１０５  第５の制御ユニット
１０６  第６の制御ユニット
１０７  第７の制御ユニット
１０８  第８の制御ユニット
１１０  分散型重複データ削除モジュール
２０１  第１の記憶ユニット
２０２  第２の記憶ユニット
２０３  第３の記憶ユニット
２０４  第４の記憶ユニット
２０５  第５の制御ユニット
２０６  第６の記憶ユニット
２０７  第７の記憶ユニット
２０８  第８の制御ユニット
３００  ネットワーク
４１０  パーソナルコンピュータ
４２０  スマートフォン
４３０  埋込型センサ
４４０  監視カメラ
４５０  リモート追跡装置
【図１】
2019021284.tif 000003
【図２】
2019021284.tif 000004
【図３】
2019021284.tif 000005
【図４】
2019021284.tif 000006
【図５】
2019021284.tif 000007
【図６】
2019021284.tif 000008
【図７】
2019021284.tif 000009