Cómo ver los datos de sincronización de tiempo en un sistema operativo con "systemd"

En entornos Linux que utilicen Systemd es común que el protocolo NTP lo gestione Systemd, así que hay que aprender a plegarse al signo de los tiempos.

Veamos cómo ver detalles de sincronización de tiempo con Systemd:

jcea@jcea:~$ timedatectl status
               Local time: mar 2023-08-22 15:44:17 CET
           Universal time: mar 2023-08-22 14:44:17 UTC
                 RTC time: mar 2023-08-22 14:44:17
                Time zone: Europe/Madrid (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

jcea@jcea:~$ timedatectl timesync-status
       Server: 2620:2d:4000:1::41 (ntp.ubuntu.com)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 2
    Reference: 4FF33C32
    Precision: 1us (-25)
Root distance: 785us (max: 5s)
       Offset: -48.589ms
        Delay: 31.949ms
       Jitter: 20.555ms
 Packet count: 40
    Frequency: +16,668ppm

How to force a reconfiguration on SmartOS

From time to time we would like to be able to force SmartOS hypervisor to reconfigure again without deleting the complete HardDisk.

It is simple. Just create the following ZFS property in the zones/var dataset: smartdc:factoryreset=yes. Then reboot the SmartOS machine.

If you are curious, check the details in the file /lib/svc/method/fs-joyent. The relevant lines are:

# A machine is reset to its original unsetup state (i.e. a 'factory reset')
# when the smartdc:factoryreset ZFS user property is set on the var dataset.
reset=$(zfs get -H -o value smartdc:factoryreset ${SYS_ZPOOL}/var)
if [ "${reset}" == "yes" ]; then
    destroy_zpools
fi

Cómo cerrar una conexión SSH colgada y otras secuencias de escape SSH

A veces se nos queda una conexión SSH colgada. Esto es típico tras volver de una hibernación o si estamos atravesando un cortafuegos o un NAT con un timeout bajo y la conexión SSH tiene poca actividad.

En esos casos la conexión SSH puede parecer colgada y tenemos que esperar a que la sesión se caiga por timeout SSH.

SSH se puede configurar con un tiempo keepalive corto para mantener el cortafuegos o el NAT contento y, también, para detectar la caída rápidamente tras la vuelta de la hibernación, pero en este artículo vamos a hacerlo de otra manera.

Si estamos en una sesión SSH, podemos pulsar la tecla de línea nueva (la tecla puede etiquetarse como enter, intro o return), luego la virguilla (es decir, ~) y finalmente el signo de interrogación cerrada (es decir, ?). Veremos algo de este estilo:

Supported escape sequences:
 ~.   - terminate connection (and any multiplexed sessions)
 ~B   - send a BREAK to the remote system
 ~C   - open a command line
 ~R   - request rekey
 ~V/v - decrease/increase verbosity (LogLevel)
 ~^Z  - suspend ssh
 ~#   - list forwarded connections
 ~&   - background ssh (when waiting for connections to terminate)
 ~?   - this message
 ~~   - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

Aquí vemos algunas secuencias de escape interesantes que conviene conocer. Especialmente nos interesa la secuencia ~., que corta la conexión SSH. Obsérvese también que para enviar una virguilla (~) al servidor hay que pulsarla dos veces.

Recuerda que las secuencias de escape de SSH deben teclearse al principio de la línea. Si no funciona, asegúrate de pulsar la tecla enter primero.

Novedades SmartOS de 20221201 a 20230615

Artículos previos:

Lo cierto es que los proyectos SmartOS e Illumos son muy activos y tienen muchísima actividad. Proporcionar un repaso exhaustivo es mucho trabajo para mí, así que me limitaré a detallar lo que me parece más interesante desde un punto de vista personal.

Puedes ver los cambios con detalle en inglés.

Leer más…

Actualización de características en un sistema de ficheros ZFS (20230515)

Este artículo es una continuación de Actualización de características en un sistema de ficheros ZFS (20200528). Lee primero ese texto para saber de qué estoy hablando.

Con el paso del tiempo voy actualizando ZFS y es posible activar características opcionales adicionales. Desde la actualización de 2020 hay novedades:

encryption
project_quota
device_removal
obsolete_counts
zpool_checkpoint
spacemap_v2
allocation_classes
resilver_defer
bookmark_v2

¿Qué hemos activado realmente?

ZFS está bastante bien documentado. Por ejemplo, podemos ver el manual de zpool-features. También podemos ver la web oficial de OpenZFS.

Leer más…

Compilar las bibliotecas x265, libaom y dav1d en SmartOS

Al igual que hicimos en Compilar la biblioteca x264 en SmartOS con la biblioteca x264, podemos hacer lo mismo con x265 y las bibliotecas para procesar vídeo en formato AV1.

Voy a ir directamente al grano, para no explicar una vez más cómo se compila código en una zona SmartOS PkgSrc:

  • x265: Está en /data/pkgsrc/multimedia/x265. Se puede compilar con opciones avanzadas haciendo:

    -> bmake PKG_OPTIONS.x265=x265-main10 package
    
  • AV1: Tenemos que compilar las bibliotecas libaom y dav1d.

    • La biblioteca libaom está en /data/pkgsrc/multimedia/libaom. No admite opciones de compilación en PkgSrc.
    • La biblioteca dav1d está en /data/pkgsrc/multimedia/dav1d. Tampoco admite opciones de compilación en PkgSrc.

Como en el caso de x264, la mejora de rendimiento al compilar nuestras propias bibliotecas adaptadas a nuestra CPU es de cinco a uno. Vale la pena invertir el esfuerzo, que es bien poco.