2022年7月7日木曜日

Nutanix FilesのマルチVLAN構成

Nutanix Filesバージョン4.1にて、クライアントネットワークのマルチVLANを構成を設定する機能が追加されました。

Multi-VLAN Network Management

詳細は上記のドキュメントをご覧ください。


これまでのFilesネットワーク構成について

Filesは各FSVMにクライアントネットワークとストレージネットワークの2つのネットワークが存在し、それぞれが異なるネットワークに所属するか、または両方のネットワークをまとめて一つのネットワークに所属するような構成を取っていました。

▲(図1)クライアントネットワークとストレージネットワークを分離した構成
▲(図2)クライアントネットワークとストレージネットワークをまとめた構成


このような構成において、実際にユーザーが利用する際にアクセスするクライアントネットワークをセキュリティの観点から分離したいといった要件がある場合、これまでのFilesはクライアントネットワークに複数のネットワークを持つことができなかったため、複数のFilesを展開するという手法を取る必要がありました。

▲(図3)従来のFilesでネットワークを分離するための構成
規模にもよりますが、複数セットのFilesを展開するこの手法は小規模環境において、余分なリソースが増加してしまう傾向がありました。


バージョン4.1で追加されたマルチVLAN構成

マルチVLAN構成が可能になったことで、1つのFilesで複数のネットワークにファイルサービスを提供することができるようになりました。

これにより、一つのFilesでネットワークを分離したいなどの要件に対して柔軟に対応することができるようになりました。

ただし、マルチVLAN構成を取るにはいくつか条件があるため、予め制限を把握しておく必要があります。
特に引っかかりそうな条件としては、初期の展開時に図2のようなクライアント、ストレージ両方のネットワークを一つのネットワークで構成した、いわゆるシングルネットワークの構成を取っているFilesを後からマルチVLAN構成に変更することはできないため注意が必要です。


設定方法

まずは上の方で説明した通り、クライアントとストレージのネットワークを分けたFilesを用意します。

Filesの新機能ははじめは大体CLIから設定できるパターンが多いです。
この機能も例に漏れず、まずはCLIからの設定方法のみ提供されています。

まずはSSHでFSVMに接続して、以下のコマンドで現在のクライアントネットワークを確認してみます。
※なお、はじめにafsコマンドのみを実行するとafsモードに切り替わるので、移行のコマンドは頭にあるafsの記述は不要です。
afs net.list_external

現在はvlan316(no ipam)というネットワークがクライアントネットワークとして構成されていることがわかります。
※ネットワーク名が変な名前ですが、AHVで作成する普通のVLANネットワークです。
UUID                                  Name              Virtual UUID                          Managed  Gateway      Netmask/Prefixlen  IPs                                                  Primary  Vlan
5467672e-31b3-40bd-a7fb-dba996a282df  vlan316(no ipam)  898963d1-a37a-4768-83bf-8adb77972486  No       172.17.16.1  255.255.255.0      [u'172.17.16.14', u'172.17.16.15', u'172.17.16.16']  No       -

このFilesに新たなクライアントネットワークを追加してみます。
公式ドキュメントを見ると、以下のコマンドで追加すると記載されています。
afs net.add_external <input-json-file-path>

後ろの<>内は追加するネットワーク情報を記載したjsonファイルを指定するのですが、このjsonファイルの作り方が非常にわかりづらいです。

一応jsonファイルの作り方は以下のコマンドで確認してくれと記載されていますが、

afs help net.add_external

このコマンドの実行結果が以下になります。

net.add_external:
  Add external networks.

  Usage: "net.add_external <input-json-file-path>"
  Input JSON file schema:
  [
    {
      "virtual_network_uuid": "<uuid>"
    },
    {
      "virtual_network_uuid": "<uuid>",
      "gateway_ip": "<gateway-ip-address>",
      "netmask_ip": "<netmask-ip-address>",
      "ip_list": [
        "<fsvm-ip-address>",
        "<fsvm-ip-address>",
        ...
      ]
    },
    ...
  ]

  1. Managed network entry only requires "virtual_network_uuid" field.
  2. Unmanaged network entry requires "virtual_network_uuid", "gateway_ip",
     "netmask_ip" and "ip_list" fields.

  Usage:
    net.add_external <json_file_path> [key=val ...]

  Required arguments:
    json_file_path (string): Input JSON file path

なんとなく、追加するネットワーク情報を記入してやれば良いのはわかりますが、正直わかりづらいと思います。

余計な記述を削っていき、最終的には以下のような形式でjsonファイルを作成します。

