Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Esta es documentación inédita para SUSE® Storage 1.12 (Dev).

Soporte de Disco de Nodo

Longhorn ahora soporta la adición y gestión de varios tipos de discos (AIO, NVMe y VirtIO) en nodos, mejorando las operaciones del sistema de archivos, el rendimiento del almacenamiento y la compatibilidad.

  • Rendimiento de Almacenamiento Mejorado

    Utilizar discos NVMe y VirtIO permite operaciones de disco más rápidas, mejorando significativamente el rendimiento general.

  • Compatibilidad del Sistema de Archivos

    Los discos gestionados con controladores NVMe o VirtIO ofrecen mejor soporte para sistemas de archivos, incluyendo operaciones avanzadas como el trimming.

  • Flexibilidad

    Los usuarios pueden seleccionar el tipo de disco que mejor se adapte a su entorno: AIO para configuraciones tradicionales, NVMe para necesidades de alto rendimiento, o VirtIO para entornos virtualizados.

  • Facilidad de manejo

    La detección automática de controladores de disco simplifica la adición y gestión de discos, reduciendo la carga administrativa.

Configurar un Disco en el Nodo de Longhorn

Longhorn detecta automáticamente el tipo de disco si node.spec.disks[i].diskDriver está configurado a auto, optimizando el rendimiento del almacenamiento. La detección y gestión son las siguientes:

  • Disco NVMe: gestionado por spdk_tgt utilizando el controlador nvme bdev, y node.status.diskStatus[i].diskDriver está configurado a nvme.

  • Disco VirtIO: gestionado por spdk_tgt utilizando el controlador virtio bdev, y node.status.diskStatus[i].diskDriver está configurado a virtio-blk.

  • Otros Discos: gestionados por spdk_tgt utilizando el controlador aio bdev, y node.status.diskStatus[i].diskDriver está configurado a aio.

Alternativamente, los usuarios pueden configurar manualmente node.spec.disks[i].diskDriver a aio para forzar el uso del controlador aio bdev.

Para soportar discos NVMe y VirtIO, necesitas encontrar el BDF (Bus, Dispositivo, Función) del disco como una vía de disco que se añadirá al nodo de Longhorn. Los siguientes ejemplos proporcionan una introducción a la configuración de discos NVMe, discos VirtIO y otros.

Nota

Una vez que estos discos sean gestionados por el controlador bdev NVMe o el controlador bdev VirtIO, en lugar del controlador del kernel de Linux, no se listarán bajo /dev/nvmeXnY o /dev/vdbX.

Uso de discos NVMe

  1. Lista los discos

    Primero, identifica los discos NVMe disponibles en tu sistema ejecutando el siguiente comando:

    # ls -al /sys/block/

    Resultado de ejemplo:

    lrwxrwxrwx  1 root root 0  Jul  30 12:20 loop0 -> ../devices/virtual/block/loop0
    lrwxrwxrwx  1 root root 0  Jul  30 12:20 nvme0n1 -> ../devices/pci0000:00/0000:00:01.2/0000:02:00.0/nvme/nvme0/nvme0n1
    lrwxrwxrwx  1 root root 0  Jul  30 12:20 nvme0n1 -> ../devices/pci0000:00/0000:00:01.2/0000:05:00.0/nvme/nvme1/nvme1n1
  2. Obtén el BDF del disco NVMe

    Identifica el BDF del disco NVMe /dev/nvme1n1. Del ejemplo anterior, el BDF es 0000:05:00.0.

  3. Añade el disco NVMe a spec.disks de node.longhorn.io

    nvme-disk:
      allowScheduling: true
      diskType: block
      diskDriver: auto
      evictionRequested: false
      path: 0000:05:00.0
      storageReserved: 0
      tags: []
  4. Verifica el status.diskStatus. El disco debería ser detectado sin errores, y el discoDriver debería estar configurado a nvme.

Nota: Configuración alternativa del disco

Si añades el disco utilizando una ruta diferente, como:

 nvme-disk:
   allowScheduling: true
   diskType: block
   diskDriver: auto
   evictionRequested: false
   path: /dev/nvme1n1
   storageReserved: 0
   tags: []

En este caso, el disco será gestionado por el controlador bdev aio, y el node.status.diskStatus[i].diskDriver está configurado a aio.

Uso de discos VirtIO

Los pasos son similares a los de los discos NVMe.

  1. Lista los discos

    Primero, identifica los discos VirtIO disponibles en tu sistema ejecutando el siguiente comando:

    # ls -al /sys/block/

    Resultado de ejemplo:

    lrwxrwxrwx  1 root root 0  Jul  30 12:20 loop0 -> ../devices/virtual/block/loop0
    lrwxrwxrwx  1 root root 0 Feb 22 14:04 vda -> ../devices/pci0000:00/0000:00:02.3/0000:04:00.0/virtio2/block/vda
    lrwxrwxrwx  1 root root 0 Feb 22 14:24 vdb -> ../devices/pci0000:00/0000:00:02.6/0000:07:00.0/virtio5/block/vdb
  2. Obtén el BDF del disco VirtIO

    Identifica el BDF del disco VirtIO /dev/vdb. Del ejemplo anterior, el BDF es 0000:07:00.0.

  3. Añade el disco VirtIO a spec.disks de node.longhorn.io.

    nvme-disk:
      allowScheduling: true
      diskType: block
      diskDriver: auto
      evictionRequested: false
      path: 0000:07:00.0
      storageReserved: 0
      tags: []
  4. Verifica el status.diskStatus. El disco debería ser detectado sin errores, y el diskDriver debería estar configurado a virtio-blk.

Nota: Configuración alternativa del disco

Si añades el disco utilizando una vía diferente, como:

 nvme-disk:
   allowScheduling: true
   diskType: block
   diskDriver: auto
   evictionRequested: false
   path: /dev/vdb
   storageReserved: 0
   tags: []

En este caso, el disco será gestionado por el controlador bdev aio, y el node.status.diskStatus[i].diskDriver está configurado a aio.

Uso de discos AIO

Cuando ni los controladores NVMe ni los controladores VirtIO pueden gestionar un disco, Longhorn utilizará por defecto el controlador aio bdev. Los usuarios también pueden configurarlo manualmente.

  1. Añade el disco a spec.disks de node.longhorn.io

     default-disk-loop:
       allowScheduling: true
       diskDriver: aio
       diskType: block
       evictionRequested: false
       path: /dev/loop12
       storageReserved: 0
       tags: []
  2. Verifica node.status.diskStatus. El disco debería ser detectado sin errores, y el node.status.diskStatus[i].diskDriver está configurado a aio.