none
vssadmin コマンドでシャドウ コピーが削除できない場合の対処方法について RRS feed

  • 質問

  • こんにちは。Windows Commercial Storage & High Availability チームの石田です。

    最近、ローカル ドライブに保存されているシャドウ コピーのデータを削除したいが行えないというお問い合わせをいただきました。実は、シャドウコピーにはいくつかの種類があり、特定のシャドウ コピーに対しては特定のツールを使わないと削除できない場合があります。いただいたお問い合わせの現象や背景を踏まえて解説します。


    ■ 現象

    Windows Server 2008 や Windows Server 2008 R2 にて、ローカル ドライブにバックアップデータを保管している。

    共有フォルダへのバックアップとは異なり、複数のバージョンのバックアップ データが保管されていることを確認した。空き領域の確保のため古いシャドウ コピーを vssadmin delete shadows コマンドで削除しようとしたが、バックアップにより作成されたシャドウ コピーは削除されなかった。

    まずはじめに、シャドウ コピーの種類と vssadmin delete shadows コマンドにてシャドウ コピーが削除されなかった理由について説明します。


    ▼ シャドウ コピーの種類について

    vssadmin list shadows コマンドにて確認できるシャドウ コピーには大きく分けて以下の 2 つの種類があります。

    a. 共有フォルダーのシャドウ コピー機能の利用により作成されるシャドウ コピー
    b. アプリケーションなどからの要求で作成されるシャドウ コピー

    ※ Windows Server バックアップで作成されるシャドウ コピーは b. に分類されます。

    vssadmin delete shadows にて、削除可能なのは、a. のシャドウ コピーです。
    一方、 b. のアプリケーションなどからの要求にて作成されるシャドウ コピーを明示的に削除するには、diskshadow ユーティリティを利用します。


    ▼ シャドウ コピーが残る理由について

    Windows Server バックアップにて、ローカル ドライブにバックアップを取得すると最新の世代は VHD ファイルとして保存されます。この時、バックアップ データの世代管理のために、バックアップの保存先にシャドウ コピーが作成されます。こちらは、世代管理に使用されており、バックアップ後に削除されないためにこの現象が発生します。

    バックアップの保存先の違いについては、以下の参考資料を参照してください。



    [タイトル] Windows Server のバックアップ まとめ
    [URL] http://blogs.technet.com/b/infrajp/archive/2011/03/18/windows-server.aspx

    [タイトル] Windows Server バックアップの概要
    [URL] http://technet.microsoft.com/ja-jp/library/cc732091.aspx



    保管されるシャドウ コピーの合計サイズは、シャドウ コピー記憶域の最大サイズの設定により異なります。この現象を回避するには、最大サイズの設定を "制限なし" から "制限値" に変更し、任意のサイズを設定することにより、空き領域を確保することが可能です。

    但し、シャドウ コピー記憶域の最大サイズの設定をする際には、運用にあわせた見積もりが必要なため、何か他に対応はないか。という疑問が発生します。そのため、一時的に diskshadow コマンドにてシャドウ コピーを削除して空き領域を確保する方法をご紹介します。


    ■ シャドウ コピー削除手順について

    diskshadow ユーティリティは Windows Server 2008 以降に標準で実装されています。
    Windows Server 2003 や Windows 7 ではこの方法は利用できません。

    1. 管理者権限にてコマンド プロンプトを起動します。
    2. diskshadow と入力し diskshadow ユーティリティを起動します。
    > 3. 削除したいシャドウ コピーにあわせ delete shadows コマンドを実行します。

    以下に削除の実行例をご案内します。

    実行例 1)
    S ドライブの一番古いシャドウ コピーから 1 世代ずつ削除する場合は delete shadows oldest コマンドを実行します。

    >diskshadow
    >delete shadows oldest S:

    実行例 2)
    S ドライブの全てのシャドウ コピーを削除する場合には delete shadows volumeコマンドを実行します。

    >diskshadow
    >delete shadows volume S:

    実行例 3)
    特定のシャドウ コピーを削除するには delete shadows SET <セット ID> や delete shadows ID <シャドウ ID> コマンドを利用します。
    <セット ID> や <シャドウ ID> に指定する値は list shadows all コマンドにて確認が可能です。

    各コマンドの詳細については、delete /? にてヘルプを参照するか、以下の参考情報を参照してください。


    [タイトル] Delete shadows
    [URL] http://technet.microsoft.com/en-us/library/cc754915(v=ws.10).aspx

    [タイトル] Diskshadow
    [URL] http://technet.microsoft.com/en-us/library/cc772172(v=ws.10).aspx


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

    (※ 2013 年 11 月 28 日に Ask Core Microsoft Japan Windows Technology Support に公開した情報のアーカイブです。)


    • 編集済み jpcore2 2019年3月6日 10:18
    2019年1月21日 8:29