FreeBSD

  • Anteriormente comparé los algoritmos de compresión ZIP, bzip2, gzip, RAR, LZMA y ZPAQ para tratar de determinar cuál era el mejor de ellos en término de uso de CPU, tiempo y radio de compresión, con el objetivo de lograr la máxima compresión posible. En esta ocasión voy a repetir el test, pero orientado a lograr la mayor velocidad posible (para que nuestros backups se hagan lo más rápido posible y sin demoras).

  • Luego de explicar el uso básico de zpaq, se me ocurrió llevar a cabo un pequeño experimento como comparación de rendimiento de diferentes algoritmos de compresión. Veamos un benchmark de tiempo, tamaño de archivo y uso de CPU para diferentes formatos.

  • En uno de mis servidores NFS sobre FreeBSD me ocurrió un error extraño que se resolvió con un simple reinicio de servicio: "RPC: Program not registered".

  • Recientemente me tocó actualizar mi viejo servidor ownCloud, el cual se encontraba en fase de desarrollo y finalmente pasó a producción. El problema fue que durante ese lapso, ownCloud liberó dos major releases (versiones que no son meramente revisiones, o correcciones de bugs y vulnerabilidades, sino que incorporan cambios substanciales), y lamentablente ownCloud no permite saltearse major releases al momento de actualizar. Por ende se debe actualizar una a una todas las major releases hasta llegar a la versión estable actual.

  • Esta semana fue liberada la RELEASE versión 12.0 de FreeBSD, con lo cual procedí a actualizar mi estación de trabajo y alguno de nuestros servidores. Este artículo documenta el procedimiento de migración desde la versión 11.2-RELEASE. Procedimiento similar a cada una de las actualizaciones anteriores.

    Entre las mejoras incluidas en esta versión se destacan:

    • Se actualizó OpenSSL a la versión 1.1.1a (LTS); Unbound a la versión 1.8.1; y OpenSSH a 7.8p1.
    • Se actualizaron Clang, LLVM, LLD, LLDB, compiler-rt y libc++ a la versión 6.0.1.
    • Se actualizó el controlador de terminales virtuales vt con varias mejoras de rendimiento.
    • Se agregó el controlador netdump, el cual permite transmitir crash dumps a un host remoto luego de un system panic.
    • Mejoras en el soporte gráfico para el hardware contemporáneo.
    • El firewall pf ahora se puede utilizar dentro de un jail utilizando vnet.
    • Y se ha actualizado KDE a la versión... (sonido de redoblantes) 5.12.5!!! Es un gran salto desde la versión (actualmente instalada) 4.14.38.
    • Además se modificaron muchas configuraciones por defecto y actualizaron aplicaciones de nivel usuario con el objetivo de mejorar la seguridad e incorporar nuevas funcionalidades. Revisar el detalle completo en las release notes.
  • En sistemas FreeBSD la actualización del sistema consta de dos partes. Por un lado está el sistema base, y por el otro el software adicional, el cual puede provenir de paquetes o haber sido compilado desde los ports. En este artículo explico cómo actualizar todo el sistema, incluyendo el sistema base, ports y paquetes.

  • La semana pasada, más precisamente el 13 de agosto, fue liberada la versión estable más reciente de FreeBSD: 10.2-RELEASE. En este breve artículo se explica paso a paso el proceso de actualización desde una versión anterior.

  • Este breve artículo explica como agregar un usuario existente a un grupo existente en sistemas FreeBSD.

    FreeBSD no cuenta con el comando usermod, con lo cual se debe recurrir a la herramienta pw.

  • En este breve artículo voy a demostrar cómo realizar cálculos matemáticos simples utilizando bc en GNU/Linux. Este utilitario puede ser de gran utilidad para salir del paso y realizar cuentas rápidas desde línea de comandos (sin necesidad de abrir aplicaciones gráficas como KCalc u otras). Pero mejor aún cuando se necesita realizar algún cálculo aritmético desde un script Bash.

  • En el momento de configurar la cuenta de root, durante la instalación de FreeBSD 10, se le asigna la shell csh o tcsh. Esta es la shell que utilizan tradicionalmente los sistemas FreeBSD y OS X. Para muchos linuxeros puede resultar bastante incómoda ya que, por ejemplo, no permite borrar utilizando la tecla suprimir (sólo se puede borrar con backspace). Ya sea por costumbre o gusto, posiblemente uno de los primeros cambios luego de la instalación del sistema sea instalar el intérprete de comandos Bash.

    En este artículo voy a explicar cómo se cambia la shell de un usuario en FreeBSD, ya que editar directamente el archivo /etc/passwd no es una opción viable.

  • Es más largo el título que el artículo y el procedimiento.

  • Este artículo explica cómo actualizar un pool ZFS luego de migrar a una nueva versión de ZFS.

  • Al utilizar las herramientas chown y chmod para cambiar los atributos de un archivo o directorio, los enlaces simbólicos son procesados por el sistema de archivos como cualquier otro acceso. Por ende terminamos cambiando permisos sobre el target o destino del enlace simbólico. Pero ¿qué pasa si necesitamos cambiar permisos del enlace simbólico propiamente dicho? La respuesta está en las manpages.

  • El kernel es el núcleo del sistema operativo. Es responsable por manejar la memoria, asegurar controles de seguridad, redes, acceso a disco, y más. Tradicionalmente, FreeBSD usaba un kernel monolítico: un gran programa que soportaba una lista fija de dispositivos, donde, para cambiar su comportamiento, era necesario compilarlo para adaptarlo a nuestras necesidades. En la actualidad se trata de un kernel modular. La mayoría de las funcionalidades del kernel FreeBSD están contenidas en módulos que pueden ser cargados en el kernel dinámicamente a medida que sea necesario.

    Pero, a pesar de esta flexibilidad, compilar el kernel tiene muchas ventajas. Por ello en este artículo voy a explicar cómo compilar un kernel personalizado en FreeBSD 10.

  • En sistemas FreeBSD, cada vez que un proceso aborta a causa de un error (crash), por defecto se guarda un volcado (dump) de la memoria y registros del procesador para poder analizar luego la causa. Este volcado se guarda en un archivo cuya extensión es .core, dentro del directorio de trabajo del proceso al momento del crash.

    Dependiendo de la aplicación involucrada, este volcado de memoria puede llegar a ser de gran tamaño (similar al tamaño de la memoria que estaba utilizando el proceso al momento del crash). Por ejemplo, en el caso de Firefox el volcado puede ocupar varios gigabytes, lo cual puede ocasionar severos problemas de espacio en disco. Sin contar con que se generan estos archivos, tal vez indeseados, pues para la mayoría de los usuarios finales pueden ser prácticamente un residuo. Raramente un usuario de un sistema de escritorio se toma el trabajo de analizar (debug) un volcado de memoria de una aplicación como Firefox, ya que difícilmente cuente con el conocimiento necesario para interpretarlo.

    Este artículo explica cómo deshabilitar los coredumps a nivel global en sistemas FreeBSD.

  • En sistemas FreeBSD, los ports son un conjunto de Makefiles, parches, y archivos de descripción almacenados bajo /usr/ports/, los cuales son utilizados para compilar e instalar aplicaciones en FreeBSD. En este artículo explico cómo obtener información acerca de las dependencias de un port en FreeBSD.

  • FreeBSD posee compatibilidad con Linux a nivel binario. Esto permite instalar y ejecutar la mayoría de los binarios de Linux en FreeBSD sin necesidad de tener que modificar o adaptarlos previamente. Se sabe incluso que en algunas situaciones los binarios para Linux se ejecutan de manera más eficiente en FreeBSD que en Linux. Sin embargo, algunos binarios que utilizan características específicas de Linux no son soportados bajo FreeBSD. Por ejemplo, binarios que utilizan llamas al sistema específicas de i386 como habilitar el modo 8086 virtual. Recientemente se ha incorporado el soporte para binarios Linux de 64 bit.

  • ¿Qué pasa si hemos clonado un servidor FreeBSD y necesitamos hacer una limpieza de pools ZFS? Simple, recurrir al comando zpool destroy.

  • En este artículo voy a cubrir las tareas de administración básica de un host de máquinas virtuales VirtualBox sin entorno gráfico, desde la creación de máquinas virtuales, hasta la configuración de VNC, creación de discos y encendido/apagado de máquinas virtuales, totalmente desde línea de comandos.

    En artículos anteriores expliqué cómo instalar VirtualBox en GNU/Linux y en FreeBSD. Ahora voy a explica cómo gestionar un hipervisor VirtualBox sin entorno gráfico completamente desde línea de comandos, utilizando como base un host FreeBSD. Mi idea es montar un servidor de máquinas virtuales (comúnmente denominado simplemente como "host") FreeBSD sin entorno gráfico (headless, sin cabeza), utilizando VirtualBox como tecnología de virtualización, y gestionarlo completamente desde línea de comandos (tal como haría con virsh).

  • Un problema que suele ocurrir con mayor frecuencia que la esperada, es la rotura de un disco rígido en un servidor. El día más temido por todo SysAdmin improvisado. Sin embargo, los SysAdmins semi-decentes utilizamos arreglos de discos en alguna configuración RAID (1, 5 10, RAIDZ, o por software en sistemas Linux). Ahora bien, supongamos que se rompió un disco y hay que cambiarlo, ¿cómo identificar el disco físico fallido asociado al dispositivo en cuestión? Este artículo explica la técnica correcta y menciona otras, también válidas, y otras más un tanto extrañas.