BlueXPのGUIからワンステップで、自動的にAmazon FSx for NetApp ONTAPのSSDストレージ容量を増やす方法を試してみた

# はじめに
以前、[こちら](https://qiita.com/heyanxia/items/08963b972fa4e179f806)の記事でAmazon CloudWatch、SNS、Lambdaなどを使用して、自動的にAmazon FSx for NetApp ONTAP（FSxN）のSSDストレージ容量を増やす方法を試してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/f5eb2e79-82cc-8b15-9aa6-af709064fb6d.png)
もうそんな複雑な設定は必要ありません！

今回は、BlueXPのGUIからワンステップの設定だけで、FSxNのSSD容量が超えた場合に自動的に増やす方法を試してみたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/9876fc80-3b34-e141-5090-f3f55c65a06d.png)
そもそも、BlueXPとFSxNとは何でしょうか？こちらの記事[「Microsoft Bing と ChatGPT を試して、NetApp Cloud Volumes ONTAPの Terraform テンプレートサンプルを作成してみた」](https://qiita.com/heyanxia/items/f27f1a3fdec8f5d66541)でも紹介された話題になっているChatGPTとBingに聞きたいです。
* FSxN
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/33fcfa3b-126b-deb2-1248-c59cbf9ca840.png)

* BlueXP
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/6dcd276d-c8b3-413f-b129-8844b2b93faf.png)

# 手順
* 1.FSxNを作成、BlueXPのGUIから`Enable`
* 2.FSxNにmount、SSD容量を超えるデータを書き込み
* 3.SSD容量が自動的に増加したことを確認

# 1.FSxNを作成、BlueXPのGUIから`Enable`
* FSxNを作成
1. AWS Console
[こちら](https://qiita.com/heyanxia/items/9c62781fdc045a93b3b5#2fsxn%E3%81%A8cloud-sync%E3%82%92%E4%BD%9C%E6%88%90)を参照して、BlueXPのGUIからAWS上にConnector(EC2)を作成し、AWS Consoleから `Quick create`でFSxNを作成します。検証のため、`SSD storage capacity`をMinimum`1024`GiB、`Storage effiency`を`Disabled`に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/1e309225-dd95-f4a3-a2e5-eed871883e28.png)
FSxNに200GBのボリューム`Storage efficiency`を`Disabled`、`Capacity pool tiering plicy`を`None`にして追加します。`Junction path`をメモして後程mountに使います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/bea2d6de-5fb1-a3da-9222-3b038c9d5309.png)
この場合は、BlueXPのGUIから`Discover Existing`でFSxNを`Working Enbironment`に追加できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/6ea4d2ea-2926-8fb7-c870-c77a1843aba9.png)
2. BlueXPのGUIから作成
今回は、BlueXPのGUIから「Add new」で作成します。詳細については、[「BlueXPのGUIを使用してFSxNを作成する」](https://qiita.com/heyanxia/items/ef50ecf5c03d69a5f758#2bluexp%E3%81%AEgui%E3%82%88%E3%82%8Afsxn%E3%82%92%E4%BD%9C%E6%88%90)を参照してください。検証のため、SSDストレージ容量を最小の1024GiB、ストレージ効率を無効に設定します。
* BlueXPのGUIから「Enable」
BlueXPのGUIから「Features」に移動し、「鉛筆」アイコンをクリックします。デフォルトでは無効になっています。以下の図は既に有効になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/2993f03a-de5d-7308-5479-412c682fcc0d.png)
`required permissions`を確認して、チェックして`Apply`します。`Disable`したい場合はチェックを外して`Apply`します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/dbd4126d-6d06-dbe4-66e2-8d80f2418910.png)

# 2.FSxNにmount、SSD容量を超えるデータを書き込み
BlueXP Connector（EC2）にSSHでログインし、FSxNのボリュームにマウントして、SSDの容量を超えたデータを書き込みます。
* Login:
```
 $　ssh -i YourKeyPair.pem ec2-user@ec2-13-231-43-224.ap-northeast-1.compute.amazonaws.com
```
* mount:
[こちら](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/attach-linux-client.html)を参考し、先程メモしたJonction Path`/nfs`を確認して`/fsx`ディレクトリを作って、mountします。
```
$ sudo su -
$ sudo mkdir /fsx
$ sudo mount -t nfs YOUR-svm-dns-name:/YOUR-volume-junction-path /fsx
$ df -h |grep fsx
172.31.4.181:/nfs  200G  200G  1.1M 100% /fsx
```
 `YOUR-svm-dns-name`、`YOUR-volume-junction-path`などの情報をAWS Consoleから確認して入れ替えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/02c5264f-c19d-d671-ea7c-b8b954507596.png)
