Guía de administración de Oracle Solaris ZFS

Administración de propiedades de ZFS

Las propiedades del conjunto de datos se administran mediante los subcomandos set, inherit y get del comando zfs.

Configuración de propiedades de ZFS

Puede utilizar el comando zfs set para modificar cualquier propiedad configurable del conjunto de datos. También puede usar el comando zfs create para establecer las propiedades cuando se crea el conjunto de datos. Para obtener una lista de propiedades del conjunto de datos configurables, consulte Propiedades nativas de ZFS configurables.

El comando zfs set toma una secuencia de propiedad/valor con el formato de propiedad=valor y un nombre de conjunto de datos. Sólo se puede establecer o modificar una propiedad durante cada invocación de zfs set.

El ejemplo siguiente establece la propiedad atime en off para tank/home.


# zfs set atime=off tank/home

Además, cualquier propiedad del sistema de archivos se puede establecer al crear el sistema. Por ejemplo:


# zfs create -o atime=off tank/home

Puede especificar valores numéricos de propiedades mediante el uso de sufijos sencillos (en orden creciente de importancia): BKMGTPEZ. Cualquiera de estos sufijos puede ir seguido de una b opcional que indica los bytes, con la excepción del sufijo B, que ya indica los bytes. Las cuatro invocaciones siguientes de zfs set son expresiones numéricas equivalentes que indican que la propiedad quota se puede establecer en el valor de 50 GB en el sistema de archivos tank/home/marks:


# zfs set quota=50G tank/home/marks
# zfs set quota=50g tank/home/marks
# zfs set quota=50GB tank/home/marks
# zfs set quota=50gb tank/home/marks

Los valores de propiedades no numéricas distinguen mayúsculas de minúsculas y deben estar en minúsculas, excepto mountpoint y sharenfs. Los valores de estas propiedades pueden tener caracteres en mayúscula y minúscula.

Para obtener más información sobre el comando zfs set, consulte zfs(1M).

Herencia de propiedades de ZFS

Todas las propiedades configurables, con la excepción de cuotas y reservas, heredan el valor del conjunto de datos superior, a menos que en el descendiente se establezca explícitamente una cuota o reserva. Si ningún superior tiene un valor explícito establecido para una propiedad heredada, se usa el valor predeterminado para la propiedad. Puede utilizar el comando zfs inherit para eliminar un valor de propiedad y, de este modo, hacer que el valor se herede del elemento superior.

El ejemplo siguiente utiliza el comando zfs set para activar la compresión para el sistema de archivos tank/home/bonwick. A continuación, zfs inherit se utiliza para desconfigurar la propiedad compression; de este modo, la propiedad hereda el valor predeterminado de off. Como ni home ni tank tienen la propiedad compression configurada localmente, se utiliza el valor predeterminado. Si ambos tienen activada la compresión, se utiliza el valor configurado en el superior más inmediato (home en este ejemplo).


# zfs set compression=on tank/home/bonwick
# zfs get -r compression tank
NAME             PROPERTY      VALUE                    SOURCE
tank             compression   off                      default
tank/home        compression   off                      default
tank/home/bonwick compression   on                      local
# zfs inherit compression tank/home/bonwick
# zfs get -r compression tank
NAME             PROPERTY      VALUE                    SOURCE
tank             compression   off                      default
tank/home        compression   off                      default
tank/home/bonwick compression  off                      default

El subcomando inherit se aplica de forma recursiva cuando se especifica la opción -r. En el ejemplo siguiente, el comando hace que el valor de la propiedad compression: sea heredado por tank/home y cualquier descendiente que pudiera haber:


# zfs inherit -r compression tank/home

Nota –

Si se utiliza la opción -r, se borra la configuración actual de la propiedad en todos los conjuntos de datos descendientes.


Para obtener más información sobre el comando zfs inherit, consulte zfs(1M).

Consulta de las propiedades de ZFS

La forma más sencilla de consultar los valores de las propiedades es mediante el comando zfs list. Para obtener más información, consulte Visualización de información básica de ZFS. Sin embargo, en el caso de consultas y secuencias de comandos complejas, use el comando zfs get para proporcionar información detallada en un formato personalizado.

Puede utilizar el comando zfs get para recuperar cualquier propiedad del conjunto de datos. El ejemplo siguiente muestra la manera de recuperar un solo valor de propiedad en un conjunto de datos:


# zfs get checksum tank/ws
NAME             PROPERTY       VALUE                      SOURCE
tank/ws          checksum       on                         default

La cuarta columna, SOURCE, indica el origen de este valor de propiedad. La tabla siguiente define los posibles valores de origen.

Tabla 6–3 Valores posibles de SOURCE (zfs get)

Valor de origen 

Descripción 

default

Este valor de propiedad nunca se ha configurado explícitamente para este conjunto de datos ni sus superiores. En esta propiedad se utiliza el valor predeterminado. 

inherited from nombre_conjunto_datos

El valor de esta propiedad se hereda del superior, tal como especifica nombre_conjunto_datos.

local

El valor de esta propiedad se ha configurado explícitamente para este conjunto de datos mediante zfs set.

temporary

