MANAGEMENT OF ARCHIVE DATA IN KEKB ACCELERATORCONTROL SYSTEM
Tatsuro Nakamura, Kazuro Furukawa
High Energy Accelerator Research Organization (KEK)
1-1 Oho, Tsukuba, Ibaraki, 305-0801, Japan
Abstract
KEKBLog is the data archiving system used in the KEKB Accelerators. Currently it monitors more than 100,000
channels and accumulates more than 4GB data per day. Almost all of the archive data from the beginning of thecommissioning are kept. Especially the data since 2004 are kept online. To maintain the increasing data, we have added
inexpensive NAS (Network Attached Storage) several times for these years. To provide the historical information of thearchiving channels to the users, the Catalogue files have been introduced. Management of archive data in KEKBLog anddetails of the Catalogue are reported.

KEKB加速器制御
加速器制御システム
加速器制御システムにおけるシステムにおけるアーカイブデータにおけるアーカイブデータ管理
アーカイブデータ管理
１．はじめにkblogプロセスと、データを読み出すためのkblogrdコマンドである。アプリケーションプログラムから[1]
KEKB加速器ではKEKBLog と呼ばれるアーカイの読み出しは全てこのkblogrdコマンドを通じて行ブシステムによって、主要な制御点を常時モニターなっている。
してその値を記録・蓄積している。このように記録
KEKBLogを稼動させるためのハードウェアは何されたデータ（アーカイブデータ）は、データの相度かの変遷を経て来た。図１は現在のシステム構成
関を調べる事などで加速器の性能向上に役立てていを 示 し て い る 。 デ ー タ 収 集 に は 専 用 の Linuxサ ー
るだけでなく、長期間の履歴を追う事にも使われてバー3台を割り当てている。全てのkblogプロセスはいる。そのためほぼ全てのアーカイブデータはこのうちの1台で走っていて、残りの2台は予備機でKEKBの運転開始以来保管されていて、必要に応じある。予備機の少なくとも1台は障害に備えて即時て参照できるよう整備している。特に2004年以降のにkblogプロセスを起動できるよう待機させている。
データはオンライン状態にあり、いつでも読み出す
一方、データの読み出しを行なうのは専用の計算ことができる。KEKB加速器では各種装置の追加や機である必要はない。KEKB加速器の制御・運転用運転の高度化に伴い記録量は年々増大する傾向にあの主な計算サーバー／ワークステーションにはり、現在は100,000点以上をモニターし、1日当たりLinux、 HP-UX、 Macintosh (PowerPCお よ び i386) 、4GBを越えるデータを蓄積している。
Alpha/Tru64 UNIXが使われているが、これら全てでKEKBLogでは長期間の安定稼動を目指すと共に、 kblogrdコマンドを直接実行できるようにしている。
年々増加するアーカイブデータを効率よく管理・保守する事にも重点を置いて運用している。そのため３．データ収集にアーカイブ専用のサーバーとストレージ装置を導入するなどのハードウェアの整備や、カタログと呼KEKBLogでは複数のkblogプロセスを稼動させてばれるファイルを用意して検索の便宜を図るなどのチャネルを分担してデータ収集を行なっている。こソフトウェアの整備を行なって来た。
れは運用上の便宜が主な理由だが、一つのkblogプ以下では主にデータ管理の面からKEKBLogの現ロセスが扱えるチャネル数の制限（最大32767）に状を報告する。
もよる。一つのkblogプロセスが受け持つチャネルの集合はサブグループと呼ばれ、現在37のサブグループがある。
２．システム構成
アーカイブデータはlog1, log2と呼ばれる二種類の[2]KEKB加速器の制御システム はEPICS 1 を基盤と形式のファイルに記録される。log2ファイルはデーしているためKEKBLogもまたEPICSのCA (Channel
タ本体であり、モニターされた値が時刻と共に順にAccess)プロトコルを利用してデータ収集を行なうシ書き込まれる。大部分のチャネルは値が変化した時ステムになっている。モニターしている制御点はだけ記録するようになっている。log2ファイルにはEPICSではチャネルと呼ばれ、名前で参照される。
このほかMilestoneと呼ばれる全チャネルのスナップ
KEKBLog の 中 核 に あ る の は デ ー タ 収 集 を 担 う
ショットも一定間隔で記録される。一方log1ファイ
ルにはチャネルの情報や索引が記録される。索引は
1
Milestoneの時刻とファイル上の位置の対応表であり、http://www.aps.anl.gov/epics/

