Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

Mostrando entradas con la etiqueta Suse. Mostrar todas las entradas
Mostrando entradas con la etiqueta Suse. Mostrar todas las entradas

sábado, 30 de enero de 2016

Preload: Qué es y para qué sirve

En esta ocasión quiero hablaros de uno de los recursos más útiles y usados en el mundo de Linux para mejorar el rendimiento del sistema operativo en general, esta utilidad requiere que pase algo de tiempo para que nosotros notemos alguna diferencia; se trata de la utilidad preload, un paquete de software que monitoriza nuestro sistema y determina qué aplicaciones son las que más usamos, haciendo que éstas se pre-carguen en la memoria RAM para poder usarlas con mayor rapidez. Obviamente el determinar qué es lo más usado requiere que la aplicación lleve instalada un tiempo, con lo que hasta pasados unos días no notaremos ninguna diferencia en el equipo. Esta aplicación es especialmente útil en entornos de escritorio, si bien puede ser perfectamente usada en servidores.

velocimetro

Esta aplicación es un demonio, es decir una aplicación que corre en segundo plano, así que una vez instalada no tendremos que preocuparnos por ella a menos que queramos aplicarle alguna configuración personalizada. Dicho así todo suena fantástico, si bien la preload no está instalado en el sistema... Afortunadamente, la gran mayoría de los repositorios actuales lo incluyen por defecto, así que únicamente tendremos que hacer la instalación desde éstos para tenerlo disponible, lo cual es tan sencillo como escribir en la terminal:

En Debian
apt-get install preload
En Red Hat
yum install preload

En un principio así tendríamos el demonio instalado y operativo, consiguiendo que las aplicaciones más usadas estén pre-cargadas en la RAM. ¿Qué logramos con esto? Qué cuando arranquemos el ordenador, ya tengamos algunos bytes de la memoria RAM cargados en la caché con la información necesaria para cargar dicha aplicación, reduciendo los tiempos de carga en hasta un 50%, pues no tiene que realizar operación alguna para cargar dichos recursos; dicho ahorro en esas tareas conlleva en un gran ahorro de tiempo, cosa especialmente notoria con ciertas aplicaciones "pesadas" tales como libreoffice, que cargan prácticamente al instante gracias a preload. Obviamente existen más aplicaciones en las que se notaría la diferencia; he aquí una pequeña gráfica con algunas comparaciones de antes y después de algunos programas:


Si bien la configuración por defecto de este software es lo suficientemente efectiva como para servirnos en la gran mayoría de los casos, a veces necesitamos un funcionamiento más personalizado; ya sea por que queremos excluir ciertas parte del sistema de dicha monitorización o por que queremos que preload use un máximo de memoria RAM menor al determinado (esto se realiza para evitar que preload use demasiada RAM ). Para personalizar el comportamiento de este demonio, tendremos que recurrir al fichero de configuración /etc/preload.conf.

Este fichero tiene múltiples parámetros configurables que pueden ayudarnos a monitorizar el sistema a nuestro gusto o a ocultar ciertos elementos de dicho "ojo". Los parámetros más importantes serían:

  • cycle: Probablemente el parámetro más importante de todos, especifica cada cuantos segundos hace una revisión del sistema. Pasados esos segundos analiza las aplicaciones que están en marcha y evalua si la información cargada en la caché es la adecuada; tras dicho análisis también evalúa qué información es conveniente tener precargada en la caché. El valor por defecto es 20 (el valor establecido estaría en segundos) y los propios desarrolladores advierten que no es recomendable poner un valor demasiado bajo, ya que estaríamos forzando al sistema a hacer revisiones constantes cada muy poco tiempo y podría sobrecargar el sistema operativo con tantos "ciclos" tan seguidos. Una pequeña curiosidad de este parámetro es que siempre tiene que tener asignado un número par.
  • minsize: Este valor es muy importante también, pues establece el tamaño MÍNIMO que debe de tener un proceso en ejecución. A cuanto más pequeño sea el valor, mayor será el número de procesos que monitorizará (ya que el requisito para que el proceso sea monitorizado será mucho más laxo). El parámetro está establecido en bytes y por defecto tiene un valor de 2000000.
  • autosave: Este parámetro es el encargado de guardar el estado de preload (por si este fuese detenido por cualquier motivo). Al igual que cycle, es recomendable no poner un valor excesivamente bajo, ya que estaríamos haciendo trabajar al equipo con demasiada intensidad. El valor por defecto es de 3600 segundos; es decir de una hora.
  • memtotal,memfree y memcached: Aunque son tres parámetros distintos, su correlación hace que sea más útil explicarlos en conjunto que por separado. La combinación de estos tres valores tienen como objetivo evitar que el equipo consuma demasiada ram; es decir evitar que cachee demasiada memoria y deje el equipo sin memoria para hacer el resto de tareas. Los valores usados son desde -100 a 100 y los valores usados por defecto son: -10, 50 y 0 respectivamente. Esto puede sonarnos raro pero significaría lo siguiente: Usa como máximo el 50% de la memoria ram libre menos un 10% de la memoria total (de ahí el -10) más un 0% de la memoria caché en uso. Estos valores por defecto son de por sí lo suficientemente eficientes para evitar que nos quedemos sin memoria, aunque siempre se puede querer ajustar un poco más.
  • mapprefix: Los directorios especificados en este parámetro serán excluidos de la monitorización de preload, cosa útil cuando queremos que el contenido de la carpeta en cuestión no se pre-cargue en la memoria RAM. En caso de querer especificar más de un directorio, habría que separarlos mediante el caracter ;.
  • exeprefix: Cumple la misma función que mapprefix, con la diferencia de que en este caso se especificarían binarios y no directorios.

