LPIC 102.1 Diseño de la estructura del disco duro

Introducción:

Comenzamos la semana y con esto la segunda lección a mi entender una lección que sería mejor que viniera la primera antes de la anterior ya que aprenderemos como instalar el sistema desde cero y como gestionar los distintos paquetes instalados. No obstante entiendo el razonamiento del orden de estudio de la LPI ya que en la primera lección dabamos cuestiones de hardware que son al fin y al cabo las de más bajo nivel.

Y dicho esto comencemos con la lección propiamente dicha. De nuevo se hace hincapie en que vamos a estudiar instalaciones a nivel de linux en general no se trata de guías de instalación de ninguna distribución en concreto, se trataran temas generales. En cuanto la gestión de paquetería nos centraremos en la gestión de paquetes en Debian (lección 4) y la gestión de paquetes en RedHat (lección 5). No nos olvidamos del boot manager (lección 2) ni de las librerías (lección 3). Vamos pues con el tema de hoy en el que hablaremos del diseño del layout del disco duro.

Al instalar un sistema Linux más allá de la decisión del idioma del instalador alguna otra pregunta lo primero a lo que nos enfrentaremos será al particionado del disco duro. Que estructura queremos que tenga esto. El particionado del sistema no es una cuestión meramente organizativa si no que dependiendo del sistema que queramos montar será conveniente hacerlo de una determinada forma o de otra. Y es precisamente lo que estudiaremos hoy. Comencemos:

System considerations

Existen varias variables que haran que elijamos una estructura en nuestro disco duro u otra esas son: tamaño del disco, lo que ocupa el sistema, para que será usado el sistema y como se realizarán los backups.

Limited disk space

El primer escenario en el que nos encontramos es uno con espacio en disco limitado. Normalmente se tiende a tratar de conseguir dejar la mayor cantidad de espacio disponible en la parte del usuario, para que este pueda trabajar con mayor holgura. No obstante he de añadir yo que esto puede variar dependiendo de la función del sistema, en determinados sistemas es posible que el espacio reservado para usuarios prácticamente no se utilice. Cada administrador de sistemas debe valorar el uso de su sistema y tratar de elegir la opción más correcta. Pero algo en común de las instalaciones en discos con espacio limitado es el reducir al mínimo el número de particiones. Podríamos decir que el número mínimo para una buena instalación de linux es:

  • /boot Es suficiente con una pequeña cantidad de megas, es necesario tener en cuenta que debe ser la primera de las particiones. Normalmente con un centenar de megas es más que suficiente y puede reducirse hasta 50mb.
  • / el directorio raíz es donde se instala el sistema. Aquí depende mucho del sistema que queráis montar. Dado que los sistemas avanzan cada poco tiempo no creo que hagan preguntas en el examen en terminos absolutos. No obstante en la documentación nos dicen la cifra de 850mb. Pero yo ahora mismo tengo una debian base sin entorno gráfico con servidor LAMP y con poco más ya que no hay mucha tontería y sube ligeramente del 1gb de ocupación en disco. Esta partición es donde se guardará todo lo que no este en /boot
  • swap Es un tipo de partición especial. En el libro de oreilly nos hablan de que si solo contamos con 1gb para la instalación dejaremos 100mb para la swap esto me parece totalmente obsoleto. Usualmente no suele dejarse una swap menor que el tamaño de la memoria RAM instalada.

Larger systems:

En estos sistemas ya tendremos discos más grandes y podremos planear estrategias de backup así como el fragmentar más la partición. En el libro de oreilly nos dan estos valores para un disco de 100gb:

  • /boot 100mb
  • swap 1gb
  • / minimo 500mb
  • /usr 4gb ya que aqui se guardan los ejecutables
  • /var 2gb ya que aqui se guardan los logs de las distintas aplicaciones. Si se llenase la partición podría afectar a la estabilidad del sistema así que es mejor ir sobrados de espacio aquí.
  • /tmp 500mb aquí se guardan los ficheros temporales. Conviene de nuevo que este separada y que sea grande ya que si el sistema no puede escribir en /tmp podríamos decir que afecta a la estabilidad del sistema, aunque es quedarse cortos ya que lo que suele ocurrir es que se bloquea la máquina.
  • /home aquí iría el resto del espacio para los usuario, es decir 90gb

Muchas veces estos discos están replicados o estan montados en remoto y demás.

Nota propia: Encuentro que en este capítulo el libro de oreilly esta terriblemente obsoleto (a pesar de estar revisado en el 2009) y no termino de ver el sentido real de estudiar tamaños absolutos del disco. Personalmente me quedaría con los conceptos más que con las cifras, las particiones que es comveniente crear y y que particiones es conveniente que sean más grandes. Repito que dependiendo del sistema es muy posible que no necesitemos carpetas de home tan grandes, por ejemplo en un servidor web las carpetas de home a penas se utilizan. Entiendo que este layout esta pensado para servidores a los que accederán multiples (bastantes) usuarios. Una vez hecha la aclaración prosigamos.

Mount points

Los mount points son conocidos en español como los puntos de montaje. Para poder acceder a una partición es necesario que estos esten montados en un directorio y a esto se le conoce como mount point. Para poder montar una partición en un directorio primero tendrás que crearla y ya una vez creada montarla con el comando mount. Si no quieres montar la partición de forma manual será necesario que las incluyas en el fichero /etc/fstab con la sintaxis adecuada. Lo que haya aquí se montará en el arranque del sistema.

Superblock

El superbloque es un bloque que tiene cada filesystem que contiene la información metadata con la estructura de ese filesystem. La iformación que se incluye aquí es el tipo, el tamaño y el estado del filsystem montado. Dado que esta información es importante esta información se encuentra replicada y puede ser restaurada desde una de las copias en caso de que el superbloque se

MBR:

Son las siglas para master boot record, se trat ade un pequeño programa que contiene la información con las particiones del disco y la carga del sistema operativo. El MBR esta situado siempre en los primero 512 bytes del disco. En caso de dañarse el MBR será imposible arrancar, por lo que es más que conveniente guardar un backup de esto. Para ello podremos hacer uso del comando dd y clonar solo los primeros 512 bytes gracias a las variables count = 1 bs=512. La restauración del MBR se podrá hacer por tanto haciendo uso del mismo comando pero alterando el orden de los comandos.

Booting from a USB device:

Al igual que se puede arrancar desde un cd es posible arrancar linux desde un usb. Pero hay que tener en cuenta que los discos usb pueden ser modificados. Esto es muy util para tener un sistema portable que llevarte a donde quieras y además al arrancar desde aquí podemos montar los discos del ordenador dentro desde nuestro sistema arrancado desde el usb y usarlo para hacer troubleshooting.

Para poder arrancar desde el usb necesitamos hacer arrancable el usb para lo cual una partición debe tener el flag de bootable activado, así como activar el arranque desde este dispositivo en la BIOS.

System role

Como adelantaba anteriormente dependiendo de la funcionalidad que se le vaya a dar al sistema el layout que se elija para diseñar el sistema cambiará. Lo cierto es que hoy en día el almacenamiento se ha abaratado enormemente y no es el quebradero de cabeza que era antes. Personalmente mi consejo es mejor que sobre a que falte 😉 Además en la actualidad es muy viable tener datos cargados externamente por red por medio de sistemas NFS.

Backup

Es un hecho el que debemos implementar una política de backup en nuestros sistemas. Debemos ser capaces de poder recuperar el sistema en caso de que ocurra un desastre. El mejor backup sería aquel que cuenta que cuenta con todos los datos en todo momento y se pueden recuperar instantaneamente. No obstante este backup ideal no existe y siempre hay algún inconveniente.

Una posibilidad de hacer backup sería el uso del comando dd que ya hemos comentado anteriormente. Este comando hace un backup bit a bit de los datos de un disco/partición mediante us uso podemos clonar discos duros completos. También es posible hacer un backup de la estructura de las particiones mediante el comando “sfdisk -d /dev/disco_duro > particiones_bk.txt” . Para recuperarlas haríamos algo parecido pero en sentido contrario “sfdisk /dev/disco_duro < particiones_bk.txt"

