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

この記事は[「Amazon FSx for NetApp ONTAPの Snapshotにあるシングルファイルをリストアしてみた - CIFSのAWS AD編」](https://qiita.com/heyanxia/private/f5dda3debc953a44c743)に続き、ADの代わりにWorkgroupを使ってみたいと思います。

そもそも「Snapshotにあるシングルファイルをリストア」とは？疑問をお持ちの方は是非上記の記事を先にご覧ください。
# いきなりまとめ
結果から言うとCIFSの場合は、ADのドメインにジョインせずにWorkgourpを使ってAmazon FSx for NetApp ONTAPのSnapshotにあるシングルファイルのリストアを確認できます。

# Keyword
* Amazon FSx for NetApp ONTAP(FSxN)
AmazonがフルマネージドのNetApp ONTAPファイルシステム上に構築された、信頼性が高く、スケーラブルで、パフォーマンスが高く、機能が豊富なファイルストレージを提供するサービスです。ONTAPファイルシステムの使い慣れた圧縮・重複排除・階層化機能、及びAPIオペレーションと、フルマネージドAWSのネイティブサービスを兼ね備えています。

* NetApp Snapshot
Snapshotイメージは、特定の時点でキャプチャされた、ボリュームの内容の論理的な読み取り専用コピーです。Snapshotを使用して、データ損失からデータを保護できます。Snapshotイメージはテスト環境でも役立ちます。データの仮想コピーを作成することにより、実際のボリューム自体は変更せずに、Snapshotを使用してデータをテストできます。

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

# 手順
1.FSxNとWindowsをAWSに作成
2.FSxNのcifs share Workgroupを作成
3.FSxNのSnapshotを作成、シングルファイルをリストア
検証環境：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/c5f1c1ba-dae2-0aa1-a6cf-6c4a0049548c.png)

# 1.FSxNとWindowsを作成
FSxNとWindowsを同じVPCに作成します。AWS consoleからFSxNの`Standard create`を選んで、テスト用のボリューム`vol1`を作成して、後ほど`cifs-share`の`-path`にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/5ae4dc06-23bb-9fa0-2ff1-11cb336fefe3.png)
FSxNのpasswordを忘れたら、AWS consoleから`Update file system`で変更できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/abcb6c81-a4aa-4709-71d2-628feccc8e70.png)
注意：今回はスナップショットのリストアテストなのでセキュリティスタイルはUnixでボリュームが作られていますが、本番運用する場合は[こちらのコマンドガイド](https://docs.netapp.com/us-en/ontap-cli-9111/volume-modify.html)を参考して`volume modify`で`-security-style`を`ntfs`変更してください。`volume show -volume vol1 -instance`で確認すると、`Security Style:unix`になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/bc6f06d1-0434-b42d-63da-6f3b9fcf7bcb.png)
`volume modify -volume vol1 -security-style ntfs`で変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/ccd4f0c3-d019-6230-c047-68baa5312151.png)
RDPでWindowsにログインする為、Keypairなどを確認した上でWindowsをEC2で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/39555bb7-453b-3791-6919-45c9ad9a30b5.png)

# 2.FSxNのcifs share Workgroupを作成
* Workgroupとcifs-userを作成
SSHでFSxNにログインして、ONTAP CLI([vserver cifs commands](https://docs.netapp.com/us-en/ontap-cli-9111//vserver-cifs-create.html))により、`cifs-server`、`workgroup`、`cifs share`、`user`などそれぞれを作ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/b46aa149-8e86-c749-da51-63690c9f1e83.png)
* FSxNのshare volume pathを指定
ONTAP CLI([vserver cifs share create](https://docs.netapp.com/us-en/ontap-cli-9111/vserver-cifs-share-create.html))を参考して、`vserver cifs share create -vserver fsx -share-name cifs-share -path /vol`で、先程FSxNに作成した`vol1`をpathにして、cifs-shareを作って`vserver cifs share show`で確認します。因みに、`Tab`を押すとcommandが自動に補完してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/c4986a08-2587-c695-fc37-68e895c838c8.png)
最後に、作成したcifs-share instanceを`vserver cifs share show -vserver fsx -share-name cifs-share -instance`で確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/09000209-cf04-76f6-e908-de63b2137052.png)
* Windowsからmount
RDPでWindowsにログインして`net use`でcifs-shareに参加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/5ce10023-1edb-96a7-ad71-fcb41ec04462.png)
ファイルを書き込むことを確認し、テストファイルを作ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/5facc776-5ec6-09db-f8d1-db813b6b6bc9.png)
下記のエラーになった場合は、`vserver security file-directory show -vserver fsx -path /vol1`で書き込む権限があるかを確認します。書き込む権限がない場合はpermissionsを変更します。今回は検証の為、`vol modify -volume vol1 -unix-permissions 777`で追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/2967e75a-8f5b-6575-19bd-60994d78578c.png)
* 複数Windowsからmount
同じ`cifs-user`を使って複数Windowsからアクセスできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/c471e871-2e8a-43da-e950-2a269f8d200d.png)

# 3.FSxNのSnapshotを作成、シングルファイルをリストア
* Snapshotを作成
`volume snapshot create`で上記のcifs-shareに参加したボリュームのsnapshotを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/5c1996ad-e5ea-9403-c328-ff88968cf997.png)
* Snapshotで削除したファイルをリストア
`volume snapshot restore`でSnapshotで撮ったファイルをリストアします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/a701dbef-4a05-47e2-de43-dbe67270f0f8.png)
* シングルファイルをリストア
[「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`でリストアしたいシングルファイルを指定してリストアします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/4711fd69-52bc-6857-df65-fdcca74f4ed9.png)
上記のコマンドの他、`Properties->Previous Versions`をクリックして、ファイルをリストアすることもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2807172/ac02280f-2d1c-4c09-a50d-52020323962d.png)

# まとめ
上記のようにCIFSの場合は、BlueXPのGUIとADのドメインにジョインの他に、ONTAP CLIからWorkgourpを作ってFSxNのSnapshotにあるシングルファイルをリストアできます。BlueXPのconnectorを作成したくない、ADのドメインにジョインするのは面倒臭いと思われている方は、是非こちらの方法をお試してください。

# 参考リンク
1.[Amazon FSx for ONTAP](https://docs.netapp.com/us-en/cloud-manager-fsx-ontap/use/task-creating-fsx-working-environment.html)
2.[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)
3.[Amazon FSx for NetApp ONTAP ADのドメインに参加せずにSMBでファイル共有に接続してみる](https://dev.classmethod.jp/articles/amazon-fsx-for-netapp-ontap-workgroup-cifs-server/)
4.[Amazon FSx for NetApp ONTAPの Snapshotにあるシングルファイルをリストアしてみた - CIFSのAWS AD編]()
5.[ONTAP 9.11.1 commands](https://docs.netapp.com/us-en/ontap-cli-9111/volume-create.html#description)
6.[vserver cifs create](https://docs.netapp.com/us-en/ontap-cli-9111//vserver-cifs-create.html)
7.[volume modify --security-style ntfs](https://docs.netapp.com/us-en/ontap-cli-9111/volume-modify.html#parameters)