Como podéis ver el archivo de configuración es relativamente sencillo de entender y aunque como bien he dicho no es necesario realizar configuración alguna en este para poder disfrutar de esta magnifica utilidad, siempre viene bien conocer lo que la utilidad nos ofrece con el fin de poder personalizarla a nuestro gusto en el futuro.  

Espero que os haya resultado útil.

Saludos.

miércoles, 27 de enero de 2016

Lost+found; qué es y qué hacer con él

Aunque los sistemas basados en Linux son muy robutos y estables, como todo son susceptibles de tener problemas cuando hay apagones, cierres del sistema operativo forzosos etc; dejando bloques y/o archivos corruptos. Ya en su momento vimos qué hacer al respecto con fsck, pero a veces no basta con usar dicha herramienta y empezar a usar el PC con normalidad, sino que es necesario rebanarse un poco los sesos debido a que aún con dicha medida nada parece funcionar. Eso es debido a que algunos de los ficheros que han sido recuperados o arreglados han cambiado su ubicación; concretamente se ubican en un directorio muy particular que no existía hasta que se ejecutó el comando fsck. Se trata del directorio lost+found.

Lost+found

Este directorio, alojado en el directorio raíz (/), guarda todos y cada uno de los ficheros restaurados por la utilidad fsck, si bien lo restaurado sigue una nomenclatura diferente a la habitual... Esto se verá claramente tan pronto como hagamos un listado del contenido del directorio como a continuación.

  1. ls -la /lost+found/
  2. total 368
  3. drwxr-xr-x 3 root root   4096 ene 24 10:32 #103805
  4. drwxr-xr-x 3 root root   4096 ene 24 10:32 #105488
  5. drwxr-xr-x 3 root root   4096 ene 24 10:32 #125836
  6. -rw-r--r-- 2 root root   2473 ene 24 16:03 #127864
  7. -rw-r--r-- 2 root root  18505 ene 24 16:03 #127865
  8. -rw-r--r-- 2 root root  56140 ene 24 16:03 #127866
  9. -rw-r--r-- 2 root root  25978 ene 24 16:03 #127867
  10. -rw-r--r-- 2 root root  16247 ene 24 16:03 #127868
  11. -rw-r--r-- 2 root root 138001 ene 24 17:33 #127869
  12. -rw-r--r-- 2 root root  63623 ene 24 17:33 #127870
  13. -rw-r--r-- 2 root root  34032 ene 24 17:33 #127871
  14. -rw-r--r-- 2 root root   2536 ene 24 17:33 #127872

Si os fijais bien los ficheros mostrados en el listado están compuestos por una # seguido de una serie de números; esos números representan el número de inodo. Un inodo no es nada menos que una estructura de datos que contiene toda la información de un fichero o directorio: estructura, datos, permisos, fecha de creación, etc... Pero entre dichos datos NO se encuentra el nombre. Es por ello que cuando fsck recupera algo, no lo representa con el nombre, sino con el número de inodo, pues es lo que él usa para identificar al archivo. 

En caso de que lo recuperado se trate de un directorio, una de las ventajas que tiene es que si bien el nombre del directorio está representado con su número de inodo, el contenido de éste es mostrado con normalidad, lo cual supone una gran ventaja. En cambio para revisar un archivo no queda otro remedio que jugar con diferentes utilidades para ver qué es o cual es su contenido.  Para ello hay algunos comandos que en mi opinión pueden ser de ayuda. Estos comandos serían:

  • file: Probablemente el más útil de todos; muestra el tipo de fichero del archivo en el que se ha ejecutado el comando, lo que ayuda mucho a acotar nuestra búsqueda. Ejemplo:
file #103805
  • cat: Al conocer el tipo de fichero, si se trata de un documento o de un fichero de configuración, una de las mejores formas para consultar el contenido del fichero sin editarlo sería mediante cat. Ejemplo:
cat #103805
  • exiftool: Una de las mejores formas de conocer un fichero es analizandolo en profundidad ¡y qué mejor para ello que revisar sus metadatos! Exiftool es una herramienta que no está instalada por defecto en el sistema, pero que puede ser instalada mediante apt-get o yum sin problemas. Gracias a esta utilidad podremos revisar y manipular los metadatos a nuestro antojo. Ejemplo:
exiftool #103805

Conociendo exactamente qué es cada inodo, habría que copiar cada uno de éstos a su lugar correspondiente y renombrarlos con sus nombre originales para hacer que todo regrese a la normalidad. Es un proceso que puede resultar tedioso, pero que con las tres herramientas mencionadas puede ser algo más ameno, especialmente cuando podemos estar hablando de decenas o incluso centenares de inodos.

Espero que os haya resultado útil.

Saludos.

lunes, 4 de enero de 2016

Comparación de sistemas de ficheros Linux

Tras unas navidades cargadas de mucho descanso, turrón, cenas y ambiente familiar, vuelvo a la carga con las pilas cargadas para afrontar este nuevo año, que espero que sea como mínimo tan bueno como el anterior. En esta ocasión vengo a estrenar el año con un concepto teórico, pero que es indudablemente interesante conocer: Los sistemas de ficheros.

Una de las virtudes que ofrecen los sistemas Linux, es la libertad que nos ofrecen para hacer prácticamente lo que queramos sin molestas restricciones impuestas por los desarrolladores del sistema operativo. Esta libertad es criticada por algunos, pues hay cosas que no son implantadas por defecto por el sistema, sino que tienen que ser implantadas por nosotros; aún así ese abanico de posibilidades ofrecido estos sistemas también hace que podamos escoger las alternativas que mejor se adapten a nuestros gustos o necesidades. Tal es la libertad que ofrece, que podemos incluso llegar a escoger el sistema de ficheros que deseamos usar; si bien obviamente siempre ofrece un sistema por defecto para aquellos que quieren hacer una instalación rápida o quieren que el sistema operativo simplemente funcione. Generalmente lo ofrecido por defecto por estos sistemas son más que suficientes para satisfacer las necesidades de todos, pero eso no significa que no existan otras alternativas por allí, alternativas que aunque no sean usadas habitualmente, conviene saber que existen y que están allí, disponibles y a la espera de ser usados por cualquier usuario. Es por ello que este post quiere informar un poco sobre estos y esclarecer cualquier posible duda que podamos tener... ¿Cual elegir? ¿Por qué usar esos sistemas de ficheros en vez los de por defecto? Intentaré explicar las opciones presentes y al mismo tiempo evitar aburriros con detalles demasiado técnicos, pues lo importante es tener unas nociones generales.

Sistemas de ficheros


Extended file system 2/3/4

Los primeros sistemas de ficheros de Linux eran denominados ext2 (Extended fyle system 2), si bien con el tiempo este tipo de sistemas de ficheros fueron evolucionando e incorporando mejoras. Estos sistemas realizan un desgaste muy leve en los sistemas de almacenamiento, especialmente en los discos SSD o memorias USB; además los problemas de velocidad y fragmentación son mucho menores que los que sufre por ejemplo NTFS (el sistema de archivos de Windows). En las versiones dos y tres es posible almacenar ficheros de hasta 2 TB, pero en la última versión, ext4, podían almacenar archivos de hasta 16TB. Ext2 es considerado hoy en día como un sistema de archivos obsoleto, pero debido a que todavía hay algunas máquinas antiguas que lo soportan, ext3 suele ser el sistema de archivos más usado, ya que es compatible con su predecesor. Aún así, es recomendable que a la hora de instalar un sistema operativo nuevo se usará un sistema de archivos ext3 o ext4, ya que la última versión es mucho más rápida que su predecesor y está todavía mejor preparado para evitar la fragmentación.

ButterFS

