【NetApp】SVMピア関係におけるエイリアス名について

2023年9月2日

こんにちは、キクです。

NetAppのDR対策として有効な機能「SnapMirror」において、転送元と転送先となるクラスタおよびSVMはそれぞれ「ピア関係」を組む必要があります。
SVMピアにおいては、時に「エイリアス名」というものを設定する必要が生じる場合があるのですが、最近この辺りの内容を少し忘れかけていたので、備忘録も含めて本記事でシェアできればと思います。

というわけで、今回は『SVMピア関係におけるエイリアス名』をテーマに書いていきたいと思います!

それでは、よろしくお願いします。

動作環境

本記事の内容は、下記の環境で実施したものになります。
・ONTAP 9.3

注意事項

本記事は僕が経験した内容をもとに記載しておりますが、実行環境や設定内容によっては動作が異なる場合があります。
そのため『参考程度』にお読みいただけますと幸いです。

SVMピア関係のエイリアス名について

冒頭で触れた「クラスタやSVMのピア関係」などSnapMirrorの基本的な内容については、以前書いた記事で詳しく触れているので、気になる方は読んでみてください。
関連記事:【NetApp】SnapMirrorの基本的な概念と設定方法
関連記事:【NetApp】SnapMirror用ピア設定の解除方法

今回はその中でもニッチな内容かもしれませんが、上記の「SVMピア関係」におけるエイリアス名に的を絞っていこうと思います。

エイリアスとは

そもそも「エイリアス」とはなんなのかについてですが、SVMピア関係に限らず一般的にエイリアスという言葉には「別名」という意味で利用されます。

例えばLinuxのコマンドなんかでも、以下のようにエイリアスを設定することがありますよね。

$ alias ll='ls -al'

上記エイリアスを設定しておくことで、オプション(-al)付きのlsコマンドを「ll」と実行するだけで同じ処理が行われます。
これはつまり「ls -al」というコマンドに「ll」という別名を付けたことになります。
少し話が逸れましたが、NetAppのSVMピア関係における「エイリアス名」もこれと同じようなことをします。

SVMピア関係におけるエイリアス名の必要性

それでは、SVMピア関係においてはどのような場合にエイリアス名が必要になるのか?
たとえば「1つのクラスタが複数のクラスタとピア関係を組むような場合」に必要になることがあります。

以下はクラスタ同士が1対1でSVMピア関係を組んだ場合の図になります。

この場合は、各クラスタで設定された一意の情報を用いてピア関係を組むため、特にエイリアス名は必要ありません。

次に2対1でSVMピア関係を組んだ例を2パターンを見てみましょう。

上図の場合、以下2つのSVMピア関係が設定されていることが分かります。
ちなみに、1つのターゲットSVMに2つのソースSVMがピア関係となっている構成は特に問題ありません。

SVM設定情報(重複なし)

①ソース側クラスタA:SVM-A / ターゲット側クラスタB:SVM-B

②ソース側クラスタC:SVM-C / ターゲット側クラスタB:SVM-B

SnapMirrorでは最終的にボリューム同士でミラー関係(以降、SnapMirror関係)を組むことになりますが、上記2つのSVMピア関係の場合には以下のように区別して設定することが可能です。

①クラスタA - クラスタB間の設定
Cluster-B::> snapmirror create -source-path SVM-A:volA -destination-path SVM-B:volB1 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 
②クラスタC - クラスタB間の設定
Cluster-B::> snapmirror create -source-path SVM-C:volC -destination-path SVM-B:volB2 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 

それでは以下の構成の場合はどうでしょうか。

上図の場合、以下2つのSVMピア関係が設定されていることが分かります。

SVM設定情報(重複あり)

③ソース側クラスタA:SVM-1 / ターゲット側クラスタB:SVM-2

④ソース側クラスタC:SVM-1 / ターゲット側クラスタB:SVM-2

先ほどと同様に、それぞれのSVMピア関係でSnapMirror関係を組むためのコマンドを見てみましょう。

③クラスタA - クラスタB間の設定
Cluster-B::> snapmirror create -source-path SVM-1:volA -destination-path SVM-2:volB1 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 
④クラスタC - クラスタB間の設定
Cluster-B::> snapmirror create -source-path SVM-1:volC -destination-path SVM-2:volB2 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 

上記コマンドで果たして異なる2つのソースクラスタとのSnapMirror関係を組むことができるのでしょうか?

答えは「No」です。

クラスタAとクラスタCでは、お互いにSnapMirror用のソースSVMの名前が「SVM-1」となっていることが原因です。
それぞれのクラスタで同じ名前のSVMが存在すること自体は問題ありませんが、SVMピア関係を組もうとするターゲット側からすると困ってしまいます。

「どっちのSVM-1だ・・・?」と。

上記のように同じ名前のソースSVMが存在する場合、エイリアス名を設定しないと2つ目以降のSVMピア関係はそもそも組めません
先にクラスタAのSVM-1とクラスタBのSVM-2とでSVMピア関係を組んでいた場合、クラスタCのSVM-1はエイリアス名を設定しないとSVMピア関係を組めないということです。
このようなケースで「エイリアス名」が必要になってきます。

ポイント

既にクラスタAの「SVM-1」とクラスタBの「SVM-2」とでSVMピア関係を組んでいる場合、クラスタCの「SVM-1」とクラスタBの「SVM-2」でSVMピア関係を組もうとすると以下のような警告文と共にエイリアス名の設定を促されます。

SVMの名前「SVM-1」が、SVMピア関係が設定された既存のSVMまたはローカルのデータSVMと同じです。
クラスタ「Cluster-B」がこのSVMを識別できるように、クラスタ「Cluster-C」のリモートSVMのエイリアス名を入力してください。

エイリアス名の設定方法

本稿では、実際にエイリアス名を設定する方法についてご紹介します。
とは言ったものの、オプションを1つ加えるだけなので簡単です。

新しいSVMピア関係を設定するタイミングでエイリアス名を設定する場合、以下のようにSVMピア関係の作成時にオプション「-local-name」を追加したコマンドを実行することで設定可能です。

Cluster-B::> vserver peer create -vserver <ターゲットSVM名> -peer-cluster <ソースクラスタ名> -peer-vserver <ソースSVM名> -applications snapmirror -local-name <エイリアス名> 
[実行例]
Cluster-B::> vserver peer create -vserver SVM-2 -peer-cluster Cluster-C -peer-vserver SVM-1 -applications snapmirror -local-name ClusterC_SVM-1 

上記では、クラスタCのSVM-1に対して「ClusterC_SVM-1」というエイリアス名を設定しました。
ただし、この設定はあくまでもターゲットクラスタであるクラスタB上での設定であり、クラスタC上のSVM-1は依然としてSVM-1のままになります。

僕が初めてエイリアス名の設定が必要になった時には「この設定によってソースクラスタ側のSVM名にも影響してしまう?」と不安になりましたが、全然そんなことはなく安心しました。

なお、もうひとつのソースクラスタであるクラスタAのSVM-1に対しては、エイリアス名の設定は必須ではありません
ただ、設定してあげておいた方がターゲットクラスタ側から「誰のSVMなのか」が識別しやすくなって親切かなと思います。

既にSVMピア設定が完了している状態からエイリアス名を設定する場合には、以下のように「vserver peer modify-local-name」というコマンドを実行します。

Cluster-B::> vserver peer modify-local-name -peer-cluster <ソースクラスタ名> -peer-vserver <ソースSVM名> -new-name <新しいエイリアス名> 
[実行例]
Cluster-B::> vserver peer modify-local-name -peer-cluster Cluster-A -peer-vserver SVM-1 -new-name ClusterA_SVM-1 

エイリアス名を設定した状態でのSnapMirror関係の作成コマンド

本項では、SVMピア関係にエイリアス名を設定した場合のSnapMirror関係の作成コマンドについて見ていきます。

先ほど、以下のようなソースSVM名が重複したコマンドがあったかと思います。

③クラスタA - クラスタB間の設定
Cluster-B::> snapmirror create -source-path SVM-1:volA -destination-path SVM-2:volB1 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 
④クラスタC - クラスタB間の設定
Cluster-B::> snapmirror create -source-path SVM-1:volC -destination-path SVM-2:volB2 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 

エイリアス名を設定していると、以下のようなコマンドになります。

③'クラスタA - クラスタB間の設定(エイリアス設定後)
Cluster-B::> snapmirror create -source-path Cluster-A_SVM-1:volA -destination-path SVM-2:volB1 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 
④'クラスタC - クラスタB間の設定(エイリアス設定後)
Cluster-B::> snapmirror create -source-path Cluster-C_SVM-1:volC -destination-path SVM-2:volB2 -policy <SnapMirrorポリシー> -schedule <SnapMirrorスケジュール名> 

ソースパス(-source-path)のSVM名が設定したエイリアス名に変わっていることが分かるかと思います。
このように、エイリアス名を設定することで異なるクラスタ上で同じソースSVM名を設定していたとしても、それらを区別してSnapMirror関係を作成することが可能です。

エイリアス名の設定有無による表示の違い

最後にSVMピア関係へのエイリアス名の設定有無によって、以下項目を一覧表示した際にどのような違いがあるかを確認してみます。

  1. SVMピア一覧
  2. SnapMirror関係一覧

SVMピア一覧

まずはSVMピア一覧の表示の違いについてです。

以下はソースSVM名に重複がなく、エイリアス名が未設定の場合の表示になります。

Cluster-B::> vserver peer show
           Peer        Peer                           Peering          Remote
Vserver    Vserver     State        Peer Cluster      Applications     Vserver
---------  --------    ----------   --------------    --------------   -----------
SVM-B      SVM-A       peered       Cluster-A         snapmirror       SVM-A
SVM-B      SVM-C       peered       Cluster-B         snapmirror       SVM-B

以下はソースSVM名に重複があり、どちらのSVMに対してもエイリアス名を設定した場合の表示になります。

Cluster-B::> vserver peer show
           Peer               Peer                          Peering          Remote
Vserver    Vserver            State        Peer Cluster     Applications     Vserver
---------  ----------------   ----------   --------------   --------------   -----------
SVM-B      Cluster-A_SVM-1    peered       Cluster-A        snapmirror       SVM-1
SVM-B      Cluster-C_SVM-1    peered       Cluster-B        snapmirror       SVM-1

注目する項目は「Peer Vserver」と「Remote Vserver」です。

Peer VserverはターゲットクラスタがソースSVMを識別するために利用する名前になります。
エイリアス名を設定した場合にはエイリアス名が表示されます
そのため、先ほど設定したエイリアス名「Cluster-C_SVM-1」などの名前が表示されています。

一方で、Remote VserverにはソースSVMの本来の名前が表示されます。
そのため、どちらのソースクラスタのSVM名も「SVM-1」と表示されている形になります。

SnapMirror関係一覧

続いてSnapMirror関係一覧についても見ていきます。

以下はエイリアス名を設定していない場合の表示になります。

Cluster-B::> snapmirror show                                                                         
                                                                                    Progress
Source                Destination    Mirror           Relationship    Total                      Last
Path         Type     Path           State            Status          Progress     Healthy       Update
------------  ------  ------------   ---------------   ------------    ----------   ---------     ------------
SVM-A:volA   XDP     SVM-B:volB1    Snapmirrored      Idle            -            true          -
SVM-C:volC   XDP     SVM-B:volB2    Snapmirrored      Idle            -            true          -

以下はエイリアス名を設定している場合の表示になります。

Cluster-B::> snapmirror show                                                                         
                                                                                           Progress
Source                        Destination    Mirror           Relationship     Total                      Last
Path                 Type     Path           State            Status           Progress    Healthy        Update
--------------------  ------  ------------   ---------------   ------------    ----------   ---------     ------------
Cluster-A_SVM-1:volA   XDP     SVM-B:volB1    Snapmirrored     Idle            -            true          -
Cluster-C_SVM-1:volC   XDP     SVM-B:volB2    Snapmirrored     Idle            -            true          -

先ほど、エイリアス名を設定した場合のSnapMirror関係作成コマンドを記載しましたが、そこで指定していたエイリアス名版のソースパスが表示されていることが分かります。
このように、エイリアス名を設定しておくことでソースパスから対象ソースクラスタが判別できたりもするので、うまいこと活用できれば便利ですね。

おわりに

いかがだったでしょうか。

今回はSVMピア関係におけるエイリアス名についての内容でした。
設定自体はなんてことありませんが、エイリアス名の必要性や、設定の有無による違いについて少しでも理解が深まっていれば嬉しいです。

本記事を最後まで読んでいただき、ありがとうございました。
ではでは!

-NetApp
-