データ記録システム 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が出来る
© Copyright 2024 ExpyDoc