如何在循环设备上为 Ceph 创建 osd
How to create osd for Ceph on loop device
我正在 Vagrant 环境中使用 Ceph 并尝试创建一些最小集群。
我有两个节点:'master' & 'slave'
作为管理员、班长、经理掌握。
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准备存储呢?
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
我正在 Vagrant 环境中使用 Ceph 并尝试创建一些最小集群。 我有两个节点:'master' & 'slave' 作为管理员、班长、经理掌握。 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准备存储呢?
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