Aunque ya hablé con bastante profundidad sobre él en este post, reiteraré un par de puntos muy importantes de este sistema de ficheros. El primero es que btrfs, cuyo nombre real es ButterFS o Butter File System, es considerado el sistema de archivos del futuro; es decir que los extended file system dentro de un tiempo se considerarán como alternativas "antiguas". Esto es debido a que este gran sistema de ficheros incluye un funcionalidad muy útil, que se trata de la creación de instantáneas o snapshots del sistema operativo; instantánea que hace una imagen exacta de lo que tenemos en un momento determinado y que podemos hacer que se restaure en cualquier momento, dejando el sistema operativo en el mismo estado en el que estaba cuando realizamos la instantánea, con los mismos ficheros, mismos cambios, etc... que los que teníamos en dicho momento. En resumen, se trataría de una funcionalidad muy parecida las que incorporan los entornos de virtualización de hoy en día, tales como VMWare, Proxmox o VirtualBox. Aunque hoy en día se usa en algunos entornos, no es considerado un sistema de archivos del todo maduro aún, con lo que todavía no es del todo recomendable implantarlo en entornos críticos. Aún así, es muy recomendable probarlo y experimentar y familiarizarse con él, pues seguramente sea muy usado a corto plazo.

Reiserfs

Uno de los sistemas de ficheros menos populares en la actualidad; no por que sea de menor calidad que el resto, sino porque es incompatible con los sistemas más usados en la actualidad: extended file system. Este sistema de ficheros está pensado para trabajar muy rápido con ficheros de pequeño/mediano tamaño, aún cuando haya una gran cantidad de estos en el sistema. La única pega que tiene es que con ficheros muy grandes no es tan eficiente; es más, es considerado lento en ese aspecto. No es un sistema adecuado para un entorno pensado para el almacenamiento de grandes volúmenes de información, pero sí que es una opción interesante para entornos de escritorio o entornos en los que sabe que se van a trabajar con pequeños o medianos ficheros.

XFS

Este sistema es uno de los más antiguos que existen, pero se han ido haciendo constantes mejoras e incluso hoy en día es una opción viable que se contempla que puede sustituir, al igual que btrfs, los extended file system de la actualidad. Este sistema está pensando para trabajar con ficheros de tamaños gigantescos; el máximo teoríco sería de 8 EB, o lo que sería lo mismo 8192 petabytes. Hoy en día no se ha creado nada parecido, y además para sacarle partido a este sistema se necesitaría un hardware equivalente; es decir un hardware de última generación con un muchísimos discos en RAID, clusteres, etc... Es decir que este sistema está especialmente orientado para trabajar con servidores que tengan que trabajar con grandes volúmenes de información. Aunque durante muchos años ha sido casi un desconocido, ha ido ganando popularidad los últimos años y la mayoría de las personas que lo han probado en un entorno de escritorio normal y corriente no han experimentado problemas.


Esto sería todo por hoy; espero que con esto os haya quedado un poco más claro lo que nos puede ofrecer cada sistema de ficheros. Yo personalmente recomiendo probar btrfs, pues más de uno se llevará una grata sorpresa con él; si bien Linux destaca por la libertad de elección y la gama de "sabores" que siempre nos deja elegir, con lo que siempre podemos elegir aquel que más nos apetezca.

Saludos.

jueves, 12 de noviembre de 2015

Qué Linux usar?

La mayoría de los que optan por probar el mundo de Linux, tan pronto como empiezan a investigar el tema se dan cuenta de que Linux no todo es Ubuntu (sin intención de menospreciar el trabajo de éste) y qué existe un gran número de distribuciones en el mercado, pero... ¿En qué se caracterizan todos éstos? ¿Qué sistema deberíamos elegir? En está decisión influyen en gran parte los gustos y preferencias personales de cada uno, si bien hay algunos puntos que en mi opinión sería interesante tener en cuenta antes de optar por cualquier sistema operativo. Obviamente en este post sería imposible mencionar a todos, si bien intentaré mencionar a los más populares.

TUXES

Ubuntu

Comencemos con el sistema predilecto por la gran mayoría de la comunidad de Linux: Ubuntu, basado en Debian. El sistema más recomendado para aquellos que desean empezar en este mundo, aunque bien es cierto que hay mucha gente que tras probar este sistema decide no probar ningún otro debido a su gran satisfacción de éste. Querido por muchos, y odiado por otros muchos tambien, es sin duda el sistema más popular basado en Linux y uno de los que más ha dado que hablar debido a sus "arriesgadas" decisiones o a sus intentos de darle un toque más personal a su sistema operativo... No cabe duda que este sistema ha demostrado mucho y seguirá demostrando en el futuro, y además es sin duda uno de los sistemas más intuitivos que nos podemos encontrar en la actualidad... Muchas personas consideran a Ubuntu como el sistema de los principiantes exactamente por ese motivo, pero durante los últimos años ha demostrado que es una opción perfectamente válida para entornos empresariales y tareas "serias", además de ser uno de los sistemas operativos favoritos para las super computadoras.

Otro gran punto a su favor es que tiene una comunidad muy activa y que podemos encontrar una enorme cantidad de información en el foro de la comunidad y en su página oficial, con lo que en caso de tener un problema es muy probable que podamos solucionarlo.

