动态存储统计模块
dynafed-storagestats的Python项目详细描述
动态存储统计信息
模块与UGR的配置文件交互以获取 从各种类型的端点存储状态信息并上载 给memcache的信息。它利用UGR的连接检查它是否上传 到memcache以跳过它检测到的"脱机"的任何终结点。(如果 找不到此信息,将忽略此信息,并与所有终结点联系)
迄今为止,它的支持已通过以下测试:
- azure存储blob
- AWS S3
- ceph s3
- 迷你S3
- 通过WebDAV的DPM
- 通过WebDAV的数据缓存
安装
Linux:
pip3 install dynafed-storagestats
这将安装所有必需的依赖项并创建可执行文件 '/usr/bin/dynafed存储'
中心/SL 6
python 3.4可从epel存储库获得。
为了在python 3中安装上述模块,需要设置pip3。自从 它不在repos中,请运行以下命令:
sudo python3 /usr/lib/python3.4/site-packages/easy_install.py pip
已知问题
用法
确保运行它的用户能够读取ugr的配置文件。
dynafed-storage -h usage: dynafed-storage [-h]{reports,stats} ... positional arguments: {reports,stats} reports In development stats Obtain and output storage stats. optional arguments: -h, --help show this help message and exit
子命令
统计信息
此子命令打算作为cron作业定期运行,以便 将统计信息上传到memcached中,以便dynafed可以使用它来了解 存储端点的存储容量。
它联系每个存储端点,获取可用的统计信息并输出它们 根据设置。
首先使用以下标志运行:
dynafed-storage stats -v -c /etc/ugr/conf.d --stdout -m
这将打印出遇到的任何警告和错误,以及 从每个端点获得的信息。如果你需要更多的信息 关于错误,请考虑添加"-debug"标志,它将打印更多 每个端点统计信息的结尾处的信息。如果你还需要更多, 将--loglevel更改为info或debug,只是警告debug可能会打印很多 信息的。
建议为日志文件创建一个目录,例如 "/var/log/dynafed_storagestats/dynafed_storagestats.log",默认为 "/tmp/dynafed_storagestats.log"。
当一切看起来都按需要设置时,设置cron以运行以下命令 (添加对站点有意义的任何其他选项)。
dynafed-storage stats -c /etc/ugr/conf.d -m --loglevel=WARNING --logfile='/var/log/dynafed_storagestats/dynafed_storagestats.log'
如果不检查所有配置的端点,则特定的端点ID可以是 用"-e"标志指定:
dynafed-storage stats -c /etc/ugr/conf.d -m -e endpoint1 endpoint2
统计帮助:
dynafed-storage stats -h usage: dynafed-storage stats [-h][-c [CONFIG_PATH [CONFIG_PATH ...]]][-e [ENDPOINT [ENDPOINT ...]]][-v][--logfile LOGFILE][--loglevel {DEBUG,INFO,WARNING,ERROR}][--memhost MEMCACHED_IP][--memport MEMCACHED_PORT][--debug][-m][-j [TO_JSON]][-o OUTPUT_PATH][-p [TO_PLAINTEXT]][--stdout][-x [OUTPUT_XML]] optional arguments: -h, --help show this help message and exit -c [CONFIG_PATH [CONFIG_PATH ...]], --config [CONFIG_PATH [CONFIG_PATH ...]] Path to UGR's endpoint .conf files or directories. Accepts any number of arguments. Default: '/etc/ugr/conf.d'. -e [ENDPOINT [ENDPOINT ...]], --endpoint [ENDPOINT [ENDPOINT ...]] Choose endpoint(s) to check. Accepts any number of arguments. If not present, all endpoints will be checked. -v, --verbose Show on stderr events according to loglevel.Logging options: --logfile LOGFILE Set logfile's path. Default: /tmp/dynafed_storagestats.log --loglevel {DEBUG,INFO,WARNING,ERROR} Set log output level. Default: WARNING. Memcached Options: --memhost MEMCACHED_IP IP or hostname of memcached instance.Default: 127.0.0.1 --memport MEMCACHED_PORT Port of memcached instance. Default: 11211 Output options: --debug Declare to enable debug output on stdout. -m, --memcached Declare to enable uploading storage stats to memcached. -j [TO_JSON], --json [TO_JSON] Set to output stats to json file. Add argument to set filename.Default: dynafed_storagestats.json!!In development!! -o OUTPUT_PATH, --output-dir OUTPUT_PATH Set output directory for flags -j, -x and -p. Default: '.' -p [TO_PLAINTEXT], --plain [TO_PLAINTEXT] Set to output stats to plain txt file. Add argument to set filename.Default: dynafed_storagestats.txt --stdout Set to output stats on stdout. -x [OUTPUT_XML], --xml [OUTPUT_XML] Set to output stats to json file. Add argument to set filename.Default: dynafed_storagestats.json!!In development!!
报告
注意:仅适用于azure和s3终结点
此子命令用于从存储器获取文件报告 端点。在这个时候,正在发展的是能够创造 文件转储的目的是使用for rucio的完整性检查 基于云的存储,如s3和azure,因为其他网格存储解决方案 dcache和dpm有自己的工具。
有关此文件转储的详细信息:ddmdarkdataandlostfiles
用法示例: 这将在/tmp/创建一个文件,其中包含"rucio"下的文件列表 来自终结点"entpoint1"和"endpoint2"的较前一天的前缀。这个 file name是endpoint s.conf文件中端点的id名称。
dynafed-storage reports -c ~/lab/dynafed_storagestats/tests/local/ -o /tmp/delete --delta 1 -p rucio -e endpoint1 endpoint2
报告帮助:
dynafed-storage reports --help usage: dynafed-storage reports [-h][-c [CONFIG_PATH [CONFIG_PATH ...]]][--delta DELTA][-e [ENDPOINT [ENDPOINT ...]]][-v][--logfile LOGFILE][--loglevel {DEBUG,INFO,WARNING,ERROR}][-o OUTPUT_PATH][-p PREFIX] optional arguments: -h, --help show this help message and exit -c [CONFIG_PATH [CONFIG_PATH ...]], --config [CONFIG_PATH [CONFIG_PATH ...]] Path to UGR's endpoint .conf files or directories. Accepts any number of arguments. Default: '/etc/ugr/conf.d'. --delta DELTA Mask for Last Modified Date of files. Integer in days. Default: 1 -e [ENDPOINT [ENDPOINT ...]], --endpoint [ENDPOINT [ENDPOINT ...]] Choose endpoint(s) to check. Accepts any number of arguments. If not present, all endpoints will be checked. -v, --verbose Show on stderr events according to loglevel.Logging options: --logfile LOGFILE Set logfile's path. Default: /tmp/dynafed_storagestats.log --loglevel {DEBUG,INFO,WARNING,ERROR} Set log output level. Default: WARNING. Output options: -o OUTPUT_PATH, --output-dir OUTPUT_PATH Set output directory. Default: '.' -p PREFIX, --path PREFIX, --prefix PREFIX Set the prefix/path from where to start the recursive list.Default: ''
重要提示:调试级别可能会打印大量数据 记录从请求中获取的内容。对于泛型方法来说 将打印正在分析的每个文件的所有统计信息。建议使用 此级别只有一个端点要进行故障排除。
端点配置
为了对每种存储类型使用正确的方法,一些设置应该 添加到endpoints.conf配置文件。
一般
pip3 install dynafed-storagestats0
如果缺少此设置,脚本将尝试从终结点获取配额 使用相关的api。否则,默认配额为将使用1TB。
API
将尝试从存储终结点获取配额。如果违约失败 将使用1TB的。
(字节)
配额可以用字节、兆字节、兆字节等小写或大写形式指定。
pip3 install dynafed-storagestats1
此设置告诉脚本在根据memcache中存储的最后一次检查的时间戳再次检查终结点之前等待的秒数。默认值为10分钟(600秒)。
天青
pip3 install dynafed-storagestats2
列表blob(不推荐:通用)
此设置将列出blob容器中的所有对象,并添加 尺寸。 每个get请求获得5000个对象。因此,10005个对象需要3个get。
dav/http
pip3 install dynafed-storagestats3
列出文件(不推荐:通用)
此设置将列出端点后面的所有对象,并添加 尺寸。为了使此方法递归地获取所有对象,dav服务器需要 以属性"无限"作为标题"深度"。不建议这样做 它是一种昂贵的方法,可以使用大量的内存,并且容易受到 拒绝服务。因此,如果可能,在 支持RFC4331
RFC4331
此设置将根据RFC4331查询DAV服务器。
S3
pip3 install dynafed-storagestats4
列出对象(不推荐:通用)
此设置将列出bucket后面的所有对象,并添加 尺寸。 每个get请求获得1000个对象。因此,2005个对象需要3个get。
ceph管理
如果要使用ceph的管理api,请使用此设置。的证书 配置的用户应启用"bucket read"上限。
云表
< AWS >配置CloudWatch度量BucketSizeBytes和NumberOfObject。 此设置将轮询这两个。这些指标每天在UTC时间00:00更新。 有关CloudWatch的更多信息,请阅读AWS的文档。pip3 install dynafed-storagestats5
大多数s3端点都应该使用s3v4签名验证版本,并用作 默认设置,但如果需要,请使用S3。
工作原理
运行时,主函数将读取目录中的每个配置文件 由用户提供(默认为/etc/ugr/conf.d),并将标识所有 具有各自设置和授权凭据的不同终结点。
属于StorageStats子类的Python对象,具体取决于协议 为每个包含所有设置和 请求和处理存储状态和配额信息所需的方法。
联系memcache以查找ugr的端点连接统计信息。任何终结点 此处标记为"脱机"将被跳过,并将此标记通知 输出。对于那些"在线"的人,或者如果他们找不到 将联系信息以获取存储状态。信息是 然后在每个对象中存储字典属性"stats"。
然后可以将统计信息输出到memcache实例或stdout, 取决于调用此脚本时选择的选项。
警告/错误代码
<表><广告>开发设置
要在"编辑"模式下安装,请将"-e"标志添加到pip3。这将安装包 作为源代码的符号链接,因此所做的任何更改都会自动反映出来 运行可执行文件时。
pip3 install dynafed-storagestats6
元
费尔南多·费尔南德斯–ffernandezgalindo@triumf.ca
在apache许可下发布。有关详细信息,请参见许可证
。
https://github.com/hep gc/dynafed_storagestats