コマンドによるバックアップの過去の世代の削除手順 1/2

こんにちは、Windows プラットフォーム サポートの加藤です。

Windows Server バックアップを利用する環境では、ディスク容量確保のために、シャドウ コピーの削除が必要となる場合があります。

バックアップの世代管理にはシャドウ コピーが使われているため、標準ではバックアップ取得先にシャドウ コピーが作成されます。シャドウ コピーのデータ量はボリュームの変更量に依存するため、場合によっては、バックアップ取得先のディスク使用量を逼迫させる要因になります。

今回は、コマンドによる、Windows Server バックアップの世代管理に用いられるシャドウ コピーの削除手順についてご紹介いたします。

※ ただし、シャドウ コピーは 1 世代ごとに差分データを管理しているため、ディスク容量確保のためには。最も古い世代から削除対象の世代までのデータを削除する必要がございます。
 

Windows Server バックアップのシャドウ コピーとは

Windows Server バックアップでは、常にバックアップ先に最新のバックアップ データが上書き保存されていくため、古いバージョンのバックアップをシャドウ コピーによって管理しています。
シャドウ コピーには、用途に応じていくつかの種類があり、Windows Server バックアップ実行時 (wbadmin コマンドを用いたバックアップ実行時) に、バックアップ先に自動で作成されるシャドウ コピーは、DataVolumeRollback 属性です。

この属性は、共有フォルダーのシャドウ コピーを削除する際に用いる vssadmin delete shadows では削除できないシャドウ コピーであり、diskshadow コマンドや wbadmin delete backup コマンドを用いて削除する必要があります。シャドウ コピー自体は vssadmin list shadows コマンドから確認することができます。
 


[タイトル] vssadmin コマンドでシャドウ コピーが削除できない場合の対処方法について
[URL] https://blogs.technet.microsoft.com/askcorejp/2013/11/28/vssadmin-2096/

[タイトル] Windows Server バックアップにおける容量と世代管理について
[URL] https://blogs.technet.microsoft.com/askcorejp/2016/05/27/windows_server_backup_space_management/


 

Windows Server バックアップのシャドウ コピーの削除方法

上記の通り、バックアップのシャドウ コピーは、diskshadow コマンドや wbadmin delete backup コマンドを用いて削除を行います。
 

■ それぞれのコマンドによる削除の特徴

diskshadow コマンドと wbadmin delete backup コマンドの特徴、および、メリット・デメリットを、下記にまとめます。
 

diskshadow コマンド
[特徴] シャドウ コピーの種類にかかわらず削除を行うことができる
[メリット] シャドウ コピーの一括削除を行う際には便利
[デメリット] バックアップのリストアを行う際のカタログ データは削除されないため、
リストアできる世代の一覧に削除した世代が残り続ける。
(削除した世代は、リストアに失敗する)
 

wbadmin delete backup コマンド
[特徴] バックアップの世代を削除することができる
[メリット] シャドウ コピーとカタログ データの両方を削除することができる
[デメリット] Windows Server 2012 以降の OS から使用することができる
既知の不具合がある。
 

なお、各 OS 上で各コマンドを実行した際の動作について、下記にまとめます。

OS diskshadow コマンド wbadmin delete backup コマンド
Windows Server 2008 R2
  • カタログは消えない→ 削除した世代はリストアできない
  • シャドウ コピーは消える
  • コマンドがない
Windows Server 2012 / Windows Server 2012 R2
  • カタログは消えない→ 削除した世代はリストアできない
  • シャドウ コピーは消える
  • カタログは消える
  • シャドウ コピーは消える
Windows Server 2016
  • カタログは消えない→ 削除した世代はリストアできない
  • シャドウ コピーは消える
  • カタログは消える
  • シャドウ コピーは消える

 

■ diskshadow コマンドによる削除について

diskshadow ユーティリティはシャドウコピーを作成するボリューム シャドウ コピー サービス (VSS) によって提供されている機能をコマンドラインから操作するためのツールです。

diskshadow ユーティリティの delete shadows コマンドでは、共有フォルダーのシャドウ コピーや DataVolumeRollback 属性のシャドウ コピーを含めた、属性に関係なくすべてのシャドウ コピーを削除することが可能です。
具体的には、保管しているすべてのシャドウ コピーを削除したり、最も古い世代のシャドウ コピーのみを削除したり、特定の世代を指定して削除を行うことができます。

ただし、このコマンドによって DataVolumeRollback 属性のシャドウ コピーの削除を行った場合、Windows Server バックアップにて作成されるバックアップのカタログからは削除されず、"回復" を行うバックアップのバージョン一覧に表示された状態となります。
これにより、すでに存在しないシャドウ コピーのバックアップが選択可能となってしまい、リストアを行おうとした場合は失敗します。

また、最も古い世代のシャドウ コピー以外を削除した場合に関しては、削除した世代以前のシャドウ コピーからのデータのリストアに、削除対象のシャドウ コピーのデータが必要となるため、実データは残った状態となりますが、削除処理を行ったシャドウ コピーに関する情報と実データの紐づきは削除されるため、リストアはできません。
そのため、空き容量確保の目的で最も古いシャドウコピー以外を削除することは、有用ではございませんのでご注意ください。
 

------------------------------------------------
1. 管理者権限にてコマンド プロンプトを起動します。
2. diskshadow と入力し diskshadow ユーティリティを起動します。
3. delete shadows SET コマンドを利用します。

実行例) すべてのシャドウ コピーを削除
delete shadows all

実行例) <セット ID> パラメーターで指定したシャドウ コピー セット内のシャドウ コピーを削除
delete shadows set <セット ID>

実行例) <シャドウ ID> パラメーターで指定したシャドウ コピーを削除
delete shadows id <シャドウ ID>

Delete shadow /? にてオプションの確認が可能です。
<セット ID> や <シャドウ ID> に指定する値は list shadows all コマンドにて確認できます。
------------------------------------------------
 


[タイトル] diskshadow
[URL] /en-us/windows-server/administration/windows-commands/diskshadow

[タイトル] delete shadows
[URL] /en-us/windows-server/administration/windows-commands/delete-shadows


 

■ wbadmin コマンドによる削除について

wbadmin delete backup コマンドは、1 つ以上の Wondows Server バックアップを削除するために利用するコマンドです。
Windows Server 2012 から wbadmin コマンドに delete backup コマンドが追加され、バックアップの世代管理用のシャドウ コピーと、Windows Server バックアップのカタログ情報を同時に削除することが可能になりました。


[タイトル] wbadmin
[URL] /en-us/windows-server/administration/windows-commands/wbadmin


 

Windows Server 2016 のバックアップを取得する際に、wbadmin delete backup
コマンドを用いることで、世代管理を行うことが可能でございます。
弊社検証環境でも世代管理が行えることを確認いたしました。
 

------------------------------------------------
該当コマンド: wbadmin delete backup -<オプション>

実行例) 新しいものから 3 つのバックアップを保持して残りを削除
wbadmin delete backup -keepVersions:3

実行例) 指定したバージョンのバックアップを削除
wbadmin delete backup -version:03/31/2006-10:00

実行例) F ドライブの最も古いバックアップを削除
wbadmin delete backup -backupTarget:f: -deleteOldest
------------------------------------------------
 

ただし、このコマンドの実行において、コマンドの後に指定するオプションの 組み合わせによって、既知の不具合が発生することが報告されています。
 

■ wbadmin delete backup コマンド実行時の注意事項

wbadmin delete backup コマンド実行時に、オプション keepversions:1 と -backupTarget を指定してコマンドを実行する場合、最新世代のバックアップ以外の 古い世代のバックアップをすべて削除することが可能ですが、これにより、 バックアップデータを格納しているフォルダー自体が消失するという既知の不具合があります。

加えて、最新世代のバックアップのデータを保持しているシャドウ コピーが何らかの原因で削除されてしまった場合、すべてのバックアップのデータが消失し、障害時にリストアができなくなる可能性があります。

後述いたしますが、シャドウ コピーは差分を1世代ごとに管理しているため、特定のタイミングに復元する場合、復元したいタイミングのシャドウコピーに至る前のすべてのシャドウ コピーが必要になります。
そのため、ディスク上の最新世代のシャドウ コピーのデータが削除されてしまうと、それ以前のシャドウ コピーの復元が不可能になります。

この不具合に対する対処方法としては、オプション -keepversions と -backupTarget を指定してコマンドを実行する場合、-keepversions の値を 2 以上に設定する必要があります。

詳細な情報に関しましては、下記の公開情報をご参照ください。
 


[タイトル] wbadmin delete backup コマンドでバックアップ フォルダーが消える
[URL] https://blogs.technet.microsoft.com/askcorejp/2016/10/26/wbadmin-delete-backup-%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%a7%e3%83%90%e3%83%83%e3%82%af%e3%82%a2%e3%83%83%e3%83%97-%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%83%bc%e3%81%8c%e6%b6%88%e3%81%88/
[内容] wbadmin delete backup コマンド実行に関する既知の不具合について


 

なお、Windows Server 2008 R2 および Windows Server 2012 以降の OS における、それぞれのコマンド実行時の挙動に関しては、弊社環境にて検証を行った結果を次回のブログにてご紹介いたします。
[続編] コマンドによるバックアップの過去の世代の削除手順 2/2

いかがでしたでしょうか。
本ブログが少しでも皆様のお役に立てば幸いです。