ZFS довольно требователен к тому, на каком оборудовании он работает.
Не в том смысле, что у вас должен быть точно правильный чипсет, видеокарта, версия прошивки диска и так далее, а в смысле возможностей, предоставляемых аппаратным обеспечением. Помните, что ZFS был разработан как серверное решение высокого класса, и определенные допущения, которые он делает, отражают это.
большая часть того, что делает ZFS настолько отличным для хранения данных, что вы заботитесь о том, что вы можете настроить его в способы, которые могут оба обнаружить и правильно ошибки в хранении. Это может быть тривиальные ошибки, как один бит флип где-то, или катастрофические ошибки, как несколько дисков сбой сразу. Пока вы находитесь выше порога избыточности макета хранилища (например, не более двух дисков, одновременно испытывающих проблемы в raidz2 vdev), ZFS может исправить любую ошибку, используя избыточные данные. Дальнейшие ошибки, в зависимости от того, где и как они происходят, могут привести к (полу) изящной системе паника, или простая ошибка ввода-вывода.
Если вы сделаете это правильно, вы также настроите свою систему, чтобы регулярно очищать пул(ы) ZFS. Это уловит degredation прежде чем будет проблемой, и сообщит вас к ей поэтому вы можете рассматривать заменить запоминающие устройства которые имеют тревогу держа дальше к вашим данным прежде чем это будет проблемой.
однако, что величие зависит от того, что оперативной памяти можно доверять. вся эта проверка, исправление, переписывание и так далее происходит преимущественно в оперативной памяти. На серверах высокого класса вы не найдете ничего, кроме оперативной памяти ECC.
ZFS защищает (и обрабатывает) метаданные пула, метаданные файловой системы и пользовательские данные одинаково. здесь нет никакой реальной разницы.
Если ваша система рабочей станции испытывает битовый флип ОЗУ, то при записи битовых данных в ZFS, битовые данные будут основой для того, что ZFS в конечном итоге записывает на диск. Это, очевидно, плохо, потому что это означает, что ваш файл будет поврежден. Однако битовые данные будут правильно, насколько ZFS обеспокоен. Это на самом деле хороший, потому что это означает, что все обычные методы восстановления ZFS будут работать. Да, последняя копия файла будет повреждена, но это все равно было бы испорчено, независимо от того, какую файловую систему вы использовали. вы можете использовать снимки ZFS по крайней мере, чтобы иметь возможность вернуться во времени к неповрежденная копия. Создали что-то вроде zfs-auto-snap для создания моментальных снимков файловых систем с регулярными, близкими интервалами, держите более грубую историю в обратном направлении и забудьте об этом, пока они вам не понадобятся. (Например, держать десять снимков расстоянии десяти минут; 50 снимков один час; 30 снимков в шесть часов; и так далее.) Снимки практически бесплатны в ZFS; если вы используете ZFS, использовать скриншоты как хорошо.
Если ваш сервер хранения, на котором работает ZFS испытывает плохой ОЗУ, будь то немного флип или застрявший (один или несколько) бит, и у вас есть ECC RAM на сервере хранения, это будет обнаружено, и событие будет зарегистрировано или система будет остановлена (если ошибка не может быть исправлена). В любом случае сохраняется целостность данных, хранящихся на сервере. Если ваш сервер хранения ZFS имеет не-ECC RAM, тогда ошибка может распространяться по всем вашим данным и метаданным как ZFS пытается "исправить" ошибки, которые на самом деле только плод воображения компьютера. В худшем случае, что на самом деле происходит с людьми, весь ваш бассейн будет разрушен из-за этого, и все ваши данные исчезнут. Избыточность на уровне хранилища/vdev здесь также не помогает. В большинстве других файловых систем (без автоматической коррекции) повреждено будет только одно место, на которое непосредственно повлияло битовое переключение, и если это произойдет с метаданными файловой системы, вероятно, будет легко исправлено традиционные средства проверки и восстановления файловой системы. В ZFS нет этого Люк; нет никакого fsck.zfs. (здесь команда zpool скраб, но это не работает, если бассейн не работает за ремонт.)
что я не смог Google, так это: какой смысл иметь максимально надежные файлы хостинга NAS (или в качестве резервной копии), когда я работаю с файлами на менее надежных компьютерах?
Это означает, что у вас есть доверенное хранилище данных. вы знаете, что как только данные попали на ваш NAS, они защищены от повреждения. Любое повреждение будет либо исправлено автоматически, либо вы будете проинформированы о проблеме (в случае ZFS, через ошибку ввода/вывода). Данные все еще могут быть повреждены во время работы с менее надежными системами, но у вас будет место для известной неповрежденной копии. Это преимущество, даже если только система NAS имеет ECC RAM, ZFS и высококачественное хранилище мониторинг и настройка оповещений.
вы можете, если пожелано, добавить (в частности) Штоссель ECC к вашим другим системам по мере того как ваш бюджет позволяет, заткнуть последнее отверстие.
Мне нужно (образно) выбросить мои текущие системы и заменить их (мини) оборудованием серверного класса, если я не хочу беспокоиться о битовой гнили и т. д.? И если я пойду по этому пути, могу ли я разумно ожидать ресурсов для чего-либо, кроме запуска ZFS? Не тратя тысячи долларов?
во-первых, вам действительно не нужно оборудование серверного класса. что вам нужно, это в первую очередь ECC RAM (и процессор и контроллер памяти/чипсет, который поддерживает ECC RAM), достаточно надежное постоянное хранение, а в идеале чехол, что позволяет легко добавлять и удалять диски во время работы системы. Это не должно быть очень дорогим, и, конечно, не нужно стоить "тысячи долларов".
во-вторых, ZFS любит оперативную память, но в основном для кэширования. С большинством рабочих нагрузок 8-16 ГБ оперативной памяти должно быть вполне достаточно, а 24-32 ГБ (легко достижимые даже с "потребительскими" материнскими платами) по-прежнему по разумной цене даже при покупке высококачественной фирменной ECC-памяти. ZFS не очень голоден; вы можете заставить его нуждаться в большом количестве CPU (например, с ZoL, установив SHA256, сжатие gzip-9 и, возможно, дедупликацию в комбинации), но вам не нужно. Моя собственная система работает на ZFS, не очень мощная (процессор FX-6100 работает с тактовой частотой), я использую sha256 везде, и даже в чисто последовательном вводе - выводе диски являются ограничивающим фактором: как только он проходит начальную часть скраба с малым случайным считыванием, я получаю примерно такую же пропускную способность на скрабах, как и на raw dd
от базового устройства хранения, с CPU, чтобы сэкономить.