もっと簡単な方法は、BlueXPのGUIから「Volumes」→「Manage Volume」→「Mount command」をクリックし、マウントコマンドを参照することです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/b6418900-f97d-6f92-a571-83dcea74c73b.png)
コピーして`YOUR-svm-dns-name`、`YOUR-volume-junction-path`がなくてもmountできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/f6c5c567-84fd-ab4b-e76f-a2992c2ffa76.png)

うまくmountできない場合は[「Installing the NFS client」](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-old.html#mounting-fs-install-nfsclient)を参考してNFSをインストールします。

* データを書き込み
手元にある400MB`DemoFile`をEC2`/home/ec2-user`にコピーします。
```
$ scp -i YourKeyPair.pem DemoFile ec2-user@Your-ec2-13-231-43-224.ap-northeast-1.compute.amazonaws.com:~/.
```
EC2にログインして、DemoFileを`/fsx`に移動して500回にSSD容量を超えて`DemoFileCopyi`にコピーする形で書き込みます。
```
$ ssh -i YourKeyPair.pem ec2-user@ec2-13-231-43-224.ap-northeast-1.compute.amazonaws.com
$ sudo su -
$ mv /home/ec2-user/DemoFile /fsx
$ cd /fsx
$ for ((i=1; i<500;i++)); do cp DemoFile "DemoFileCopy"$i; done
```

# 3.SSD容量が自動的に増加したことを確認
書き込む途中で容量を超えると、特に通知はありません。一時的にマウントしたファイルにアクセスできなくなり、データの書き込みができなくなります。AWSコンソールから、SSD容量を編集してみると、既に増やしていると表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/1559bff9-e597-35b8-b82d-9b6c4d29f71a.png)
少し待つと、BlueXPのGUIから、SSD容量が元々1TiBから1.1TiB（10％）自動的に増加していることがわかります。SSD容量を1回増やすと、次に増やせるようになるまで6時間待つ必要があることが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/beffedb1-0b77-e065-c7e2-7093478898cd.png)

AWS Consoleから`1024Gib`を`1,127 GiB`に自動に増やしたことも確認できました。
Before:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/88805580-e0a7-3c74-ac49-08c44e6e94e9.png)
After:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/8046b36d-472c-9079-dd9d-beb251029c35.png)

# 注意事項
* 1.SSD容量を一度増やすと、次に増やせるようになるまで6時間待つ必要があります。
* 2.[こちら](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/increase-primary-storage.html)のガイドにより、`Storage capacity increase only`増やすのみになるので、一度容量を増やすと減らすことはできません。
* 3.SSD容量を増やすと、料金が発生するため、ご利用にあたってはご注意ください。
* 4.BlueXPのConnectorは必須ではありません。詳細については[「Manage automatic capacity without an active Connector」](https://docs.netapp.com/us-en/cloud-manager-fsx-ontap/use/task-manage-working-environment.html#manage-automatic-capacity)を参照してください。
* 5.FSxNのIAM roleに `"cloudwatch:GetMetricData"`と`"cloudwatch:GetMetricStatistics"`を入れる必要があります。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/a86bb125-0332-7013-2eb7-b9a6ec3e9ac0.png)

# 最後
BlueXPのGUIからワンステップの設定だけで、FSxNのSSD容量を自動的に増やせることを確認できました。
さらに、手動で操作する場合は、以下の図に示すようにAWSコンソールからまたはCLIを使用して行うことができます。
* マニュアルで
 AWS Console：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/af774a51-a822-1707-6b55-952cf1992343.png)
CLI：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/9932259a-8795-c032-a66d-14f9b028f3ec.png)


# 参考リンク
1.[NetApp BlueXP: Create a Connector in AWS from BlueXP](https://docs.netapp.com/us-en/cloud-manager-setup-admin/task-creating-connectors-aws.html)
2.[Installing the NFS client](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-old.html#mounting-fs-install-nfsclient)
3.[To mount an ONTAP volume on a Linux client](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/attach-linux-client.html)
4.[AWS Documentation: Increasing SSD storage capacity dynamically](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/increase-primary-storage.html)
5.[Manage automatic capacity](https://docs.netapp.com/us-en/cloud-manager-fsx-ontap/use/task-manage-working-environment.html#manage-automatic-capacity)
6.[Create an Amazon FSx for ONTAP working environment](https://docs.netapp.com/us-en/cloud-manager-fsx-ontap/use/task-creating-fsx-working-environment.html)
7.[Set up permissions for FSx for ONTAP](https://docs.netapp.com/us-en/cloud-manager-fsx-ontap/requirements/task-setting-up-permissions-fsx.html#set-up-the-iam-role)
8.[FSx for NetApp ONTAP: Mounting on Linux clients](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/attach-linux-client.html)