AWS FSx for windows 重複排除/シャドウコピー設定

AWS
この記事は約10分で読めます。
記事内に広告が含まれています。

今回はAWS FSx for windowsにおける「重複排除」と「シャドウコピーの設定」について、必要最低限の内容で記載します。

その前に用語説明です。

重複排除とは?

ファイルシステムのデータ重複除外を有効にすることで、データストレージのコストを削減できます。

データ重複除外 - Amazon FSx for Windows File Server
大規模なデータセットは冗長なデータを持つことが多く、データストレージのコストが増加します。例えば、ユーザーファイル共有を使用すると、複数のユーザーが同じファイルの複数のコピーまたはバージョンを保存できます。ソフトウェア開発共有では、多くのバ...

簡単に言うと、ディスク容量の節約です。平均的には利用容量が半分程度になるようです(けどファイル内容がzipファイル等のバイナリ系が多いと難しいと思います)。

シャドウコピーとは?
シャドウコピー - Amazon FSx for Windows File Server
Amazon FSx によって定義された一連のカスタム PowerShell コマンドを使用して、FSx for Windows ファイルサーバーのファイルシステム上でシャドウコピーのすべての側面を管理できます。シャドウコピーの設定と個々の...

簡単に言うと、利用者自身がファイル/フォルダ単位で、以前の内容を確認できて復元可能です。デフォルトではディスクの10%の容量を消費し、それに応じて保持量も変化します。

利用者がフォルダ/ファイル単位で過去内容を確認できる。

※シャドウコピーはバックアップではありません。バックアップとシャドウコピーは併用することが一般的です。

どちらの設定もデフォルトで無効となっており、これらの設定は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より確認可能なジョブ実行状況は正常終了と表示されるのでわかりにくい。
    → 重複排除の追加スケジュール(一定期間の集中型)を追加してみましょう。それなりにディスク負荷がかかるため、実行継続時間や実行タイミングは要調整です!
  • ファイル削除しても容量が増えない。
    → 重複排除しているとありえます。デフォルト土曜日のガベージコレクションが動作しないと容量は増えません。急ぎならスケジュールを見直すべし。

公式サイトの関連記事は以下です。

データ重複排除のトラブルシューティング - Amazon FSx for Windows File Server
FSx for Windows File Server ファイルシステムでデータ重複排除を使用する際に発生する問題を特定して解決する方法について説明します。

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}

ここも参考になります。

高度なデータ重複除去の設定
詳細情報: 高度なデータ重複除去の設定

スループット値によるけど、メモリは増やせばいいってものじゃないみたい。

実行結果(LastOptimizationResultMessage)が「Not enough storage is available to complete this operation.」となってうまくいかないこともありました。

逆にMemoryを40に減らしたら正常に動きました。

まとめ

AWS FSx for windowsにおける重複排除とシャドウコピーの設定について紹介しました。

  • 設定はドメイン所属PCにサービスアカウントでログインしてPowerShellより行う。
  • 初期値は無効であり、設定したほうが容量削減や運用面で有利です。

最後までご覧いただき、ありがとうございました。

コメント

Top
タイトルとURLをコピーしました