Sondeo

Si ya probaste GNOME 3...

¿Te gustó GNOME 3?

  •  Si
  •  No
Este sondeo tiene 5 preguntas más.
Resultados
Más sondeos | 1,805 votos | 7 comentarios
Atención: 20 al 24 de febrero, Curso Global de Servidores con CentOS 6.
Atención: 21 y 28 de enero, 4 y 11 de febrero, Taller de programación de Python.
Atención: Disponible ALDOS 1.4.2. Nuestro sistema operativo para escritorio.

Cómo asignar cuotas de disco en GNU/Linux.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir, y comunicar públicamente la obra, y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer, y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento, y los derivados de éste se proporcionan tal cual son, y los autores no asumirán responsabilidad alguna si el usuario, o lector, hace mal uso de éstos. Esta licencia deberá aparecer como primer texto del documento distribuido

Introducción.

La utilización de cuotas de disco permite a los administradores de sistemas realizar la gestión eficiente del espacio compartido en disco por múltiples usuarios. Las cuotas restringen la capacidad de los usuarios para acceder hacia los recursos de sistema, tales como bloques (asignación de unidades), e inodos (entradas del sistema de archivos). Cuando una cuota es excedida se aplica una política determinada por el administrador. Las cuotas se administran por sistema de archivos individuales, y son únicas para usuarios o grupos.

Acerca de las cuotas de disco.

Una cuota de disco es un límite establecido por un administrador, el cual restringe ciertos aspectos del uso del sistema de archivos. El objetivo de las cuotas de disco es limitar, de forma razonable, el espacio utilizado en el sistema de archivos.

Acerca de Inodos.

De acuerdo a Wikipedia, un inodo, nodo-i, o también nodo índice, es una estructura de datos propia de los sistemas de archivos en sistemas operativos tipo POSIX (Portable Operating System Interface for Unix), como GNU/Linux. Un inodo contiene las características (permisos, fechas, y ubicación) de un archivo regular, directorio, o cualquier otro elemento que pueda contener el sistema de archivos.

Cada inodo queda identificado en el sistema de archivos por un número entero único, y los directorios recogen una lista de parejas formadas por un número de inodo, y un nombre identificativo que permite acceder a un archivo en particular. Cada archivo tiene un único inodo, pero puede tener más de un nombre en distintos lugares, o incluso en el mismo directorio, para facilitar su localización.

Acerca de Bloques.

De acuerdo a Wikipedia, un bloque es la cantidad más pequeña de datos que pueden transferirse en una operación de entrada/salida entre la memoria principal de una computadora, y sus dispositivos periféricos, o viceversa.

Equipamiento lógico necesario.

Instalación a través de yum.

Si se utiliza de CentOS 5, o Red Hat™ Enterprise Linux 5, o bien versiones posteriores de éstos, se puede instalar lo necesario ejecutando lo siguiente:

yum -y install quota

Procedimientos.

Durante la instalación, debió asignarse una partición dedicada para, por mencionar un ejemplo, los directorios /var, y /home.

Edite el archivo /etc/fstab.

vim /etc/fstab

Si utiliza CentOS 6 o Red Hat Enterprise Linux 6, puede utilizar cuotas con registro por diario (journaled quotas), similar al registro por diario de los sistemas de archivos Ext3/Ext4, lo cual hace más complicado que se dañen los archivos que corresponden a las cuotas de disco en caso de un apagado incorrecto.

Edite el archivo /etc/fstab:

Añada a las opciones de las particiones /var, y /home, los parámetros usrjquota=aquota.user, grpjquota=aquota.group, y jqfmt=vfsv0:

/dev/mapper/LogVol03  /var   ext4  defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0  1 2
/dev/mapper/LogVol04   /home  ext4  defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0  1 2

Nota.

Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, debe añadir en el archivo /etc/fstab los parámetros usrquota, y grpquota a las líneas que definen la configuración de las particiones /var, y /home:

LABEL=/var	/var	ext3	defaults,usrquota,grpquota	1 2
LABEL=/home 	/home	ext3	defaults,usrquota,grpquota	1 2

Deben aplicarse los cambios a las particiones, ya sea reiniciando el sistema, o bien ejecutando los siguientes mandatos:

mount -o remount /var
mount -o remount /home

Lo anterior vuelve a leer las opciones de montado de cada una de las particiones, y aplicá los cambios inmediatamente.

Nota.

En CentOS 5 y Red Hat Enterprise Linux 5, se deben crear además los archivos aquota.user, aquota.group, quota.user, y quota.group, los cuales se utilizarán en adelante para almacenar la información, y estado de las cuotas, en cada partición.

cd /var
touch aquota.user aquota.group quota.user quota.group
cd /home
touch aquota.user aquota.group quota.user quota.group

Este paso es innecesario en CentOS 6 y Red Hat Enterprise Linux 6.

Ejecutar el mandato quotacheck con las opciones -avugm, donde a significa que se verifican todos los sistemas de archivos con soporte para cuotas de disco, v significa que se devuelvan mensajes descriptivos, u significa que se verifiquen cuotas de usuario, g significa que se verifiquen cuotas de grupo, y m significa que se evite re-montar en modo de sólo lectura los sistemas de archivos, que idealmente se utiliza cuando se tiene procesos trabajando en las particiones:

quotacheck -avugm
Nota.

En CentOS 5 y Red Hat Enterprise Linux 5, la primera vez que se ejecuta el mandato anterior es normal que devuelva advertencias, refiriéndose a posibles archivos truncados, que en realidad son debido a que se trataba archivos vacíos, generados por el mandato touch, sin información. Si se ejecuta de nuevo quotacheck -avugm, deberá mostrar una salida sin advertencia alguna.

Para activar las cuotas de disco recién configuradas, ejecute los siguientes dos mandatos:

quotaon /var
quotaon /home

Edquota.

Es importante conocer que significa cada columna mostrada por el mandato edquota.

Blocks: Bloques. Corresponde a la cantidad de bloques de 1 Kb que está utilizando el usuario.

Inodes: Inodos. Corresponde al número de archivos que está utilizando el usuario. Un inodo (también conocido como Index Node) es un apuntador hacia sectores específicos de disco duro en los cuales se encuentra la información de un archivo. Contiene además la información acerca de permisos de acceso así como los usuarios, y grupos a los cuales pertenece el archivo.

Soft: Limite de gracia. Limite de bloques de 1 KB o inodos que el usuario tiene permitido utilizar, y que puede rebasar hasta que sea excedido el periodo de gracia (de modo predeterminado son 7 días).

Hard: Limite absoluto. Limite que no puede ser rebasado por el usuario bajo circunstancia alguna.

Para asignar cuotas de disco a cualquier usuario o grupo, se ejecuta el mandato edquota, especificando como argumento el nombre del usuario:

edquota fulano

Lo anterior deberá devolver algo similar a lo siguiente a través de vi u otro editor de texto simple:

Disk quotas for user fulano (uid 501):
Filesystem    blocks     soft     hard   inodes     soft     hard
/dev/sda7          0        0        0        0        0        0
/dev/sda5         24        0        0       10        0        0

Cuota absoluta.

Suponiendo que se quiere asignar una cuota de disco de 50 MiB para el usuario «fulano» en en /dev/sda7, y /dev/sda5, se utilizaría lo siguiente:

Disk quotas for user fulano (uid 501):
Filesystem    blocks     soft     hard   inodes     soft     hard
/dev/sda7          0        0    51200        0        0        0
/dev/sda5         24        0    51200       10        0        0

El usuario siempre podrá rebasar una cuota de gracia pero nunca una cuota absoluta.

Cuota de gracia.

El sistema tiene, de modo predeterminado, un periodo de gracia de 7 días, el cual se puede modificar con el mandato edquota -t:

edquota -t

