EC2インスタンス(Ubuntu)起動時にFSx for Lustreファイルシステムが自動マウントされないのはなぜですか

2024.03.21

困っていた内容

EC2インスタンス(Ubuntu)起動時にFSx for Lustreファイルシステムを自動マウントするよう下記ドキュメントを参考に/etc/fstabに追記しましたが、EC2インスタンスを再起動後、マウントが外れ、自動マウントされていないように見えます。自動マウントの設定が機能していないように見えますが、EC2インスタンス起動後にmount -aコマンドを実行すると、マウントされます。

原因

結論から申し上げると、EC2インスタンスを再起動後、ファイルシステムをマウントするディレクトリに何らかのアクセスが発生するまではマウントされず、ディレクトリにアクセスした際に自動マウントする仕組みとなっていました。

確認してみた

準備

EC2インスタンスを Ubuntu 22.04.3 LTS で起動します。

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"

Amazon FSx for Lustre を作成します。 EC2インスタンスに接続し、下記コマンドで、Amazon FSx ファイルシステムをマウントするディレクトリ/fsxを作成し、FSx ファイルシステムにマウントします。

$ sudo mkdir /fsx
$ sudo mount -t lustre -o relatime,flock fs-xxx.fsx.ca-central-1.amazonaws.com@tcp:/5rl6zbmv /fsx

dfコマンドでマウントが成功していることを確認しました。

$ df -h
Filesystem                  Size  Used Avail Use% Mounted on
〜 一部抜粋 〜
172.31.28.50@tcp:/5rl6zbmv  1.2T  7.8M  1.2T   1% /fsx

次に、下記のように/fsxディレクトリ配下にtest.txtファイルを作成しました。

$ ls /fsx
test.txt

自動マウントの設定

/etc/fstab に、下記を追記します。

fs-xxx.fsx.ca-central-1.amazonaws.com@tcp:/4iio3bmv /fsx lustre defaults,relatime,flock,_netdev,x-systemd.automount,x-systemd.requires=systemd-networkd-wait-online.service 0 0

動作確認

自動マウントされるか確認するため、再起動してみます。

$ sudo reboot

再起動後にdfコマンドで確認すると、マウントされていないように見えます。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.6G  2.2G  5.4G  30% /
tmpfs           475M     0  475M   0% /dev/shm
tmpfs           190M  860K  190M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/xvda15     105M  6.1M   99M   6% /boot/efi
tmpfs            95M  4.0K   95M   1% /run/user/1000

ステータスを確認すると「active (waiting) 」となっていました。自動マウントの設定はされているようです。

$ systemctl status fsx.automount
● fsx.automount
     Loaded: loaded (/etc/fstab; generated)
     Active: active (waiting) since Wed 2024-03-20 05:02:51 UTC; 25s ago
   Triggers: ● fsx.mount
      Where: /fsx
       Docs: man:fstab(5)
             man:systemd-fstab-generator(8)

Mar 20 05:02:51 ip-172-31-20-19 systemd[1]: Set up automount fsx.automount.

lsコマンドで対象ディレクトリにアクセスします。

$ ls /fsx
test.txt

再度確認するとマウントされていました。

$ df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/root                    7.6G  2.2G  5.4G  30% /
tmpfs                        475M     0  475M   0% /dev/shm
tmpfs                        190M  848K  190M   1% /run
tmpfs                        5.0M     0  5.0M   0% /run/lock
/dev/xvda15                  105M  6.1M   99M   6% /boot/efi
tmpfs                         95M  4.0K   95M   1% /run/user/1000
172.31.20.133@tcp:/4iio3bmv  1.2T  7.8M  1.2T   1% /fsx

再度ステータスを確認すると「active (running) 」となっていました。出力された「fsx.automount: Got automount request for /fsx, triggered by 771 (ls)」の記録から、lsコマンドによってアクセスした際に、自動マウントが実行されたことがわかります。

$ systemctl status fsx.automount
● fsx.automount
     Loaded: loaded (/etc/fstab; generated)
     Active: active (running) since Wed 2024-03-20 05:02:51 UTC; 1min 7s ago
   Triggers: ● fsx.mount
      Where: /fsx
       Docs: man:fstab(5)
             man:systemd-fstab-generator(8)

Mar 20 05:02:51 ip-172-31-20-19 systemd[1]: Set up automount fsx.automount.
Mar 20 05:03:40 ip-172-31-20-19 systemd[1]: fsx.automount: Got automount request for /fsx, triggered by 771 (ls)

参考