3

Недавно я прочитал некоторые тревожные статистические данные о показателях коррупции в системах с ОЗУ не-ECC и типичными файловыми системами. Судя по тому, что Google, система с ОЗУ ECC под управлением ZFS, вероятно, является лучшим способом предотвращения коррупции. Большая часть этой информации была в контексте дискуссий NAS.

Я вижу, как такая система будет полезна для архивирования файлов, если предположить, что они еще не повреждены на исходном компьютере и отлично передаются по сети.

Что я не смог найти в Google, так это: какой смысл иметь максимально надежный хостинг файлов NAS (или в качестве резервной копии), когда я работаю с файлами на менее надежных компьютерах? Я также не могу найти хорошую информацию по исправлению ошибок в Samba (какой бы ни была последняя версия в ОС с поддержкой ZFS, такой как FreeNAS или OpenIndiana) - если она вообще подвержена ошибкам, то почти все остальное бессмысленно (если я лично хэшируйте все и проверяйте все переводы).

Нужно ли (образно) выбрасывать мои текущие системы и заменять их (мини) серверным оборудованием, если я не хочу беспокоиться о гниении и т.д.? И если я пойду по этому пути, могу ли я разумно ожидать, что у меня будут ресурсы для чего-либо кроме запуска ZFS? Не тратя тысячи долларов?

Мой вариант использования:

Меня интересует больше, чем просто воспроизведение (например, фильмов и других медиа). Я часто занимаюсь программированием на своих домашних компьютерах. Например, у меня постоянно увеличивается количество файлов базы данных SQLite для различных проектов. Наличие одного из них может стать проблемой. У меня также есть много гигабайт семейных и отпускных фотографий, которые я не только хочу заархивировать, но и упорядочить, пометить и т.д. Поэтому, хотя я не управляю банком, у меня есть вещи, которые было бы трудно заменить, и мне неприятно думать о них. они "молча испорчены".

3 ответа3

1

Связь:

Я попытался прочитать документацию на веб-сайте Samba, но не смог определить, есть ли в Samba исправление ошибок. Я должен был предположить, что в худшем случае Samba полагается на базовую сеть без ошибок. Если этой базовой сетью является TCP/IP, похоже, единственной защитой является слабая контрольная сумма.

Я закончил с iSCSI, потому что он поддерживает необязательные заголовки и дайджесты данных, которые используют алгоритм CRC32C. Это сверх проверки TCP/IP.

Есть ли какая-то выгода?

Для меня ответ - «Да, по крайней мере, в одном сценарии». Я могу создавать резервные копии файлов на машине ZFS серверного уровня, используя программу, которой доверяю. Затем я могу периодически проверять, являются ли предположительно неизмененные файлы на исходном компьютере фактически неизмененными. Если есть расхождение, я могу восстановить резервную копию с сервера.

Единственным слабым местом является то, что файлы намеренно изменяются на ненадежном компьютере потребительского уровня. Поскольку коррупция в эти короткие периоды времени маловероятна, я считаю это приемлемым. Если я обнаружу, что во время модификации произошло повреждение, у меня будет резервное копирование.

Заменить мой компьютер достаточно мощным сервером для запуска ZFS и оставить ресурсы для моего основного компьютера?

Возможно, но это было бы чрезвычайно дорого. Я удовлетворен сценарием, описанным выше, поэтому я не буду пытаться это сделать.

1

ZFS довольно требовательна к тому, на каком оборудовании она работает.

Не в том смысле, что вы должны иметь именно тот набор микросхем, видеокарту, версию прошивки диска и т.д., А в смысле возможностей, предоставляемых оборудованием. Помните, ZFS была разработана как серверное решение высокого класса, и некоторые предположения, которые она делает, отражают это.

