我想要使用 CoreOS 下的 udev 触发磁盘添加/删除脚本。
目的/目标是自动将 ceph 数据分区挂载到特定目录,以准备在 ceph-docker 中启动/停止 osd。
1) 首先,CoreOS 使用 systemd。我应该采用 systemd 方式,还是仅在 /etc/udev/rules.d 下创建文件?(默认情况下不存在的目录)。
2) 假设我确实设法通过 udev 检测到磁盘并使用设备文件名触发脚本。我如何读取 /dev/sda 并确定它是否是 ceph 磁盘。即我想检查类型代码。它需要4fbd7e29-9d25-41b8-afd0-062c0ceff05d
答案1
udev
与之紧密结合systemd
,以至于你大概不想使用 udev 创建规则,而是使用 systemd 挂载单元:
http://www.freedesktop.org/software/systemd/man/systemd.mount.html
systemd 支持所有这些选项(包括检查文件系统类型)。
你的ceph.mount
文件看起来会像这样:
[Unit]
Description=CEPH Partition
Before=my-docker-process.service
[Mount]
What=/dev/disk/by-uuid/59696d6c-2c78-48d0-b844-1c9590cfd0b0
Where=/media/ceph
Type=4fbd7e29-9d25-41b8-afd0-062c0ceff05d
此外,如果这对你不起作用,也有device
配置 udev 的单元:
http://www.freedesktop.org/software/systemd/man/systemd.device.html