Data Domain Operating SystemにはData Domain File Systemの容量を拡張した後にストレージ間のデータをプロアクティブに再バランシングする機能がない

Summary: この記事では、Data Domain Operating System (DDOS)内には、Data Domain Restorer (DDR)上でData Domain File System (DDFS)を拡張した後にストレージ間でデータを再バランシングできる機能が組み込まれていないことについて説明します。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

多くのストレージ アレイと同様に、Data Domain Restorer (DDR)のほとんどのモデルの容量は、外部ストレージ エンクロージャ シェルフ(ES30、DS60)をシステムに追加して、Data Domain File System (DDFS)をこれらのエンクロージャ シェルフに拡張することによって増やすことができます。これを実行すると、次のようになります。
  • 新しいエンクロージャ シェルフが物理的に接続されます(ケーブル接続、電源オン)。
  • Data Domain Operating System (DDOS)がストレージを再スキャンし、新しいエンクロージャ シェルフの存在を特定します。
  • これらの新しいエンクロージャ シェルフは、DDR内のストレージ階層(アクティブ階層または特定のアーカイブ ユニット)に追加されます。
  • この階層は、DDFSを停止することなくオンラインで拡張できます。
  • このストレージ階層に書き込まれた新しいデータは、既存のシェルフと新しいシェルフに書き込まれます。
  • ただし、既存のシェルフ上のデータは、新しいエンクロージャ シェルフ間で再バランシングされません。
さらに詳しく説明すると、次のようになります。
  • DDOS内のデータ ストレージのユニットは、4.5 Mbの「コンテナー」です。
  • それらの作成時に、4.5 Mbコンテナーは、対応する階層アーカイブ ユニット内のすべてのエンクロージャ シェルフにラウンド ロビン方式で書き込まれます。
  • 階層アーカイブ ユニットにエンクロージャ シェルフが追加されると、DDFSは既存のエンクロージャに加えて、これらのエンクロージャに対して新しい4.5 Mbコンテナーの書き込みを開始します(ラウンド ロビン方式でコンテナーを書き込む際に、新しいエンクロージャも含まれます)。
  • ただし、DDOSは、階層内の既存のコンテナーを既存のシェルフ エンクロージャから新しいシェルフ エンクロージャに移行するための特定の試行(または特定の機能の提供)を行いません。
つまり、シェルフ エンクロージャを追加すると、接続されたストレージ間でデータが「不均衡」になる可能性があります。例:
  • DDRの初期状態では、アクティブ階層に単一のエンクロージャ(90%フル)があります。
  • 追加のエンクロージャがアクティブ階層に追加されると、DDFSがこのエンクロージャに拡張されます。
  • 新しく作成された4.5 Mbコンテナーの書き込みは、既存エンクロージャと新規エンクロージャ間でラウンド ロビン方式で行われます。
  • これにより、既存のエンクロージャの空き領域が不足する一方、新しく追加されたエンクロージャはほとんど空になります。
このシナリオでは、多くのストレージ アレイで、接続されたエンクロージャ間のデータを管理者が再バランシングし、一部のデータを既存のエンクロージャから新しく追加したエンクロージャにプロアクティブに移行して、すべてのエンクロージャの使用済み容量がほぼ等しくなるようにすることができます。DDOSにはこの機能はありませんが、DDFSの設計上、時間の経過に伴ってデータの再バランシングが自然に行われるため、この機能は必要ありません。

データの再バランシングは、次の2つの操作によって実行されます。
  • ガベージ コレクションのクリーニング
  • 局所的な修復
これらの各操作と、これらによってデータの自動再バランシングがどのように行われるかについては、以下で詳しく説明します。

ガベージ コレクションのクリーニング

ガベージ コレクションのクリーニング(GC)は、DDR上で定期的に実行されるスケジュール済みアクティビティーです(デフォルトでは、アクティブ階層に対して週に1回、およびスペースの再利用が有効になっている場合は、必要に応じてアーカイブ ユニットに対して行われます)。これを実行すると、次のようになります。
  • 階層アーカイブ ユニット内のどの物理データが「ライブ」(ファイル システム内の1つ以上のファイルまたはスナップショットなどのオブジェクトによって使用されている)か、「デッド」(オブジェクトによって参照されていないため不要)であるかを識別します。
  • 階層アーカイブ ユニット内の「デッド」データの大部分を保持している4.5Mbコンテナーを特定します。
  • これらの4.5Mbコンテナーを読み取り、そこに含まれる「ライブ」データを抽出します。これは、新しく作成された4.5Mbコンテナーに「コピー転送」され、階層アーカイブ ユニット内のすべてのシェルフに書き込まれます。
  • 古い4.5 Mbコンテナーを削除すると、コンテナーに含まれるデッド データが消去され、ディスク上の基盤となる領域が再利用のために解放されます。
何らかの形式のデータに不均衡があるシステムでGCを実行する場合、ほとんどの古いデータ(ほとんどのデッド データ)が階層アーカイブ ユニット内の古いシェルフ エンクロージャに保持されることが予想されます。その結果、読み取り、コピー、転送、削除が行われるコンテナーのほとんどは、古いシェルフ エンクロージャ上にあることになります。ただし、新しく作成されたコンテナーは、階層内のすべてのシェルフ間でラウンド ロビン方式で書き込まれます。その結果、GCによって解放された領域のほとんどは古いシェルフにあり、新しく消費された領域はすべてのシェルフにまたがっています。

簡単な例を挙げると、次のとおりです。
  • DDRのアクティブ階層にシェルフが2個含まれています。最初のシェルフには4.5Mbコンテナーが10,000個、2番目のシェルフには4.5Mbコンテナーが100個含まれています(2番目のシェルフのコンテナー1個に対して、1つ目のシェルフには100個のコンテナーがあります)。
  • GCが実行され、最初のシェルフの5,000個のコンテナーからデータがコピー転送されます。
  • これらの5,000個のコンテナー内のライブ データにより、1,000個の新しい4.5 Mbコンテナーが作成されます。
  • これらの1,000個の新しい4.5 Mbコンテナーは、両方のシェルフに書き込まれます。
  • したがって、GCが完了すると、最初のシェルフには5500個の4.5 Mbコンテナーが格納され、2番目のシェルフには600個のコンテナーが格納されます(2番目のシェルフの1つのコンテナーに対して、最初のシェルフには約9個のコンテナーがあります)。
  • GCの1回の実行で、1番目と2番目のシェルフ間のコンテナーの不均衡が10分の1に減少しました。これは、後続のGCの実行中にさらに減少すると予想されます。つまり、データが時間の経過とともにシェルフ間で自然に再バランシングされることを意味します。
局所的な修復:

ファイルがDDRに書き込まれると、次の大まかな操作が実行されます。
  • ファイルは、サイズが4~12 Kbの論理チャンク(セグメントと呼ばれる)に分割されます。
  • 各セグメントは、ファイルが書き込まれている階層内のディスク上にすでに存在するかどうかチェックされます。
  • セグメントがすでに存在する場合、それは重複データであり、新しく書き込まれたファイル内のセグメントは、ディスク上の既存データへのポインターに置き換えられます。
  • セグメントが存在しない場合は、一意のデータであるため、新しい4.5 Mbコンテナーにパッケージ化され、ディスクに書き込まれます。
すべてのファイルには「局所性」という概念があります。これは、そのファイルが参照するデータのセグメントがDDR上のディスク上でどの程度シーケンシャルであるかということです。明らかに、重複排除率が高いファイル(大量の重複データを含む)は、一意のファイルよりも局所性が低くなる可能性があります。これは、データを取得すると、対応する階層アーカイブ ユニット内のコンテナー/ディスクに分散している可能性のある既存データへのポインターに置き換えられるためです。

DDR上のデータのリード パフォーマンスを改善するには、DDFS先読みアルゴリズムが最適に機能するように、ファイルの「局所性」を改善すること(ディスク上でデータが相対的にシーケンシャルであること)が必要です。また、DDFSでは、(リストアまたはレプリケーションのために)読み取られる可能性が最も高いファイルが、対象バックアップの最新コピーであると想定されることにも注意してください。その結果、特定のタイプのデータ(仮想合成など)に対して、「局所的な修復」と呼ばれるプロセスが実行され、新しく書き込まれたファイル データの局所性が「最適化」されます。「局所的な修復」を実行すると、次のようになります。
  • ファイルによって参照されているデータを調べて、ディスク上でシーケンシャルでないデータのセクション(局所性が低いことを示す)を探します。
  • このシーケンシャルでないデータをディスクから読み取り、新しく作成された4.5 Mbコンテナーにシーケンシャルに(重複データとして)再度書き込みます。
その後、重複データの古い(シーケンシャルでない)コピーは、次回のGC実行時に「デッド」として識別され、システムから削除されるようになります。結果:
  • データの不均衡があるシステムでは、ほとんどの古いシーケンシャルでないデータが、より完全に実装された古いエンクロージャ シェルフに存在することが想定されます。
  • このデータが重複データとしてシーケンシャルに再度書き込まれると、そのデータは新しい4.5 Mbコンテナーに配置され、対応する階層内のすべてのエンクロージャにラウンド ロビン方式で書き込まれます。
  • その結果、局所的な修復によって作成された「デッド」(古い重複データ)の大半は、より完全に実装された古いシェルフに格納されます。
  • GCが実行されると、「デッド」データの大部分は、より完全に実装された古いシェルフで検出され、前述のとおり削除されます(これらのシェルフの領域が解放されます)。
まとめ

結果として、局所的な修復とクリーニング(GC)機能を使用することで、DDRは時間の経過とともにシェルフ間でデータを透過的に再バランシングできます。これを行うには管理者による追加の入力操作が不要なため、他のストレージ アレイで見られるような専用のデータ再バランシング操作機能は必要ありません。したがって、再バランシングの実行速度を上げるには、次のいずれかを行う必要があります。
  • DDR上でのデータ「チャーン」率を高める
  • DDRで局所的に修復されるデータ量を増やす
これらのオプションの詳細については、契約しているサポート プロバイダーにお問い合わせの上、この記事の詳細をお知らせください。

Affected Products

Data Domain
Article Properties
Article Number: 000019150
Article Type: How To
Last Modified: 29 Jul 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.