Создание массивов RAID на файлах вместо блочных устройств

Можно ли создать массив RAID на файлах для целей тестирования?

Предположим, я хочу создать RAID уровня 1, и у меня нет, например, 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.

Есть идеи?

5
28.06.2020, 23:35
2 ответа

То, что вы ищете, называется петлевым устройством. Это делает файлы видимыми как устройства, такие как /dev/loop0и т. д. Затем они могут быть смонтированы как файловые системы и должны работать с md. Со страницы руководстваloop(4):

The loop device is a block device that maps its data blocks not to a physical device such as a hard disk or optical disk drive, but to the blocks of a regular file in a filesystem or to another block device.

См., например,.

Для тестирования вещей, которым нужны блочные устройства, LVM также может быть полезен. Он позволяет создавать несколько логических томов из одного физического раздела (или наоборот ). Кроме того, уничтожение/воссоздание/изменение размера томов намного проще, чем с дисковыми разделами.

6
18.03.2021, 23:24

Вы можете сделать это. Просто создайте петлевое устройство из файла и используйте это устройство для создания массива :

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

У вас будет готово устройство 80M, и вы сможете использовать его в любом контексте, где бы вы использовали блочное устройство.

$ sudo losetup -l

Сообщит вам текущее отображение.

3
18.03.2021, 23:24

Теги

Похожие вопросы