注意
本文档适用于 Ceph 的开发版本。
rados -- rados 对象存储实用程序
概要
描述
rados 是一个用于与 Ceph 对象存储集群 (RADOS) 交互的实用程序,它是 Ceph 分布式存储系统的一部分。
全局选项
- --object-locator object_locator
设置操作的对象定位符。
- -p pool, --pool pool
与给定的池交互。大多数命令都需要。
- --target-pool pool
按名称选择目标池。
- --pgid
作为
--pool的替代方案,--pgid还允许用户指定命令将定向到的 PG ID。使用此选项,某些命令(如ls)允许用户将命令范围限制为给定的 PG。
- -N namespace, --namespace namespace
指定用于对象的 rados 命名空间。
- --all
与 ls 一起使用以列出所有命名空间中的对象。将其放入 CEPH_ARGS 环境变量中以使其成为默认值。
- --default
与 ls 一起使用以列出默认命名空间中的对象。在 --all 位于环境中时,它优先于 --all。
- -s snap, --snap snap
从给定的池快照中读取。适用于所有特定于池的读取操作。
- --create
创建指定的池或目录。
- -i infile
将指定一个输入文件,作为有效载荷随命令传递给监视器集群。这仅用于特定的监视器命令。
- -m monaddress[:port]
连接到指定的监视器(而不是通过 ceph.conf 查找)。
- -b block_size
设置 put/get/append 操作以及写入基准测试的块大小。
- --striper
使用 rados 的条带化 API 而不是默认 API。适用于 stat、stat2、get、put、append、truncate、rm、ls 和所有与 xattr 相关的操作。
- -O object_size, --object-size object_size
设置 put/get 操作以及写入基准测试的对象大小。
- --max-objects
设置写入基准测试的最大对象数。
- --lock-cookie locker-cookie
将设置用于获取咨询锁(lock get 命令)的锁 cookie。如果 cookie 不为空,则必须将此选项传递给 lock break 命令才能在释放锁时找到正确的锁。
- --target-locator
与 cp 一起使用以指定新对象的定位符。
- --target-nspace
与 cp 一起使用以指定新对象的命名空间。
基准测试选项
- -t N, --concurrent-ios=N
设置并发 I/O 操作的数量。
- --show-time
在输出前加上日期/时间。
- --no-verify
不验证读取的对象的内容。
- --write-object
将内容写入对象。
- --write-omap
将内容写入 omap。
- --write-xattr
将内容写入扩展属性。
负载生成选项
- --num-objects
对象总数。
- --min-object-size
最小对象大小。
- --max-object-size
最大对象大小。
- --min-op-len
操作的最小 I/O 大小。
- --max-op-len
操作的最大 I/O 大小。
- --max-ops
最大操作数。
- --max-backlog
最大积压大小。
- --read-percent
读取操作的百分比。
- --target-throughput
目标吞吐量(以字节为单位)。
- --run-length
总时间(以秒为单位)。
- --offset-align
随机操作偏移量对齐的边界。
缓存池选项
- --with-clones
在进行刷新或驱逐时包括克隆。
OMAP 选项
- --omap-key-file file
从文件中读取 omap 键。
通用选项
- -c FILE, --conf FILE
从给定的配置文件中读取配置。
- --id ID
设置我的名称的 ID 部分。
- -n TYPE.ID, --name TYPE.ID
设置 cephx 用户名。
- --cluster NAME
设置集群名称(默认值:ceph)。
- --setuser USER
将 uid 设置为 user 或 uid(并将 gid 设置为 user 的 gid)。
- --setgroup GROUP
将 gid 设置为 group 或 gid。
- --version
显示版本并退出。
全局命令
- lspools
列出对象池
- df
显示利用率统计信息,包括磁盘使用量(字节)和对象计数,以及按池细分的统计信息。
- list-inconsistent-pg pool
列出给定池中不一致的 PG。
- list-inconsistent-obj pgid
列出给定 PG 中不一致的对象。
- list-inconsistent-snapset pgid
列出给定 PG 中不一致的快照集。
特定于池的命令
- get name outfile
从集群读取对象名称并将其写入 outfile。
- put name infile [--offset offset]
将对象名称写入集群,起始偏移量(默认值:0)为 infile 中的内容。警告: put 命令创建一个单独的 RADOS 对象,其大小与输入文件一样大。除非您的对象具有合理且一致的大小,否则这可能不是您想要的——考虑改用 RGW/S3、CephFS 或 RBD。
- append name infile
将对象名称附加到集群,内容来自 infile。
- rm [--force-full] name …
删除名称为 name 的对象。使用
--force-full将在集群被标记为满时删除。- listwatchers name
列出对象名称的观察者。
- ls outfile
列出给定池中的对象并写入 outfile。如果指定
--pgid而不是--pool,ls将只列出给定 PG 中的对象。- lssnap
列出给定池的快照。
- mksnap foo
创建名为 foo 的池快照。
- rmsnap foo
删除名为 foo 的池快照。
- bench seconds mode [ -b objsize ] [ -t threads ]
基准测试 seconds 秒。模式可以是 write、seq 或 rand。seq 和 rand 是读取基准测试,分别是顺序或随机读取。在运行其中一个读取基准测试之前,请使用 --no-cleanup 选项运行写入基准测试。默认对象大小为 4 MB,模拟线程数(并行写入)的默认值为 16。--run-name <label> 选项对于从多个客户端进行工作负载测试非常有用。<label> 是一个任意对象名称。默认值为“benchmark_last_metadata”,并用作“read”和“write”操作的基础对象名称。注意:-b objsize 选项仅在 write 模式下有效。注意:write 和 seq 必须在同一主机上运行,否则 write 创建的对象名称将导致 seq 失败。
- cleanup [ --run-name run_name ] [ --prefix prefix ]
清理以前的基准测试操作。注意:默认的 run-name 是“benchmark_last_metadata”
- listxattr name
列出对象的所有扩展属性。
- getxattr name attr
转储对象的 attr 扩展属性值。
- setxattr name attr value
设置对象的扩展属性中 attr 的值。
- rmxattr name attr
从对象的扩展属性中删除 attr。
- stat name
获取给定对象的 stat(即 mtime、大小)
- stat2 name
获取给定对象的 stat(类似于 stat,但具有高精度时间)
- listomapkeys name
列出存储在对象名称的对象映射中的所有键。
- listomapvals name
列出存储在对象名称的对象映射中的所有键/值对。值以十六进制转储。
- getomapval [ --omap-key-file file ] name key [ out-file ]
转储对象名称的对象映射中 key 的十六进制值。如果未提供可选的 out-file 参数,则该值将写入标准输出。
- setomapval [ --omap-key-file file ] name key [ value ]
设置对象名称的对象映射中 key 的值。如果未提供可选的 value 参数,则该值将从标准输入读取。
- rmomapkey [ --omap-key-file file ] name key
从对象名称的对象映射中删除 key。
- getomapheader name
转储对象名称的对象映射头的十六进制值。
- setomapheader name value
设置对象名称的对象映射头的值。
- export filename
将池内容序列化为文件或标准输出。n”
- import [--dry-run] [--no-overwrite] < filename | - >
从文件或标准输入加载池内容
示例
查看集群利用率
rados df
获取池 foo 中的对象列表并发送到标准输出
rados -p foo ls -
获取 PG 0.6 中的对象列表
rados --pgid 0.6 ls
写入对象
rados -p foo put myobject blah.txt
创建快照
rados -p foo mksnap mysnap
删除对象
rados -p foo rm myobject
读取对象先前快照的版本
rados -p foo -s mysnap get myobject blah.txt.old
列出 PG 0.6 中不一致的对象
rados list-inconsistent-obj 0.6 --format=json-pretty
可用性
rados 是 Ceph 的一部分,Ceph 是一个可大规模扩展的开源分布式存储系统。请参阅 Ceph 文档(网址为 https://docs.ceph.net.cn)以获取更多信息。
另请参阅
ceph(8)