Las propiedades del conjunto de datos se administran mediante los subcomandos set, inherit y get del comando 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).
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 |
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).
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 |
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).
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 nombre literal se puede utilizar con una lista separada por comas de propiedades como se definen en la sección Introducción a las propiedades de ZFS.
Una lista separada por comas de los campos literales, name, value, property, y source, que deben salir seguidos por un espacio y un argumento, que es una lista separada por comas de las propiedades.
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 |