= FlexCache
:toc:
:icons:
:linkattrs:
:imagesdir: ../resources/images

== 概要

このセクションでは、*Amazon FSx for NetApp ONTAP* ファイルシステムに FlexCache をセットアップし、データセットまたはボリューム全体をコピーするのではなく、アクティブに読み取られたデータのみをキャッシュする方法について説明します。 FlexCacheを使用して次のことができます。

* 地震解析、メディアレンダリングワークフロー、チップ設計、財務シミュレーションなどの読み取り集約型アプリケーションのスループットを向上させます。
* 別リージョンからの Amazon FSx for NetApp ONTAP ファイルシステムのデータへの低レイテンシー アクセスを提供し、ワークフローを複数の AWS リージョン間またはオンプレミスの NetApp 環境に拡張します。
* FSx ファイルシステムに FlexCache ボリュームを作成し、それをオンプレミスの NetApp ストレージのオリジン ボリュームにリンクすることで、ワークロードをクラウドにバーストします。


=== FlexCache の概要

FlexCache ボリュームは、オリジン ボリュームとも呼ばれるソース ボリュームのキャッシュとして機能し、頻繁にアクセスされるデータを格納する、まばらに配置されたボリュームです。ファイルが FlexCache ボリュームで使用できない場合、そのファイルは元のボリュームから読み取られ、クライアントに提供されます。その後のデータへのアクセスは、低レイテンシーで高速になります。

メディアレンダリング、自動電子設計(EDA)、金融アプリケーション、およびその他のユースケースは多くの場合、ある地域で生成して、別の地域のコンピューティング インスタンスまたはエンドユーザー ワークステーションから低レイテンシーでのアクセスが求められます。データを2番目のリージョンの別のボリュームに複製してローカルで使用できるようにすることはできますが、これは理想的ではありません (データの複製、追加のインフラストラクチャ、複製による遅延、管理オーバーヘッドなど)。代わりに、FlexCache ボリュームを使用してデータへのアクセスを高速化するか、読み取りが集中するボリュームへのトラフィックをオフロードします。同じファイルシステムに FlexCache ボリュームを配置して、頻繁にアクセスされるデータのパフォーマンスを向上させたり、別のリージョンの複数のファイルシステムにデータを分散して WAN のレイテンシーを短縮したりできます。FlexCache ボリュームを FSx に作成し、オンプレミスの NetApp ストレージにあるオリジン ボリュームにリンクしてクラウドにバーストするか、データへの低レイテンシー アクセスを提供するために別の AWS リージョンまたはオンプレミスの NetApp ファイラーに FlexCache ボリュームを作成して、FSx 上のオリジン ボリュームにリンクすることができます。


== 所要時間

NOTE: このセクションを完了するのに約 10 分かかります。


== ステップ-バイ-ステップ ガイド (FlexCache)

IMPORTANT: 続ける前に全てのステップを読んでください。

//image::xxx.gif[align="left", width=600]


=== クラスター ピアリング 関係の確認

. *FSx for ONTAP Workshop Linux Instance* の SSH 接続に *_戻り_*、*プライマリー* ファイルシステム管理エンドポイントに SSH 接続します。
+
[source,bash]
----
ssh ${ADMINUSER}@${MGMTENDPOINT}
----
+
. 新しいターミナルウィンドウで、*FSx for ONTAP Workshop Linux Instance* への新しい SSH 接続を *_作成_* し、*セカンダリー* ファイルシステム管理エンドポイントへ SSH 接続します。 
+
[source,bash]
----
ssh ${ADMINUSER}@${DRMGMTENDPOINT}
----
+
. クラスター ピア関係がすでに存在するかどうかを *_確認_* します。このワークショップの SnapMirror セクションを完了している場合、クラスターはすでにピアリングされています。
+
[source,bash]
----
cluster peer show
----
+
. ファイルシステムがすでにピアリングされている場合は、以下のコマンドを *_実行_* して *プライマリー* ファイルシステムの ONTAP CLI セッションを終了し、*FSx for ONTAP Workshop Linux Instance* に戻ります。
+
[source,bash]
----
quit
----

=== テストデータの生成

. *FSx for ONTAP Workshop Linux Instance* の SSH セッションに *_戻り_*、以下のスクリプトを実行して 1 GB のファイルを作成します。
+
[source,bash]
----
mkdir ${MOUNTPOINT}/1GB
threads=1
filesize=1024000
filecount=1
sudo python3 /home/ec2-user/smallfile/smallfile_cli.py --operation create --threads $threads --file-size $filesize --files $filecount --top ${MOUNTPOINT}/1GB &
----


