17 de mayo de 2010

Lo que trae Linux 2.6.34

Perdonen la falta de detalles, pero no he tenido tiempo de terminarlo (y quizás así sea mejor, porque me obliga a resumir). 2.6.34 ha sido publicado, entre las novedades están dos sistemas de archivos, un driver para obtener rendimiento de red nativo con KVM, mejoras de Btrfs, lockdep para RCU, optimizaciones de kprobes, mejoras de perf, suspensión/resumen del sistema asíncrono, soporte preliminar de Radeon 5xxx....he aquí una explicación detallada. La lista completa en inglés está aquí, como siempre (aunque a lo mío yo no lo llamaría "inglés", y de hecho siempre viene alguien detrás a corregirme pequeños fallos):

· Ceph: Un sistema de archivos distribuido, que puede considerarse vagamente similar a los conceptos de lustre o el googlefs. Es decir, distribuye varias copias de los datos entre los servidores, y si uno de ellos falla se replica en otro. Como suele ocurrir en este tipo de sistemas de archivo, los datos y metadatos se almacenan por separado, pero a diferencia de otros como Lustre, Ceph permite tener múltiples servidores de metadatos. Su autor principal es Sage Weil, quien lo inicio como parte de su tesis. En este artículo (o en este otro) se explica en detalle su funcionamiento. De progresar, podría hacer frente a Lustre y, además, estar mejor integrado en Linux. Una cosa curiosa es que Ceph utiliza para implementar ciertas características funcionalidades exclusivas de Btrfs (y, de hecho, han enviado parches para implementarlas), de modo que Ceph utiliza Btrfs como almacen seguro de sus objetos. Cabe notar además que es un sistema de archivos aun muy experimental

· LogFS: Es un sistema de archivos diseñado para dispositivos basados en "memoria flash" (SSD) y, como su nombre indica, su diseño está basado en la idea de estructura en forma de log (es decir, todas las operaciones del sistema de archivos se van añadiendo linealmente a la cabeza de log). Puede considerarse como el sucesor de JFFS2, al que supera en prácticamente todos los sentidos. A diferencia de otros sistemas de archivos para dispositivos SSD, tiene soporte rudimentario para funcionar en dispositivos basados en bloques (discos duros).

· Mejoras de Btrfs: En esta versión, Btrfs añade varias cosas:
   · La capacidad de configurar qué subvolumen es el subvolumen por defecto. Esto permite cosas como, a la hora de actualizar el sistema, tomar un snapshot, actualizar, y configurar a a las actualizaciones como subvolumen por defecto. Y, si algo falla, se reconfigura el snapshot anterior como subvolumen por defecto. De hecho, ya existe en F13 un plugin que automáticamente toma snapshots antes de las actualizaciones y modifica incluso la configuración de Grub, permitiendo probar una versión de Fedora y volver a la anterior en caso de tener problemas con ella.
   · Se ha añadido una nueva herramienta para gestionar btrfs, el comando "btrfs". Esta herramienta reemplaza a todas las herramientas anteriores.
   · Se ha añadido la capacidad de listar todos los subvolúmenes del sistema (comando btrfs subvolume list)
   · Se ha modificado el cálculo de df (que, para btrfs es mucho más complejo de lo normal), y se ha añadido un df propio detallado (comando btrfs filesystem df)
   · Se pueden defragmentar archivos individuales, e incluso rangos determinados dentro de un archivo.

· Vhost net: Se trata de un driver que realiza una optimización para las funciones de red de virtio (la interfaz de IO de Linux para interactuar con eficiencia entre huéspedes e invitados de virtualización). Este driver elimina 4 llamadas al sistema por cada paquete de red, y consiguientemente toda la sobrecarga que ello implica. De ese modo, los invitados de un sistema KVM pueden tener un rendimiento de red prácticamente idéntico al del hardware nativo.

· Kprobes jump: Kprobes es el sistema que utiliza Systemtap para insertar "sondas" (probes) en puntos aleatorios del código kernel. Estas sondas insertan la instrucción "int3", que provoca una interrupción que el código de kprobes atiende obteniendo todos los datos que sean necesarios para Systemtap. En esta versión, Kprobes puede utilizar una simple instrucción "jmp", es decir, para llamar a Kprobes simplemente se hace un salto de código, que es mucho más eficiente. Con "int 3", una sonda tarda 0.5-1 microsegundos en desapacharse, con "jmp" apenas 0.1. Esto hace que la instrumentación en vivo sea aun menos notable en el sistema.

· Mejoras de perf: una nueva herramienta que analiza estadísticas de bloqueos (perf lock), y soporte para análisis entre distintas plataformas, por ejemplo un x86-32 bits y un SPARC 64 bits. Esto permite "empaquetar" los datos de un análisis de una carga concreta, y enviarselos por email a alguien para que sepa revisarlos y encontrar problemas.

· Lockdep para RCU: Lockdep es una herramienta de depuración que trata de precedir posibles fallos en los bloqueos del código mientras se ejecuta el sistema. Sin embargo, hasta ahora no incluía depuración para uno de los tipos de bloqueo más importantes y complejos de Linux, RCU. Esta versión, se añade soporte para ello.

· Generalized TTL Security Mechanism, private VLAN proxy arp: Dos nuevos RFCs (5082 y 3069). El primero es un sistema de protección especialmente útil para proteger routers contra ataques con paquetes BGP.


· Suspension/resumen asíncrono: Hasta ahora, la suspensión y resumen de los dispositivos en Linux era síncrono, es decir, se hacían las operaciones de suspensión y resumen del dispositivo uno detrás de otro. En esta versión se hacen en paralelo, lo cual acelera el proceso, especialmente el de resumen del sistema, aunque de momento solo lo utilizan los dispositivos PCI, USB y SCSI.

· Alternancia entre GPUs: Algunos portátiles incluyen múltiples GPUs, una de bajo rendimiento y consumo y otra de alto, y permiten cambiar dinámicamente entre ambas. Esta versión añade soporte para ello en Linux (aunque requiere reiniciar las X).

· Soporte preliminar de Radeon HD5xxx: Pero solo preliminar...

· Driver Ballon de VMware: El "Balloning" es una técnica que permite limitar la memoria que utilizan los invitados en los sistemas virtualizados con colaboración del invitado. Con este driver, los invitados Linux en huéspedes VMware podrán realizar esta función correctamente.


Esto es todo. Para la lista completa, ya saben, aquí.

8 comentarios:

  1. Anónimo1:44 p. m.

    s/resumen/reanudación

    ResponderEliminar
  2. Excelente resumen, muchas gracias.

    ResponderEliminar
  3. Gracias por la traducción

    ResponderEliminar
  4. Clarísima la lista de novedades.
    Y en castellano!
    Muchas gracias.

    ResponderEliminar
  5. Fayerwayer copio tu articulo literalmente! :P http://www.fayerwayer.com/2010/05/linux-kernel-2-6-34-ya-disponible/comment-page-1/#comments

    ResponderEliminar
  6. @Human: Gracias por el aviso....

    ResponderEliminar
  7. Para los que intenten compilar este kernel en debian es necesario utilizar el kernel-package de squeeze dado que el propio de Lenny bota error de version UTC

    ResponderEliminar