Виртуалки VirtualBox на btrfs

Автор: vik_kr Дата: . Категория: Статьи

Много времени прошло с момента когда появилась btrfs. Она еще в разработке. Плюсов заявлено и уже реализовано море. Тут тебе и сжатие прозрачное и снимки одной командой и еще множество плюшек. Пока нет онлайн дефрагментации, но все же хочется попользовать. На root своего ноута-десктопа давно пользую, уже наверно год. Снапшоты спасают от ломаных пакетов и прочего подобного. У одного знакомого на мининоуте еще дольше, так как на его SSD встроенный ничего толком не влазит, а тут сжатие прозрачное. В общем довольно стабильна эта ФС сегодня. 


Решил я на нее наконец то перетащить свой том с данными. Множество текстовых файлов какие то архивы с исходниками и прочее подобное сжатием пожмется, а по скорости btrfs то же неплоха. Решил да сделал. Все просто отлично конвертировалось, потом дефрагментация, балансировка дерева и свободного места на жестком диске стало на 100Гб больше чем было. Цель была не в свободном месте, его и так меньше чем 200Гб давно не бывало, цель была в скорости доступа. Мощный процессор даже не замечает нагрузки от сжатия данных, но на винте то этих данных в результате хранится в два раза меньше. Отсюда меньше нагрузка на винт и выше скорость доступа. Кстати, если будете переводить ФС на чем то, не конвертируйте, а просто создайте пустую и туда все скопируйте. Дело в том, что дефрагментация и балансировка дерева очень долго идут, а винт все это время пашет как проклятый. Лучше уж временно слить данные на промежуточный и потом обратно.
В общем радовался я, но не долго. У меня на этом томе лежат образы виртуалок нескольких, с ними удобно. Проц (i7) виртуализацию поддерживает, а виртуалки для экспериментов очень полезны. Но на btrfs они отказались работать категорически. Начались какие то бесконечные дисковые операции и все, виртуалка висит что то там переваривая, я не дождался ни разу когда же закончит. 
Естественно я полез искать решение. Рекомендуют опии монтирования: nodatacow и compress=no. Это отключит сжатие томов и CoW режим (самое счастье от этой ФС, помимо снапшотов и прочих RAID-остей), так что меня категорически не устроило. Плюс ко всему даже с этими опциями btrfs и виртуалки (VirtualBox) не уживались нормально все равно. Это конечно недоработка в ФС, не стану тут ее выгораживать.
Как выяснилось, все можно решить не внутри btrfs, а внутри VirtualBox-а! Достаточно включить кэширование в настройках носителя виртуалки и все отлично пашет и со сжатием, и в CoW режиме btrfs. Хотя вроде бы в документации на VirtualBox пишут, что виртуальный SATA контроллер не нуждается в кешировании, в данном случае оно спасает. 

image

P.S. Да, грузятся виртуалки теперь действительно намного шустрее, что и требовалось изначально.