400 likes | 410 Views
PC クラスター構築 -OpenMPI のインストール -. 2011 年 1 月 22 日(土) 発表: dannna. 目次. 趣旨 概要: クラスターってなに 手順1:ネットワークの設定 [ 資料無し ] 手順2:ユーザの作成 [ 資料無し ] 手順3: リモートログインの設定 手順4: OpenMPI のインストール [ 資料無し ] 手順5: OpenMPI の設定 [ 資料無し ] 手順6:共有ディレクトの設定 [ 資料無し ] まとめ 宿題. 趣旨. 趣旨 (1). 良くありそうな話 ちょっと前までは、
E N D
PCクラスター構築-OpenMPIのインストール- 2011年1月22日(土) 発表:dannna
目次 • 趣旨 • 概要:クラスターってなに • 手順1:ネットワークの設定 [資料無し] • 手順2:ユーザの作成 [資料無し] • 手順3:リモートログインの設定 • 手順4:OpenMPIのインストール [資料無し] • 手順5:OpenMPIの設定 [資料無し] • 手順6:共有ディレクトの設定 [資料無し] • まとめ • 宿題
趣旨(1) • 良くありそうな話 ちょっと前までは、 並列処理の勉強で講義や参考書を買っても、 自宅やオフィスに実行環境があるのは稀でした。 マルチコアが一般化し、“並列処理”も敷居がなりました。 ついでにマシン1台当たりも安いので、クラスタPCに取り組んでみようと思ったけど… • ⇒なぜか、上手くいかない
趣旨(2) • そもそも、 • クラスタ≒並列処理 • クラスタの技術≒マルチコアの技術 “並列処理”という言葉に踊らされて、 “いろいろな技術”と“必要な知識”が混同してませんか? クラスタPCの構築を通して、 絡まった考えを少しだけ紐解ければと願っております
クラスタってなに? • 2つ以上の“システム”を“インターコネクト”で接続し、 “一連の処理を共同で行わせる”を目的とした集合構成 • システム : PC • インターコネクト: LAN • 分散コンピューティングの一種
クラスタの範囲 • Global Network(広域) • グリッド・コンピューティング(Grid Computing) • クラウド・コンピューティング(Cloud Computing) • Local Network(局所) • クラスタ・コンピューティング(Cluster Computing) クラウド ≒ グリッド ≧ クラスタ
クラスタの目的と種類 • 高性能処理(HPC Cluster) • HPC:High Performance Computing • 種類: • 並列処理 • 並行処理 • 高可用性(HA Cluster) • HA:High Availability
まとめ:クラスタってなに? • 意識してほしいこと • システム: PC • インターコネクト: Ethernet (LAN) • 目的 : 高性能な計算 “単体のシステム” と “2つ以上のシステム” を “インターコネクト” で接続し “効果・性能” を得る
1-1ネットワークの設定 • グローバルIPとローカルIP • 固定IPアドレスの設定 • ホスト名の設定 • ホスト名とIPアドレスの名前解決
2-1 ユーザの追加 • プロセスについて • ユーザについて • デーモンについて • ユーザの追加方法
3-1 リモートログインについて • クラスタを構成する”各ノードはマシンとして独立”してる。 • コマンドまたはプログラムを実行するために、 遠隔(リモート)操作が必要となる。 • “実行ユーザ”がリモートでログインする必要がある • 複数台あるため自動でリモートログインがしたい • ⇒パスワードを手で入力しない方式
3-2 リモートの種類 • telnet • 通信に暗号化はナシ、コマンドプロンプトからも実行可能 • パスワード認証 • rsh (remote shell) • 通信に暗号化はナシ • パスワード認証 • .rhosts認証 (クライアントホストの登録) • ssh (secure shell) • 通信に暗号化アリ(secure:安全) • パスワード認証 • 公開鍵暗号方式の認証[+パスフレーズ]⇒空のパスフレーズ • 公開鍵暗号付きrhosts認証(shosts)
3-3 公開鍵暗号について • 暗号化された2つの鍵ファイルが一致したとき、 平文化(復元)する。 • 2つの鍵ファイルは • 暗号鍵 ( secret-key ) • 公開鍵 ( public-key ) • 特徴として、片方の鍵が他者にわかってもよい。 • ⇒ 公開鍵を暗号化されていない通信で渡すことが多い イメージし づらい
3-4 公開鍵暗号について(イメージ) • 個人的な発想ですが、読み方を変えてイメージ化 • 2つの鍵ファイルは • 暗号鍵 ⇒ • 公開鍵 ⇒ 公開錠 又は 公開鍵穴 • 自分が入ってよいマシンのドアに錠前をつけてもらうイメージ 鍵は1つ で良い
3-5OpenSSHについて • 特徴 • 基本Linuxに標準搭載 • インストールや設定は、ほぼ皆無 • セキュリティ等のポリシに沿った細かな変更も可能 • OSSベースである • 2つの鍵暗号方式に対応 • RSA (Rivest Shamir Adlman) • DSA(Digital Signature Algorithm) • SSHプトロコルのバージョン1、バージョン2に対応 • 今回は重要なポイントではないです。 • ポート番号:22
3-6 設定のポイント • 公開鍵によるパスフレーズなし認証のポイントは2つ • ログインを行う“クライアント”側の設定、 ログインされる“ホスト”側の設定、 どちらの設定かを明確にする • 公開鍵の登録 (ドアに錠前をつける作業) • パーミッションの設定について確認
3-7 演習問題 • 空のパスフレーズでRSAの秘密鍵と公開鍵を生成します。 • 3人一組(A,B,C)になって、次のように公開鍵を渡し、 パスワードなしでSSHのログインが可能な組合せを 確認します。 • A->B , B->C , C->A • クライアント:________ • ホスト:________ B A C
3-8 RSA鍵の生成(1)[クライアント] • 認証したい”ユーザ”でログインします • 次のコマンドを実行 $ ssh-keygen –t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/danna/.ssh/id_rsa): Created directory '/home/danna/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/danna/.ssh/id_rsa. Your public key has been saved in /home/danna/.ssh/id_rsa.pub. The key fingerprint is: 99:f9:d0:76:d1:23:6c:6c:6f:3a:bf:52:3c:e8:2b:b5 danna@vmcent • 生成先の指定 • [ Enter ] キー “空のパスフレーズ”のため そのまま[ Enter ] キー • パスフレーズの確認入力 [Enter]キー
3-9 RSA鍵の生成(2)[クライアント] • Homeディレクトリで、次のコマンドを実行 • 2つのファイルが生成されていることを確認 $ ls .ssh/ id_rsa id_rsa.pub 拡張子( .pub ) ありが “公開鍵( public-key )” 拡張子なしが “秘密鍵( secret-key )”
3-10 公開鍵の受け渡し(1) [クライアント-ホスト] • 試しに次のコマンドを実行 • パスワード入力を要求される • 鍵(秘密鍵)と錠前(公開鍵)はあるのに? • ドアに錠前がまだ付けていない状態 • 「ホスト側のドア」に「クライアントの錠前」をつける • 公開鍵をホスト側に何かしらの方法で渡す $ ssh localhost
3-11 公開鍵の受け渡し(2) [クライアント-ホスト] • scpコマンドについて • ssh通信を利用してホスト間でファイルのコピーを行う • 操作する”ユーザ”が同じ場合は、<ユーザ>省略可 • 操作する”ホスト”が同じ場合は、<ホスト>省略可 • リモートログインしたとき、<ユーザ>のhomeディレクトリへログインされる • ⇒相対pathを使うときは注意 • Homeディレクトリから、次のコマンドを実行 • このときは、まだパスワードの入力が必要になります $ scp [OPT] <ユーザ>@<送信元ホスト>:<ファイル><ユーザ>@<受信ホスト>:<ファイル> $scp .ssh/id_rsa.pub <相手ユーザ>@<相手ホスト>:~/
3-12 RSA鍵の登録 (1)[ホスト] • Homeディレクトリで、順にコマンドを実行 • ログインを許可する相手の公開鍵を確認 • 公開鍵を”authorized_keys2”へ登録 $ ls ~ id_rsa.pub ~ 登録する相手の“公開鍵 ” $ cat ./id_rsa.pub >> .ssh/authorized_keys2 “authorized_keys2 ”が ドアもしくはドアノブに該当するファイル
3-13 RSA鍵の登録 (2) [ホスト] • 続き • 公開鍵が登録されているかを確認 • ”authorized_keys2”のパーミッション変更 • 相手(クライアント)の公開鍵は削除します $ less ./id_rsa.pub $ less .ssh/authorized_keys2 $ chmod 600 .ssh/authorized_keys2 “authorized_keys2 ”は、 ホスト側のユーザ以外に権限があるとエラーとなります。 $ rm ./id_rsa.pub
3-14 sshログインの確認[クライアント] • Homeディレクトリから、次のコマンドを実行 • このときは、まだパスワードの入力が不要になっているはず • 失敗したとき(特にやりがちなこと) • “authorized_keys2”のスペルミス • “authorized_keys2”のパーミッション • そもそも”root”でのログインをsshが許可してない • クライアント側で鍵を再生成してしまった。 $ssh <相手ユーザ>@<相手ホスト>
3-15 known_hostsファイルについて[クライアント] • クライアント側でsshを実行すると、 次のファイルが作成されます • これは、応答が返ってくる際の公開鍵が登録されています • 参照: “/etc/ssh/ssh_host_rsa_key.pub” • ホスト側でOS入れ替えなどが会った場合、過去の履歴との不整合からエラーとなることがあります • known_hostsの該当箇所を削除 • 追加設定 • セキュリティは低下しますが、余計な問い合わせが減ります $ ls .ssh/known_hosts $ echo StrictHostKeyChecking=no >>.ssh/config
4-1 MPIについて • MPI種類 [実装規格] • version1 • version2 (version1.x) • 主な実装(非商用) • SCore • http://www.pccluster.org/ja/ • mpich • MPI ver.1までの実装 • mpich2 • MPI ver.2へ対応するために、作成し直したもの • OpenMPI • LAMなどが複数が統合?されたもの
4-2OpenMPIについて • 主なディストリにはパッケージとして提供されている • Ubuntu 10.04にはOSインストール時に設定済み • CentOSでもyumインストール可 • 開発元・入手先 • http://www.open-mpi.org/ • 最新の安定版はver.1.4.3 # yum install openmpi
4-3 一連の流れ • ソース群(source)のダウンロード • ダウンロードしたソースの展開 • Configureコマンド実行 • Makeコマンド実行 • Make installのコマンド実行 • 環境変数の設定
5-1 OpenMPIを使うための設定 • “mpiexec”のPATH確認 • OpenMPIでの通信等の設定 • Machinefileの用意 • 実行テスト
6-1共有ディレクトの設定 • ファイルシステムとマウント • NFSについて • サーバ(公開側)の設定 • クライアントの設定
6-1 まとめ • 抜けた部分: • ユーザの一元管理 • リソースの管理 • 並列処理の必要性?