170 likes | 267 Views
データ記録システム 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を下げる。
E N D
データ記録システム 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 History Log files Error Messge の調査
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 Smart Sockets • CSL MonitorではreceiverがMessage(nodeの運転状況)をSmartSockets経由で、Java ClientであるCSLMonに流す • 各nodeの情報をCSLMonに渡す経路は、Cronを通してnodeのstatusや履歴情報を渡す経路と、SmartSocketsを通してnodeの運転状況をリアルタイムで渡す経路がある
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 logger Calib Main Main CSL 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が出来る