注意

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

batch

该子命令允许在给定设备输入的情况下同时创建多个 OSD。该batch子命令与batch调用。

该子命令基于创建,并将使用完全相同的代码路径。所有batch做的只是计算所有卷的适当大小,并跳过已经创建的卷。

所有ceph-volume lvm create支持的功能,如dmcrypt,避免systemd单位启动,定义 bluestore,都得到支持。

磁盘的自动排序

如果batch只收到一个数据设备列表和其他选项已传递,ceph-volume将根据其旋转属性自动排序磁盘,并使用非旋转磁盘为block.dbjournal,具体取决于使用的对象存储。如果所有设备都要用于独立的 OSD,无论旋转还是固态,请传递--no-auto。例如假设bluestore使用,并且--no-auto未传递,则过时的行为将根据传递的设备部署以下内容:

  1. 所有设备都是旋转的 HDD:每个设备创建 1 个 OSD

  2. 所有设备都是 SSD:每个设备创建 2 个 OSD

  3. 设备是 HDD 和 SSD 的混合:数据放置在旋转设备上,OSDblock.db在 SSD 上创建,尽可能大。

Note

尽管ceph-volume lvm create中的操作允许使用block.wal,但它与auto行为不兼容。

此默认自动排序行为现已弃用,将在未来的版本中更改。相反,除非传递--auto选项,否则设备不会自动排序。

建议使用显式设备列表来block.db,

block.waljournal.

报告

默认情况下batch将打印计算出的 OSD 布局报告并要求用户确认。这可以通过传递--yes.

来覆盖。如果用户想尝试几个调用而不被要求部署--report可以传递。ceph-volume将在打印报告后退出。

考虑以下调用:

$ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1

这将在 NVME 设备上部署三个 OSD 并使用外部dbwal卷。

美观的报告

The pretty报告格式(默认)如下所示:

$ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1
--> passed data devices: 3 physical, 0 LVM
--> relative data size: 1.0
--> passed block_db devices: 1 physical, 0 LVM

Total OSDs: 3

  Type            Path                                                    LV Size         % of device
----------------------------------------------------------------------------------------------------
  data            /dev/sdb                                              300.00 GB         100.00%
  block_db        /dev/nvme0n1                                           66.67 GB         33.33%
----------------------------------------------------------------------------------------------------
  data            /dev/sdc                                              300.00 GB         100.00%
  block_db        /dev/nvme0n1                                           66.67 GB         33.33%
----------------------------------------------------------------------------------------------------
  data            /dev/sdd                                              300.00 GB         100.00%
  block_db        /dev/nvme0n1                                           66.67 GB         33.33%

JSON 报告

报告可以生成结构化输出,具有--format json--format json-pretty:

$ ceph-volume lvm batch --report --format json-pretty /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1
--> passed data devices: 3 physical, 0 LVM
--> relative data size: 1.0
--> passed block_db devices: 1 physical, 0 LVM
[
    {
        "block_db": "/dev/nvme0n1",
        "block_db_size": "66.67 GB",
        "data": "/dev/sdb",
        "data_size": "300.00 GB",
        "encryption": "None"
    },
    {
        "block_db": "/dev/nvme0n1",
        "block_db_size": "66.67 GB",
        "data": "/dev/sdc",
        "data_size": "300.00 GB",
        "encryption": "None"
    },
    {
        "block_db": "/dev/nvme0n1",
        "block_db_size": "66.67 GB",
        "data": "/dev/sdd",
        "data_size": "300.00 GB",
        "encryption": "None"
    }
]

尺寸

当没有传递尺寸参数时,ceph-volume将从传递的设备列表(或使用自动排序时的排序列表)中推导出尺寸。ceph-volume batch将尝试充分利用设备的可用容量。建议依赖自动尺寸。

如果需要对 wal、db 或 journal 设备使用不同的尺寸策略,ceph-volume提供隐式和显式尺寸规则。

隐式尺寸

在设备未充分分配或并非所有数据设备都准备好使用(例如由于磁盘损坏)的情况下,仍然可以依赖ceph-volume自动尺寸。用户可以向ceph-volume指示多少数据设备应将其外部卷放置在快速设备集上。这些选项是:

  • --block-db-slots

  • --block-wal-slots

  • --journal-slots

例如,考虑一个预期包含 5 个数据设备和 1 个 wal/db 卷的 OSD 主机。但是,当前有一个数据设备损坏正在更换。而不是计算 wal/db 卷的显式尺寸,可以简单地调用:

$ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd /dev/sde --db-devices /dev/nvme0n1 --block-db-slots 5

显式尺寸

还可以通过参数向ceph-volume提供显式尺寸

  • --block-db-size

  • --block-wal-size

  • --journal-size

ceph-volume将尝试满足请求的尺寸,考虑到传递的磁盘。如果不可能,将不会部署任何 OSD。

不可逆性和磁盘替换

ceph-volume lvm batch旨在成为幂等的,即重复调用相同的命令必须产生相同的结果。例如调用:

$ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1

将导致部署三个 OSD(如果所有磁盘都可用)。再次调用此命令,您仍然会得到三个 OSD,并且 ceph-volume 将以返回代码 0 退出。

假设 /dev/sdc 损坏并需要更换。在销毁 OSD 并更换硬件后,您可以再次调用相同的命令,并且ceph-volume将检测到只有三个所需的 OSD 中只有两个已设置并重新创建缺失的 OSD。

这种幂等性概念与高级 OSD 服务规范中进行了描述.

由 Ceph 基金会带给您

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