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を選択してインストール
詳しくは以下のマニュアルを参照してください。
アップデート
インストールした直後の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
パスワード入力の必要なく接続できれば、クラスターマシンの初期設定は完了。 自作スーパーコンピュータの完成です。