Основная часть того, что делает ZFS настолько хорошим для хранения данных, о которых вы заботитесь, заключается в том, что вы можете настроить его так, чтобы он мог как обнаруживать, так и исправлять ошибки в хранилище. Это могут быть тривиальные ошибки, такие как однократный переворот, или катастрофические ошибки, например, сбой нескольких дисков одновременно. До тех пор, пока вы превышаете пороговое значение избыточности вашего хранилища (например, не более двух дисков одновременно испытывают проблемы в raidz2 vdev), ZFS может исправить любую ошибку, используя избыточные данные. Дальнейшие ошибки, в зависимости от того, где и как они возникают, могут привести к (полу) изящной системной панике или простой ошибке ввода-вывода.

Если вы все сделаете правильно, вы также настроите свою систему на регулярную очистку пула (ов) ZFS. Это перехватит деградацию до того, как возникнет проблема, и уведомит вас об этом, чтобы вы могли рассмотреть вопрос о замене запоминающих устройств, на которых возникли проблемы с сохранением ваших данных, прежде чем это станет проблемой.

Однако это величие зависит от того факта, что оперативной памяти можно доверять. Вся эта проверка, исправление, переписывание и так далее происходит в основном в оперативной памяти. На высокопроизводительных серверах вы не найдете ничего, кроме ECC RAM.

ZFS защищает (и обрабатывает) метаданные пула, метаданные файловой системы и пользовательские данные одинаково. Здесь нет никакой разницы.

Если ваша рабочая станция испытывает переворот в битах ОЗУ, то когда вы записываете битовые данные в ZFS, битовые данные будут основой для того, что ZFS в конечном итоге записывает на диск. Это, очевидно, плохо, потому что это означает, что ваш файл будет поврежден. Тем не менее, битовые данные будут правильными в отношении ZFS. Это на самом деле хорошо, потому что это означает, что все нормальные методы восстановления ZFS будут работать. Да, самая последняя копия рассматриваемого файла будет повреждена, но она все равно будет повреждена, независимо от того, какую файловую систему вы использовали. Вы можете использовать моментальные снимки ZFS, чтобы, по крайней мере, вернуться в исходное состояние к нетленной копии. Установите что-то вроде zfs-auto-snap, чтобы снимать ваши файловые системы через регулярные, короткие промежутки времени, сохранять более грубую историю в обратном направлении и забывать об этом, пока они вам не понадобятся. (Например, сохраняйте десять снимков с интервалом в десять минут; 50 снимков с интервалом в один час; 30 снимков с интервалом в шесть часов; и т.д.) Снимки практически бесплатны в ZFS; если вы используете ZFS, используйте также снимки.

Если ваш сервер хранения данных, на котором работает ZFS, испытывает проблемы с ОЗУ, будь то перевёрнутый бит или зависание (один или несколько) битов, и у вас есть ECC RAM на сервере хранения, это будет обнаружено, и событие будет зарегистрировано, или система будет быть остановленным (если ошибка не может быть исправлена). В любом случае, целостность данных, хранящихся на сервере, сохраняется. Если ваш сервер хранения ZFS имеет оперативную память не-ECC, то ошибка может распространяться по всем вашим данным и метаданным, поскольку ZFS пытается "исправить" ошибки, которые на самом деле являются всего лишь плодом воображения компьютера. В худшем случае, который действительно случается с людьми, весь ваш пул будет разрушен из-за этого, и все ваши данные будут удалены. Резервирование уровня хранения / уровня vdev здесь тоже не поможет. В большинстве других файловых систем (без функции автокоррекции) будет повреждено только одно место, на которое непосредственно повлиял переворот, и если это произойдет с метаданными файловой системы, то их легко исправить с помощью традиционных средств проверки файловой системы и восстановления. инструменты. ZFS не имеет этого аварийного люка; fsck.zfs нет. (Существует zpool scrub, но он не работает, если пул не работает).

Что я не смог найти в Google, так это: какой смысл иметь максимально надежный хостинг файлов NAS (или в качестве резервной копии), когда я работаю с файлами на менее надежных компьютерах?

