Реализация RAID-i с использованием RAID-0 и FUSE

Предположим, у меня есть 2 диска, настроенных с использованием RAID-0 (только чередование), подключенных к linux box через контроллер RAID. Так что в основном я вижу один большой раздел. Когда я пишу файл, содержащий два блока (A|B), на диске 1 будет храниться A, а на диске 2 будет храниться B.

Теперь предположим, что я хочу реализовать RAID-1 (зеркалирование) для того, чтобы поиграть на этих двух дисках. Могу ли я использовать FUSE для этого? Я представляю себе следующий путь: предположим, что моя реализация плавкого предохранителя получает файл из трех блоков (A | B) для записи, теперь я вместо этого напишу (A|A|B|B), чтобы A дважды записывалось на диск 1 и B дважды записывается на диск 2.

Я хочу поиграть с некоторыми кодами стирания и схемами RAID, и я хочу контролировать то, что я пишу на диски. Я не хочу возиться с программным RAID, так что это выглядит как более простой подход.

Будет ли это даже работать, я должен знать что-нибудь об этом? Обратите внимание, что можно предположить, что я буду знать размеры блоков, и что я буду делать заполнение нулями, когда это уместно.

1 ответ

Решение

FUSE не совсем подходящий способ сделать это. Он предназначен для использования в файловой системе, и это не совсем то, что вы пытаетесь сделать здесь - FUSE будет передавать вам такие события, как "получить все файлы в этом каталоге", что значительно выше, чем вы. после. (Вы, вероятно, предпочли бы иметь простые события, такие как "прочитать этот блок".)

Есть проект, позволяющий реализовать блочное устройство в пользовательском пространстве ( BUSE), но он довольно предварительный. Я не уверен, насколько хорошо это будет работать для этого.

Другие вопросы по тегам