[
        {
          "virtual_network_uuid": "<追加するネットワークのUUID>",
          "gateway_ip": "<追加するネットワークのGW>",
          "netmask_ip": "<追加するネットワークのサブネットマスク>,
          "ip_list": [
            "<FSVMのクライアント側IPアドレス①>",
            "<FSVMのクライアント側IPアドレス②>",
"<FSVMのクライアント側IPアドレス③>"
] } ]

FSVMのIPアドレスはFSVMの台数に合わせて追加してください。

行の始め辺りにある「virtual_network_uuid」はPrimsのNetwork Configから対象のネットワークを編集する際に確認することができます。

今回はこのVLAN300というネットワークを追加することにします。


この内容にて任意の名前で拡張子を[.json]で保存し、以下のコマンドを実行します。

afs net.add_external <作成したjsonファイル>

※コマンド実行時にjsonファイルのパスを指定しない場合は、home直下が参照されます。


以下のように結果が表示されれば、正常にコマンドが実行できています。

Created network-add task: d3c723bf-8b0a-4a0c-ae7e-798eea768c0e

再度クライアントネットワークの一覧を確認すると、クライアントネットワークが2つに追加されていることがわかります。

UUID                                  Name              Virtual UUID                          Managed  Gateway      Netmask/Prefixlen  IPs                                                  Primary  Vlan
eb047398-594a-45f3-97e8-4fdb169ae48f  VLAN.300          8e803826-495d-4d61-ac49-f37217510471  No       172.17.0.1   255.255.255.0      [u'172.17.0.91', u'172.17.0.92', u'172.17.0.93']     No       300
5467672e-31b3-40bd-a7fb-dba996a282df  vlan316(no ipam)  898963d1-a37a-4768-83bf-8adb77972486  No       172.17.16.1  255.255.255.0      [u'172.17.16.14', u'172.17.16.15', u'172.17.16.16']  Yes      316


Files Consoleから構成情報を確認すると、クライアントネットワーク情報あたりに「+ 1 more」と表示されていますので、クリックします。


追加したVLAN300がクライアントネットワークが認識されていることが確認できます。

なお、Filesを展開する際に選択したクライアントネットワークには「Primary」と表示されます。
本手順で追加したネットワークは削除することができますが、プライマリネットワークは削除できないことに留意してください。


クライアントユーザーから接続時の注意点

マルチVLANの設定は完了しましたが、実際にマルチVLANのFilesを利用するにはいくつか注意点があります。

・ホスト名による接続

マルチVLANの設定ができると、FSVMはクライアントネットワーク側に各ネットワークごとのIPアドレスを持つことになります。
ただし、Filesのホスト名は展開時に指定した一つしか設定できないため、各ネットワークで同一のDNSを参照する場合は名前解決によって、異なるネットワークごとに正確なIPアドレスを取得することができません。
※Filesは直接FSVMのIPアドレスからも接続することは可能ですが、バランシングの仕組み上、FQDNでアクセスすることが推奨されます。

回避策として、DNSのレコードに異なるホスト名を手動で登録し、クライアント側IPアドレスと関連付けを行います。

これにより、プライマリネットワークと異なるネットワークでは、対応する異なるホスト名を指定することで、名前解決によって疎通可能なIPアドレスを取得することができます。


ただし、この方法は公式ドキュメントに記載された方法ではないため、あくまで自己責任となることをご留意ください。
※一応DNSレコード追加方法は以下のURLに記載されていますが、用意されている方法がよくわからないので、手動で入れてしまってもいい気がします。

https://portal.nutanix.com/page/documents/details?targetId=Files-v4_1:fil-fs-manage-dns-server-t.html



FilesのマルチVLAN機能の紹介は以上です。

一部課題もありますが、Filesで提供できる構成が増える、注目の新機能になりますので、活用できるシチュエーションがありましたら、ぜひお試しください。 

2022年3月29日火曜日

Nutanixの試験が無料で受験できるバウチャーコード(2022/5/15まで有効)

以下のバウチャーコードを入力することで、Nutanixの試験NCA(初級)・NCP(中級)・NCM(上級)が無料で受けることができますので、この機会に興味のある方は是非受験してみてください。

NTXRF22J


本来は199ドルの試験なので、かなりお得だと思います。
現在はAOS 5.20ベースの問題に刷新されていますので、過去に合格された方もこの機会にアップデートしてみてください。
なお、以前は日本語対応されていない試験もありましたが、現在はほとんどの試験が日本語化されています

