清水理史の「イニシャルB」

Raspberry Pi 4Bで4台構成の自宅クラスター! ラズパイ4B向けPoE HATを試す

 Raspberry Pi 4Bを複数台運用する際に問題となりがちな、配線の問題をPoEで解決してみてはどうだろう? 例えば、USB電源アダプター+給電用USBケーブルが不要になるだけで、かなりスッキリとする。

 ただし、PoE HATはサイズや給電能力に違いがあるため、しっかり選ばないと失敗することにもなりかねない。リスクを承知で、2.5A対応となる2種類のPoE HATを用意し、動作を検証してみた。

USBストレージを使っても、こんなにスッキリ

 まずは、完成後のイメージを見ていただこう。

 合計4台のRaspberry Pi 4B(8GB版)を組み込んだタワーケース(GeeekPi製、購入価格4029円)だが、正面から見たときの配線は、底面に固定したPoEスイッチへの電源と同じく、インターネット回線へつなぐために接続したPoEスイッチへのLANケーブルのみとなる。

 背面側は、電源供給+ネットワーク接続のため、台数分(ここでは4本)のLANケーブルがPoEスイッチへと接続されている。各Raspberry Piには、ストレージとして外付けUSB SSDをUSBケーブルで接続している。

 配線も、なるべく短いものを選んだので、だいぶスッキリした印象だ。

 長期運用も問題なく、筆者宅では以下のように、CPUとストレージへそれなりに負荷を掛けた状態で1週間ほど常時稼働させっぱなしにしているが、電源供給が不安定になったり、発熱の問題が発生したりすることもなく、安定して動作している。

 バスパワーでUSBストレージを利用するため、当初は給電能力に不安があったが、SSD1台程度であれば、実用上は問題なさそうだ。

実運用時の負荷
実運用時のCPUクロックは「1500345728」、温度は「46.7℃」

Raspberry Pi 4B用PoE HATを選ぶ

 Raspberry Pi 4Bの消費電流は、販売代理店であるアイ・オー・データ機器が公表している仕様表によると、単体の最大時で1.7Aとなるが、USBバスパワー機器を利用する場合は3A以上が推奨されている。

 PoEで運用する際も、これが目安になるが、この条件を満たすPoE HATはあまり多くない上、国内で在庫を持つショップも少ない。

 検索すると、UCTRONICS製の製品が見つかるが、残念ながら今回は在庫の関係で入手できなかった。

 そこで、リスクを承知で、今回は種類が多い2.5A対応のPoE HATを購入してテストしてみた。Raspberry Pi 4B単体での動作は問題なさそうだが、USB SSDからブートする場合、その分上乗せされる消費電流の増加分に耐えられるかがポイントとなる。

 用意したのは、以下の2製品だ。

 なお、上記に加え、以前に購入したRaspberry Pi 3 Model B+用PoE HATも用意したが、これはRaspberry Pi 3B+専用かつ、回路修正前のバージョン向けで、USB出力が低い製品となる。一応、Raspberry Pi 4B本体にPoEで電力を供給することはできたが、USB SSDへの電源供給が不安定で、動作しなかった。詳しくはこちらの販売ページを参照して欲しい。

Raspberry Pi3B+専用のオフィシャルPoE HATも装着してみた。未対策品の場合、USB給電が不安定になる

 一方、給電側には、TP-LinkのPoE対応5ポートスイッチ「TL-SG1005P V1」を利用した。この製品は、1~4の各ポートがPoEに対応していて今回の4台クラスター構成にはピッタリ。サイズも小さく、GeeekPiのケース底面にすっきり収まる。

 給電性能は、各ポート最大15.4Wで、全体で56Wの能力を持っている。価格も手ごろで、Amazon.co.jpでの販売価格は4500円だった。これなら、Raspberry Pi4のPoE稼働にもちょうどいいだろう。

TP-Linkの小型PoEスイッチ「TL-SG1005P V2」。5ポートのうち4ポートが給電に対応する