Это означает, что у вас есть надежное хранилище данных. Вы знаете, что как только данные попадут на ваш NAS, они будут защищены от повреждения. Любое повреждение либо будет устранено автоматически, либо вы будете проинформированы о проблеме (в случае ZFS - из-за ошибки ввода-вывода). Данные могут все еще быть повреждены, пока они работают с использованием менее надежных систем, но у вас будет возможность найти известную не поврежденную копию. Это является преимуществом, даже если только система NAS имеет ECC RAM, ZFS и высококачественные системы мониторинга и оповещения.

Затем вы можете, при желании, добавить (в частности) ECC RAM к другим системам, если позволяет ваш бюджет, чтобы закрыть последнюю дыру.

Нужно ли (образно) выбрасывать мои текущие системы и заменять их (мини) серверным оборудованием, если я не хочу беспокоиться о гниении и т.д.? И если я пойду по этому пути, могу ли я разумно ожидать, что у меня будут ресурсы для чего-либо кроме запуска ZFS? Не тратя тысячи долларов?

Во-первых, вам не нужно аппаратное обеспечение серверного уровня. В первую очередь вам нужна ECC RAM (и контроллер / чипсет ЦП и памяти, поддерживающий ECC RAM), достаточно надежное постоянное хранилище и, в идеале, случай, когда легко добавлять и удалять диски во время работы системы. Это не должно быть очень дорого, и, конечно, не должно стоить "тысячи долларов".

Во-вторых, ZFS любит оперативную память, но в основном для кеширования. При большинстве рабочих нагрузок 8–16 ГБ ОЗУ должно быть вполне достаточно, а 24–32 ГБ (легко достижимо даже с "потребительскими" материнскими платами) по-прежнему по разумным ценам даже при покупке высококачественной ОЗУ ECC под маркой. ZFS не сильно жаден до процессора; Вы можете сделать так, чтобы ему потребовалось много ресурсов ЦП (как в случае с ZoL, путем настройки sha256, сжатия gzip-9 и, возможно, дедупликации в комбинации), но это не обязательно. Моя собственная система работает на ZFS, но не слишком мощная (процессор FX-6100 отключен), я использую sha256 везде, и даже при чисто последовательном вводе / выводе диски являются ограничивающим фактором: как только он преодолевает начальный Часть скраба с произвольным чтением, я получаю примерно такую же пропускную способность для скрубов, как и на сыром dd с базового устройства хранения, с резервированием ЦП.

1

Что я не смог найти в Google, так это: какой смысл иметь максимально надежный хостинг файлов NAS (или в качестве резервной копии), когда я работаю с файлами на менее надежных компьютерах?

Вероятность того, что что-то пойдет не так, накапливается.

Другими словами (и с поддельными номерами):
Если есть вероятность 10% что-то пойдет не так на NAS, и
Если есть вероятность 10%, что на другом устройстве что-то пойдет не так,
Тогда у вас будет 20% вероятность сбоя при чтении чего-либо из NAS и воспроизведении этого на другом устройстве.

Я также не могу найти хорошую информацию по исправлению ошибок в Samba

Какая версия самбы. Протоколы немного изменились между тремя версиями.

если это вообще подвержено ошибкам, то почти все остальное бессмысленно (если я лично не хеширую все и проверяю все передачи).

Всегда есть риск ошибок. Это просто происходит. И они действительно обнаруживаются и исправляются (например, с помощью контрольных сумм). Это не всегда верно при использовании ОЗУ, что можно улучшить с помощью контроля четности и / или ECC. Однако эти проблемы относительно маловероятны, и вам нужно найти баланс между позолоченным (и дорогим) дизайном и "достаточно хорошим".

Этот баланс будет совсем другим для некоторых из нас (например, банкам нужны вещи совершенно). Они, вероятно, не гарантируют использование ECC в личных системах, предназначенных для воспроизведения фильмов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .