Turing Piは、マルチノードクラスターを簡単に構築することができるボードです。このノードとして使えるコンピュートモジュールはいくつかあり、RaspberryPiのコンピュートモジュールも使用することができます。

今回は、Turing Piの公式サイトで、Turing RK1 32GBを4枚購入しました。

また、フレームとして、次のものを購入しました。

電源は、以下のものを使用しました。

組み立て

組み立ては、公式サイトを参考に行なっていきます。

https://docs.turingpi.com/docs/turing-pi2-intro

これがTuring Pi本体です。本体のボードには、4つのコンピュートモジュールを装着できるようになっています。

また、Turing RK1とヒートシンクはこのようなケースに入っていました。

これがTuring Pi本体です。

ヒートシンクのケースには、サーマルパッドが大小合わせて2枚入っています。大きい方を銀色のRockchipと書かれた大きいチップに、小さい方を、右上の小さくRockchipと書かれた黒いチップに貼りましょう。

それが終わったら、ヒートシンクをくっつけましょう。あとでヒートシンクとRK1をネジで止めるので、ネジ穴を合わせて貼り付けましょう。

貼り付けられたら、ヒートシンクのケースに入っているネジで4箇所固定します。ヒートシンクのケースには予備で一本ネジが付属していました。

次に、コンピュートモジュールを本体基板に接続します。

まず、両側の白い部分を外側に倒し、RK1を上からまっすぐ押し込みます。正しい向きで差し込むと、自動的に白い部分が戻り、固定されます。(写真では見やすさのためにファンを外して撮影しています)

その後、ファンのケーブルを各ポートの右下にあるコネクタにしっかりと差し込みます。

全てのRK1を接続できたので、次にフレームを組み立てます。

中には次のものが入っていました。

組み立て方については、一緒に入っていた説明書に詳しく記載されていたため、ここでは割愛します。

電源ボタンがついています。

https://docs.turingpi.com/docs/turing-pi2-specs-and-io-ports#front-io

にあるように接続をすることができます。

電源はこれを使用しました。

中には、電源本体と、電源コードが入っていました。Turing Piで使用する電源は24ピンなので、そのコードを電源本体に接続しました。

その後、ケースに取り付けました。

組み立てが完成するとこんな感じになりました。写真の都合上TuringPiが床についていますが、実際の運用時には、電源が下になるようにおきます。ネットワークは有線LANを接続しました。

電源を入れて起動する

それでは、実際にTuring Piを起動してみましょう。Turing Piには、BMCというモジュールを管理するための小さなコントローラーがあり、電源を投入すると最初にそれが起動します。

画像では真ん中に赤いLEDがついていますが、これは各ノードの電源が入っていると点灯します

最初は右下のランプが黄色ですが、準備が完了すると緑色になります。そうしたら自分のWebブラウザからアクセスすることができるようになります。

アドレスは、

https://turingpi.local

です。

最初にアクセスすると、次のような警告が表示されます。

これは、BMCがSSL証明書を自己署名して作成しているためです。詳細設定をクリックして、アクセスしましょう。

すると、次のようなログイン画面が表示されます。初期設定は、

username:root

password:turing

でアクセスすることができます。

ログインすると、次のようなダッシュボードが表示されます。

ここで、各ノードの電源の制御などを行えます。まず、BMCのファームウェアを最新のものにアップグレードしておきましょう。

https://github.com/turing-machines/BMC-Firmware/releases

から、Latestのものを選択し、.tpuの拡張子のものをダウンロードします。

次に、BMCのダッシュボードで、Firmware Upgradeというタブを選択します。すると、次のような画面になります。

ここに先ほどダウンロードしたtpuファイルをアップロードし、UPGRADEボタンを押してしばらく待つと、アップグレードが完了します。

各ノードにOSをインストールしよう

ファームウェアのアップグレードが終了したら、各ノードにOSをインストールしていきましょう。Node1のみはTuring PiのHDMIポートに接続されているため、Node1にはUbuntu Desktopをインストールすることもできますが、今回は全てのノードにUbuntu Serverをインストールします。

https://firmware.turingpi.com/turing-rk1/ubuntu_22.04_rockchip_linux

