—¡Aló, soporte técnico!
—¡$#%&%/$!...

—¡#%&#)*!...
—¡Listo! ya está arreglado, que tengas un buen día.

miércoles, 26 de febrero de 2014

Sistema de archivos en Linux (2da. Parte)


En la parte anterior aprendimos sobre los archivos y directorios en un sistema tipo UNIX, observamos las diferencias entre cada uno de los subdirectorios de la raíz del sistema operativo.

Ahora veamos que son las particiones, las rutas absolutas y relativas y cómo montar y desmontar sistemas de archivos.

Particiones:

En la instalación del sistema operativo Linux uno de los pasos más importantes es el particionamiento. Existen dos tipos de particiones en un sistema Linux:

Particiones de datos y particiones de swap.

Partición de datos: datos normales del sistema Linux, incluyendo la partición raíz que contiene todos los datos para poner en marcha y ejecutar el sistema.
Partición de swap: es la expansión de la memoria física de la computadora, memoria adicional en el disco duro.

Las particiones estándar de Linux tienen el número 82 para swap y 83 para los datos, este último puede ser ext3 o ext2 en los sistemas más antiguos. Con el utilitario fdisk se puede crar las particiones sin tener que recordar estos valores, pero es importante saber que existen y diferenciarlos. Además de ext3 o ext2, linux soporta muchos otros tipos de sistemas de archivos, sin embargo uno de los mas usados es el ext3 y es que que usaremos aquí.

En el caso de servidores es común particionar con una herramienta llamada LVM. LVM proporciona una vista de alto nivel del almacenamiento en disco. Esto le da al administrador del sistema una mayor flexibilidad en la asignación de almacenamiento para aplicaciones y usuarios.

Ahora bien:
¿Qué es un Physical Volume ?
Es la partición física en el disco duro (o cualquier dispositivo de bloques USB, RAID, cintas, etc) con el sistema de archivos LVM, esta partición puede ser completa o parcial del disco duro y es lo que se habilita para ser incluida en un grupo de volumenes. De ahora en adelante denominado "pv".

¿Qué es un Volume Group ?
Son grupos de volúmenes físicos (pv) que se usan como si fuera un solo disco, toman su capacidad total de entre los pv asignados a el. De ahora en adelante denominado "vg".

¿Qué es un Logical Volume ?
Es la parte del LVM que formateamos con un sistema de archivos y que luego anexamos a nuestro sistema para poder almacenar información. Estos se crean dentro de un vg (grupo de volumen). De ahora en adelante denominado "lv".

Supongamos que necesitamos crear un "lv" de 5 Gb en el "vg" con nombre "primero" creado en el "pv" /dev/sdb.

# dd if=/dev/zero of=/dev/sdb bs=1k count=1
# pvcreate /dev/sdb
# vgcreate primero /dev/sdb
# lvcreate -L 5G -n lv_primero primero

El primer comando limpia la partición y la inicializa
el segundo crea la pv /dev/sdb
el tercero crea el vg llamado primero dentro del pv /dev/sdb
el cuarto crea el lv llamado lv_primero de tamaño 5 Gb dentro del vg primero




Aunque no existe una forma universalmente correcta de particionar, Linux necesita al menos una (1) partición, sin embargo se recomiendan al menos tres (3):
Partición raíz que contendrá el sistema operativo,
partición swap para el intercambio de memoria virtual,
partición home para los usuarios y sus archivos personales.

Si vamos a configuar un servidor también se recomienda separar las siguientes particiones:

/var
/tmp
/boot

Es importante hacer una planificación de capacidad antes de instalar el servidor para que se pueda definir correctamente el tamaño de cada partición.

La manera tradicional es tener la raíz en una partición pequeña y particiones separadas para /usr y /home. Siguiendo esta sencilla práctica evitaremos que esa partición se corrompa en caso de caídas y/o se quede sin espacio por que las demás particiones ocupen el espacio en el disco duro.

