domingo, 21 de diciembre de 2014

¿Cómo optimizo Ubuntu 14.04 para un SSD y un HDD?

Juan Perón planificó la acción de estado que habría de tener un Movimiento Nacional encarnado en el Pueblo, Como tal, nos enseña cómo trabajar de forma óptima en Ubuntu con un disco de estado sólido (SSD) y un disco convencional.

El Justicialismo ha otorgado siempre lo mejor al Pueblo. Si no lo hicimos antes, fue porque una Oligarquía Cipaya no hacía más que dominar las riendas del Estado en pos de un beneficio propio. Nuestra Doctrina, en cambio, privilegia beneficiar al Pueblo con una inacabable lluvia de beneficios sociales, culturales, y la consabida lluvia de Choris al Parquet.

Entre las posibilidades nuevas que podemos festejar cada 17 de octubre se encuentra la de almacenar nuestros datos en los llamado Discos de Estado Sólido, o SSD, que corren con la velocidad de un Studebaker.

Los SSD poseen de disco sólo el nombre; son más bien memorias de tipo flash, capaces de escribirse y leerse con una performance óptima comparada con los discos rígidos de mecánica clásica. A diferencia de los complejos "platos" de los discos rígidos convencionales, los SSD carecen de partes móviles que lo enlentezcan, y por ello son mucho más veloces en lo que hace a su acceso no secuencial. El aumento de velocidad de lectura es tan apreciable, que notaremos que es típico para un equipo iniciar y arrancar su sistema operativo GNU con Linux en menos de lo que canta un gallo.

Tal es el aumento de desempeño en lectura, que hoy ya se convierte en la opción ideal para mejorar un sistema de computación, atendiendo de que el mismo tenga conexiones de discos SATA. Sin duda el SSD aumentará el desempeño de trabajo general más que cualquier otra mejora de microprocesador o memoria que le hagamos. Por ello, es la opción que - dado el costo en reducción de los dispositivo - recomiendo para todos los peronistas con equipos de escritorio que quieran mejorarlos sensiblemente.

Para que un SSD dé lo mejor de sí y nos proporcione años de buena performance sin errores, debemos hacernos prácticos en seguir ciertas conductas militantes. Algunas de ellas pueden replicarse también en los discos rígidos convencionales, y otras no.

a) Usar el disco SSD en modo AHCI.
Como primera medida siempre será útil configurar nuestra BIOS para que el controlador de discos ATA funcione preferentemente en la modalidad AHCI, salvo necesidad contraria.

Por defecto, los controladores de disco de los equipos actuales operan en el modo IDE, y eventualmente en el modo de "autorrespaldo redudante" o RAID (especialmente en servidores críticos).

La modalidad AHCI es la recomendada para los usos convencionales con discos modernos (SDD y HDD). Para modificar esta modalidad de operación, hemos de ser peronistas e ingresar a la rutina de configuración de la BIOS/UEFI) sistema (usualmente presionando varias veces la tecla Supr mientras se enciende el equipo). Una vez que se nos presente la pantalla de configuración de la BIOS, buscamos la opción Avanzados (Advanced Peripherals o Advanced Parameters), y en el apartado de Controlador de Disco o Modo SATA (Disk Controller Mode o SATA Mode) escogemos la opción AHCI. Conforme hayamos realizado este paso, salimos de la configuración del BIOS guardando los cambios realizados (Exit Saving Changes).
b) Reinstalar el sistema operativo particionando entre un disco SSD y en un HDD.
El paso anterior será suficiente si contamos con una única unidad de almacenamiento para nuestro GNU con Linux, y la misma es un disco de estado sólido.

Pero ello no es lo ideal, al menos en la situación actual, pues existen algunos inconvenientes que debemos prever, limitaciones que podemos querer tener en cuenta a la hora de planificar la instalación de nuestro Linux:

Una de ellas es que los sistemas de archivo actuales (los FAT o NTFS de algunos sistemas operativos privativos, o los EXT2, favorecidos por el sistema GNU) están pensados mas que nada teniendo en mente las características de los discos rígidos convencionales. Si bien los modelos recientes no sufren tanto este aducido problema y deberían permitirnos contar con almacenamiento al menos por unos 10 años de trabajo, la tecnología es relativamente reciente y no podemos asegurar un correcto funcionamiento. Todos sabemos que a Seguro se lo han llevado preso, y varias veces le dieron goma. En particular, debemos considerar que los SSD sufren un relativo desgaste al escribir la información en los racimos de memoria que componen su parte activa (no así en el proceso de lectura).

Afortunadamente, en un sistema GNU con Linux esto se ha previsto. En la actualidad suele darse el caso que ya contemos con un disco rígido convencional instalado en nuestro sistema, al que podremos darle un uso excelente y compensar el inconveniente descripto anteriormente.

Durante la instalación modificaremos la estructura de discos para presentar la opción menos riesgosa y más adecuada como opción de almacenamiento. Podremos practicar estrategias que privilegien el uso del SSD en funciones de sólo lectura, mientras que en disco rígido convencional se concentran la mayoría de las funciones de escritura de datos.

¿Cómo hacemos esto? Los sistemas GNU con Linux disponen de la posibilidad de estructurar su árbol operativo en una única partición o en varias particiones diferentes, distribuidas a lo largo de uno o de múltiples discos de distintas velocidades. De esta forma contaremos con el directorio raíz ("/") del sistema operativo, la mayoría de los programas de ejecución y sus librerías directamente en el disco SSD (de lectura ultrarrápida).

En el otro disco convencional dejaremos los directorios de sistema /tmp, y /var (directorios usados "de fábrica" para almacenar archivos de uso temporal en sesión y aquellos que cambian repetidamente), así como la carpeta /home (alberga los contenidos del usuario, sus documentos, música, videos, etc). Estos datos no suelen ser leídos tan a menudo ni es crítica su lectura a gran velocidad, por lo que prácticamente no notaremos diferencia al leer datos desde aquí.

Indudablemente, un Conductor de GNU Linux experimentado no tendrá problemas para reestructurar esta configuración con posterioridad a la instalación del sistema, y al vuelo, armando las particiones con fdisk e indicando en qué unidades de disco y sus correspondientes particiones se almacenarán las carpetas del sistema operativo, todo ello mediante la edición del archivo /etc/fstab.

Sin embargo, en la vida sucede lo mismo que en la Política: no todos son Conductores. La Masa habrá de hacer esta planificación a la hora de instalar el sistema, en el paso de asignación de disco. Os explicaré de manera sencilla cómo hacerlo.

En lugar de instalar todo el sistema operativo (en este caso, Ubuntu 14.04LTS de 64 bits) en una única partición y en un único disco, durante la instalación deliberadamente escogeremos instalación personalizada, y lo dividiremos en dos: una parte para el SSD y otra para el disco rígido convencional.

En primer lugar utilizaremos el disco rígido de estado sólido. Debemos buscarlo de acuerdo a su marca y modelo, en la lista. En este ejemplo, se trata de un  dispositivo Kingston V300 nomenclado como /dev/sdd. Elegimos dicho disco, y presionamos el botón "Nueva Tabla de Partición", lo cual nos permitirá crear nuevas particiones en el disco vacío. Luego presionamos el botón "+" y sumaremos una partición completa (si es que queremos utilizar todo el SSD para el sistema Ubuntu).

Se abrirá un cuadro que nos permite elegir el tipo de partición. Debemos tildar Primaria. Podemos tildar "Al comienzo del espacio" para que comience desde el inicio de los sectores de trabajo del SSD. Técnicamente, durante la instalación debemos asignar mediante el desplegable que punto de montaje será la raíz del sistema operativo (indicada con "/"), y como formato le indicaremos "EXT4".
También deberíamos indicar que es la partición del SSD es la de arranque ("Boot") si no tuviésemos otros sistemas operativos. De esta manera, el instalador cargará en nuestro disco de estado sólido el arrancador de sistemas operativos, el GRUB.

