NetApp BlueXPを使って、AWS上のNetApp Cloud Volumes ONTAPをcross-regionでレプリケーションしてみた

# はじめに
前回はこちらの記事[「BlueXPのGUIから、AWS上のNetApp Cloud Volumes ONTAPをAmazon FSx for NetApp ONTAPにレプリケーションしてみた」](https://qiita.com/heyanxia/private/47772e6de946d9c87705)で同じリージョンのONTAP(CVOとFSxN)のレプリケーションをご紹介しました。今回は`cross-region`(Tokyo-Osaka)でONTAPのレプリケーションを検証したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/b2fd17d1-e1fc-3d58-e11d-e227962a245a.png)

# いきなりまとめ
結果から言うと、NetApp BlueXPのGUIから簡単な操作で、AWS上のNetApp Cloud Volumes ONTAPをcross-regionでレプリケーションすることができます。

# Keyword
* SnapMirror
SnapMirrorはLANまたはWAN経由で、データを高速にレプリケートできる機能です。仮想環境であるかそうでないかを問わず、高いデータ可用性と高速なデータレプリケーションを実現できます。データをネットアップ ストレージシステムにレプリケートし、セカンダリデータを継続的に更新すると、データは常に最新の状態に保たれ、必要なときにいつでも利用できる状態に保たれます。外部のレプリケーション・サーバは必要ありません。
* BlueXP
ストレージとデータ サービスを統合コントロール プレーンで一元管理し、ハイブリッド マルチクラウド エクスペリエンスを変革します。わかりやすいインターフェイスと強力な自動化により、種類の異なる環境を管理する際のリソースの無駄、複雑さ、リスクを軽減でき、シンプルな運用が実現します。
* Cloud Volumes ONTAP (CVO)
VMインスタンスにONTAPを搭載し、重複排除・圧縮・階層化などの効率化機能を提供する、クラウドストレージサービスです。CVOは、オンプレミスでお使いのアプライアンス型のONTAPと同等の機能を持ち、クラウド上のファイルとブロックのワークロードに対応した高度なデータ管理を実現するSoftware-Defined Storageです。データ保護、セキュリティ、コンプライアンスなどに対応しています。
* VPC Peering
VPC Peeringとは、2つのVPC間でトラフィックをプライベートでルーティングできるネットワーク接続です。どちらのVPCのインスタンスも、同じネットワーク内にあるように通信することができます。VPC Peeringは、同じAWSアカウント、別のAWSアカウント、または別のAWSリージョンの間に作成できます。
# 手順
1.AWS consoleからTokyoとOsakaのVPC Peeringを準備
2.BlueXPのGUIにより、TokyoとOsakaにCVOを作成
3.BlueXpのGUIにより、CVOをcross-regionでレプリケーション
構成図：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/f27db196-415d-f779-7abe-57f77aeb4fe2.png)

