7.3 SpringOS を構成するモジュールとその動作
7.3.1 SpringOS のモジュール
SpringOSは以下のモジュール群により形成されている。ここでは、SpringOS専
用に開発したものだけでなく、FTPdなどの一般的なモジュールでもSpringOSの 動作に必要なものであれば、その用途を説明する。
TFTPd/DHCPd StarBEDのすべてのPCノードは起動時にPXE[38]により、
ブートローダーを取得し、取得したブートローダーを利用して起動する。こ れにより、DHCPdもしくはTFTPdで対象ノードのブートローダーの設定 もしくはその実体を変更することで起動方法を変更する。このため、PXEで 利用されるTFTPdやDHCPdが必要となる。
FTPd SpringOSではディスクイメージやカーネルイメージを保存するファイル
サーバのインターフェースとしてFTP[39]を用いているため、FTPdが必要 である。
Experiment Node Configuration Driver(ENCD)ENCDは実験実行の核と なるモジュールであり、ENCDが実験実行者による設定ファイルを読み込み、
他のモジュールに対して指示を送ることで実験を実行する。ENCDはある一 連の動作をさせるための役割により別々に用意されている。たとえば、実験 を実行するためのENCDはkuroyuri masterとして実装されている。また、
ディスクイメージを作成する際にも、他のモジュールを指揮するENCDが必 要となり、これはpickupとして、また、逆にシナリオの自動実行などをせず に、ディスクイメージを導入するためにwipeoutが実装されている。pickup とwipeoutは基本的には後述するNIと組として利用され、NIと通信するこ とでその役割を果たす。
Experiment Resource Manager(ERM)大規模実証環境に存在する実験用の 資源の管理・割り当てを行う。すでに述べたように実験用資源には実ノード
やVLAN IDなどがある。資源の割り当てを受けようとする場合、ネットワー クインターフェースの種類や数、ノード性能などをERMに指定し、ERMは その要求を満たす資源を検索、見つかれば割り当てを行う。資源検索の方法 は現状ではファーストマッチを利用しているが、さまざまな方式を利用でき る。ERMは資源の割り当てを行うと、別の実験実行者に同じ資源を割り当 てないような排他制御を行う。
Node Initiator(NI)NIは実験用ノード上で動作し、実験用ノードへのソフト ウェア導入を行う。ハードディスクを扱うため、専用のディスクレスシステ ム上で動作し、ENCDから指示されたディスクイメージをファイルサーバか ら取得し、ハードディスクに書き込みを行う。
Facility Node Configuration Pilot(FNCP)StarBEDでは複数の実験駆動単 位が同時に生成される。ある実験用ノードへディスクイメージを導入するた めにNIが起動した際に、NIは通信すべきENCDと通信する必要があるが、
ENCDのIPアドレスを固定することはできないため、何らかの方法でNIに 対象のENCDのアドレスを指定する必要がある。これを実現する方法とし て、ENCDからNIに対して通信する方法と、NIが何らかの方法で通信すべ きENCDのIPアドレスを調べる方法がある。ENCDからNIに通信する方 法では、NIが起動したタイミングをはかりにくく、効率が悪い場合があるた め、SpringOSでは後者の方法を採用している。FNCPはStarBED上で一台 のみ動作しており、IPアドレスは固定とする。ENCDは自分のIPアドレス と、管理しているノードの管理側ネットワークの固定IPアドレスをFNCP に登録する。NIは起動した際にFNCPに通信を行い、通信すべきENCDを 確認し通信を開始する。図 7.4にNIとFNCP、ENCDの関連を図示する。
Wake on LAN(WoL) Agent StarBEDでは実ノードの起動手法の一つとし てMagic Packet Technologyを利用したWake on LANを採用している。Wake on LANでは、対象のノードが存在するセグメントでMagic Packetをブロー ドキャストする。したがって、管理用ネットワークのセグメントが複数に分 離されていた場合には、Magic Packetを中継するための機能が必要となる。
WoL Agentは、すべての管理用セグメントに接続されたノードで動作して
IPアドレス要求 2)ENCDの
5)ノードの設定情報 IPアドレスを登録
情報の要求
4)ノード設定に関する 1)NIとENCDの
3)ENCDのIPアドレス通知
NI
ENCD FNCP
図 7.4: NI,FNCPおよびENCDの通信
ENCDは起動時にERMから割り当てられた実験用ノードの管理側 IPアドレスと、ENCDが動作している管理用ノードのIPアドレス をFNCPに通知する。これによりFNCPはあるENCDと制御され る実験用ノードの対応を把握でき、NI起動時にFNCPに問い合わせ を行うことで、NIは対応するENCDと通信を行える。
おり、ノードを起動する際にはWoL Agentに起動要求を行い、WoL Agent がMagic Packetを必要なセグメントに送出する。
Directory Manipulator(DMAN)すでに述べたとおり、実験用ノードはPXE でブートローダーを取得し、その内容により、その起動方法を決定する。各 ノードのブートローダーに関する設定は、DHCPdの設定として記述されて いるため、設定を変更した場合にすべてのノードに対して影響がでる可能性 がある。そこで、SpringOSではDHCPdの設定に記述するブートローダー のファイル名は固定し、そのファイルをシンボリックリンクとして、シンボ リックリンクがさすリンク先のファイルを変更することで、変更の影響範囲 を単一のノードのみとしている。DMANは、要求に応じてこのシンボリッ クリンクの設定を変更する。
SWConf 実験トポロジを構成するスイッチは複数の実験駆動単位により共有され るため、スイッチの設定をある実験実行者の判断で自由に変更されるべきで ない。したがって、要求された設定内容が、その実験実行者が割り当てられ
ているノードのみに影響を与えるものであること、または要求する設定を行 う権利があるかを確認するためのモジュールが必要となる。SWConfは実験 実行者からの要求を受け、操作対象のスイッチポートやVLANの設定に関し て、その実験実行者が変更する権利を持つかどうかをERMに確認し、問題 がなければ要求された操作を実行する。
Scenario Master Scenario Masterは、Scenario Slaveと協調して実験シナリオを 進行する。SpringOSでは、実験駆動単位の構築を行うENCDであるkuroyuri masterがScenario Masterの機能も備えている。
Scenario Slave Scenario Slaveは、Scenario Masterから実行すべきシナリオを受 取り、設定にしたがい実験用ノード上でコマンドを実行する。実験シナリオ を実行するものは、kuroyuri masterと合わせてkuroyuri slaveとして実装さ れている。
図7.5に、各モジュールの関連を示す。また、それぞれのモジュールが所属する 管理レベルを表 7.1に示す。