Donde se puede establecer un nuevo periodo de gracia, ya sea por días, horas, minutos, o segundos.

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem    Block grace period     Inode grace period
/dev/hdb7                  7days                  7days
/dev/hdb5                  7days                  7days

La cuota de gracia establece los límites de bloques o inodos que un usuario tiene en una partición. Cuando el usuario excede el límite establecido por la cuota de gracia, el sistema advierte al usuario que se ha excedido la cuota del disco sin embargo permite al usuario continuar escribiendo hasta que trascurre el tiempo establecido por el periodo de gracia, tras el cual al usuario se le impide continuar escribiendo sobre la partición. Suponiendo que quiere asignar una cuota de gracia de 25 MiB en /dev/sda7, y /dev/sda5, la cual podrá ser excedida hasta por 7 días, se utilizaría lo siguiente:

Disk quotas for user fulano (uid 501):
Filesystem    blocks     soft     hard   inodes     soft     hard
/dev/sda7          0    25600        0        0        0        0
/dev/sda5         24    25600        0       10        0        0

Aplicando cuotas de forma masiva.

Si se quiere que todo aplique para los usuarios existentes, a partir de UID 510, por ejemplo, suponiendo que utilizará la cuota de disco del usuario «pepito» como plantilla (note por favor los dos acentos graves en el mandato, justo antes de awk, y al final del mandato, pues se trata de un carácter diferente al apostrofe), ejecute lo siguiente:

edquota -p pepito `awk -F: '$3 > 510 {print $1}' /etc/passwd`

Comprobaciones.

Utilice el mandato edquota con el usuario fulano.

edquota fulano

Asigne al usuario «fulano» una cuota de gracia de 25 MiB, una cuota absoluta de 50 MiB, un límite de gracia de 1000 archivos, y un límite absoluto de 1500 archivos, en todas las particiones con cuota de disco habilitada:

Disk quotas for user fulano (uid 501):
Filesystem    blocks     soft     hard   inodes     soft     hard
/dev/sda7          0    25600    51200        0     1000     1500
/dev/sda5         24    25600    51200       10     1000     1500

Desde otra terminal, o ejecutando su -l fulano, acceda hacia el sistema como el usuario fulano, y ejecute el mandato quota:

quota

Observe con detenimiento la salida:

Disk quotas for user fulano (uid 501):
Filesystem  blocks    quota   limit   grace   files   quota   limit   grace
/dev/sda7        0        0   51200   25600       1       0    1500    1000
/dev/sda5       24        0   51200   25600      10       0    1500    1000

Realice una copia del directorio /usr/lib como el sub-directorio ~/prueba-cuotas dentro de su directorio de inicio:

cp -r /usr/lib ~/prueba-cuotas

Notará que llegará un momento en el que el sistema indicará que ya no es posible continuar copiando contenido dentro de ~/prueba-cuotas debido a que se ha agotado el espacio en la partición.

Utilice de nuevo el mandato quota, y observe con detenimiento la salida, en donde aparecerá un asterisco justo junto a la cantidad en la columna de bloques bloques, el cual indica que se ha excedido la cuota del disco:

Disk quotas for user fulano (uid 501):
Filesystem  blocks    quota   limit   grace   files   quota   limit   grace
/dev/sda7        0        0   51200   25600       1       0    1500    1000
/dev/sda5    51200*       0   51200   25600   1500*       0    1500    1000

Para poder volver a escribir sobre la partición, es necesario liberar espacio. Debido a que muy probablemente parte del contenido de /usr/lib se copió en modo de sólo lectura, cambie primero los permisos del contenido del directorio, a fin de disponer de permisos de lectura y escritura:

chmod -R u+w ~/prueba-cuotas

Elimine por completo el directorio ~/prueba-cuotas:

Y, finalmente, vuelva a ejecutar el mandato quota:

rm -fr ~/prueba-cuotas

Y, finalmente, vuelva a ejecutar el mandato quota:

quota

Última Edición 21/11/2011, 18:44|29,547 Accesos Ver la versión para imprimir