it-swarm-ja.com

AWS EC2NVMeディスクサイズ変更udevルール

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.rulesudevadm 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で試してみました。

私は少し必死になり始めているので、どんなアドバイスにも非常に感謝します(:

1
Maros Mitucha

これは検証済みのカーネルのバグ/機能です。 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>"

2
Maros Mitucha