本実験のタイムラインを図8.3に示す。図中では実験用ノード2台と管理用ノー ド1台の合計3台分のタイムラインを示した。実験部分はnetserver が動作する server[0]とnetperf を実行するclient[0]で閉じている。台数を増やす場合はserver とclientのペアを増やして行った。
実験用ノードへのOS、アプリケーションソフトウェアの導入後、シナリオとし て実行される処理を列挙する。ただし、SpringOSでは、IPアドレスの設定など はシナリオの一部として実現しており、各実験用ノードで動作しているkuroyuri slave(以下slave)は、管理用ノードで動作するkuroyuri master(以下master)と 通信することにより、設定を行うべきネットワークインターフェースのMACアド レスおよびIPアドレスを取得し、対象のネットワークインターフェースをMAC アドレスから判断し、IPアドレスを設定する。また、コマンドの実行には、すでに 述べたとおり”wake”および”wakewait”があるが、本実験では”call”および”callw”
を利用している。“wake”と”call”、”wakewait”と”callw”は対応しており、引数が 違うことを除けば同じ動作をする。
また、以下netperf を実行する実験用ノードをclientノード、netserverを実行す る実験用ノードをserverノードと呼ぶ。
1. masterは、各実験用ノードへシナリオを配布すると、client からの”csetup-done”とserverからの”ssetupdone”メッセージを待つ。
2. 実験用ノードが起動しslaveも起動する。
3. ログファイルに保存される時刻などを同期するため、ntpdateコマンドを実 行し管理側ネットワークに接続されたNTPdとの時刻同期を行う。
4. ifconfigを実行し実験ネットワークに接続されたネットワークインターフェー
スのIPアドレスを設定する。
5. clientノードのslaveはnetperf を実行できる状況であることをmasterへ通 知するため”csetupdone”メッセージを送信する。
6. serverノードのslaveは、ネットワークインターフェースの設定後、netserver をバックグラウンドで実行する。
7. serverノードはnetperf コマンドによる帯域測定の準備が整ったことをmaster へ通知するため、”ssetupdone”メッセージを送信する。
8. この時点でmasterが待っていたメッセージがそろう。
9. メッセージがそろったことをトリガとして、masterはclientノード群へ、対 応するserverノードのIPアドレスを送信する。
10. masterはIPアドレスを送信した後、すべてのclientノードからの”cdone”
メッセージを受け取るまで待機する。
11. serverノードのIPアドレスを受信したclientノードのslaveは、serverノー ドへの到達性をpingにより確認する。
12. その後netperf を実行し帯域を測定する。これらの実行ログは標準出力に出
力されるため、リダイレクト機能を利用してファイルに保存する。
13. netperf 終了後、clientノードのslaveは、FTPで管理用ノードに保存したロ グを送信する。
14. clientノードのslaveは、実験が終了したことをmasterに知らせるため”cdone”
メッセージをmasterへ送信する。
15. “cdone”メッセージ送信したclientノードのslaveはshutdownコマンドを実 行し、ノードの電源を切る。
16. masterは、すべてのclientノードから“cdone”メッセージを受け取ると、す べてのserverノードへ”quit”メッセージを送信する。
17. “quit”メッセージを受け取ったserverノードはpkill コマンドによりnetserver を終了する。
18. serverノードはメッセージを送信後shutdownコマンドの実行によりノード の電源を切る。
STOP master
kuroyuri
netserver
pkill ntpdate ntpdate
ifconfig
ifconfig
"csetupdone" send
callw
callw callw
callw
call send
ping
netperf
"ssetupdone"
send
ftp
"cdone"
send
send
"quit"
shutdown shutdown
callw
callw callw
call call
ICMP echo request
ICMP echo reply
Log file server’s ipaddr
netperf traffic
client[0] server[0]
kuroyuri slave#1 kuroyuri slave#2
STOP STOP
図 8.3: 評価実験のタイムライン
実験用ノードはnetperf を実行する前にifconfigによるネットワーク インターフェースの設定を行い、ログ情報の同期のためntpdate を 実行する。この後netperf を実行するclient[0]は準備ができたとい うことをメッセージ交換によりkuroyuri masterに通知する。一方、
netserverが動作するserver[0]では、ntpdateを実行した後、netserver を起動し、準備ができたことをシナリオマスタに通知する。その後、
それぞれがメッセージ交換により同期を行いながら実験を進行する。