Крис Мэйсон (Chris Mason), автор файловой системы Btrfs, сообщил об интеграции в основной git-репозиторий проекта экспериментальной реализации RAID5 и RAID6, встроенной в Btrfs. Поддержка RAID5/6 доступна для тестирования в рамках ветки raid56-experimental, созданной как для компонентов Btrfs уровня ядра, так и для набора утилит btrfs-progs.
Хотя реализация RAID5/6 во многом похожа на MD raid, встраивание поддержки RAID в Btrfs имеет ряд преимуществ. Например, имеется возможность применения разных уровней RAID к метаданным и непосредственно хранимым данным, или можно инициировать частичное перестроение RAID в случае выявления несоответствия контрольных сумм в процессе работы файловой системы. Появляется возможность выполнения таких операций, как перестановка данных между дисками (restriping) или добавление/удаление дисков в привязке к транзакциям в файловой системе. Планируется обеспечить привязку логики работы RAID к состоянию метаданных btrfs, например, в процессе функционирования RAID пропускать операции чтения для блоков, не задействованных в файловой системе.
При тестировании реализация RAID5/6 в Btrfs опередила по производительности MD raid, в основном, благодаря устранению некоторых узких мест и задействованию таких особенностей, как переработанный кэш распределения данных по дискам (Stripe cache), поддержка слияния частичных stripe-операций и вычисления контрольных сумм без задержки, в синхронном режиме. Кроме того, отмечается меньшая эффективность кэширования в MD, приводящая к большему числу операций чтения с дисков.
Из пока не реализованных, но запланированных на ближайшее время возможностей отмечается поддержка операции scrub для проверки наличия bad-блоков на входящих в RAID дисках; поддержка операции TRIM (discard), которая позволит увеличить производительность при работе с SSD-накопителями и повысить их срок службы; добавление в набор утилит поддержки частичного перестроения RAID (parity rebuild); возможность множественного зеркалирования (тройное зеркало из RAID1).
>>> Подробности