Amazon FSx for NetApp ONTAPファイルシステムのSingle-AZ構成はシングルノードではない件

Single-AZでデプロイしたらシングルノードだと思うじゃないですか? 実は違うんですよ
2022.06.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

シングルノードだと思ったら違った

こんにちは、のんピ(@non____97)です。

皆さんはAmazon FSx for NetApp ONTAP(以降、FSx for ONTAP)のSingle-AZ構成はシングルノードだと思ったことはありますか? 私はあります。

実はSingle-AZ構成でも複数のノードがある疑惑が出てきました。

以前の記事でSVMのLIF(論理インターフェイス)を確認した時に、気づいてしまいました。

デプロイタイプをSingle-AZにしたのに Current Node が 01 と 02 の2つあるぞ

::> network interface show -vserver classmethod-dev-fsx-netapp-ontap-single-az-svm
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
classmethod-dev-fsx-netapp-ontap-single-az-svm
            iscsi_1      up/up    10.0.10.96/24      -01
                                                                   e0e     true
            iscsi_2      up/up    10.0.10.45/24      -02
                                                                   e0e     true
            nfs_smb_management_1
                         up/up    10.0.10.31/24      -01
                                                                   e0e     true
3 entries were displayed.

ということで、Single-AZ構成でも2つノードがありそうです。

もう少し深掘りしてみます。

いきなりまとめ

  • デプロイタイプがSingle-AZでもFSx for ONTAPファイルシステムのノードは2つある
  • フェイルオーバー/フェイルバックのタイミングでENIに紐づくプライベートIPアドレスが切り替わる

FSx for ONTAPファイルシステムのENIとLIFを観察してみる

まず、FSx for ONTAPファイルシステムのENIとLIFを観察してみます。

$ file_system_id=fs-0967312eff2f5f5e1

# FSx for ONTAPファイルシステムの情報を取得
$ describe_file_systems_output=$(aws fsx describe-file-systems \
    --file-system-ids "$file_system_id"
)

# "DeploymentType" が "SINGLE_AZ_1" であることを確認
$ echo "$describe_file_systems_output"
{
    "FileSystems": [
        {
            "OwnerId": "<AWSアカウントID>",
            "CreationTime": "2022-05-19T00:41:09.277000+00:00",
            "FileSystemId": "fs-0967312eff2f5f5e1",
            "FileSystemType": "ONTAP",
            "Lifecycle": "AVAILABLE",
            "StorageCapacity": 1024,
            "StorageType": "SSD",
            "VpcId": "vpc-0bdab140380e5888e",
            "SubnetIds": [
                "subnet-0edad58231582149e"
            ],
            "NetworkInterfaceIds": [
                "eni-0948afd396461e1e0",
                "eni-0b62e5f00c78bde40"
            ],
            "KmsKeyId": "arn:aws:kms:ap-northeast-1:<AWSアカウントID>:key/96a5daaf-40f8-453e-bce3-3315a7d9d8f2",
            "ResourceARN": "arn:aws:fsx:ap-northeast-1:<AWSアカウントID>:file-system/fs-0967312eff2f5f5e1",
            "Tags": [
                {
                    "Key": "Name",
                    "Value": "classmethod-dev-fsx-netapp-ontap-filesystem-single-az"
                }
            ],
            "OntapConfiguration": {
                "AutomaticBackupRetentionDays": 7,
                "DailyAutomaticBackupStartTime": "16:00",
                "DeploymentType": "SINGLE_AZ_1",
                "Endpoints": {
                    "Intercluster": {
                        "DNSName": "intercluster.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com",
                        "IpAddresses": [
                            "10.0.10.81",
                            "10.0.10.63"
                        ]
                    },
                    "Management": {
                        "DNSName": "management.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com",
                        "IpAddresses": [
                            "10.0.10.191"
                        ]
                    }
                },
                "DiskIopsConfiguration": {
                    "Mode": "AUTOMATIC",
                    "Iops": 3072
                },
                "PreferredSubnetId": "subnet-0edad58231582149e",
                "ThroughputCapacity": 128,
                "WeeklyMaintenanceStartTime": "6:17:00"
            }
        }
    ]
}

# FSx for ONTAPファイルシステムのENI IDを配列に保存
$ declare -a file_system_enis=($(echo "$describe_file_systems_output" \
  | jq -r ".FileSystems[].NetworkInterfaceIds[]"
))

# FSx for ONTAPファイルシステムのENI IDを確認
$ echo ${file_system_enis[@]}
eni-0948afd396461e1e0 eni-0b62e5f00c78bde40

