15 个版本
0.6.5 | 2023年11月3日 |
---|---|
0.6.3 | 2023年2月27日 |
0.6.1 | 2022年7月1日 |
0.6.0 | 2021年4月3日 |
0.1.1 | 2018年9月18日 |
#160 in 文件系统
每月109次下载
45KB
1K SLoC
stor-age
显示目录的过期时间。
目录
动机
此工具的主要动机是找出给定一组数据目录中,还有多少存储容量仍在活跃使用。这些信息可用于数据处理系统,如高性能计算(HPC)集群,以鼓励用户将未使用的数据迁移到长期存储设施。
可用于此分析的数据文件系统元数据包括数据目录中文件的访问时间和修改时间。使用这些元数据和给定的一组年龄,可以计算每个年龄和目录的总访问和修改容量的百分比。随着时间的推移进行这些操作,可以创建数据目录的使用概况。用户可以看到,当他们的系统数据变得过时时,应该迁移到适合长期归档的存储设施。
使用方法
交互式
显示您的目录中有多少已被闲置未使用
$ stor-age 90 365 -- ~/media/pics ~/projects
Directory Age Bytes Accessed Percent Modified Percent Files Accessed Percent Modified Percent
/home/user/projects 90 5.8 GiB 5.7 GiB 97.8% 5.6 GiB 95.12% 72596 71582 98.6% 39914 54.98%
365 5.8 GiB 98.85% 5.6 GiB 96.38% 71981 99.15% 48734 67.13%
/home/user/media/pics 90 483.2 MiB 107.0 MiB 22.15% 488.7 kiB 0.1% 2299 328 14.27% 7 0.3%
365 219.1 MiB 45.35% 3.0 MiB 0.63% 2119 92.17% 13 0.57%
注意:两个短横线--
是必需的,因为您可以提供多个年龄和多个目录,而命令行参数解析器需要一种方式来区分这两个列表。
监控系统指标
使用类似find
的工具遍历一组目录
find /data/ -mindepth 1 -maxdepth 1 -type d |
stor-age --format prometheus 90 365
输出是有效的Prometheus指标展示格式
# HELP stor_age_bytes_total Total size in bytes.
# TYPE stor_age_bytes_total gauge
stor_age_bytes_total{dir="/data/foo"} 132904506033
stor_age_bytes_total{dir="/data/bar"} 52451763095
stor_age_bytes_total{dir="/data/baz"} 38525158426
# HELP stor_age_bytes_accessed Accessed size in bytes.
# TYPE stor_age_bytes_accessed gauge
stor_age_bytes_accessed{dir="/data/foo",age="90"} 770700907
stor_age_bytes_accessed{dir="/data/foo",age="365"} 8013210318
stor_age_bytes_accessed{dir="/data/bar",age="90"} 1003231299
stor_age_bytes_accessed{dir="/data/bar",age="365"} 27936338982
stor_age_bytes_accessed{dir="/data/baz",age="90"} 4534759665
stor_age_bytes_accessed{dir="/data/baz",age="365"} 38525158426
# HELP stor_age_bytes_modified Modified size in bytes.
# TYPE stor_age_bytes_modified gauge
stor_age_bytes_modified{dir="/data/foo",age="90"} 3309
stor_age_bytes_modified{dir="/data/foo",age="365"} 8013127399
stor_age_bytes_modified{dir="/data/bar",age="90"} 964846566
stor_age_bytes_modified{dir="/data/bar",age="365"} 4738171482
stor_age_bytes_modified{dir="/data/baz",age="90"} 3641814237
stor_age_bytes_modified{dir="/data/baz",age="365"} 13704189585
# HELP stor_age_files_total Total number of files.
# TYPE stor_age_files_total gauge
stor_age_files_total{dir="/data/foo"} 1913
stor_age_files_total{dir="/data/bar"} 1516
stor_age_files_total{dir="/data/baz"} 2023
# HELP stor_age_files_accessed Accessed number of files.
# TYPE stor_age_files_accessed gauge
stor_age_files_accessed{dir="/data/foo",age="90"} 11
stor_age_files_accessed{dir="/data/foo",age="365"} 262
stor_age_files_accessed{dir="/data/bar",age="90"} 553
stor_age_files_accessed{dir="/data/bar",age="365"} 1402
stor_age_files_accessed{dir="/data/baz",age="90"} 711
stor_age_files_accessed{dir="/data/baz",age="365"} 2023
# HELP stor_age_files_modified Modified number of files.
# TYPE stor_age_files_modified gauge
stor_age_files_modified{dir="/data/foo",age="90"} 2
stor_age_files_modified{dir="/data/foo",age="365"} 250
stor_age_files_modified{dir="/data/bar",age="90"} 553
stor_age_files_modified{dir="/data/bar",age="365"} 1339
stor_age_files_modified{dir="/data/baz",age="90"} 558
stor_age_files_modified{dir="/data/baz",age="365"} 1894
功能
以下列表包含需要通过例如cargo build --feature <FEATURES>
启用(例如)的crate功能。列表包含功能是否默认启用以及启用该功能的理由。
-
table(默认)
添加输出格式,例如
--format table
,将报告以表格形式格式化输出。此功能旨在用于交互式命令行使用。如果启用此功能,则为默认输出格式。如果您只需要包含在监控系统(例如
--format prometheus
)中的有用输出格式,您可以禁用此功能以最小化依赖项。 -
spectrum-scale
为IBM Spectrum Scale文件系统添加一个可选的文件系统迭代模式。此迭代模式使用
mmapplypolicy
命令而不是通用目录遍历(std::fs::read_dir)。这可以大大提高速度,尤其是在大目录中,因为它使用文件系统内部结构和可以广泛使用并行性。有关更多信息,请参阅
--help
输出中的相应命令行选项。注意:与
mmapplypolicy
一起使用的策略将文件列表写入纯文本文件。这些文件可能相当大,随着文件数量的增加而扩展。根据这些列表存储的位置,您可能需要大量的内存(tmpfs)或磁盘空间,大约每百万个文件需要150 MiB。
安装
Arch Linux
pacaur -S stor-age
cargo install
cargo install stor-age
从源代码安装
git clone https://github.com/idiv-biodiversity/stor-age.git
cd stor-age
cargo build --release
install -Dm755 target/release/stor-age ~/bin/stor-age
依赖项
~6–20MB
~223K SLoC