(57)【要約】【課題】ボトルネックの現象による効率性の低下を防止させ、損失したデータを復旧できるデータ保存方法及びそのシステムを提供する。【解決手段】本発明のシステムでは、複数のストレージ装置は、データをストレージ装置に分散させ、データ保護を提供する介在中央コントローラ無しで、一つ以上のホストコンピュータと直接接続され、パリティーコードは、一つ以上の専用ストレージ装置に保存されたり、複数のストレージ装置に分散され、ストレージ装置がライトコマンドを受信した場合、部分パリティーコードが計算され、ライトされたデータに対するパリティーコードが他のストレージ装置にあれば、部分パリティーコードを使用してパリティーコードをアップデートするように、部分パリティーコードが他のストレージ装置に伝送される。【選択図】  図１
2019036301.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置アレイにデータを保存する方法において、
前記ストレージ装置アレイの第１ストレージ装置が、ホストコンピュータから、前記第１ストレージ装置の論理ブロックアドレスで前記第１ストレージ装置に書き込まれるライトデータ（ｗｒｉｔｅ  ｄａｔａ）を含むライトコマンド（ｗｒｉｔｅ  ｃｏｍｍａｎｄ）を受信するステップと、
前記第１ストレージ装置が、前記論理ブロックアドレスに保存された以前のデータを検索するステップと、
前記第１ストレージ装置が、前記以前のデータ及び前記ライトデータから部分パリティーコード（ｐａｒｉｔｙ  ｃｏｄｅ）を計算するステップと、
前記ストレージ装置アレイの第２ストレージ装置が、前記部分パリティーコードとともに以前のパリティーコードを評価して新しいパリティーコードを生成するステップと、
前記ストレージ装置アレイの第３ストレージ装置が、前記新しいパリティーコードを保存するステップと、を有し、
前記部分パリティーコードは、以前のパリティコードと共に評価される時、前記以前のパリティコードは、前記以前のデータを含む古い仮想ストライプのデータ保護コードであって、前記ストレージ装置アレイの全てにわたって延在し、新しいパリティーコードは、ストレージ装置アレイ全体にわたって延在し、かつ、以前のデータの代わりに前記ライトデータを含む新しい仮想ストライプのデータのためのデータ保護コードである数値であることを特徴とするデータ保存方法。
【請求項２】
前記第３ストレージ装置は、前記第２ストレージ装置であることを特徴とする請求項１に記載のデータ保存方法。
【請求項３】
前記第１ストレージ装置が、前記第２ストレージ装置の識別子を計算するステップと、
前記第２ストレージ装置の前記識別子が、前記第１ストレージ装置の識別子と異なるか否かを判断するステップと、
前記第２ストレージ装置の前記識別子が、前記第１ストレージ装置の前記識別子と異なる場合、前記部分パリティーコードを含むパリティーメッセージを前記第２ストレージ装置に伝送するステップと、をさらに有することを特徴とする請求項１に記載のデータ保存方法。
【請求項４】
前記ライトコマンドは、ネームスペース（ｎａｍｅｓｐａｃｅ）識別子をさらに含み、
前記第２ストレージ装置の前記識別子を計算するステップは、前記ネームスペース識別子に基づいてネームスペースオフセットテーブルからネームスペースオフセットを取得するステップと、
前記ネームスペースオフセット及び前記論理ブロックアドレスの和として仮想ストライプ識別子を計算するステップと、を含むことを特徴とする請求項３に記載のデータ保存方法。
【請求項５】
前記第２ストレージ装置の前記識別子を計算するステップは、前記第１ストレージ装置によって、前記第１ストレージ装置の第１テーブルからストライドサイズ（ｓｔｒｉｄｅ  ｓｉｚｅ）を検索するステップと、
前記仮想ストライプ識別子、モジュロ（ｍｏｄｕｌｏ）、及び前記ストライドサイズを計算するステップと、をさらに含むことを特徴とする請求項４に記載のデータ保存方法。
【請求項６】
前記パリティーメッセージを前記第２ストレージ装置に伝送するステップは、前記第１ストレージ装置が、前記第１ストレージ装置の第２テーブルから前記第２ストレージ装置のアドレスを検索するステップと、
前記第２ストレージ装置の前記アドレスに前記パリティーメッセージを伝送するステップと、を含むことを特徴とする請求項５に記載のデータ保存方法。
【請求項７】
前記第１ストレージ装置は、イーサネット（登録商標、以下省略）ストレージ装置であり、
前記第２ストレージ装置は、イーサネットストレージ装置であり、
前記第２ストレージ装置のアドレスは、前記第２ストレージ装置のイーサネットアドレスであることを特徴とする請求項６に記載のデータ保存方法。
【請求項８】
ストレージシステム管理回路によって、前記第１ストレージ装置の前記第２テーブルに前記第２ストレージ装置のアドレスを保存するステップをさらに有することを特徴とする請求項６に記載のデータ保存方法。
【請求項９】
前記ストレージシステム管理回路によって、前記第１テーブルに前記ストライドサイズを保存するステップをさらに有することを特徴とする請求項８に記載のデータ保存方法。
【請求項１０】
前記第１ストレージ装置は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）エクスプレススイッチ（ｅｘｐｒｅｓｓ  ｓｗｉｔｃｈ）に接続され、
前記第２ストレージ装置は、前記ＰＣＩエクスプレススイッチに接続され、
前記第２ストレージ装置のアドレスは、前記第２ストレージ装置のＰＣＩエクスプレスアドレスであることを特徴とする請求項６に記載のデータ保存方法。
【請求項１１】
前記以前のパリティーコード及び前記新しいパリティーコードのそれぞれは、ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ６、及び消去コードデータ保護システムからなるグループから選択されるデータ保護システムに利用されるデータ保護コードであることを特徴とする請求項１に記載のデータ保存方法。
【請求項１２】
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置の故障又は切断時に、
ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを再構成して、前記第１ストレージ装置にアドレスされたストレージコマンドを前記ストレージシステム管理回路に伝送させるステップと、
受信したストレージコマンドに応答して、前記ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを介して、前記第１ストレージ装置が送信したであろう、存在し、正しく動作していたものと、同一のコマンド完了を伝送するステップと、をさらに有することを特徴とする請求項１に記載のデータ保存方法。
【請求項１３】
前記ストレージシステム管理回路によって、前記第１ストレージ装置に以前に保存されたデータを復旧するステップと、
前記復旧されたデータを第４ストレージ装置に保存するステップと、をさらに有することを特徴とする請求項１２に記載のデータ保存方法。
【請求項１４】
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置の故障又は切断時に、
ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを再構成し、前記第１ストレージ装置にアドレスされたストレージコマンドを第４ストレージ装置に伝送させるステップと、
受信したストレージコマンドに応答して、前記第４ストレージ装置によって、前記ストレージインターフェーススイッチを介して、前記第１ストレージ装置が送信したであろう、存在し、正しく動作していたものと、同一のコマンド完了を伝送するステップと、をさらに有することを特徴とする請求項１に記載のデータ保存方法。
【請求項１５】
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置に分離故障（ｄｉｓｃｒｅｔｅ  ｆａｉｌｕｒｅ）が発生し、リードコマンドの受信時に、
前記第１ストレージ装置が、前記分離故障によって影響を受けたデータを復旧するステップと、
前記リードコマンドに応答して、前記第１ストレージ装置によって、前記ストレージインターフェーススイッチを介して、前記分離故障が発生しなかったら、前記第１ストレージ装置が伝送していたであろうものと同一のコマンド完了を伝送するステップと、をさらに有することを特徴とする請求項１に記載のデータ保存方法。
【請求項１６】
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置に分離故障が発生し、リードコマンドの受信時に、
ストレージシステム管理回路が、前記分離故障によって影響を受けたデータを復旧するステップと、
前記リードコマンドに応答して、前記ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを介して、前記分離故障が発生しなかったら、前記第１ストレージ装置が伝送していたであろうものと同一のコマンド完了を伝送するステップと、をさらに有することを特徴とする請求項１に記載のデータ保存方法。
【請求項１７】
データを保存するシステムにおいて、
ストレージ装置アレイを含み、
前記ストレージ装置アレイの第１ストレージ装置が、ホストコンピュータから、前記第１ストレージ装置の論理ブロックアドレスで、前記第１ストレージ装置に書き込まれるライトデータを含むライトコマンドを受信し、
前記第１ストレージ装置が、前記論理ブロックアドレスに保存された以前のデータを検索し、
前記第１ストレージ装置が、前記以前のデータ及び前記ライトデータから部分パリティーコードを計算し、
前記ストレージ装置アレイの第２ストレージ装置が、前記部分パリティーコードとともに以前のパリティーコードを評価して新しいパリティーコードを生成し、
前記ストレージ装置アレイの第３ストレージ装置が、前記新しいパリティーコードを保存し、
前記部分パリティーコードは、以前のパリティコードと共に評価される時、前記以前のパリティコードは、前記以前のデータを含む古い仮想ストライプのデータ保護コードであって、前記ストレージ装置アレイの全てにわたって延在し、新しいパリティーコードは、ストレージ装置アレイ全体にわたって延在し、かつ、以前のデータの代わりに前記ライトデータを含む新しい仮想ストライプのデータのためのデータ保護コードである数値であることを特徴とするデータ保存システム。
【請求項１８】
前記第３ストレージ装置は、前記第２ストレージ装置であることを特徴とする請求項１７に記載のデータ保存システム。
【請求項１９】
前記第１ストレージ装置が、前記第２ストレージ装置の識別子を計算し、
前記第２ストレージ装置の前記識別子が前記第１ストレージ装置の識別子と異なるか否かを判断し、
前記第２ストレージ装置の前記識別子が前記第１ストレージ装置の前記識別子と異なる場合、前記部分パリティーコードを含むパリティーメッセージを前記第２ストレージ装置に伝送することを特徴とする請求項１７に記載のデータ保存システム。
【請求項２０】
データを保存するシステムにおいて、
ストレージ装置アレイと、
ストレージシステム管理手段と、を有し、
前記ストレージ装置アレイの第１ストレージ装置によって、ホストコンピュータから、前記第１ストレージ装置の論理ブロックアドレスで、前記第１ストレージ装置に書き込まれるライトデータを含むライトコマンドを受信し、
前記第１ストレージ装置が、前記論理ブロックアドレスに保存された以前のデータを検索し、
前記第１ストレージ装置が、前記以前のデータ及び前記ライトデータから部分パリティーコードを計算し、
前記ストレージ装置アレイの第２ストレージ装置が、前記部分パリティーコードとともに以前のパリティーコードを評価して新しいパリティーコードを生成し、
前記ストレージ装置アレイの第３ストレージ装置が、前記新しいパリティーコードを保存し、
前記部分パリティーコードは、以前のパリティコードと共に評価される時、前記以前のパリティコードは、前記以前のデータを含む古い仮想ストライプのデータ保護コードであって、前記ストレージ装置アレイの全てにわたって延在し、新しいパリティーコードは、ストレージ装置アレイ全体にわたって延在し、かつ、以前のデータの代わりに前記ライトデータを含む新しい仮想ストライプのデータのためのデータ保護コードである数値であることを特徴とするデータ保存システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージ（ｄａｔａ  ｓｔｏｒａｇｅ）に関し、より具体的に分散消去コーディングのためのデータ保存方法及びそのシステムに関する。
【背景技術】
【０００２】
重複データ保存システムは、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）と言及されることがある、複数のストレージ装置にわたってデータを分散させることができる。
ＲＡＩＤアレイは、ライトコマンド（ｗｒｉｔｅ  ｃｏｍｍａｎｄｓ）を受信し、パリティーコード（ｐａｒｉｔｙ  ｃｏｄｅｓ）を生成し、パリティーコードとともにＲＡＩＤアレイに書き込む（ｗｒｉｔｅ）データを保存するＲＡＩＤコントローラと言及される中央コントローラによって制御され得る。
データの損失時に、ＲＡＩＤコントローラは、パリティーコードから損失されたデータを再生成することができる。
【０００３】
このようなシステムにおいて、ＲＡＩＤコントローラは多くの費用がかかり、効率性を減少させるボトルネック（ｂｏｔｔｌｅｎｅｃｋ）の現象を示す可能性がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第８，３２１，５９７Ｂ２号明細書
【特許文献２】米国特許第８，８５６，４３１Ｂ２号明細書
【特許文献３】米国特許第９，３８４，０９３Ｂ１号明細書
【特許文献４】米国特許第９，５２１，２０１Ｂ２号明細書
【特許文献５】米国特許第９，５６９，３２０Ｂ２号明細書
【特許文献６】米国特許第９，５８２，４３１Ｂ２号明細書
【特許文献７】米国特許第９，６７８，６６５Ｂ２号明細書
【特許文献８】米国特許出願公開第２０１７／００６８４８８Ａ１号明細書
【特許文献９】米国特許出願公開第２０１７／０１４７２０９Ａ１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は上記従来の重複データ保存システムにおける問題点に鑑みてなされたものであって、本発明の目的は、ボトルネックの現象による効率性の低下を防止させ、損失したデータを復旧できるデータ保存方法及びそのシステムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の実施形態では、分散消去コーディングのためのシステム及び方法として示す。
複数のストレージ装置は、データをストレージ装置に分散させ、データの保護を提供する介在中央コントローラ無しで、一つ以上のホストコンピュータと直接接続される。
パリティーコードは、一つ以上の専用ストレージ装置に保存されたり、複数のストレージ装置に分散されたりする。
ストレージ装置が、ライトコマンドを受信した場合、部分パリティーコードが計算され、ライトされたデータに対するパリティーコードが他のストレージ装置にあれば、部分パリティーコードを使用してパリティーコードをアップデートするように、部分パリティーコードが他のストレージ装置に伝送される。
【０００７】
上記目的を達成するためになされた本発明によるデータ保存方法は、ストレージ装置アレイにデータを保存する方法において、前記ストレージ装置アレイの第１ストレージ装置が、ホストコンピュータから、前記第１ストレージ装置の論理ブロックアドレスで前記第１ストレージ装置に書き込まれるライトデータ（ｗｒｉｔｅ  ｄａｔａ）を含むライトコマンド（ｗｒｉｔｅ  ｃｏｍｍａｎｄ）を受信するステップと、前記第１ストレージ装置が、前記論理ブロックアドレスに保存された以前のデータを検索するステップと、前記第１ストレージ装置が、前記以前のデータ及び前記ライトデータから部分パリティーコード（ｐａｒｉｔｙ  ｃｏｄｅ）を計算するステップと、前記ストレージ装置アレイの第２ストレージ装置が、前記部分パリティーコードとともに以前のパリティーコードを評価して新しいパリティーコードを生成するステップと、前記ストレージ装置アレイの第３ストレージ装置が、前記新しいパリティーコードを保存するステップと、を有し、前記部分パリティーコードは、以前のパリティコードと共に評価される時、前記以前のパリティコードは、前記以前のデータを含む古い仮想ストライプのデータ保護コードであって、前記ストレージ装置アレイの全てにわたって延在し、新しいパリティーコードは、ストレージ装置アレイ全体にわたって延在し、かつ、以前のデータの代わりに前記ライトデータを含む新しい仮想ストライプのデータのためのデータ保護コードである数値であることを特徴とする。
【０００８】
前記第３ストレージ装置は、前記第２ストレージ装置であることが好ましい。
前記第１ストレージ装置が、前記第２ストレージ装置の識別子を計算するステップと、前記第２ストレージ装置の前記識別子が、前記第１ストレージ装置の識別子と異なるか否かを判断するステップと、前記第２ストレージ装置の前記識別子が、前記第１ストレージ装置の前記識別子と異なる場合、前記部分パリティーコードを含むパリティーメッセージを前記第２ストレージ装置に伝送するステップと、をさらに有することが好ましい。
前記ライトコマンドは、ネームスペース（ｎａｍｅｓｐａｃｅ）識別子をさらに含み、前記第２ストレージ装置の前記識別子を計算するステップは、前記ネームスペース識別子に基づいてネームスペースオフセットテーブルからネームスペースオフセットを取得するステップと、前記ネームスペースオフセット及び前記論理ブロックアドレスの和として仮想ストライプ識別子を計算するステップと、を含むことが好ましい。
前記第２ストレージ装置の前記識別子を計算するステップは、前記第１ストレージ装置によって、前記第１ストレージ装置の第１テーブルからストライドサイズ（ｓｔｒｉｄｅ  ｓｉｚｅ）を検索するステップと、前記仮想ストライプ識別子、モジュロ（ｍｏｄｕｌｏ）、及び前記ストライドサイズを計算するステップと、をさらに含むことが好ましい。
前記パリティーメッセージを前記第２ストレージ装置に伝送するステップは、前記第１ストレージ装置が、前記第１ストレージ装置の第２テーブルから前記第２ストレージ装置のアドレスを検索するステップと、前記第２ストレージ装置の前記アドレスに前記パリティーメッセージを伝送するステップと、を含むことが好ましい。
【０００９】
前記第１ストレージ装置は、イーサネット（登録商標、以下省略）ストレージ装置であり、前記第２ストレージ装置は、イーサネットストレージ装置であり、前記第２ストレージ装置のアドレスは、前記第２ストレージ装置のイーサネットアドレスであることが好ましい。
ストレージシステム管理回路によって、前記第１ストレージ装置の前記第２テーブルに前記第２ストレージ装置のアドレスを保存するステップをさらに有することが好ましい。
前記ストレージシステム管理回路によって、前記第１テーブルに前記ストライドサイズを保存するステップをさらに有することが好ましい。
前記第１ストレージ装置は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）エクスプレススイッチ（ｅｘｐｒｅｓｓ  ｓｗｉｔｃｈ）に接続され、前記第２ストレージ装置は、前記ＰＣＩエクスプレススイッチに接続され、前記第２ストレージ装置のアドレスは、前記第２ストレージ装置のＰＣＩエクスプレスアドレスであることが好ましい。
前記以前のパリティーコード及び前記新しいパリティーコードのそれぞれは、ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ６、及び消去コードデータ保護システムからなるグループから選択されるデータ保護システムに利用されるデータ保護コードであることが好ましい。
【００１０】
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置の故障又は切断時に、ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを再構成して、前記第１ストレージ装置にアドレスされたストレージコマンドを前記ストレージシステム管理回路に伝送させるステップと、受信したストレージコマンドに応答して、前記ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを介して、前記第１ストレージ装置が送信したであろう、存在し、正しく動作していたものと、同一のコマンド完了を伝送するステップと、をさらに有することが好ましい。
前記ストレージシステム管理回路によって、前記第１ストレージ装置に以前に保存されたデータを復旧するステップと、前記復旧されたデータを第４ストレージ装置に保存するステップと、をさらに有することが好ましい。
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置の故障又は切断時に、ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを再構成し、前記第１ストレージ装置にアドレスされたストレージコマンドを第４ストレージ装置に伝送させるステップと、受信したストレージコマンドに応答して、前記第４ストレージ装置によって、前記ストレージインターフェーススイッチを介して、前記第１ストレージ装置が送信したであろう、存在し、正しく動作していたものと、同一のコマンド完了を伝送するステップと、をさらに有することが好ましい。
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置に分離障害（ｄｉｓｃｒｅｔｅ  ｆａｉｌｕｒｅ）が発生し、リードコマンドの受信時に、前記第１ストレージ装置が、前記分離障害によって影響を受けたデータを復旧するステップと、前記リードコマンドに応答して、前記第１ストレージ装置によって、前記ストレージインターフェーススイッチを介して、前記分離障害が発生しなかったら、前記第１ストレージ装置が伝送していたであろうものと同一のコマンド完了を伝送するステップと、をさらに有することが好ましい。
前記第１ストレージ装置は、ストレージインターフェーススイッチに接続され、前記第１ストレージ装置に分離障害が発生し、リードコマンドの受信時に、ストレージシステム管理回路が、前記分離障害によって影響を受けたデータを復旧するステップと、前記リードコマンドに応答して、前記ストレージシステム管理回路によって、前記ストレージインターフェーススイッチを介して、前記分離障害が発生しなかったら、前記第１ストレージ装置が伝送していたであろうものと同一のコマンド完了を伝送するステップと、をさらに有することが好ましい。
【００１１】
上記目的を達成するためになされた本発明によるデータ保存システムは、データを保存するシステムにおいて、ストレージ装置アレイを含み、前記ストレージ装置アレイの第１ストレージ装置が、ホストコンピュータから、前記第１ストレージ装置の論理ブロックアドレスで、前記第１ストレージ装置に書き込まれるライトデータを含むライトコマンドを受信し、前記第１ストレージ装置が、前記論理ブロックアドレスに保存された以前のデータを検索し、前記第１ストレージ装置が、前記以前のデータ及び前記ライトデータから部分パリティーコードを計算し、前記ストレージ装置アレイの第２ストレージ装置が、前記部分パリティーコードとともに以前のパリティーコードを評価して新しいパリティーコードを生成し、前記ストレージ装置アレイの第３ストレージ装置が、前記新しいパリティーコードを保存し、前記部分パリティーコードは、以前のパリティコードと共に評価される時、前記以前のパリティコードは、前記以前のデータを含む古い仮想ストライプのデータ保護コードであって、前記ストレージ装置アレイの全てにわたって延在し、新しいパリティーコードは、ストレージ装置アレイ全体にわたって延在し、かつ、以前のデータの代わりに前記ライトデータを含む新しい仮想ストライプのデータのためのデータ保護コードである数値であることを特徴とする。
【００１２】
前記第３ストレージ装置は、前記第２ストレージ装置であること。
前記第１ストレージ装置が、前記第２ストレージ装置の識別子を計算し、前記第２ストレージ装置の前記識別子が前記第１ストレージ装置の識別子と異なるか否かを判断し、前記第２ストレージ装置の前記識別子が前記第１ストレージ装置の前記識別子と異なる場合、前記部分パリティーコードを含むパリティーメッセージを前記第２ストレージ装置に伝送すること。
【００１３】
また、上記目的を達成するためになされた本発明によるデータ保存システムは、データを保存するシステムにおいて、ストレージ装置アレイと、ストレージシステム管理手段と、を有し、前記ストレージ装置アレイの第１ストレージ装置によって、ホストコンピュータから、前記第１ストレージ装置の論理ブロックアドレスで、前記第１ストレージ装置に書き込まれるライトデータを含むライトコマンドを受信し、前記第１ストレージ装置が、前記論理ブロックアドレスに保存された以前のデータを検索し、前記第１ストレージ装置が、前記以前のデータ及び前記ライトデータから部分パリティーコードを計算し、前記ストレージ装置アレイの第２ストレージ装置が、前記部分パリティーコードとともに以前のパリティーコードを評価して新しいパリティーコードを生成し、前記ストレージ装置アレイの第３ストレージ装置が、前記新しいパリティーコードを保存し、前記部分パリティーコードは、以前のパリティコードと共に評価される時、前記以前のパリティコードは、前記以前のデータを含む古い仮想ストライプのデータ保護コードであって、前記ストレージ装置アレイの全てにわたって延在し、新しいパリティーコードは、ストレージ装置アレイ全体にわたって延在し、かつ、以前のデータの代わりに前記ライトデータを含む新しい仮想ストライプのデータのためのデータ保護コードである数値であることを特徴とする。
【発明の効果】
【００１４】
本発明に係るデータ保存方法及びそのシステムによれば、ボトルネックの現象による効率性の低下を防止し、損失したデータを復旧することができるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態によるストレージシステムの概略を示すブロック図である。
【図２ａ】本発明の実施形態による保護グループに対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
【図２ｂ】本発明の実施形態による保護グループに対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
【図３】本発明の実施形態によるストレージシステムのストレージマップを示す図である。
【図４】本発明の実施形態によるパリティーメッセージの概略を示す図である。
【図５】本発明の実施形態による初期化工程を説明するためのフローチャートである。
【図６】本発明の実施形態によるデータ書き込み動作を説明するためのフローチャートである。
【図７】本発明の実施形態によるパリティーアップデート動作を説明するためのフローチャートである。
【図８】本発明の実施形態によるＲＡＩＤ４に対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
【図９】本発明の実施形態によるＲＡＩＤ５に対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
【図１０】本発明の実施形態によるＲＡＩＤ６に対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
【図１１】本発明の実施形態による消去コードデータ保護に対するデータ及びパリティーレイアウトダイヤグラムを示す図である。
【図１２】本発明の実施形態による故障復旧動作を説明するためのフローチャートである。
【図１３】本発明の実施形態による故障復旧動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１６】
次に、本発明に係るデータ保存方法及びそのシステムを実施するための形態の具体例を図面を参照しながら説明する。
【００１７】
添付した図面とともに、以下に陳述する詳細な説明は、本発明によって提供される分散消去コーディングのためのシステム及び方法の例示的な実施形態に対する説明として意図され、ただ本発明が構成されたり、利用されたりすることができる形式を示すものと意図されない。
詳細な説明は、説明した実施形態とともに本発明の特徴を陳述する。
しかしながら、同一であるか、同等の機能及び構造が、また本発明の本質及び範囲内において、包括されるものと意図される他の実施形態によって達成されるのが理解されるはずである。
ここで、別に明示されない限り、同一の参照番号は同一の構成要素又は特徴を示すものと意図される。
【００１８】
図１は、本発明の実施形態によるストレージシステムの概略を示すブロック図である。
図１を参照すると、一実施形態において、イーサネットＳＳＤ（ｅｔｈｅｒｎｅｔ  ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）シャーシ１１０に具現されるストレージシステムは（例えば、２４個又は４８個）（即ち、複数の）イーサネットＳＳＤのアレイを含み、イーサネットＳＳＤのそれぞれが、例えば、イーサネットスイッチのようなストレージインターフェーススイッチに接続される。
イーサネットＳＳＤのそれぞれは、ベースボード管理コントローラ（Ｂａｓｅｂｏａｒｄ  ｍａｎａｇｅｍｅｎｔ  ｃｏｎｔｒｏｌｌｅｒ，  ＢＭＣ）のような、（より具体的に後述されるプロセッシング回路でありえる）ストレージシステム管理回路と接続することができる。
【００１９】
イーサネットＳＳＤは、ミッドプレーン（ｍｉｄｐｌａｎｅ）及びＰＣＩエクスプレス（Ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ，  ＰＣＩｅ）スイッチを介してベースボード管理コントローラと接続することができる。
イーサネットＳＳＤは、遠隔ＤＡＳ（Ｄｉｒｅｃｔ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ）構成と接続することができ、イーサネットＳＳＤのそれぞれは、Ｉ／Ｏ動作のための他のイーサネットＳＳＤに独立的である。
このような構成において、ＲＡＩＤコントローラの潜在的なボトルネックの現象を回避することができる。
さらに、図１のシステムは、原則的に複数のイーサネットＳＳＤ（例えば、２５６個のイーサネットＳＳＤ）を収容可能である。
【００２０】
イーサネットＳＳＤのそれぞれは、非揮発性メモリ（例えば、フラッシュメモリ）、バッファ、及びプロセッシング回路でありえるコントローラを含むことができ、より具体的には、後述することとする。
コントローラは、ホストコンピュータとインターフェースすることができ、データの保存を除いたイーサネットＳＳＤの全ての機能を遂行することができ、データの保存は、バッファ及び非揮発性メモリによって遂行することができる。
バッファは、揮発性メモリであり得る。
ここで、使用される「ストレージインターフェーススイッチ」は、ホストコンピュータによって、それぞれのイーサネットＳＳＤと相互作用して、例えば、イーサネットＳＳＤとコマンド及びコマンド完了を交換するようにするスイッチである。
【００２１】
（複数個でありえる）アプリケーション１２０は、アプリケーションが実行されているホストコンピュータのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のファイルシステム１３０を介して、そしてホストにインスタント化された（ｉｎｓｔａｎｔｉａｔｅｄ）ＮＶＭｅ−ｏｆ（Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ  ｏｖｅｒ  Ｆａｂｒｉｃｓ）ドライバを介して、ストレージシステムと相互作用することができる。
ホストストレージシステムによって提供されたシャーシレベルのデータ保護にアグノスチック（ａｇｎｏｓｔｉｃ：無関心）であることができる。（例えば、データ保護の具現はホストから隠すことができ、ホストは、ただ信頼できるストレージシステムのみを認知することができ、信頼できるストレージシステムは変化する性能を有することができる。（例えば、データ復旧動作が発生される場合、性能が減少される））。
【００２２】
分離したドライバは、イーサネットＳＳＤのそれぞれのためのホストにインスタンス化することができる。
ドライバインスタンス（ｄｒｉｖｅｒ  ｉｎｓｔａｎｃｅｓ）１４０は、イーサネットＳＳＤへの全てのアクセスがドライバインスタンス１４０のそれぞれを介して行われると意味で、そして、ホストに対するドライバインスタンス１４０とシステムのイーサネットＳＳＤとの間で１対１の関係がありえるという意味で、イーサネットＳＳＤを「所有」することができる。
イーサネットＳＳＤのそれぞれは、自体のネームスペースを有することができる。
ストレージシステムは、ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ６、及び消去コーディング（Ｅｒａｓｕｒｅ  Ｃｏｄｉｎｇ）（又は「消去コードデータの保護」）を含む任意の多様な保護モードを具現するように構成することができる。
【００２３】
図２ａ及び図２ｂをは、本発明の実施形態による保護グループに対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
図２ａ及び図２ｂを参照すると、データの保護システムは、ここで「仮想ストライプ」として言及されるデータのユニットを保護することができる。
仮想ストライプのそれぞれに番号又は「識別子」が割り当てられる。
仮想ストライプのそれぞれは、データ及びパリティーコードを含む。
ここで使用される「パリティーコード」はデートとともに保存される重複データであり、（例えば、故障（或いは障害）（ｆａｉｌｕｒｅ）したイーサネットＳＳＤから誘発された保存されたデータの損失を含む）保存されたデータに対するエラー又は消去の場合に、このようなデータはパリティーコードから復旧することができる。
仮想ストライプのそれぞれは、任意のイーサネットＳＳＤの故障が復旧できないデータの損失を誘発させないように、複数のイーサネットＳＳＤにわたって分散される。
【００２４】
図２ａ及び図２ｂの実施形態において、（ｎ＋１）個のイーサネットＳＳＤは、保護グループの一部であり、これらは示したように、「０」から「ｎ」までの番号が付与された（イーサネットＳＳＤシャーシ１１０）のスロット２１０にインストールされる。
ストレージシステム（及び／又はイーサネットＳＳＤシャーシ１１０）は、一つ以上の保護グループを含むことができる。
イーサネットＳＳＤのそれぞれは、ブロック２２０の単位でストレージを提供し、それぞれのブロック２２０は図２ａ及び図２ｂにおいてそれぞれの長方形形状で示す。
【００２５】
ブロック２２０のサイズはプログラムすることができ、それぞれのブロック２２０は、例えば、５１２バイト、１０２４バイト、又は４０９６バイトからなり得る。
仮想ストライプのそれぞれは、イーサネットＳＳＤのそれぞれから一つのブロック２２０を含むことができるが、例えば、仮想ストライプ０は、スロット０のイーサネットＳＳＤからブロックＤ０を、そしてスロット１のイーサネットＳＳＤからブロックＤ０などを含み、仮想ストライプ２は、（示されたように）スロット０のイーサネットＳＳＤからブロックＤ２を、そしてスロット１のイーサネットＳＳＤからブロックＤ２などを含むのと同一である。
【００２６】
パリティーデータ（Ｐ０、Ｐ１など）は図２ａに示したように、（「固定パリティー」と言及することができる配列で）スロットｎのイーサネットＳＳＤに保存されたり、図２ｂに示したように、パリティーデータは（「循環パリティー」と言及することができる配列で）イーサネットＳＳＤを通じて循環するスロット及びブロック２２０に保存されたりすることができる。
循環パリティー配列において、スロットｎのイーサネットＳＳＤは、代替されたデータプレーンとして作動することができ、イーサネットＳＳＤが、通常的に保存されたデータをパリティーコードに対するブロック２２０の代わりに保存した結果として、「代替された」データを保存することができる。
仮想ストライプは、「ストライド」と言及されるグループにグループ化することができる。
ストライドそれぞれのサイズは「Ｎ」であり得、循環パリティー配列で、パリティーデータの位置は、追加的なストライドのそれぞれで繰り返され得る。
（例えば、パリティーデータが第２ドライブ（スロット１）で、ストライド０の第２仮想ストライプ（仮想ストライプ１）及びストライド１の第２仮想ストライプ（仮想ストライプ（ｎ＋１））であり得る。）
【００２７】
新しいデータが書き込まれる場合、パリティーコードの計算及びアップデートのパリティ（ｐａｒｉｔｙ）は、例えば、循環パリティーが採択されると、パリティーデータに対するストレージと一致することができる循環配列で複数のＳＳＤの間に分散することができる。
（そして、固定パリティーが採択されると、パリティーデータがパリティープレーンに保存されるが、このようなパリティは循環配列と同一に配列することができる。）
【００２８】
例えば、循環パリティーが採択されると、スロット２のイーサネットＳＳＤは、
（ｉ）パリティーデータＰ２をアップデートし、
（ｉｉ）固定パリティーが採択された場合、パリティーデータＰ２を保存する。
スロット２のイーサネットＳＳＤは、パリティーデータＰ２をアップデートすべき責任があり、スロットｎ（パリティープレーン）のイーサネットＳＳＤは、パリティーデータＰ２を保存すべき責任がある。
任意のストライプに対し、パリティーコードを計算及びアップデートすべき責任のあるイーサネットＳＳＤは、ストライプに対する「Ｄ／ＰイーサネットＳＳＤ」又は「Ｄ／Ｐ  ｅＳＳＤ」として言及することができる。
パリティーコードを計算及びアップデートすべき責任のあるイーサネットＳＳＤの識別子（又はスロット番号）は、任意の仮想ストライプに対して（仮想ストライプ識別子）ｍｏｄｕｌｏ（ストライドサイズ（ｎ））で計算することができる。
【００２９】
図３は、本発明の実施形態によるストレージシステムのストレージマップを示す図である。
図３を参照すると、イーサネットＳＳＤのそれぞれは、一つ以上の（図３にて「ＮＳ０」、「ＮＳ１」などのラベルが付与された）ネームスペースを管理することができる。
ネームスペースのそれぞれは、ネームスペースオフセットテーブルで、ネームスペースが始まるイーサネットＳＳＤ内の位置を決定するオフセットと関連させることができる。
ネームスペースに対する書き込み動作が遂行される場合、ネームスペースをホスティングするイーサネットＳＳＤは、ネームスペースオフセットに書き込み動作の論理ブロックアドレス（Ｌｏｇｉｃ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ，  ＬＢＡ）を追加することによって、書き込みが遂行される仮想ストライプを計算することができる。
【００３０】
仮想ストライプ内のデータが（例えば、ライトされるデータ又は「ライトデータ」を含むライトコマンドを実行した結果として）変更された場合、仮想ストライプに対するパリティーコードは、以下の通り再計算することができる。
それぞれのパリティーコードは、仮想ストライプにおける全てのデータに対する関数でありえる。
例えば、パリティーコードＰは、仮想ストライプにおける全てのデータのビット間の排他的な論理和（ｂｉｔ−ｗｉｓｅ  ｅｘｃｌｕｓｉｖｅ  ＯＲ）であり得る。
Ｐ＝Ｄ０＋Ｄ１＋Ｄ２＋…＋Ｄｎ−１
「＋」は、ビット間の排他的な論理和の動作を示し、Ｄｉはデータである。
データブロック中の一つが変化した場合、例えば、Ｄ１はＤ１’に代替され、パリティーコードは新しい値Ｐ’にアップデートされる。
Ｐ’＝Ｄ０＋Ｄ１’＋Ｄ２＋…＋Ｄｎ−１
【００３１】
このような変化を作るために、部分パリティーコードは、以前のパリティーコードＰに計算及び適用されて、新しいパリティーコードＰ’を生成することができる。
部分パリティーコードは、以前のパリティーコードとともに評価される場合（例えば、適切な関数（例えば、排他的論理和（ｅｘｃｌｕｓｉｖｅ  ＯＲ））を使用して、以前のパリティーコードと結合された場合）、新しいパリティーコードを生成する値である。
概念的に、部分パリティーコードは、
（ｉ）パリティーコードから、以前のデータの寄与分を除去し、
（ｉｉ）パリティーコードに新しいデータの寄与分を追加した効果を有する値と見なすことができる。
このような概念は、象徴的に以下の通りに書き込むことができる。
ＤｅｌｔａＤ１＝ｆＩｎｖｅｒｓｅ（Ｄ１）＋Ｄ１’
ｆＩｎｖｅｒｓｅ（Ｄ１）は、適切な関数を使用して、以前のパリティーコードと結合された場合、以前のパリティーコードからＤ１の寄与分を除去した値である。
【００３２】
一旦、部分パリティーコードが計算されると、パリティーコードは、以下の通りにアップデートされることができる。
Ｐ’＝Ｐ＋ＤｅｌｔａＤ１
ｅｘｃｌｕｓｉｖｅ  ＯＲ関数の逆は、ｅｘｃｌｕｓｉｖｅ  ＯＲ関数である。
その結果、パリティーコードが、ビット間のｅｘｃｌｕｓｉｖｅ  ＯＲを使用して計算されると、ｆＩｎｖｅｒｓｅ（Ｄ１）＝Ｄ１である。
ＤｅｌｔａＤ１＝Ｄ１＋Ｄ１’
【００３３】
書き込み動作が遂行される場合、変更されたデータを保存するイーサネットＳＳＤは、  （ｉ）他のドライブが変更されたデータブロックに対するパリティーデータをアップデートすべき責任がある場合、（部分パリティーコードを含む）パリティーメッセージを生成し、これを他のドライブに伝送するか、
（ｉｉ）その自体がパリティーデータをアップデートすべき責任がある場合、パリティーデータをアップデートすることができる。
【００３４】
図４は、本発明の実施形態によるパリティーメッセージの概略を示す図である。
図４を参照すると、図４はパリティーメッセージの例示であり、パリティーメッセージは、仮想ストライプ識別子（Ｖｉｒｔｕａｌ  ｓｔｒｉｐｅ  ｉｄｅｎｔｉｆｉｅｒ、ＶＳＩＤ）（即ち、ストライプ番号）を含むヘッダー、及び部分パリティーコードを含む。
イーサネットＳＳＤは、ＰＣＩｅスイッチ又はイーサネットスイッチ（図１）を介する私設（プライベート）通信チャンネルを通じてパリティーメッセージを互いに伝送することができる。
【００３５】
ベースボード管理コントローラは、スタート時、ストレージシステムのイーサネットＳＳＤのそれぞれを初期化することができる。
下記に示す表１は、ベースボード管理コントローラが、初期化中にイーサネットＳＳＤのそれぞれに書き込むことができる保護構成テーブルのフォーマットを示す。
表１は、それぞれのフィールドが、提示可能な多様な値を示し、さらに下記のテーブル（表）は、ベースボード管理コントローラがテーブルにライトすることができる値の例示を示す。
【表１】
2019036301.tif 000003
【００３６】
図５は、本発明の実施形態による初期化工程を説明するためのフローチャートである。
図５を参照すると、スタート時、ベースボード管理コントローラ（ＢＭＣ）は、ステップＳ５１０において、イーサネットＳＳＤシャーシ１１０の全てのイーサネットＳＳＤをスキャンし、ステップＳ５２０において、データ保護モードを選択し、ステップＳ５３０において保護モードのためのパラメーターを決定し、ステップＳ５４０において、イーサネットＳＳＤのそれぞれにスロット識別子ＩＤ（又はスロット番号）のそれぞれをプログラムし、ステップＳ５５０においてイーサネットＳＳＤのそれぞれに保護パラメーターをプログラムし、ステップＳ５６０において、イーサネットＳＳＤのそれぞれにアドレス情報をプログラムする。
アドレス情報は、イーサネットＳＳＤのイーサネットＳＳＤアドレステーブルに保存することができ、下記に示す表２の情報を（空いているセルのそれぞれに挿入される適切なアドレスとともに）含むことができる。
【表２】
2019036301.tif 000004
【００３７】
図６は、本発明の実施形態によるデータライト動作を説明するためのフローチャートである。
データ書き込み動作は、図６のフローチャートに示すように進行する。
ステップＳ６０５において、コマンド実行を始め、ステップＳ６１０においてイーサネットＳＳＤはホストライトデータを引き出し、ステップＳ６１５においてイーサネットＳＳＤは、ホストライトデータを持続させる。
ここで、使用するデータを「持続させる」というのは、非揮発性メモリ又はパワー損失が保護されるメモリにデータを保存することを意味する。
【００３８】
以降、イーサネットＳＳＤは、ステップＳ６２０において、同一のネームスペース論理ブロックアドレスから以前のデータを引き出し、必要であれば、ステップＳ６２５において、イーサネットＳＳＤは以前のデータに逆関数を遂行し、ステップＳ６３０において、イーサネットＳＳＤは部分パリティーコード（又は、複数のコード）を計算（又は演算）するのに使用されるパラメーターを保護構成テーブルから検索し、ステップＳ６３５において、イーサネットＳＳＤは部分パリティーコード（又は、複数のコード）を計算し、ステップＳ６４０において、イーサネットＳＳＤはＤ／ＰイーサネットＳＳＤのスロット識別子を計算する。
【００３９】
以降、ステップＳ６４５において、イーサネットＳＳＤは、それ自体がＤ／ＰイーサネットＳＳＤであるかどうかを判断する。
そうであれば、ステップＳ６５０において、イーサネットＳＳＤはパリティーブロックをアップデートし、ステップＳ６５５においてイーサネットＳＳＤはパリティーブロックを持続させ、ステップＳ６６０においてイーサネットＳＳＤはホストにライトコマンド完了を伝送する。
【００４０】
ライトコマンドを実行するイーサネットＳＳＤが、それ自体がＤ／ＰイーサネットＳＳＤではなければ、以降、ステップＳ６６５においてイーサネットＳＳＤは部分パリティーメッセージを生成し、ステップＳ６７０において、イーサネットＳＳＤは部分パリティーメッセージをＤ／ＰイーサネットＳＳＤに伝送し、ステップＳ６７５においてイーサネットＳＳＤはＤ／ＰイーサネットＳＳＤからの確認を待ち、ステップＳ６６０において、イーサネットＳＳＤはホストにライトコマンド完了を伝送する。
【００４１】
このような実施形態において、以前のパリティーコードの引き出しの効率性は、Ｄ／ＰイーサネットＳＳＤが、キャッシュでパリティーコードの一部を維持することができるので、向上することができる。
固定パリティーの場合、Ｄ／ＰイーサネットＳＳＤは、アップデートされたパリティーブロックを、保存のためのイーサネットＳＳＤのパリティープレーンに伝送することができる。
固定パリティーに対する一部の実施形態において、それぞれのイーサネットＳＳＤが遂行するデータ書き込み動作のためのＤ／ＰイーサネットＳＳＤの機能を遂行することができる。（即ち、仮想ストライプの管理する専用Ｄ／ＰイーサネットＳＳＤがないことができる。）
このような実施形態において、データ書き込み動作を遂行するイーサネットＳＳＤは、部分パリティーコードを計算し、イーサネットＳＳＤのパリティープレーンから以前のパリティーブロックを引き出し、パリティーブロックをアップデートし、アップデートされたパリティーブロックを保存するためのイーサネットＳＳＤのパリティープレーンに伝送する。
【００４２】
図７は、本発明の実施形態によるパリティーアップデート動作を説明するためのフローチャートである。
パリティーアップデート動作は、Ｄ／ＰイーサネットＳＳＤによって遂行することができ、図７に示すように進行する。
ステップＳ７１０において、Ｄ／ＰイーサネットＳＳＤは、受信したパリティーメッセージから仮想ストライプ識別子を抽出する。
以降、ステップＳ７３０において、Ｄ／ＰイーサネットＳＳＤはパリティーブロックを引き出し、ステップＳ７４０において、Ｄ／ＰイーサネットＳＳＤはパリティーブロックをアップデートし、ステップＳ７５０において、Ｄ／ＰイーサネットＳＳＤはアップデートされたパリティーブロックを持続させ、ステップＳ７６０において、Ｄ／ＰイーサネットＳＳＤは確認メッセージをライトコマンドを実行するイーサネットＳＳＤに伝送する。
【００４３】
図８は、本発明の実施形態によるＲＡＩＤ４に対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
一部の実施形態において、ＲＡＩＤ４は、図８に示すように具現することができる。
ＲＡＩＤ４は、示すように固定パリティーを使用することができる。
下記に示す表３は、ＲＡＩＤ４を具現するためのベースボード管理コントローラによって、イーサネットＳＳＤそれぞれの保護構成テーブルにプログラムされることができるを示す。
なお、表３は、イーサネットＳＳＤアドレステーブルにプログラムすることができる例示的な値を示す。
【表３】
2019036301.tif 000005
【００４４】
図９は、本発明の実施形態によるＲＡＩＤ５に対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
一部の実施形態において、ＲＡＩＤ５は、図９に示すように具現することができる。
ＲＡＩＤ５は、示すように循環パリティーを使用することができる。
下記に示す表４は、ＲＡＩＤ５を具現するためのベースボード管理コントローラによって、イーサネットＳＳＤそれぞれの保護構成テーブルにプログラムすることができる値を示す。
なお、表４は、ストレージシステムに他のイーサネットＳＳＤのイーサネットアドレスを提供するイーサネットＳＳＤアドレステーブルにプログラムすることができる例示的な値を示す。
イーサネットＳＳＤのそれぞれは、例えば、ライトコマンドを実行する場合にアップデートされるパリティーコードを準備する場合、このような情報を使用することができる。
【表４】
2019036301.tif 000006
【００４５】
図１０は、本発明の実施形態によるＲＡＩＤ６に対するデータ及びパリティーのレイアウトダイヤグラムを示す図である。
一部の実施形態において、ＲＡＩＤ６は、図１０に示すように具現することができる。
ＲＡＩＤ６は、示すように、ストライプ当たり二つのパリティーブロックとともに、そして代替されたデータブロックに使用される二つのスロットとともに、循環パリティーを使用することができる。
下記に示す表５は、ＲＡＩＤ６を具現するためのベースボード管理コントローラによって、イーサネットＳＳＤそれぞれの保護構成テーブルにプログラムされることができる値を示す。
なお、表５は、ストレージシステムに他のイーサネットＳＳＤのイーサネットアドレスを提供するイーサネットＳＳＤアドレステーブルにプログラムすることができる例示的な値を示す。
【表５】
2019036301.tif 000007
【００４６】
図１１は、本発明の実施形態による消去コードデータ保護に対するデータ及びパリティーレイアウトダイヤグラムを示す図である。
一部の実施形態において、消去コードデータ保護は、図１１に示すように具現することができる。
消去コードデータ保護は、示すように、ｔ個の体系的な入力ユニット及びストライプ当たり（ｎ−ｔ）個のパリティーコードブロックと共に、固定パリティーを使用することができる。
下記に示す表６は、消去コードデータ保護を具現するためのベースボード管理コントローラによって、イーサネットＳＳＤそれぞれの保護構成テーブルにプログラムすることができる値を示す。
なお、表６は、ストレージシステムに他のイーサネットＳＳＤのイーサネットアドレスを提供するイーサネットＳＳＤアドレステーブルにプログラムすることができる例示的な値を示す。
【表６】
2019036301.tif 000008
【００４７】
図１２は、本発明の実施形態による故障復旧動作を説明するためのフローチャートであり、一実施形態において、分離障害から復旧するための方法を説明するためのフローチャートである。
ここで使用する「分離障害（ｄｉｓｃｒｅｔｅ  ｆａｉｌｕｒｅ）」は、イーサネットＳＳＤが動作を継続することを可能にするが、イーサネットＳＳＤが記憶するデータの一部を正常に読み取ることを妨げるイーサネットＳＳＤの故障（障害）である。
分離エラーは、フラッシュメモリページ又はブロックの故障から誘発されるか、又はフラッシュメモリによって採択され得るＬＤＰＣ（ｌｏｗ−ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ−ｃｈｅｃｋ）エラー訂正コードによって訂正できないメモリエラーから誘発され得る。
【００４８】
ステップＳ１２０５において、イーサネットＳＳＤは故障（障害）を検出し、ステップＳ１２１０において、イーサネットＳＳＤは損失データの仮想ストライプＩＤを決定する。
以降、ステップＳ１２１５において、イーサネットＳＳＤは、保護構成テーブルからデータの復元のためのパラメーターを検索し、ステップＳ１２２０において、イーサネットＳＳＤは、損失データを復旧するのに要求されるイーサネットＳＳＤのセットを決定する。
以降、ステップＳ１２２５、Ｓ１２３０、及びＳ１２３５において、イーサネットＳＳＤは、損失データを復旧するのに要求されるデータを全て検索するまで、このようなイーサネットＳＳＤからデータを反復的に要請する。
以降、ステップＳ１２４０において、イーサネットＳＳＤは損失データブロックを計算し、ステップＳ１２４５において、イーサネットＳＳＤは、損失データブロックを持続させ、ステップＳ１２５０において、適切であれば、イーサネットＳＳＤは、損失データをホストに伝送する。
【００４９】
他の実施形態において、エラーの復旧は、ベースボード管理コントローラで代わりに遂行される。
このような実施形態において、故障（障害）によって影響を受けるイーサネットＳＳＤはベースボード管理コントローラに通知を提供し、ベースボード管理コントローラは仮想ストライプから損失データを復旧するのに要求されるデータを要請し、損失データを計算し、影響を受けたイーサネットＳＳＤに復旧されたデータを再び書き込む。
【００５０】
図１３は、発明の実施形態による故障復旧動作を説明するためのフローチャートである。
ディスク故障（障害）は、イーサネットＳＳＤで中央ハードウェア故障（障害）によって誘発されるか、又はイーサネットＳＳＤの突然の除去によって誘発され得る。
一部の実施形態において、復旧は、図１３に示すように、ベースボード管理コントローラによって遂行することができる。
イーサネットＳＳＤのそれぞれは、「プレゼンスピン（ｐｒｅｓｅｎｃｅ  ｐｉｎ）」があり、イーサネットＳＳＤの除去は、「プレゼンスピン」との接触損失を誘発し得るので、ベースボード管理コントローラにイーサネットＳＳＤの除去を警告する可能性があります。
【００５１】
ステップＳ１３０５において、ベースボード管理コントローラは、故障（障害）（又はプルアウト（ｐｕｌｌ  ｏｕｔ）されたイベント）を検出し、ステップＳ１３１０において、ベースボード管理コントローラは、損失データを復旧するのに要求されるイーサネットＳＳＤのセットを決定する。
以降、ステップＳ１３１５において、ベースボード管理コントローラは、保護構成テーブルからデータの復元のためのパラメーターを検索し、ステップＳ１３２０において、ベースボード管理コントローラは、損失データを再建するように余分（ｓｐａｒｅ）のイーサネットＳＳＤを識別する。
そして、ステップＳ１３２２において、ベースボード管理コントローラは、全ての仮想ストライプが遂行された否かを判断する。
【００５２】
ステップＳ１３２２において、全ての仮想ストライプが遂行されていないと判断された場合、
以降、ベースボード管理コントローラは、二つの内包されたループを含む工程を使用してデータを再建する。
ステップＳ１３２５、Ｓ１３２７、Ｓ１３３０、及びＳ１３３５を含む外部ループは、全ての仮想ストライプが復旧されるまで（即ち、仮想ストライプそれぞれの損失ブロックが余分のイーサネットＳＳＤで復旧されるまで）実行され、ステップＳ１３４０及びＳ１３４５を含む内部ループは、このようなデータを保存するイーサネットＳＳＤのそれぞれから再建のために要求されるデータを読み出すように実行される。
一旦、外部ループが終了すると（そして、損失データが再建されると）（ステップＳ１３３５でステップＳ１３２２に戻り、全ての仮想ストライプが遂行された判断された場合）、ベースボード管理コントローラは、ステップＳ１３５０において、余分のイーサネットＳＳＤを保護グループに追加し、ステップＳ１３５５において、新たに追加されたイーサネットＳＳＤをホストに知れるようにする。
【００５３】
復旧動作中に、必要に応じて要請されたデータを復元することによって、ホストからのリードコマンドに応答し、そして
（ｉ）損失データが復元される余分のイーサネットＳＳＤにデータを書き込むか、
（ｉｉ）ライトコマンドにおけるデータが、進行中のデータ復旧工程によって復元される他のイーサネットＳＳＤにデータ及び／又はパリティーコードを書き込むようにして、
ホストからのライトコマンドに応答して、ベースボード管理コントローラは、イーサネットスイッチをリプログラム（ｒｅｐｒｏｇｒａｍ）するとができ、故障したイーサネットＳＳＤのためのプロキシとして作動することができる。
【００５４】
一部の実施形態において、ベースボード管理コントローラによる復旧は、余分のイーサネットＳＳＤに渡される。
ベースボード管理コントローラは、故障したものの代わりに余分のイーサネットＳＳＤを代替し、余分のイーサネットＳＳＤにディスク復旧を渡す。
新しいイーサネットＳＳＤは、バックグラウンドで、復旧されたデータに対する全ての仮想ストライプを構築し、その仮想ストライプに対するすべてのＩ／Ｏ動作を処理する。
【００５５】
上述した観点から、分散消去コーディングのためのシステム及び方法を開示した。
一部の実施形態において、複数のストレージ装置は、データをストレージ装置に分散させ、データの保護を提供する介在（ｉｎｔｅｒｖｅｎｉｎｇ）中央コントローラ無しで、直接一つ以上のホストコンピュータと接続され得る。
パリティーコードは、一つ以上の専用ストレージ装置に保存されたり、複数のストレージ装置に分散されたりする。
ストーレジ装置がライトコマンドを受信した場合、ストレージ装置は部分パリティーコードを計算し、書き込まれるデータに対するパリティーコードが他のストレージ装置にあれば、ストレージ装置は、部分パリティーコードを他のストレージ装置に伝送し、このような部分パリティーコードを使用してパリティーコードをアップデートする。
【００５６】
ここで説明した一部の実施形態では、イーサネットＳＳＤを永久保存装置として採択したが、本発明の他の実施形態がハードディスクドライブのような他のストレージ装置と行われることができるのが理解されるはずである。
仮想ストライプが、一部の実施形態において保護グループでの複数のイーサネットＳＳＤにわたったブロックのセットで構成されたものと説明したが、ブロックそれぞれの論理ブロックアドレスが、同一の仮想ストライプは、もっと一般的に保護グループにわたって分散され、データの保護のための重複データ（例えば、パリティーコード）を含む、データのセットであり得る。
【００５７】
「プロセッシング回路」という用語は、ここで任意のハードウェア、ファームウェア、及びソフトウェアの組み合わせを意味するようにここに使用され、データ又はデジタル信号を処理するために採択した。
プロセッシング回路ハードウェアは、例えば、ＡＳＩＣｓ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）、汎用又は特殊な目的のＣＰＵｓ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔｓ、ＤＰＳｓ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒｓ，  ＧＰＵｓ（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔｓ）、及びＦＰＧＡｓ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）のようなプログラマブル論理装置を含むことができる。
プロセッシング回路において、ここで使用するそれぞれの機能は、このような機能を遂行するように構成された、即ち、ハードワイヤードされたハードウェア又は非一時的なストレージ媒体に保存された命令語を実行するように構成されたＣＰＵのような、もっと汎用的なハードウェアによって遂行され得る。
プロセッシング回路は、単一のＰＣＢ（ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｂｏａｒｄ）上に製作されたり、複数の相互に接続されたＰＣＢにわたって分散されたりすることができる。
プロセシング回路は、他のプロセッシング回路を含むことができる。
例えば、プロセッシング回路は、ＰＣＢに相互に接続されるＦＰＧＡ及びＣＰＵのような、二つのプロセッシング回路を含むことができる。
【００５８】
分散消去コーディングのためのシステム及び方法をここで具体的に説明したが、様々な変更及び変化が当業者にとって明白である。
したがって、本発明の原理によって構成された分散消去コーディングのためのシステム及び方法は、ここで具体的に説明されたものとは別に実施することができる。なお、本発明は、以下の請求項及びこれの均等物として定義される。
【産業上の利用可能性】
【００５９】
本発明に係るデータ保存方法及びそのシステムは、例えば、ボトルネック現像による効率性の低下を防止する分散保存システムを有する電子機器全般に好適に使用され得る。
【符号の説明】
【００６０】
１１０    イーサネットＳＳＤシャーシ
１２０    アプリケーション
１４０    ドライバインスタンス（インスタント化されたＮＶＭｅ−ｏｆ（Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ  ｏｖｅｒ  Ｆａｂｒｉｃｓ）ドライバ
２１０    スロット
２２０    ブロック
【図１】
2019036301.tif 000009
【図２ａ】
2019036301.tif 000010
【図２ｂ】
2019036301.tif 000011
【図３】
2019036301.tif 000012
【図４】
2019036301.tif 000013
【図５】
2019036301.tif 000014
【図６】
2019036301.tif 000015
【図７】
2019036301.tif 000016
【図８】
2019036301.tif 000017
【図９】
2019036301.tif 000018
【図１０】
2019036301.tif 000019
【図１１】
2019036301.tif 000020
【図１２】
2019036301.tif 000021
【図１３】
2019036301.tif 000022