OpenVPN 守护进程让我的硬盘在 NAS 家庭服务器上保持运转

OpenVPN 守护进程让我的硬盘在 NAS 家庭服务器上保持运转

我有一台安装了 OpenVPN 守护进程的家庭 NAS 服务器,但是当没有人主动使用 NAS 上的 VPN 或文件时,我希望将硬盘保持在空闲模式(这样它们的使用寿命更长)。

OpenVPN 守护进程会阻止这种情况,因为它不断将其 PID 写入文件:

    root@NAS:~# iotop
Total DISK READ:         0.00 B/s | Total DISK WRITE:         3.80 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
  725 be/4 nobody      0.00 B/s    3.80 K/s  0.00 %  0.00 % openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_gp]
    4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_par_gp]

这很烦人,因为我整夜都能听到硬盘旋转的声音,我担心因为不断的旋转会缩短它们的寿命。

这是我在 iotop 中看到的唯一使用硬盘的进程,所以我想这是我的硬盘在夜间不断旋转的唯一原因。

答案1

--writepid /run/openvpn/server.pid选项仅在进程启动时写入 PID 一次。另一方面,该--status /run/openvpn/server.status 10选项每 10 秒写入一次状态文件。

然而,这两个文件都被写入基于 RAM 的文件系统/run.可能是日志记录吸引了您;消息通常写入下面的文件中/var/log,我建议很可能正是这些消息使您的磁盘保持唤醒状态。

--daemon [progname]所有初始化功能完成后成为守护进程。此选项将导致所有消息和错误输出发送到 syslog 文件(例如)[...] 如果存在/var/log/messages其中一个选项,它将取代 syslog 重定向。--log

然后,

--log file将日志消息输出到文件,包括输出到标准输出/标准错误它是由调用的脚本生成的。如果文件已经存在,它将被截断。如果还指定了--daemon或 ,则此选项[...]将取代系统日志输出--inetd

--log-append file将日志消息附加到文件。如果文件不存在,则会创建该文件。此选项的行为与此完全相同,--log只是它附加到日志文件而不是截断日志文件。

如果您愿意放弃日志记录,我想您可以使用它--log-append /dev/null,这将使您的磁盘进入睡眠状态。另一方面,您一开始就不应该进行太多日志记录;值得确定 OpenVPN 正在写入什么来保持磁盘唤醒。lsof可能对此有用:

# As root
watch -n1 'lsof -f -p $(pidof openvpn | tr " " ,) 2>&1 | grep -v /lib/'

相关内容