2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ONTAPでボリュームを「実データのコピーなしで複製(クローン)」する方法

Last updated at Posted at 2025-08-14

はじめに

はじめまして。ユニアデックス株式会社でストレージ関連のエンジニアをしています、内田です。
今回はNetApp FAS/AFFの基本ライセンスで活用可能な機能であり、マルチテナントを実現する機能の一つであるSVMと、volumeの基本的な部分について取り上げたいと思います。

SVM

NetApp(ONTAP)になじみがない方であれば、聞いたこともない単語かもしれませんが、これが[Storage Virtual Machine]の頭文字だとわかれば難しくはありません。NetApp内部に作られるVM(仮想マシン)です。
※もちろん一般的な意味でのVMではないので、この中でWindowsやLinuxのような一般的なOSが動作するわけではありません。その意味ではコンテナ(OS上で動作するプロセスという意味で)に近いものです。(ただし後述するように一般的なコンテナの挙動とも少し違います)
なお、かつてSVMはVserverと呼ばれていたこともあり、コマンド操作などでは"svm"よりも"vserver"が使われます。

何が嬉しいのか?

NetAppで多い使われ方はやはりファイルサーバです。
各部署で管理していた家庭用・SOHO用のNASを情報システム部門が集約・統合して管理する、というお話は20年以上前からよくあるものですが、この時に1台のファイルサーバに整理・集約するための時間をかけられるケースは、実際のところ、あまり多くありません。
各ファイルサーバ/NASのIPアドレス・ホスト名・その中に設定されているアクセス権やローカルユーザも全部まるっと引き継いで集約してほしい、なんてことも珍しくありませんが、これがSVMを使うことで可能になります。
SVMは個別のIPアドレス(LIF)を持つことができ、それぞれが独自にファイルサービスとしての設定を持ちます。
このため、SVM#1はドメインA所属、SVM#2はドメインB所属、SVM#3はWORKGROUP環境、などということが可能になります。

環境の確認(やってみる、その1)

前提の確認

ファイルサーバが1つ設定されているNetApp環境をイメージしてみましょう。
※今回はNetApp社が提供するデモ環境であるLab on Demandを使用します。
 また管理用の設定など一部の結果表示は省略しています。

cluster1::> vserver show
                               Admin      Operational Root
Vserver     Type    Subtype    State      State       Volume     Aggregate
----------- ------- ---------- ---------- ----------- ---------- ----------
(略)
svm1_cluster1
            data    default    running    running     svm1_      aggr1
                                                      cluster1_
                                                      root
n entries were displayed.

cluster1::>
cluster1::> volume show -vserver svm1_cluster1
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm1_cluster1
          svm1_cluster1_root
                       aggr1        online     RW         20MB    17.71MB    6%
svm1_cluster1
          volmulti     aggr1        online     RW         10GB     9.50GB    0%
2 entries were displayed.

cluster1::>
cluster1::> vserver cifs show
            Server          Status    Domain/Workgroup Authentication
Vserver     Name            Admin     Name             Style
----------- --------------- --------- ---------------- --------------
svm1_cluster1
            CIFS1           up        DEMO             domain

cluster1::>
cluster1::> cifs share show
Vserver        Share         Path              Properties Comment  ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm1_cluster1  volmulti      /volmulti         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
n entries were displayed.

cluster1::> 

ここまで超簡単解説・その1:
[svm1_cluster1]という名前のSVM(vserver)が作成されており、このSVMには[volmulti]という名前のvolume(10GB)があります。
[svm1_cluster1]は[CIFS1]の名前で[DEMO]ドメイン(AD)に参加しており、[volmulti]volumeに[volmulti]の名前でCIFS共有(Everyone/Full Controll)が作成されています。

Windows Serverでのファイルサーバ設定に慣れている方の場合、SVM名とCIFSサーバ名が別になっていることに違和感を覚えるかもしれません(Windowsの場合、両方ともOSのコンピュータ名(≒ホスト名)になります)。
ONTAPでは上記の「ホスト名」としては「CIFSサーバ名」が使用されます(ADで使用するDNSサーバのAレコードに登録される値もCIFSサーバ名になります)。
なお、CIFSサーバ名はsvm名と同じ値にすることも可能です。