Unix Server/Workstations

Data Storage

Archiving Process
kblog

Application Program
Operator
Retrieval Commandkblogrd

Linux Server（3台）

NAS（5台）Network
Channel Access

VME Computers

EPICS
Runtime Database

Channels

Devices
図１：KEKBLogのシステム構成
読み出しの際に頭出しの高速化に利用される。
kblogプロセス毎にlog1, log2ファイルはそれぞれ一つずつ生成される。生成されたファイルはkblogプロセスが終了した時点で閉じられ、その後は二度と追記される事も書き換えられる事もない。実際の運用ではlog2ファイルが大きくなる（2040MBを超えるか30日経過する）と自動的にkblogプロセスを一旦終了し、すぐ再起動して新しいlog1, log2ファイルが作られるようにしている。表１にデータ収集量をまとめた。収集量はlog2ファイルのサイズを基にしている。log1ファイルは通常log2ファイルに比べ非常に小さいので無視できる。

４．アーカイブデータの保管データ収集用の各Linuxサーバーは400GB+400GB
表１：KEKBLogのデータ収集量のRAID1ディスクをローカルに持っており、kblogプロセスが収集したデータは一時的にここに記録される。その後データはおよそ1～2か月に一度の頻度で長期保管用のストレージ装置に移される。ストレージ装置には安価なNAS（Network Attached Storage）を使用し、これまでデータ量の増大と共に増設を行なって来た。現在までに5台のNAS（うち1台は増設ディスク装置を併設）を導入した。幸いにも近年のハードディスクの技術向上は目覚しく、アーカイブデータの増大率よりもディスク容量の増大率が上回っているため、NASの増設のペースは下がる傾向にある。
最 も 新 し く 導 入 し た 4.2TB の NASに 対 し 制 御 用
サーバー計算機からファイルを読み出す速度を測ったところ、2040MBのファイルをシーケンシャルに読むのに要した時間は約30秒であった。実用上問題無い速度である。実際にkblogrdコマンドによる読み出しではCPU処理時間の寄与の方が支配的である。
アーカイブデータのバックアップにはKEKの計算科 学 セ ン タ ー に あ る 大 容 量 記 憶 シ ス テ ム HPSS（High Performance Storage System）を利用している。
データの性格上、一度作られたファイルは変更される事がないため、バックアップ作業は増加分のファイルをコピーしていくだけで済む。

区分

サブグ
ループ
数 (*1)

チャネル数 (*1)

データ収
集量 (*2)[GB/day]

RF28643

0.45

Magnet461634

0.36

Vacuum

65954

0.38

Beam Monitor

106326

2.27

Beam Transport

39288

0.26

5.1 カタログの導入

Injector Linac

68394

0.39

その他

61686

0.24

合計

37101925

4.35

KEKBLogでは個々のlog1, log2ファイルのペアの中だけで情報が完結しており、それが置かれているディレクトリとファイル名だけを頼りにアーカイブデータへのアクセスが可能となっている。このように全体を管理するようなファイルもサーバーも必要のない単純な構造になっているため、アーカイブ(*1) 2008年6月末の時点での値(*2) 2008年5～6月頃のサブグループ別の平均を積算

５．カタログデータの保守は楽である。その反面、過去に遡ってどのチャネルがいつからいつまでデータ収集されていたか、それはどの時期のファイルに含まれているかといった情報を検索するのは容易ではない。原理的にはlog1ファイルを順に当たっていけば情報を得る事はできるが、非常に効率が悪い。
そこで過去から現在に至るデータ収集チャネルの状況をlog1ファイルから抽出して集めたファイルを作るようにした。このファイルをカタログと呼ぶ。
カタログはサブグループ毎に一つ作られ、そのサブグループに登録されているチャネルに追加や削除があった時に更新（再生成）するようにしている。