=== クラスターと SVM ピアリング関係の作成


NOTE: このワークショップの SnapMirror セクションですでに作成されている場合は、クラスターと SVM ピアリングの手順をスキップします。

. *FSx for ONTAP Workshop Linux Instance* の SSH 接続に *_戻り_*、*プライマリー* ファイルシステム管理エンドポイントに SSH 接続します。
+
[source,bash]
----
ssh ${ADMINUSER}@${MGMTENDPOINT}
----
+
. *プライマリー* ファイルシステムで ONTAP CLI を使用して以下のコマンドを *_実行_* して、クラスター間 LIF の IP アドレスとクラスター名を取得します。ファイルシステムが既にピアリングされている場合は、この手順をスキップしてください。
+
[source,bash]
----
network interface show -service-policy default-intercluster
----
+
. *セカンダリー* ファイルシステムで ONTAP CLI を使用してコマンドを *_繰り返し_*、クラスタ間 LIF の IP アドレスを取得します。ファイルシステムがすでにピアリングされている場合は、この手順をスキップしてください。
+
[source,bash]
----
network interface show -service-policy default-intercluster
----
+
. *セカンダリー* ファイルシステムからクラスター ピアリングを *_初期化_* します。IP アドレスを *プライマリー* ファイルシステムのクラスタ間 LIF の IP アドレスに置き換えます。プロンプトが表示されたらパスフレーズを入力します。ファイルシステムがすでにピアリングされている場合は、この手順をスキップしてください。
+
[source,bash]
----
cluster peer create -peer-addrs x.x.x.x,y.y.y.y
----
+
. ソース ファイルシステムからクラスター ピアリングを *_Accept_* します。IP アドレスを *セカンダリー* ファイルシステムのクラスタ間 LIF の IP アドレスに置き換えます。プロンプトが表示されたらパスフレーズを入力します。プロンプトが表示されたら、前に作成したパスフレーズを入力します。ファイルシステムがすでにピアリングされている場合は、この手順をスキップしてください。
+
[source,bash]
----
cluster peer create -peer-addrs x.x.x.x,y.y.y.y
----
+
. クラスターピア関係が正常に作成されたことを *_確認_* します。ファイルシステムがすでにピアリングされている場合は、この手順をスキップしてください。
+
[source,bash]
----
cluster peer show -instance
----
+
. *セカンダリー* ファイルシステムからの既存の SVM ピア関係を *_確認_* します。
+
[source,bash]
----
vserver peer show
----
+
. *プライマリー* ファイルシステムからの SVM ピア関係を *_初期化_* します。*プライマリー* のソース SVM 名、*セカンダリー* ファイルシステムのデスティネーション SVM 名、および以下のクラスター名 (例：FsxId003d1df7268e711aa) を *_置き換え_* ます。
+
[source,bash]
----
vserver peer permission create -peer-cluster <peer cluster name> -vserver svm08 -applications flexcache
vserver peer create -vserver svm08 -peer-vserver svm01 -peer-cluster <peer cluster name> -applications flexcache
----
+
. *プライマリー* ファイルシステムのピア関係のステータスを *_確認_* します。ステータスは *_Initiated_* と表示されます。
+
[source,bash]
----
vserver peer show-all
----
+
. *セカンダリー* ファイルシステムの SVM ピアを *_確認_* します。ステータスは *_pending_* と表示されます。
+
[source,bash]
----
vserver peer show
----
+
. *セカンダリー* ファイルシステムからの保留中のピア関係を *_承認_* します。
+
[source,bash]
----
vserver peer accept -vserver svm01 -peer-vserver svm08
----
+
. クラスター ピア関係が *セカンダリー* ファイルシステムから正常に作成されたことを *_確認_* します。
+
[source,bash]
----
cluster peer show
----
+
. SVM ピア関係が *セカンダリー* ファイルシステムから正常に作成されたことを *_確認_* します。
+
[source,bash]
----
vserver peer show
----

=== FlexCache の作成 

TIP: FlexCache のベストプラクティスの詳細については、link:https://www.netapp.com/pdf.html?item=/media/7336-tr4743pdf.pdf[FlexCache Best Practices] を参照してください。

