計算工学ナビ

ものづくりにHPCを活用するための ツールとケーススタディー

サイト内検索

Raspberry Piの初期設定

製作したRaspberry Piスパコンを計算に使えるように、OSのインストールや計算用アプリケーションのインストールを行っていきます。 以下の作業をすべてのマシンに対して行ってください。

OSのインストール

Raspberry PiはSDカードにインストールされたOSを起動するようになっているので、 SDカードにOSをインストールしてあげなければいけません。

Raspberry Piで動作するOSは様々なものがありますが、今回はこの中で一番使われているRaspbianを使用して構築を行います。 RaspbianとはLinuxディストリビューションのひとつであるDebianをベースに、Raspberry Pi用のカスタマイズを行ったディストリビューションです。

OSのインストールにはNOOBSというRaspberry Pi用のOSインストーラーを用いるのがお勧めです。 NOOBSを使ったOSインストールは非常に簡単で、おおまかに以下の5手順でRaspbianのインストールが完了します。

1. NOOBSの入ったZIPファイルをダウンロードする
2. SDカードをフォーマットする
3. SDカード内にNOOBSのファイルを展開する
4. SDカードをRaspberry Piに刺してRaspberry Piを起動する
5. NOOBSのOSインストール画面でRaspbianを選択してインストール

詳しくは以下のマニュアルを参照してください。

HOW TO GET AND INSTALL NOOBS

アップデート

インストールした直後のOSは最新ではないのでアップデートします。

$ sudo aptitude update
$ sudo aptitude -y upgrade

静的IPアドレスとホストネームの設定

クラスタ同士の通信にはTCP/IPを用いるので、各マシンを識別できるように固定IPアドレスと、ホストネームを設定します。

ネットワークのセグメントと、各マシンのIPアドレス、そしてホストネームは、以下のように設定します。

セグメント: 192.168.240.0/24
ゲートウェイ: 192.168.240.254
IPアドレス: 192.168.240.101 ~ .116
ホストネーム: rpicluster01 ~ 16

静的IPアドレスの設定

静的IPアドレスを設定するには、IPアドレスについての設定が書かれたファイルを編集して、ネットワークを再起動します。

設定ファイルの実体は /etc/network/interfaces です。このファイルを開いて以下のように書き換えてください。

auto lo
 
allow-hotplug wlan0
iface lo inet loopback
 
iface eth0 inet static
address 192.168.240.101   # マシンごとに.101 ~ .116 に変更する
netmask 255.255.255.0
gateway 192.168.240.254
dns-nameservers 8.8.8.8

ホストネームの設定

ホストネームとはコンピュータなどの機器を人間が識別しやすくなるようつける名前のことです。マシン内にホストネームとIPアドレスの対応表を持っている場合、このホストネームを用いて接続先のコンピュータを指定することができ、非常に便利になります。

ホストネームの設定は /etc/hostname と /etc/hosts で行います。前者は自分自身のホストネーム、後者はホストネームとIPアドレスの対応を記します。

最初に自身のホスト名を変更します。各マシンの番号に合わせて /etc/hostname は以下のように書き換えてください。

rpicluster01

次にホストとIPアドレスの対応を記します。 /etc/hosts を以下のように書き換えてください。

127.0.0.1    localhost
::1        localhost ip6-localhost ip6-loopback
fe00::0        ip6-localnet
ff00::0        ip6-mcastprefix
ff02::1        ip6-allnodes
ff02::2        ip6-allrouters
 
192.168.240.101        rpicluster01
192.168.240.102        rpicluster02
192.168.240.103        rpicluster03
192.168.240.104        rpicluster04
192.168.240.105        rpicluster05
192.168.240.106        rpicluster06
192.168.240.107        rpicluster07
192.168.240.108        rpicluster08
192.168.240.109        rpicluster09
192.168.240.110        rpicluster10
192.168.240.111        rpicluster11
192.168.240.112        rpicluster12
192.168.240.113        rpicluster13
192.168.240.114        rpicluster14
192.168.240.115        rpicluster15
192.168.240.116        rpicluster16

SSH鍵の共有

セキュリティ重視のためコンピュータ間の通信は基本的にSSHプロトコルを用いて暗号化して行います。この後使用する、PHASE/0の計算に使用するMPICHというアプリケーションも、デフォルトではこのSSHを用いて通信を行うようになっています。

SSH鍵ペアの生成

SSHは接続時にパスワードなどを用いた認証を行います。 しかし、計算のたびに最大16台分のパスワードを入力するのは非常に面倒です。 そこで予め各マシンのSSH鍵ペアを生成し、合鍵を1箇所に集めて登録することでパスワード入力の手間を省きます。

SSH鍵ファイルの生成は以下のコマンドで行います。 途中の質問には何も入力せず、すべてEnterを押して進めてください。

$ ssh-keygen

実行後は /home/pi/.ssh/ 以下に id_rsa , id_rsa.pub という秘密鍵と公開鍵のペアが生成されます。 これをすべてのマシンで行ってください。

公開鍵の送信

次は生成したSSH鍵を一か所に集めて登録します。 今後はrpicluster01を管理用マシンに使うので、鍵の集める先はrpicluster01とします。

以下にrpicluster02上から、rpicluster02のSSH公開鍵をrpicluster01に送信するコマンドを示します。このコマンドの”rpicluster02″の部分を各マシンごとに変更しつつ、rpicluster01を除くすべてのマシンで行い、rpicluster01にSSH公開鍵を集めてください。

$ scp ~/.ssh/id_rsa.pub pi@192.168.240.101:~/.ssh/rpicluster02.pub

公開鍵の登録

rpicluster01に集まった全マシンの公開鍵を以下のコマンドで登録します。

$ cd ~/.ssh/
$ cat id_rsa.pub rpicluster02.pub rpicluster03.pub \
rpicluster04.pub rpicluster05.pub rpicluster06.pub \
rpicluster07.pub rpicluster08.pub rpicluster09.pub \
rpicluster10.pub rpicluster11.pub rpicluster12.pub \
rpicluster13.pub rpicluster14.pub rpicluster15.pub \
rpicluster16 >> authorized_keys

接続の確認

最後にrpicluster01から、すべてのマシンに対してパスワードなしで接続できるか確認します。 以下のコマンドを実行してください。

$ ssh pi@rpicluster02

パスワード入力の必要なく接続できれば、クラスターマシンの初期設定は完了。 自作スーパーコンピュータの完成です。