Руководство по администрированию файловых систем ZFS Solaris

Глава 3 Отличия ZFS от традиционных файловых систем

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

В этой главе содержатся следующие разделы:

Структура файловой системы ZFS

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

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

Вместо создания одной файловой системы со множеством подкаталогов пользователей, например /export/home, теперь можно создать отдельную файловую систему для каждого пользователя. Кроме того, ZFS позволяет выстраивать иерархию файловых систем, т.е. быстро настраивать ряд файловых систем при помощи свойств, которые могут быть унаследованы файловыми системами в иерархии.

Пример создания иерархии файловых систем приведен в разделе Создание иерархии файловых систем ZFS.

Учет пространства ZFS

Система ZFS основана на концепции хранения данных по принципу пула. В отличие от традиционных файловых систем, связанных с физическими устройствами хранения данных, все файловые системы ZFS в пуле совместно используют единое пространство пула. Таким образом, доступное пространство, объем которого можно узнать с помощью таких служебных программ, как df, может измениться даже в том случае, если файловая система неактивна, поскольку другие файловые системы в пуле потребляют или освобождают пространство. Следует отметить, что максимальный размер файловой системы можно ограничить с помощью квот. Для получения информации о квотах см. Установка квот в файловых системах ZFS. Гарантировать наличие определенного пространства в файловой системе можно с помощью резервирования. Для получения информации о резервировании см. Настройка резервируемого пространства в файловых системах ZFS. Эта модель очень похожа на модель NFS, где многие каталоги монтируются из одной файловой системы (рассмотрим /home).

Все метаданные в файловой системе ZFS распределяются динамически. В большинстве других файловых систем основной объем метаданных распределяется предварительно. В результате для этих метаданных требуется немедленная оценка пространства при создании файловой системы. Это также означает, что общее число файлов, поддерживаемых файловыми системами, определяется предварительно. Поскольку ZFS распределяет метаданные по мере необходимости, первоначальная оценка пространства не требуется, и количество файлов ограничивается только доступным пространством. Результат выполнения команды df-g для ZFS должен интерпретироваться иначе, чем для других файловых систем. Значение total files представляет оценку общего числа файлов, основанную на объеме доступного в пуле пространства для хранения данных.

ZFS представляет собой транзакционную файловую систему. Большая часть изменений в файловой системе объединяется в группы транзакций и записывается на диск асинхронно. Пока эти изменения не записаны на диск, их называют отложенными изменениями. Отложенные изменения не учитываются в объеме используемого, доступного и занятого файлом или файловой системой пространства. Как правило, отложенные изменения существуют в течение нескольких секунд. Даже запись изменения на диск с помощью команды fsync(3c) или O_SYNC не гарантирует немедленного обновления информации об использовании пространства.

Дополнительные сведения об использовании пространства ZFS по данным команд du и df представлены на следующей странице:

http://opensolaris.org/os/community/zfs/faq/#whydusize

Поведение при недостатке пространства

Создание снимков файловой системы в ZFS – это удобная и простая процедура. Ожидается, что снимки будут применяться в большинстве сред ZFS. Для получения информации о снимках ZFS см. Глава 7Работа со снимками и клонами ZFS.

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

В результате удаление файла может привести к увеличению объема занятого дискового пространства, поскольку для отражения нового состояния пространства имен потребуется создать новую версию каталога. Это означает, что при попытке удаления файла может неожиданно возникнуть ошибка ENOSPC или EDQUOT.

Монтирование файловых систем ZFS

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

Для получения дополнительной информации о монтировании и совместном использовании файловых систем ZFS см. Монтирование и совместное использование файловых систем ZFS.

Традиционное управление томами

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

Новая модель списков ACL Solaris

Предыдущие версии ОС Solaris поддерживали реализацию списков ACL, в основе которой лежит спецификация проекта ACL POSIX. Списки ACL на основе проекта POSIX используются для защиты файлов UFS. Новая модель списков ACL, основанная на спецификации NFSv4, используется для защиты файлов ZFS.

Ниже приведены основные отличия новой модели списков ACL Solaris.

Для получения дополнительной информации об использовании списков ACL для файлов ZFS см. Глава 8Защита файлов ZFS при помощи списков ACL .