Крис Мейсон (Chris Mason), автор файловой системы Btrfs, сообщил об интеграцию в основной Git-репозиторий проекта экспериментальной реализации RAID5 и RAID6, встроенной в Btrfs. Поддержка RAID5/6 доступна для тестирования в рамках ветки raid56-experimental, созданной как для компонентов Btrfs уровня ядра, так и для набора утилит btrfs-progs.
Отмечается, что хотя реализация RAID5/6 во многом похожа на MD raid, встраивание поддержки RAID в Btrfs имеет ряд преимуществ. Например, имеется возможность применения разных уровней RAID к метаданным и непосредственно хранимым данным или можно инициировать частичное перестроение RAID в случае выявления несоответствия контрольных сумм в процессе работы ФС. Кроме того, появляется возможность выполнения таких операций как перестановка данных между дисками (restriping) или добавление/удаление дисков в привязке к транзакциям в ФС. В будущем планируется обеспечить привязку логики работы RAID к состоянию метаданных ФС, например, в процессе фуекционирования RAID пропускать операции чтения для блоков, не задействованных в ФС.
В процессе тестирования реализация RAID5/6 в Btrfs заметно опередила по производительности MD raid, в основном благодаря устранению некоторых узких мест и задействованию таких особенностей как переработанный кэш распределения данных по дискам (Stripe cache), поддержка слияния частичных stripe-операций, вычисления контрольных сумм в синхронном режиме. Кроме того, отмечается меньшая эффективность кэширования в MD, приводящая к большему числу операций чтения с дисков.
При оценке работы системы с 4 дисками и 2 накопителями fusionio, RAID5/6 в Btrfs при линейном копировании большого файла продемонстрировал пропускную способность 604MB/s, в то время как пропускная способность MD raid составила 162MB/s. Скорость чтения в Btrfs составила 380MB/s, а MD - 174MB/s (примечательно, что для MD скорость записи и чтения одинаковая, а для Btrfs отличается примерно в два раза). Тест на создание 12 млн файлов был выполнен для Btrfs raid5 за 226, а реализации на базе MD затратила 485 секунд.
Из пока не реализованных, но запланированных на ближайшее время возможностей отмечается поддержка операции scrub для проверки наличия bad-блоков на входящих в RAID дисков; поддержка операции TRIM (discard), которая позволит увеличить производительность при работе с SSD-накопителями и повысить их срок службы; добавление в набор утилит поддержки частичного перестроения RAID (parity rebuild); возможность множественного зеркалирования (тройное зеркало из RAID1).