Lo mejor: Muy intuitivo y con mucha información en internet. No requiere tener demasiados conocimientos para manejarlo a nivel de usuario y la gran mayoría del software desarrollado para Linux tiene en cuenta a este sistema, con lo que rara vez nos veremos "excluidos" con los paquetes de software.
Lo peor: A veces, en su intento de tener un toque "personal" y actualizado, Ubuntu ha tomado decisiones que no han gustado del todo a la comunidad; véase su entorno de escritorio propio (Unity) o la decisión de implantar versiones de software/kernel demasiado pronto.

Debian

No podría realizar este post sin mencionara a mi sistema favorito... Debian. En la actualidad podemos encontrar un enorme número de sistemas operativos basados en éste, sistemas que tienen una gran deuda con Debian. Debian destaca por ser el "padre" de una gran variedad de sistemas operativos, entre otros Ubuntu. El auge de éste sistema y sus hijos durante los últimos años ha posicionado al "grupo" de Debian e hijos a la cabeza de los sistemas más usados dentro del mundo de Linux, si bien existen algunas pequeñas, pero significativas diferencias entre Debian y el resto...

La primera diferencia que tiene es que todo el sistema en sí es muy robusto comparado con el resto debido a que todo paquete que instalado en Debian es bastante antiguo y a que hasta que el paquete no se haya demostrado que es "estable", no es implantado en Debian; Esto es bueno y malo al mismo tiempo, pues se posee un sistema muy robusto, pero nunca con las últimas versiones de software/kernel. 

Debian es uno de los pocos sistemas que se caracteriza por instalar lo mínimo indispensable para que el sistema funcione... Esto hace que el sistema tenga instalado únicamente lo que nosotros necesitemos; ahorrándonos molestos paquetes de software que nunca usaremos... Gracias a ésto el sistema requiere de bastante poco espacio mínimo en el disco duro. 

El sistema puede funcionar en equipos de bajas prestaciones sin problemas; es más, en un equipo de 512 MB puede correr un Debian 8 sin demasiadas complicaciones, cosa que muchos otros serían incapaces de conseguir.

Otro de los factores que hacen que Debian sea diferente a la mayoría es que tiene una filosofía de "Libertad" que otros (no todos, pero sí unos cuantos) carecen; ésta filosofía radica en que solo usan drivers "libres" cuyo código puede ser revisado para verificar que efectivamente hacen lo que dicen hacer... Esta decisión hace que el sistema operativo use drivers confiables, pero al mismo tiempo hace que no se tenga acceso a todos los drivers de todos los fabricantes y se tengan que optar por drivers "genéricos" que a veces pueden dar problemas (especialmente los drivers de red).

Lo mejor: Muy robusto y capaz de funcionar en equipos de bajas prestaciones. Además tiene una filosofía que respeta las libertades del usuario. Es el padre de una gran variedad de distribuciones con lo que se sabes defenderte en este sistema operativo, la curva de aprendizaje para desenvolverte en el resto es irrisorio.
Lo peor: Se pueden tener problemas con los drivers, cosa que hará que tengamos que comernos la cabeza en más de una ocasión... Además el sistema rara vez tendrá los paquetes de software más actuales.

Red Hat

El Linux más comercial y orientado a las empresas... Su largo soporte del sistema operativo (7 años) y su estabilidad lo hacen perfecto para las grandes empresas; si a eso le sumamos el hecho de que ofrecen asistencia técnica directa y a que es, con diferencia, el sistema que menos problemas tiene con los drivers, podría decirse que es probablemente el sistema más completo para los servidores, si bien todo esto se paga, y red hat solamente puede ser comprado (sus precios varían en función de las necesidades) o, en caso de querer disfrutarlo gratis, probarlo durante únicamente 30 días... Es innegable reconocer que red hat ofrece soluciones muy completas, aunque hay muchos servidores e incluso super computadoras que funcionan con Ubuntu y que no tienen problemas, todo depende de las necesidades de cada individuo y empresa.

Lo mejor: Muy completo en todos los sentidos. Rara vez habrá problemas de drivers. En caso de tener problemas se puede obtener soporte técnico del propio Red Hat. Ofrecen formación, certificación, etc... También es "padre" de un buen número de distribuciones como Fedora y CentOS.
Lo peor: Es una distribución de pago cuyo coste es bastante elevado. Si no tienes experiencia en Linux (sea la distribución que sea), no es recomendable usarlo.

Fedora