. *プライマリー* ファイルシステムから以下のコマンドを *_実行_* して、vserver に FlexCache 権限を追加します。ソース SVM 名(vserver)を *プライマリー* ファイルシステムの SVM に *置き換え*、peer-vserver 名を *セカンダリー* ファイルシステムの SVM に置き換えます。
+
[source,bash]
----
vserver peer modify -vserver svm08 -peer-vserver svm01  -applications snapmirror,flexcache
----
+
. *セカンダリー* ファイルシステムからの既存の FlexCache 関係を *_確認_* します。
+
[source,bash]
----
volume flexcache show
----
+
. *セカンダリー* ファイルシステムで以下のコマンドを実行して、FlexCache ボリュームを *_作成_* します。
+
[source,bash]
----
volume flexcache create -vserver svm01 -volume cachevol -aggr-list aggr1 -size 100G -origin-vserver svm08 -origin-volume vol1 -aggr-list-multiplier 2
----
+
. *セカンダリー* ファイルシステムから FlexCache 関係を *_確認_* します。
+
[source,bash]
----
volume flexcache show
----
+
. *プライマリー* ファイルシステムから FlexCache 関係を *_確認_* します。
+
[source,bash]
----
volume flexcache origin show-caches 
----
+
. *セカンダリー* ファイルシステムから以下のコマンドを *_実行_* して、FlexCache ボリュームの Junction Path を作成します。
+
[source,bash]
----
volume mount -vserver svm01 -volume cachevol -junction-path /cachevol
----
+
. 以下のコマンドを *_実行_* して、ONTAP CLI セッションを終了し、*FSx for ONTAP Workshop Linux Instance* に戻ります。
+
[source,bash]
----
quit
----
+
. 以下のスクリプトを *_実行_* して、FlexCache ボリュームとオリジン(ソース)ボリュームの内容を比較します。
+
[source,bash]
----
CACHEMOUNT="/cache"
sudo mkdir ${CACHEMOUNT}
sudo mount -t nfs ${DRNFSENDPOINT}:/cachevol ${CACHEMOUNT}
df -h ${MOUNTPOINT} ${CACHEMOUNT}
ls -lt ${MOUNTPOINT} ${CACHEMOUNT}
----
+

TIP: FlexCache ボリュームがオリジン ボリュームとまったく同じプロパティを示していることがわかります。オリジン ボリュームよりも小さい FlexCache ボリュームを作成し、ワーキング データセットに適合するのに十分なサイズにすることができます。ファイルにアクセスすると、ファイルは FlexCache ボリュームにインポートされます。

+
. *FSx for ONTAP Workshop Linux Instance* の SSH 接続に *_戻り_*、*セカンダリー* ファイルシステム管理エンドポイントに SSH 接続します。
+
[source,bash]
----
ssh ${ADMINUSER}@${DRMGMTENDPOINT}
----
+
. 以下の ONTAP CLI コマンドを *_実行_* して、*プライマリー* ファイルシステムのソース ボリュームで使用されている *論理* 領域および *物理* 領域を確認します。
+
[source,bash]
----
vol show -volume vol1 -fields logical-used,physical-used
----
+
. 以下の ONTAP CLI コマンドを *_実行_* して、*セカンダリー* ファイルシステムのソース ボリュームで使用されている *論理* 領域および *物理* 領域を確認します。
+
[source,bash]
----
vol show -volume cachevol -fields logical-used,physical-used
----
+
. これらは同一ですか？

. *セカンダリー* ファイルシステムから以下の ONTAP CLI コマンドを *_実行_* して、ファイルが事前取り込みされていることを確認します。高度な特権モードで続行するようにプロンプトから求められたら、*y* と *_入力_* します。ファイルパス *1GB/file_srcdir/ip-10-0-0-17.us-east-2.compute.internal/thrd_00/d_000/_ip-10-0-0-17.us-east-2.compute.internal_00_1_* を Linux インスタンスのパスに置き換えます。これは *${MOUNTPOINT}* ディレクトリ配下にあります。 
+
[source,bash]
----
set -privilege advanced
flexcache prepopulate start -cache-volume cachevol -path-list 1GB/file_srcdir/ip-10-0-0-17.us-east-2.compute.internal/thrd_00/d_000/_ip-10-0-0-17.us-east-2.compute.internal_00_1_
set -privilege admin
----
+
. *セカンダリー* ファイルシステムの ONTAP CLI セッションに *_戻り_*、使用されている *論理* 領域および *物理* 領域を確認します。
+
[source,bash]
----
vol show -volume cachevol -fields logical-used,physical-used
----
+
. 使用率は変化しましたか？


== 次のセクション

下のボタンをクリックして次のセクションに移動します。

image::elastic-tiering.png[link=../10-tiering/, align="left",width=420]




