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

== 概要

このセクションは *Amazon FSx for NetApp ONTAP* ファイルシステムで利用できる FlexClone 機能について説明します。

=== FlexClone 概要

FlexClone により、ソースボリュームのクローンを作成し、それぞれのボリュームに独立して変更を加えることができます。一般的なユースケースには、本番ボリュームのコピーを作成してテストに使用する開発環境またはテスト環境が含まれます。例えば、データベースのクローンを作成し、変更を本番環境に適用する前にテストすることができます。 FlexClone を使用すると、データを別のボリュームにコピーする必要はありません。
FlexCloneを作成すると、ONTAP は親ボリュームのスナップショットを作成し、FlexClone はこのスナップショットから作成されます。スナップショットは即座に作成されるため、FlexClone はすぐに使用でき、追加のスペースを占有しません。FlexClone ボリュームが作成されると、それを別のボリュームとして管理できます。 FlexClone ボリュームに書き込む新しいデータはすべて新しいブロックに書き込まれ、ディスク上のスペースを使用します。

同じ親ボリュームに対して複数のクローンを作成できます。親ボリュームとFlexCloneボリュームを物理的に別々の2つのボリュームに分割できます。分割すると、共有データブロックは2つの別々のコピーに分割されます。

== 所要時間

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

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

=== FlexClone ステップ

. *FSx for ONTAP Workshop Linux Instance* の SSH 接続に *_戻り_* 、以下のスクリプトを *_実行_* してソースボリュームに (10 x 128 MB ファイル) のデータを生成します。 
+
[source,bash]
----
jobName=$(echo $(uuidgen) | grep -o ".\{6\}$")
count=10
threads=36
blockSize=16M
blockCount=8

mkdir ${MOUNTPOINT}/128MB
seq 1 ${count} | parallel --will-cite -j ${threads} time dd if=/dev/zero of=${MOUNTPOINT}/128MB/dd-${jobName}-{} bs=${blockSize} count=${blockCount}
----
+

. *FSx for ONTAP Workshop Linux Instace* の SSH 接続に *_戻り_* 、*プライマリー* Amazon FSx for NetApp ONTAP ファイルシステムのファイルシステム管理エンドポイントに SSH 接続します。
+
[source,bash]
----
ssh ${ADMINUSER}@${MGMTENDPOINT}
----
+

. 以下のコマンドを *_実行_* して、ボリュームの現在のスナップショットをリストします。
+
[source,bash]
----
vol snapshot show -volume vol1
----
+

. 以下のコマンドを *_実行_* して、新しい FlexClone を作成します。
+
[source,bash]
----
volume clone create -vserver svm08 -flexclone vol1_clone1 -parent-volume vol1
----
+

. 以下のコマンドを *_実行_* して、FlexClone ボリュームをリストします。
+
[source,bash]
----
volume clone show
----
+

. 以下のコマンドを *_実行_* して、もう一度ボリュームのスナップショットをリストします。FlexClone により作成された新しいスナップショットが見えますか？
+
[source,bash]
----
vol snapshot show -volume vol1
----
+

. 以下のコマンドを *_実行_* して、クローンボリュームの Junction Path を作成します。
+
[source,bash]
----
volume mount -vserver svm08 -volume vol1_clone1 -junction-path /vol1_clone1
----
+

. 以下のコマンドを *_実行_* して、ソースボリュームと FlexClone ボリュームで使用される領域をチェックします。
+
[source,bash]
----
volume show -vserver svm08 -volume vol1 -fields size,used,available,percent-used,physical-used,physical-used-percent
volume show -vserver svm08 -volume vol1_clone1 -fields size,used,available,percent-used,physical-used,physical-used-percent
----
+

TIP: FlexClone の作成時に両方のボリュームがデータブロックを共有するため、FlexClone ボリュームでは *物理的に使用される* スペースが少ないことがわかります。親ボリュームまたは FlexClone ボリュームのいずれかに書き込まれた新しいデータは、ボリューム間で共有されません。 FlexClone ボリュームに書き込まれる新しいデータは、ファイルシステムで使用されるスペースの増加につながります。
. 以下のコマンドを *_実行_* して ONTAP CLI セッションを終了します。
+
[source,bash]
----
quit
----
+

. *FSx for ONTAP Workshop Linux Instance* の SSH 接続から、以下のスクリプトを *_実行_* します。
+
[source,bash]
----
CLONEDIR=/clone
sudo mkdir ${CLONEDIR}
sudo mount -t nfs ${NFSENDPOINT}:/vol1_clone1 ${CLONEDIR}
mount | grep ${CLONEDIR}
----
+
. 以下のコマンドを *_実行_* して、マウントポイントの *user:group* をセットします。*Session Manager* から SSH セッションを使用している場合には *ssm-user:ssm-user* のコマンドを *_コピー_* します。*ターミナル* から SSH セッションを使用している場合には *ec2-user:ec2-user* のコマンドを *_コピー_* します。
+
[source,bash]
----
sudo chown ec2-user:ec2-user ${CLONEDIR}

or 

sudo chown ssm-user:ssm-user ${CLONEDIR}

----
+
. 以下のコマンドを *_実行_* して、ソースボリュームと FlexClone ボリュームで返される内容と使用される領域を比較します。 
+
[source,bash]
----
ls -lt ${MOUNTPOINT} ${CLONEDIR}
df -h ${MOUNTPOINT} ${CLONEDIR}
----
+

TIP: 両方のボリュームで同じ内容と使用されるスペースがレポートされているはずです。

. 以下のコマンドを *_実行_* して、FlexClone ボリュームに新しいファイルを作成します。
+
[source,bash]
----
echo "Amazon FSx for NetApp ONTAP workshop - New file on Cloned Volume" >> ${CLONEDIR}/clone.txt
----
+
. 以下のコマンドを *_実行_* して FlexClone ボリュームに新たに 128MB のファイルを作成します。
+
[source,bash]
----
jobName=$(echo $(uuidgen) | grep -o ".\{6\}$")
count=1
threads=1
blockSize=16M
blockCount=8

seq 1 ${count} | parallel --will-cite -j ${threads} time dd if=/dev/zero of=${CLONEDIR}/128MB/dd-${jobName}-{} bs=${blockSize} count=${blockCount}
----
+
. 以下のコマンドを *_実行_* して、ソースボリュームと FlexClone ボリュームで返される内容を比較します。volume. 
+
[source,bash]
----
ls -lt ${MOUNTPOINT} ${CLONEDIR}
df -h ${MOUNTPOINT} ${CLONEDIR}
----
+
. 返される内容と使用されるスペースはまだ同じですか？
+
. *FSx for ONTAP Workshop Linux Instance* の SSH 接続に *__戻り_* 、*_プライマリー_* Amazon FSx for NetApp ONTAP ファイルシステムのクラスター管理エンドポイントに SSH 接続します。
+
[source,bash]
----
ssh ${ADMINUSER}@${MGMTENDPOINT}
----
+

. 以下のコマンドを *_実行_* して、ソースボリュームと FlexClone ボリュームで使用されるスペースをチェックします。
+
[source,bash]
----
volume show -vserver svm08 -volume vol1 -fields size,used,available,percent-used,physical-used,physical-used-percent
volume show -vserver svm08 -volume vol1_clone1 -fields size,used,available,percent-used,physical-used,physical-used-percent
----
+

. FlexClone ボリュームの物理的に使用されるスペースに変化はありましたか？



== 次のセクション

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

image::storage-efficiency.png[link=../07-storage-efficiency/, align="left",width=420]




