Ceph クラスタ用のラズパイ 4 に PoE+ HAT を導入しました。 PoE+ HAT にはファンも内蔵されているのですが、このファンが煩いです。

ラズパイ本体の温度によってファンの回転数が変わるようなのですが、頻繁に回転数が変わります。 温度をみたところ 50℃ 前後を行き来していて、どうやら 50℃ を境に回転数が上がるようです。

書斎にラズパイを置いているのですが、これでは全く集中できません。 ファン回転数の閾値を変更して、騒音レベルを下げます。

どうやって PoE+ HAT のファンを制御するかググったところ、Raspberry Pi OS ではシステム設定用のファイル /boot/config.txt に下記のような設定を追加すればよいようです。

dtoverlay=rpi-poe-plus
dtparam=poe_fan_temp0=40000,poe_fan_temp0_hyst=2000
dtparam=poe_fan_temp1=45000,poe_fan_temp1_hyst=2000
dtparam=poe_fan_temp2=50000,poe_fan_temp2_hyst=2000
dtparam=poe_fan_temp3=55000,poe_fan_temp3_hyst=5000

dtparam に設定するパラメータは意味はラズパイ Firmware の README に書いてありました。

パラメータ 内容 デフォルト値
poe_fan_temp0 ファンがオンになる温度 40000
poe_fan_temp0_hyst ファンがオフになるまでの温度差 2000
poe_fan_temp1 ファンが速度を上げる温度 45000
poe_fan_temp1_hyst ファンが減速する温度差 2000
poe_fan_temp2 ファンが速度を上げる温度 50000
poe_fan_temp2_hyst ファンが減速する温度差 2000
poe_fan_temp3 ファンが速度を上げる温度 55000
poe_fan_temp3_hyst ファンが減速する温度差 5000

Ceph クラスタ用ラズパイの OS には Fedora を使っているのですが、Raspberry Pi OS とは config.txt の場所が異なっており /boot/efi/config.txt にありました。

ラズパイ本体の温度が 50℃ 前後で推移していたことから考えると、poe_fan_temp2 で設定された回転数からかなり耳障りな騒音が出るみたいです(個人の感想です)。 そこで、以下のようなパラメータを config.txt に追記しました。

[all]
dtoverlay=rpi-poe-plus
dtparam=poe_fan_temp0=50000,poe_fan_temp0_hyst=2000
dtparam=poe_fan_temp1=60000,poe_fan_temp1_hyst=2000
dtparam=poe_fan_temp2=70000,poe_fan_temp2_hyst=2000
dtparam=poe_fan_temp3=80000,poe_fan_temp3_hyst=5000

追記して再起動すると、ファンは静かな状態で起動してきました! Fedora でも設定ファイルの場所が違うだけで Raspberry Pi OS と同じ設定方法でファンの制御ができるようです。

当然、ファンの回転数が落ちたのでラズパイ本体の温度も上昇しました。 しっかり計測していませんが Ceph が動いてる状態で 60~65℃ を推移しています。 しばらくはこの設定で運用して、適宜見直していく予定です。