Gestión de sistemas de archivos ZFS en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Diciembre de 2014
 
 

Establecimiento de cuotas en sistemas de archivos ZFS

Las cuotas en los sistemas de archivos ZFS se pueden configurar y visualizar mediante los comandos zfs set y zfs get. En el siguiente ejemplo, se define una cuota de 10 GB en tank/home/jeff:

# zfs set quota=10G tank/home/jeff
# zfs get quota tank/home/jeff
NAME            PROPERTY  VALUE  SOURCE
tank/home/jeff  quota     10G    local

Las cuotas también influyen en la salida de los comandos zfs list y df. Por ejemplo:

# zfs list -r tank/home
NAME                USED  AVAIL  REFER  MOUNTPOINT
tank/home          1.45M  66.9G    36K  /tank/home
tank/home/eric      547K  66.9G   547K  /tank/home/eric
tank/home/jeff      322K  10.0G   291K  /tank/home/jeff
tank/home/jeff/ws    31K  10.0G    31K  /tank/home/jeff/ws
tank/home/lori      547K  66.9G   547K  /tank/home/lori
tank/home/mark       31K  66.9G    31K  /tank/home/mark
# df -h /tank/home/jeff
Filesystem            Size  Used Avail Use% Mounted on
tank/home/jeff         10G  306K   10G   1% /tank/home/jeff

Tenga en cuenta que, si bien tank/home tiene un espacio en disco disponible de 66.9 GB, tank/home/jeff y tank/home/jeff/ws solo cuentan con 10 GB de espacio en disco disponible para cada uno, debido a la cuota de tank/home/jeff.

Puede establecer un valor de refquota en un sistema de archivos que limite la cantidad de espacio en el disco que puede consumir el sistema de archivos. Este límite fijo no incluye el espacio en el disco consumido por descendientes. Por ejemplo, la cuota de 10 GB de studentA no se ve afectada por el espacio utilizado por las instantáneas.

# zfs set refquota=10g students/studentA
# zfs list -t all -r students
NAME                          USED  AVAIL  REFER  MOUNTPOINT
students                      150M  66.8G    32K  /students
students/studentA             150M  9.85G   150M  /students/studentA
students/studentA@yesterday      0      -   150M  -
# zfs snapshot students/studentA@today
# zfs list -t all -r students
students                      150M  66.8G    32K  /students
students/studentA             150M  9.90G   100M  /students/studentA
students/studentA@yesterday  50.0M      -   150M  -
students/studentA@today          0      -   100M  -

Para mayor comodidad, puede establecer otra cuota en un sistema de archivos para administrar mejor el espacio que consumen las instantáneas. Por ejemplo:

# zfs set quota=20g students/studentA
# zfs list -t all -r students
NAME                          USED  AVAIL  REFER  MOUNTPOINT
students                      150M  66.8G    32K  /students
students/studentA             150M  9.90G   100M  /students/studentA
students/studentA@yesterday  50.0M      -   150M  -
students/studentA@today          0      -   100M  -

En esta situación hipotética, studentA puede entrar en conflicto con el límite físico de refquota (10 GB), pero studentA puede eliminar archivos que recuperar aunque haya instantáneas.

En el ejemplo anterior, la menor de las dos cuotas (10 GB si se compara con 20 GB) aparece en la salida zfs list. Para ver el valor de las dos cuotas, use el comando zfs get. Por ejemplo:

# zfs get refquota,quota students/studentA
NAME               PROPERTY  VALUE              SOURCE
students/studentA  refquota  10G                local
students/studentA  quota     20G                local

Establecimiento de las cuotas de usuarios y grupos en un sistema de archivos ZFS

Puede definir la cuota de un grupo o un usuario mediante el uso de los comandos zfs userquota y zfs groupquota, respectivamente. Por ejemplo:

# zfs create students/compsci
# zfs set userquota@student1=10G students/compsci
# zfs create students/labstaff
# zfs set groupquota@labstaff=20GB students/labstaff