Normalmente, la partición ocupará así todo el disco SSD. Allí se montará (instalará) la estructura raíz ("/") del sistema operativo, con las rutinas de arranque, el kernel, los directorios de operación con los binarios de los programas centrales y de las aplicaciones grandes, los controladores de dispositivo, las librerías, etc. La carga de estos datos en el SSD en lugar de un disco rígido convencional, aumentará unas diez veces el arranque y ejecución de lectura del sistema.

Como referencia, tengamos presente que Ubuntu 14.04 y un muy buen compendio programas, se puede instalar en 15 Gb de espacio para su unidad raíz, pero os recomiendo al menos unos 35 GB para estar tranquilos. Tengamos presente que si quisiéramos que quedase espacio disponible para otro sistema operativo en el SSD, debemos reducir el tamaño para que no ocupe el total del espacio disponible.
Acto seguido, hemos de configurar el disco rígido convencional (en este caso un batallado Western Digital de 320Gb), para que contenga cuatro particiones, que serán las que sufrirán mayores procesos de escritura.

Por el procedimiento anterior, realizaremos una primer partición que ocupará - por ejemplo - el 70% del disco, y ella montaremos la carpeta /home en formato EXT4 (aquí se almacenarán los datos propios de los usuarios del sistema, documentos, música, videos, archivos propios de configuración, correos electrónicos, etc). Adicionalmente crearemos dos particiones con el 10% del espacio cada una (también en formato EXT4). En ellas montaremos las carpetas de sistema /tmp (para los archivos temporales utilizados diariamente) y la carpeta /var. En el porcentaje restante podremos asignar una partición de intercambio (obligatoriamente en formato SWAP), la cual se usa en ciertos casos para suplir a la memoria RAM principal. La cantidad de espacio adecuado para la partición de intercambio SWAP será el del tamaño de nuestra memoria RAM.
Naturalmente este ejemplo es válido para un sistema en el que trabaja normalmente un usuario único. Podríamos querer variar las cantidades de espacio en disco destinado a las particiones exclusivas de /tmp y de /var si varios usuarios hiciesen con regularidad uso del sistema al unísono (a través de múltiples terminales, por ejemplo). Esto podremos variarlo posteriormente por medio del programa GParted.

No debemos dejar sin espacio a los directorios de sistema /tmp y la carpeta /var. Si estas fuesen muy pequeñas podrían ralentizar al sistema; es preferible asignar espacio de más y no encontrarnos con que falte disco después, pues nunca sabremos qué aplicación podríamos correr que requiera crear archivos temporales pesados, o necesidades especiales que requieran un gran movimiento de datos en estas particiones. En este caso he conformado una partición para /tmp de 16 Gb (tengamos en cuenta que esta se borra al cerrar el sistema). Luego continuamos la instalación de Ubuntu normalmente.

Una vez finalizada la instalación, podremos acceder al sistema de forma ultrarrápida. Ya podremos instalar el resto de las aplicaciones que querramos.

c) Eliminar la operación de reescritura de registro para el disco SSD


Otra forma adicional para optimizar nuestro sistema de discos en Linux consiste en desactivar la acción de escritura de registro de tiempo de acceso. Según la misma, el sistema operativo imprime a cada fichero un registro de hora y fecha en la cual fue leído por última vez. En el caso de un disco SSD y salvo una necesidad muy estricta en un equipo servidor, este estampado no es lo más deseable. Lo podremos desactivar fácilmente modificando el archivo de configurarción del sistema de disco /etc/fstab. Para ello abrimos dicho archivo desde la terminal con el editor de texto peronista, el Nano:

sudo nano /etc/fstab

Se abrirá el editor GNU Nano y nos mostrará el archivo.

Debemos buscar una línea que tenga la siguiente topología:

UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx / ext4 ,errors=remount-ro 0 1