上記のリンクから、最新のものを選び、ubuntu-******-preinstalled-server-arm64-turing-rk1_v***.img.xzというものをダウンロードしてください。ダウンロードが終わったら、xzを解凍して、.imgにしておきます。

次に、BMCのダッシュボードでFlash Nodeにアクセスします。

まず、Node1にインストールするためSelected nodeにnode1を選択し、fileに先ほど解凍したimgファイルを選択します。そうしたら、INSTALL OSをクリックしてインストールが完了するのを待ちます。自分の場合は10分ほどでインストールが完了しました。

これをノードが4つあるので4回繰り返しましょう。

ノードを起動しよう

それでは、実際にノードを起動してみましょう。

BMCのダッシュボードで、Nodesを選択しましょう。

ここで、各ノードの電源がついているかどうかを確認することができます。Node 1を起動するために、右下のEDITボタンをクリックしましょう。

そうしたら、Node 1の左側にある電源ボタンを右にスライドします。

すると、Node 1に電源が供給され、起動します。右下のSaveボタンを押して保存しておきましょう。

各ノードにはSSHでアクセスしますが、最初はSSHが有効になっていない場合があるため、BMCのシリアル通信を用いてSSHを有効にしましょう。

まず、BMCにSSHで接続します。

$ ssh root@turingpi.local

パスワードは前回同様turingです。

BMCにアクセスできたら、次のコマンドを実行します。

$ picocom /dev/ttyS1 -b 115200

これを実行すると、ターミナルに入力した文字をnode1に送ることができます。このコマンドを入力した後に一度エンターを入力すると、ubuntu login:というように表示されると思います。初期ユーザーは

ユーザー名:ubuntu

パスワード:ubuntu

のため、これを入力してログインします。

ログインできると、このようにnode1のIPアドレスが表示されると思います。これを後のSSHで使用するため、メモしておきましょう。

SSHを有効にするため、次のコマンドを実行します。

$ sudo apt update -y && sudo apt upgrade -y && sudo apt install ssh && sudo ssh-keygen -A && sudo systemctl restart ssh

これを実行したら、SSHで接続ができるようになっていると思うので、ターミナルから直接node1に接続してみましょう。

$ ssh ubuntu@IPアドレス

アクセスできるようになっているはずです。この工程を、node2-4に対しても行います。

node2以降に対してシリアル通信を行う方法は、

$ picocom /dev/ttyS1 -b 115200

の/dev/ttyS1の部分を接続したいノード番号に変えるだけです。ノード2に接続したい場合は、/dev/ttyS2になります。

これで、全てのノードに対してSSH接続ができるようになりました。

ホスト名の変更と名前解決

このままだと、全てのノードでホスト名がubuntuのため、今どのノードを触っているのかがわからなくなってしまうことがあります。そのため、ホスト名をnode1などといったわかりやすい名前に変更しましょう。

$ sudo hostnamectl set-hostname node1

これを実行すると、ホスト名をnode1に変更することができます。

また、現在はIPアドレスを指定してSSHに接続していますが、IPアドレスは変わることがあるため、サーバーとして使用するには不便です。そのため、名前解決ができるようにしましょう。

$ sudo apt update

$ sudo apt install avahi-daemon -y

avahiをインストールすることで、自動的にホスト名.localでアクセスすることができるようになります。

つまり、次回以降、node1にSSH接続する際は

$ ssh ubuntu@node1.local

と指定して接続すればいいことになります。

かなり便利になりました。

公開鍵認証を有効にする

最後に、SSHの公開鍵認証を有効にして、毎回パスワードを入力する必要がないようにしようと思います。

まず、自分のPC上で、公開鍵と秘密鍵のペアを作成します。

$ ssh-keygen -t ed25519

いくつか質問が表示されますが、全て何も入力せずにエンターキーを押します。

終了したら、公開鍵を各ノードにコピーします。

$ ssh-copy-id ubuntu@node1.local
$ ssh-copy-id ubuntu@node2.local
$ ssh-copy-id ubuntu@node3.local
$ ssh-copy-id ubuntu@node4.local

完了すれば、ssh接続した時にパスワードを聞かれることなくログインすることができるようになります。

これで初期設定は終了です。これで、クラスターを使えるようになりました。次回以降、活用した記事を書いていきたいと思います。お疲れ様でした。

気になるアイテム