Raspberry Pi 4Bでクラスタ計算機を作る

某散財系鯖主の企画である、逸般の誤家庭に触発され、自分でも自宅サーバー運用してみたいという気持ちになりました。そこで手始めにラズパイクラスタを作ってみることにしました。用途としてはOpenMPIを用いた分散メモリ並列化や、Kubernetesに触ってみる、を想定しています。ちなみにKubernetesはYouTubeで見かけただけなのでなんだかよく分かってません。

使ったもの

ひとまずRaspberry Pi 3台構成でクラスタを組みました。ホコリや発熱の問題があるので、本当はケースやヒートシンクも用意した方が良いと思います。ラズパイが思いの外高価でしたが、総額3万円程度で揃えられたと思います。

名称備考
Raspberry Pi 4B (4GB)ラズパイ
Raspberry Pi 4B (2GB) x 2ラズパイ。メルカリで購入
電源ケーブルエレコム USB充電器
スイッチングハブNETGEAR GS308-300JPS, 8ポート
LANケーブル x 3Senetem LANケーブル 0.5m
USB x 3OS書き込み用。自宅にあったもの
USBケーブルラズパイの電源用。自宅にあったもの

環境構築

まずは1台の場合と同様、OSのセットアップやssh接続設定をします。OpenMPIを使う場合はファイアウォールを無効にする必要があるため、注意が必要です。またsshのポート番号は変更しない方が良いでしょう。初期設定が終了したら、Raspberry Piに割り当てるIPアドレスを固定化します。/etc/dhcpcd.confを編集すればOKという記事も見かけますが、ドキュメントではMACアドレスを参照してルーター側で固定する方法が推奨されています。

/etc/hostsを編集することで、IPアドレスにホスト名を割り当てることができます。例えば以下を追加すると、ping <host name>でipアドレスが192.168.xx.xxのコンピュータにpingコマンドを通すことができます。

192.168.xx.xx <host name>

これをクラスタを構成する各ノードで行います。

MPIの下準備

MPIを用いてマルチノードでプログラムを実行するためには、マスターノードと呼ばれるノードから全てのノードへ、パスフレーズなしのRSA認証が可能なsshによってログインできる必要があります。この際、全てのノードに同じユーザー名を登録する必要があります。RSA認証を行うためマスターノードで公開鍵を作成し、残りのノードに登録します。公開鍵の転送は、例えばssh-copy-idコマンドなどを使えば良いでしょう。

参考

本記事は以下の資料を参考に執筆しました。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。

CAPTCHA