Cómo actualizar una instalación Linux cuando no tenemos espacio libre en disco

En Backup doméstico seguro con Linux, cifrado y ZFS (VII): Volvemos a la tarjeta microSD original nos quedábamos usando una tarjeta microSD de 4 Gigabytes. Tras completar todo el proceso, le quedan unos 300 Megabytes de espacio libre.

Esa cantidad es suficiente para el día a día de esa máquina y para muchas actualizaciones del sistema operativo, pero una actualización completa del kernel de Linux necesita más de 400 Megabytes de espacio libre.

Hago los siguientes pasos para poder realizar una actualización pesada:

Leer más…

Disco RAM en Linux

Hace mucho que Linux (y otros sistemas operativos) permiten el empleo de discos RAM como espacio de trabajo no persistente de alta velocidad a costa de invertir en ellos memoria RAM.

No voy a describir por qué nos puede interesar un disco RAM y cuáles son sus inconvenientes. Para eso tenéis la página de la Wikipedia. La forma de trabajar con disco RAM en Linux ha ido cambiando también con el paso del tiempo; aquí voy a tratar la forma contemporánea. Antiguamente había que crear los discos RAM en la configuración de arranque de Linux, de forma estática. Afortunamente hemos superado eso.

Hoy en día hay dos maneras básicas de usar la memoria de un ordenador Linux como disco RAM:

  • Creando un dispositivo de bloques en memoria RAM, particionándolo y formateándolo para el uso que necesitemos. Este sistema tiene una mayor sobrecarga y es más inflexible, pero su ventaja fundamental es que Linux puede emplear ese dispositivo para cualquier uso válido de un dispositivo de bloques general. Por ejemplo, se puede usar como espacio de intercambio o swap.

    Algunos ejemplos de esta aproximación son ZRAM y ZSWAP. No los voy a tratar en este artículo.

  • Creamos un dispositivo disco RAM con semántica directa de sistema de ficheros. No simula un dispositivo de bloques sobre el que creamos un sistema de ficheros, sino que implementa el sistema de ficheros directamente en memoria RAM.

    Este enfoque es mucho más eficiente y práctico. Una ventaja clara es que cuando se borra un fichero del disco RAM se reduce el espacio ocupado. Naturalmente, este dispositivo solo sirve para almacenar ficheros, no simula ni se puede utilizar como un dispositivo de bloques.

Leer más…

CGNAT y cómo evitar la caducidad de sesiones con conexiones de larga duración

Es sabido por todos que las direcciones IPv4 se están agotando en todo el planeta. Hace tiempo que son un recurso escaso y caro.

Ante esa perspectiva, los ISPs tienen dos opciones:

  • Migrar a IPv6 o, en el caso de operadores móviles de nueva creación, desplegar desde un primer momento IPv6 de forma nativa.

    Esta sería la opción recomendable, pero todavía hoy existen equipos de red con soporte IPv6 mediocre. Un problema aún mayor es que la mayor parte de los servicios disponibles en internet siguen prestándose exclusivamente a través de IPv4.

    Es decir, aunque la red del operador sea IPv6 nativa, casi todo su tráfico tendrá que pasar a través de conversores IPv4 <-> IPv6.

  • Dado el último párrafo, otra posibilidad es colocar toda la red del ISP detrás de sistemas NAT de escala masiva, los llamados Carrier-grade NAT (CGNAT). Un proveedor con millones de usuarios podría conectar a internet a través de un pequeño número de direcciones IP tipo IPv4.

    Ni que decir tiene que esta es la opción común en los ISPs en España.

Leer más…

Backup doméstico seguro con Linux, cifrado y ZFS (VII): Volvemos a la tarjeta microSD original

Tras todo este proceso y algo de limpieza, nos preparamos para mover el servicio de vuelta a la tarjeta microSD de 4 GB. No quiero desperdiciar una microSD rápida e innecesariamente grande para mis necesidades.

Advertencia

Este documento supone que no estamos usando LVM en el disco duro de nuestro portátil. Es mi caso, ya que uso ZFS.