Cuando se crean las particiones deberán permanecer juntos los siguientes directorios: /bin, /etc, /dev, /initrd, /lib, y /sbin. El contenido de ellos es requerido para el arranque (boot) y deberán siempre ser parte de la partición /.

/var y /tmp se recomienda que estén separados dado que son directorios que están constantemente cambiando en su contenido, no tenerlo separados puede ocasionar que deje sin espacio para las demás particiones.

El esquema original de las PC's fue creado para permitir tan solo cuatro (4) particiones primarias. Como ya habrán observado son pocas, para ello se han inventado las particiones extendidas, estas se crean a partir de una partición primaria que se subdivide en muchas sub-particiones extendidas. Estas se comportan como particiones primarias pero son creadas de manera diferente. No existe ninguna diferencia de velocidad o rendimiento en ellas. La enumeración de las particiones extendidas siempre inicia en 5 para diferenciarse de las primarias.

Ejemplo de un servidor con varias particiones:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             8.0G  1.3G  6.7G  16% /
/dev/sda1             256M   46M  210M  22% /boot
/dev/sda3             4.9G  4.0G  670M  86% /usr
/dev/sda5             4.9G  2.1G  2.5G  46% /var
/dev/sda7              31G   24G  5.6G  81% /home
/dev/sda8             4.9G  2.0G  670M  43% /opt


Rutas absolutas y relativas:

Ya aprendimos que el directorio raíz se representa con  / y se pronuncia barra. Las rutas absolutas son aquellas que describen el camino a partir del directorio raíz. Con ello tendrás acceso al sistema de archivos completo incluido directorios y archivos.

Escriba pwd en su terminal y obtendrá como respuesta una ruta absoluta.

Ahora bien, las rutas relativas no inician con /, estas rutas referencian al contenido dentro del directorio actual de trabajo. Con ello se logra acortar las rutas.

Por ejemplo, dado que el ejercicio de pwd anterior arroja que estamos en /home/mahernandezg sabemos por el comando ls que tenemos un directorio llamado blog dentro de el y queremos acceder a el. Tan solo debemos escribir cd blog y esto nos llevará inmediatamente a /home/mahernandezg/blog.

Prestemos atención a estas referencias rápidas:

.. hace referencia a al directorio padre
. hace referencia al directorio actual
~ hace referencia al directorio home del usuario actual

# cuando está en el prompt indica que el usuario que está conectado es común
$ cuando está en el prompt indica que el usuario que está conectado es root (administrador del sistema)

Manejo del sistema de archivos:

¿Qué significa las particiones sda1, sda2, sdb1 etc. que vimos en la sección de particiones?
hd o sd significa disco duro, la diferencia entre uno y otro es que el sd hace referencia a discos SATA y hd a discos anteriores a SATA, por lo general IDE. Por lo tanto si tenemos varios discos duros denominaremos al primero como sda, al segundo como sdb y así sucesivamente. Dentro de una cada disco se crearan las particiones siendo, al menos, las cuatro (4) primeras particiones primarias sda1, sda2, sda3 y sda4 y de ahi en adelante hará referencia a las particiones extendidas: sda5... por lo tanto si observamos algo como esto sdb3 significará el segundo disco del PC la tercera partición.

En el archivo /etc/fstab podremos observar todos los dispositivos que podemos montar y los que están montados. En el archivo /etc/mtab encontraremos solamente los que están montados. Entonces, si requerimos montar un dispositivo usaremos el comando mount y para el desmontaje usaremos el comando umount.
Ejemplo:
mount /dev/sdb1 /backups
Esto montará en la primera partición del segundo disco del PC un directorio para llamado /backups.
El comando para el desmontaje de esto sería:
umount /dev/sdb1 /backups

Con el comando df podremos observar la información estadística de los sistemas de archivos montados. Ver el ejemplo:

No hay comentarios: