カテゴリー
AWS FSx for Windows

AWS FSx for Windowsでファイルサーバーを構築したらすべきこと

今回のゴール

以前にFSx for Windowsでファイルサーバーを構築したのですが、

AWSのサイトに管理のベストプラクティスがあったので、それを参考に設定してみました。

管理のベストプラクティス Amazon FSx ファイル・システム

下準備

今回はPowerShellで設定しますので、FSxサービスのファイルシステムの設定画面から”Windows Remote PowerShell エンドポイント”を確認します。

接続元が日本語環境の場合

接続元が日本語環境の場合、言語のローカリゼーションエラーが発生しますので、下記のオプションをコマンドの最後につけてください。

-SessionOption (New-PSSessionOption -uiCulture “en-US”)

リモートPowerShellセッションを開始しようとすると言語のローカリゼーションエラーが発生する

データー重複除外設定

設定

デフォルトのスケジュールでデータ重複排除をオンにします。

Invoke-Command -ComputerName $FSxWindowsRemotePowerShellEndpoint -ConfigurationName FSxRemoteAdmin -ScriptBlock { Enable-FsxDedup }

重複排除の状況は下記コマンドで確認できます。

Invoke-Command -ComputerName $FSxWindowsRemotePowerShellEndpoint -ConfigurationName FsxRemoteAdmin -ScriptBlock { Get-FSxDedupStatus } | select OptimizedFilesCount,OptimizedFilesSize,SavedSpace,OptimizedFilesSavingsRate

シャドウコピーの設定

設定

シャドウコピーをデフォルト設定でオンにします。

シャドウ コピーのデフォルト設定とは下記です。

  • シャドウ コピーはファイル システムの最大10%を消費
  • 毎週月曜日、火曜日、水曜日、木曜日、金曜日の午前7時と午後12時(UTC)にシャドウ・コピーが自動的に作成
Invoke-Command -ComputerName $FSxWindowsRemotePowerShellEndpoint -ConfigurationName FSxRemoteAdmin -ScriptBlock { Set-FsxShadowStorage -Default }

Invoke-Command -ComputerName $FSxWindowsRemotePowerShellEndpoint -ConfigurationName FSxRemoteAdmin -ScriptBlock { Set-FsxShadowCopySchedule -Default -Confirm:$False}
確認

実際にファイルをリストアしていきます。

ファイルを何か作成して、下記コマンドを実行してシャドウコピーを実行します。

enter-pssession -computername FSxFileSystem-Remote-PowerShell-Endpoint -configurationname fsxremoteadmin

New-FsxShadowCopy

エクスプローラーから、該当ファイル(またはフォルダ)を右クリックして”以前のバージョンの復元”をクリックします。

先ほどシャドウコピーを実行したファイルのバージョンが表示されていることを確認します。

ファイルをクリックすると、そのバージョンのファイル内容を確認する事ができます。

戻したいバージョンを選択して「復元」ボタンを押すと、そのバージョンに戻すことができます。

転送中の暗号化の強制

FSxでは保管時のデータの暗号化と、転送時のデータの暗号化があります。

転送時のデータの暗号化の設定を行います。
これを利用するには、SMBプロトコル3.0以降に対応している必要があります。(対応していないと接続できません。)

Invoke-Command -ComputerName $FSxWindowsRemotePowerShellEndpoint -ConfigurationName FSxRemoteAdmin -ScriptBlock { Set-FsxSmbServerConfiguration -EncryptData $True -RejectUnencryptedAccess $True -Confirm:$False}
確認
enter-pssession -computername FSxFileSystem-Remote-PowerShell-Endpoint -configurationname fsxremoteadmin

Get-FSxSmbServerConfiguration

暗号化が強制されていることが確認できました。

EncryptData RejectUnencryptedAccess
----------- -----------------------
       True                    True

その他管理コマンド

開いているファイルの監視と終了

開いているファイルの一覧を表示します。

Invoke-Command -ComputerName $FSxWindowsRemotePowerShellEndpoint -ConfigurationName FSxRemoteAdmin -ScriptBlock { Get-FSxSmbOpenFile}

開いているファイルを閉じます。

Invoke-Command -ComputerName $FSxWindowsRemotePowerShellEndpoint -ConfigurationName FSxRemoteAdmin -ScriptBlock { Close-FSxSmbOpenFile -Confirm:$false}