注意
本文档适用于 Ceph 开发版本。
batch
该子命令允许在给定设备输入的情况下同时创建多个 OSD。该batch
子命令与batch
调用。
该子命令基于创建,并将使用完全相同的代码路径。所有batch
做的只是计算所有卷的适当大小,并跳过已经创建的卷。
所有ceph-volume lvm create
支持的功能,如dmcrypt
,避免systemd
单位启动,定义 bluestore,都得到支持。
磁盘的自动排序
如果batch
只收到一个数据设备列表和其他选项已传递,ceph-volume
将根据其旋转属性自动排序磁盘,并使用非旋转磁盘为block.db
或journal
,具体取决于使用的对象存储。如果所有设备都要用于独立的 OSD,无论旋转还是固态,请传递--no-auto
。例如假设bluestore使用,并且--no-auto
未传递,则过时的行为将根据传递的设备部署以下内容:
所有设备都是旋转的 HDD:每个设备创建 1 个 OSD
所有设备都是 SSD:每个设备创建 2 个 OSD
设备是 HDD 和 SSD 的混合:数据放置在旋转设备上,OSD
block.db
在 SSD 上创建,尽可能大。
Note
尽管ceph-volume lvm create
中的操作允许使用block.wal
,但它与auto
行为不兼容。
此默认自动排序行为现已弃用,将在未来的版本中更改。相反,除非传递--auto
选项,否则设备不会自动排序。
- 建议使用显式设备列表来
block.db
, block.wal
和journal
.
报告
默认情况下batch
将打印计算出的 OSD 布局报告并要求用户确认。这可以通过传递--yes
.
来覆盖。如果用户想尝试几个调用而不被要求部署--report
可以传递。ceph-volume
将在打印报告后退出。
考虑以下调用:
$ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1
这将在 NVME 设备上部署三个 OSD 并使用外部db
和wal
卷。
美观的报告
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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.