今回はAWS FSx for windowsにおける「重複排除」と「シャドウコピーの設定」について、必要最低限の内容で記載します。
その前に用語説明です。
どちらの設定もデフォルトで無効となっており、これらの設定はWindows Powershellからの実行が一般的です。(2022年2月時点でAWSマネジメントコンソール上からは操作出来ません)
では本編の設定方法です!
設定方法
初めに
設定はWindowsのPowerShellを使います。(AWSマネジメントコンソールからは設定出来ません。)
FSxのドメインに所属したWindows PCより、FSx作成時の「サービスアカウント」でログインして操作します(ドメイン所属PCに対してサービスアカウントでログインしておく)。また、Powershellで該当FSxに接続するために「Windows Remote PowerShellエンドポイント」をメモしておきます。
重複排除の設定
以下の公式サイトを参考にしています。
https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/using-data-dedup.html
powershellを管理者権限で起動し、以下コマンドで設定します。
# セッション設定
$usSession = New-PSSessionOption -Culture en-US -UICulture en-US
enter-pssession -ComputerName エンドポイント -SessionOption $usSession -ConfigurationName FsxRemoteAdmin
# 重複排除の有効化
Enable-FsxDedup
<補足>
◇実行後に「Enabled:True」があればOKです。日本語OSだと上手くいかない不具合があるため最初にen-USとしてセッションを張っています。
◇セッション設定時に次のエラーが表示されることがあります。
enter-pssession : リモート サーバー asdfghjklasdfghjkl への接続に失敗し、次のエラー メッセージが返されました: WinRM クライアントは、リモート WS-Management サービスから HTTP 状態コード 504 を受け取りました。詳細については、about_Remote_Troubleshooting のヘルプ トピックを参照してください。
発生場所 行:1 文字:1
+ enter-pssession -ComputerName asdfghjklasdfghjkl ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (asdfghjklasdfghjkl:String) [Enter-PSSession]、PSRemoting
TransportException
+ FullyQualifiedErrorId : CreateRemoteRunspaceFailed
環境なのかOS内のプロキシ設定状況なのか・・・。私はProxyAccessTypeをNoProxyServerとすることでエラーが出なくなりました。
# セッション設定(ProxyAccessType追加の場合)
$usSession = New-PSSessionOption -Culture en-US -UICulture en-US -ProxyAccessType NoProxyServer
enter-pssession -ComputerName エンドポイント -SessionOption $usSession -ConfigurationName FsxRemoteAdmin
基本設定は以上となります。
AWS公式サイトでは重複スケジュールの変更方法なども記載されています。
#
# 以下、他コマンドのご参考です。
#
# 設定状態の確認
Get-FsxDeDupConfiguration
# ジョブ実行のスケジュールの確認
Get-FSxDedupSchedule
→ デフォルトは以下の3ジョブで構成される。
・不定期に重複排除処理を実行。
・土曜日にガベージコレクション処理を実行。
・土曜日に整合性スクラブ処理を実行。
# ジョブ実行状態を確認
Get-FSxDedupJob
→ 未設定や未実行中だとエラーになります。
# 実行中のジョブをキャンセル
Stop-FSxDedupJob
# 重複排除を無効化
Disable-FSxDedup
# 重複排除量などを確認(適切にジョブ実行されているかも確認可)
Get-FSxDedupStatus
# 重複排除の実行タイミングは基本的にデフォルトで問題ありませんが、一定の期間に集中的に処理させたい場合は追加設定も可能です。例えば毎週月/水/土 日本時間17時~最大7時間継続は次の通り。
New-FSxDedupSchedule -Name "Custom" -Type Optimization -Days Mon,Wed,Sat -Start 08:00 -DurationHours 7
# 追加したスケジュール削除
Remove-FSxDedupSchedule <スケジュールName>
# 既存スケジュール@ガベージコレクションの変更例
Set-FSxDedupSchedule -Name "WeeklyGarbageCollection" -Days Fri -Start 06:30 -DurationHours 2
→ 毎週金曜のJST15:30に最大2時間実
なお、「ガベージコレクション」は、ファイルの削除反映に関係します。重複排除した状態でファイルを削除しても空き容量が増えないことがあります。即時増やしたい場合はガベージコレクションを適切なタイミングで実行すると良いでしょう。
設定したけど、重複排除が動かないことがある・・・。
AWSサポートの問い合わせが一番ですが、後半の補足事項に一部載せています。
シャドウコピーの設定
以下内容に沿って操作します。
https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/shadow-copies-fsxW.html
powershellを管理者権限で起動し、以下コマンドで設定します。
# セッション設定
$usSession = New-PSSessionOption -Culture en-US -UICulture en-US
enter-pssession -ComputerName エンドポイント -SessionOption $usSession -ConfigurationName FsxRemoteAdmin
※504エラーの場合はProxyAccessTypeを追加
# シャドウコピーの有効化
Set-FsxShadowStorage -Default
# (参考) シャドウコピーの設定状態
Get-FsxShadowStorage
→ 未設定だと「No FSx Shadow Storage Configured」となります。
<補足>
日本語OSだと上手くいかない不具合があるため最初にen-USとしてセッションを張っています。
コマンド実行後、次のように表示されればOKです。
FSx Shadow Storage Configuration
AllocatedSpace UsedSpace MaxSpace
-------------- --------- --------
0 0 214748364800
■スケジュール設定
シャドウコピー設定の場合、スケジュールを追加設定する必要があります。ただ、デフォルト値は用意されているので、それを設定(適用)すればOKです。
# スケジュール設定(デフォルト適用)
Set-FsxShadowCopySchedule -Default -Confirm:$False
# (参考) スケジュール確認
Get-FsxShadowCopySchedule
# (参考) スケジュール削除
Remove-FsxShadowCopySchedule
# (参考) シャドウコピーの表示
Get-FsxShadowCopies
デフォルトでは「毎週月曜日、火曜日、水曜日、木曜日、金曜日の午前 7 時、午後 12:00(UTC)に自動的にシャドウコピーが作成されます。」です。
基本設定は以上となります。AWS公式サイトでは他「無効化」「スケジュールの追加や確認」なども記載されています。
補足事項・注意点
適宜書きます。
- 重複排除が実施されない。
→ ストレージ容量が多い場合、スループット値も適切に上げないとメモリ不足等で実施されないケースがある(例えば10TB程度利用していてスループット値32MB/sは結構無理がある)。適切なスループット値を選択しましょう。また、powershellより確認可能なジョブ実行状況は正常終了と表示されるのでわかりにくい。
→ 重複排除の追加スケジュール(一定期間の集中型)を追加してみましょう。それなりにディスク負荷がかかるため、実行継続時間や実行タイミングは要調整です! - ファイル削除しても容量が増えない。
→ 重複排除しているとありえます。デフォルト土曜日のガベージコレクションが動作しないと容量は増えません。急ぎならスケジュールを見直すべし。
公式サイトの関連記事は以下です。
FSxってフルマネージドサービスだよね?色々とはまったりすると結構こっちでマネージしなければならないならないことが多い気がする・・・。
こういったポイントさえ抑えれば、後はほったらかし出来るはず・・・!
ところでカスタム追加した重複排除スケジュールをパワーアップすることも出来ます。
- メモリ割当を増やす。
- 優先度を上げる。
Invoke-Command -ComputerName amznfsxzzzzzzzz.corp.example.com -ConfigurationName FSxRemoteAdmin -ScriptBlock {
Set-FSxDedupSchedule -Name "CustomOptimization" -Priority High}
Invoke-Command -ComputerName amznfsxzzzzzzzz.corp.example.com -ConfigurationName FSxRemoteAdmin -ScriptBlock {
Set-FSxDedupSchedule -Name "CustomOptimization" -Memory 80}
ここも参考になります。
まとめ
AWS FSx for windowsにおける重複排除とシャドウコピーの設定について紹介しました。
- 設定はドメイン所属PCにサービスアカウントでログインしてPowerShellより行う。
- 初期値は無効であり、設定したほうが容量削減や運用面で有利です。
最後までご覧いただき、ありがとうございました。
コメント