第 6 章 提案するアーキテクチャの適用例と実装 40
6.3 実験実行支援
䉟䊮䉴䊃䊷䊤䈱kernel
䉟䊮䉴䊃䊷䊤䈱ㅢ䈱䉟䊜䊷䉳 PLC䈗䈫䈮࿕䈱䉟䊜䊷䉳 䊉䊷䊄䈗䈫䈮࿕䈱䉟䊜䊷䉳 䉟䊮䉴䊃䊷䊤䈱kernel
䉟䊮䉴䊃䊷䊤䈱ㅢ䈱䉟䊜䊷䉳 PLC䈗䈫䈮࿕䈱䉟䊜䊷䉳 䊉䊷䊄䈗䈫䈮࿕䈱䉟䊜䊷䉳
plnode.txt䉕䉟䊜䊷䉳䈮䉄䉎ᣇᑼ䈪䈱 PXE䈱⸳ቯ䊐䉜䉟䊦
図 6.7: イメージに同梱する方式でのPXEの設定ファイル
• インストーラにplnode.txtを同梱する方式
ノードごとに異なる設定ファイルが必要になる。ファイルの内容に関しては、所属 するPLCと、ノードの組み合わせによって決まる。ファイルの内容としては図6.7 のようになる。このため、ノードごとに固有のイメージが必要になるため、TFTP サーバ上のPXE Linux用の設定ファイルも、図6.8のように、ノードごとに必要に なる。
TFTP䉰䊷䊋
ታ㛎↪
䊉䊷䊄1
ታ㛎↪
䊉䊷䊄2
ታ㛎↪
䊉䊷䊄3 LL
PXELinux䈱
⸳ቯ䊐䉜䉟䊦 (PLC A +䊉䊷䊄1↪)
LL LL
ታ㛎↪
䊉䊷䊄4
ታ㛎↪
䊉䊷䊄5
ታ㛎↪
䊉䊷䊄6 LL LL
LL
PLC A PLC B
PlanetLab A PlanetLab B
PXELinux䈱
⸳ቯ䊐䉜䉟䊦 (PLC A +䊉䊷䊄2↪)
PXELinux䈱
⸳ቯ䊐䉜䉟䊦 (PLC A +䊉䊷䊄3↪)
PXELinux䈱
⸳ቯ䊐䉜䉟䊦 (PLC B +䊉䊷䊄4↪)
PXELinux䈱
⸳ቯ䊐䉜䉟䊦 (PLC B +䊉䊷䊄5↪)
PXELinux䈱
⸳ቯ䊐䉜䉟䊦 (PLC B +䊉䊷䊄6↪)
図 6.8: インストーラに含める方式でのTFTPサーバ上のファイル
ᄢⷙᮨ䈭 Local PlanetLab
ዊⷙᮨ䈭 Local PlanetLab
ᣂ䈚䈒᭴▽䈚䈢 PL䊉䊷䊄 ዊⷙᮨ䈭
Local PlanetLab
ᣂ䈚䈒᭴▽䈚䈢 PL䊉䊷䊄 ዊⷙᮨ䈭
Local PlanetLab
図 6.9: Local PlanetLabの拡張
䉟䊔䊮䊃A 䉟䊔䊮䊃B
䊶 䊶 䉟䊔䊮䊃A 䉟䊔䊮䊃B
䊶 䊶
䉰䊷䊎䉴
ᤨೞA 䉟䊔䊮䊃A
ᤨೞB 䉟䊔䊮䊃B 䊶
䊶
ᤨೞA 䉟䊔䊮䊃A
ᤨೞB 䉟䊔䊮䊃B 䊶
䊶
䉰䊷䊎䉴
time_inserter
図 6.10: 時刻の挿入
6.3.1 グループごとの制御
psshであれば、ノードのリストを実行時に指定できる。このため、グループごとのノー ドリストをファイルとして用意することで、グループごとの制御が可能になる。またPLC では、データベース上でノードのグループを作成することができる。
6.3.2 ログの収集
psshやCoDeployを使用することで、各ノードが持っているファイルを、収集すること
ができる。同じ名前のファイルをコピーするため、収集するノード上で、ファイル名が衝 突することが考えられる。しかしpsshもCoDeployも、ファイル名が衝突しないように ディレクトリに分けるなどの処理を行っている。ノードの名前を利用しているため、どの ノード上のログだったかもファイル名から判断することができる。
6.3.3 ログへの時刻の挿入
複数のノードからログを収集した場合、時刻を基準に比較する。ログに時刻が含まれる かは、サービスの実装に依存する。そこで本研究では、時刻を挿入するためのスクリプト としてtime inserterを作成した。概念図を図6.10に示す。time inserterはサービスが出 力するイベントログを受け取り、時刻を挿入した上でファイルに出力する。厳密には出力 するタイミングで時刻が挿入されるため、イベントが発生した正確な時刻ではない。
VLAN A
ታ㛎↪䊉䊷䊄 ታ㛎↪䊉䊷䊄 VLAN B
⢛᥊ 䊃䊤䊐䉞䉾䉪
⢛᥊ 䊃䊤䊐䉞䉾䉪
図 6.11: VLANを変更して周辺要素を導入
6.3.4 サービス独自のプロトコルの制御
サービス独自のプロトコルを制御するため、指定したメッセージを送信するスクリプト として、tcp writerを作成した。tcp writerはテキストベースのプロトコルを前提として おり、指定したIPアドレスとポート番号に対して、指定したメッセージを送信する。こ のような、アプリケーション層でのプロトコルテストにはtelnetも使用できる。しかし telnetとの違いとして、tcp writerはインタラクティブな操作は行わない点が挙げられる。
このため、スクリプト等に組み込みやすい。