消費電流を検証する

 では、実際に動作を検証してみよう。

 それぞれのPoE HATを接続し、microSDカードからブートしてみたが、いずれも問題なく動作することを確認できた。

DSLRKIT製とUCTRONICS製2種類のPoE HATを装着して動作検証

 前述したように、Raspberry Pi 4Bの消費電流は最大1.7A前後なので、2.5A対応のPoE HATであれば問題なく動作可能だ。USBストレージやGPIOで拡張するなどの使い方をしないのであれば、これでも十分と言えそうだ。

 続いて、USB SSDを接続して動作を検証してみた。

 USB 3.1対応のケースに、Western Digitalの「WD Blue 3D 500GB」を装着し、Ubuntu 21.04のイメージを書き込んでから、Raspberry Pi 4BのUSBポートに接続してブートしてみた。

動作検証時の様子

 こちらも問題もなく起動し、その後も常時アクセスが発生する環境で24時間連続運用しているが、今のところ不具合はないのは、前述した通りだ。

 そこで、電流電圧計を使ってUSBストレージへの電流を計測してみたところ、読み書きを発生させた際の最大でも0.3Aほどとなっていたので、本体の1.7Aと足しても2.5A以内に収まっている。これなら問題なさそうだ。

USBストレージの消費電力はビジー状態でも0.3Aほど。これなら、2.5A対応のHATでも運用できそう

ケースの高さに注意

 このように、PoEの動作は問題なかったものの、別の問題が発生した。

 上記2つのPoE HATのうち、DSLRKITの製品は、HATを装着してもGPIOを生かせる形状となっているため、装着するとRaspberry Pi 4Bの高さが3.5cmほどになってしまう。

DSLRKIT(左)は高さが3.5cmほどになってしまう。UCTRONICSはオリジナルの高さを維持

 このため、複数台のRaspberry Piを積層するタイプのケースの場合、装着スペースの高さが低いと収まらない。

 冒頭で紹介したGeeekPiのファン付きのケースは、装着スペースの高さが2.5cmほどなので、全く入らない。

 3cmほどの高さを確保できるケースを使えば無理矢理収めることはできなくないが、この場合はPoE HATが斜めになり、装置にかなり負荷がかかるので、やめた方が無難だ。DSLRKITの製品を使う場合は、ケース選びにかなり慎重になる必要がある。

GeeekPiのファン付きケースの場合、最上部以外のスペースには収まらない
3cmほどの高さを確保できるケースも取り寄せてみたが、基板がゆがむため装着はおすすめできない
UCTRONICSのHAT。高さは変わらないが、GPIOが使えなくなるのと、メモリ周りのすぐ上に基板がかぶさるため、熱対策が心配

 一方、UCTRONICSのHATは、装着しても本体の高さは全く変わらない。このため、ケースを選ばず装着できるが、GPIOが使えなくなるのと、メモリなどプロセッサー以外にヒートシンクを装着できなくなるのが欠点だ。

 筆者の目的はサーバーとして稼働させることなので、GPIOは犠牲になっても構わないが、メモリ周りのスペースに余裕がなくなり、ヒートシンクの数が減ることで、発熱に問題が発生すると困る。

 しかし、この点も心配するほどではなかった。冒頭で紹介したGeeekPiのファン付きケースは、ファンの音が静かな割りに冷却能力がかなり高く、高負荷で24時間運用してもCPU温度は50℃以下で安定している。

 というわけで、今回はDSLRKITのHATとUCTRONICSのHATを組み合わせて利用することにした。

 高さの制約を受けないケースの最上部にはDSLRKITのHATを利用し、このRaspberry Pi 4BのGPIOを使ってケースのファンへ給電。そして、最上部以外の3つのスペースは、高さが低いUCTRONICSのHATを利用することにした。

