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.

Soporte de UBLK front end

A partir de la versión v1.9.0, SUSE Storage soporta el front end UBLK para volúmenes del motor de datos V2. Esta característica expone los volúmenes del motor de datos V2 como un dispositivo de bloque utilizando el marco UBLK SPDK. En ciertos entornos de alta especificación (por ejemplo, máquinas con SSD rápidos capaces de millones de IOPS y equipadas con 32 núcleos de CPU), el front end UBLK podría ofrecer un mejor rendimiento en comparación con el front end NVMe-oF por defecto para los volúmenes del motor de datos V2. Para comparaciones de rendimiento, consulta la SUSE Storage página wiki de Investigación de Rendimiento. Sin embargo, el front end UBLK es menos maduro que el front end NVMe-oF por defecto (ver Limitaciones Conocidas). El front end UBLK también tiene restricciones adicionales, como se detalla a continuación.

Requisitos previos

  1. La versión del núcleo de Linux en los nodos debe ser v6.0 o posterior. El controlador del núcleo de Linux UBLK está disponible solo a partir de la versión del núcleo de Linux v6.0.

  2. El módulo del kernel ublk_drv debe estar cargado en cada nodo donde se vayan a adjuntar volúmenes UBLK. Para pruebas, puedes cargarlo manualmente en cada nodo relevante utilizando el comando:

    modprobe ublk_drv

Instrucciones

Al crear un volumen V2 desde la interfaz de usuario

Selecciona UBLK como el front end del volumen durante la creación del volumen.

Al crear un volumen V2 desde un manifiesto

  1. Crea un StorageClass que especifique el front end UBLK. Por ejemplo:

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: my-ublk-frontend-storageclass
    provisioner: driver.longhorn.io
    allowVolumeExpansion: true
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    parameters:
      numberOfReplicas: "1"
      staleReplicaTimeout: "2880"
      fsType: "ext4"
      dataEngine: "v2"
      frontend: "ublk"
  2. Crea un PersistentVolumeClaim (PVC) que haga referencia al StorageClass creado en el paso anterior. Por ejemplo:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-ublk-frontend-pvc
      namespace: default
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: my-ublk-frontend-storageclass
      resources:
        requests:
          storage: 1Gi
  3. SUSE Storage aprovisiona automáticamente un volumen V2 utilizando el front end UBLK basado en las definiciones de PVC y StorageClass.

Limitaciones conocidas

Cuando un pod de administrador de instancias falla, puede dejar dispositivos UBLK huérfanos en el nodo. Actualmente, eliminar manualmente estos dispositivos huérfanos puede ser difícil y a veces puede requerir un reinicio del nodo. Estamos investigando este problema más a fondo en Informe de GitHub #10738.

Referencia

Problema original de GitHub para el soporte del front end de UBLK: Informe de GitHub #9456.