スライド 1

データ記録システム CSL
宇宙史拠点実習 最終報告会
筑波大学 素粒子実験研究室
修士2年 山崎秀樹
2007年 7月31日@ Fermilab
Contents
Introduction CSL system
Archiving of log files in CSL nodes
Making Calibration CSL Monitor

DAQ system of CDF
CDF Detectorで起こるEvent Rateは
膨大なので、Triggerをかけ、Event Rate
を下げる。
Rateが下げられたEvent dataはCSL
(Consumer-Server/Logger ) に流れ、FCC
(Feynman Conputing Center)に渡され、
tapeに保存される
Current:〰10MB/s
Upto 80MB/s
CSL system
CSL(Consumer-Server/Logger )
CDF 実験におけるデータの輸送と記録係
多数のサーバーとネットワークスイッチ、
記録装置より構成される処理系
FCC(Feynman computing
Center)
logger
CSL Monitor
Smart Sockets
CSLの主要な機能
 実際にDetectorで起こったEvent
dataの輸送
 各nodesの情報、
Error情報の監視(Monitoring)


なぜMonitoringが必要か?
 CSLが正常にdata takingを
しているか把握できる
 今回、Monitoring系の整備、
改良を行った
CSL Monitor系
Monitoring系の整備、改良

Motivation
CSL systemにおける各マシンの情報、またその履歴、Error Massageの
取得、表示をしたい
CSLにおけるMonitoringの方法

GUI Monitor
Error Messge
の調査
History
Log files
ReceiverとLogger



CSLのdata輸送はReceiverとLoggerに大別される
Receiver nodes(1台とspare)
Level 3 trigger を通ったEvent dataはReceiver
で分類されてLoggerに渡され、
その一部はconsumerに渡される→最後にはFCCに
渡される
Logger nodes(8台とspare)
Receiverから渡された Event dataをlogし、
diskにバッファし、FCC(Feynman Conputing
Center)に渡され、tapeに保存される
Archiving of log files in CSL nodes
問題点
各nodeのディスクにLog fileがたまり続けている
diskの容量を圧迫している
Log fileの数も膨大になる

→
定期的にLog file をアーカイブし、圧縮すること
で整理しやすくする
 60日たったFileをZip、アーカイブにまとめる
 Perl Scriptで記述
→ LoggerとReceiver用のScriptを作り各Spare nodeでテス

トし、成功

実際にdataをとっているCSL nodeの一部でもテストした
→
定期的にScriptを走らせるため、
各nodeのcrontabに Perl scriptを登録し、またテストも行った
Summary (Archiving of logfile)
Log fileをarchieveするためのPerl Scriptを用意し、テス
トしたところ無事archiveが実行できた
CrontabにLogger用とReceiver用のPerl Scriptを登録
し、問題が発生することなく定期的にLog fileをarchiveす
ることが出来るようになった

CSL Monitor
CSL Monitorではreceiverが
Message(nodeの運転状況)を
SmartSockets経由で、Java
ClientであるCSLMonに流す
各nodeの情報をCSLMonに渡
す経路は、Cronを通してnodeの
statusや履歴情報を渡す経路と、
SmartSocketsを通してnodeの運
転状況をリアルタイムで渡す経路
がある

Smart Sockets
Main CSL と Calibration CSL

CDFでは2種類のCSL systemを切り替えて使っている
 Main CSLではDetectorで起こっているEvent Dataを
流している
 Calibration CSLではEvent の Calibration dataを流
す
 Calibration CSLにはLogger Nodeがなく、全データを
Consumerに渡している
receiver
receiver
consumer
consumer
Calib
logger
Main CSL
Main
Calibration CSL
Calib CSL Monitorの作成

Motivation
 Calib CSL のGUI Monitorは現在存在しない
 Nodeの情報(緊急Message等、Monitorがあればすぐさま欲しい情報
)を取得、表示したい
 Calibration中の異常を検知し、即座にrun controlに通知する
 その際GUIなら、目で確認出来るので便利
実装にあたっての問題点
 Calib CSL のGUI Monitor用のmessage を送る仕組みが出来ていな
い
 また、そのmessage を受け取る仕組みも出来ていない
 MainとCalibは元々同じcode
 MainのSmartSocketsインターフェースをCalibに移植
→
 Error HandlerにMessageを送ることや、GUI Monitor等が同じインタ
ーフェースで使えて便利
実装にあたっての手順


目的
 Main CSL のdataをcatchするMonitorのGUI インター
フェースを製作する
手順
 Messageを経由している
Smart Socketsに関して理解する
 Messageの受け手側のコード
(CSLMon.java)を理解し、
書き換えを行う
 不要な情報
(Logger Nodeのマシン情報など)を削る
 Messageの送り手側のコード
(CSL_mon_send.C)を理解し、
書き換えを行う
 Main CSLのcodeを参考に、
Messageを送るように変更
GUI Monitorの主要なcode
GUI Monitorは多くのcodeから成り立っているが、
主要なcodeとしては...
CslMon.java
無限roopをまわし、
表示する情報のupdateを行っている
Monpage.java
Frameにボタンやパネル等を実装している
LoggerMon.java
Logger nodeの情報について定義している
DataInThread.java
SmartSocketsに関するオブジェクトを呼び出して、どのServerにつな
ぐか定義し、Streamから読み込んだMessageをBoxに格納している
Defs.java
Logger、Receiverのnodeの数の定義や、表示される情報のNaming
等をしている

GUI Monitorの作成
Main Monitorの構造とインターフェース
(SmartSockets)を流用する
不要な情報をcutする





Receiver のSpare node
→CSLMon.java、Monpage.java、
Logger nodeの情報
Selbuttonの部分
→ Monpage.java
DiskでBufferしている割合を表示する箇所
→LoggerMon.java
結果
Calibration CSL用のGUI Monitorが完成した
↓
これから実際に立ち上げてみます
Summary (CalibCSL GUI monitor)
実装部分

Calibration CSL用のGUI Monitorのプロトタイプは完成した
未実装部分

Server側からCalibration CSLのnodeの情報(運転状況)を
GUI Monitor側に送っていない
↓
To Do




DummyなL3環境を作る
Standalone(実際に稼動しているnodeとは独立)なnodeを
用意する
 問題点 ReceiverのSpare nodeがテストに使えそうだが
、これはMain CSLとは完全に切り離されてるわけでない
ので、おいそれとテスト出来ない
CSL_mon_send.cの書き換え
、

Summary
CDF実験 CSL systemのMonitor系の
整備、改良を行った
Log fileをArchiveするPerl Scriptを用意、
crontabにPerl Scriptを登録し、定期的に
archiveが出来るようになった
 Calibration CSL のGUI Monitorのプロトタイ
プの製作を行った

Server側からのMessageの送り出し部分を実装
すればCalibration CSLのMonitoringが出来る