江苏省吴江市双板桥路3号兴源网络

0512-63028342

ly@wjxy.net.cn

设置zfs在DEGRADED降级模式下readonly

nano /etc/zfs/zed.d/90-degraded-readonly.sh
#!/bin/bash

ZPOOL="SSD-RAID5"

# 只在池状态变为 DEGRADED 时触发
if [ "$ZEVENT_SUBCLASS" = "pool_state_change" ] &&
   zpool status "$ZPOOL" | grep -q "state: DEGRADED"; then

    # 设置整个池为只读,禁止写入
    zfs set readonly=on "$ZPOOL"

    # 系统日志留痕
    logger -t zed "Pool $ZPOOL is DEGRADED -> set READONLY"
fi

chmod +x /etc/zfs/zed.d/90-degraded-readonly.sh

systemctl restart zed

只要任意一块盘掉了 →
池变成 DEGRADED →
立刻自动禁止所有写入 →
任何新建/修改/删除都会直接报错:

Read-only file system

读不受影响,数据绝对安全。

恢复正常(盘修好/重建完后)

等 resilver 结束、状态回到 ONLINE,执行:

zfs set readonly=off SSD-RAID5

临时启用读写:

chmod -x /etc/zfs/zed.d/90-degraded-readonly.sh

systemctl restart zed

zfs set readonly=off SSD-RAID5

发表回复