# 1.AWS consoleからTokyoとOsakaのVPC Peeringを準備
VPC Peeringの為にIPv4 CIDRが`Overlapping`しないように、Tokyoの方を`10.0.0.0/16`、Osakaの方を`10.1.0.0/16`にしてそれぞれのVPCを作成します。最後はこのような`Route tables`になります。
* Tokyo Route tables
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/8ff1fbf0-7cc4-ecf7-1855-2cf4ab41c135.png)
* Osaka Route tables
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/cce15fec-cc12-689d-1986-e7157103c9d8.png)
では、`Tokyo VPC->Osaka VPC->Peering->Modify Route talbes`の順番で作成します。
* Tokyo VPC
AWS consoleから`Tokyo`リージョンに`vpc and more`を選び、`IPv4 CIDR`を`10.0.0.0/16`にしてVPCを作成します。今回は`private subnet、NAT gateways、VPC endpints`を利用せずに、`public subnets`のみでレプリケーションを検証します。本番の場合は条件に合わせてVPC endpints(S3の為とか)などを確認してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/dad72512-1bdc-f555-48a6-abf1c458ba0b.png)
二つの`Subnets`と`Route tables`が自動に作成されて、`Non-Main`のroute tableに二つsubnetsが`Explicit subnet associations`になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/a1a975f0-f7ad-65df-b1c7-c1b77ecfb765.png)
Subnetsの`Auto-assign public IPv4 address`を、defaultの`No`を`Yes`に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/135ffc55-df30-2f05-4047-ddab9f04d7c3.png)
* Osaka VPC
Osakaリージョンに切り替え、同じ手順で`vpc and more`を選び、`IPv4 CIDR`を`Overlapping`しないように`10.1.0.0/16`にしてVPCを作成します。検証のため、シンプルに`シングル AZ、一つpublic subnet`にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/5b284f08-c1c7-52d7-6442-8f452ac8beee.png)
同じように、Subnetsの`Auto-assign public IPv4 address`を、defaultの`No`を`Yes`に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/395b598d-839f-0c8e-6532-15b00619cc3d.png)
* Peering
`Tokyo`リージョンに切り替え、`Peering connections -> Create peering connection`をクリックして、下記の図のように必要な情報を確認して、TokyoからOsakaにPeering リクエストを出します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/b1a4a542-08ec-3746-f55c-3e9a2b3b84f1.png)
`Create peering connections`をクリックすると、両方のリージョンで`Pending acceptance`状態になります。`Accept`の有効期間は一週間になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/c2f510ee-8ea9-1c57-d4ff-02c80fe26803.png)
Osakaから詳細を確認して`Accept request`します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/c1f8d0e8-a293-d372-a84d-79dc9bbba3da.png)
* Modify Route talbes
`Accept`すると、Tokyo側で`Active`、Osaka側で`Provisioning`になり、少し待つと`Active`になります。`Modify my route tables now`をクリックしてOsaka側のRouteにTokyo VPCを追加します。Tokyo側でも同じように`Edit Route -> peered VPC IP CIDR(Osaka)`を入れて、 `peering connection`を選択してOsaka VPCを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/049d77aa-30d6-14e7-4d77-74fb0421a9ad.png)
ここまではVPC Peeringの準備が完了です。

# 2.BlueXPのGUIにより、TokyoとOsakaにCVOを作成
[「BlueXPのConnecorとCVOをAmazon Cloudに作成」](https://qiita.com/heyanxia/private/d1a72eec868ed8f57386#1bluexp%E3%81%AEconnecor%E3%81%A8cvo%E3%82%92amazon-cloud%E3%81%AB%E4%BD%9C%E6%88%90)と[「CVO: Quick start for Cloud Volumes ONTAP in AWS」](https://docs.netapp.com/us-en/cloud-manager-cloud-volumes-ontap/task-getting-started-aws.html)を参照して、先程作成したVPC、KeyPair、Security Groupなどを確認した上でBlueXPのConnectorをTokyoリージョンに作成してから、TokyoとOsakaリージョンにそれぞれのCVOを作成します。今回はレプリケーションを検証する為、`Cloud Tiering、Cloud Backup、Data Sense`を`off`、`No Storage Efficiency`と`Freemium(up to 500GiB)`にします。
* Tokyo CVO
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/b8f2e945-90c2-52cd-35c9-7e5226d03485.png)
* Osaka CVO
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/d250d3f5-0774-0697-74d2-aa521accf91b.png)

# 3.BlueXPのGUIにより、CVOをcross-regionでレプリケーション
* OsakaからTokyoにレプリケーション
BlueXPのGUIから上記で作成した`OsakaCVO`を`TokyoCVO`にドラッグして`Replication`を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/2129c624-5b8b-08fa-91a4-2105abe4227a.png)
Wizardに従い、レプリケーションしたいボリューム`nfs`を選び、`Destination`を`TokyoCVO`にして新しい`nfs_copy`ボリュームを作成する形で、S3 Tieringせずに`General purpose SSD`でレプリケーションします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/53acbd84-e1ee-e811-777b-ec882ecadc5d.png)
今回はdefaultの`100MB/s`と`Mirror`でスケジュールを`10min`に設定してレプリケーションが自動で実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/dcf43acc-a27d-b7e1-beed-75a3e56a74ae.png)
最後に`Source`側(OsakaCVO)と`Destination`側(TokyoCVO)の情報をレビューして`Go`します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/9bd1a546-85a0-d65b-0cce-f88a368bd7e1.png)
BlueXPのGUI`Protection->Replication`からレプリケーションの状況を確認できます。また`OsakaCVO->Replications`からも詳細が見られます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/0433b329-496c-8134-5ae1-22b352a37514.png)
CVOに`ssh -i YourKeyPair admin@YourCVOPublicIP`でログインして、`vserver peer show -vserver svm_OsakaCVO`、`vserver peer show -vserver svm_OsakaCVO -instance`でpeeredになってることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/bcca14e0-982e-51d8-ecca-4ccb7782c9b9.png)
* TokyoからOsakaにレプリケーション
既に一方からのレプリケーションが構築されていても、逆の方向でもできます。同じような手順で、今度`TokyoCVO`にあるボリューム`nfs`を`OsakaCVO`に新しいボリューム`nfs_copyfromTokyo`を作成する形でレプリケーションします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/9c87bd8d-1162-1c77-037e-1d7532be68f9.png)
それぞれの情報を確認して`Go`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/d1a4c9b4-d680-399d-b229-8f492b7f1558.png)
レプリケーションができると、両方矢印がつけられ、TokyoCVOの`Replicaiton Target`が`1`になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/673c4592-6816-f860-7eab-89c09ca8928b.png)

