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

Учет пространства 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.