Kubernetes 1.22 に対応した Rancher がリリースされてたから久々に VM を起動しようとしたら、 start failed: org.freedesktop.systemd1.NoSuchUnit: Unit 105.scope not found. とエラーが出て起動しなかった。

色々調べてみると、PVE ノードでファイルサーバを CIFS マウントしてたら samba が tmpfs を食い尽くしたのが原因っぽく、これは Proxmox の既知のバグらしい。

https://bugzilla.proxmox.com/show_bug.cgi?id=2333

root@sorarinusv01:~# df -h
Filesystem              Size  Used Avail Use% Mounted on
udev                     16G     0   16G   0% /dev
tmpfs                   3.2G  3.2G     0 100% /run
/dev/mapper/pve-root     70G  5.0G   65G   8% /
tmpfs                    16G   63M   16G   1% /dev/shm
tmpfs                   5.0M     0  5.0M   0% /run/lock
tmpfs                    16G     0   16G   0% /sys/fs/cgroup
/dev/fuse                30M   36K   30M   1% /etc/pve
//192.168.1.254/system  2.5T  571G  2.0T  23% /mnt/pve/sorarinusv-fileserver

root@sorarinusv01:~# ls -la /var/run/samba/msg.lock/ | wc -l
742259

root@sorarinusv01:~# ls -la /var/lib/samba/private/msg.sock/ | wc -l
1807384

現状バグの修正などはなく、とりあえず 1 時間おきに samba の一時ファイルを削除するシェルスクリプトを cron で動かすようにして回避した。

#!/bin/sh

# Cleanup old files
find /var/lib/samba/private/msg.sock -type s -mmin +600 -delete
find /var/run/samba/msg.lock -type f -mmin +600 -delete

# Cleanup recent files by checking for process
for file in `find /var/lib/samba/private/msg.sock -type s`; do [ -d "/proc/$(basename "$file")" ] || rm -vf "$file"; done;
for file in `find /var/run/samba/msg.lock -type f`; do [ -d "/proc/$(basename "$file")" ] || rm -vf "$file"; done;
* */1 * * * /usr/bin/sh /opt/cleanup_samba.sh