# FSx for ONTAPファイルシステムのENIの説明とAZ、紐づいているプライベートIPアドレスを表示
$ aws ec2 describe-network-interfaces \
    --network-interface-ids "${file_system_enis[@]}" \
  | jq -r ".NetworkInterfaces[] | [.NetworkInterfaceId, .Description, .AvailabilityZone, .PrivateIpAddresses]"
[
  "eni-0b62e5f00c78bde40",
  "[Do not detach or untag] Amazon FSx network interface for fs-0967312eff2f5f5e1",
  "ap-northeast-1a",
  [
    {
      "Primary": true,
      "PrivateDnsName": "ip-10-0-10-63.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.63"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-45.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.45"
    }
  ]
]
[
  "eni-0948afd396461e1e0",
  "[Do not detach or untag] Amazon FSx network interface for fs-0967312eff2f5f5e1",
  "ap-northeast-1a",
  [
    {
      "Primary": true,
      "PrivateDnsName": "ip-10-0-10-81.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.81"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-191.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.191"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-31.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.31"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-96.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.96"
    }
  ]
]

1つのENIに複数のプライベートIPアドレスが紐づいていることが分かりました。

FSx for ONTAPファイルシステムにSSHして、ファイルシステム内部から各IPアドレスがどのように認識されているかを確認します。

# FSx for ONTAPファイルシステムにSSH
> ssh fsxadmin@management.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com
Password:

Last login time: 5/25/2022 06:22:25

# LIFの表示
::> network interface show
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
FsxId0967312eff2f5f5e1
            fsxadmin     up/up    10.0.10.191/24     FsxId0967312eff2f5f5e1-01
                                                                   e0e     true
            inter_1      up/up    10.0.10.81/24      FsxId0967312eff2f5f5e1-01
                                                                   e0e     true
            inter_2      up/up    10.0.10.63/24      FsxId0967312eff2f5f5e1-02
                                                                   e0e     true
classmethod-dev-fsx-netapp-ontap-single-az-svm
            iscsi_1      up/up    10.0.10.96/24      FsxId0967312eff2f5f5e1-01
                                                                   e0e     true
            iscsi_2      up/up    10.0.10.45/24      FsxId0967312eff2f5f5e1-02
                                                                   e0e     true
            nfs_smb_management_1
                         up/up    10.0.10.31/24      FsxId0967312eff2f5f5e1-01
                                                                   e0e     true
6 entries were displayed.

FsxId0967312eff2f5f5e1-01FsxId0967312eff2f5f5e1-02の2つのノードがあることが分かります。

また、LIFfsxadminとLIFnfs_smb_management_1Current NodeFsxId0967312eff2f5f5e1-01で、Is Hometrueになっていることから、FsxId0967312eff2f5f5e1-01がプライマリノードと判断できます。

もう少し、LIFの情報を見てみます。

# "network interface show" の "-fields" に指定できる項目を確認
::> network interface show -fields ?
  vserver                     Vserver Name
  lif                         Logical Interface Name
  service-policy              Service Policy
  services                    Service List
  role                        (DEPRECATED)-Role
  data-protocol               Data Protocol
  address                     Network Address
  netmask                     Netmask
  netmask-length              Bits in the Netmask
  is-vip                      Is VIP LIF
  subnet-name                 Subnet Name
  home-node                   Home Node
  home-port                   Home Port
  curr-node                   Current Node
  curr-port                   Current Port
  status-oper                 Operational Status
  status-extended             Extended Status
  is-home                     Is Home
  status-admin                Administrative Status
  failover-policy             Failover Policy
  firewall-policy             (DEPRECATED)-Firewall Policy
  auto-revert                 Auto Revert
  dns-zone                    Fully Qualified DNS Zone Name
  listen-for-dns-query        DNS Query Listen Enable
  failover-group              Failover Group Name
  wwpn                        FCP WWPN
  address-family              Address family
  comment                     Comment
  ipspace                     IPspace of LIF
  is-dns-update-enabled       Is Dynamic DNS Update Enabled?
  probe-port                  Probe-port for Cloud Load Balancer
  broadcast-domain            Broadcast Domain
  vserver-type                Vserver Type
  rdma-protocols              Required RDMA offload protocols

# 重要そうな情報を表示
::> network interface show -fields vserver, lif, address, is-vip, home-node, home-port, curr-node, curr-port, status-oper, is-home, failover-policy, auto-revert, failover-group
vserver                lif      address     is-vip home-node                 home-port curr-node                 curr-port status-oper is-home failover-policy       auto-revert failover-group
---------------------- -------- ----------- ------ ------------------------- --------- ------------------------- --------- ----------- ------- --------------------- ----------- --------------
FsxId0967312eff2f5f5e1 fsxadmin 10.0.10.191 false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    broadcast-domain-wide true        Fsx
FsxId0967312eff2f5f5e1 inter_1  10.0.10.81  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
FsxId0967312eff2f5f5e1 inter_2  10.0.10.63  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_1  10.0.10.96  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_2  10.0.10.45  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       nfs_smb_management_1
                                10.0.10.31  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    system-defined        true        Fsx
6 entries were displayed.

確認した情報から以下のようなことが分かります。

  • 以下LIFはfailover-policybroadcast-domain-wideになっており、フェイルオーバーを行う
    • fsxadmin
    • nfs_smb_management_1
  • 以下LIFはfailover-policydisabledになっており、フェイルオーバーは行はない
    • inter_1
    • inter_2
    • iscsi_1
    • iscsi_2
  • 以下LIFはauto-reverttrueになっており、自動でフェイルバックする
    • fsxadmin
    • nfs_smb_management_1

failover-policyの詳細についてはNetApp公式ドキュメントを確認します。どうやらbroadcast-domain-wideが示すフェイルオーバーターゲットは「フェイルオーバーグループにあるすべてのノードのすべてのポート」のようです。

フェイルオーバーグループを確認すると、FsxId0967312eff2f5f5e1-01FsxId0967312eff2f5f5e1-02の2つのノードが登録されていました。

::> network interface failover-groups show
                                  Failover
Vserver          Group            Targets
---------------- ---------------- --------------------------------------------
FsxId0967312eff2f5f5e1
                 Fsx
                                  FsxId0967312eff2f5f5e1-01:e0e,
                                  FsxId0967312eff2f5f5e1-02:e0e

フェイルオーバーさせてみた

フェイルオーバーテストの整理

LIFによってフェイルオーバーする/しないということが分かりました。

ということで実際にフェイルオーバーさせてみましょう。

フェイルオーバーが発生する条件は以下の4つです。

  • プライマリノードが使用できない状態になる
  • ファイルシステムのスループットキャパシティが変更される
  • プライマリノードで予定されているメンテナンスが実行される
  • AZの停止

自分でプライマリノードを使用できなくする方法が思いつかなかったので、フェイルオーバーのテストはAWS公式ドキュメントに記載の通り、スループットキャパシティを変更することで行います。

ファイルシステムでフェイルオーバーをテストする

スループット容量を変更することで、ファイルシステムのフェイルオーバーをテストすることができます。ファイルシステムのスループット容量を変更すると、Amazon FSx はファイルシステムのファイルサーバーを順次切り替えます。ファイルシステムはセカンダリサーバーに自動的にフェイルオーバーし、Amazon FSx は優先ファイルサーバーを最初に置き換えます。更新されると、ファイルシステムは自動的に新しいプライマリサーバーにフェイルバックし、Amazon FSx がセカンダリファイルサーバーを置き換えます。

可用性と耐久性 - FSx for ONTAP

上述のドキュメントを整理すると以下の順番でスループットキャパシティが変更されるようです。

  1. セカンダリノードにフェイルオーバー
  2. プライマリノードのスループットキャパシティを変更
  3. プライマリノードにフェイルバック
  4. セカンダリノードのスループットキャパシティを変更

実際にこのような挙動をするか確認してみます。

やってみた

それでは実際にスループットキャパシティを変更してみます。

希望するスループットキャパシティで256MB/秒に変更して更新をクリックします。

スループットキャパシティの変更

更新をクリックして30秒後にFSx for ONTAPファイルシステムへのSSHのセッションが切れました。再度接続すると、以下のような状態になっていました。

  • LIFfsxadminとLIFnfs_smb_management_1の現在のノードがFsxId0967312eff2f5f5e1-01からFsxId0967312eff2f5f5e1-02に変更
  • failover-policydisabledである以下LIFのstatus-operupから-に変更
    • inter_1
    • iscsi_1
::> network interface show -fields vserver, lif, address, is-vip, home-node, home-port, curr-node, curr-port, status-oper, is-home, failover-policy, auto-revert, failover-group
vserver                lif      address     is-vip home-node                 home-port curr-node                 curr-port status-oper is-home failover-policy       auto-revert failover-group
---------------------- -------- ----------- ------ ------------------------- --------- ------------------------- --------- ----------- ------- --------------------- ----------- --------------
FsxId0967312eff2f5f5e1 fsxadmin 10.0.10.191 false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    broadcast-domain-wide true        Fsx
FsxId0967312eff2f5f5e1 inter_1  10.0.10.81  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
FsxId0967312eff2f5f5e1 inter_2  10.0.10.63  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_1  10.0.10.96  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_2  10.0.10.45  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       nfs_smb_management_1
                                10.0.10.31  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    system-defined        true        Fsx
6 entries were displayed.


# SSHのセッションが切れる
::> client_loop: send disconnect: Connection reset

# 再度SSHで接続
> ssh fsxadmin@management.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com
Password:

Last login time: 6/1/2022 23:56:33

# セカンダリノードにフェイルオーバーしていることを確認
# プライマリノードのLIFがダウンしていることを確認
::> network interface show -fields vserver, lif, address, is-vip, home-node, home-port, curr-node, curr-port, status-oper, is-home, failover-policy, auto-revert, failover-group
vserver                lif      address     is-vip home-node                 home-port curr-node                 curr-port status-oper is-home failover-policy       auto-revert failover-group
---------------------- -------- ----------- ------ ------------------------- --------- ------------------------- --------- ----------- ------- --------------------- ----------- --------------
FsxId0967312eff2f5f5e1 fsxadmin 10.0.10.191 false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          false   broadcast-domain-wide false       Fsx
FsxId0967312eff2f5f5e1 inter_1  10.0.10.81  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       -           true    disabled              false       Fsx
FsxId0967312eff2f5f5e1 inter_2  10.0.10.63  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_1  10.0.10.96  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       -           true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_2  10.0.10.45  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       nfs_smb_management_1
                                10.0.10.31  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          false   system-defined        false       Fsx
6 entries were displayed.

確かにフェイルオーバーしていそうですね。

FSx for ONTAPファイルシステムのENIも確認してみます。

# FSx for ONTAPファイルシステムのENIの説明とAZ、紐づいているプライベートIPアドレスを表示
# "10.0.10.191" と "10.0.10.31" が紐付いているENIが "eni-0b62e5f00c78bde40" に変わったことを確認
$ aws ec2 describe-network-interfaces \
    --network-interface-ids "${file_system_enis[@]}" \
  | jq -r ".NetworkInterfaces[] | [.NetworkInterfaceId, .Description, .AvailabilityZone, .PrivateIpAddresses]"
[
  "eni-0948afd396461e1e0",
  "[Do not detach or untag] Amazon FSx network interface for fs-0967312eff2f5f5e1",
  "ap-northeast-1a",
  [
    {
      "Primary": true,
      "PrivateDnsName": "ip-10-0-10-81.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.81"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-96.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.96"
    }
  ]
]
[
  "eni-0b62e5f00c78bde40",
  "[Do not detach or untag] Amazon FSx network interface for fs-0967312eff2f5f5e1",
  "ap-northeast-1a",
  [
    {
      "Primary": true,
      "PrivateDnsName": "ip-10-0-10-63.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.63"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-45.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.45"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-191.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.191"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-31.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.31"
    }
  ]
]

FSx for ONTAPファイルシステムの管理エンドポイントIPアドレス10.0.10.191とSVMのNFSとSMB用IPアドレス10.0.10.31が紐付くENIがeni-0948afd396461e1e0からeni-0b62e5f00c78bde40に変わりました。

しばらく待つと10分少々待つと、プライマリノードのLIFがリンクアップしました。

::> network interface show -fields vserver, lif, address, is-vip, home-node, home-port, curr-node, curr-port, status-oper, is-home, failover-policy, auto-revert, failover-group
vserver                lif      address     is-vip home-node                 home-port curr-node                 curr-port status-oper is-home failover-policy       auto-revert failover-group
---------------------- -------- ----------- ------ ------------------------- --------- ------------------------- --------- ----------- ------- --------------------- ----------- --------------
FsxId0967312eff2f5f5e1 fsxadmin 10.0.10.191 false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          false   broadcast-domain-wide false       Fsx
FsxId0967312eff2f5f5e1 inter_1  10.0.10.81  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
FsxId0967312eff2f5f5e1 inter_2  10.0.10.63  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_1  10.0.10.96  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_2  10.0.10.45  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       nfs_smb_management_1
                                10.0.10.31  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          false   system-defined        false       Fsx
6 entries were displayed.

その数十秒後、またしてもFSx for ONTAPファイルシステムへのSSHのセッションが切れました。再度接続すると、以下のような状態になっていました。

  • LIFfsxadminとLIFnfs_smb_management_1の現在のノードがFsxId0967312eff2f5f5e1-02からFsxId0967312eff2f5f5e1-01に変更
  • failover-policydisabledである以下LIFのstatus-operupから-に変更
    • inter_2
    • iscsi_2
# SSHのセッションが切れる
::> client_loop: send disconnect: Connection reset

