EPICS ARCHIVER APPLIANCE

一、什么是EPICS ARCHIVER APPLIANCE?

Archiver是一款基于JAVA的开源数据归档系统。专门用于长期采集、存储和检索EPICS控制系统中的实时数据(主要是高性能检索)。核心功能包括:

1.数据采集:支持大规模PV(过程变量)监控,可同时采集数万个PV,采集策略灵活(周期触发/阈值触发)。通过Channel Access/PVAccess协议与EPICS IOC通信

2.存储架构:分层存储设计。短期存储将最近1小时的数据存储在内存中;中期存储将最近1天的数据存储在本地硬盘;长期存储将一年的数据存储在分布式数据库或网络存储中。支持高压缩和荣誉存储,确保数据可靠性。

3.数据管理:通过Extract\Transform\Load模块实现数据在不同存储层的迁移,支持数据抽取和特征值(最大/最小/平均)生成,以提高检索效率。

4.检索服务:提供web界面和API接口查询历史数据

部署方式:部署在tomcat服务器,包含四个核心组件:Engine负责数据采集和归档(该组件为设备中的每个PV建立EPICS通道访问监视器。数据被写入STS。该组件基于CS-Studio引擎)、ETL数据存储和迁移(从STS传输到MTS,以及从MTS传输到LTS)、DataRetrieval数据查询请求(该组件从所有存储中收集数据,将它们拼接在一起以满足数据检索请求)、Management提供配置和管理页面( 该组件执行业务逻辑,管理其他三个组件并保存运行时配置状态)。

二、系统要求

1.LINUX系统:redhat6.1

2.JDK16

3.tomcat11.0.12之后+

4.firefox

5.mysql5.1以后

三、关键特性

1.集群化部署与扩展

2.多级存储架构:快存、中存、长存

3.数据迁移与降采样机制

4.简化的WEB管理页面和脚本化管理

5.易于集成和定制

6.提供从channel Archiver迁移路径

四、架构设计

存储阶段 (可按PV配置):

STS (短期存储): 最近几小时数据,通常为RAM磁盘。

MTS (中期存储): 最近几天数据,使用RAID或镜像SAS硬盘。

LTS (长期存储): 其余数据,使用租用的批量存储(如GFPS/NFS挂载)或NetApp等。

核心进程 (J2EE WAR文件, Tomcat容器):

Engine:建立EPICS通道访问监控,写入STS。基于CS-Studio引擎。

ETL:在存储间移动数据(STS->MTS, MTS->LTS),可进行数据降采样。

Retrieval:从所有存储中收集数据,拼接响应查询请求。

Mgmt:执行业务逻辑,管理其他组件,保存运行时配置。

通信: 组件间通过JSON/HTTP通信。

配置: 存储在MySQL数据库(每个设备独立)。

六、序列化机制

配置: 每个PV的归档配置存储为JSON对象,包含采样模式、速率及数据存储列表。

实现: 使用存储插件(Storage Plugins)实现数据存储,遵循标准接口。

默认插件: PlainPBStoragePlugin。

序列化: 使用Google Protocol Buffers (PB)。

  • 提供未来兼容性,支持多种语言绑定。
  • EPICS V3 DBR类型映射到特定PB消息。
  • EPICS V4 NTScalars/NTScalarArrays映射到V3对应PB消息。
  • 其他V4类型使用V4序列化存储为通用PB消息。

数据块 (Chunk): 存储序列化PB消息,每行一个样本。

•样本按记录处理时间戳排序(单调递增)。

•块键基于PV名和时间分区(如 `EIOC/L130/MP01/HEARTBEAT:2012_08_24_16.pb`)。

•分区边界严格,块键信息足以识别数据边界。

•默认存储为文件,块键作文件名。

优势: 无需索引即可进行搜索算法优化(未来可扩展)。

存储效率: 平均每个PB ScalarDouble约消耗21字节(含时间戳、值、状态、严重性等)。

七、PV归档工作流

