先日構築した、Raspberry Pi 4 + USBスティックSSD + Fedora CoreOSクラスタですが。カッターマットの上に置いて、そのまま何日か使用していたところ。
Raspberry Pi 4を置いていた部分の、カッターマットが変形してしまいました。ぐにゃり。
原因は、Raspberry Piの発熱。熱がこもるのは問題で、対策が必要です。
思い当たる原因と対策を記録しておこうと思います。
目次
Raspberry Pi 4クラスタの放熱対策は必須
Raspberry Pi 4にアーマーケースを取り付けたため、放熱対策は要らないと思って油断していました。
次のような条件で、Raspberry Pi 4周辺に大きな熱が籠もってしまいました。
Raspberry Pi本体周辺に熱が籠もった要因
要因1 Kubernetesの分散ストレージ+ポッドの負荷
うーむ。Raspberry Piのロードアベレージが、20を超えてしまいました。正直、20超は初めてみました。むしろ「20超えても暴走せずに動くのですね」と関心していたのですが、発熱は予想外でした。
フル稼働状態のロードアベレージは4.0としますと、その5倍の負荷がかかっています。
先日構築したクラスタですが
Rook Cephによる分散ファイルシステムを実装しました。
ロードアベレージが20を超えた原因は。
- Rook Cephによる分散ファイルシステムの同期処理の負荷。
- WordPressの2つのポッド、httpdとmysqldがこのノードにデプロイされた負荷。
分散ファイルシステムの負荷と、アプリケーション(WordPress)のポッドが2つもデプロイされた負荷で、このような恐ろしく高い負荷になったようです。
要因2 スティックSSD
こちらの記事にて検証致しましたが、スティックSSDは900mAの電源容量を必要とします。
この電力の供給は、Raspberr Pi 4本体のレギュレータ(整流回路)が行っています。
つまり、電源容量の大きなSSDを取り付けたために、Raspberry Pi 4の発熱量が増大していたと思われます。
要因3 本体を密集させすぎ
写真の通り、Raspberry Pi 4本体を、立てて密集させていました。
カッターマットが変形した際、Raspberry Pi 4本体に触ったのですが、持ち上げられず、火傷をするくらい熱くなっていました。
前述の要因2の通り、SSDを取り付けて発熱が大きくなった上に、密集させて熱が籠もったのかと思います。
そして、その熱をカッターマットが吸収したように思えます。
要因4 アーマーケースから外部への熱の伝導経路不足
今回使用したRaspberry Piはすべて、アーマーケースを装着してありました。
正直、アーマーケースを使用せず、ロードアベレージが20を超える負荷をかけた場合、Raspberry Pi 4は故障していたかもしれません。
アーマーケースがRaspberry Pi 4本体を守り、SoCやメモリーチップから出た熱を拡散したのは確かですが、その先、アーマーケースから外への熱の拡散が不足していました。
要因5 Raspberry Pi 4のリソース不足
ロードアベレージが20どころか、10を超えるのは、Raspbrry Pi 4のメモリー容量が4GBのノードのみでした。
実は、メモリー容量8GBのRaspberry Pi 4は、同じ状況でもここまで負荷が上がらないのは確認済みです。
4GB版を使用する場合は、ノードの負荷分散をよく考えなければなりませんね。
Raspberry Pi 4クラスタの放熱対策
以上の要因から、次の対策が考えられます。
- Raspberry Pi 4単体の熱拡散のため、アマーケースは必須
- エアフローで、アーマーケースに籠もった熱を拡散する
- 密集させない。密集させる場合は、熱が伝導する経路を作る
チップ全体の熱を吸収するためアーマーケース必須
ケースの工作精度から、私個人は海賊ロボ忍者さるさん、pimoroniさんのアーマーケースは必須だと思います。
アーマーケースではなく、SoCにヒートシンクやクーリングファンを取り付ける方法もありますが、SoC以外の他のチップの熱を吸収することができません。
SoC以外、レギュレータ等から発生する熱を吸収するためには、アーマーケースは必須だと思います。
クラスタケース必須
Raspberry Pi 4でクラスタを構築する場合は、クラスタケースは必須だと思います。理由は、後述のエアフローを作るためと、置き場所を整理する意味もあります。
後で写真が出てきますが、私はクラスタケースを自作して失敗しました。Raspberry Pi 3のサイズでクラスタケースを作ったところ、Raspberry Pi 4が入りませんでした。(やや大きい
作る手間を考えると、購入したほうが安価で綺麗です。(断言
エアフローを作るためクーリングファン導入
アーマーケースに籠もった熱を逃がすために、エアフローを作る必要があります。
Raspberry Pi 4のアーマーケースは、写真のような方向に溝が切ってあります。
このため、ファンを取り付ける場合は、溝に沿って風が流れるように、上から、またはmicroSDカード端子側(写真左側)にファンを取り付ける必要があります。
USBファンを使用すれば、Raspberry Pi用の電源からファンの電力を供給できます。
写真は14cmファン+本体4台になります。14cmのファンを使用する場合、4段x2、8台の本体のエアフローを作れそうです。
私の自作のクラスタケースはアルミ板を使用しています。アルミ等の金属は熱伝導率が高く、クラスタケースが放熱板の役割をしています。
Raspberry Pi が密集していますが、クラスタケースによる放熱と、USBファンによるエアフローの効果で、Raspberry Pi 4本体(アーマーケース)に触ると、室温と変わらないレベルまで、発熱が拡散するようになりました。
シングルボードコンピュータやPCは、熱がこもると安全装置が作動して、性能が低下する(低クロックモードに変わる)場合があります。
性能を最大限に引き出すためにも、放熱対策は必須かと思います。
実際にクラスタを構築してわかりましたが、ノードであるRaspberry Piには恐ろしい負荷がかかる場合があります。
さらにSSDによる電力増加の影響もありますし、密集による影響もあることがわかりました。
クラスタを構築する場合、このあたりに十分注意しての構築をお勧め致します。