# 再度SSHで接続
> ssh fsxadmin@management.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com
Password:

Last login time: 6/1/2022 23:56:33

# セカンダリノードにフェイルオーバーしていることを確認
# プライマリノードのLIFがダウンしていることを確認
::> network interface show -fields vserver, lif, address, is-vip, home-node, home-port, curr-node, curr-port, status-oper, is-home, failover-policy, auto-revert, failover-group
vserver                lif      address     is-vip home-node                 home-port curr-node                 curr-port status-oper is-home failover-policy       auto-revert failover-group
---------------------- -------- ----------- ------ ------------------------- --------- ------------------------- --------- ----------- ------- --------------------- ----------- --------------
FsxId0967312eff2f5f5e1 fsxadmin 10.0.10.191 false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    broadcast-domain-wide false       Fsx
FsxId0967312eff2f5f5e1 inter_1  10.0.10.81  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
FsxId0967312eff2f5f5e1 inter_2  10.0.10.63  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       -           true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_1  10.0.10.96  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_2  10.0.10.45  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       -           true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       nfs_smb_management_1
                                10.0.10.31  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    system-defined        false       Fsx
6 entries were displayed.

フェイルバックしていそうですね。

FSx for ONTAPファイルシステムのENIも確認してみます。

# FSx for ONTAPファイルシステムのENIの説明とAZ、紐づいているプライベートIPアドレスを表示
# "10.0.10.191" と "10.0.10.31" が紐付いているENIが "eni-0948afd396461e1e0" に戻ったことを確認
$ aws ec2 describe-network-interfaces \
    --network-interface-ids "${file_system_enis[@]}" \
  | jq -r ".NetworkInterfaces[] | [.NetworkInterfaceId, .Description, .AvailabilityZone, .PrivateIpAddresses]"
[
  "eni-0948afd396461e1e0",
  "[Do not detach or untag] Amazon FSx network interface for fs-0967312eff2f5f5e1",
  "ap-northeast-1a",
  [
    {
      "Primary": true,
      "PrivateDnsName": "ip-10-0-10-81.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.81"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-96.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.96"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-191.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.191"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-31.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.31"
    }
  ]
]
[
  "eni-0b62e5f00c78bde40",
  "[Do not detach or untag] Amazon FSx network interface for fs-0967312eff2f5f5e1",
  "ap-northeast-1a",
  [
    {
      "Primary": true,
      "PrivateDnsName": "ip-10-0-10-63.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.63"
    },
    {
      "Primary": false,
      "PrivateDnsName": "ip-10-0-10-45.ap-northeast-1.compute.internal",
      "PrivateIpAddress": "10.0.10.45"
    }
  ]
]

さらに12〜13分ほど待つと、セカンダリノードのLIFもリンクアップしました。AWS公式ドキュメントに記載の通りの挙動ですね。

::> network interface show -fields vserver, lif, address, is-vip, home-node, home-port, curr-node, curr-port, status-oper, is-home, failover-policy, auto-revert, failover-group
vserver                lif      address     is-vip home-node                 home-port curr-node                 curr-port status-oper is-home failover-policy       auto-revert failover-group
---------------------- -------- ----------- ------ ------------------------- --------- ------------------------- --------- ----------- ------- --------------------- ----------- --------------
FsxId0967312eff2f5f5e1 fsxadmin 10.0.10.191 false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    broadcast-domain-wide false       Fsx
FsxId0967312eff2f5f5e1 inter_1  10.0.10.81  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
FsxId0967312eff2f5f5e1 inter_2  10.0.10.63  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_1  10.0.10.96  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       iscsi_2  10.0.10.45  false  FsxId0967312eff2f5f5e1-02 e0e       FsxId0967312eff2f5f5e1-02 e0e       up          true    disabled              false       Fsx
classmethod-dev-fsx-netapp-ontap-single-az-svm
                       nfs_smb_management_1
                                10.0.10.31  false  FsxId0967312eff2f5f5e1-01 e0e       FsxId0967312eff2f5f5e1-01 e0e       up          true    system-defined        false       Fsx
6 entries were displayed.

ノードやENIに問題が発生してもちょっと安心

FSx for ONTAPファイルシステムのSingle-AZ構成はシングルノードではないという紹介をしました。

デプロイタイプをSingle-AZにしても、シングルノードではなく2つノードがあるので、ノードやENIに問題が発生しても少し安心ですね。

ただ、当然ですがAZレベルで問題が発生した場合は対応が難しいと考えます。より高い可用性を求められる場合は、デプロイタイプをMulti-AZにしてデプロイすることをオススメします。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!