由 udev 触发的脚本,用于检查分区表并测试它是否是 ceph 磁盘

由 udev 触发的脚本,用于检查分区表并测试它是否是 ceph 磁盘

我想要使​​用 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

相关内容