Si no es así, hay que tener mucho cuidado con comandos como vgchange. Revisa los parámetros permitidos en el manual para indicar sobre qué grupos de volúmenes LVM actuar.

Backup doméstico seguro con Linux, cifrado y ZFS (VII): Actualización y reconfiguración del sistema

2   Actualización a Ubuntu 16.04

Veo lo siguiente al conectar a mi servidor ProLiant por SSH:

New release '16.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Leer más…

Backup doméstico seguro con Linux, cifrado y ZFS (VII): Cambio de tarjeta microSD y redimensionamiento LUKS/LVM/FS

Este artículo documenta el proceso de actualización de mi sistema de backup doméstico, en producción desde 2014.

1   Antecedentes y motivación

Algunos antecedentes que tal vez deberías leer antes de meterte con este artículo:

Leer más…

IMAP4 NOTIFY addon for Thunderbird! (Thunderbird 60 compatible!)

Warning: I publish this addon as is. It is a Proof Of Concept. It works well enough for my needs, and I don't have the time neither the Javascript and Thunderbird internals expertise to create a real addon usable by regular users.

Sorry for that. I already invested too much time on this. I am a consultant, btw, so you could just pay me :-).

This code is BSD licensed.

In IMAP4 NOTIFY addon for Thunderbird! I proposed an ugly addon to add IMAP4 notify to Mozilla Thunderbird. I have been enjoying that addon for four years (since late 2014) and I forgot about it. Cool.

In november 2018 Mozilla published Thunderbird 60 and my addon was disabled as "incompatible".

OK, I thought, I will check it out when I have a spare cycle.

So I used Thunderbird 60 for like two weeks without my notify addon.

My friend, what a hell.

Leer más…

Desactivar el espacio de intercambio (swap) en Raspbian

Por defecto, Raspbian en una Raspberry PI utiliza parte de la tarjeta de memoria microSD como espacio de intercambio o swap. Como norma general, me parece mala idea por varios motivos:

  • Es casi seguro que tu tarjeta microSD sea lenta. Es más rápido hacer swap sobre un disco duro USB. Obviamente esto puede cambiar con el paso del tiempo y el progreso tecnológico.
  • Por defecto, el espacio de intercambio configurado es muy pequeño, de unos 100 Megabytes.
  • El número de escrituras en una tarjeta microSD es limitado. Nos interesa reducir las escrituras en lo posible.

Dados los puntos anteriores, si la Raspberry PI está tan desesperada como para tirar del espacio de intercambio a) el rendimiento se va a resentir bastante, b) la vida de la tarjeta microSD se va a reducir de forma apreciable y c) el espacio de intercambio asignado es muy pequeño y, por lo general, será inútil a menos que lo reconfiguremos.

En mis instalaciones Raspbian opto por desactivar el espacio de intercambio en la tarjeta microSD. Para ello ejecuto estos comandos:

# update-rc.d dphys-swapfile remove
# rm /var/swap

Solo veo una situación donde el uso del espacio de intercambio en una Raspberry PI esté justificado: Necesitamos mucha memoria RAM, pero nuestro working set es pequeño. Para liberar RAM tendríamos que incrementar considerablemente el tamaño del espacio de intercambio y/o utilizar tecnologías como ZRAM o ZSWAP.

Detección de presencia por ARP, o cómo saber si tu hijo está en casa (II): Ahora con AsyncIO

En Detección de presencia por ARP, o cómo saber si tu hijo está en casa publiqué un programa Python que notifica por Telegram cuando un dispositivo concreto se conecta o desconecta de tu red. Antes de seguir leyendo, te recomiendo que repases ese artículo.

El código me ha servido bien, pero tiene algunos detalles que no me acaban de gustar:

  • Una vez por minuto se lanzan cientos de procesos Ping para sondear la red. Aunque la Raspberry PI donde está funcionando este sensor va sobrada de recursos y no he tenido problemas con esas avalanchas, resulta algo poco elegante.
  • Lanzo un proceso externo para leer la tabla ARP.

Publico aquí una nueva versión del código Python, esta vez usando la biblioteca asyncio de Python 3:

Leer más…