> Вообще от бтрфс нет впечатления, что это быстрая добротная фс. Слишком много
> костылей - то воткнут ущербный онлайн дефрагментатор, чтоб не деградировала скорость
> записи при работе с мелкими файлами, Вообще-то, CoW дизайн по определению предполагает фрагментацию: изменения в файле пишутся в сторону, т.е. являются фрагментом. А поскольку для удаления снапшотов все-равно нужен механизм garbage collector-а, логично его до кучи немного соптимизировать. Заставить не просто прибивать неиспользуемые блоки, но и попутно раскладывать их более оптимально. Раз уж полезли их лопатить - почему не оптимизировать их размещение для ускорения то?!
Вариантов решения этой проблемы CoW дизайна есть два:
1) Забить на проблему и сделать вид что ее нет, как санки в zfs. Пустить маркетологов вещать как все здорово и так далее. Ну а для компенсации тормозов диска с этой вермишелью потреовать десяток-другой гигз озу. В надежде что запись сперва моментом ухнет в озу а потом всяко как-нибудь выдавится на блины, а то что скорость будет дрянь - типа замаскировали огромным буфером в озу.
2) А можно не класть на проблему а при удалении неиспользуемых блоков снапшотов попутно еще и размещение файлов соптимизировать - похожая по смыслу операция, логично совместить.
> то вскрываются проблемы при работе с виртуальными машинами(тормозят на ней жутко).
Дело в том что их дисковые файлы в некоторых форматах тоже реализуют технику copy on write, тоже для снапшотов. Поэтому может выйти так что делается двойная работа: сперва CoW сделает программа а потом еще и файловая система. Но с этим эффектом вполне можно бороться и борятся.
> Вообще, если почитать те же федоралисты, то видно, что с бтрфс много проблем
> у юзеров, в основном это тормоза. Я сам как-то пробовал ее - десктоп стал
> грузится в разы дольше. Снес, списав на сырость, но совсем недавно
> прочитал подобный отзыв. Лол.
А вы попробуйте полное журналирование в ext3/4 включить и посмотрите как там будет со скоростью работы :))). А то конечно, журналя только метаданные легко пиндеть что CoW тормозит. Правда вот при столь читерском журналинге если запись прервется на середине - вы на этом самом EXT с журналингом только метаданных получите полуперезаписанный файл. Структуры ФС описывающие его будут корректны. Файл прочтется без ошибок. Только это будет смесь старого и нового содержимого, а что вы будете с этим месивом делать - файловую систему при таком журналировании не интересует. Поэтому для надежной записи файлов без шанса на вот такое - программам приходится жутко извращаться с записью в временный файл и потом стирать старый файл и переименовывать в него новый временный файл. В случае с CoW все это становится несколько излишне, файловая система начинает работать так как оно и должно было бы быть с самого начала.