El valor de esta propiedad se ha establecido mediante la opción zfs mount - o y sólo es válida durante el ciclo de vida del montaje. Para obtener más información sobre las propiedades de puntos de montaje temporales, consulte Uso de propiedades de montaje temporales.

- (none) 

Esta propiedad es de sólo lectura. Su valor lo ha generado ZFS. 

Puede utilizar la palabra clave especial all para recuperar todos los valores de propiedades del conjunto de datos. Los ejemplos siguientes usan la palabra clave all:


# zfs get all tank/home
NAME       PROPERTY              VALUE                  SOURCE
tank/home  type                  filesystem             -
tank/home  creation              Tue Jun 29 11:44 2010  -
tank/home  used                  21K                    -
tank/home  available             66.9G                  -
tank/home  referenced            21K                    -
tank/home  compressratio         1.00x                  -
tank/home  mounted               yes                    -
tank/home  quota                 none                   default
tank/home  reservation           none                   default
tank/home  recordsize            128K                   default
tank/home  mountpoint            /tank/home             default
tank/home  sharenfs              off                    default
tank/home  checksum              on                     default
tank/home  compression           off                    default
tank/home  atime                 on                     default
tank/home  devices               on                     default
tank/home  exec                  on                     default
tank/home  setuid                on                     default
tank/home  readonly              off                    default
tank/home  zoned                 off                    default
tank/home  snapdir               hidden                 default
tank/home  aclmode               groupmask              default
tank/home  aclinherit            restricted             default
tank/home  canmount              on                     default
tank/home  shareiscsi            off                    default
tank/home  xattr                 on                     default
tank/home  copies                1                      default
tank/home  version               4                      -
tank/home  utf8only              off                    -
tank/home  normalization         none                   -
tank/home  casesensitivity       sensitive              -
tank/home  vscan                 off                    default
tank/home  nbmand                off                    default
tank/home  sharesmb              off                    default
tank/home  refquota              none                   default
tank/home  refreservation        none                   default
tank/home  primarycache          all                    default
tank/home  secondarycache        all                    default
tank/home  usedbysnapshots       0                      -
tank/home  usedbydataset         21K                    -
tank/home  usedbychildren        0                      -
tank/home  usedbyrefreservation  0                      -
tank/home  logbias               latency                default

Nota –

Las propiedades casesensitivity, nbmand, normalization, sharesmb, utf8only y vscan no están totalmente operativas en la versión Oracle Solaris 10 porque el servicio Oracle Solaris SMB servicio no es compatible con la versión Oracle Solaris 10.


La opción -s de zfs get permite especificar, por tipo de origen, las propiedades que mostrar. Esta opción toma una lista separada por comas que indica los tipos de origen deseados. Sólo aparecen las propiedades con el tipo de origen especificado. Los tipos de origen válidos son local, default, inherited, temporary y none. El ejemplo siguiente muestra todas las propiedades que se han establecido localmente en pool.


# zfs get -s local all pool
NAME             PROPERTY      VALUE                      SOURCE
pool             compression   on                         local

Cualquiera de las opciones anteriores se puede combinar con la opción -r para mostrar de forma recursiva las propiedades especificadas en todos los subordinados del conjunto de datos indicado. En el ejemplo siguiente, todas las propiedades temporales de todos los conjuntos de datos en tank aparecen de forma recursiva:


# zfs get -r -s temporary all tank
NAME             PROPERTY       VALUE                      SOURCE
tank/home          atime          off                      temporary
tank/home/bonwick  atime          off                      temporary
tank/home/marks    atime          off                      temporary

Puede consultar los valores de las propiedades mediante el comando zfs get sin especificar un sistema de archivos de destino, lo cual significa que el comando funciona en todas las agrupaciones o los sistemas de archivos. Por ejemplo:


# zfs get -s local all
tank/home               atime          off                    local
tank/home/bonwick       atime          off                    local
tank/home/marks         quota          50G                    local

Para obtener más información sobre el comando zfs get, consulte zfs(1M).

Consulta de propiedades de ZFS para secuencias de comandos

El comando zfs get admite las opciones -H y - o, diseñadas para secuencias de comandos. Puede utilizar la opción -H para omitir información de cabecera y sustituir un espacio en blanco con el carácter de tabulación. El espacio en blanco uniforme permite el fácil análisis de los datos. Puede utilizar la opción -o para personalizar la salida de los modos siguientes:

El ejemplo siguiente muestra la forma de recuperar un valor simple mediante las opciones -H y -o de zfs get:


# zfs get -H -o value compression tank/home
on

La opción -p informa de valores numéricos como sus valores exactos. Por ejemplo, 1 MB se especifica como 1000000. Esta opción puede usarse de la forma siguiente:


# zfs get -H -o value -p used tank/home
182983742

Puede utilizar la opción -r junto con una de las opciones anteriores para recuperar de forma recursiva los valores solicitados para todos los descendientes. El ejemplo siguiente utiliza las opciones -H, -o y - r para recuperar el nombre del conjunto de datos y el valor de la propiedad used para export/home y sus descendientes, mientras se omite la salida de cualquier encabezado:


# zfs get -H -o name,value -r used export/home
export/home             5.57G
export/home/marks       1.43G
export/home/maybee      2.15G