我有一个运行 Debian Buster 的小型家庭服务器,我有一个ZFS: Loaded module v0.7.12-2+deb10u2, ZFS pool version 5000, ZFS filesystem version 5
带有 RAID 的 ZFS 文件系统 ( )。
由于服务器有时几天不使用,我配置了一个自动关闭脚本,如果我的 2 个大 WD 红色硬盘待机超过 45 分钟(不是系统硬盘),它会关闭服务器。现在我发现服务器不再关闭,因为两个驱动器都只有几分钟的待机时间,然后才再次激活。我测试iotop
并发现带有命令的 ZFStxg_sync
正在唤醒它们。即使没有其他进程正在驱动器上写入或读取任何内容。
通过使用iosnoop
(https://github.com/brendangregg/perf-tools),我能够确定 dmcrypt 正在定期写入我的磁盘。请注意,我的底层磁盘是用 LUKS 加密的。
./iosnoop -d 8,16
Tracing block I/O. Ctrl-C to end.
COMM PID TYPE DEV BLOCK BYTES LATms
dmcrypt_writ 1895 W 8,16 2080476248 4096 6516.10
dmcrypt_writ 1895 W 8,16 3334728264 4096 6516.14
dmcrypt_writ 1895 W 8,16 2080429048 16384 0.16
dmcrypt_writ 1895 W 8,16 3334728272 20480 0.21
dmcrypt_writ 1895 W 8,16 2080476256 20480 0.16
dmcrypt_writ 1895 W 8,16 3328225336 16384 0.20
这是什么原因,我该如何防止这种情况发生?
使用 ZFS 和 LUKS 加密设备时,识别磁盘上的 I/O 活动并不容易。一种方法是结合使用
iotop
和iosnoop
终止进程来识别 I/O 活动何时停止。我能够识别正在访问我的驱动器的进程