Δαρθ
вот может кому интересно будет, потестил тут zfs vs btrfs на ssd в качестве root раздела. суть теста -- читаем все файлы типичного рут-раздела с холодными кешами. ~14 гигабайт, ~500 тыщ файлов. читаю при помощи time tar -c /path/ >/dev/null
Δαρθ
итак, холодные кеши:
zfs: 3.8 секунд, btrfs: 3.3 секунды
прогретые кеши (т.е. всё из RAM)
zfs: 1.3 секунды, btrfs: 0.9 секунд
George
Видимо было дёшево дать управлять им для данных тоже
Василий
Видимо было дёшево дать управлять им для данных тоже
С этим согласен, с тем что выше, могу сказать, что странные люди. Грубо говоря, два диска по 1тб стоят где как один на 2тб. Но общая надёжность зеркала будет выше и скорость выше, а полезная ёмкость одинаковая.
Пока вижу только вариант, что нет свободных портов для дисков, но это не особо на прод похоже
George
George
Zfs не только на серверах:)
Fedor
Опенсолярку давно на свой ставил
Fedor
Иллюмос тоже
Fedor
Работает через задницу, но работает - эксперимент удался 😁
Василий
Иллюмос тоже
Не не. Эту ж фичу впилили на обычной солярке. Так что какую то цель последовали этм злые поклонники солнца
Василий
Я бы понял, если бы она появилась в озфс, но ее не было в обычной. Так нет же. Есть
Fedor
Зфс планировалась не только, как серверная, насколько помню
Fedor
😁😁😁👍
George
А по поводу перформанса под бд - минимум delphix (одна из компаний с наибОльшим количеством разрабов openzfs и ex-sunовцев) использует и продаёт zfs именно для бд
George
Забавности в воскресный вечер)
Serega
Василий
central
Василий
а что не так?
а то что нормальные бд, данные и транзакции рекомендуют хранить на разных массивах, а снапшот разных массивов операция не атомарная
Василий
да и слать куда то не консистентное состояни базы данных через фс, при наличии нормальной репликации средствами базы данных - так себе решение
Василий
грубо говоря, какая нить команда, update x set c=c+100, поменят пару терабайт на массиве и будет через сенд слаться сутки на другой массив
Evgenii
Evgenii
Зато на приемнике не нужна запущенная база, ему не нужно повторять логику запроса, нагружать процессор, выполняя логику запроса на реплики и самое главное - это просто настроить и поддерживать, в отличие от реплика сета внутри базы
Sergey
Василий
Василий
не забывай, это бд, и у нее свои буферы
Василий
Василий
грубо говоря, снапшот это выключение питания, в ближайшей аналогии. в 99% случаев все хорошо (если это не асинхрон)
Sergey
как?
Например, на mysql это делается так: flush tables with read lock;
Sergey
после создания снапшота - unlock tables;
Sergey
на других субд есть аналогичные механизмы
Василий
ну ок. вариант. хотя что то мне подсказывает, что в кровавом энтерпрайзе, так не используют
Andrey
У вас упрощенное представление о том, что есть БД и как она работает. Это не набор файлов, как в файлопомойке. Oracle прекрасно снапшотится и создаются клоны, никаких проблем не наблюдается. Они же выпускают zfssa - хранилище для БД, которое используется,например, в exadata. Точно так же не видно проблем с снапшотами на Postgres. Просто нужно уметь готовить
Andrey
Используют - используют, еще как
Andrey
Либо снапшоты на уровне дисковой системы, если таковая есть, либо, например тот же ZFS
Sergey
mssql вообще умеет пофайлово бекапиться за счёт поддержки shadow copy
Василий
Andrey
ms sql под это дело мало подходит - это из другой реальности
Василий
тоже самое с ораклом наверняка
Василий
а вот всякие мускли и постргессы врядли
Andrey
хотя если запускать ms sql на linux - то вполне себе можно делать снапшоты и клогы, быстро, буквально минута независимо от размера БД
Василий
Andrey
дык oracle тоже в общем-то бэкапится только rman на горячую, все что карсивое и с кнопками - это обертка вокруг rman
Evgenii
атомарно на разных вольюмах?
zfs может делать снимок дерева волюмов атомарно. Это будет ровно одна операция на файловой системе - 1 транзакция.
Василий
Василий
Sergey
при бекапе НЕ средствами mssql
Evgenii
Andrey
ну вижу проблем - при старте БД будет rollback/rollforward до последней закоммиченной транзации в transaction log применительно к ms sql или redo/archivelog для oracle
Василий
Sergey
Sergey
Evgenii
Василий
еще раз, если "комитить и локать" в бд, то да, можно снапить
Василий
Василий
отдельные диски, отдельные пулы
Evgenii
Допустим у вас Proxmox
rpool
rpool/ROOT
rpool/ROOT/pve-1
rpool/data
rpool/data/subvol-110-disk-0
rpool/data/subvol-201-disk-0
rpool/data/subvol-202-disk-0
rpool/data/subvol-203-disk-0
rpool/data/subvol-204-disk-0
rpool/data/vm-100-disk-0
rpool/data/vm-101-disk-0
rpool/data/vm-102-disk-0
rpool/data/vm-103-disk-0
rpool/data/vm-104-disk-0
rpool/data/vm-105-disk-0
rpool/data/vm-106-disk-0
rpool/data/vm-106-disk-1
Тогда надо делать снимок rpool/data@имя_снимка
Василий
не, не так, у меня есть raizd2 с кешем под данные и какой то raid10 под логи. как сделать синхронно снапшот?
Василий
зы: по рекомендациям, так сказать, для скл
Evgenii
Василий
если z-пулы разные - то никак.
так в том то и фишка, что для логов рекомендуют быстрый для линейной записи диск (чуть не сату можно брать), а для данных - быстрый для случайного чтения
Василий
и мало того, часто рекомендуют, что бы эти массивы были разные
Evgenii
тогда снимки становятся бесполезными, с моей точки зрения
Sergey
кстати, qemu guest agent на венде использует VSS, соответственно, нет вообще проблем делать снапшоты вендовых виртуалок с mssql
Василий
Василий
грубо говоря, правильный, с точки зрения БД снапшот, это тот, при откате на который, потом нет в логах отката/применения транзакции
Sergey
снять то нет :))
Данные в снимке будут консистентными. Но я не знаю, как оно себя поведёт, если дисков несколько.
George
Sergey