Amazon FSx for WindowsのVSSの容量について
はじめに
ネクストモードの南です。
先日、お客様よりAmazon FSx for WindowsのVolume Shadow Copy Service(VSS)の容量の挙動について質問をいただいたのですが、イマイチ確証が取れない点があったので実際に検証をして確かめてみました。
検証と結果の方を本エントリでまとめていきたいと思います。
検証結果
もともと確認したかったのは「VSSの最大容量で指定した領域は設定時点で確保されるのか」「ファイルシステム上のVSSの使用領域の見方」という内容でした。
最初に結果の方からまとめていきます。
Set-FsxShadowStorage
で指定した最大容量はあくまで最大値であり、設定時点で確保はされてない- ファイルシステム上のVSSの使用領域は
Get-FSxShadowStorage
のAllocatedSpace
の値を参照する
補足
Amazon FSx for WindowsのVSS設定はマネジメントコンソールからは行えず、PowerShell Remotingを使ってCLIから行う必要があります。
リモートコンソールへのログイン手順やVSSの設定の詳細については本エントリでは割愛しますが、以下の記事で丁寧に解説されていますのでご参照ください。
検証
検証は以下の構成で進めていきました。
- シングルAZ
- ストレージサイズは32GB(SSD)
- 重複排除は有効化しない
まずはVSSを有効化していきます。
今回はVSSの最大領域として3GBを割り当てました。ファイルシステムは32GBで作成しているので、ファイルデータの保存領域としては残りの29GBを使用できる設計、となります。
Set-FsxShadowStorage -Maxsize (3GB)
クライアントでファイルシステムをネットワークドライブとして割り当てて使用領域を確認してみますが、設定直後ではシステム領域分(約96MB)を使用しているのみ、という見え方になります。VSSの領域として指定した3GBは使用領域にはカウントされません。
この状態で29GB(ファイルシステムの容量32GB - VSSの最大領域3GB)を超えてファイルデータを取り込んでみても、特に問題なく保存することができます。
VSS最大領域はあくまで最大値であり、システム側であらかじめ確保している領域ではない、ということがわかりました。
続いて、VSSで使用している領域についてもう少し詳しく確認していきます。
VSSが使用している容量の情報については、Get-FSxShadowStorage
で確認することができます。
実行結果で表示される各項目については公式のドキュメントで以下のように説明されています。
- AllocatedSpace - シャドウコピーに現在割り当てられているファイルシステム上のストレージ容量 (バイト単位)。初期状態では、この値は 0 です。
- UsedSpace - シャドウコピーで現在使用されているストレージ容量 (バイト単位)。初期状態では、この値は 0 です。
- MaxSpace - シャドウストレージを拡張できるストレージの最大容量 (バイト単位)。これは、Set-FsxShadowStorage コマンドを使用して シャドウコピーストレージ に設定した値です。
AllocatedSpace
が実際にファイルシステム上で割り当てられている容量を指すようですが、UsedSpace
とどの程度違いがあるのかドキュメントからは読み取れません。
実際の環境でGet-FSxShadowStorage
を実行して確認してみます。
VSSの有効化直後はAllocatedSpace
とUsedSpace
は初期状態で0になってます。
続いて、New-FsxShadowCopy
でシャドウコピーを作成して、再度Get-FSxShadowStorage
を実行してみます。
AllocatedSpace
とUsedSpace
の結果に違いが出ました。
UsedSpace
は368KBですが、AllocatedSpace
は約320MBほど多い値となっています。
ファイルの中身を変更して再度シャドウコピーを作成し、Get-FSxShadowStorage
を実行してみましたが、いずれも差分は同じ(AllocatedSpace
が約320MBほど多い)結果でした。
この結果についてですが、公式のドキュメントを見ると以下のような記載があり、シャドウコピーのデータに加えて常に320MBほどの容量を確保する動きをする、と解説されています。
ファイルシステムには、設定されているシャドウコピーストレージ量の最大容量に加えて、少なくとも 320 MB の空き容量が必要です (MaxSpace)。例えば、シャドウコピーに 5 GB の MaxSpace を割り当てた場合、ファイルシステムには、5GB の MaxSpace に加えて常に少なくとも 320 MB の空き領域が必要です
おそらくですが、上で言及されている320MBの空き容量がAllocatedSpace
に含まれる、という動きになっているようです。
また、クライアントから見ると、AllocatedSpace
分(今回の検証時は約320MB)が使用領域としてカウントされていることが確認できます。
これらの検証から以下のような形になることがわかりました。
実際にファイルシステム上でVSSに割り当てられている容量を確認する場合は、Get-FSxShadowStorage
を実行してAllocatedSpace
の値を参照すると正確な情報を得ることができます。
UsedSpace
:シャドウコピーのデータで使用している領域AllocatedSpace
:UsedSpace
+ 約320MB。ファイルシステム上で実際に使用している領域
まとめ
以下に検証結果を再掲します。
Set-FsxShadowStorage
で指定した最大容量はあくまで最大値であり、設定時点で確保はされてない- ファイルシステム上のVSSの使用領域は
Get-FSxShadowStorage
のAllocatedSpace
の値を参照する
Maxsize
で指定した容量はあくまで最大値であり、ファイルシステムの運用次第では最大容量までシャドウコピーを作成できないケースがある、という点にご注意ください。
例えば、ファイルシステムの空き容量を使い切る形で運用している場合で考えてみます。VSSの古いデータが削除されるタイミングで一時的にファイルシステムの空き領域ができますが、このタイミングで今までVSSに使用していた領域にファイルデータを置くことができてしまいます。そんな具合でたまたまできた空き領域にユーザがどんどんファイルデータを突っ込んでいくと、VSSの領域がいつの間にか小さくなっている、というケースが生じ得ます。
VSSの最大領域はあくまで最大値であり、ショートするケースが生じることも想定して容量設計や容量のチェックを行っていただけると、効果的にVSSを運用することができると思います。
参考
Amazon FSx for Windows File Server -シャドウコピーの使用
Amazon FSx for Windows File Server の Volume Shadow Copy 管理機能を試してみた
ネクストモードについて
ネクストモード株式会社は東日本電信電話株式会社とクラスメソッド株式会社で設立したクラウドカンパニーです。「クラウドであたらしい働き方を」というメッセージを掲げ、さまざまなクラウド技術や製品を組み合わせて企業の働き方の当たり前を変えていくことを目指しています。クラウドやSaaSのご利用に関してお困りごとがあれば、ネクストモードまでぜひお問い合わせください。