我在流浪汉环境中玩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准备存储?
答案 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