ボリュームのクローンとマウント

こうした環境を作成・利用する中で、既存環境に新しいシステムを連携させるなど、テスト環境が必要になることは珍しくありません。
もちろん、常時二重化するなどの方法でテスト環境を常に用意することも可能ですが、それはファイルサーバの性能と容量を消費するため、「その場限りの」「ただし、まっさらな環境ではなく本番と同じデータを持った」テスト環境を用意したいというニーズは結構あるものです。
NetAppではデータをコピーすることなくテスト目的に使える機能として「クローン(FlexClone)」というものがあります。
今回はこの機能を使って既存のボリュームのコピーを作成してみましょう。

クローンの作成とマウント(やってみる、その2)

cluster1::> volume clone create -flexclone vol_test -parent-volume volmulti
[Job 141] Job succeeded: Successful

cluster1::>
cluster1::> volume show
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm1_cluster1
          vol_test     aggr1        online     RW         10GB     9.50GB    0%
svm1_cluster1
          volmulti     aggr1        online     RW         10GB     9.50GB    0%
n entries were displayed.

cluster1::>
cluster1::> volume mount -volume vol_test -junction-path /vol_test

cluster1::>
cluster1::> cifs share create -vserver svm1_cluster1 -share-name vol_test -path /vol_test

cluster1::> cifs share show
Vserver        Share         Path              Properties Comment  ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm1_cluster1  vol_test      /vol_test         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm1_cluster1  volmulti      /volmulti         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
n entries were displayed.

cluster1::>

ここまで超簡単解説・その2:
既存のボリューム[volmulti]を基にしてクローンボリューム[vol_test]を作成します。
volume一覧を表示します。ここで[vol_test]は元ボリュームと同じサイズ(10GB)に見えていますが、この時点ではvol_testの実際のデータ量はメタデータのみ(数MB)です。

作成した[vol_test]をマウントします。
CIFSファイル共有[vol_test]を作成します。
作成したCIFS共有を確認します。

ここまで設定すると、元のボリューム・共有(\CIFS1\volmulti)と同じ内容を持った新しい共有(\CIFS1\vol_test)がWindowsクライアントから確認できるようになります。(下図)
image.png

作成したクローンボリュームは通常のボリュームと同様に、volume showに表示され、volume deleteで削除することができます。クローンであることを確認するにはvolume clone showコマンドなどで可能ですが、一見してクローンであることがわかる名前にしておくと、運用上で混乱を招かないでしょう。
※考えにくいことですが、元ボリュームを削除した場合、元ボリュームからクローンされたボリュームも同時に削除されます。(実際には操作中にエラーメッセージが表示され、一般の管理者では(クローン先ボリュームをすべて削除しない限り)クローン元ボリュームを削除できないようになっています)

また、クローンはテストなどに使い終わったら基本的に削除することが想定されますが、元ボリュームからデータをコピーし、永続的に分離(split)することも可能です。

なお、クローン先ボリュームを作成するときに、(指定しなければ)自動的に元ボリュームにsnapshotが作成されます。クローン先ボリュームを削除する時には、この元ボリュームのsnapshotの削除も同時に行うようにしましょう
(クローンボリュームの削除と連携してsnapshotが削除されることはありません)。

まとめ

今回はSVMとvolumeの基本的な考え方についてご説明しました。
意外と簡単にできることがお判りいただけたのではないかと思います。

数十TB~の容量を持つファイルサーバと全く同じデータを利用するテスト環境を(慣れれば)数分で作成できる、というのは使いこなせれば便利な場面も多いかと思います。
なお、今回はクローンしたボリュームを同じSVMに接続しましたが、別のSVM(≒ファイルサーバ)に接続することも可能です。

今後の参考になれば幸いです。

We Are Hiring!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?