Uno de las principales alternativas a Red Hat y uno de los más usados en entornos de escritorio por aquellos que prefieren usar sistemas basados en éste. Este sistema destaca por tener siempre el software más reciente, cosa que hace que el equipo siempre esté a la última, con sus correspondientes ventajas y desventajas... No siempre lo más nuevo es lo mejor, y es por eso que a veces la implantación de versiones de software demasiado nuevas hace que el usuario final... Aún así desde que Red Hat compró esta compañía/sistema, es necesario reconocer que el sistema es más "estable" de lo que solía ser anteriormente... La gran pega de este sistema es su escaso soporte a las versiones de sistema que saca, pues son 13 meses (lo que viene a decirse prácticamente un año), lo que conlleva a una constante actualización de sistema operativo...

Lo mejor: Ofrece las últimas versiones de software para todo y es el sistema perfecto para adaptarse a los sistemas Red Hat.
Lo peor: Demasiado novedoso con algunos paquetes. El soporte que da a sus versiones es bastante corto.

OpenSuse

Una distribución un tanto diferente del resto basada en Suse... Es uno de los pocos que se han atrevido a "jugar" con btrfs, de la cual han podido sacar el magnifico snapper. No es ni de lejos tan conocido como los que he mencionado anteriormente, aunque bien es cierto que es un sistema muy estable y con cierto toque de distinción del resto... Snapper, Susestudio... Pequeños pero curiosos detalles muy interesantes... Además los paquetes descargados para este sistema son los más fáciles de instalar, aunque he de decir que no hay tantos programas como gustaría. Otro punto a favor es que se instala muy fácil y rápido.

Lo mejor: Facil de instalar y con aplicaciones y funcionalidades muy útiles e interesantes.
Lo peor: No es tan conocido como el resto, lo que puede hacer que probablemente cueste un poco más encontrar documentación en caso de tener problemas... Aún así, poco a poco está ganando popularidad.

Manjaro

Una distribución basada en Arch, podría considerarse como el Arch para dummies que, a diferencia de su "padre" puede ser instalado con facilidad... Comparte las mismas caracteristicas que Arch pero está diseñado para ser más "cercano" al usuario final... Eso significa que comparte prácticamente las mismas ventajas y desventajas que el otro: Es muy robusto y no requiere cambiar de versión pues va actualizandose constantemente... Al igual que Fedora, siempre va la última, con la diferencia de que aquí no hay versiones de sistema operativo sino que siempre es el mismo actualizandose constantemente. Obviamente es un sistema con varias desventajas: La curva de aprendizaje es un poco más dura que la que tiene el resto (en caso de querer recurrir a la consola) y aunque hay mucha documentación en internet de su padre, arch, es la rama de Linux con menos usuarios con diferencia, lo cual convierte al grupo "archer" en el más pequeño de todos y hace que pedir ayuda sea mucho más complicado que con el resto... Esa falta de popularidad también hace que cuente con muchos menos paquetes que el resto.

Lo mejor: Una vez instalado siempre se irá a la última y no requerirá instalar versiones de sistema operativo futuras.
Lo peor: Si se usa este sistema uno debe de concienciarse de que opta por la rama más compleja y menos apoyada de todas.

Estas serían a groso modo las características globales de cada distribución, aunque los gustos personales influyen en gran manera en la decisión de cada uno... Yo actualmente estoy encantado con Debian ¿Y vosotros? ¿Qué distribución usáis?

Saludos.

martes, 3 de noviembre de 2015

Realizar snapshots en Debian 8

Hoy quiero hablaros sobre una faceta que ya hablé anteriormente; la creación de snapshots o instantáneas. En su momento hablé sobre su uso en el ámbito de la virtualización, concretamente en virtualbox, pero hoy vengo a dar un pequeño paso más allá y voy a aplicar el mismo concepto en un sistema operativo directamente sin virtualizador de por medio... Esto hasta hace relativamente poco era un concepto imposible, si bien ahora es un concepto posible y muy recomendable de aplicar debido a su velocidad y fiabilidad. La base de este concepto proviene de un sistema de ficheros muy extendido en sistemas basados en Suse, pero que en el resto de sistemas operativos se le ha catalogado como un sistema de ficheros "opcional": btrfs, también conocido como Butter FS.

Portada_debian

Actualmente el sistema de ficheros más popular en el mundillo de Linux es ext4, sistema de ficheros muy fiable y con un gran rendimiento en la mayoría de los ámbitos... Este sistema es el instalado por defecto en la mayoría de distribuciones a menos que especifique lo contrario, razón por la cual es el sistema de ficheros que con más frecuencia veremos en la actualidad... Aún así, aunque ext4 sigue siendo una gran alternativa, poco a poco se ha visto que en el futuro probablemente sea sustituido por uno de estos dos siguientes: xfs o btrfs. El primero está centrado en la escalabilidad y en el rendimiento, mientras que el segundo está más centrado en el control y el aseguramiento de la integridad de los datos... Visto esto es evidente que btrfs está especialmente orientado para servidores, aunque en mi opinión también puede aplicarse en un equipo de sobremesa que contenga información relevante... En este caso me centraré en Debian 8, aunque en Debian 7 el proceso sería prácticamente el mismo, al igual que en los sistemas basados en Debian.

Hay dos formas de tener un sistema operativo con tal sistema de ficheros: Uno de ellos es mediante la conversión que se puede realizar con btrfs-tools... si bien yo personalmente he hecho varias pruebas y ninguna ha dado sus frutos, y aún cuando funcione, en todos lados subrayan que hacer dicho cambio implica sus riesgos (posible perdida de información, datos corruptos o inaccesibles, etc...). Debido a eso yo recomiendo que. a ser posible, se opte siempre a la segunda opción: a la instalación de un Debian 8 vacío instalado sobre un sistema de ficheros btrfs... Esto puede parecer al principio intimidante, pero es mucho más simple de lo que parece y solamente difiere en un par de puntos con respecto a una instalación "clásica".

Para ello habría que tener en nuestro poder una iso de instalación de Debian 8; no importa si se trata del CD 1 o de la versión netinstall, pues la diferencia entre estos radica en la cantidad de paquetes incorporados en la iso... Usaremos dicha ISO para una instalación desde cero de forma normal, aunque hay un paso muy importante que marca la diferencia: El particionado de discos. En éste apartado siempre se nos da la opción de realizar el particionado de manera guiada (es decir que el sistema haga por ti todo, mediante algunos cálculos y parámetros predefinidos) o de forma manual. Generalmente la opción guiada suele ser la más habitual, pero debido al tipo de sistema de ficheros, deberemos de optar por otra opción: El particionado manual, tal y como muestro en la captura de a continuación.

manual

Para saber defenderse ante este tipo de opción, lo recomendable sería poseer algunas nociones de particionado, pero para este caso en concreto basta sabe que haremos dos particiones. Una primaria que guardará guardará el contenido del directorio raíz (/) y una lógica que sería la partición swap. Imaginemos que el disco duro en cuestión tiene 43 GB; dicho disco habría que seleccionarlo y crear una tabla de particiones vacía sobre éste para poder crear las dos particiones mencionadas.  Al tener una tabla de particiones vacía, todo el espacio del disco duro seleccionado se mostraría cómo libre (y disponible para ser formateado/particionado a nuestro gusto).

selec_disco

La primera partición que habría que crear sería la primaria, valga la redundancia y en la configuración de ésta (después de asignarle el espacio en disco que ocuparía la partición) veremos toda la información relativa a la partición: El punto de montaje, si ésta se iniciará durante el arranque... Aquí hay dos opciones que nos interesan especialmente: La marca de arranque (que habría que activarla para que el sistema se inicie) y lo más importante: el sistema de ficheros. Si nos fijamos bien en los valores por defecto asignados por el sistema, veremos que la partición tiene un sistema de ficheros ext4, cosa que en la mayoría de las ocasiones nos serviría, pero en este caso las virtudes de este sistema de ficheros no nos son suficientes.

sistema_ficheros

Afortunadamente bastaría con pulsar la tecla "intro" en dicha sección para que nos mostrase el listado de sistemas de archivos disponibles: ext2, ext3, ext4... entre los cuales está el que a nosotros nos interesa en esta ocasión en particular: btrfs.

btrfs

Al final la partición tendría que quedar de esta forma:

resul_final

Tras aplicar los cambios en esta partición crearíamos la partición lógica con el sistema de ficheros swap (área de intercambio) y el resto de la instalación sería exactamente igual al de una instalación "básica".

Con la instalación finalizada; una vez iniciado el sistema operativo, si consultamos el contenido del fichero fstab, veremos que efectivamente nuestro sistema de ficheros es el deseado, es decir: btrfs.

cat /etc/fstab

De acuerdo, ahora tenemos un sistema con un sistema de ficheros distinto al de la mayoría, pero aunque el sistema de ficheros posee la capacidad de realizar snapshots, éste de por sí no tiene medios de indicarle al sistema operativo que tiene que hacer éstos... Para ello se requiere una herramienta desarrollada para OpenSuse pero que también funciona en Debian, llamada snapper. Snapper es una herramienta que junto con btrfs ha sido muy bien valorada por toda la comunidad y que apunta a tener un gran éxito de aquí a corto/medio plazo, con lo que es muy interesante conocerla y aprender a desenvolverse con ésta.

