ZFS – файловая система из светлого будущего

Новые разработки появляются каждый день – только успевай за всем следить. Разработка файловых систем также не стоит на месте. Ограничения на количество файлов и на размер тома уже в прошлом. Заполнить ZFS просто невозможно…

А все потому, что ZFS (Zettabyte File System) разработана 128-битной. Максимальный размер тома, как и максимальный размер одного файла, под ZFS равен 16 эксабайтам. 1 эксабайт = 260 байт. Интересно, что общий объем цифровой информации, созданной человечеством в 2006 году, составил 161 экcабайт, в 2007 г. — 281 эксабайт, а к 2011 году размер цифровой вселенной составит 1,8 зеттабайта (1800 эксабайт), что в 10 раз больше показателя 2006 года. Известно, что человечеству потребовалось 300 тысяч лет, чтобы создать первые 12 эксабайт информации, зато вторые 12 эксабайт были созданы всего за два года. Кроме того, по прогнозам экспертов Cisco, к 2012 году среднемесячный объем глобального IP-трафика достигнет уровня 44 эксабайт. Приведу интересную цитату руководителя проекта ZFS Джефа Бонвика: «Хотя мы все хотели бы, чтобы Закон Мура выполнялся бесконечно долго, квантовая механика накладывает некоторые фундаментальные ограничения на скорость вычислений и информационную вместимость любого физического устройства. В частности, было показано, что 1 килограмм материи, ограниченный 1 литром пространства, может выполнять не более 1051 операций в секунду над не более чем 1031 бит информации. Целиком заполненный 128-битный объем будет содержать 2128 блоков = 2137 байт = 2140 бит, поэтому минимальная масса, необходимая для хранения этого количества бит, будет (2140 бит) / (1031 бит/кг) = 136 млрд кг» Конечно, в реальности мы вряд ли когда-либо достигнем квантовой плотности записи, поэтому ограничения, которые имеет ZFS, можно по праву считать бесконечными.

ZFS была создана в Sun Microsystems и анонсирована 14 сентября 2004 года. Вскоре исходный код был интегрирован в ОС Solaris. К сожалению, разработчики выбрали лицензию CDDL, что делает невозможным интегрировать эту систему в ядро Linux, которое распространяется под лицензией GNU. В настоящее время поддержка ZFS в этой популярной ОС реализована по технологии FUSE, т.е. точно так же, как и поддержка NTFS-разделов. Вскоре после анонсирования Sun своей разработки, ею заинтересовалась Apple и до недавнего времени планировала включить ZFS в свои последующие операционные системы. Однако этим летом они от этого отказались. ZFS была также портирована на некоторые BSD-системы с помощью студентов и Google Summer of Code. Про поддержку в Windows скромно промолчим.

Самая главная особенность ZFS – бережное отношение к данным. Это достигается с помощью специальных сквозных контрольных сумм, причем контрольная сумма и данные специально разносятся максимально далеко друг от друга для снижения вероятности их совместной порчи. Если в дисковом пуле есть несколько устройств, то контрольные суммы и данные записываются на разные устройства. Все устройства дискового пула динамически разделяются по пропускной способности. ZFS – значительно виртуализированная файловая система, поэтому может создавать виртуальные диски поверх реальных устройств и собирать RAID-массивы для резервного копирования. Запись на диски организована таким образом, что наличие специального буфера в самом жестком диске не требуется. Система автоматически определяет, куда и сколько нужно записать, чтобы избежать ошибок и фрагментации. Как пишут разработчики, ZFS loves cheap disks. ZFS использует модель объектных транзакций копия-по-записи. Все указатели на блоки внутри файловой системы содержат 256-битную контрольную сумму в целевом блоке, который проверяется, когда блок прочитан. Блоки данных, содержащие активные (в этот момент) данные, никогда не перезаписываются вместе; напротив, выделяется новый блок, измененные данные записываются в него, а затем метаданные любых блоков, которые на него ссылаются, таким образом, все перераспределяется и записывается. Чтобы уменьшить накладные расходы, в этом процессе группируется несколько обновлений в группу транзакции, также, если требуется, ведется лог использования при синхронной записи. Модель копия-по-записи в ZFS обладает еще одним мощным преимуществом: когда ZFS записывает новые данные — вместо освобождения блоков, содержащих старые данные — она может сохранять их, создавая снимки файловой системы. Снимки в ZFS создаются очень быстро, так как все данные в составе снимка уже сохранены. Они также эффективно размещены в пространстве, поскольку любые неизмененные данные разделяются между файловой системой и ее снимком. Такой механизм создания снимков делает возможным очень легко копировать данные для резервной копии. В ZFS также есть аналог прозрачного шифрования, как это реализовано в NTFS. ZFS — это локальная файловая система.

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

Алексей Голованов, AlekseyGolovanov@mail.ru


Компьютерная газета. Статья была опубликована в номере 31 за 2009 год в рубрике soft

©1997-2022 Компьютерная газета