Опции монтирования (в качестве устройства указать одно из блочных устройств, парные опции с/без no- в ядре 3.14):
- degraded (позволяет монтировать файловую систему при отказе одного из блочных устройств)
- recovery (ядро 3.2; автоматическое восстановление со сканированием подходящих предыдущих корней)
- rescan_uuid_tree (ядро 3.12)
- subvol=имя-подтома (монтирование поддерева; до ядра 3.2 подтом д.б. в корне)
- subvolid=идентификатор-подтома (монтирование поддерева; корень имеет идентификатор 5)
- device=устройство (сканировать устройство в поисках томов btrfs; только сканировать! перечислить все устройства в /etc/fstab, если initrd не выполняет «btrfs device scan»)
- nodatasum (для новых файлов; не обрабатывать контрольные суммы для данных)
- nodatacow (для новых файлов; ускорение — 5% на последовательных операциях, значительное ускорение при работе с базами данных, также отключается сжатие и подсчёт контрольных сумм)
- nobarrier (возможно разрушение всей файловой системы, а fsck примитивен; многодисковость учитывается с ядра 3.2)
- max_inline=байт (максимальный размер данных, встраиваемых непосредственно в метаданные; по умолчанию 8192; для 4К страниц = 3900)
- alloc_start= (начало выделения места на диске?)
- thread_pool=число-параллельных-потоков (по умолчанию — min(количество-ядер+2,8), при использовании сжатия обязательно увеличить)
- compress[=zlib|=lzo|=no] (lzo с ядра 2.6.39; no с ядра 3.6)
- compress-force[=zlib|=lzo] (сжимать даже плохосжимаемые файлы)
- zlib
- ssd (оптимизация выделения блоков для SSD — сразу для всех устройств? автоматически проверяет /sys/block/*/queue/rotational; TRIM надо включать отдельно)
- nossd
- ssd_spread (попытка выделять большими кусками; приводит к усиленной фрагментации)
- discard (выдавать команды TRIM/discard при освобождении блоков; замедлит работу для SATA до 3.1; вместо этого можно переодически использовать fstrim)
- noacl
- notreelog (в теории дерево журналов уменьшает количество операций записи метаданных при fsync, но на практике без него случайная запись больших файлов ускоряется в 5 раз для ядер до 3.0.2; если программа полагалась на fsync, то возможны проблемы)
- flushoncommit (при завершении транзакции осуществлять все отложенные выделения блоков; в новых ядрах включено по умолчанию)
- metadata_ratio=8 (распределение места на данные и метаданные было (?) фиксированно и если место под метаданные заканчивалось, а под данные — нет, то надо было поставить число поменьше; необходимо учитывать степень сжатия)
- space_cache (хранение битовой карты свободного места на диске (без CoW и контрольной суммы), размонтирование больше времени, с 2.6.37, неустойчиво работает в RHEL7, ядро 3.10)
- clear_cache (если ранее использовался space_cache и хотим от него избавиться, с 2.6.37)
- nospace_cache (с ядра 3.2; вычислять битовую карту свободного места при монтировании — 10 минут)
- enospc_debug (выдать отладочную печать при возникновении события «недостаток места на устройстве»; рекомендуется, не замедляет работу)
- user_subvol_rm_allowed (позволять пользователям удалять подтома, с ядра 2.6.37)
- autodefrag (запуск фоновой дефрагментации, несовместим с большими БД и образами виртуальных машин, с 3.0)
- inode_cache (кешировать свободные inode, с 3.0; не рекомендуется, пока число inode не достигнет 2^64; обычное поведение — добавлять 1 для каждого нового файла, использованный inode повторно не использовать
- check_int, check_int_data, check_int_print_mask=маска (ядро 3.3; проверка метаданных на ходу; замедляет работу, использовать только для отладки)
- commit=секунд (30; с ядра 3.12; интервал сброса кеша записи на диск и формирования «точки отката» на случай сбоев и ошибок)
- fatal_errors={bug|panic} (с ядра 3.4; хрен редьки не слаще)
- skip_balance (с ядра 3.3; не возобновлять балансировку)
Не надо провоцировать запуск fsck в /etc/fstab, поставьте в конце строки «0 0».
Утилита управления btrfs