Добавить в корзинуПозвонить
Найти в Дзене
Easy Linux - о Linux просто

Будь мужиком, создай RAID. ZFS. Часть 1. Введение в ZFS

Настоящий мужик должен родить сына, запрограммировать дерево и построить raid.
зы И пожать сотку. Приветствую тебя авантюрист! Сегодня мы обсудим довольно важную и не простую тему — организацию файловых хранилищ. Каждый системный администратор и IT-специалист рано или поздно сталкивается с необходимостью изучения более сложных методов и систем для работы с дисками и создания разнообразных схем хранения данных. Использование многодисковых систем и файловых систем, отличных от стандартных NTFS, открывает множество возможностей: скорость, отказоустойчивость, гибкость, экономию места и многое другое. Мы рассмотрим одно из довольно мощных и бесплатных решений — ZFS. Структура материала Материал будет разбит на 4 статьи: Необходимый уровень знаний Уверенное знание и понимание работы носителей данных в операционных системах Linux. Уверенное знание и понимание, как работают файловые системы, что это такое и для чего. Базовые знания и умения работы с RAID-массивами. ZFS Обратимся к википедии.

Настоящий мужик должен родить сына, запрограммировать дерево и построить raid.
зы И пожать сотку.

Приветствую тебя авантюрист! Сегодня мы обсудим довольно важную и не простую тему — организацию файловых хранилищ. Каждый системный администратор и IT-специалист рано или поздно сталкивается с необходимостью изучения более сложных методов и систем для работы с дисками и создания разнообразных схем хранения данных. Использование многодисковых систем и файловых систем, отличных от стандартных NTFS, открывает множество возможностей: скорость, отказоустойчивость, гибкость, экономию места и многое другое. Мы рассмотрим одно из довольно мощных и бесплатных решений — ZFS.

Структура материала

Материал будет разбит на 4 статьи:

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

Необходимый уровень знаний

Уверенное знание и понимание работы носителей данных в операционных системах Linux. Уверенное знание и понимание, как работают файловые системы, что это такое и для чего. Базовые знания и умения работы с RAID-массивами.

ZFS

Обратимся к википедии. ZFS - файловая система с деревом Меркла и поддержкой копирования при записи с функциями менеджера томов, созданная Sun Microsystems в 2004—2005 годах для операционной системы Solaris. Поддерживает большие объёмы данных, позволяет создавать RAID-массивы.

Скудно. Это научное определение. Если попытаться объяснить своими словами, то ZFS — это не просто файловая система. Файловая система работает только с одним разделом жёсткого диска. По крайней мере, в классическом понимании файловой системы. ZFS же работает со всеми дисками. Обратите внимание: не с диском, а именно с дисками. Конечно, при этом сохраняется возможность работать и с разделами диска. Всё, что было определено в загруженной операционной системе, может быть использовано. Любой интерфейс, любой производитель, любой размер.

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

Гибкость

ZFS поддерживает различные типы RAID-массивов, включая классические RAID0, RAID1 и RAID5(RADIZ1), а также более специализированные варианты, такие как RAIDZ.

RAID0 — это конфигурация, в которой два диска используются как единое целое. Объём данных, хранящихся на двух дисках, складывается. В случае выхода из строя одного из дисков, все данные теряются.

RAID1 — это конфигурация, в которой данные дублируются на двух дисках. Объём данных равен объёму наименьшего из дисков. В случае выхода из строя одного диска, данные легко восстанавливаются.

RAID5 — это конфигурация, требующая минимум трёх дисков. При выходе из строя одного диска, данные могут быть восстановлены.

RAIDZ — это термин ZFS. Массив может быть трёх типов: RAIDZ1, RAIDZ2 и RAIDZ3. RAIDZ1 может работать с одним вышедшим из строя диском, RAIDZ2 — с двумя, а RAIDZ3 — с тремя.

Например, я создал RAIDZ2 из 16 дисков по 100 МБ. Это означает, что если два диска из 16 сломаются, массив продолжит работу. Если сломается третий диск, мы потеряем все данные. Размер получившегося массива можно рассчитать с помощью онлайн-калькулятора. В результате мы получим хранилище на 1400 МБ. Это означает, что 200 МБ будут использованы для механизмов резервирования и сохранения информации.

Такая гибкость позволяет использовать большое количество дисков разных типов и размеров. Можно создавать любые конфигурации, которые необходимы. Например, можно объединить два диска по 100 МБ в RAID0, а затем добавить к ним третий диск размером 200 МБ и создать RAID1. В этом случае два первых диска будут зеркально отражены на третьем, и в случае поломки одного из первых дисков его можно будет заменить без потери данных. ZFS позволяет создавать сложные конфигурации с использованием дисков разных типов, размеров и интерфейсов. Есть два диска SATA и один диск IDE не вопрос, делаем RAIDZ1.

Надежность

