Comments 59
Аналогично подумал, когда прочитал этот абзац. Зачем рассказывать о ФС, которые способна необратимо потерять информацию из-за собственных багов. Может конечно это привлечет кого-нибудь для помощи в разработке, но с такой ситуацией пользоваться ей вообще желания нет.
Потеря данных так или иначе нештатная ситуация и потому всегда стоит уменьшать вероятность подобного исхода, в противном случае это прямая дорога в ад.
Как Бекапилка позволит мне узнать, что 1 из миллиона файлов потерян?
Пока утилита восстановления, извините, сегфолтится при попытке такое починить, Btrfs получает официальный бейдж БАРАХЛО-ФС.
ИМХО в данном случае не стоит валить всё в одну кучу. Управление томами отдельно, ФС отдельно.
Совсем недавно она перешла из статуса «еще не пригодно» в статус «стабильна».
Скорее из статуса «еще не пригодно» в статус «уже не пригодно». RH задепрекейтила Btrfs и обещает совсем дропнуть в будущем.
Может, это и подтолкнет btrfs к качественному скачку в стабильности.
Сомнительно, разработчики уйдут, пользовательская база станет меньше, с чего вдруг должен возникнуть этот скачок. Если за предыдущие годы, пока была поддержка со стороны RH, и в Suse тоже как дефолтная система использовалась, так и не довели до ума, то теперь шансов еще меньше.
Что касается Stratis, посмотрим, конечно, что из этого получится. Но всё таки это не новая ФС, это по факту dev-mapper + XFS.
929 Chris Mason <chris.mason@oracle.com>
655 David Sterba <dsterba@suse.com>
394 Linus Torvalds <torvalds@linux-foundation.org>
392 Nikolay Borisov <nborisov@suse.com>
357 Filipe Manana <fdmanana@suse.com>
312 Liu Bo <bo.li.liu@oracle.com>
312 Miao Xie <miaox@cn.fujitsu.com>
303 Josef Bacik <josef@redhat.com>
265 Josef Bacik <jbacik@fusionio.com>
208 Anand Jain <anand.jain@oracle.com>
205 David Sterba <dsterba@suse.cz>
155 Qu Wenruo <wqu@suse.com>
147 Jeff Mahoney <jeffm@suse.com>
147 Qu Wenruo <quwenruo@cn.fujitsu.com>
142 Josef Bacik <jbacik@fb.com>
128 Al Viro <viro@zeniv.linux.org.uk>
113 Chris Mason <clm@fb.com>
105 Stefan Behrens <sbehrens@giantdisaster.de>
— в отличие от BTRFS использование в контейнерах ограничено: нельзя внутри контейнера создать или удалить вложенный volume — в BTRFS можно;
— недавний конфликт с разработчиками ядра из-за несовместимой лицензии, из-за чего из ветки 5.х выпилили необходимые для ZFS функции, из-за чего производительность снизится. однако это проблему скорее всего обойдут, если не уже обошли, реализацией этих функций на стороне ZFS.
Замечу, что если попытаться удалить сабвольюм средствами файлового менеджера или утилиты rm, то операция завершится с ошибкой operation not permitted (операция не разрешена).
BTRFS выбрана прежде всего ради удобных снапшотов. Все файлы синхронизируются с различными облаками и нужна была версионность, чтобы при необходимости откатить нежелательные правки / случаи порчи данных, которые благодаря облачной синхронизации моментально расползаются на все машины. А ZFS на момент выбора не прокатывала из-за её аппетита к RAM.
Снапшоты делаются с помощью snapper. Раз в месяц запускается btrfs scrub, проверяющий те самые контрольные суммы, которые в статье упомянуты (а вот scrub почему-то нет). Это весомый дополнительный бонус, гарантия от случайного повреждения данных, каковое на таких объёмах весьма вероятно.
Поломал я её до состояния «всё снести и выкачать из облака заново» один раз, и то по своему собственному невежеству, т.к. в лоб запустил btrfsck, которую вообще запускать не надо. Потом почитал про то, как надо, и больше так не буду (в том случае надо было сделать btrfs-zero-log)
В общем, выбором доволен. Если бы выбирал с нуля — сейчас, когда на домашнем сервере уже 96 Гб RAM, а не 8 Гб, как было 4 года назад, может, выбрал бы и ZFS. Но повода менять уже настроенное и работающее решение не вижу.
Но да, у меня это как минимум третья, а для части данных и четвёртая копия, так что даже самый катастрофический сценарий к безвозвратной потере данных не приводит.
Если на btrfs закончилось место, то даже удаление какого-либо файла может вызывать ошибку «No space left on device». Для решения рекомендуется подключить к btrfs временный накопитель размерами желательно не менее 1GB. После чего произвести чистку данных. Затем удалить временный накопитель.
Как-то приходилось скачивать большие файлы, а потом их удалять. Первый раз, увидел такую картину, что половина диска свободна, а записать новый файл не могу — место закончилось. Трюк с подключением временного внешнего диска нашел не сразу, но он много раз спасал, когда я забывал вовремя балансировку запускать. Может сейчас получше с ней, но уже года 2 как ext4 обратно перешел.
Хотелось бы услышать какой вариант для Вас наиболее предпочтителен. Обоснование обязательно.
А синтаксис немного другой
# btrfs subvolume snapshot -r /path/to/subvol /path/to/snapshot
# btrfs --version
btrfs-progs v4.9.1
Странно, но не работает ключ --resizefs
# lvextend -L16G centos/dev --resizefs
fsadm: Filesystem "btrfs" on device "/dev/mapper/centos-dev" is not supported by this tool.
Filesystem check failed.
Взамен приходится делать
# lvextend -L16G centos/dev
# btrfs filesystem resize max /mnt/dev
Если на btrfs закончилось место, то даже удаление какого-либо файла может вызывать ошибку «No space left on device». Для решения рекомендуется подключить к btrfs временный накопитель размерами желательно не менее 1GB. После чего произвести чистку данных. Затем удалить временный накопитель.
Пробовал несколько раз — все прекрасно удаляется (спасибо системному резерву). Даже создать снапшот можно.
Большое спасибо за ликбез! Сейчас хочу начать пользоваться UNRAID взамен виндового сервера, а т.к. в никсах совсем ноль, то приходится гуглить, какую ФС выбрать для хранения данных XFS или BTRFS. Ваша статья дала представление о второй. Правда в отличие от NTFS, которую может восстановить полно софта, то не ясно какую из этих двух брать на случай сбоев с восстановлением данных.
BTRFS для самых маленьких