流程:

  1. 用户请求: 请求归档PV。
  2. 信息采集: Mgmt和Engine组件采样PV,获取事件率、存储率、PV字段(NAME, ADEL, MDEL, RTYP等)。
  3. 策略评估: 将信息传递给安装特定的Python策略脚本。
  4. 配置决策: 策略脚本根据信息做出配置决定(例如:波形采样率不超过1Hz;AI记录归档VAL、HIHI、LOLO字段)。

八、数据检索

性能数据 :

>75% 请求时间跨度 < 1天,平均响应时间 < 100ms。

时间跨度达1周,平均响应时间约 250ms。

时间跨度达1年,带数据降采样,可在几秒内完成(例如:运行时将3000万样本合并为约8000个样本)。

协议与格式

HTTP,支持多种MIME类型:

RAW:二进制格式,最小化PB格式转换。提供Java/Python库,carchivetools支持。

JSON, CSV, MAT, TXT, SVG:

支持Matlab, Python, Excel, JMP等工具。

URL构建: URL仅包含PV名、开始和结束时间。

集群路由: 请求可发送到集群中的任意设备,设备负责路由/代理。

负载均衡: 可在集群前使用负载均衡器(如 mod_proxy_balancer)。

数据检索;将数据导入工具的第一步是构建数据检索URL;该URL仅包含PV名称以及数据检索请求的开始和结束时间。数据检索请求和业务逻辑请求都可以分发到集群中的任意随机设备(图4);该设备具备相应功能,可对请求进行路由/代理

九、降采样

根据需求,有多种降采样策略

实现

  • 支持在检索时处理数据。
  • 提供典型统计运算符(均值、标准差等)。
  • 运算符将数据分箱(binning),然后对箱应用运算。

效果

可在快速存储中保存几天全速率数据,然后在迁移到慢速存储时进行降采样。

十、管理

通过JSON/HTTP与设备交互,调用Web服务接口。

Web UI (图6): 提供常见配置任务界面。

脚本化: 所有Web服务调用也可通过外部脚本(如Python)使用。

丰富业务逻辑: 用户可添加/修改/删除PV、暂停/恢复、重新分片/合并数据等。

无需重启: 任何业务逻辑操作都不需要重启设备。

报告: 提供多种基于静态和动态信息的报告(存储速率、断开连接的PV等)。

脚本化管理: 报告也可通过Python脚本访问,实现集群的完全监控和管理自动化。

十一、定制化

1外观:可生成定制构建版本,满足特定站点的视觉风格。

2策略:可定制站点特定的策略脚本。

3配置存储:可替换为站点特定的配置存储方案。

参考文献:THE EPICS ARCHIVER APPLIANCE,Murali Shankar, Luofeng Li, SLAC,Proceedings of ICALEPCS2015

相关推荐
三品吉他手会点灯4 小时前
STM32 VSCode 开发-C语言程序运行后,终端中文乱码
c语言·ide·笔记·vscode·stm32·学习·编辑器
李李李勃谦4 小时前
Vue3 + Electron + OpenHarmony 跨平台实战:从架构设计到 Markdown 编辑器完整实现
javascript·华为·electron·编辑器·harmonyos
想拿大厂offer4 小时前
【Linux】编辑器、IDE 与操作系统:Linux 开发工具链的哲学与实践
linux·ide·编辑器
其实防守也摸鱼4 小时前
MarkText:开源免费的 Markdown 编辑器新星
笔记·pdf·编辑器·免费·工具·调试·可下载
念一不念二5 小时前
vscode中添加claude code插件
ide·vscode·编辑器
HealthScience5 小时前
vscode推荐使用的插件
ide·vscode·编辑器
蓉妹妹1 天前
vscode的各种使用场景
ide·vscode·编辑器
巴德鸟1 天前
DaVinci 常用技巧 关键帧 自动字幕 追踪 音频 冻结帧 快捷键 多轨道字幕 扩充边缘
android·编辑器·音视频·视频·davinci·davin
magrich1 天前
VSCode-reinstall-remote-extension备份重装vscodeextension
ide·vscode·编辑器
L-影2 天前
vscode安装SQLAlchemy步骤
ide·vscode·编辑器