Разработчики ZFS стремились создать систему, которая будет отличаться высокой степенью надёжности. И это им удалось: при правильном использовании файловой системы ZFS потеря данных практически исключена. ZFS предоставляет информацию о работе дисков, включая данные об ошибках. В случае обнаружения таких ошибок диск заменяется, и работа системы продолжается ( Если это не RAID 0 ).

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

Скорость

Файловая система ZFS не отличается высокой скоростью работы, и это действительно так. Несмотря на то что в её основе есть механизмы ускорения, такие как кеширующий носитель, ARC-кеш и другие, в большинстве случаев она будет уступать в скорости другим решениям.

Всё же ZFS — это про надёжность и гибкость. Сжатие данных на лету и расчёт таблиц для дедупликации требуют времени и ресурсов, что негативно сказывается на производительности. Однако, стоит отметить, что в реальных условиях, например, при использовании ее как «файловая помойка» для 100 компьютеров, ZFS показывает хорошие результаты, обеспечивая комфортную и быструю работу. Но если ты гонишься за цифрами, то ZFS — не лучший выбор.

Сжатие и дедубликация

ZFS может сжимать данные в процессе их записи и поддерживает различные алгоритмы сжатия. Насколько это эффективно, сложно сказать однозначно. Всё зависит от типа данных. Если это видео, которое уже сжато кодеком, то никакого дополнительного сжатия не будет. А если это несколько терабайт текстовых файлов, то, вероятно, результат будет значительным. В моём случае, когда речь идёт о «файловой помойке» на 100 машин с разнообразными данными, процент сжатия варьируется от 3 до 7% в разные периоды времени. Это не так уж и много, но почему бы и нет.

А вот дедупликация — это уже более интересная функция. Если на диске есть два или более одинаковых файла, то нет смысла хранить их все. Достаточно сохранить один файл, а остальные будут ссылаться на него. Это и есть дедупликация. В моём хранилище процент дедупликации составляет 29%. Это уже довольно неплохо. И опять же, всё зависит от данных. Мы можем достичь 100% коэффициента дедупликации, если загрузим один единственный файл и сделаем его копию.

Снапшоты, клоны, реплики

Снапшоты — это мощный инструмент ZFS. Не то чтобы это что-то новое. Снапшоты есть и в других файловых системах. И тем не менее они есть и в ZFS. С помощью снапшота можно сделать моментальный снимок всей файловой системы в данный момент. И вернуться к нему в любое время. Особенность и удобство в том, что, хотя снимок содержит всю файловую систему, физически на диске он хранит только те файлы, которые были изменены с момента создания снимка.

Клоны — это механизм, который позволяет примонтировать снапшот для чтения и записи. Используя сгапшоты и клоны, можно создать фактический git-репозиторий для твоей файловой системы с возможностью чтения и записи любого снимка. При этом физически на диске будут храниться только изменения.

Например, я делаю резервную копию моей «файловой помойки» на внешний диск. А через месяц создаю клон и делаю резервную копию в клон. Ещё через месяц создаю ещё один клон и делаю резервную копию в него. В итоге на диске для бекапа физический размер занимаемого пространства либо останется прежним, либо увеличится на размер изменений. При этом я могу обращаться к любым версиям в любое время. Это ли не чудо? Пишу и восхищаюсь. Кстати, это будет кейс, который мы рассмотрим в статье о снимках и клонах.

Реплики — это репликация твоей ZFS файловой системы на другую ZFS файловую систему. Точнее пула в другой пул ( про пулы и прочее уже в других статьях ) . Ты можешь делать это через стандартный ввод-вывод, то есть на другие компьютеры в сети через SSH. Основное назначение — создание резервных копий. Но, на мой взгляд, клоны более гибкие, хотя и сложнее в использовании. Стоит отметить, что репликация происходит колоссально быстрее, чем если бы ты просто копировали файлы через rsync, так как передаются только изменения.

За чей счет банкет?

ZFS — система, которая требует значительных вычислительных мощностей по сравнению с другими вариантами. Для её работы необходим мощный процессор и примерно 1 ГБ оперативной памяти на каждый терабайт хранилища. Это означает, что использование старого Celeron твоего деда, который ты нашел в гараже и не хочешь выбрасывать, не будет оптимальным решением. Тебе понадобится более мощное оборудование. Учитывай это при выборе платформы для создания хранилища.

Итог

ZFS — это бесплатный, гибкий и надёжный инструмент для создания надёжного хранилища с множеством функций и интересных возможностей. Если твоя цель — обеспечить отказоустойчивость и защитить данные от потери, то ZFS должна быть одним из первых вариантов для рассмотрения. Также ZFS будет отличным выбором, если у тебя есть несколько десятков старых жёстких дисков, которые ты не хочешь выбрасывать. Берем китайский контроллер с 16+ портами SATA и вперед к светлому будущему! Строить коммунизм массив!