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

Par*_*avi 5 linux raid mdadm block-device

是否可以在文件上创建 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
Run Code Online (Sandbox Code Playgroud)

但在那之后我得到了错误:

mdadm: ./disk1 is not a block device.
Run Code Online (Sandbox Code Playgroud)

任何的想法?

ilk*_*chu 6

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

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

见例如

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