Сколько лет прошло, думал BTRFS довели до ума, решил использовать её в продакешене, но прошло два дня и …
2 недели тестировал все возможные способы репликации виртуальных машин с одного места в другое, без простоя. Протестировал кучу разных способов и остановился на BTRFS, как на единстрвенной COW которая не ест SSD. Кстати, фанатам ZFS ничего не скажу, живите спокойно в блаженном неведении :)
Что я проверил:
- ZFS, мучал около недели, как быстродействием так и оверхедом на диск не доволен, ещё RAM жрёт, а без RAM совсем печально всё. Мне не подходит, так как вся RAM отдаётся виртуалкам, хосту с ZFS ничего не останется, почти.
- LVM, да, у неё есть возможность как у ZFS сделать онлайн инкрементальную реприкацию, почти как в zfs send/recieve, но об этом мало известно. Отказался из-за чудовищно низкой скорости при наличи снапшотов, которые необходимы для репликации, в остальном терпимо.
- LVM thin, очень похожа на ZFS, те-же недостатки, мало тестировал
- BTRFS - почти не ест SSD, огромные проблемы с фрагмантацией, но я нашел способ их решить, поэтому остановился на ней
Дано:
- сервер с qemu/libvirt, Debian bookworm
- одна виртуалка, с ext4 mysql innodb блекджеком и шл ну в общем сайт PHP, данных всего 100Гб, довольно активная - 20ГБ записей на диск в сутки, диск, 70% из них блоками <=4k, 20% 8k, и так далее. Как видите много random write. RAW диск виртуалки на разделе BTRFS.
Перенёс всё со старого хоста ext4 на новую виртуалочку с RAW на btrfs разделе. Всё работало полтора дня и началось:
- начали биться индексы у таблиц
- данные в таблицах начали исчезать Долго не терпел, сразу всё откатил назад, у юзеров стресс, пьют валериану.
Не ожидал такого. Запустил btrfs scrub - ошибок не обнаружено. Да как так то? BTRFS raid1, значит ошибка внутри BTRFS или в интерфейсе между KVM и BTRFS.
Вот такой вот опыт.
А я уже и дефрагментатор для неё новый написал, офигенный, который не жрёт ни диск ни SSD, но видимо не судьба.
Игрался со снапшотами создавал, удалял, создавал, удалял, в общем тестировал дефрагментатор на снапшотах, основной раздел с виртуалкой не трогал, возможно это повлияло, хотя значения не имеет, сломать основной раздел я не мог никак, значит где-то баг в BTRFS.
Что теперь делать даже не знаю, рисковать с BTRFS больше не хочу, а других подходящих COW c онлайн репликацией снапшотами не существует …