Swap space:

Al instalar linux tendrás que instalar una partición de swap, esto es una partición para la memoria virtual. Para que nos entendamos esto es una memoria ram que se almacena en el disco duro, normalmente esto sucede cuando la memoria ram se agota. Historicamente la regla no escrita en linux era la de hacer una partición que fuera el doble de la cantidad de ram, sucede que con el aumento de la cantidad de ram en la actualidad muchas veces la swap se deja en el mismo tamaño que la ram o incluso en una cantidad fija que es a veces menor que la cantidad de ram. En sistemas de escritorio con grandes cantidades de ram se opta incluso por la desactivación de la ram, pero digamos que esto es algo muy extremo.

General guidelines

Ahora mi parte preferida unos consejos generales sobre este tema:

  • Mantener el filesystem de root (/) lo más sencillo posible dividiendo fragmentando el resto tanto como sea posible.
  • Hacer una partición a parte para la partición de /boot en bios y kernels antiguos es nesario que esta este por debajo del cilindro 1024
  • Separar /var y así asegurarnos de que tenemos suficiente espacio para gestionar los logs, spools y los mails. Es conveniente ir rotando aquí los ficheros haciendo una copia de los más antiguos ficheros y borrandolos.
  • Separar /tmp y así no correr el riesgo de bloquear el sistema porque tmp crezca desmesuradamente
  • Separar /usr y asegurarse de que va bien de espacio ya que aquí estan los ejecutables y también entre otras cosas el kernel del sistema.
  • Separar el /home así aunque tengamos varios usuarios podrán usar el sistema y aunque cambiemos de máquina o hagmaos un upgrade podremos consevar estos datos. Además así un usuario que crezca demasiado no nos bloqueará el sistema.
  • El tamaño de la swap se recomienda que sea de 2 veces el tamaño de la memoria ram o si no al menos de igual tamaño que esta.

Conclusión:

Este libro de oreilly que estamos utilizando para seguir el curso es parte del grupo de los “in a nutshell” estos libros nos dan una visión global y no entran en los temas en profundidad. Esto tenemos que tenerlo en cuenta para ampliar los conocimientos en cada momento y no quedarnos en lo que dice el libro en todo capítulo. No obstante en este capítulo en especial me parece que esto esta bastante poco documentado y lo que hay es bastante antiguo. Personalmente os recomiendo leer un poco más sobre el tema y hacer varias instalaciones de linux para familiarizaros con esto. Os dejo a modo de lista unos cuantos caminos y rutas que deberías dominar para llevar bien este punto:

  • fdisk
  • /usr/local
  • /opt
  • /mnt
  • /media
  • gnu parted
  • ext3, ext4, reiserfs, JFS, XFS, FAT, HFS, HFS+, UDF, NTFS
  • mkfs -t

En realidad algunos de estos comandos, especialmente los últimos son utilizados y estudiados para lo que estudiaremos en el tema 4 por lo que podría parecer lejano, pero esta muy relacionado con esto y en mi opinión viene bien ir echándoles un ojo desde ya. Aunque ahora mismo este tema solo tenga como objetivos comprender la configuración de arranque creo que no viene mal ir ampliando un poquito.

4 comentarios en “LPIC 102.1 Diseño de la estructura del disco duro

  1. Jur, esa imagen fue muy fondo hace muchos muchos años (cuando era Linuxero :P).

    Sí, nunca comento y para una vez que lo hago es una chorrada, pero oye, al menos doy señales de vida, jeje.

    1. Si tio que recuerdos! 🙂 Fue por tus inicios linuxeros por los que llegué a tu blog 🙂 Gracias por el comentario y oye no es ninguna chorrada se agradecen todos los comentarios además anda que no tienes gravatar molón ni nada 😉

      Un saludete!

Los comentarios están cerrados.