Comments 52
А зачем создавать таблицу разделов, если потом используется весь диск?
Есть мнение, что это такой фэншуй. Вцелом так правильно, вдруг потом что-то куда-то поедет. Как общий пример - нормас. Я одного не понял - зачем мне оно, если есть ext4. Я понимаю, что лимиты очень высокие - экзабайты и всё такое прочее, но и в ext4 - дофигилиард, я такое не съем.
Я одного не понял - зачем мне оно, если есть ext4.
Мгновенные снимки, прозрачное сжатие.
Плюс scrub по расписанию, который автоматически исправляет побившиеся данные при наличии RAIDа, созданного средствами ФС, или как минимум позволяет понять, что они побились и надо бы восстановить из бекапа, заблаговременно.
А как быть с write amplification https://btrfs.readthedocs.io/en/latest/Hardware.html#solid-state-drives-ssd ?
Only users who consume 50 to 100% of the SSD’s actual lifetime writes need to be concerned by the write amplification of btrfs DUP metadata. Most users will be far below 50% of the actual lifetime, or will write the drive to death and discover how many writes 100% of the actual lifetime was.
честно говоря, только это останавливает от использования этой файловой системы - угроза повышенного износа дисков перевешивает все преимущества
Использование /dev/sdb затирает таблицу разделов. Если уж таблица и раздел созданы, то использовать надо /dev/sdb1.
Лет 7 назад переполз с BTRFS на ZFS на своих домашних серверах именно больно споткнувшись о глюк данной ФС... Бекапы всего важного были, но умершая на ровном ФС на разделе в несколько Тб убила массу моего времени на восстановление.
И вот буквально недавно на арендованном выделенном сервере вернулся к BTRFS. По одной простой причине - нужен был Debian и программный RAID1 средствами ФС из двух SSD, которые в этом сервере установлены. Возможности загрузить сервер с CD/USB нет. А ZFS не умеет сначала создать zpool из одного диска, а потом сделать из него зеркало, добавив второй. А вот BTRFS, как выяснилось, умеет! Так что получилось загрузиться из предустановленной на первый диск ОС, отформатировать второй диск в BTRFS, установить на него новую ОС, загрузиться в неё и добавить первый диск к зеркалу. Вот теперь надеюсь, что стабильность за прошедшие годы и правда улучшилась...
Несколько лет использую Fedora-у(не в проде). Проблем с btrfs не замечал.
![](https://habrastorage.org/getpro/habr/upload_files/21e/738/4d9/21e7384d902c92a9b1406b1d3bbd0d50.png)
а в федоровский dnf уже подвезли плагин для snapper?
Завезли. Лень расписывать.
Вроде вразумительная статейка: Automatic btrfs snapshots and rollbacks using snapper
![](https://habrastorage.org/getpro/habr/upload_files/e8c/a48/e9d/e8ca48e9d49dde8cdc2e888e5a34cd9e.png)
А ZFS не умеет сначала создать zpool из одного диска, а потом сделать из него зеркало, добавив второй.
Умеет. И всегда умела.
zpool attach
Спасибо. Самое смешное, что ведь и правда умеет, если это просто mirror, а не raidz.
А вот к авторам инсталлятора Proxmox VE у меня появилось очень много вопросов... (чтобы написать подробнее, надо поэкспериментировать, но у них очень своеобычный выбор вариантов установки на ZFS, который и ввёл меня в заблуждение)
В Proxmox мне тоже не нравится установщик.
Очень ограниченный выбор.
Я например для корня не хочу ни zfs ни lvm использовать.
Да и под корень не очень удобно zfs использовать (так что может оно и к лучшему что перешли на btrfs).
Были проблемы именно с proxmox после какого то обновления переставал грузится с zfs.
Я для корня отрезаю часть от SSD диска и из остатка делаю zfs пул для вм и контейнеров.
Корневой раздел я бэкаплю с помощью veeam.
И для того что бы реализовать такое разбиение диска приходится после установки пере разбивать все в ручную и переделывать загрузчик.
Что дико не удобно.
С проблемой незагрузки с ZFS тоже сталкивался... там рецепт починки совершенно шаманский, где-то до сих пор ссылка на него в закладках. Сделанный вывод на будущее из той ситуации - у сервера должен быть IP-KVM всегда :) Но этот баг давно починили, а вот поддержка BTRFS до сих пор официально с статусе preview, так что никто тем более ничего не гарантирует.
И именно для целей Proxmox у ZFS много плюсов. Репликация VM на другую ноду, скажем только с ZFS и работает. А заморачиваться со сложным разбиением диска тоже не хочется...
Это да IP-KVM дюже полезная вещь, я даже для домашнего применения беру сервера с IP-KVM,
из первых это microserver gen8, затем PowerEdge T140 и сейчас PowerEdge T350.
А ZFS я безусловно с Proxmox использую, просто мне не нужна ZFS под корень.
Когда корень расположен на пуле ZFS вместе с другими данными то его потом и не изменишь так просто.
Пулы с данными, ВМ и контейнерами у меня отдельно.
Да и когда корень отдельно мне и бэкап проще делать (с помощью veeam).
И восстанавливать проще и быстрее.
А с IP-KVM так и к серверу ходить не надо.
Дома-то у меня под корень отдельно диски, под данные отдельно. Физические. Соответственно, и объединены они в два разных пула (оба ZFS, правда, но в этом случае корень мог быть бы на чём угодно).
А вот на арендованном сервере физических дисков всего два. И есть задача, чтобы при вылете любого из них сервер продолжал спокойно работать на одном, пока я провайдеру отправляю заявку на замену почившего. И потом продолжал работать без длительного простоя после такой замены. И деление дисков на разделы эту задачу только усложнит. Ну т.е. я могу сделать два пула ZFS из двух разделов на каждом диске - но никаких плюсов по сравнению с общим пулом это не даёт. А если для корня не ZFS, но с избыточностью - то что? LVM? Совсем сложно - два разных механизма, и от такого усложнения риски, что при отвале одного из дисков что-то не взлетит как задумывалось, выше. Гибкость мне там не нужна, конфигурацию сервера я менять не могу, если что и будет меняться - буду параллельно поднимать новый сервер и поэтапно переносить всё на него.
А как происходит бэкап Proxmox если корень на ZFS?
У меня корень на обычном разделе под ext4 (отрезан от SSD диска).
Как его бэкапить, и главное как восстанавливать я знаю.
А зачем мне вообще бекапить сам Proxmox? Я бекаплю виртуальные машины на Proxmox Backup Server. В самом Proxmox изменено минимальное количество настроек, которые к тому же накатываются на него не вручную, а через Ansible (ну ладно, в Ansible пока не всё заведено, но я работаю в этом направлении).
Если сам гипервизор придётся переустанавливать или переносить на другой сервер - я практически моментально разверну новую инсталляцию Proxmox, и на неё уже восстановлю виртуалки из бекапа.
Впрочем, никто не мешает и корень на ZFS через zfs send куда-нибудь бекапить, если очень хочется.
А в Вашей схеме (если я правильно понял, и корень у Вас без избыточности на одном диске, а данные уже в ZFS mirror) получается, что избыточность ZFS пула вообще непонятно для чего. Ну разве что если отвалится второй диск в mirror, а не первый, она поможет. Но при отвале первого диска Вы получаете простой на время его замены и восстановления системы. А ровно для того, чтобы такого простоя не было, все RAID и существуют...
Я бэкаплю сам proxmox потому что не хочу его снова настраивать вводить в кластер по новой и до устанавливать пакеты.
Дисков у меня достаточно много в сервере и 3 пула.
Да корень без избыточности, но у меня это домашнее применение и простой не так критичен.
Это не идеальная конфигурация и я ее не защищаю.
Просто мне понятно как ее обслуживать и главное восстанавливать.
ZFSonRoot я еще использовал где то с 2014 под debian.
И опыт по восстановлению загрузки с zfs накопил))
Просто с обычным разделом я могу восстановить сервер из бэкапа довольно быстро.
А вот сервер который не бэкапится я точно быстро не восстановлю.
Настройки сервера у меня тоже большей частью дефолтные, сторонних сервисов не установлено (разве что zabbix-agent).
Если сам гипервизор придётся переустанавливать или переносить на другой сервер — я практически моментально разверну новую инсталляцию Proxmox
Да это удобно.
Поищу на досуге, раньше мне подобных инструкций не попадалось.
Ansible + pvesh плагин?
Я раньше тоже бекапил условный etc и сильно боялся что придется раскатывать.
Один раз написал плейбук и теперь сплю спокойно по этому поводу, а волосы стали мягкие и шелковистые
Ansible + pvesh плагин?
Спасибо попробую.
Если копировать только etc то это конечно маловато.
Я veeam-ом уже привык разделы вместе с загрузочной областью бэкапить. Удобно что можно посмотреть статусы бэкапа из консоли veaam.
Технология отлажена до автоматизма, включая и восстановление ))
https://github.com/GFN-CIS/proxmox-vm-ubuntu-template
Вот пример как пользоваться - тут через packer готовится шаблон на проксмоксе.
На reddit-e есть ветка прокса. Там есть и как бэкапить конфиг хоста. Рекомендую.
Зы. И тут есть немного по pve https://forum.netgate.com/topic/163435/proxmox-ceph-zfs-pfsense-и-все-все-все-часть-2/
Так например XigmaNAS на базе BSD умеет делать маленькое зеркало и загрузчик на каждый диск
Не нужен корень для zfs?
Любой каприз https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_11_Bullseye
Спасибо.
Но у меня нет проблем что с установкой proxmox на debian.
Что с установкой proxmox с проксмокского установщика на раздел ext4, те. без корня zfs и без использования lvm.
Под zfs у меня только сами VM и CT, да данные.
Саму zfsonlinux я использую уже лет 10.
А зачем ставить на ext4 ? Снепшотов не будет.
Я делаю бэкап раздела proxmox с помощью Veeam.
Пока более простого способа создания без проблемной копии всего сервера включая загрузочную область и прочих пакетов я не нашел.
Ежечасные снепшоты у zfs-датасетов с данными и тп.
Veeam - лишняя сущность, имхо.
У него же серверная часть только на Вин :(
Делаю только бэкапы конфига хоста - этого вполне хватает для восстановления.
Для отказоустойчивости у меня 2-й хост + zfs-репликация.
Зы. Гляньте тут по проксу, может чего и пригодится ) https://forum.netgate.com/topic/163435/proxmox-ceph-zfs-pfsense-и-все-все-все-часть-2/
В моем случае только конфигов не достаточно.
Установлены некоторые пакеты, такие как openswitch и другие полезные утилитки.
Их не много, но это время если надо восстанавливать.
Да и конфиг сети в конфигах проксмоса не хранится, его получается нужно отдельно хранить.
Бекап раздела средствами Veeam не занимает много места, у меня это около 10Гб основной плюс ежедневно около 200Мб.
И восстановление простое и тестировать целостность бэкапа легко.
Veeam можно использовать и без серверной части используя Veeam Linux Agent (или как то так называется).
И я так долго использовал, но последний год поставил серверную часть (благо она есть и в бесплатной редакции).
А ссылку посмотрю, вероятно что то новое под черпну для себя, спасибо.
> Да и конфиг сети в конфигах проксмоса не хранится, его получается нужно отдельно хранить.
Все там хранится. Было бы желание поискать.
https://github.com/DerDanilo/proxmox-stuff
https://gist.github.com/mrpeardotnet/6bdc4b504f43ce57fa7eaee96d376edf
Ну да он копирует сетевые настройки, но вот если у меня для сети используется openswitch?
Не вижу что скрипт копирует список установленных пакетов.
Для восстановления мне надо проделать слишком много действий: установить чистую систему, скачать скрипт (и что бы скрипт восстановил конфиги нужно обеспечить ему доступ для бэкапа, а это настройка сети, да не сложно но время занимает), затем до установить пакеты (тот же openswitch, иначе сеть не будет работать правильно) и все это надо делать ручками.
Если сравнить с восстановлением с помощью Veeam: загрузился с iso, указал от куда восстанавливать, выбрал диск куда восстановить и по окончании перезагрузка.
Так то эти скрипты еще нужно искать и внимательно смотреть что они делают, а что нет.
Veeam я использую уже боле 10 лет еще до proxmox использовал. Так как меня он устраивал и устраивает, я просто и не ищу других вариантов.
Попадется что нибудь лучше буду изучать.
Дядь, скрипт тот копирует ВСЕ настройки - зайди в папки и проверь ЧТО в них.
Поставить ovs - это ОДНА строка (с apt update - ДВЕ). Подсказать какая?
Не можешь что ли самый ПРОСТОЙ скрипт написать, в к-м будет перечень того что ставить\править? Тупо построчно. У меня такой есть :) Мне хост свежий до ума довести (репы, пакеты, правка конфига zfs, вкл ksm etc) - 10 мин макс надо.
Да уж, и it докатилось (( Пипец какой-то. Элементарщину надо объяснять.
Теперь про Veeam.
Может ты не заметил, но для его серверной части нужна MS Win.
Или что-то поменялось?
И на кой ляд мне нужна еще одна сущность в виде ОТДЕЛЬНОЙ железки с Вим, если есть более простой и рабочий способ.
Ну на личности переходить не стоит.
Я написал что нужно изучать что делает скрипт, а что нет. Я его смотрел только мельком.
Ну хорошо backup-скрипт копирует, а где restore-скрипт устанавливает пакеты? Я сходу так не вижу (перед использование нужно тестировать).
Теперь про Veeam.
Может ты не заметил, но для его серверной части нужна MS Win.
Или что-то поменялось?
Я тебе верну: куда катится это поколение, если оно даже не читает то что ему пишут.
А про Veeam я писал, что серверная часть не нужна и я долго (с самого момента появления Veeam Linux agent) использовал его без серверной части.
И только последний год мне захоьелось посмотреть на серверную часть (и да меня тоже долго останавливало необходимость windows), но для самообразования я поставил серверную часть, но повторю еще раз можно и без неё.
Тебе нужно 10 минут что бы восстановить пакеты, а мне 10 минут на весь сервер (и то если не спеша).
Скрипты пишу и использую, но мерятся мастерством их написания я не буду.
> Я его смотрел только мельком.
Если ты такой старый, то шутку про "Не читал, но осуждаю" поймешь.
Не надо мельком - надо не мельком.
Нашел решение, потратив на это СВОЕ время, так еще и претензии в ответ.
Зы. Про установку ТВОИХ пакетов тем скриптом тебе никто не обещал. Перечитай.
Пакеты можно доустановить ПАЧКОЙ все и сразу, выгрузив поdpkg -l
на хосте в файл.
когда btrfs только появилась (емнип продвигаемая красношляпой) она превращалась в тыкву от каждого чиха, зачастую с невозможностью восстановить данные (за что и была отвергнута родителем), после чего разработку подхватила suse (тогда ещё novel) и на данный момент btrfs прекрасна, редко ломается, легко чинится, шустро работает, даёт много плюшек (ещё бы блочный сабволы как в zfs дали и тогда zfs стала бы ненужна).. в общем ванлав.
но факт, ext4 всё ещё более неубиваемая.
больно споткнувшись о глюк данной ФС...
Было такое же, много лет назад, как только появилась в ванильном ядре.
Бэкапный рейд с BTRFS был забит под завязку. И потом что-то сломалось, и файловая система уже не монтировалась. Очень долго мучился, пока получилось расширить том ещё одним диском и потом система ожила. В те времена это была очень серьёзная проблема, когда заканчивается свободное место, особенно при наличии большого количества снимков и использования сжатия. Сейчас вроде починили. Ну то есть как - понять сколько у тебя фактически есть свободного места всё так же не просто, но хотя бы не падает.
Ну и важно понимать, что CoW подходит далеко не для всех задач. Если нужен swap файл - то есть специальная утилита чтобы создать его правильно, а для баз CoW вообще лучше отключать - есть множество бенчмарков.
А вот для бекапов эта ФС идеальная. Именно поэтому она всё чаще идёт как система по-умолчанию на NAS устройствах.
В те времена это была очень серьёзная проблема, когда заканчивается свободное место, особенно при наличии большого количества снимков и использования сжатия.
Проблема всё ещё есть. Если одновременно заканчивается место в data и metadata областях, то вас ждёт увлекательный бут в single-user mode, удаление части файлов и запуск rebalance. Иначе rebalance спотыкается при старте ОС и переключает ФС в RO. И обратно никак не хочет.
Сидим на BTRFS около двух лет, за это время на ~ 800 серверах проблема проявлялась минимум четыре раза.
Более того, btrfs на лету позволяет менять "топологию". Сделать из raid1 raid5, обратно, и т.д. Правда, это не на лету делается, и нужно btrfs balance звать
Ну как же не умеет, умеет прекрасно. Я так на домашнем сервере переползал с btrfs с нативным RAID1 на ZFS (тоже с её родной реализацией RAID1). Изначально было 2 диска по 4 ТБ, отмонтировал ФС, почистил начало диска на одном из них, создал на нём ZFS пул. Потом смонтировал btrfs раздел на другом диске в degraded mode, перенёс данные на ZFS пул. После этого на втором диске тоже залил первые пару мегабайт нулями, чтобы стереть таблицу разделов и btrfs. После этого добавил диск к zfs с помощью замечательной команды zfs attach. По сути диск добавляется к существующему vdev и получается RAID1.
На всякий случай оставляю ссылочку на мануал https://openzfs.github.io/openzfs-docs/man/8/zpool-attach.8.html
Спасибо, тут в комментах выше уже разобрались, что умеет. Просто задачка сделать ZFS была совмещена с задачкой поставить на этот ZFS proxmox, и вот его инсталлятор несколько странный выбор вариантов предлагает. Варианта "просто ZFS без RAID" нет вообще, "ZFS (RAID-1)" (mirror) сразу требует два диска, один диск можно выбрать только в варианте "ZFS (RAID-0)" (stripe)... Скорее всего, в последнем случае как раз и создаётся простой vdev и без mirror, и без stripe, к которому потом можно приаттачить второй диск для получения mirror - но это ж догадаться надо было... В общем, возможно, вооружённый этим знанием, и переползу с BTRFS на изначально запланированную ZFS таким образом, надо время выделить.
Умеет, для добавления диска в зеркало используется команда zpool attach.
Зачем столько букв? Точка монтирования из статьи.
btrfs f df /btrfs #(btrfs filesystem df /btrfs)
---
btrfs f us /btrfs #(btrfs filesystem usage /btrfs)
---
btrfs f sh /btrfs #(btrfs filesystem show /btrfs)
---
btrfs d u /btrfs #(btrfs device usage /btrfs)
---
btrfs d st /btrfs #(btrfs device stats /btrfs)
Рекомендую почитать
https://help.ubuntu.ru/wiki/btrfs
https://wiki.archlinux.org/title/Btrfs_(Русский)
Собственно, у меня из вопросов:
1) как относится к бедам на диске? ext4 можно при этом смонтировать в r/o даже если беды там, куда пытался накатиться журнал (-o noload) и потом смонтировать. Про бекапы не надо - они не делаются каждую секунду.
2) как относится к внезапным выключениям компа (aka бекап диска снапшотами снаружи вм)? ext4/xfs - нормально.
Все ещё жду стабильной работы с RAID5. На данный момент RAID5 скорее не работает , чем работает, в отличии от MIRROR (пользую уже несколько лет , полет нормальный)
Использовал пару лет raid5 для data и raid1 для metadata на 3х дисках. Проблем не было
попробуйте поигратся с вышедшими из строя дисками, с битыми секторами, с их заменой (data на btrfs raid5) , с балансировкой после этого , и попробуйте не потерять при этом данные.
Вот хочу домашний Nextcloud завезти. С зеркалированием данных. Вот думаю что лучше - btrfs или ext4 + mdadm? Планирую взять либо 2 HDD, либо 2 китайских SSD
Файловая система BTRFS