Visualice la cuota del grupo o la del usuario actual como se indica a continuación:

# zfs get userquota@student1 students/compsci
NAME              PROPERTY            VALUE               SOURCE
students/compsci  userquota@student1  10G                 local
# zfs get groupquota@labstaff students/labstaff
NAME               PROPERTY             VALUE                SOURCE
students/labstaff  groupquota@labstaff  20G                  local

Puede mostrar el uso general del espacio en el disco del usuario o grupo mediante la consulta de las propiedades siguientes:

# zfs userspace students/compsci
TYPE        NAME      USED  QUOTA
POSIX User  root      350M   none
POSIX User  student1  426M    10G
# zfs groupspace students/labstaff
TYPE         NAME      USED  QUOTA
POSIX Group  labstaff  250M    20G
POSIX Group  root      350M   none  

Para identificar el uso individual del espacio en el disco de un usuario o grupo, consulte las propiedades siguientes:

# zfs get userused@student1 students/compsci
NAME              PROPERTY           VALUE              SOURCE
students/compsci  userused@student1  550M               local
# zfs get groupused@labstaff students/labstaff
NAME               PROPERTY            VALUE               SOURCE
students/labstaff  groupused@labstaff  250                 local

Las propiedades de cuotas de grupos y usuarios no se muestran si utiliza el comando zfs get all del conjunto de datos, que muestra una lista de todas las propiedades del sistema de archivos.

Puede eliminar la cuota de un grupo o usuario como se indica a continuación:

# zfs set userquota@student1=none students/compsci
# zfs set groupquota@labstaff=none students/labstaff

Las cuotas de usuarios o grupos en sistemas de archivos ZFS proporcionan las siguientes funciones:

  • La cuota de un usuario o grupo que se define en un sistema de archivos superior no la hereda automáticamente un sistema de archivos descendiente.

  • Sin embargo, la cuota del grupo o usuario se aplica cuando se crea una instantánea o un clon a partir de un sistema de archivos que tiene una cuota de grupo o usuario. Del mismo modo, se incluye una cuota de usuario o grupo en el sistema de archivos cuando se crea una secuencia mediante el comando zfs send, incluso sin opción –R.

  • Los usuarios sin privilegios solo pueden acceder al uso de su propio espacio en el disco. El usuario raíz o el usuario al que se le haya concedido el privilegio userused o groupused, puede acceder a la información de cálculo de espacio de grupos o usuarios de todos.

  • Las propiedades userquota y groupquota no se pueden establecer en volúmenes de ZFS, en un sistema de archivos anterior a la versión 4, o en una agrupación anterior a la versión 15.

La aplicación de cuotas de usuario o grupo puede retrasarse en varios segundos. Este retraso significa que un usuario puede exceder su cuota antes de que el sistema perciba que se ha sobrepasado la cuota y que rechace la acción de escritura con posterioridad al mensaje de error EDQUOT.

Puede utilizar el comando quota heredado para revisar las cuotas del usuario en un entorno NFS; por ejemplo, donde se haya montado un sistema de archivos ZFS. Sin ninguna opción, el comando quota solo muestra la salida si se ha superado la cuota del usuario. Por ejemplo:

# zfs set userquota@student1=10m students/compsci
# zfs userspace students/compsci
TYPE        NAME      USED  QUOTA
POSIX User  root      350M   none
POSIX User  student1  550M    10M
# quota student1
Block limit reached on /students/compsci

Si reinicia la cuota de usuario y el límite de cuota ya no se supera, podrá utilizar el comando quota –v para revisar la cuota del usuario. Por ejemplo:

# zfs set userquota@student1=10GB students/compsci
# zfs userspace students/compsci
TYPE        NAME      USED  QUOTA
POSIX User  root      350M   none
POSIX User  student1  550M    10G
# quota student1
# quota -v student1
Disk quotas for student1 (uid 102):
Filesystem     usage  quota  limit    timeleft  files  quota  limit    timeleft
/students/compsci
563287 10485760 10485760           -      -      -      -           -