> > > > OpenZFSonOSX: новая попытка внедрения ZFS в OS X

OpenZFSonOSX: новая попытка внедрения ZFS в OS X

Опубликовано:

openzfsonosxZFS должна была стать новой файловой системой уже в OS X 10.7, но по неизвестным причинам, вероятно, из-за лицензионных вопросов, в последний момент Apple отказалась от этих планов. Уже пришло время для новой современной файловой системы, потому что HFS+ со всеми расширениями и отсутствующими функциями для обеспечения целостности данных не соответствует времени. OpenZFS является основой OpenZFSonOSX и уже доступен для Illumos, FreeBSD и других дистрибутивов Linux.

OpenZFSonOSX - это новый проект, который призван принести ZFS на систему OS X. Конечно, существуют и альтернативные варианты, но OpenZFSonOSX должен сделать процесс максимально простым. Так, пользователи могут скачать настольную и серверную версии, а на специальном форуме можно найти инструкции и необходимую помощь, если во время установки или работы системы возникнут какие-нибудь проблемы. Кроме этого, наиболее важная информация размещена в wiki.

Основная информация о ZFS

Сокращение ZFS произошло от названия Zettabyte File System, которое сейчас уже не используется. ZFS продолжает оставаться абревиатурой, но Z теперь расшифровывается просто как последняя буква алфавита, то есть это "последнее слово" в области файловых систем. ZFS является проектом с исходным открытым кодом и выпускается под лицензией Sun CDDL. Таким образом, она может быть портирована на любую систему и использована любым опытным пользователем. Первоначально система была разработана для Solaris для использования в дата-центрах.

Перед тем, как мы перейдём к детальному рассмотрению ZFS, давайте кратко ознакомимся с её техническими характеристиками:

Максимальная длина слова: 128 бит - этим могут похвастаться и некоторые другие файловые системы, но на практике это пока не востребовано.
Максимальное количество файлов в файловой системе: 248 - этого должно быть достаточно даже для использования в будущем. Для сравнения: NTFS поддерживает только 232 файлов.
Максимальный размер файловой системы: 16 x 260 байт - таким образом, количество байт в ZFS больше, чем количество атомов в наблюдаемой Вселенной. Для сравнения: NTFS позволяет работать "только" с 260 байт.
Максимальный размер файла: 16 x 260 байт - вновь невообразимо большое число, а NTFS ограничивает размер файла 16 Тбайт.
Максимальное количество файлов в директории: 248 - NTFS поддерживает только 232 файлов.

Число 264 играет ключевую роль во многих характеристиках системы. Так, максимальное количество устройств в пуле составляет 264. Таким же может быть количество файловых систем в пуле и количество пулов в системе.

Вся приведённая выше информация должна лишь подчёркнуть, для чего разрабатывалась ZFS: обеспечить надёжное управление данными в будущем. Джэф Бонвик (Jeff Bonwick), главный разработчик ZFS, утверждает, что этих технических характеристик будет достаточно всегда. Однако в Computer Science с такими выражениями следует быть осторожнее. Даже если сегодня вы не можете представить такие большие объёмы данных, лет через 20 ситуация может быть абсолютно другой. Здесь можно лишь вспомнить известную фразу Билла Гейтса, что 640 Кбайт памяти должно быть достаточно всем.

RAID-Z

ZFS, конечно, может использоваться в качестве файловой системы для одного единственного диска. Но поскольку ZFS проектировалась больше для серверного окружения, то большее значение имеет использование нескольких дисков. Кому недостаточно однодискового хранилища, могут прибегнуть к возможностям RAID. Как и в обычном RAID, избыточность данных определяется количеством дисков. При использовании двух жёстких дисков пользователю доступны обычные режимы RAID0 и RAID1. При добавлении в систему третьего диска появляются дополнительные опции. RAID-Z1 примерно соответствует RAID5: он сочетает производительность RAID0 и надёжность RAID1 при помощи битов чётности. Кто имеет четыре жёстких диска, могут также воспользоваться режимом RAID-Z2, который соответствует RAID6 с двойной чётностью. Дополнительный жёсткий диск позволяет активировать RAID-Z3 с тройной чётностью, что ещё больше увеличивает надёжность системы хранения.

Многие программные и аппаратные RAID-контроллеры не позволяют использовать диски разного объёма. ZFS здесь также обеспечивает гораздо большую гибкость. Так, три диска ёмкостью 500 Гбайт, 1 Тбайт и 2 Тбайт могут быть использованы для создания массива RAID-Z. В режиме RAID-Z1 доступный объём составит 1 Тбайт (2 x 500 Гбайт + 1 Тбайт для контрольных сумм). Однако если диск объёмом 500 Гбайт заменить на модель 1 Тбайт, то для хранения данных будет доступно 2 Тбайт (2 x 1 Тбайт + 2 Тбайт для контрольных сумм). Такого рода замены можно произвести без необходимости создания RAID с нуля. ZFS автоматически перестроит файловую структуру без вмешательства со стороны пользователя.

Поддержка контрольных сумм

Магнитные диски сегодня являются самой уязвимой частью в компьютерных системах. Поскольку именно здесь возникает большая часть ошибок в данных, ZFS имеет встроенную поддержку контрольных сумм. Целостность данных обеспечивается при помощи 32-битной контрольной суммы вместе с 256-битным хэшем. Когда блок данных прочитан с диска, данный механизм проверяет целостность данных. Ошибки в данных обнаруживаются уже на уровне самой файловой системы и в случае необходимости могут быть исправлены. Кроме этого, данная система обеспечивает значительно более надёжное наблюдение за состоянием жёсткого диска, чем технология S.M.A.R.T. Кто считает такую проверку излишней, всё равно должны запускать утилиты для проверки жёсткого диска, но при этом нередко обнаруживаются ошибки, из-за которых данные зачастую не могут быть восстановлены.

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

Снимки

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

Преимущества снимков становятся особенно заметны, если сравнить их с другими решениями по резервному копированию. Для примера возьмём Time Machine в Mac OS X. Если внести изменения в файл объёмом 1 Гбайт, то во время следующего резервного копирования будет скопирован весь файл, то есть 1 Гбайт. Подобного рода изменения на постоянной основе приведут к огромному объёму данных, например, при ежечасном резервном копировании. Снимки ZFS работают на уровне блоков файлов и сохраняют только изменения в файле. Это позволяет сэкономить место на диске и ускоряет создание резервной копии и её передачу.

Клоны

Клоны представляют собой своего рода расширение снимков. В этом случае используется перезаписываемые снимки, а в результате получаются две отдельные файловые системы для блока данных. Теперь изменения в одном клоне приводят к созданию новых блоков данных во всех остальных клонах.

Квоты и резервирование

Для файловых систем в zPool может задавать такие параметры, как квота и резервирование. Квота определяет, сколько дискового пространства может занимать каждая файловая система в zPool. Также для файловых систем можно зарезервировать определённый объём. Эти настройки пула могут быть заданы как глобальные для zPool и унаследованы всеми файловыми системами.

Сжатие

Как и многие другие файловые системы, ZFS поддерживает сжатие данных. Конечно, речь идёт о сжатии без потерь. Система также автоматически определяет тип файлов и в зависимости от этого осуществляет сжатие.