Windowsサーバーの簡易な世代管理バックアップとして、VSSを使用して運用しているユーザーは意外と多いのではないでしょうか?
「シャドーコピーは厳密にはバックアップではない」ということだけちゃんと認識していれば運用にとても便利な機能と言えます
VSSとは、”ボリューム・シャドウ・コピー・サービス”の略です
以下の説明では、「シャドウコピー=スナップショットデータ」と捉えてください
レジュメ
シャドウコピー(VSSデータ)を自動で古いものから削除する方法。
結論。Windows標準コマンドで最も古いスナップショットを削除出来るのでタスクを組めば自動で削除可能
結論から言ってしまうと
コマンドで最も古いスナップショットを削除出来るのでタスクを組めば自動で削除可能です!
vssadmin Delete Shadows /For=E: /Oldest /Quiet
上記のように、コマンドを実行すると、最も古いシャドウコピーが一つ削除されます。
- /forオプション:ドライブ指定
- /Oldestオプション:ボリュームの最も古いシャドウコピーが削除されます
- /Quietオプション:削除する時に確認してきません。確認入力不要
毎日、このコマンドをwindowsタスクで実行すれば、基本世代数を管理することが出来ます。
(VSSスケジュールで毎日一回シャドウコピーを作成し、Windowsタスクで毎日一回シャドウコピーを削除する)
環境:
- Windows Server 2012
シャドウコピー(VSSデータ)を削除したい経緯。必要な状況
VSSのおさらいとして
便利なボリュームシャドウコピーサービス(VSS)なのですが、運用上以下の注意点があります
- バックアップではない
- 世代管理できない
(ただし、VSSの容量制限がある場合は古いものから自動で削除してくれて管理してくれる) - 成功・失敗のメール通知は出来ない
基本的には、WinodwsのVSSの機能だけ使用している場合は、世代管理はWindowsが容量制限内でよきにはからってくれます(制限容量がある限り世代数を持ち、容量がなくなれば古いシャドウコピーを削除します)。
しかし以下の場合、上記削除方法が必要になる可能性があります
- VSSをスケジュールしており世代管理的に運用
- 別のバックアップソフトでもVSSを利用しオンラインバックアップを実現している
もしも他のバックアップソフトもVSSを使用している場合、WindowsのみのVSS機能だけではないのでWindowsが行うVSSの制限容量管理が完璧ではなくなってしまう可能性が出てくるのです。
(他のバックアップソフトもWindowsと同様、VSSの制限容量領域を勝手に使用しているため)
例えば、ARCserv RHAのスナップショット管理だとか、VMwareのバックアップAPI(VADP)を使用したバックアップソフトでもVSSを使用しているます