12 个版本
0.13.1 | 2024年6月26日 |
---|---|
0.12.9 | 2024年5月15日 |
0.12.8 |
|
0.12.7 | 2023年3月7日 |
0.4.2 | 2019年6月2日 |
#253 在 命令行工具
每月 40 次下载
93KB
2K SLoC
SArchive
调度作业脚本和相关文件的归档工具。
请注意,这里的 master 分支可能领先于 crates.io 上的最新版本。在开发过程中,我们有时依赖于尚未发布具有我们使用功能的版本的依赖项。
最小支持的 rustc
1.70.0
CI 测试针对以下 Rust 版本运行
- 稳定版
- 夜间版
用法
sarchive
需要指定调度程序主卷目录的路径。它还需要设置一个 cluster
(名称)。
sarchive
支持多个调度程序,必须在命令行上指定要使用的调度程序。目前,支持 Slurm 和 Torque。
对于 Slurm,要监视的目录定义为 slurm 配置中的 StateSaveLocation
。
此外,sarchive
提供了各种后端。基本的 file
后端将作业脚本和相关文件复制到挂载文件系统上的目录。我们还有限制地支持将作业信息发送到 Elasticsearch 或将它们发送到 Kafka 主题。以下简要讨论这些后端。
文件归档
通过 file
子命令激活。请注意,我们目前不支持使用多个子命令(即后端)。
对于文件归档,sarchive
需要归档顶级目录的路径,即您想要存储备份脚本和相关文件的路径。
归档可以进一步按
- 年:YYYY,通过提供
--period=yearly
- 月:YYYYMM,通过提供
--period=monthly
- 日:YYYYMMDD,通过提供
--period=daily
每个目录在文件归档时也会创建,如果它们不存在。这允许您轻松地打包旧的目录,您可能仍然希望保留它们,但可能不再需要立即用于用户支持。
例如,
sarchive--cluster huppel-文本/变量/打印/slurm 文件--存档=/变量/备份/slurm/任务-存档
Elasticsearch 存档(已移除)
Elasticsearch 后端将进行改造,因为使用 elastic crate 会因其 hyper 依赖存在漏洞(https://rustsec.org/advisories/RUSTSEC-2021-0078)
一旦我们能够迁移到官方 Elastic.co crate,将再次添加。
Kafka 存档
您可以将作业脚本作为消息发送到 Kafka。
例如,
./sarchive --集群huppel -l/var/log/sarchive.log -文本/var/spool/slurm/kafka --代理mykafka.mydomain:9092 --主题slurm-job-archival
支持通过 --ssl
和 --sasl
选项使用 SSL 和 SASL。这两个选项都期望传递给底层 kafka 库的逗号分隔的选项列表。
特性
- 多线程,每个线程监视一个目录,因此无需层次监视。
- 独立的处理线程以确保快速清除 inotify 事件队列。
- 接收到 SIGHUP 时进行干净的日志轮换。
- 实验性地支持接收到 SIGTERM 或 SIGINT 时干净终止,其中处理已看到的作业事件,以最小化重启服务时的潜在损失。
- 输出到分层目录结构中的文件
- 输出到 Elasticsearch
- 输出到 Kafka
RPM
我们提供了一个构建脚本,使用 cargo-rpm 工具生成 RPM。您可以根据需要调整 spec 文件(在 .rpm
目录下列出)来满足您的需求。RPM 包含一个单元文件,因此 sarchive
可以通过 systemd 作为服务启动。此文件也应根据您的需求和本地配置进行更改。
依赖项
~9–25MB
~309K SLoC