5.3 カタログの利用
カタログはテキストファイルであるため可読性があり、SADやPythonといったスクリプト言語からも参照が容易である。カタログの利用方法には、アプリケーションプログラムからカタログを直接読んで使う方法のほかに、カタログを読むためのPythonのライブラリーモジュールも用意している。また、検索コマンドも用意した。このコマンドはチャネル名で検索してそのチャネルを含むファイルのリストが得られるもので、そこからデータ収集期間も判る。

６．まとめ

5.2 カタログの構造KEKBLogではアーカイブデータの増加に対し安価なNASを増設するという単純な手段で対応して来カタログはテキストファイルである。図２はその内容の例である。最初にファイルリストの部があり、 た。全体を管理するファイルもサーバーも無く、ただデータファイルが増加していくだけという単純なその後にチャネルリストの部が続く構成となっていシステムである事も運用の省力化の面で有利である。
る。どのファイルにはどのチャネルが含まれている
その一方で全体を俯瞰する情報が容易に得られないかといった、ファイルとチャネルの対応関係はキーという欠点があり、これを補うためカタログを導入番号と呼ばれる番号で結び付けられている。ファイ
した。カタログは既存の情報だけから作られる二次ルリストの部ではlog1ファイルの一つ一つにキー番的なファイルのため保守は容易であり、アーカイブ号が一つずつ付けられている。一方、チャネルリスデータの利便性を高めるのに大いに役立っている。
トの部では一つのチャネルに一つ以上のキー番号が対応していて、それらのキー番号を持つファイル全てにそのチャネルが含まれている事を示している。
参考文献
ファイルリストの部では参考情報（動作モード、[1] T. T. Nakamura et al., “Data Archiving System in KEKB
内部基準時刻、終了時刻）も内部形式のまま付記さAccelerators Control System”, Proceedings of the 10th
れている。ちなみに開始時刻はファイル名に「年月ICALEPCS, Geneva, Oct. 10-14 2005
日時分秒」の形式で埋め込まれている。チャネルリ[2] Tatsuro Nakamura, et al., “Status of KEKB Accelerators
ストの部ではチャネル名に加えてチャネルの型と長Control System in 2006”, Proceedings of the 3rd Annual
Meeting of Particle Accelerator Society of Japan, Sendai,さ（配列の場合2以上になる。）も併記されている。
Aug. 2-4, 2006

コメント

ファイルリストの部

空行

チャネルリストの部# KEKBLog-log1catalog 1.0
Tune_20020901165917 (8,389715157,1259200657) 1
Tune_20021001165929 (8,392307172,1024843019) 1
Tune_20021004140007 (8,392555607,1095041605) 2
Tune_20021015140027 (8,393506027,1234720654) 3
Tune_20030109212854 (8,400963334,1232746808) 3
Tune_20030205200007 (8,403290807,1259200176) 4
Tune_20030307200009 (8,405882809,1259200106) 4

キー番号

CGHOPT:GNU:DIFF 2 2 1 2 3 4
FBH:FBTUNE:DA16:CH0 5 1 3 4
FBH:FBTUNE:DA16:CH1 5 1 3 4
FBH:FBTUNE:DA16:CH2 5 1 3 4
FBH:TUNE:NUH 2 1 1 2 3 4
FBH:TUNE:NUV 2 1 1 2 3 4
FBH_WAMP1:CH1FWD 2 1 4
FBH_WAMP1:CH1RWD 2 1 4
GTUNEH:FIT_H_Gamma 2 1 2 3 4GTUNEH:FIT_V_Gamma 2 1 2 3 4

参考情報
ファイル名

空行
チャネル名

型

長さ

キー番号の並び

図２：カタログの例（説明のため実際のものとは異なる。）