Amazon FSx for NetApp ONTAPの Snapshotにあるシングルファイルをリストアしてみた - CIFSのAWS AD編

# はじめに
Amazon FSx for NetApp ONTAP(FSxN)のSnapshotをリストアする方法は下記の図の様に、NetApp BlueXPのGUIから簡単にできます。CIFSの場合はAWSのDirectory Service(AD)にジョイン、またはWorkgroupに参加してONTAP CLIでとったSnapshotを確認できます。この記事ではAWS ADにジョインする方法を検証したいと思います。

そもそも「Snapshotにあるシングルファイルをリストア」とは？
「Snapshotにあるシングルファイルをリストア」とは、ある特定のタイミングでバックアップをとった塊（ネットアップの場合はSnapshotと読んでいます）の中から「１つの特定のファイルのみをリストアすること」をシングルファイルリストアと呼んでいます。それに対し、バックアップをとった塊（Snapshot）をそのままリストアすることを「Volume リストア」などのように呼んでいます。
では、その塊（Snapshot）の中から「１つの特定のファイルのみをリストアする」ことは本当にできますか？この記事でやってみたいと思います。

* BlueXPのGUIからSnapshotの作成とリストア
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/dffb8ce2-6465-8917-25ac-42ab0f2a146d.png)


# Keyword
* Amazon FSx for NetApp ONTAP(FSxN)
AWSがフルマネージで提供している、NetAppのONTAPファイルシステムを用いたサービス。信頼性が高く、スケーラブルで、パフォーマンスが高く、機能が豊富なファイルストレージを提供するサービスです。これまでONTAPで非常によく使われてきた圧縮・重複排除・階層化機能、及びAPIオペレーションといった機能を、AWSがフルマネージで提供しています。
* NetApp Snapshot
Snapshotイメージは、特定の時点でキャプチャされた、ボリュームの論理的な読み取り専用コピーです。Snapshotを使用して、データ損失からデータを保護できます。Snapshotイメージはテスト環境でも役立ちます。データの仮想コピーを作成することにより、実際のボリューム自体は変更せずに、Snapshotを使用してデータをテストできます。

* Workgroup
Workgroupは、Windowsの標準機能で、Active Directoryドメインなしでワークステーションを操作できます。これにより、DCを介さずにデータを認証および提供できます。

* AWS Managed Microsoft AD
AWSが提供するマネージドなActive Directoryのサービスです。AWSクラウドで簡単にディレクトリをセットアップしたり、AWS リソースを既存のオンプレミス Microsoft Active Directory に接続したり、ディレクトリを作成することができます。

# 手順
1.AWS AD、WindowsファイルサーバーとFSxNの準備
2.FSxNのSnapshotを作成、シングルファイルをリストア
構成イメージ：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/05932ead-afa0-91cf-7bf0-513e47d598d7.png)

# 1.AWS AD、WindowsファイルサーバーとFSxNの準備
* AWS ADとWindowsファイルサーバー(EC2)
[「AWS Managed Microsoft ADを設定」](https://qiita.com/heyanxia/items/bbad38b3d41c195d3df2#1aws-managed-microsoft-ad%E3%82%92%E8%A8%AD%E5%AE%9A)を参照してAWS ADを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/312c8238-de15-b5ec-c9f9-404e895863e7.png)
[「EC2に上記のADにジョインしたWindowsサーバを立ち上げ」](https://qiita.com/heyanxia/items/bbad38b3d41c195d3df2#2ec2%E3%81%AB%E4%B8%8A%E8%A8%98%E3%81%AEad%E3%81%AB%E3%82%B8%E3%83%A7%E3%82%A4%E3%83%B3%E3%81%97%E3%81%9Fwindows%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92)を参考して、Domainにジョインする為のIAM RoleとPermission、RDPでログインする為のKeypairなどを確認した上で同じVPCにWindowsをEC2で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/61fb8550-0e68-1887-70f5-11fd093b656c.png)
RDPでWindowsにログインして、Server Managerから`Add roles and features -> Next...->Select featuresのFeatures`を下記の図の様にチエックを入れて、`Role Administration Tools`と`DNS Server Tools`をインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/a91265d1-4cd6-432f-ef96-1cadfa8c65e5.png)
Restartして`Advanced system settings`からDomainを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/3670b11b-c8cf-5647-5a72-86c64cdcbadb.png)
* FSxN
[こちらの記事](https://qiita.com/heyanxia/items/9c62781fdc045a93b3b5#2fsxn%E3%81%A8cloud-sync%E3%82%92%E4%BD%9C%E6%88%90)を参照して、下記の赤いマークを注意して上記のWindowsと同じVPCにFSxNを作成します。うまくいかない場合はこちらの[「注意事項」](https://qiita.com/heyanxia/items/9c62781fdc045a93b3b5#2fsxn%E3%81%A8cloud-sync%E3%82%92%E4%BD%9C%E6%88%90)をご確認ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/e79f65ab-a22a-941a-6f96-e1cd6862bf00.png)
BlueXPのGUI、またはONTAP CLI([create volume - Security Styleで](https://docs.netapp.com/us-en/ontap-cli-9111/volume-create.html#parameters))からFSxNにcifs volumeを追加できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/411e86bd-a63a-9ef7-d57b-8e5e666954ac.png)
Mountしてテスト用のファイルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/1502b496-4ff1-8a89-2fd5-1f4f9288cf20.png)

# 2.FSxNのSnapshotを作成、シングルファイルをリストア
* FSxNのSnapshotを作成
SSHでFSxNにログインして、[ONTAP CLI command](https://docs.netapp.com/us-en/ontap-cli-9111/volume-snapshot-show.html)を参照してSnapshotを作成します。FSxNを作成する時に`Default hourly`で自動にSnapshotを作成するので、`volume snapshot show`で自動作成されたSnapshotを確認できます。

```
$ ssh fsxadmin@management.fs-0ac2e505c63ce53fd.fsx.ap-northeast-1.amazonaws.com
FsxId0ac2e505c63ce53fd::> volume snapshot show -vserver fsx -volume cifs
FsxId0ac2e505c63ce53fd::> volume snapshot create -vserver fsx -volume cifs -snapshot fsxn-cifs-snapshot-12091005
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/5aacf5e4-252a-f345-f680-c5a0ed8dac25.png)

* Snapshotをリストア
テストとしてWindowsにあるファイルを削除して、上記で作成した`fsxn-cifs-snapshot-12091005`を`volume snapshot restore`でリストアします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/e3153b3b-ba2d-9a23-07bf-dd5d3339d380.png)

* Snapshotにあるシングルファイルをリストア
[「Restore a single file from a Snapshot copy」](https://docs.netapp.com/us-en/ontap/data-protection/restore-single-file-snapshot-task.html)を参照し、`volume snapshot restore-file -vserver SVM -volume volume -snapshot snapshot -path file_path -restore-path destination_path`より、ファイルをリストアできます。それぞれのパラメーターの詳細は[「volume snapshot restore-file」](https://docs.netapp.com/us-en/ontap-cli-9111/volume-snapshot-restore-file.html#description)から確認できます。下記の図のように、`-path`でSnapshotの中のリストアしたいファイルを指定します。ボリュームを指定しない場合はDefaulで`root`ボリュームのSnapshotに探し行きます。また、`option`ですが、`-restore-path`で`destination location`を指定することもできます。指定しない場合はdefaultで元の`-path`の場所にリストアされます。リストアする時に、`-path`と`-restore-path`などのパラメーターを確認しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/038a6756-ad56-be77-4c0b-63b275a39f9b.png)
今回は元の場所にリストアするので、`-restore-path`を省略して`-path`でリストアしたいシングルファイルを指定してリストアします。ディレクトリの中のシングルファイルをリストアする場合はディレクトリを含めて`path`に入れる必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/b78a3b8d-9f79-f11c-79b7-4da274bce53c.png)
実際commandの他に、`Properties->Previous Versions`をクリックして、ファイルをリストアすることもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/9fa538e7-0703-f3a9-cc5e-3d8fce09d685.png)


# まとめ
AWS ADにジョインしたAmazon FSx for NetApp ONTAPの Snapshotにあるシングルファイルを、ONTAP CLIにより、リストアできました。次回はAWS ADの代わりに、Workgourpで試してみます。
# 参考リンク
1.[Amazon FSx for ONTAP](https://docs.netapp.com/us-en/cloud-manager-fsx-ontap/use/task-creating-fsx-working-environment.html)
2.[「AWS Managed Microsoft ADを設定」](https://qiita.com/heyanxia/items/bbad38b3d41c195d3df2#1aws-managed-microsoft-ad%E3%82%92%E8%A8%AD%E5%AE%9A)
3.[ONTAP Knowledge Base: ONTAP では、ワークグループモードは CIFS/SMB でサポートされていますか。](https://kb-ja.netapp.com/Advice_and_Troubleshooting/Data_Storage_Software/ONTAP_OS/Is_Workgroup_Mode_Supported_for_CIFS_or_SMB_in_ONTAP)
4.[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)
5.[ONTAP 9.11.1 commands](https://docs.netapp.com/us-en/ontap-cli-9111/volume-create.html#description)
6.[Join an EC2 instance to your AWS Managed Microsoft AD directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html)
7.[AWS Managed Microsoft ADを構築してユーザー追加まで](https://www.yamamanx.com/aws-managed-microsoft-ad-user-add/)
8.[NetApp Cloud Syncを使ってWindowsにあるファイルをFSxNに同期](https://qiita.com/heyanxia/items/9c62781fdc045a93b3b5#netapp-cloud-sync%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6windows%E3%81%AB%E3%81%82%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92fsxn%E3%81%AB%E5%90%8C%E6%9C%9F)
9.[Amazon Cloud上でWindowsファイルサーバーのデータをNetApp Cloud Volumes ONTAPに同期](https://qiita.com/heyanxia/items/bbad38b3d41c195d3df2)
10.[[Amazon FSx for NetApp ONTAP] ADのドメインに参加せずにSMBでファイル共有に接続してみる](https://dev.classmethod.jp/articles/amazon-fsx-for-netapp-ontap-workgroup-cifs-server/)
11.[Join a Computer to a Domain](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/deployment/join-a-computer-to-a-domain)