注意

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

batch

此子命令允许根据给定的设备输入同时创建多个 OSD。batch 子命令与驱动器组密切相关。单个驱动器组规范对应于单个 batch 调用。

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

ceph-volume lvm create 支持的所有功能,例如 dmcrypt、避免 systemd 单元启动、定义 bluestore,都受支持。

磁盘自动排序

如果 batch 仅接收单个数据设备列表并传递其他选项,ceph-volume 将根据其旋转属性自动对磁盘进行排序,并根据使用的对象存储使用非旋转磁盘作为 block.dbjournal。如果所有设备都用于独立 OSD,无论是否旋转或固态,请传递 --no-auto。例如,假设使用 bluestore 并且未传递 --no-auto,则不推荐使用的行为将根据传递的设备部署以下内容

  1. 设备全部为旋转硬盘:为每个设备创建一个 OSD

  2. 设备全部为 SSD:为每个设备创建两个 OSD

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

注意

虽然 ceph-volume lvm create 中的操作允许使用 block.wal,但 auto 行为不支持它。

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

建议使用 block.db 的显式设备列表、

block.waljournal

报告

默认情况下,batch 将打印计算出的 OSD 布局报告,并要求用户确认。可以通过传递 --yes 来覆盖此设置。

如果想要尝试多次调用而不被要求部署,可以传递 --reportceph-volume 将在打印报告后退出。

考虑以下调用

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

这将在 NVME 设备上部署三个具有外部 dbwal 卷的 OSD。

美观的报告

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

例如,考虑一个 OSD 主机,它应该包含 5 个数据设备和一个用于 wal/db 卷的设备。然而,一个数据设备目前损坏并正在更换。无需计算 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 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入