Я читал, что BTRFS требует как минимум 4 диска ( https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices ). Действительно, для Linux mdadm raid10 требуется только 2 диска ( http://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10 ). Есть ли что-то вроде "raid10, f2", предоставляемое Linux mdadm в BTRFS? Я хотел бы, чтобы возможность контрольной суммы была встроена в массив raid, если это возможно.
Linux raid10 на btrfs
1 ответ
Ну, четыре - это наименьшее количество устройств, для которых RAID10 имеет смысл.
Поскольку для этого требуется зеркалирование, вам нужно четное количество дисков, а если у вас только два диска, то у вас есть только зеркало, которое представляет собой массив RAID1.
Да, они могут разрешить двухдисковый массив RAID10, но он будет в точности эквивалентен двухдисковому массиву RAID1, поэтому я полагаю, что они просто решили не разрешать эту опцию.
Это деталь реализации программного Linux-RAID, который там тестируется - нет необходимости в такой разнице, если чтения распределяются по обоим зеркалам. Вы, конечно, не можете экстраполировать это на btrfs, так как btrfs делает RAID совершенно другим способом.
Если у вас нечетное количество дисков, теоретически вы также можете зеркалировать данные, это просто означает, что данные одного диска будут зеркально отображены на несколько других дисков. Если вы зеркалируете на уровне блоков (что делает btrfs), то это не должно быть проблемой, верно?
Тем не менее, я только что попробовал, и btrfs не позволит мне создать raid10 с 3 устройствами. Оо. Ах хорошо.
На самом деле, нет. Посмотрите на https://raid.wiki.kernel.org/index.php/Performance. mdadm "raid10, f2" (который мне интересен) работает как RAID0 при чтении и как RAID1 при записи. RAID1 намного медленнее в чтении. Вот почему «raid10, f2» почти всегда лучше, чем RAID1 в mdadm. Возможно ли иметь что-то вроде "raid10, f2" с BTRFS?