Esta herramienta no está incluida en los repositorios oficiales de Debian, pues originalmente se diseñó para funcionar en OpenSuse; aún así, debido a su éxito los desarrolladores han preparado algunas soluciones para que otros sistemas, tales como Debian, y Red Hat, puedan optar por usar esta excelente herramienta.

Existen dos posibilidades para instalar el software, mediante la descarga del paquete tar.gz o mediante el uso de su repositorio... Debido a que siempre es más fácil mantener al día un software mediante los repositorios y a que la fuente de éste repositorio en concreto es fiable, he optado por la segunda opción, si bien cada uno es libre de optar por la otra alternativa.

Para hacer uso de su repositorio, primero deberemos de añadir éste a nuestro listado de repositorios, lo cual es tan sencillo como escribir (esto sería en para Debian 8, en Debian 7 habría que hacer lo sustituir cualquier aparición del número 8 por el número 7):

echo 'deb http://download.opensuse.org/repositories/filesystems:/snapper/Debian_8.0/ /' >> /etc/apt/sources.list.d/snapper.list

Al ser un repositorio externo que acabamos de añadir, y no tener su clave pública, nuestro sistema siempre nos preguntará si estamos seguros de querer interactuar con este repositorio (por motivos de seguridad). Aunque esto no nos impedirá trabajar, resulta muy molesto ver constantes preguntas y advertencias para cualquier acción realizada con APT... Para ello deberemos de añadir la clave pública del repositorio a nuestro listado de claves confiables, que es tan sencillo como escribir:

  1. wget http://download.opensuse.org/repositories/filesystems:snapper/Debian_8.0/Release.key
  2. apt-key add - < Release.key

Ahora, si queremos instalar snapper bastaría con escribir dos comandos muy básicos:

  1. apt-get update
  2. apt-get install snapper

La aplicación tardará apenas unos segundos, pero todavía no estaría lista para ser usada, requiere que preparemos un archivo de configuración antes de poder hacer nada... Aquí tras haber realizado diferentes testeos mi recomendación personal es que cualquier acción que se realice para usar snapper sea como root, y que el archivo de configuración se haga para éste, pues a veces hay problemas con los permisos y con root podemos asegurarnos de que no habrá problemas. Así pues, para este caso crearemos como root un archivo de configuración que nos permitirá realizar instantáneas de TODO el contenido del sistema operativo.

snapper -c root create-config /

¡Por fin estamos capacitados para hacer un snapshot! Tarea que lograremos mediante una pequeña línea de consola:

snapper -c root create --description "TEST_SNAPSHOT"

Ahora si vamos a la carpeta /.snapshot (es una carpeta oculta que solo veremos mediante el comando ls -la /) veremos una carpeta con el nombre 1. A medida que vayamos creando snapshots veremos que aparecerán carpetas con números superiores correlativos (2,3...) y cada carpeta almacenaría un snapshot... Dicha carpeta consta de una carpeta llamada snapshot que guarda la instantánea y un fichero llamado info.xml que contiene la fecha de la instantánea y su descripción. El sistema está diseñado para realizar snapshots periódicos automáticamente; concretamente uno cada hora. Estos snapshots son "especiales" comparados con el que hemos creado, ya que estos son efímeros (al paso de un tiempo son borrados). Aún así, en caso de no querer que nuestro sistema se desborde con snapshots y querer únicamente los snapshots que nosotros ejecutemos a mano, tendremos que editar el fichero de configuración que hemos creado antes (root). Este se encuentra dentro del directorio /etc/snapper/configs y tendremos que cambiar el parámetro llamado TIMELINE_CREATE; el cual por defecto tiene el valor "yes". Únicamente con cambiar dicho valor a "no", evitaríamos la creación de snapshots cada hora.

TIMELINE_CREATE="no"

Imaginemos que hemos tenido algún problema... ¿Cómo haríamos para restaurar nuestra instantánea? Snapper incorpora una opción llamada undochange, esta opción puede comparar dos snapshots y cambiar aquello que difiera entre estas dos o simplemente puede restaurar una instantánea comparando lo que tenemos ahora con la instantánea. Para hacer esto último habría que "comparar" la instantánea que hemos creado, la 1, con el estado actual de la máquina, que para snapper estaría internamente representado SIEMPRE como 0.

snapper -v undochange 1..0

Con esto, tras unos segundos (o minutos dependiendo de la cantidad de cambios) habríamos restaurado el sistema a su estado anterior.

Como podéis ver las virtudes de btrfs y snapper son numerosas y muy útiles y aún cuando hoy en día estos conceptos no son demasiado conocidos, no hay duda que la creación de snapshots en un sistema operativo es una utilidad que será indispensable en el futuro, y una opción muy a tener en cuenta en el presente.

Espero que os haya resultado útil

Saludos.