Renuncia de responsabilidad:
La versión original de este artículo fue publicada por IBM
developerWorks y es propiedad de Westtech Information Services. Este
documento es una versión actualizada del artículo original y contiene
mejoras introducidas por el Equipo de Documentación de Gentoo.
Este documento carece de soporte activo.
|
Particionamiento en acción, Parte 2
1.
Consolidación de datos
Introducción
En mi anterior consejo,
movimos apropiadamente /home a una nueva partición. Ahora, es el
momento de aprender cómo consolidar archivos modificados frecuentemente en una
nueva partición. ¿Por qué queremos hacer esto? He aquí un ejemplo. Los archivos
modificados frecuentemente contribuyen extraordinariamente a la fragmentación.
Una de las mejores formas de minimizar su efecto, es almacenar los archivos
modificados frecuentemente en su propia partición. De esta forma, las otras
particiones no se verán afectadas por la fragmentación de los archivos
modificados muy a menudo. El concepto es fácil de entender, pero ¿como podemos
hacerlo?
Primero, debemos crear una nueva partición para el propósito concreto de
almacenar todos los archivos modificados muy a menudo. Se puede querer usar
otro disco duro separado para incrementar el rendimiento. Entonces, seguimos
los pasos para mover tanto /tmp como /var a una nueva
partición.
Aviso:
La siguiente técnica describe cómo mover partición(es). Aunque esta técnica
está diseñada para que uno pueda regresar sobre sus pasos de un fallo al
moverla, no protege de errores de usuario. En otras palabras, siempre que uno
formatea particiones o se copia gran número de archivos, existe la posibilidad
de teclear un comando equivocadamente y causar la pérdida de muchos datos. Por
esta razón, se recomienda encarecidamente tomar todos pasos necesarios
adecuadamente para hacer una copia de seguridad de todos los archivos
importantes antes de proceder.
|
Crear un sistema de ficheros en la nueva partición
El primer paso de este procedimiento es crear una nueva partición lo
suficientemente grande como para alojar /var y /tmp,
con algo de espacio adicional. Se necesita o bien una unidad libre o bien otra
partición no usada que contendrá los archivos modificados frecuentemente. De
resultar necesario usar fdisk o cfdisk para crear la nueva
partición, se necesitará reiniciar el sistema una vez. Entonces, es el momento
de formatear la nueva partición como indicamos (no hay problema si se está en
modo multi-usuario mientras se hace esto; (indicaré cuándo es necesario pasar a
modo mono-usuario):
Listado de Código 1.1: Creación del sistema de ficheros |
# mkfs.ext2 /dev/???
|
2.
La Montamos en /mnt/variable
Como en mi anterior consejo, debe reemplazarse ??? por el nombre
del dispositivo para la nueva partición vacía que estamos creando. Teclear
accidentalmente el número de partición equivocado, provocará que perdamos todos
los datos en esa otra partición, ¡hay que tener mucho cuidado! Después de
teclear este comando tendremos un sistema de ficheros ext2 completamente nuevo
en la recién creada partición. Estamos casi listos para montarla, pero primero,
vamos a crear un nuevo punto de montaje.
Listado de Código 2.1: Creación de un punto de montaje |
# mkdir /mnt/variable
|
He elegido el nombre variable para recordarnos que esta partición
en concreto va a ser usada específicamente para contener ficheros de los que se
va a leer y en los que se va a escribir frecuentemente. Para montar la
partición tecleamos:
Listado de Código 2.2: Montar la partición |
# mount /dev/??? /mnt/variable
|
3.
Creación de un nuevo /tmp
La partición está montada y estamos listos para crear nuestro nuevo directorio
/tmp:
Listado de Código 3.1: Creación del nuevo /tmp |
# cd /mnt/variable
# mkdir tmp
# chmod 1777 tmp
|
4.
Pasar a modo mono-usuario
Nuestro nuevo directorio en /mnt/variable/tmp tiene los permisos
correctos para un directorio temporal. Ahora, se pasa a modo de usuario único,
dado que debemos copiar desde /var. Como siempre, hemos retrasado
este paso lo máximo posible. Ahora, no podemos permitir que ningún programa lea
o escriba datos en /var, así que debemos detener todos los
demonios, desconectar a todos los usuarios y hacer algo de mantenimiento
tecleando:
Listado de Código 4.1: Entrar en modo mono-usuario |
# init 1
|
Si se nos pregunta, debemos entrar la contraseña de root para realizar el
mantenimiento del sistema. Deberíamos tener un intérprete de comandos root
ahora y se detendrán todos los demonios innecesarios. Creamos una nueva
localización para los archivos de /var tecleando:
Listado de Código 4.2: Creación del nuevo directorio |
# cd /mnt/variable
# mkdir var
|
5.
Copiar /var
Los permisos por defecto en nuestro nuevo directorio /mnt/variable/var
deberían ser correctos, así pues, estamos listos para copiar el
contenido de /var en la nueva partición::
Listado de Código 5.1: Copiado de datos |
# cd /var
# cp -ax * /mnt/variable/var
|
6.
Copia de seguridad y creación de enlaces simbólicos
Cuando este comando concluya, tendremos una copia exacta de /var
en /mnt/variable/var. Ahora, nos estaremos preguntando cómo hacer
que Linux use /mnt/variable/var y /mnt/variable/tmp
en lugar de los que hay por defecto en el sistema de ficheros raíz. Puede
hacerse fácilmente mediante el uso de enlaces simbólicos -- crearemos los
nuevos enlaces simbólicos, /tmp y /var, que apuntarán
a los directorios correspondientes en /mnt/variable. Primero,
crearemos una copia de seguridad de los directorios originales:
Listado de Código 6.1: Copia de seguridad de los directorios |
# cd /
# cp var var.anterior
# cp tmp tmp.anterior
|
El último comando será probablemente innecesario, dado que es muy probable que
no se tenga nada importante en /tmp, pero vamos a hacerlo de la
forma más segura posible. Ahora, se crean los enlaces simbólicos:
Listado de Código 6.2: Creación de los enlaces simbólicos |
# cd /
# ln -s /mnt/variable/var /var
# ln -s /mnt/variable/tmp /tmp
|
7.
Toques finales en /etc/fstab
Ahora, cuando cualquier usuario o programa use /var, se redirigirá
automáticamente a /mnt/variable/var, al igual que con /tmp
. Aún nos queda un paso más, pero puede ser realizado de forma segura en
modo multi-usuario nuevamente. Es el momento de poner Apache en funcionamiento
de nuevo y de permitir a todos los usuarios que puedan entrar de nuevo al
sistema. Salimos del nivel de ejecución 1 presionando CTRL-D. El sistema
debería iniciarse normalmente. Entramos como root.
El último paso que debemos dar consiste en configurar /etc/fstab
para que monte /dev/??? en /mnt/variable. Se debe
añadir una línea como la siguiente en /etc/fstab:
Listado de Código 7.1: Configuración de fstab |
/dev/??? /mnt/variable ext2 defaults 1 2
|
Importante:
Si se tiene un kernel del rango 2.3+, es muy probable que se tenga una línea
como la siguiente en /etc/fstab:
|
Listado de Código 7.2: Memoria compartida |
none /var/shm shm defaults 0 0
|
Esta línea habilita la memoria compartida en el sistema, y se monta por defecto
en /var. Para que este parámetro funcione correctamente, debe
aparecer justo después de la línea que acabamos de añadir. De esta forma,
cuando se inicia Linux, /mnt/variable se montará primero
(habilitando /var). Entonces, y sólo entonces, el dispositivo de memoria
compartida shm se montará en /var/shm, aunque en realidad sea
/mnt/variable/var/shm. Hay que asegurarse de que las líneas están
en este orden:
Listado de Código 7.3: Habilitar la memoria compartida |
/dev/??? /mnt/variable ext2 defaults 1 2
none /var/shm shm defaults 0 0
|
Después de guardar los cambios en /etc/fstab, ¡el sistema se habrá
actualizado correctamente! Después de verificar que todo está funcionando
correctamente, se podrán eliminar los directorios de las copias de seguridad
/tmp.anterior y /var.anterior. Enhorabuena -- se han
reconfigurado las particiones del sistema para alcanzar un rendimiento óptimo.
Recursos
Acerca del autor
Daniel Robbins vive en Albuquerque, New Mexico. Él fue el Presidente/CEO de
Gentoo Technologies Inc., el Arquitecto Jefe del Proyecto Gentoo y contribuye
como autor de varios libros publicados por MacMillan: Caldera OpenLinux
Unleashed, SuSE Linux Unleashed y Samba Unleashed. Daniel se ha visto
involucrado en el mundo de las computadoras de algún modo desde segundo grado
cuando se expuso al lenguaje de programación Logo y a una potencialmente letal
dosis de Pac Man. Ésto probablemente explica porqué ha sido un artista de
gráficos en SONY Electronic Publishing/Psygnosis. Daniel disfruta pasando el
tiempo con su mujer Mary y con su hija, Hadassah. Se puede contactar con Daniel
en Daniel Robbins.
|