最上部のみDSLRKIT、ほかはUCTRONICSで仮組み
このケースの冷却能力は優秀。フロントファンでがんがん冷やせる
背面。一番下のPoEスイッチから青色のLANケーブルで給電
側面。SSD接続用のUSBケーブルは黒

 なお、GeeekPiのケースにはmicroSDカードを装着しやすくするためのアダプターが付属しているが、今回は前述したようにUSBからブートするため、アダプターは装着していない。

 USBストレージは、ケースの右側にピッタリ収まるが、この幅は3.4cmほどだ。ストレージ用ケースの幅がこれ以上大きいと収まらない可能性があるので注意が必要だ。

今回用意したUSBストレージは、右側の空きスペース(microSDアダプター装着時は空きスペースがなくなるので注意)にぴったり収まった

 今回、LANケーブルは15cm、USBケーブルは13.7cmのものを用意した。USBについてはケース同梱のケーブルでも構わないが、なるべく短くした方が見栄えがいいので、こだわってみた次第だ。

最終的に短いUSBケーブルへと挿し換えて完成

再び自宅サーバーが脚光を浴びる日もありそう

 以上、今回はPoEでラズパイクラスターを作る方法を紹介した。

 今回、こうした構成とした理由は、別にKubernetesの勉強をしたいからではなく、自宅サーバーで分散システムへの参加を本格的に始めようと考えたからだ。

 以前に掲載した『自宅サバで作る! イーサリアム 2.0 TestnetのValidatorノード(Prysm版)~資産の減少を防ぐにはどう運用管理する?』もそうだが、自宅のコンピューティングリソースを生かした分散システムが再び注目されるようになってきた。

 クラウドサービスの普及で、“自宅サバ”はすっかりマイナーな存在になってしまったが、どうやらブロックチェーンや分散ストレージの分野では、なるべく小規模で低消費電力なライトノードを多く、しかも分散させた状態で稼働させようという方向に移り変わりつつある(クラウドサービスでは分散の意味が薄れる)。

 こうした本当の分散システムの時代への歩みが始まったことで、自宅サーバーは再び脚光を浴びることになるかもしれない。

 実際、筆者は現在、Ethereum上の分散ストレージのパブリックテストに参加している。今回のRaspberry Pi 4Bのノードも、そのために使っている。1台のRaspberry Pi 4Bあたり2ノード、合計8ノード(現時点ではバージョンアップの関係で6ノード)を常時稼働させている。

分散ストレージのパブリックベータテストに参加中のノードの状態。意図せずプロセスが終了していたり、CPU負荷が90%越えになって焦ったりする「楽しさ」を満喫できる

 もちろん、こうした環境が普及すると、今度は回線の問題(帯域規制)が発生するのは明らかだ。多くのISPが設けている、1日あたりで上り30GBの通信量を超えた場合、帯域制限の条件に引っ掛かるのは間違いない。

 このため、筆者はすでに個人向けの光ファイバーサービスから、帯域制限の条件が緩い法人向け回線(NURO Biz)への切り替えも進めている。回線を選ぶ条件としても、今後は最大速度ではなく、最低の速度保証や制限を受けにくいかどうかが基準になりそうだ。

 こうした取り組みが、いわゆる「Web 3.0」と呼ばれる世界にどこまでつながるかは、まだ分からない。だが、いずれにせよ、自宅サバ派にとって、遊べる、面白い時代が訪れつつあることは間違いなさそうだ。

【お詫びと訂正 11:29】
 記事初出時、製品名と供給電力の記載に誤りがありました。お詫びして訂正いたします。

 誤:TP-LinkのPoE対応5ポートスイッチ「TL-SG100SP」
 正:TP-LinkのPoE対応5ポートスイッチ「TL-SG1005P V1」

 誤:各ポート最大1.54W(5V、3A)
 正:各ポート最大15.4W

清水 理史

製品レビューなど幅広く執筆しているが、実際に大手企業でネットワーク管理者をしていたこともあり、Windowsのネットワーク全般が得意ジャンル。最新刊「できる Windows 10 活用編」ほか多数の著書がある。