Amazon FSx for Windows File Serverのシャドウコピー(VSS)について解説します

記事タイトルとURLをコピーする

こんにちは!
カスタマーサクセス部の河本(かわもと)です。

今回はAmazon FSx for Windows File Server(以下、FSx)における、シャドウコピー(VSS)の設定方法や仕様について解説します。

シャドウコピーとは

シャドウコピーとは、ファイルやフォルダのスナップショットを取得してくれるWindowsの機能です。 以下のようにファイル単位で特定のスナップショットから復元することが可能です。

AWSの公式ドキュメントにも記載の通り、シャドウコピーはバックアップの代用にならないため、シャドウコピーとFSxのバックアップは切り離して考えた方がよいです。

設定方法

事前に検討すること

事前に以下の項目を検討します。特段要件が無い場合は「シャドウコピーを取得するスケジュール」のみ変更するのがよいでしょう。

シャドウコピーに割り当てるストレージ容量

デフォルトは10%です
保存世代数を極端に増やさない場合、最初はデフォルトのままでよいでしょう。FSxの利用開始後にしばらく経過観察を行い、ひっ迫しそうな場合に増やすことを検討します。 ただし、以下のケースでシャドウコピーのストレージ使用量が増加しますので、当てはまることが分かっている場合は、予め増やしておくのも良いかと思います。

  • ユーザが頻繁にファイルの追加または変更をする場合
  • 保存世代数を増加させる場合

シャドウコピーの保存世代数

デフォルトは20世代です。
要件が無い場合はデフォルトのままでよいでしょう。AWSの公式ドキュメントによると、20世代はMicrosoftの推奨値のようです。1~500で指定できますが、可能な限り少ない数とし最大でも64世代とすることを推奨します。それを超える場合、マルチAZ構成におけるファイルオーバー時の整合性チェックに長時間を要してしまう恐れがあります。

シャドウコピーを取得するスケジュール

デフォルトは以下の通りです。

曜日 時間
月曜日
火曜日
水曜日
木曜日
金曜日
午前 7:00 (UTC)
午後 12:00 (UTC)

曜日、時間で指定します。
シャドウコピーの取得はFSxに一定の負荷が掛かるため、昼休憩や夜間等の負荷が少ない時間に変更することを推奨します。

設定手順

シャドウコピーの有効化はenter-pssessionでFSxにリモート接続するのではなく、Invoke-Commandで実施します。PowerShellの変数を使用したいためです。

1.FSx管理者ユーザにログイン

FSxと通信可能な端末に対し、FSx構築時に指定した「委任された管理者グループ」に所属しているユーザでログインします。

2.シャドウコピーをデフォルト設定で有効化

PowerShellにて以下のコマンドを実行し、シャドウコピーをデフォルト設定で有効化します。

Invoke-Command -ComputerName [Windows Remote PowerShell エンドポイント] -ConfigurationName FSxRemoteAdmin -scriptblock { Set-FsxShadowStorage -Default }

[Windows Remote PowerShell エンドポイント]はマネジメントコンソールから確認することが可能です。

3.シャドウコピーの設定変更

※「シャドウコピーに割り当てるストレージ容量」と「シャドウコピーの保存世代数」をデフォルトのままとする場合、本手順はスキップします。

PowerShellにて以下のコマンドを実行し、シャドウコピーの設定を変更します。

シャドウコピーに割り当てるストレージ容量を変更する場合
Invoke-Command -ComputerName [Windows Remote PowerShell エンドポイント] -ConfigurationName FSxRemoteAdmin -scriptblock { Set-FsxShadowStorage -Maxsize [サイズ指定] }

サイズ指定については以下の指定方法がありますが、ディスク拡張の可能性に鑑みパーセント指定が良いでしょう。

区分 引数の指定方法
バイト単位 -Maxsize 2500000000
キロバイト単位 -Maxsize (2500000KB)
メガバイト単位 -Maxsize (2500MB)
ギガバイト単位 -Maxsize (2.5GB)
テラバイト単位 -Maxsize (2.5TB)
ストレージ全体のパーセント指定 -Maxsize "20%"
無制限 -Maxsize "UNBOUNDED"

※サイズが小さすぎるとThe supplied buffer was too smallというエラーが出力されますので注意です。

シャドウコピーの保存世代数を変更する場合
Invoke-Command -ComputerName [Windows Remote PowerShell エンドポイント] -ConfigurationName FSxRemoteAdmin -scriptblock { Set-FsxShadowStorage -MaxShadowCopyNumber [保存世代数] }

保存世代数は数字を入力してください。ダブルクォートは不要です。20世代を超える場合はWe recommend maximum of 20 shadow copies for SSD storage type.というメッセージが出力されますが、問題ない場合は「Y」で応答します。

4.FSxの設定を確認

PowerShellにて以下のコマンドを実行し、正しく設定されていることを確認します。

Invoke-Command -ComputerName [Windows Remote PowerShell エンドポイント] -ConfigurationName FSxRemoteAdmin -scriptblock { Get-FsxShadowStorage }

出力例

AllocatedSpace      : 0
UsedSpace           : 0
MaxSpace            : 2748779069440
MaxShadowCopyNumber : 20
PSComputerName      : amznfshogehoge.test.local
RunspaceId          : 4cb0e62c-e0f1-4e59-bc86-8d201bd6142c

項目の意味

項目 意味
AllocatedSpace シャドウコピーに現在割り当てられているファイルシステム上のストレージ容量 (バイト単位)
UsedSpace シャドウコピーで現在使用されているストレージ容量 (バイト単位)
MaxSpace シャドウコピーに割り当てられるストレージの最大容量 (バイト単位)。「3.シャドウコピーの設定変更」で設定した値になります。
MaxShadowCopyNumber シャドウコピーの保存世代数。「3.シャドウコピーの設定変更」で設定した値になります。

5.スケジュール設定用の変数を定義

以下の変数を修正し、PowerShellで実行します。

$trigger1 = new-scheduledTaskTrigger -weekly -DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -at 06:00
$trigger2 = new-scheduledTaskTrigger -weekly -DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -at 18:00

※上記はサンプルのため、以下を参考に修正してください。

オプション 説明
-DatsOfWeek シャドウコピーを取得する曜日をカンマ区切りで記載します。
-at シャドウコピーを取得する時間帯をHH:MM形式で指定します。作業端末のタイムゾーンがJSTの場合、JSTで記載してください。

※時間帯が一つの場合、trigger2は不要です。

6.シャドウコピーのスケジュールを作成

PowerShellにて以下のコマンドを実行し、シャドウコピーのスケジュールを作成します。

invoke-command -ComputerName [Windows Remote PowerShell エンドポイント] -ConfigurationName FSxRemoteAdmin -scriptblock { set-fsxshadowcopyschedule -scheduledtasktriggers $Using:trigger1,$Using:trigger2 -Confirm:$false }

※trigger2を定義していない場合、,$Using:trigger2はコマンド中から削除してください。

出力例

Start Time     : 2025-02-15T21:00:00+00:00
Days of Week   : Monday,Tuesday,Wednesday,Thursday,Friday
WeeksInterval  : 1
PSComputerName : amznfshogehoge.test.local
RunspaceId     : 6ef958c0-3c42-4d39-92d2-6dd3a4d877a8

Start Time     : 2025-02-16T09:00:00+00:00
Days of Week   : Monday,Tuesday,Wednesday,Thursday,Friday
WeeksInterval  : 1
PSComputerName : amznfshogehoge.test.local
RunspaceId     : 6ef958c0-3c42-4d39-92d2-6dd3a4d877a8

上記はUTCで出力されます。+9時間して指定通りの時間であれば、問題ありません。

7.シャドウコピーのスケジュール確認

PowerShellにて以下のコマンドを実行し、スケジュールに問題が無いことを確認します。

invoke-command -ComputerName [Windows Remote PowerShell エンドポイント] -sessionOption $usSession -ConfigurationName FSxRemoteAdmin -scriptblock { Get-FsxShadowCopySchedule }

出力例

Start Time     : 2025-02-15T21:00:00+00:00
Days of Week   : Monday,Tuesday,Wednesday,Thursday,Friday
WeeksInterval  : 1
PSComputerName : amznfshogehoge.test.local
RunspaceId     : 6ef958c0-3c42-4d39-92d2-6dd3a4d877a8

Start Time     : 2025-02-16T09:00:00+00:00
Days of Week   : Monday,Tuesday,Wednesday,Thursday,Friday
WeeksInterval  : 1
PSComputerName : amznfshogehoge.test.local
RunspaceId     : 6ef958c0-3c42-4d39-92d2-6dd3a4d877a8

上記はUTCで出力されます。+9時間して指定通りの時間であれば、問題ありません。

シャドウコピーの仕様

設定方法で書ききれなかった仕様を記載します。

I/Oが追い付かない場合、すべて削除される。

これはFSxというよりはシャドウコピー自体の使用ですが、シャドウコピーはFSxのパフォーマンスの不足によりI/Oが追い付かない場合、全てのシャドウコピーを削除してしまいます。そのため、シャドウコピーを有効化する場合はディスク種別をSSDにすることを推奨します。

シャドウコピーが消費するストレージ

シャドウコピーはFSxのストレージを消費します。また、シャドウコピーが消費するストレージ容量は、設定した「シャドウコピーに割り当てるストレージ容量」に加え、固定で320MBです。

シャドウコピーによるファイルの復元方法

Windowsのエクスプローラーよりファイルを右クリックし、[プロパティ]をクリック後、[以前のバージョン]タブより復元することが可能です。

シャドウコピーの取得状況を確認する方法

以下のコマンドを実行することにより、シャドウコピーの取得状況を確認できます。

Invoke-Command -ComputerName [Windows Remote PowerShell エンドポイント] -ConfigurationName FSxRemoteAdmin -scriptblock { Get-FsxShadowCopies }

出力例

Shadow Copy ID : {CE8D9F7D-7AA6-4BD6-BE53-4E4C05FCC5EE}
Creation Time  : 2025/02/16 6:21:37
PSComputerName : amznfshogehoge.test.local
RunspaceId     : a08d9bd9-b003-438e-bc8e-ef8a92f745ed

Shadow Copy ID : {F3934BF6-7E73-4F35-81AD-D42BC639EEFE}
Creation Time  : 2025/02/16 6:22:16
PSComputerName : amznfshogehoge.test.local
RunspaceId     : a08d9bd9-b003-438e-bc8e-ef8a92f745ed

Shadow Copy ID : {82C4DDBB-25C8-405B-93FE-06E3E4A34542}
Creation Time  : 2025/02/16 6:23:54
PSComputerName : amznfshogehoge.test.local
RunspaceId     : a08d9bd9-b003-438e-bc8e-ef8a92f745ed

※出力時刻はUTCです。

おわりに

この記事がシャドウコピーの設定を検討する際の参考になれば幸いです。
ご一読いただき、ありがとうございました。

河本 直輝 (記事一覧)

カスタマーサクセス部所属

スラダンの映画を4回だけ見に行きました。