AWS EC2T2からT3インスタンスへの移行を開始しました。ディスクのサイズ変更を検出するudevルールを作成したいと思います。
新しいルールを作成しました
SUBSYSTEM=="block", ACTION=="change", ENV{RESIZE}=="1", RUN+="/usr/bin/logger -t udev-subsystem-nvme %k - serial:$attr{serial} - resize:%E{RESIZE} - id_serial:%E{ID_SERIAL} - devname:%E{DEVNAME}"`
/etc/udev/rules.d/99-disk.rules
でudevadm control --reload-rules && udevadm trigger
を押し、udevadm monitor
と/var/log/syslog
の変化を監視しました
これはT2インスタンスでは機能しましたが、T3インスタンスでは機能しません。だから私は多くの異なるオプションを試しました、参照してください
SUBSYSTEM=="nvme",RUN+="/usr/bin/logger -t udev-subsystem-nvme %k - serial:$attr{serial} - resize:%E{RESIZE} - id_serial:%E{ID_SERIAL} - devname:%E{DEVNAME}"
SUBSYSTEM=="block",RUN+="/usr/bin/logger -t udev-subsystem-block %k - serial:$attr{serial} - resize:%E{RESIZE} - id_serial:%E{ID_SERIAL} - devname:%E{DEVNAME}"
KERNEL=="nvme*",RUN+="/usr/bin/logger -t udev-kernel0 %k - serial:$attr{serial} - resize:%E{RESIZE} - id_serial:%E{ID_SERIAL} - devname:%E{DEVNAME}"
KERNEL=="nvme[0-9]*n[0-9]*",RUN+="/usr/bin/logger -t udev-kernel1 %k - serial:$attr{serial} - resize:%E{RESIZE} - id_serial:%E{ID_SERIAL} - devname:%E{DEVNAME}"
しかし、それらのどれも機能しません。新しいディスクが接続されたイベントを検出できますが、ディスクのサイズ変更を検出できません。
最新のbuntu 18.04 AMIおよび最新のAmazon AMIで試してみました。
私は少し必死になり始めているので、どんなアドバイスにも非常に感謝します(:
これは検証済みのカーネルのバグ/機能です。 AWSサポートに相談したところ、最新のUbuntu、RedHat、Amazon Linux 1、Amazon Linux2でこれを複製することができました。
このudevルールは機能するはずです-新しいデバイスを検出しますが、デバイスの変更は検出しません。
KERNEL=="nvme[0-9]*n[0-9]*", ENV{DEVTYPE}=="disk", ATTRS{model}=="Amazon Elastic Block Store",RUN+="<some_action>"