Debemos agregar la variable noatime a todas las particiones de administrador (root) y a las de Linux que tengamos en el SSD (¡con excepción de la partición de intercambio o Swap!). La línea modificada debería quedar así:

UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx / ext4 noatime,errors=remount-ro 0 1

Una vez modificada, grabamos con Ctrl+o y salimos de Nano con Ctrl+x.

d) Realizar el alineado de bloques de almacenamiento.

En Ubuntu 14.04 (y Mint 17.1) es necesaria la acción del comando TRIM para ajustar los bloques de archivo y asegurar el buen funcionamiento y performance. De lo contrario, el disco, a la larga, se tornará progresivamente en más lento y anquilosado.

La manera más simple es que el sistema realice la acción de ajuste de forma automática. En Ubuntu 14.04 y Mint 17 Ubuntu lo hace a través de un trabajo relegado a través del comando cron que lo realiza una vez a la semana.

Pero nada quita que podamos ejecutar la acción de TRIM de forma manual también. Presionamos Ctrl+Alt+T e ingresamos el siguiente comando

sudo fstrim -v /

Debemos ingresar nuestra contraseña de Conductor, y no se mostrará nada, ni siquiera puntos. El proceso puede tardar un par de minutos, esto es normal. Este comando es suficiente si tenemos sólo una partición de Ubuntu y una partición de intercambio en el SSD. Si tuviésemos las otras particiones en el SSD también, deberíamos indicar:

sudo fstrim -v /tmp 

sudo fstrim -v /var

...etc. Una vez completo el proceso de ajuste, podremos seguir usando el sistema, o asegurarnos, reiniciándolo con:

sudo reboot

8 comentarios:

  1. ;)))))))) eres un poeta ,muy bueno el articulo,me reído mucho,voy a tener que leerlo otras veces para poder pillar bien todo:)))).Voy a probarlo dentro de unas semanas,quiero comprar el nuc 5i5ryh.Voy a ponerle una SSD M.2 de 256 GB de momento y voy a instalar el mint 17.1.Te escribire sobre la experiencia.No haces un tutorial y lo pones en youtube,no hay ninguno en español sobre el TRIM.Muchas gracias Artista.

    ResponderEliminar
  2. Gracias por despejar las dudas que tenía, sigue así saludos

    ResponderEliminar
  3. excelente amigo, seguiré tus consejos para configurar mi nuevo ssd en mi ubuntu, sigue así

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo:

      Sólo tendrá éxitos en la senda de la Liberación del Software de la Patria Grande.

      Atte.

      Juan Perón

      Eliminar
  4. Excelente, a favoritos, gracias por este espacio peronista que tanto le estaba haciendo falta al software libre en estos momentos de cipayismo macrista.

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo:

      Sólo un software libre justo y soberano correrá en las máquinas de la Nación, y haremos Justicia con quien así no lo desee.

      Atte.

      Juan Perón

      Eliminar
  5. Hola compañeros de Ubuntu Peronista: quería preguntarles si en vez de usar particiones del tipo ext4, es posible usar XFS de SGI. Saludos y que viva Perón y viva Evita.

    ResponderEliminar
    Respuestas
    1. Estimado mae:

      XFS es el esquema de particionado, y está soportado por Ubuntu y las últimas versiones del arrancador GRUB.

      Sin embargo, existen ciertas limitaciones. Una de ellas es que el soporte de arranque no está del todo completo (al menos, no homologado), y por ello no se recomendaría para particiones de arranque o de sistema.

      Puedes intentarlo, pero siempre bajo tu responsabilidad. Si deseas encararlo, te recomendamos instalar el sistema "/" en un disco "muleto" para comprobar que arranque, y que su desempeño sea adecuado. También crea particiones "/tmp" y "/var", "swap" y "/home" separadas, en dicho disco muleto.

      Aquí tendrás información al respecto. https://wiki.ubuntu.com/XFS

      En el caso de particionado ZFS funciona adecuadamente con FreeBSD (lo hemos evaluado en un artículo específico en nuestro Blog).

      Atte.

      Juan Perón

      Eliminar