注意
本文档适用于 Ceph 的开发版本。
ceph-volume -- Ceph OSD部署和检查工具
概要
ceph-volume[-h] [--cluster CLUSTER] [--log-level LOG_LEVEL]
ceph-volume inventory
ceph-volume lvm [ trigger | create | activate | prepare | zap | list | batch | new-wal | new-db | migrate ]
ceph-volume simple [ trigger | scan | activate ]
描述
ceph-volume是一个单一目的的命令行工具,用于将逻辑卷部署为OSD,试图保持与168133ceph-disk
准备、激活和创建OSD时相似的API。
它与ceph-disk
的区别在于不交互或依赖Ceph安装的udev规则。这些规则允许自动检测之前设置的设备,然后这些设备被输入ceph-disk
以激活它们。
Commands
inventory
此子命令提供有关主机物理磁盘清单的信息,并报告这些磁盘的元数据。在此元数据中,可以找到特定于磁盘的数据项(如型号、大小、旋转或固态)以及特定于使用设备的Ceph的数据项,例如它是否可用于Ceph或是否存在逻辑卷。
示例:
ceph-volume inventory
ceph-volume inventory /dev/sda
ceph-volume inventory --format json-pretty
可选参数:
- -h, --help
显示帮助信息并退出
- --format
报告格式,有效值为
plain
(默认),json
和json-pretty
lvm
通过使用LVM标签,该lvm
子命令能够存储和稍后重新发现和查询与OSD关联的设备,以便稍后激活。
子命令:
batch
使用设备列表的bluestore
(默认)设置创建OSD。它将创建所有必要的卷组和逻辑卷,以使其具有工作的OSD。
使用三个设备的示例用法:
ceph-volume lvm batch --bluestore /dev/sda /dev/sdb /dev/sdc
可选参数:
- -h, --help
显示帮助信息并退出
- --bluestore
使用bluestore对象存储(默认)
- --yes
跳过报告并提示继续配置
- --prepare
仅准备OSD,不激活
- --dmcrypt
为底层OSD设备启用加密
- --crush-device-class
定义一个CRUSH设备类以分配OSD到
- --no-systemd
不启用或创建任何systemd单元
- --osds-per-device
为每个设备提供超过1个(默认)OSD
- --report
报告当前输入的潜在结果(需要传递设备)
- --format
报告时的输出格式(与--report一起使用),可以是“pretty”(默认)或“json”
- --block-db-size
设置(或覆盖)“bluestore_block_db_size”值,以字节为单位
- --journal-size
覆盖“osd_journal_size”值,以兆字节为单位
必须的位置参数:
- <DEVICE>
原始设备的完整路径,如
/dev/sda
. 可以传递多个路径。<DEVICE>
paths can be passed in.
activate
启用一个systemd单元,该单元持久保存OSD ID及其UUID(在Ceph CLI工具中也称为fsid
),以便在启动时它可以理解启用的OSD及其需要挂载。
用法:
ceph-volume lvm activate --bluestore <osd id> <osd fsid>
可选参数:
- -h, --help
显示帮助信息并退出
- --auto-detect-objectstore
通过检查OSD自动检测对象存储
- --bluestore
bluestore对象存储(默认)
- --all
激活系统中找到的所有OSD
- --no-systemd
跳过创建和启用systemd单元以及启动OSD服务的步骤
可以通过使用(idempotent)--all
标志一次性激活多个OSD:
ceph-volume lvm activate --all
prepare
准备逻辑卷以用作OSD和日志使用bluestore
(默认)设置。它不会创建或修改逻辑卷,除了添加额外的元数据。
用法:
ceph-volume lvm prepare --bluestore --data <data lv> --journal <journal device>
可选参数:
- -h, --help
显示帮助信息并退出
- --journal JOURNAL
逻辑组名称、逻辑卷路径或设备路径
- --bluestore
使用bluestore对象存储(默认)
- --block.wal
bluestore block.wal逻辑卷或分区的路径
- --block.db
bluestore block.db逻辑卷或分区的路径
- --dmcrypt
为底层OSD设备启用加密
- --osd-id OSD_ID
重用现有的OSD ID
- --osd-fsid OSD_FSID
重用现有的OSD fsid
- --crush-device-class
定义一个CRUSH设备类以分配OSD到
必须的参数:
- --data
逻辑组名称或逻辑卷路径
对于加密OSD,准备时必须添加--dmcrypt
标志(也支持在create
子命令中)。
create
将为新的osd配置的两步过程(调用prepare
首先和activate
然后)合并为一步。更喜欢prepare
然后是因为可以逐步将新的OSD引入集群,并避免大量数据重新平衡。activate
is to gradually introduce new OSDs into a cluster, and
avoiding large amounts of data being rebalanced.
单调用过程统一了prepare
和activate
所做的操作,并可以一次性完成,方便。标志和一般用法与prepare
和activate
子命令相同。
trigger
此子命令不打算直接使用,它由systemd使用,以便将输入代理到ceph-volume lvm activate
通过解析systemd的输入,检测与OSD关联的UUID和ID。
用法:
ceph-volume lvm trigger <SYSTEMD-DATA>
systemd“数据”的预期格式为:
<OSD ID>-<OSD UUID>
与OSD关联的lvs需要在之前由ceph-volume准备,以便所有需要的标签和元数据都存在。
位置参数:
- <SYSTEMD_DATA>
包含OSD ID和UUID的systemd单元的数据。
list
列出与Ceph关联的设备或逻辑卷。如果设备具有与OSD相关的信息,则确定存在关联。这是通过查询LVM的元数据并将其与设备相关联来验证的。
与OSD关联的lvs需要在之前由ceph-volume准备,以便所有需要的标签和元数据都存在。
用法:
ceph-volume lvm list
列出特定设备,报告所有有关它的元数据:
ceph-volume lvm list /dev/sda1
列出逻辑卷及其所有元数据(vg是卷组,lv是逻辑卷名称):
ceph-volume lvm list {vg/lv}
位置参数:
- <DEVICE>
以
vg/lv
逻辑卷的形式,或/path/to/sda1
or/path/to/sda
正规设备的形式。
zap
擦除给定的逻辑卷或分区。如果给定逻辑卷的路径,则必须为vg/lv格式。在给定的lv或分区上存在的任何文件系统都将被删除,并且所有数据都将被清除。
但是,lv或分区将保持完整。
用法,对于逻辑卷:
ceph-volume lvm zap {vg/lv}
用法,对于逻辑分区:
ceph-volume lvm zap /dev/sdc1
要完全删除设备,请使用--destroy
标志(对所有设备类型都允许):
ceph-volume lvm zap --destroy /dev/sdc1
可以通过指定OSD ID和/或OSD FSID删除多个设备:
ceph-volume lvm zap --destroy --osd-id 1
ceph-volume lvm zap --destroy --osd-id 1 --osd-fsid C9605912-8395-4D76-AFC0-7DFDAC315D59
位置参数:
- <DEVICE>
以
vg/lv
逻辑卷的形式,或/path/to/sda1
or/path/to/sda
正规设备的形式。
new-wal
将给定的逻辑卷作为WAL附加到OSD。逻辑卷名称格式为vg/lv。如果OSD已经附加了WAL,则失败。
用法:
ceph-volume lvm new-wal --osd-id OSD_ID --osd-fsid OSD_FSID --target <target lv>
可选参数:
- -h, --help
显示帮助信息并退出
- --no-systemd
跳过检查OSD systemd单元
必须的参数:
- --target
作为WAL附加的逻辑卷名称
new-db
将给定的逻辑卷作为DB附加到OSD。逻辑卷名称格式为vg/lv。如果OSD已经附加了DB,则失败。
用法:
ceph-volume lvm new-db --osd-id OSD_ID --osd-fsid OSD_FSID --target <target lv>
可选参数:
- -h, --help
显示帮助信息并退出
- --no-systemd
跳过检查OSD systemd单元
必须的参数:
- --target
作为DB附加的逻辑卷名称
migrate
将BlueFS数据从源卷(s)移动到目标卷,源卷(除了主卷,即数据或块卷)在成功时被删除。仅允许将目标卷设置为LVM卷,无论是已经附加的还是新的。在后一种情况下,它被附加到OSD以替换其中一个源设备。以下替换规则适用(按优先级顺序,第一个匹配停止):
如果源列表有DB卷 - 目标设备替换它。
如果源列表有WAL卷 - 目标设备替换它。
如果源列表只有慢卷 - 操作不允许,需要通过new-db/new-wal命令明确分配。
用法:
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_FSID --target <target lv> --from {data|db|wal} [{data|db|wal} ...]
可选参数:
- -h, --help
显示帮助信息并退出
- --no-systemd
跳过检查OSD systemd单元
必须的参数:
- --from
源设备类型名称列表
- --target
要移动数据到的逻辑卷
simple
扫描可能由ceph-disk或手动创建的旧OSD目录或数据设备。
子命令:
activate
启用一个systemd单元,该单元持久保存OSD ID及其UUID(在Ceph CLI工具中也称为fsid
),以便在启动时它可以理解启用的OSD及其需要挂载,同时读取之前在/etc/ceph/osd/
创建并持久保存的JSON格式信息。
用法:
ceph-volume simple activate --bluestore <osd id> <osd fsid>
可选参数:
- -h, --help
显示帮助信息并退出
- --bluestore
bluestore对象存储(默认)
注意
它需要一个匹配的JSON文件,格式如下:
/etc/ceph/osd/<osd id>-<osd fsid>.json
scan
扫描正在运行的OSD或数据设备以查找OSD的元数据,这些元数据稍后可用于使用ceph-volume激活和管理OSD。扫描方法将创建一个包含所需信息以及OSD目录中找到的任何内容的JSON文件。
可选地,JSON块可以发送到stdout以供进一步检查。
在所有正在运行的OSD上使用:
ceph-volume simple scan
在数据设备上使用:
ceph-volume simple scan <data device>
运行OSD目录:
ceph-volume simple scan <path to osd dir>
可选参数:
- -h, --help
显示帮助信息并退出
- --stdout
将JSON块发送到stdout
- --force
如果在目标处存在JSON文件,则覆盖它
可选位置参数:
- <DATA DEVICE or OSD DIR>
实际数据分区或正在运行OSD的路径
trigger
此子命令不打算直接使用,它由systemd使用,以便将输入代理到ceph-volume simple activate
通过解析systemd的输入,检测与OSD关联的UUID和ID。
用法:
ceph-volume simple trigger <SYSTEMD-DATA>
systemd“数据”的预期格式为:
<OSD ID>-<OSD UUID>
与OSD关联的JSON文件需要在之前通过扫描(或手动)持久保存,以便可以使用所有需要的元数据。
位置参数:
- <SYSTEMD_DATA>
包含OSD ID和UUID的systemd单元的数据。
可用性
ceph-volume是 Ceph 的一部分,Ceph 是一个可扩展性极强的、开源的分布式存储系统。请参考http://docs.ceph.com/中的Ceph文档以获取更多信息。
参见
ceph-osd(8),