Nutanix Files には “afs” というコマンドが2種類ある件について

⏱この記事を読むのに必要な時間は約 11 分です。

この記事はNutanix Advent Calendar 2021の17日目として執筆しました。(いつもどおり)実務に役立つ系ではありません。いろいろ触ってみて知的好奇心を満たす際のネタの1つとしてお使いいただければと思います。

Nutanix Filesとは

これに関しては手短にポイントだけ。

  • Nutanixが提供する、Nutanix HCI上で利用可能なスケールアウトファイルサーバー
  • Prismを用いて数クリックでデプロイ可能
  • FSVMと呼ばれる仮想アプライアンスで動作
  • 基本はFSVM×3つ以上のクラスタ、制限付きだがシングル構成も可能
  • 要求される同時アクセス数に応じてFSVMをスケールアウトしたりスケールアップしたりすることが可能
  • プロトコルはSMBとNFSに両対応しており、単一の共有領域に対してマルチプロトコルアクセスも可能
  • バックエンドのストレージとしてNutanix Volumes(Nutanix HCIが提供するiSCSIボリューム機能)で大量のボリュームを自動的にアタッチすることで性能を稼いでいる
  • 概念的には File Server > (FSVM) > Share という階層構造。1つのFile Server内は単一のネームスペースとなるため、FSVMが3つあるいはそれ以上あっても、クライアントからアクセスする際は(例えばSMBなら)\\<FileServer名>\<Share名> というパスになる。個々のFSVMの存在をクライアントが意識する必要はない。
  • File Analyticsという高度な分析機能を無償でアドオン可能(File Analytics VMを追加展開)

Nutanix Files(裏?)用語集

Nutanix Filesのことを軽ーく掘り下げ始めるとよく出てくる謎の用語も紹介しておきます。

  • AFS: Acropolis File Servicesの略。Nutanix Filesの旧製品名。afsコマンドに名残り。
  • Minerva: Nutanix Filesの開発中の名前(?)。サービス名や内部スクリプトに名残り。
  • NVM: FSVMの開発中の名前(?)。コマンドで情報を確認した際の表示に名残り。
  • vFiler: Nuanix Filesの開発中の名前(?)。APIv1のvFilersというカテゴリに名残り。

Nutanix FilesをあえてCLIで操作する

基本的にはPrism(=GUI)で運用します。でも、自動化したい場合にはCLIやAPIを使いたくなりますよね?もちろん対応しています。また、Prismからは見えない情報が取れたりするのでは、とも思いますよね?もちろん取れます。というわけで、今回はCLIについて紹介します。

ちなみに先に言ってしまうと、FilesにおけるCLIは、一部の特定の操作や情報取得には便利ですが、各種設定作業を行う場合には指定すべきパラメーターが多いため、GUIのほうが絶対分かりやすいと思っています。

注意事項

情報を参照するタイプのコマンド(list~やget~など)であれば基本的に問題ありませんが、何らかの設定を変更するコマンドを不用意に叩くと痛い目に遭う可能性があります。コマンドの利用は製品ドキュメントやKnowledge Baseなどの情報をご参照の上、使用方法や影響範囲をご理解いただいた上でご利用ください。

CVM内のコマンド

Nutanix Filesは、各Nutanixクラスタの内部に作成されます。1つのFile Server配下のFSVMが複数のクラスタにまたがることはありません。そのため、Nutanix Filesに関するCLIでの操作は、File Serverの展開先であるクラスタのCVM上で提供されています。

ncliコマンド(nCLI)

nCLIはNutanixを長らく利用している人なら最もお馴染みのコマンドですね。Nutanixクラスタ全般を幅広くカバーしているコマンドです。ncli [Enter] で対話式モードに入れます。

Nutanix Files関連の機能は ncli file-server <アクション> または省略形である ncli fs <アクション> で操作できます。アクションの数は非常に多く、File Serverに対する操作、Shareに対する作成・設定・削除・ 情報取得が行えます。FSVMを指定して行う操作はありませんが、File Serverの情報を取得した際などにはそこに含まれるFSVMの情報が取得出来たりします。

add-admin-user
add-dns
add-icap-server
add-quota-policy
add-snapshot-policy
add-virus-scan-policy
delete | remove | rm
delete-admin-user
delete-icap-server
delete-infected-files
delete-quota-policy
delete-share
delete-snapshot-policy
delete-user
delete-virus-scan-policy
get
get-admin-user
get-builtin-groups
get-file-servers-usage
get-icap-server
get-infected-file
get-quota-policy
get-share | show-share
get-snapshot
get-virus-scan-policy
list | ls
list-admin-users
list-all-fs-shares
list-dns
list-icap-servers
list-infected-files
list-quota-policies
list-shares | list-shares
list-snapshot-policies
list-snapshots
list-user
protect
quarantine-infected-files
regenerate-ssl-certificate
remove-dns
rescan-infected-files
reset-infected-files
test-icap-connection
unquarantine-infected-files
update-admin-user
update-icap-server
update-quota-policy
update-share | edit-share
update-snapshot-policy
update-user
update-virus-scan-policy
upgrade-files-module
verify-dns
activate | activate
add-share
add-user | add-user
add-user-mapping | add-user-mapping
clone | clone
configure-name-services | configure-name-services
create | add
edit | update
edit-security-params
get-principal-type | get-principal-type
get-security-config
get-ssl-certificate | get-ssl-certificate
get-user-mapping | get-user-mapping
join-domain | join-domain
leave-domain | leave-domain
load-balance
search-user-mapping
ssl-certificate-generate
update-network
update-user-mapping
upgrade | upgrade
ssl-certificate-change-pfx-file-password

出力結果を整形したい場合、–json=true や –json=pretty とオプションをつけることで形式を指定できます。

Files関連以外の機能も含めて多機能なnCLIですが、実行時にクラスタへの接続を行うため、レスポンスが返ってくるまでに数秒以上は掛かります。対話モードで使う場合や、情報を1回取得する程度ならいいですが、何度も実行するには向かないかなと思います。

afsコマンド(CVM)

afsコマンドはNutanix Filesに関する操作に特化したコマンドです。afs [Enter] で対話式モードに入れます。

コマンドの起動は速いですが、操作可能な内容がNutanix Files全体、またはFile Server単位でのオペレーションに限られます。Filesを使っている人ならば、File Serverを安全に停止する afs infra.stop <File Server名>は使ったことがあるかと思います。 afs <namespace>.<subcommand> の形式で使用します。各サブコマンドの後にはさらにオプションが必要な場合があります。

出力結果を整形したい場合、-o オプションを -o normal、-o json、-o json-pretty という形で指定できます。自動化の際には便利かもしれません。対話モードの場合には起動時にオプションを付けてください。

core.exit
core.get
core.help
core.set
info.fileservers
info.get_leader
info.nvm_info
info.nvmips
info.prism_leader
infra.config_change_notify
infra.create_anti_affinity_rule
infra.delete_anti_affinity_rule
infra.disable_multi_vsphere_check
infra.enable_multi_vsphere_check
infra.fix_compatibility_matrix
infra.fix_fs_release_version
infra.fix_fsm_compatibility_matrix
infra.force_fileserver_delete
infra.force_fileserver_node_delete
infra.fs_upgrade_info
infra.get_afs_fsm_compatibility_matrix
infra.get_fsm_version
infra.get_network_uuid_by_port_group_name
infra.is_multi_vsphere_check_disabled
infra.list_networks
infra.power_off
infra.power_on
infra.push_pc_config
infra.resume_fs_upgrade
infra.sign_all_file_server_certificates
infra.start
infra.stop
infra.update_anti_affinity_rule
infra.update_file_server_network
infra.update_vm_type
task.get_info
task.set_info

FSVM内のコマンド

先日gowatanaさんのブログでも紹介されていましたが、FSVMにSSHでアクセスしてコマンドを実行することも可能です。FSVMのパスワードはもちろん変更可能ですので安心してください。

afsコマンド(FSVM)

なんとFSVMにも全く同じ名前のafsコマンドが存在します。しかし、中身がかなり違います。どうしてこうなった。

使い方自体はCVMのafsコマンドと同じく afs <namespace>.<subcommand> の形式です。しかしnamespaceだけでこんなにあります。それぞれの後に .<subcommand>が続きますのでかなりの数です。FSVMのafsコマンドは、Nutanix Files全体の操作はなく、File Server、FSVM、Share、機能、そして更には内部処理用のものまで含まれています。こちらのほうが細かいところまで情報をとれて面白そう。

ad
audit
av
bk
cache
core
dns
dr
fb
fs
ha
idf
idmap
job
lb
misc
mscan
msidinfo
net
nfs
nlm
quota
ransomware
rsyslog
share
smb
snapshot
sync
task
tiering
user
vg

こちらも、 出力結果を整形したい場合、ワンライナーで -o オプションを -o normal、-o json、-o json-pretty という形で指定できます。自動化の際には便利かもしれません。

左:オプションなし、中:json、右:json-pretty

まとめ

Nutanix FilesはNutanix Community Editionでも利用可能です。1ノード構成だとFSVMもシングル構成でしかデプロイできませんが、今日ご紹介したコマンドはご利用いただけますので、中身を覗いてみていただければと思います。

Nutanix FilesのCLI/API関連ネタとしては、Nutanix Meetup Online 21.11@gowatana さんの資料もぜひご覧ください。

Nutanix or ヤギ のことををつぶやきます。