在文件而不是块设备上创建 RAID 阵列

在文件而不是块设备上创建 RAID 阵列

是否可以在文件上创建 RAID 阵列用于测试目的?

假设我想创建一个 1 级 RAID,但我没有例如 10 个块设备来执行此操作,而是想使用文件而不是块设备来模拟它。

到目前为止我所做的是:

fallocate -l 1M disk1
fallocate -l 1M disk2
mkfs.ext4 disk1
mkfs.ext4 disk2
sudo mdadm --create --assume-clean --level=1 --raid-devices=2 /dev/md0 ./disk1 ./disk2

但之后我收到错误:

mdadm: ./disk1 is not a block device.

任何想法?

答案1

您正在寻找的称为循环设备。它使文件显示为设备等/dev/loop0。然后它们可以作为文件系统安装,并且应该与 md 一起使用。从手册页loop(4)

循环设备是一种块设备,它不会将其数据块映射到硬盘或光盘驱动器等物理设备,而是映射到文件系统中常规文件的块或另一个块设备。

参见例如

对于测试需要块设备的东西,LVM 也可能很有用。它允许您从单个物理分区创建多个逻辑卷(或相反),并且销毁/重新创建/调整卷大小也比磁盘分区简单得多。

答案2

你能行的。只需从文件创建一个循环设备并使用该设备来创建数组:

$ dd if=/dev/zero of=mydev count=80 bs=1M
$ sudo losetup -f mydev

您将准备好一个 80M 设备,并且可以在任何需要使用块设备的环境中使用它。

$ sudo losetup -l

会告诉你当前的映射。

相关内容