如何在循环设备上为ceph创建osd

时间:2018-02-14 10:25:04

标签: ceph

我在流浪汉环境中玩ceph&试图创建一些最小的集群。 我有两个节点:'master'和amp; '奴隶' 掌握管理员,监督员,经理。 奴隶为osd。

我正在关注官方的ceph部署指南&面对OSD创建的问题。 在从节点上,我创建了一些10Gb环路设备&将它安装到/ media / vdevice 然后在主节点上我试图创建OSD:

ceph-deploy osd create slave1:loop0

失败了:

...
[slave1][WARNIN]   File "/usr/lib/python2.7/dist-packages/ceph_disk/main.py", line 956, in verify_not_in_use
[slave1][WARNIN]     raise Error('Device is mounted', dev)
[slave1][WARNIN] ceph_disk.main.Error: Error: Device is mounted: /dev/loop0
[slave1][ERROR ] RuntimeError: command returned non-zero exit status: 1
[ceph_deploy.osd][ERROR ] Failed to execute command: /usr/sbin/ceph-disk -v prepare --cluster ceph --fs-type xfs -- /dev/loop0
[ceph_deploy][ERROR ] GenericError: Failed to create 1 OSDs

如果未安装loop0,则失败并显示:

[slave1][WARNIN] ceph_disk.main.Error: Error: /dev/loop0 device size (0M) is not big enough for data
[slave1][ERROR ] RuntimeError: command returned non-zero exit status: 1
[ceph_deploy.osd][ERROR ] Failed to execute command: /usr/sbin/ceph-disk -v prepare --cluster ceph --fs-type xfs -- /dev/loop0
[ceph_deploy][ERROR ] GenericError: Failed to create 1 OSDs

这是有意义的,因为实际存储没有绑定到系统。 那么我们如何为OSD准备存储?

1 个答案:

答案 0 :(得分:2)

Ceph需要OSD上的块设备。要将磁盘映像文件转换为环回块设备,您可以使用losetup实用程序。

sudo losetup /dev/loop0 /your/10GB/file.img

此命令将磁盘映像文件附加到/dev/loop0设备节点,创建可与Ceph一起使用的环回块设备。

如果需要从设备节点分离图像文件,可以执行

sudo losetup -d /dev/loop0

请注意,默认情况下,Ceph每台设备保留100 MB,因此您必须确保图像文件大小大于此值。您可以使用

创建合适的图像文件
dd if=/dev/zero of=/cephfs/vdisk.img count=1 bs=10G