こんにちは!
クラウドインテグレーション部(CI部)技術2課の反町です。
Amazon FSx for Windows File Serverを構築してクォータなどの設定をする機会があったのですが、ところどころはまった部分があったので注意点を含めつつ、設定手順を紹介したいと思います。(以下、FSxと記載します)
構成図
事前準備として図のように、
Amazon FSx For Windows File Sever
FSxマウント用EC2
Active Directory認証用 MicrosoftAD
の構築をしておきました。
FSx についての詳細と構築手順は以下を参考にしました。
FSx設定手順
1. FSx接続用EC2をドメイン参加させる
作成したActive DirectoryのドメインにEC2を参加させます。
スタートメニューからコントロールパネルを開きます。 [システム]を選択します。 [設定の変更]をクリックします。 [変更]をクリックします。 所属するグループをドメインに変更してドメイン名を入力します。 認証情報を求められるので入力して、[ようこそexample.com(ドメイン名)へ]と表示されればドメイン参加成功です。
2. PowerShellからFSxに接続
2-1. Active Directoryのユーザーでログインする
EC2のドメイン参加が終わったら、Acrtive DirectoryのユーザーでEC2にログインします。下線部分がドメイン名になっていることを確認します。 ※私はここでADのユーザーではなくEC2作成時のユーザーでログインし、Powershellから設定を行おうとしてしまい認証情報エラーとなってしまいました。
ログインができたらスタートメニューからPowershellを開きます。
2-2. 接続言語を英語に指定
日本語OSの場合、接続時にエラーになってしまうことがあるので、次のコマンドを実行して言語を英語に変更します。
$usSession = New-PSSessionOption -Culture en-US -UICulture en-us
2-3. FSxに接続
AWSコンソールからWindows Remote PowerShell エンドポイントを確認し、次のコマンドで指定してFSxへ接続します。
enter-pssession -ComputerName [Windows Remote PowerShell エンドポイント] -sessionOption $usSession -ConfigurationName FSxRemoteAdmin
※AWSコンソールのDNS名と間違えないよう注意してください。
3. 重複排除設定
3-1. データ重複排除の有効化
Enable-FSxDedup
デフォルトの重複排除機能のスケジュールは以下となっています。
最適化(Optimization):1時間ごと
ガベージコレクション(GarbageCollection):毎週土曜 午前2時45分(UTC)
整合性スクラブ(Scrubbing):毎週土曜 午前3時45分(UTC)
3-2. データ重複排除スケジュールの設定
3-2-1. 最適化スケジュール設定
次のコマンドは平日20:00(JST)に高い優先度で最適化を行うスケジュールを設定しています。
New-FSxDedupSchedule -Name "MyCustomOptimization" -Type Optimization -Days Mon,Tue,Wed,Thu,Fri -Start 11:00 -Priority High
3-2-2. ガーベージコレクションスケジュール設定
次のコマンドは毎週土曜 2:45(UTC)にガベージコレクションを行うスケジュールを設定しています。
Set-FSxDedupSchedule -Name "WeeklyGarbageCollection" -Type GarbageCollection -Days Fri -Start 17:45
3-2-3. 整合性スクラブスケジュール設定
次のコマンドは毎週土曜 3:45(UTC)に整合性スクラブを行うスケジュールを設定しています。
Set-FSxDedupSchedule -Name "WeeklyScrubbing" -Type Scrubbing -Days Fri -Start 18:45
3-3. 重複排除スケジュールの確認
Get-FSxDedupSchedule
3-4. 不要な重複排除スケジュールの削除
Remove-FSxDedupSchedule -Name "重複排除スケジュール名"
4. クォータの設定
4-1. クォータの有効化
次のコマンドではすべてのユーザ/グループ(デフォルト設定)に対して約20MBの上限、約10MBで警告されるようにクォータを有効化しています。
Enable-FSxUserQuotas -Enforce -DefaultLimit 20971520 -DefaultWarningLimit 10485760
※クォータの単位はバイト(B)です。
4-2. クォータの設定
次のコマンドではクォータを指定したユーザーまたはグループに対して約200KBの上限、約100KBで警告されるように設定しています。 ※ユーザーはActive Directoryに登録されているユーザーまたはグループを指定してください。
Set-FSxUserQuotas -Domain [ドメイン名] -Name [ユーザー名またはグループ名] -Limit 204800 -WarningLimit 102400
※クォータの単位はバイト(B)です。
4-3. クォータの確認
次のコマンドでは、ファイルシステムの現在のユーザーストレージを確認できます。
Get-FSxUserQuotaSettings
ファイルシステム上の個々のユーザーおよびグループの現在のユーザーストレージを確認するには次のコマンドを使用します。
Get-FSxUserQuotaEntries
5. シャドウコピーの設定
5-1. シャドウコピーストレージがファイルシステムに構成されているかの確認
Get-FSxshadowStorage
上記コマンドを実行し、次の値が帰ってくれば正常です。
No FSx Shadow Storage Configured
5-2. ストレージ全体のシャドウコピーの容量を設定する
次のコマンドではシャドウコピーをストレージ全体の20%に設定しています。
Set-FSxShadowStorage -Maxsize "20%"
5-3. シャドウコピーのスケジュール設定
シャドウコピーのスケジュール設定をする際は一度[exit]コマンドでFSxから抜ける必要があるみたいです!
次のコマンドでは$trigger1で平日の6:00(UTC)、$trigger2で平日の18:00(UTC)を指定しています。
exit $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
次のコマンドで指定したスケジュールを設定します。
スケジュールを設定する際は1行目のコマンドを利用して再度FSxに入りました!
enter-pssession -ComputerName [Windows Remote PowerShell エンドポイント] -sessionOption $usSession -ConfigurationName FSxRemoteAdmin Set-fsxshadowcopyschedule -scheduledtasktriggers $Using:trigger1,$Using:trigger2 -Confirm:$false
5-4. 設定したスケジュールの確認
Get-FSxShadowCopySchedule
まとめ
注意するポイントとしては、以下6点でした。
ドメイン参加後はAcrtive Directoryのユーザーでログインする
接続言語を英語に指定する
Windows Remote PowerShell エンドポイントを指定する
クォータの指定でもAcrtive Directoryのユーザーを指定する
シャドウコピーのスケジュール設定をする際は一度FSxから抜ける
シャドウコピーのスケジュールを設定する際は再度FSxに入る
Powershellを利用したFSxの設定はコマンド初心者には難しいですね。エラーになった時の分析はさらに難しかったです。
今回の記事がどなたかの参考になればうれしいです。