Comments 23
При всём уважении, stripe (а это RAID0) в ZFS означает отсутствие избыточности, а Вы целенаправленно выстреливаете себе в ноги, и ещё другим советуете. Любой один диск умирает - пул дохнет, для корневой файловой системы это означает мгновенную потерю системы. Зачем такое делать?
Так и знал что кто-то это спросит ) Для избыточности у меня есть zfs raid на файловом сервере. Здесь другая задача. На ноутбуке мне нужно место и удобство. stripe нужен для того чтобы не раскидывать директории по разным дискам, и не бегать по дискам в поиске нужных данных, не более того.
Ну то есть, переустановка системы в случае отказа одного диска из stripe, это норма? Если так, то ок, но мне всегда казалось, что лучше сделать один раз, чтобы работало исправно)
Тогда непонятен смысл ZFS. Хочется костыля в виде stripe, подойдет обычный mdadm. ZFS в этом сценарии не дает преимуществ, потому что его сильные стороны - именно целостность и избыточность: mirror, raidz, scrubbing, self-healing. stripe-vdev лишает систему главного свойства ZFS - устойчивости к отказу диска, остается только второстепенное: checksums, snapshots, send/receive, но для корневой системы ноутбука это обычно не оправдывает усложнение стека (zpool, bootloader интеграция, recovery процедуры). Итого технически это выглядит как избыточная сложность. ZFS используется как файловая система поверх конфигурации, где его ключевая архитектурная идея - отказоустойчивые vdev - намеренно сломана. mdadm RAID0 + ext4/xfs дает тот же результат проще и с меньшим количеством точек отказа.
для этого есть бекап сервер, система и все важное бекапится.
И таки, остаётся непонятным, зачем тут нужен ZFS =)
Да все затем же ) Я должен знать что на сервер улетают не поврежденные файлы а на севре есть избыточность. snapshots, send/receive это тоже не мало. Я не против избыточности, просто место в данном случае важней. Если заменю диски на побольше, можно бдует подумать о зеркале.
Не убедил? )
Нет. С этой схемой при повреждении блока ZFS обнаружит corruption, но исправить его будет нечем. Stripe убирает самую сильную сторону ZFS - self-healing при чтении. Выглядит как ZFS ради ZFS. Mdadm + btrfs или даже просто btrfs могли бы дать те же snapshots и checksums без разрушения модели хранения
Собственно, я к чему веду. Всё, что в статье сделано, можно реализовать на одном btrfs, и даже без mdadm. И тем более, без ZFS.
Btrfs умеет объединять несколько дисков в одну фс. Профиль хранения можно поставить single - это фактически тот же stripe без избыточности.
Есть checksums блоков, как в ZFS. Есть снапшоты. Есть send/receive для репликации снапшотов. Есть инкрементальные отправки.
Единственная принципиальная разница - философия реализации и зрелость некоторых механизмов (и то, под вопросом). Но для такой конфигурации (без избыточности, с репликацией на сервер) btrfs покрывает весь функционал. Более того, в Вашем случае btrfs даже логичнее архитектурно, потому что он изначально проектировался как single-node filesystem без обязательной избыточности, тогда как ZFS исторически строится вокруг модели vdev и redundancy.
Итого, ZFS в этой схеме не дает дополнительных возможностей по сравнению с btrfs, по части self-healing они в этой конфигурации одинаковы (обнаружение есть, восстановления нет), но добавляет более сложную модель хранения и более тяжелый recovery. Поэтому выглядит как использование ZFS ради ZFS
Mdadm RADI0 насколько я знаю не поддерживает диски разных размеров, условно 256Гб+1000Гб. Диск большего объема в этом случае будет ограничен объемом меньшего, тобишь 256Гб, остальные 700+Гб будут неиспользованы. Не знаю как у автора статьи, но в этом сценарии проще именно ZFS stripe использовать, т.к. он такую конфигурацию поддерживает из коробки.
К бтрфс можно пришить второй диск. То есть надо просто установить систему на бтрфс на первый диск, а потом пришить второй. Делается элементарно просто, никаких проблем ни с какими загрузчиками и инсталяторами, будет работать даже на дебиане.
Я бтрфс использую вообще без всяких фич(снапшотов, сжатия) просто потому что она позволяет такое делать, размеры менять в любом направлении на ходу, диски подключать и отключать, иноды считать не надо, это просто удобнее чем ext4.
/boot/efi - mdadm raid1/ - btrfs raid1swap - mdadm raid1
всё прекрастно работает без извращений с dkms
Установка Arch Linux на ZFS