Найти тему
Alex Sidorenko

Системы хранения данных

Файловая система. Возможности. (Часть 3)

В отличие от традиционных файловых систем, которые располагаются на одном устройстве, ZFS строится поверх виртуальных пулов хранения данных (zpool). Пул построен из виртуальных устройств (vdev), каждое из которых является либо одним физическим устройством, либо группой из двух или более устройств. Емкость всех  виртуальных устройств доступна для всех файловых систем в пуле.

ZFS использует модель объектных транзакций, на основе механизма копирования при записи (copy on write). Все указатели на блоки внутри файловой системы содержат 256-разрядную контрольную сумму в целевом блоке, которая проверяется, когда блок прочитан. Блоки данных, содержащие изменяемые в этот момент данные, никогда не перезаписываются, выделяется новый блок и измененные данные записываются в него, затем метаданные блоков, на них ссылающихся.

Модель "копия-при-записи" в ZFS обладает ещё одним мощным преимуществом, когда ZFS записывает новые данные, вместо освобождения блоков, содержащих старые данные, она может сохранять их, создавая снимки файловой системы (snapshot). Снимки в ZFS создаются очень быстро, т.к. все данные в составе снимка уже сохранены и эффективно размещены в пространстве. Любые неизмененные данные являются общими между файловой системой и её снимком.

Можно создавать перезаписываемые копии снимков - клоны (clone snapshot), которые создаются также быстро как снимки, в результате чего появляются две независимые файловые системы, которые разделяют комплекс блоков. Можно создавать снимки файловой системы регулярно по расписанию, при необходимости делать клон нужного снимка и получать новую файловую систему со всеми данными находящимися там на момент создания снимка, не затрагивая при этом основную.

ZFS - легковесная файловая система (lightweight filesystem), любые операции с ней проходят значительно быстрее, чем в традиционных файловых системах. Время, требуемое для создания, удаления или изменения файловой системы ZFS измеряется секундами, в других системах эти манипуляции могут занимать часы.

ZFS поддерживает адаптивный порядок байт (big или little endian). Дисковые массивы и настроенная на них ZFS могут быть перенесены между разными платформами, даже если те имеют другой порядок байт. Формат блоков ZFS позволяет автоматически определять и менять порядок байт на лету при чтении метаданных. ZFS поддерживает сжатие данных при помощи lz4 , gzip , zle , lzjb и технологию дедупликации (dedup).

Deduplication (дедупликация данных) — технология, при помощи которой обнаруживаются и исключаются избыточные данные в дисковом хранилище путем замены повторных копий данных ссылками на первую копию. Использование дедупликации, при определенных условиях, позволяет снизить хранимые объемы на 80-90% без заметного снижения производительности, а в ряде случаев и с повышением производительности, так как дедуплицированный набор данных занимает меньше места в кэш-памяти системы хранения, и позволяет поместить в кэш значительно больший объем данных.

ZFS использует технологии Thick Provisioning — квотирование дискового пространства и Thin Provisioning — резервирование дискового пространства.

Поддержка RAID (redundant array of independent disks - избыточный массив независимых дисков) — из нескольких дисков (запоминающих устройств), управляемых контроллером, связанных между собой скоростными каналами передачи данных и воспринимаемых внешней системой как единое целое, один большой диск. В зависимости от типа используемого массива можно обеспечивать различные степени отказоустойчивости (надёжности хранения данных) и быстродействия системы.

Калифорнийский университет в Беркли представил следующие уровни спецификации RAID, которые были приняты как стандарт де-факто:

RAID 0 — дисковый массив повышенной производительности с чередованием, без отказоустойчивости
RAID 1 — зеркальный дисковый массив
RAID 2 — зарезервирован для массивов применяющих код Хемминга
RAID 3 и 4 — дисковые массивы с чередованием и «выделенным диском чётности»
RAID 5 — дисковый массив с чередованием и «невыделенным диском чётности»
RAID 6 — дисковый массив с чередованием, использующий две контрольные суммы, вычисляемые двумя независимыми способами
RAID 10 — массив RAID 0, построенный из массивов RAID 1
RAID 50 — массив RAID 0, построенный из массивов RAID 5
RAID 60 — массив RAID 0, построенный из массивов RAID 6

Файловая система ZFS дает возможность создавать массивы собственного формата, превосходящие по многим характеристикам все вышеуказанные. В них применена новая модель репликации данных, известная как RAIDZ, подобная RAID 5, но специально разработанная для предотвращения повреждений данных при записи.