注意

本文档适用于 Ceph 的开发版本。

ceph-volume -- Ceph OSD 部署和检查工具

概要

ceph-volume [-h] [--cluster CLUSTER] [--log-level LOG_LEVEL] [--log-path LOG_PATH]

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 的专用命令行工具,它试图在准备、激活和创建 OSD 时保持与 ceph-disk 相似的 API。

它与 ceph-disk 的不同之处在于不与 Ceph 附带的 udev 规则进行交互或依赖这些规则。这些规则允许自动检测以前设置的设备,然后将这些设备馈入 ceph-disk 以激活它们。

命令

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> 路径。

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 服务

通过使用(幂等的)--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 然后 activate 的原因是为了逐步将新 OSD 引入集群,避免大量数据重新平衡。

单次调用过程完全统一了 prepareactivate 的功能,提供了便捷的一次性操作。标志和一般用法与 prepareactivate 子命令等效。

trigger

此子命令不应直接使用,它被 systemd 使用,通过解析来自 systemd 的输入,检测与 OSD 关联的 UUID 和 ID,将输入代理到 ceph-volume lvm activate

用法

ceph-volume lvm trigger <SYSTEMD-DATA>

systemd “数据”应采用以下格式

<OSD ID>-<OSD UUID>

与 OSD 关联的 lvs 需要事先准备好,以便存在所有必需的标签和元数据。

位置参数

<SYSTEMD_DATA>

来自 systemd 单元的数据,包含 OSD 的 ID 和 UUID。

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/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/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 数据从源卷移动到目标卷,源卷(主卷除外,即数据或块卷)在成功后被删除。仅允许 LVM 卷作为目标,无论是已附加的还是新的。在后一种情况下,它被附加到 OSD,替换其中一个源设备。以下替换规则适用(按优先顺序,在第一次匹配时停止)

  • 如果源列表有 DB 卷 - 目标设备替换它。

  • 如果源列表有 WAL 卷 - 目标设备替换它。

  • 如果源列表只有 slow 卷 - 不允许操作,需要通过 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。扫描方法将创建一个 JSON 文件,其中包含所需的信息以及在 OSD 目录中找到的任何内容。

或者,可以将 JSON blob 发送到 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 blob 发送到 stdout

--force

如果 JSON 文件存在于目标位置,则覆盖它

可选位置参数

<DATA DEVICE or OSD DIR>

实际数据分区或正在运行的 OSD 路径

trigger

此子命令不应直接使用,它被 systemd 使用,通过解析来自 systemd 的输入,检测与 OSD 关联的 UUID 和 ID,将输入代理到 ceph-volume simple activate

用法

ceph-volume simple trigger <SYSTEMD-DATA>

systemd “数据”应采用以下格式

<OSD ID>-<OSD UUID>

与 OSD 关联的 JSON 文件需要事先通过扫描(或手动)持久化,以便可以使用所有必需的元数据。

位置参数

<SYSTEMD_DATA>

来自 systemd 单元的数据,包含 OSD 的 ID 和 UUID。

可用性

ceph-volume 是 Ceph 的一部分,Ceph 是一个可大规模扩展的开源分布式存储系统。请参阅 https://docs.ceph.net.cn/ 上的文档以获取更多信息。

另请参阅

ceph-osd(8),

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入