Я собираюсь построить файловый сервер ZFS из FreeBSD. Недавно я узнал, что я не могу расширить RAIDZ udev, если он является частью пула. Это проблема, поскольку я домашний пользователь и, вероятно, буду добавлять один диск в год.
Но что, если я установлю copy = 3 для всего моего пула и просто добавлю отдельные диски в пул по отдельности? Я где-то читал, что копии попытаются распределить по дискам, если это возможно. Есть ли там гарантия? Мне просто нужна защита от гниения долота и сбоя привода по дешевке. Скорость не является проблемой, поскольку она будет проходить через сеть 1 Гб и при БОЛЬШОМ потоке подкастов 720p.
Будут ли мои данные гарантированно защищены от сбоя одного диска? Есть вещи, которые я не рассматриваю? Любой вклад приветствуется.
Данные файловой системы, скорее всего, будут избыточными, особенно с copy = 3, поэтому ваши данные будут защищены от битовой гнили.
Однако он не будет надежно защищен от полного отказа диска, так как не будет возможности заменить неисправный диск новым. Даже если сразу после сбоя у вас должен быть доступ ко всем своим данным, ваша система не выдержит перезагрузки, поскольку ваш пул не будет импортирован.
Видеть ZFS: Как восстановить правильное количество копий после потери диска? по аналогичному вопросу.
Вы не будете защищены, используя raidz vdev + single disk vdev в одном пуле. Вы должны одновременно добавлять два диска (и зеркалировать их) в zpool, что покроет сбой одного диска.
Причина в том, что copies
не гарантирует, что блоки окажутся на разных дисках.
Альтернативой расширению вашего raidz vdev является использование zfs send
для временного хранения всех ваших данных, пока вы добавляете диск и перестраиваете raidz vdev, а затем zfs receive
чтобы вернуть его. Это будет сложно, когда вы превысите несколько ТБ, так как вам потребуется много места для хранения ваших данных.
Интересно, нашел это сегодня. Копии должны гарантировать, что блоки ditto, созданные с помощью 'копий', хранятся на разных vdev: https://blogs.oracle.com/bill/entry/ditto_blocks_the_amazing_tape (см. раздел «Распространение»)
Итак, согласно этому сообщению в блоге, вы будете защищены от сбоев полного диска в файловых системах, для которых доступно несколько копий. Но только в этих файловых системах.
«В пуле хранения с несколькими устройствами (vdev) все становится немного острее. Мы размещаем каждую копию блока на отдельном vdev»