注意

本文档适用于 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(默认),jsonjson-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.

单调用过程统一了prepareactivate所做的操作,并可以一次性完成,方便。标志和一般用法与prepareactivate子命令相同。

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),

由 Ceph 基金会提供

Ceph 文档是一个由非盈利Ceph 基金会资助和托管的社会资源。如果您想支持此项目和其他工作,请考虑现在加入.