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.

Crear un volumen

Crear un volumen vacío

INTERFAZ DE USUARIO

Sección de encabezado

  1. Establecer el volumen Name.

  2. (Opcional) Proporcionar un Description para el volumen.

Pestaña de básicos

  1. Elegir New en Source.

  2. Seleccione un StorageClass existente.

  3. Configurar el Size del volumen.

    crear volumen vacío
  • Si el recuento de réplicas de la StorageClass seleccionada es 1 y el volumen está adjunto a una máquina virtual, entonces la máquina virtual se considera no migrable.

  • Cuando se crea un volumen, copia los parámetros relacionados de la StorageClass seleccionada a sí mismo. Si cambia los parámetros del StorageClass más tarde, no se escriben de nuevo en el volumen.

Volúmenes sobredimensionados

En SUSE Virtualization v1.5.0, que utiliza SUSE Storage v1.8.1, los volúmenes sobredimensionados (por ejemplo, 999999 Gi de tamaño) se marcan como No listo y no se pueden eliminar.

Para resolver este problema, siga los siguientes pasos:

  1. Eliminar temporalmente la regla del webhook PVC.

    RULE_INDEX=$(kubectl get \
      validatingwebhookconfiguration longhorn-webhook-validator -o json \
      | jq '.webhooks[0].rules | map(.resources[0] == "persistentvolumeclaims") | index(true)')
    
    if [ -n "$RULE_INDEX" -a "$RULE_INDEX" != "null" ]; then
      kubectl patch validatingwebhookconfiguration longhorn-webhook-validator \
        --type='json' \
        -p="[{'op': 'remove', 'path': '/webhooks/0/rules/$RULE_INDEX'}]"
    fi
  2. Esperar a que se elimine el PVC relacionado.

  3. Restaurar la regla del webhook PVC para reactivar la validación.

    kubectl patch validatingwebhookconfiguration longhorn-webhook-validator \
      --type='json' \
      -p='[{"op": "add", "path": "/webhooks/0/rules/-", "value": {"apiGroups":[""],"apiVersions":["v1"],"operations":["UPDATE"],"resources":["persistentvolumeclaims"],"scope":"Namespaced"}}]'

El problema se abordará en SUSE Storage v1.8.2, que probablemente se incluirá en SUSE Virtualization v1.5.1.

Problemas relacionados: #8096 y #10741

API
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io
    volume.kubernetes.io/storage-provisioner: driver.longhorn.io
  name: my-vol
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  volumeMode: Block
  volumeName: pvc-my-vol

No utilice las StorageClass vmstate-persistence y longhorn-static al crear nuevos volúmenes. vmstate-persistence se utiliza para la persistencia de TPM y UEFI, mientras que longhorn-static se utiliza para la gestión de volúmenes SUSE Storage existentes.

Terraform

Para crear un volumen vacío en SUSE Virtualization con Terraform utilizando el Harvester Terraform Provider, defina un bloque de recurso harvester_volume:

resource "harvester_volume" "empty-volume" {
  name      = "empty-volume"
  namespace = "default"

  size = "10Gi"
}

Crear un volumen de imagen

  • INTERFAZ DE USUARIO

  • API

  • Terraform

Sección de encabezado

  1. Establecer el volumen Name.

  2. (Opcional) Proporcionar un Description para el volumen.

Pestaña de básicos

  1. Elegir VM Image en Source.

  2. Seleccione un Image existente.

  3. Configurar el Size del volumen.

    Al crear volúmenes a partir de una imagen de VM, asegúrese de que el tamaño del volumen sea mayor o igual al tamaño de la imagen. El volumen puede corromperse si el tamaño del volumen configurado es menor que el tamaño de la imagen subyacente. Esto es especialmente importante para las imágenes qcow2 porque el tamaño virtual suele ser mayor que el tamaño físico. Por defecto, SUSE Virtualization establecerá el tamaño del volumen al tamaño virtual de la imagen.

    crear volumen de imagen

Crear un volumen, inicializado con el contenido de la imagen image-8rb2z del espacio de nombres default:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    harvesterhci.io/imageId: default/image-8rb2z
    volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io
    volume.kubernetes.io/storage-provisioner: driver.longhorn.io
  name: foobar
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: longhorn-image-8rb2z
  volumeMode: Block
  volumeName: pvc-foobar

Para crear un volumen en SUSE Virtualization utilizando Terraform e inicializarlo con el contenido de una imagen, defina un bloque de recurso harvester_volume y establezca la propiedad image:

resource "harvester_volume" "opensuse154-image-disk" {
  name      = "opensuse154-image-disk"
  namespace = "default"

  size  = "10Gi"
  image = harvester_image.opensuse154.id
}