# 注意事項
* VPC Peeringの為、それぞれのIP CIDRが`Overlapping`しない
* VPCを作成した後に、自動作成された`Non Default subnet`の`Auto-assign public IPv4 address`を`No`から`Yes`に変更
 
# 最後に
今回はAWS VPC Peeringして`cross-region`で東京と大阪にあるNetApp Cloud Volumes ONTAPの間でレプリケーションができることを検証しました。NetApp Cloud Volumes ONTAPとFSx for NetApp ONTAPの間でも同じようなことができます。次回は`cross-region`で大阪にあるCVOと東京にあるFSxNの間でレプリケーションできるかを検証してみたいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991583/61b9b814-167d-ef5d-6ccb-189f28426e78.png)

# 参考リンク
1.[BlueXP: Learn about the Replication service](https://docs.netapp.com/us-en/cloud-manager-replication/concept-replication.html)
2.[Cluster and SVM administrators](https://thinksystem.lenovofiles.com/storage/help/index.jsp?topic=%2Fsystem_administration_guide%2F898FA106-B271-46E9-A6C8-17603C1AA733_.html)
3.[What SVMs are](https://library.netapp.com/ecmdocs/ECMP1354558/html/GUID-E643017F-041B-4ECC-BEA1-E4D80E26A47E.html)
4.[Compatible ONTAP versions for SnapMirror relationships](https://docs.netapp.com/us-en/ontap/data-protection/compatible-ontap-versions-snapmirror-concept.html#unified-replication-relationships)
5.[CVOを作成、上記のADにジョインしたCIFSボリュームを追加](https://qiita.com/heyanxia/items/bbad38b3d41c195d3df2#3cvo%E3%82%92%E4%BD%9C%E6%88%90%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%9Fcifs%E3%83%9C%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%A0%E3%82%92%E8%BF%BD%E5%8A%A0)
6.[CVO: Quick start for Cloud Volumes ONTAP in AWS](https://docs.netapp.com/us-en/cloud-manager-cloud-volumes-ontap/task-getting-started-aws.html)
7.[BlueXPのConnectorとCVOをAmazon Cloudに作成](https://qiita.com/heyanxia/private/d1a72eec868ed8f57386#1bluexp%E3%81%AEconnecor%E3%81%A8cvo%E3%82%92amazon-cloud%E3%81%AB%E4%BD%9C%E6%88%90)
8.[Learn about replication policies](https://docs.netapp.com/us-en/cloud-manager-replication/concept-replication-policies.html)
9.[SnapMirrorソフトウェア：ユニファイド レプリケーションで迅速なリカバリを実現](https://www.netapp.com/ja/cyber-resilience/data-protection/data-backup-recovery/snapmirror-data-replication/)
10.[Prerequisites for cluster peering](https://docs.netapp.com/us-en/ontap-sm-classic/peering/reference_prerequisites_for_cluster_peering.html)
11.[vserver peer show](https://docs.netapp.com/us-en/ontap-cli-9121//vserver-peer-show.html)
12.[BlueXPのGUIから、AWS上のNetApp Cloud Volumes ONTAPをAmazon FSx for NetApp ONTAPにレプリケーション](https://qiita.com/heyanxia/private/47772e6de946d9c87705)
13.[Cluster and SVM peering workflow](https://docs.netapp.com/us-en/ontap-sm-classic/peering/concept_cluster_peering_workflow.html)