FreeBSD

  • La herramienta systat (no confundir con sysstat), disponible en los sistemas operativos FreeBSD, muestra estadísticas de carga del sistema en tiempo real por pantalla, utilizando la librería ncurses. Se trata de una herramienta muy completa, ya que muestra todo tipo de estadísticas de uso, desde memoria, discos y swap, hasta procesos y protocolos de red. Este artículo explica la salida de las diferentes ventanas de systat (llamadas display) a través de capturas de pantalla.

  • Hoy conecté un pendrive de 32 GB en mi computadora con FreeBSD 11 y por alguna razón KDE no lo montó automáticamente. Tal vez no haya detectado el tipo de dispositivo correctamente, con lo cual necesité montarlo de manera manual.

  • En la configuración previa de mi estación de trabajo tenía todos los archivos en una única partición, incluyendo los directorios $HOME de usuarios. El problema fue que, luego de unos años, y a medida que fui descargando archivos y creando nuevos, mi ~ (/usr/home/emi) empezó a ocupar mucho tamaño y necesité recuperar algo de espacio en el sistema de archivos raíz. Con lo cual procedí a moverlo a una nueva partición (o disco), lo cual es una tarea muy sencilla.

    En este caso se trata de un sistema FreeBSD, pero el procedimiento es exactamente igual en sistemas GNU/Linux.

  • Este artículo explica cómo lograr que las últimas versiones de paquetes liberadas estén disponibles para actualizar en nuestro sistema FreeBSD. La idea es disponer de lo último de lo último (en cuanto a versiones de paquetes se refiere) lo antes posible, para que nuestro sistema quede siempre en un estado bleeding edge.

  • Esta semana me tocó implementar un espacio de almacenamiento (Datastore en jerga VMware) utilizando un servidor FreeBSD con sistema de archivos ZFS sobre NFS. Una combinación muy interesante para hosts ESXi, especialmente para almacenar backups y snapshots de máquinas virtuales, ya que al hacer uso de las ventajas de ZFS (compresión y deduplicación) se logra un mejor aprovechamiento de los discos.

    El proceso de instalación y configuración de NFS en FreeBSD es bastante simple, tal como lo he explicado anteriormente, y montar un Datastore NFS en un host ESXi es una tarea trivial utilizando el cliente vSphere. Pero, al momento de verificar el funcionamiento del nuevo Datastore implementado con ZFS sobre NFS, los resultados fueron poco más que terribles: una tasa de transferencia entre el host ESXi y el servidor FreeBSD de algo más de 1 Mb/seg. Muy diferente a los resultados que había tenido con clientes GNU/Linux.

  • PostgreSQL es un sistema de bases de datos relacional orientado a objetos, transaccional y ACID-compliant (sus transacciones cumplen con las propiedades de atomicidad, consistencia, aislación y durabilidad). Dentro de mi organización surgió la necesidad de montar una instancia de PostgreSQL sobre un dataset ZFS, para soportar bases de datos de gran tamaño y aprovechar todos los beneficios de ZFS (compresión, eficiencia, flexibilidad y confiabilidad, entre otras). Por supuesto sobre FreeBSD.

    En el artículo Introducción a ZFS en FreeBSD expliqué detalladamente cómo trabajar con sistemas de archivos ZFS, pero mencioné poco sobre su configuración avanzada. Sólo expliqué cómo utilizar compresión y deduplicación. En este artículo voy a explicar cómo optimizar un dataset ZFS para PostgreSQL, con el objetivo de mejorar la performance, lo cual sirve de ejemplo para entender cómo se modifican y cuáles son algunas de las variables de configuración avanzadas de un pool o dataset ZFS.

  • Luego de haber instalado FreeBSD 10 y hecho una limpieza de particiones de mi ex CentOS 7 con KDE (lo que involucró convertir una partición MBR lógica en primaria), llegó el momento de reparticionar el disco para aprovechar todo el espacio disponible.

  • Cuando se necesita pausar o retrasar la ejecución de código (delay) dentro de un script Bash se suele utilizar la herramienta sleep, la cual por defecto toma un parámetro que representa la cantidad de segundos a "dormir" (pausar antes de retomar la ejecución). Sin embargo, en sistemas GNU/Linux, sleep permite utilizar otras unidades como minutos, horas, días, etc.

  • FreeBSD ofrece la posibilidad de descargar imágenes de disco de sistemas preinstalados para crear máquinas virtuales sin necesidad de realizar una instalación.

    En este artículo voy a explica paso a paso cómo descargar una imagen de máquina virtual y levantar un FreeBSD en escasos minutos.

  • En artículos anteriores expliqué cómo instalar y configurar VirtualBox en FreeBSD 10. VirtualBox es una excelente plataforma de virtualización para sistemas de escritorio y entornos de desarrollo. Sin embargo, cuando se necesita configurar sistema FreeBSD donde hospedar servidores virtuales, probablemente deseemos optar por una alternativa más adecuada a nuestras necesidades: QEMU+libvirt. Sobre todo si, como administradores de sistemas, venimos de entornos de virtualización sobre GNU/Linux y estamos más familiarizados con libvirt y su conjunto de herramientas.

    Esto no significa que VirtualBox sea una plataforma inadecuada para utilizar como host de máquinas virtuales. Es perfectamente posible configurar un hipervisor VirtualBox headless (sin entorno gráfico) y gestionarlo totalmente utilizando el front-end VBoxManage (tarea que tengo pendiente para un futuro artículo). Además, las posibilidades que ofrece esta herramienta de línea de comandos son mucho más amplias y completas que las que ofrece la interfaz gráfica, al punto que una gran parte de las funcionalidades avanzadas de VirtualBox están sólo disponibles a través de línea de comandos (VBoxManage).

    Sin embargo, quienes hemos hecho experiencia con QEMU+libvirt conocemos todas sus ventajas. Por ello, en este artículo voy a explicar paso a paso cómo instalar y configurar QEMU y libvirt, cómo crear una máquina virtual desde línea de comandos con virsh, y como configurar una red NAT utilizando el firewall ipfw provisto por FreeBSD.

  • Este artículo muestra las tareas de configuración básicas que realizo sobre cada uno de mis servidores FreeBSD, luego de finalizar una instalación fresca.

  • Este breve artículo demuestra cómo efectuar una limpieza de ports y paquetes en un sistema FreeBSD, con el objetivo de recuperar espacio en disco. Al mismo tiempo en que se actualiza el sistema y se elimina todo software no utilizado.

  • El día de hoy un compañero de trabajo me comentó que había tenido un problema con la SD de su cámara digital y había perdido todas las fotos. Como lamentablemente pasé por esa experiencia, me ofrecí para recuperar sus archivos de dicha memoria.

    SPOILER ALERT: no usar adaptadores micro SD a SD.

  • Mi sistema FreeBSD cuenta actualmente con las versiones 2.7.14 y 3.6.5 del lenguaje de programación e intérprete Python. Sin embargo, al ejecutar env python o simplemente python, no se encuentra el binario.

  • Necesitaba una interfaz host-only para una máquina virtual VirtualBox en mi FreeBSD 10.2, entonces me dispuse a crear un adaptador ejecutando el comando vboxmanage hostonlyif create el cual falló con el error: "failed to open /dev/vboxnetctl".

  • Me encontré con este error, en mi workstation FreeBSD 10.1 con KDE, cuando estaba intentando cargar una imagen ISO de un CD/DVD en una máquina virtual de VirtualBox, utilizando una ventana de exploración de archivos.

  • Al intentar instalar una máquina virtual Devuan GNU+Linux sobre un host FreeBSD con VirtualBox, me encontré en reiteradas oportunidades con un fallo de entrada/salida que provocaba la corrupción del sistema de archivos.

  • Algo que me había quedado pendiente luego de instalar FreeBSD era hacer funcionar los auriculares en el jack del panel frontal de audio de mi gabinete. Algo que anteriormente funcionaba perfectamente en Linux. La solución es bastante simple y consiste en setear correctamente el dispositivo de salida por defecto en el kernel de FreeBSD.

  • En sistemas FreeBSD, el gestor de ports portmaster posee una opción para simular el proceso de compilación e instalación de un port, una especie de apt-get -s en sistemas Devuan y derivados.

  • Necesitaba una tabla ASCII para determinar rápidamente el valor hexadecimal de un caracter en particular y no creerás como termina.