Las operaciones contra un almacén de objetos están bloqueadas o agotadas enDb2 Big SQL

Las operaciones con un almacén de objetos local como, por ejemplo, CREATE TABLE, se cuelgan o exceden el tiempo de espera.

Síntomas

Observa que operaciones como CREATE TABLE o interacciones generales con un almacén de objetos local como Red Hat® OpenShift® Data Foundation se cuelgan o exceden el tiempo de espera.

Causas

Este problema podría estar relacionado con la forma en que la API de S3 convierte las ubicaciones de s3a que se utilizan en Db2 Big SQL en las solicitudes de HTTP subyacentes que se envían al punto final del almacén de objetos.

El valor predeterminado de AWS Java™ SDK para S3 es utilizar la notación de prefijo de grupo (también conocido como alojamiento virtual) cuando se envían solicitudes. Si el punto final del almacén de objetos es s3.example.com, las solicitudes se envían a bucket.s3.example.com. Sin embargo, es necesaria alguna configuración en la infraestructura de almacenamiento para dar soporte a este comportamiento, tal como se describe en el artículo relativo al prefijo de grupo frente al acceso de vía de acceso Anatomía del cliente del sistema de archivos S3A.

Resolución del problema

Si el almacén de objetos no está configurado para dar soporte a los URL de prefijo de grupo, puede habilitar el acceso de tipo ruta estableciendo la configuración fs.s3a.path.style.access en true. En esta configuración, las solicitudes se envían a s3.example.com/bucket, en lugar de a bucket.s3.example.com.

  1. Inicie sesión en su clúster de OpenShift como administrador del proyecto:
    oc login <OpenShift_URL>:<port>
  2. Cambia al proyecto donde está instalado el ' IBM® Software Hub ' control plane:
    oc project ${PROJECT_CPD_INST_OPERANDS}
  3. Identifique el ID de instancia de Db2 Big SQL:
    oc get cm -l component=db2bigsql -o custom-columns="Instance Id:{.data.instance_id},Instance Name:{.data.instance_name},Created:{.metadata.creationTimestamp}"
  4. Obtenga el nombre del pod principal de Db2 Big SQL:
    head_pod=$(oc get pod -l app=bigsql-<instance_id>,name=dashmpp-head-0 --no-headers=true -o=custom-columns=NAME:.metadata.name)
  5. Actualice el recurso personalizado (CR) de Db2 Big SQL para habilitar la configuración de acceso de estilo de vía de acceso.
    1. Copia de seguridad de la definición de CR:
      oc get bigsql bigsql-<instance_id> -o yaml > bigsql-<instance_id>-bak.yaml
    2. Abra el CR para editarlo:
      oc edit bigsql bigsql-<instance_id>
    3. En la sección s3, localice la línea para el punto final y, después de esta línea, establezca pathStyleAcess en true añadiendo las líneas siguientes.
      Importante: Asegúrese de que la sangría esté en línea con el punto final.
      endpoint: s3.eu-central-1.amazonaws.com
      pathStyleAccess: true
    4. Guarde la actualización y salga del editor:
      wq!
    5. Espere 2 minutos a que el estado del CR de Db2 Big SQL vuelva a Preparado:
      oc get bigsql bigsql-<instance_id>
  6. Reinicie Db2 Big SQL:
    oc exec -i $head_pod -- sudo su - db2inst1 -c "bigsql stop; bigsql start"