期限は2022/5/15まで利用可能です。
また、申込時に1ヶ月後までのスケジュールを予約できるので、6月中頃まで猶予があります。
とりあえず5/15までに予約けしておいて、それから準備するようなこともできます。

受験はテストセンター、またはオンライン試験のどちらかを選択できます。
このご時世なので、私はオンライン試験を利用しています。
オンライン試験は一定条件を満たした試験環境(静かで余計なものが置かれてない部屋、監視用カメラなど)を準備する必要があり、試験開始前のやり取りで英語によるチャットのやり取りがありますが、活用してみてください。

なお、受験までの手順および試験の種類についてはshadowhatさんがわかりやすく纏めてくれているので、そちらを参考にしてくださいm(_ _)m




2022年1月4日火曜日

Nutanix FilesのSMB CA(継続的可用性)共有を試してみた

Filesのバージョン3.7ごろに追加された機能、SMB CA(継続的可用性)共有を試してみました。
https://portal.nutanix.com/page/documents/details?targetId=Files-v4_0:fil-fs-persistent-handles-c.html

この機能はFSVMがノード障害などにより停止した場合に、フェイルオーバーが完了するまでの間、クライアントとFiles間の接続を切断することなく維持することができます。
ファイルサーバーがアプリケーションと連動している場合に利用することが想定された機能です。

なお、SMB CA自体はSMB3から提供されたMicrosoftの技術であり、それをFilesでも利用できるようになった形です。(名前の通りSMBプロトコルのみ対応)


SMB CA無効時の挙動

SMB CAはFilesに作成した共有フォルダに対して設定を行います。

まずは作成直後の共有フォルダのステータス確認してみます。
FSVMにて以下のコマンドを実行します。(以降、コマンドはすべてFSVMから実行します)

afs share.list sharename="{共有フォルダ名}"

◆実行結果(「CA Test」という共有フォルダに対して実行した例)

nutanix@NTNX-192-168-45-125-A-FSVM:~$ afs share.list sharename="CA Test"
Filtering the share list based on 'CA Test'
Share name: CA Test
Share UUID: 1fe8e2c2-8bff-4f65-823e-f2302cd4fd87
File server name: omrisFiles01
Share type: GENERAL
Protocol type: SMB
Secondary Protocol type: None
Self-service Restore: ENABLED
Volume group set UUID: 84ffa0cc-76f8-4f12-a80e-074fb446bd9b
Share path: /CA Test
File-Blocking patterns:
Share Workload Type: Default
SMB3 Encryption: DISABLED
Compression : ENABLED
Files-at-root : NOT APPLICABLE
Continuous Availability: DISABLED
Status type: Available
下から2行目に「Continuous Availability: DISABLED」と記載がありますが、作成直後はSMB CAが無効であることがわかります。

この状態でファイルコピーを実施していた共有フォルダに紐付いたFSVMを強制停止すると、コピー処理は停止され再実行を求めるウィンドウが表示されてしまいます。



SMB CAを有効化

先程の共有フォルダに対して、SMB CAを有効化してみます。
共有フォルダに以下のコマンドを実行します。
afs share.edit "{共有フォルダ名}" continuous_availability=true
コマンド実行後に改めて共有フォルダのステータスを確認してみます。
nutanix@NTNX-192-168-45-125-A-FSVM:~$ afs share.list sharename="CA Test"
Filtering the share list based on 'CA Test'
Share name: CA Test
Share UUID: 1fe8e2c2-8bff-4f65-823e-f2302cd4fd87
File server name: omrisFiles01
Share type: GENERAL
Protocol type: SMB
Secondary Protocol type: None
Self-service Restore: ENABLED
Volume group set UUID: 84ffa0cc-76f8-4f12-a80e-074fb446bd9b
Share path: /CA Test
File-Blocking patterns:
Share Workload Type: Default
SMB3 Encryption: DISABLED
Compression : ENABLED
Files-at-root : NOT APPLICABLE
Continuous Availability: ENABLED
Status type: Available
「Continuous Availability」の項目がENABLEDに変更されていれば、設定完了です。

この状態で先程のようにコピー処理の途中にFSVMを停止させてみます。
一時的にコピー処理が止まりますが・・・

数十秒するとコピー処理が再開されました。


このようにSMB CAを利用することで予期しないノード障害によって、FSVMが停止してしまった場合に処理を中断することなく、ファイルサーバーを利用することが可能になります。

通常用途の共有フォルダとして利用するなら単純にコピーの再実行をすれば良いですが、アプリケーションなどと連携して利用するなど、処理の中断が許されない用途で利用する場合に活用できる機能になります。