Свойства – это основной механизм, используемый для управления поведением файловых систем, томов, снимков и клонов. Если не указано иное, свойства, определенные в разделе, применяются ко всем типам наборов данных.
Свойства подразделяются на два типа: системные и пользовательские. Системные свойства используются для экспорта внутренней статистики или управления поведением файловой системы ZFS. Кроме того, системные свойства могут быть настраиваемыми или доступными только для чтения. Пользовательские свойства не влияют на поведение файловой системы ZFS, однако их можно использовать для добавления пользовательской информации к наборам данных. Для получения дополнительной информации о пользовательских свойствах см. Пользовательские свойства ZFS.
Большинство устанавливаемых свойств также наследуется. Наследуемое свойство – это свойство, которое при установке для родительского элемента распространяется на все дочерние элементы.
Все наследуемые свойства имеют связанный источник. Этот источник определяет выбор значения свойства. Ниже перечислены возможные значения источников свойств:
Источник local указывает, что свойство было явно задано для набора данных с помощью команды zfs set, как описано в разделе Установка свойств ZFS.
Значение inherited from имя_набора_данных означает, что свойство было унаследовано от соответствующего родительского элемента.
Значение default означает, что значение свойства не было унаследовано или установлено на локальном уровне. Этот источник задается при отсутствии родительского элемента с источником local.
В следующей таблице перечислены системные свойства файловой системы ZFS – как доступные только для чтения, так и настраиваемые. Особо выделены системные свойства, доступные только для чтения. Все прочие системные свойства, перечисленные в этой таблице, являются настраиваемыми. Для получения информации о пользовательских свойствах см. Пользовательские свойства ZFS.
Таблица 6–1 Описание системных свойств ZFS
Имя свойства |
Тип |
Значение по умолчанию |
Описание |
---|---|---|---|
aclinherit |
Строка |
secure |
Используется для управления наследованием записей списков ACL при создании файлов и каталогов. Возможные значения: discard, noallow, secure и passthrough. Описание этих значений приведено в разделе Режимы свойств списков ACL. |
aclmode |
Строка |
groupmask |
Используется для управления изменением записей списков ACL при выполнении операции chmod. Возможные значения: discard, groupmask и passthrough. Описание этих значений приведено в разделе Режимы свойств списков ACL. |
atime |
Логическое значение |
on |
Используется для управления обновлением времени доступа к файлам при их чтении. Отключение этого свойства запрещает трафик записи при чтении файлов и может существенно повысить быстродействие, но при этом могут возникнуть трудности с почтовыми программами и подобными им служебными программами. |
available |
Число |
нет |
Свойство только для чтения, определяющее пространство, доступное для набора данных и всех его дочерних элементов при условии отсутствия других операций с пулом. Поскольку пространство совместно используется с пулом, доступное пространство может ограничиваться различными факторами, в том числе физическим размером пула, квотами, резервированием или другими наборами данных в пуле. На это свойство можно также ссылаться по сокращенному имени столбца avail. Для получения дополнительной информации об учете пространства см. Учет пространства ZFS. |
canmount |
Логическое значение |
on |
Определяет возможность монтирования данной файловой системы с помощью команды zfsmount. Это свойство можно установить в любой файловой системе, и само свойство не является наследуемым. При значении этого свойства off точка монтирования может быть унаследована дочерними файловыми системами, но сама файловая система никогда не монтируется. Когда задан параметр noauto, набор данных можно монтировать и размонтировать только явно. Набор данных не монтируется автоматически при его создании или импорте. Он также не монтируется командой zfs mount- a и не размонтируется командой zfs unmount-a. Дополнительные сведения приведены в разделе Свойство canmount. |
checksum |
Строка |
on |
Используется для настройки контрольной суммы в целях проверки целостности данных. По умолчанию используется значение on, задающее автоматический выбор соответствующего алгоритма (в данном случае fletcher2). Возможные значения: on, off, fletcher2, fletcher4 и sha256. Значение off отключает проверку целостности пользовательских данных. Значение off использовать не рекомендуется. |
compression |
Строка |
off |
Включение или выключение сжатия для этого набора данных. Доступные значения: on , off, lzjb, gzip и gzip-N. В настоящее время значения lzjb, gzip и gzip- N имеют тот же эффект, что и значение on. По умолчанию установлено значение off. Активация сжатия в файловой системе с существующими данными приводит к сжатию только новых данных. Существующие данные не сжимаются. Это свойство может также указываться сокращенным именем столбца: compress. |
compressratio |
Число |
нет |
Свойство только для чтения, определяющее достигнутую степень сжатия для набора данных, выражаемую в виде множителя. Включить сжатие можно с помощью команды zfs set compression=on набор_данных. Рассчитывается на основе логического размера всех файлов и объема связанных физических данных. Включает явное сокращение, достигаемое за счет использования свойства compression . |
copies |
Число |
1 |
Задает количество копий пользовательских данных для файловой системы. Доступные значения: 1, 2 или 3. Эти копии являются дополнительными по отношению к избыточности уровня пула. Пространство, используемое несколькими копиями пользовательских данных, относится на счет соответствующего файла и набора данных с учетом квот и резервирований. Кроме того, если разрешено создание нескольких копий, то обновляется свойство used. Это свойство устанавливается при создании файловой системы, поскольку изменение его значения в существующей файловой системе влияет только на новые данные. |
creation |
Строка |
нет |
Свойство только для чтения, определяющее дату и время создания набора данных. |
devices |
Логическое значение |
on |
Определяет возможность открытия файлов устройств в файловой системе. |
exec |
Логическое значение |
on |
Определяет возможность выполнения программ в файловой системе. Кроме того, при установке значения off запрещаются вызовы mmap(2) с PROT_EXEC. |
mounted |
Логическое значение |
нет |
Свойство только для чтения, которое определяет, монтируется ли в настоящее время файловая система, клон или снимок. Это свойство не применяется в отношении томов. Возможные значения: yes или no. |
mountpoint |
Строка |
нет |
Определяет точку монтирования, используемую для этой файловой системы. При изменении свойства mountpoint для файловой системы эта файловая система и все дочерние элементы, наследующие точку монтирования, размонтируются. При установке значения legacy они остаются размонтированными. В противном случае они автоматически перемонтируются в новом местоположении, если свойство ранее имело значениеlegacy или none, либо если они были смонтированы до изменения свойства. Кроме того, настройки совместного использования всех файловых систем адаптируются согласно новому местоположению. Для получения дополнительной информации об использовании этого свойства см. Управление точками монтирования ZFS. |
primarycache |
Строка |
off |
Управляет содержимым для кэширования в ARC. Возможными значениями являются all, none и metadata. При установке на all выполняется кэширование данных пользователя и метаданных. При установке на none кэширование данных пользователя и метаданных не выполняется. При установке на metadata выполняется кэширование только метаданных. По умолчанию установлено значение all. |
origin |
Строка |
нет |
Свойство только для чтения, предназначенное для клонированных файловых систем или томов и определяющее снимок, на основе которого был создан клон. До тех пор пока клон существует, источник не может быть уничтожен (даже при помощи параметров -r и -f). Для неклонированных файловых систем устанавливается значение none. |
quota |
Число (или none) |
none |
Определяет пределы пространства, которое могут занимать набор данных и дочерние элементы. Это свойство устанавливает жесткий предел по используемому пространству, включая все пространство, занимаемое дочерними элементами, в т.ч. файловыми системами и снимками. Установка квоты для дочернего элемента набора данных, для которого уже задана квота, не переопределяет квоту родительского элемента, но устанавливает дополнительный предел. Квоты не могут быть заданы для томов, поскольку свойство volsize выступает в качестве неявной квоты. Для получения информации об установке квот см. Установка квот в файловых системах ZFS. |
readonly |
Логическое значение |
off |
Определяет возможность изменения набора данных. При установке значения on изменить набор данных невозможно. Это свойство может также указываться сокращенным именем столбца: rdonly. |
recordsize |
Число |
128K |
Указывает рекомендуемый размер блока для файлов в файловой системе. Это свойство может также указываться сокращенным именем столбца: recsize. Подробное описание приведено в разделе Свойство recordsize. |
referenced |
Число |
нет |
Свойство только для чтения, определяющее объем данных набора, которые могут использоваться (или не использоваться) совместно с другими наборами данных в пуле. При создании снимка или клона для него первоначально задается тот же объем пространства, что и для файловой системы или снимка, на основе которого он был создан, поскольку их содержание идентично. Это свойство может также указываться сокращенным именем столбца: refer. |
refquota |
Число (или "none") |
none |
Свойство задает объем пространства, доступного для набора данных. Посредством этого свойства устанавливается жесткий лимит объема используемого пространства. Этот жесткий предел не включает пространство, используемое дочерними элементами, такими как снимки и клоны. |
refreservation |
Число (или "none") |
none |
Свойством определяется минимальный объем пространства, гарантированного для набора данных без учета дочерних элементов, таких как снимки и клоны. Если объем используемого пространства ниже этого значения, то считается, что набор данных занимает пространство, указанное свойством refreservation. Резервирование refreservationучитывается при расчете используемого пространства родительских наборов данных и сопоставляется с квотами и резервированием для родительских наборов данных. Если указано свойство refreservation, то иметь снимок разрешается только при наличии в пуле достаточного свободного пространства (за пределами данного резервирования) для размещения текущего объема байт referenced в наборе данных. Это свойство может также указываться сокращенным именем столбца: refreserv. |
reservation |
Число (или "none") |
none |
Минимальный объем пространства, гарантированного для набора данных и дочерних элементов. Если объем используемого пространства ниже этого значения, то считается, что набор данных занимает указанное резервируемое пространство. Резервирование учитывается при расчете используемого пространства родительских наборов данных и сопоставляется с квотами и резервированием для родительских наборов данных. Это свойство может также указываться сокращенным именем столбца: reserv. Для получения дополнительной информации см. Настройка резервируемого пространства в файловых системах ZFS. |
secondarycache |
Строка |
off |
Управляет содержимым для кэширования в L2ARC. Возможными значениями являются all, none и metadata. При установке на all выполняется кэширование данных пользователя и метаданных. При установке на none кэширование данных пользователя и метаданных не выполняется. При установке на metadata выполняется кэширование только метаданных. По умолчанию установлено значение all. |
setuid |
Логическое значение |
on | |
sharenfs |
Строка |
off |
Определяет доступность файловой системы через NFS и используемые для этого параметры. При выборе значения on команда zfs share вызывается без каких-либо параметров. В противном случае команда zfs share вызывается с параметрами, эквивалентными содержимому свойства. При выборе значения off управление файловой системой осуществляется с использованием старых команд share и unshare и файла dfstab. Для получения дополнительной информации о совместном использовании файловых систем ZFS см. Разрешение и запрет совместного использования файловых систем ZFS. |
snapdir |
Строка |
hidden |
Определяет, является ли каталог .zfs скрытым или видимым в корне файловой системы. Дополнительная информация об использовании снимков приводится в разделе Краткий обзор снимков ZFS. |
type |
Строка |
нет |
Свойство только для чтения, определяющее набор данных как filesystem (файловая система или клон), volume (том) или snapshot (снимок). |
used |
Число |
нет |
Свойство только для чтения, определяющее объем пространства, занимаемого набором данных и всеми дочерними элементами. Подробное описание приведено в разделе Свойство used. |
usedbychildren |
Число |
off |
Доступное только для чтения свойство, определяющее объем пространства, используемого дочерними элементами этого набора данных, который будет освобожден после разрушения всех этих дочерних элементов. Сокращением этого свойства является usedchild. |
usedbydataset |
Число |
off |
Доступное только для чтения свойство, определяющее объем пространства, используемого самим набором данных, которое будет освобождено после разрушения набора данных, после того как сначала будут разрушены любые снимки и удалены любые refreservation. Сокращением этого свойства является usedds. |
usedbyrefreservation |
Число |
off |
Доступное только для чтения свойство, определяющее объем пространства, используемого набором refreservation для этого набора данных, которое будет освобождено при удалении refreservation. Сокращением этого свойства является usedrefreserv. |
usedbysnapshots |
Число |
off |
Доступное только для чтения свойство, которое определяет объем пространства, занимаемого снимками этого набора данных. В частности, это объем пространства, которое будет освобождено в случае разрушения всех снимков этого набора данных. Обратите внимание, что это не просто сумма снимков свойств used, поскольку пространство может совместно использоваться несколькими снимками. Сокращением этого свойства является usedsnap. |
volsize |
Число |
нет |
Указывает логический размер тома. Подробное описание приведено в разделе Свойство volsize. |
volblocksize |
Число |
8 КБ |
Указывает размер блока для томов. После записи тома изменить размер блока невозможно, поэтому его необходимо устанавливать при создании тома. Стандартный размер блока для томов составляет 8 КБ. Допустимым является любой размер от 512 байт до 128 КБ, соответствующий степени двойки. Это свойство может также указываться сокращенным именем столбца: volblock. |
zoned |
Логическое значение |
нет |
Определяет, был ли набор данных добавлен в неглобальную зону. При установке этого свойства точка монтирования в глобальной зоне не определяется, и ZFS не может монтировать такую файловую систему по запросу. Это свойство указывается при первой установке зоны для всех добавляемых файловых систем. Для получения дополнительной информации об использовании ZFS с установленными зонами см. Использование ZFS в системе Solaris с установленными зонами. |
xattr |
Логическое значение |
on |
Активирует или деактивирует расширенные атрибуты для данной файловой системы. По умолчанию установлено значение on. |
Системные свойства, доступные только для чтения, – это свойства, которые могут быть считаны, но не могут указываться вручную. Системные свойства, доступные только для чтения, не наследуются. Некоторые системные свойства применяются только в отношении определенного типа набора данных. В таких случаях в описании в Таблица 6–1 указывается тип набора данных.
Ниже перечислены системные свойства, доступные только для чтения. Их описание приведено в Таблица 6–1.
available
creation
mounted
origin
compressratio
referenced
type
used
Для получения подробной информации см. Свойство used.
usedbychildren
usedbydataset
usedbyrefreservation
usedbysnapshots
Для получения дополнительной информации об учете пространства, включая сведения о свойствах used, referenced и available, см. Учет пространства ZFS.
Объем пространства, занимаемого набором данных и всеми дочерними элементами. Это значение сверяется с квотой и резервированием, указанными для набора данных. Используемое пространство не учитывает резервирование для набора данных, но учитывает резервирование для любых дочерних наборов данных. Объем пространства родительского элемента, занимаемого набором данных, а также объем освобожденного пространства в случае рекурсивного уничтожения набора данных – это большее из объема используемого и объема резервируемого пространства.
При создании снимков их пространство первоначально используется совместно с файловой системой и, возможно, с предшествующими снимками. При изменении файловой системы пространство, которое ранее использовалось совместно, полностью передается снимку и учитывается при определении занятого снимком пространства. Используемое снимком пространство включает только его данные. Кроме того, удаление снимков может увеличить объем пространства, отведенного под другие снимки и используемого этими снимками. Для получения дополнительной информации по вопросам, связанным со снимками и пространством, см. Поведение при недостатке пространства.
При определении объема используемого, доступного и занятого пространства не учитываются отложенные изменения. Как правило, отложенные изменения существуют в течение нескольких секунд. Запись изменения на диск с помощью команды fsync(3c) или O_SYNC не гарантирует немедленного обновления информации об использовании пространства.
Просмотр информации о свойствах usedbychildren, usedbydataset , usedbyrefreservation и usedbysnapshots возможен с помощью команды zfs list - o space. Данные свойства делят свойство used на пространства, занимаемые дочерними элементами. Дополнительная информация приведена в Таблица 6–1.
Настраиваемые системные свойства – это свойства, значения которых могут быть как считаны, так и указаны вручную. Настраиваемые системные свойства указываются с помощью команды zfs set, как описано в разделе Установка свойств ZFS, или с помощью команды zfs create, как описано в разделе Создание файловой системы ZFS. За исключением квот и резервируемого пространства, настраиваемые системные свойства являются наследуемыми. Для получения дополнительной информации о квотах и резервировании см. Настройки квот и резервируемого пространства в ZFS.
Некоторые настраиваемые свойства применяются только в отношении определенного типа набора данных. В таких случаях в описании в Таблица 6–1 указывается соответствующий тип набора данных. Если это не указано специально, свойство применяется в отношении всех типов наборов данных: файловых систем, томов, клонов и снимков.
Ниже перечислены настраиваемые свойства. Их описание приведено в Таблица 6–1.
aclinherit
Подробное описание приведено в разделе Режимы свойств списков ACL.
aclmode
Подробное описание приведено в разделе Режимы свойств списков ACL.
atime
canmount
checksum
compression
copies
devices
exec
mountpoint
primarycache
quota
readonly
recordsize
Подробное описание приведено в разделе Свойство recordsize.
refquota
refreservation
reservation
secondarycache
sharenfs
setuid
snapdir
volsize
Подробное описание приведено в разделе Свойство volsize.
volblocksize
zoned
Если для этого свойства выбрано значение off, то монтирование файловой системы с помощью команды zfs mount или zfs mount -a невозможно. Это значение аналогично установке для свойства mountpoint значения none, за исключением того, что набор данных по-прежнему имеет стандартное свойство mountpoint, которое может наследоваться. Например, для этого свойства можно установить значение off и указать наследуемые свойства для дочерних файловых систем, но сама файловая система не может быть смонтирована или доступна для пользователей. В этом случае родительская файловая система со значением свойства off служит в качестве контейнера с настраиваемыми атрибутами. При этом сам контейнер остается недоступным.
В следующем примере создается пул userpool и для свойства canmount устанавливается значение off. Дочерние пользовательские файловые системы имеют одну общую точку монтирования /export/home . Свойства, устанавливаемые для родительской файловой системы, наследуются дочерними файловыми системами, однако сама родительская файловая система не монтируется.
# zpool create userpool mirror c0t5d0 c1t6d0 # zfs set canmount=off userpool # zfs set mountpoint=/export/home userpool # zfs set compression=on userpool # zfs create userpool/user1 # zfs create userpool/user2 # zfs list -r userpool NAME USED AVAIL REFER MOUNTPOINT userpool 140K 8.24G 24.5K /export/home userpool/user1 24.5K 8.24G 24.5K /export/home/user1 userpool/user2 24.5K 8.24G 24.5K /export/home/user2 |
Если для свойства canmount указано значение noauto, то набор данных можно монтировать только явно (не автоматически). Программное обеспечение Solaris для обновления использует этот параметр таким образом, чтобы во время загрузки монтировались только наборы данных, относящиеся к активной среде начальной загрузки.
Указывает рекомендуемый размер блока для файлов в файловой системе.
Это свойство предназначено исключительно для использования с базами данных, которые обращаются к файлам с записями фиксированного размера. ZFS автоматически регулирует размер блока в соответствии с внутренними алгоритмами, оптимизированными для типичных моделей доступа. Для баз данных, создающих крупные файлы, но обращающихся к файлам в небольших произвольных блоках, эти алгоритмы могут быть близки к оптимальным. Если для свойства recordsize указать значение, превышающее размер записи базы данных или равное ему, производительность может существенно возрасти. Использование этого свойства для универсальных файловых систем достаточно затруднительно и может негативно сказаться на производительности. Можно указать размер не менее 512 и не более 128 КБ, соответствующий степени двойки. Изменение свойства recordsize для файловой системы оказывает влияние только на файлы, созданные после изменения. На существующие файлы изменения не распространяются.
Это свойство может также указываться сокращенным именем столбца: recsize.
Определяет логический размер тома. По умолчанию при создании тома резервируется пространство, равное объему тома. Любые изменения свойства volsize отражаются в эквивалентных изменениях резервируемого пространства. Эти проверки используются для предотвращения непредвиденного с точки зрения пользователей поведения системы. Том, который содержит меньше пространства, чем было указано как доступное, может вызвать непредсказуемое поведение или повреждение данных, в зависимости от способов использования этого тома. Эти последствия также могут возникнуть в случае изменения размера тома в процессе его использования, в частности, при уменьшении размера. При корректировке размера тома необходимо соблюдать особую осторожность.
Несмотря на то что это не рекомендуется, можно создать разреженный том путем установки флага -s для команды zfs create -V или путем изменения резервируемого пространства после создания тома. Разреженный том – это том, резервируемое пространство которого не равно размеру этого тома. В случае разреженного тома изменение свойства volsize не отражается на резервируемом пространстве.
Для получения дополнительной информации об использовании томов см. Тома ZFS.
Помимо стандартных системных свойств, ZFS поддерживает произвольные пользовательские свойства. Пользовательские свойства не влияют на поведение ZFS, но их можно использовать для добавления пользовательской информации к наборам данных.
Имена пользовательских свойств должны соответствовать следующим характеристикам:
содержать символ двоеточия (": "), отличающий их от системных свойств;
содержать буквы в нижнем регистре, числа и следующие знаки пунктуации: ':', '+','.', '_'.
максимальная длина имени пользовательского свойства составляет 256 символов.
Подразумевается, что имя свойства разделяется на следующие два компонента, однако это требование не является обязательным для ZFS:
module:property |
При программном использовании пользовательских свойств для компонента модуль имен свойств следует указать имя домена DNS, элементы которого представлены в обратном порядке. Это позволит снизить вероятность использования двух независимо созданных пакетов с одним именем свойства в различных целях. Имена свойств, начинающиеся с com.sun., зарезервированы для использования Sun Microsystems.
Значения пользовательских свойств имеют следующие характеристики:
произвольные строки, которые всегда наследуются и никогда не проверяются на правильность;
максимальное значение пользовательского свойства составляет 1024 символа.
Пример:
# zfs set dept:users=finance userpool/user1 # zfs set dept:users=general userpool/user2 # zfs set dept:users=itops userpool/user3 |
Все команды, выполняемые по отношению к свойствам, например zfs list, zfs get, zfs set и т. д., могут использоваться для управления как системными, так и пользовательскими свойствами.
Пример:
zfs get -r dept:users userpool NAME PROPERTY VALUE SOURCE userpool dept:users all local userpool/user1 dept:users finance local userpool/user2 dept:users general local userpool/user3 dept:users itops local |
Для сброса пользовательского свойства используется команда zfs inherit. Пример:
# zfs inherit -r dept:users userpool |
Если свойство не определено ни в одном родительском наборе данных, оно удаляется полностью.