Snapshot リザーブの仕組み
環境
Data ONTAP 8 7-Mode
回答
Snapshot リザーブの仕組み
複数の同一スナップショットによるディスク消費量
例: Snapshot には、 Filer が Snapshot を作成してから変更されていない 1 MB のファイルが含まれています。そのファイルがアクティブなファイルシステムから削除されると、 Snapshot は 1MB のディスクスペースを消費します。
同じバージョンの 1-MB ファイルは、 hourly.0 、 hourly.1 、 hourly.2 の複数の異なる Snapshot によって参照される場合があります。これらの Snapshot に 1 MB のファイルが含まれていて、 Filer がそれらの Snapshot を作成してから変更されていない場合、 3 つの Snapshot すべてにファイルが含まれていても、 Snapshot によって消費されるディスク・スペースは 1 MB だけです。
df コマンドによる Snapshot の表示方法
Snapshot ディスク使用率に関する情報を提供df
するために、 Filer 上でコマンドを実行すると、 Snapshot はアクティブ・ファイルシステムとは異なるパーティションとして処理されます。df
次に、コマンドの例を示します。
toaster> df
Filesystem kbytes used avail capacity
/ 3000000 2000000 1000000 65%
/.snapshot 1000000 500000 500000 50%
注意:この例の数値は、この例をわかりやすくするために切り捨てられています。
Filer のディスク・スペースは 4 GB で、 Snapshot 用に 1 GB (または 25% )が予約されています( Snapshot 用のスペースを予約する方法については、後で詳しく説明します)。アクティブなファイルシステムには 3GB 、ファイルシステムには 2GB が使用されています。/.snapshot
この行では、 Snapshot にのみ存在するデータがカウントされることを理解しておくことが重要です。アクティブ・ファイルシステムにも存在するデータは、いずれにしてもディスクに保存する必要があるため、 Snapshot にスペースを割り当てた場合、誤解を招くおそれがあります。この例では、 Snapshot 用にリザーブされている 1GB の半分が実際に使用されています。
Snapshot リザーブの動作
Snapshot がディスク・スペースを消費する方法を考えると、 Snapshot 用にスペースを予約する理由は何ですか。必要なスペースを使用するだけではないのはなぜでしょうか。その答えを理解するには、ディスクがいっぱいになったときに Filer が Snapshot を作成した場合の動作を考慮してください。アクティブなファイルシステムからファイルを削除しても、空きスペースは作成されません。アクティブなファイルシステム内のすべてのファイルが、新しく作成されたスナップショットによって参照されるためです。新しいファイルを作成する前に、 Filer は Snapshot を削除する必要があります。
デフォルトでは、 Snapshot リザーブはディスク・スペースの 20% です。Snapshot リザーブの容量を調整 [1]する方法については、「 Snapshot リザーブの変更」を参照してください。
アクティブなファイルシステムがいっぱいで、 Snapshot リザーブにスペースが残っている場合に、 Filer が Snapshot を作成した場合の処理を考慮してください。df の出力は次のように表示されます。
Filesystem kbytes used avail capacity
/ 3000000 3000000 0 100%
/.snapshot 1000000 500000 500000 50%
100MB のファイルを削除すると、これらのファイルに属するデータはアクティブなファイルシステムの一部ではなくなり、代わりにスペースが Snapshot にチャージされます。新しい DF 出力は次のとおりです。
Filesystem kbytes used avail capacity
/ 3000000 2900000 100000 97%
/.snapshot 1000000 600000 400000 60%
Filer は、アクティブ・ファイルシステムから Snapshot リザーブに 100 MB のスペースを再割り当てします。Snapshot 用のリザーブ・スペースがあったため、アクティブ・ファイルシステムからファイルを削除すると、新しいファイル用のスペースが解放されました。
Snapshot リザーブであっても、 Snapshot のディスク・スペース消費を管理する作業は重要です。Snapshot が、予約されているディスク・スペースよりも大きいディスク・スペースを消費しないようにする方法はありません。アクティブなファイルシステム内のすべてのファイルが削除された場合のファイルシステムの例を考えてみましょう。削除前の df の出力は次のとおりです。
Filesystem kbytes used avail capacity
/ 3000000 3000000 0 100%
/.snapshot 1000000 500000 500000 50%
ファイルシステム内のすべてのデータを削除すると、 df コマンドによって次の情報が生成されます。
Filesystem kbytes used avail capacity
/ 3000000 2500000 500000 83%
/.snapshot 1000000 3500000 0 350%
アクティブなファイルシステムの 3GB 全体が Snapshot に移動し、以前は Snapshot にあった 500MB も移動して、合計 3.5 GB の Snapshot データが作成されました。これは、 Snapshot 用に予約されているスペースよりも 2.5 GB 多い容量です。アクティブファイルシステムはそのスペースを使用できないため、実際にファイルが存在しない場合でも、アクティブファイルシステムで使用されているスペースが表示されます。
Snapshot が Snapshot リザーブの 100% 以上を消費すると、システムがフルになる危険性があります。この場合、十分な数のスナップショットを削除した後でのみファイルを作成できます。たとえば、上記の例でアクティブファイルシステムに 500MB のデータが追加された場合df
、コマンドは次の情報を生成します。
Filesystem kbytes used avail capacity
/ 3000000 3000000 0 100%
/.snapshot 1000000 3500000 0 350%
Filer が新しい Snapshot を作成すると、システム内のすべてのブロックが一部の Snapshot によって参照されるため、アクティブ・ファイルシステムから削除したファイルの数に関係なく、追加するスペースは確保されません。この状況から回復する唯一の方法は、十分な数のスナップショットを削除してディスク領域を解放することです。snap list コマンドを使用して削除する Snapshot を判別する方法については、「 Snapshot 統計の表示」を参照してください。
複数の同一スナップショットによるディスク消費量
追加情報
N/A