AWS EC2 NVMe 磁盘调整大小 udev 规则

AWS EC2 NVMe 磁盘调整大小 udev 规则

我刚刚开始将 AWS EC2 T2 实例迁移到 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}"

但它们都不起作用。我可以检测到新磁盘连接的事件,但无法检测到磁盘大小调整。

已尝试使用最新版本Ubuntu 18.04 AMI最新的 Amazon AMI

将非常感谢您的任何建议,因为我开始有点绝望了(:

答案1

这是经过验证的内核错误/功能。我向 AWS 支持人员咨询了这个问题,他们能够在最新的 Ubuntu、RedHat、Amazon Linux 1 和 Amazon Linux 2 上复制这个问题。

这个 udev 规则应该可以工作 - 它能检测新设备,但不能检测设备变化。

KERNEL=="nvme[0-9]*n[0-9]*", ENV{DEVTYPE}=="disk", ATTRS{model}=="Amazon Elastic Block Store",RUN+="<some_action>"

相关内容