如何创建和挂载作为合法未格式化磁盘传递的假块设备(使用大文件/磁盘映像)?
我正在尝试在我的业余爱好kubernetes集群中使用卡夫 (一个分布式存储系统)来设置C5。C年会需要一个未格式化的块设备。,它将根据自己认为合适的情况进行分区并用于存储。
我没有可用的备用磁盘,所以我想:为什么我不创建一个回环设备并使用它呢?
由于我的主机OS磁盘有足够的空闲空间,我应该能够在上面创建一个大文件,并将其作为回送设备挂载。
这方面有两个问题(据我理解):
lsblk -f来测试设备是否符合Ceph的要求。设备必须显示在输出中,并且没有在它们上格式化任何文件系统。发布于 2021-10-20 18:59:22
losetup会为你这么做的。如果您有一个未使用的循环设备/dev/ loop 0:
# Make the file
head -c 10240 /dev/zero > /tmp/zeroes
# Use it as a block device
sudo losetup /dev/loop0 /tmp/zeroes
# Remove the device
sudo losetup -d /dev/loop0发布于 2021-10-20 19:00:00
为了安装,必须用某种文件系统对回送设备进行格式化。
如果要挂载每个块设备,必须对其进行格式化。实际上,您正在挂载文件系统,而不是块设备本身,因此这是没有意义的。您只需要一个文件,然后使用losetup -f disk.img创建一个循环设备,仅此而已。循环设备是块设备,在lsblk输出中是可见的,因此Ceph应该能够使用它。
$ dd if=/dev/zero of=disk.img bs=1M count=100
$ sudo losetup -f disk.img
$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0
...如果不能使用循环设备,则可以使用靶标创建一个更有说服力的文件支持块设备,该设备看起来像普通的SCSI驱动器。
# targetcli /backstores/fileio/ create test disk.img
# targetcli /loopback create
Created target naa.50014050efbb30e0.
# targetcli /loopback/naa.50014050efbb30e0/luns create /backstores/fileio/test它创建一个新的(假的)磁盘,该磁盘由我为上面创建的循环设备创建的文件支持:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 100M 0 loop
...
sdb 8:16 0 100M 0 disk
...https://unix.stackexchange.com/questions/674082
复制相似问题