Activación del plugin de gestión de volúmenes en bloque

En este tema se describe cómo activar el plugin Gestión de volúmenes en bloque en una instancia de Compute, que se necesita para los siguientes escenarios de asociación de volumen:

  • Volúmenes asociados iSCSI configurados para el nivel Rendimiento ultraalto. Estas asociaciones de volúmenes deben estar activadas para rutas múltiples para lograr el rendimiento optimizado disponible con el nivel Rendimiento ultraalto.

  • Volúmenes iSCSI asociados configurados para otros niveles de rendimiento y configurados para conectarse automáticamente. Estos volúmenes se han asociado con la opción Utilizar Oracle Cloud Agent para conectar volúmenes asociados a iSCSI automáticamente seleccionada y solo está soportada para asociaciones a instancias basadas en Linux. En este escenario se requiere que la instancia ejecute la versión 1.23.0 o posterior del software Oracle Cloud Agent.

El plugin Gestión de volúmenes en bloque lo gestiona el software Oracle Cloud Agent y realiza las siguientes acciones:

  1. Comprueba los metadatos de la instancia en busca de asociaciones activadas para rutas múltiples en volúmenes o asociaciones de Rendimiento ultraalto configurados para conectarse automáticamente a volúmenes configurados para otros niveles de rendimiento, con un intervalo de sondeo de un minuto.

  2. Instala device-mapper-multipath rpm y agrega "/etc/multipath.conf".

  3. Si hay asociaciones activadas para rutas múltiples o asociaciones configuradas para conectarse automáticamente en los metadatos de la instancia, el plugin ejecuta comandos login de iSCSI por lotes para las asociaciones de volúmenes.

Requisitos previos

El plugin Gestión de volúmenes en bloque está soportado en imágenes de Oracle Autonomous Linux y Oracle Linux, así como en imágenes personalizadas basadas en dichas imágenes.

Los siguientes pasos son necesarios para el plugin Gestión de volúmenes en bloque.

  • Gateways de servicio o direcciones IP públicas: la instancia informática debe tener una dirección IP pública o un gateway de servicio para poder conectarse a servicios de Oracle.

    Si la instancia no tiene una dirección IP pública, configure un gateway de servicio en la red virtual en la nube (VCN). El gateway de servicio permite a la instancia acceder de forma privada a servicios de Oracle sin exponer los datos en la red pública de Internet. A continuación, se muestran notas especiales para configurar el gateway de servicio para el plugin Gestión de volúmenes en bloque:

    • Al crear el gateway de servicio, active la etiqueta de servicio denominada Todos los servicios de <region> en la red de servicios de Oracle.
    • Al configurar el enrutamiento para la subred que contiene la instancia, configure una regla de ruta con Tipo de objetivo configurado en Gateway de servicio y Servicio de destino configurado en Todos los servicios de <region> en la red de servicios de Oracle.

    Para obtener instrucciones detalladas, consulte Acceso a los servicios de Oracle: gateway de servicios.

  • Oracle Cloud Agent: el software Oracle Cloud Agent se debe instalar en la instancia. Oracle Cloud Agent está instalado por defecto en imágenes de plataforma actuales. Para ver los pasos para instalar manualmente Oracle Cloud Agent en imágenes antiguas, consulte Instalación del software Oracle Cloud Agent. Para actualizar, consulte Actualización del software Oracle Cloud Agent.
    Importante

    Si activa el plugin Gestión de volúmenes en bloque para soportar la conexión automática a un escenario de volumen, la instancia debe ejecutar la versión 1.23.0 o posterior del software Oracle Cloud Agent.
  • Configurar permisos: estos permisos autorizan a la instancia a realizar llamadas de API a los servicios de Oracle Cloud Infrastructure, lo que permite al plugin Gestión de volúmenes en bloque informar de los resultados de configuración de iSCSI para asociaciones iSCSI activadas para rutas múltiples.

    Para configurar los permisos:

    1. Crear grupo dinámico: cree un grupo dinámico con las reglas de coincidencia del siguiente ejemplo de código, para incluir todas las instancias en los compartimentos especificados:

      ANY {instance.compartment.id = 'ocid1.tenancy.oc1..<tenancy_ID>', instance.compartment.id = 'ocid1.compartment.oc1..<compartment_OCID>'}
    2. Configurar política para grupo dinámico: configure una política que otorgue permisos al grupo dinámico creado en el paso anterior para permitir que el agente de instancia acceda al servicio Block Volume para recuperar la configuración de asociación:

      Allow dynamic-group InstantAgent to use instances in tenancy
      Allow dynamic-group InstantAgent to use volume-attachments in tenancy

Activación de Gestión de volúmenes en bloque en nuevas instancias

Para activar Gestión de volúmenes en bloque en una nueva instancia informática, realice los siguientes pasos.

Para activar Gestión de volúmenes en bloque en una nueva instancia informática mediante la consola
  1. Siga los pasos de Creación de una instancia de Linux, hasta las opciones avanzadas. Asegúrese de que la instancia tenga una dirección IP pública o un gateway de servicio, como se describe en los requisitos.
  2. Haga clic en Mostrar Opciones Avanzadas.
  3. En el separador Oracle Cloud Agent, seleccione la casilla de control Gestión de volúmenes en bloque.

  4. Haga clic en Crear.

Para activar Gestión de volúmenes en bloque en una nueva instancia informática mediante la API
  1. Instale el software Oracle Cloud Agent, si aún no está instalado.
  2. Utilice la operación UpdateInstance. Incluya los siguientes parámetros:

    #oci compute instance update --instance-id <New_Instance> --agent-config file:///agentUpdate.json
    agentUpdate.json
    {
        "is-agent-disabled": false,
        "plugins-config": [
            {"name": "Block Volume Management", "desiredState": "ENABLED" }
        ]
    }
  3. Asegúrese de que la instancia tenga una dirección IP pública o un gateway de servicio, como se describe en los requisitos.

Activación de Gestión de volúmenes en bloque en instancias existentes

Para activar Gestión de volúmenes en bloque en una instancia informática existente, realice los siguientes pasos.

Para activar Gestión de volúmenes en bloque en una instancia informática existente mediante la consola
  1. Instale el software Oracle Cloud Agent, si aún no está instalado. Oracle Cloud Agent ya debe estar instalado en todas las imágenes de plataforma actuales y más recientes. Ejecute el siguiente comando para comprobar si ya está instalado:

    systemctl status oracle-cloud-agent

    Si el resultado no se encuentra, debe instalar el software; de lo contrario, continúe con el siguiente paso.

  2. Active el plugin Gestión de volúmenes en bloque.
  3. Confirme que los plugins se están ejecutando en la instancia.
  4. Asegúrese de que la instancia tenga una dirección IP pública o un gateway de servicio, como se describe en Requisitos.
Para activar Gestión de volúmenes en bloque en una instancia informática existente mediante la API
  1. Instale el software Oracle Cloud Agent, si aún no está instalado.
  2. Utilice la operación UpdateInstance. Incluya los siguientes parámetros:

    #oci compute instance update --instance-id <New_Instance> --agent-config file:///agentUpdate.json
    agentUpdate.json
    {
        "is-agent-disabled": false,
        "plugins-config": [
            {"name": "Block Volume Management", "desiredState": "ENABLED" }
        ]
    }
  3. Asegúrese de que la instancia tenga una dirección IP pública o un gateway de servicio, como se describe en Requisitos.

Activación manual de Gestión de volúmenes en bloque en una instancia

Puede activar manualmente Gestión de volúmenes en bloque en una instancia informática mediante la CLI.

Este procedimiento solo es necesario para imágenes personalizadas que se hayan actualizado para soportar el nivel Rendimiento ultraalto, pero el plugin Gestión de volúmenes en bloque no se ha activado en el archivo /etc/oracle-cloud-agent/agent.yml.

Antes de realizar este procedimiento, debe completar los pasos descritos en Activación de Gestión de volúmenes en bloque en instancias nuevas o en Activación de Gestión de volúmenes en bloque en instancias existentes.

Para activar manualmente el plugin Gestión de volúmenes en bloque en una instancia
  1. Instale el software Oracle Cloud Agent en la instancia, si aún no está instalado.
  2. Conéctese a la instancia. Consulte Conexión a una instancia.
  3. Ejecute el siguiente script sed para activar Gestión de volúmenes en bloque:

    sed -i.saved -e '/^  oci-blockautoconfig:/,/^  [a-z]*:/{s/\(.*disabled:.*\)true/\1false/}' /etc/oracle-cloud-agent/agent.yml

    Este script actualiza el parámetro disabled para la configuración oci-blockautoconfig en /etc/oracle-cloud-agent/agent.yml de true a false.

  4. Ejecute el siguiente comando para reiniciar el servicio Oracle Cloud Agent:
    systemctl restart oracle-cloud-agent.service

Solución de problemas del plugin Gestión de volúmenes en bloque

Si el plugin Gestión de volúmenes en bloque no está configurado correctamente para una instancia, puede que aparezca un error al asociar un volumen con un tipo de asociación iSCSI. Consulte las sugerencias de solución de problemas de esta sección para ver estos problemas.

Error de log de plugin Gestión de volúmenes en bloque: Volume Attachment Not Authorized o Not Found

Si no ha configurado los permisos correctamente para el plugin Gestión de volúmenes en bloque, el volumen no se podrá asociar a la instancia.

Detalles

El volumen no aparecerá como asociado en la consola y verá un mensaje de error NotAuthorizedOrNotFound en el log del plugin Gestión de volúmenes en bloque.

El log del plugin Gestión de volúmenes en bloque se encuentra en:

"/var/log/oracle-cloud-agent/plugins/oci-blockautoconfig/oci-blockautoconfig.log

A continuación, se muestra una entrada del log de errores de ejemplo para este problema:

2021/08/13 09:14:25.864932 compute_client_command.go:255: Updating volume attachment to the state LOGIN_SUCCEEDED ...
2021/08/13 09:14:26.155473 compute_client_command.go:260: Service error:NotAuthorizedOrNotFound.
volume attachment ocid1.volumeattachment.oc1.iad.<volume-attachment_ID> not found.
http status code: 404. Opc request id: <request_ID>

Causa

El plugin Gestión de volúmenes en bloque no tiene permisos suficientes para enviar la notificación de estado de inicio de sesión de iSCSI al servicio.

Resolución

Para configurar permisos para el plugin Gestión de volúmenes en bloque:

  1. Crear grupo dinámico: cree un grupo dinámico con las reglas de coincidencia del siguiente ejemplo de código, para incluir todas las instancias en los compartimentos especificados:

    ANY {instance.compartment.id = 'ocid1.tenancy.oc1..<tenancy_ID>', instance.compartment.id = 'ocid1.compartment.oc1..<compartment_OCID>'
  2. Configurar política para grupo dinámico: configure una política que otorgue permisos al grupo dinámico creado en el paso anterior para permitir que el agente de instancia acceda al servicio Block Volume para recuperar la configuración de asociación:

    Allow dynamic-group InstantAgent to use instances in tenancy
    Allow dynamic-group InstantAgent to use volume-attachments in tenancy
Error de log de plugin Gestión de volúmenes en bloque: User Agent Can Not Be Blank

La instancia informática debe tener una dirección IP pública o un gateway de servicio para poder conectarse a los servicios de Oracle; de lo contrario, el volumen no se podrá asociar.

Detalles

El volumen no aparecerá como asociado en la consola y verá un mensaje de error user agent can not be blank en el log del plugin Gestión de volúmenes en bloque.

El log del plugin Gestión de volúmenes en bloque se encuentra en:

"/var/log/oracle-cloud-agent/plugins/oci-blockautoconfig/oci-blockautoconfig.log

A continuación, se muestra una entrada del log de errores de ejemplo para este problema:

2021/10/15 22:16:07.881953 compute_client_command.go:255: Updating volume attachment to the state LOGIN_SUCCEEDED ...
2021/10/15 22:16:07.882185 compute_client_command.go:260: user agent can not be blank
2021/10/15 22:16:07.882204 iscsi_commands_helper.go:302: user agent can not be blank
2021/10/15 22:16:07.882212 iscsi_commands_helper.go:310: user agent can not be blank

Causa

El plugin Gestión de volúmenes en bloque no puede enviar la notificación de estado de conexión de iSCSI al servicio debido a la configuración de red.

Resolución

Si la instancia no tiene una dirección IP pública, configure un gateway de servicio en la red virtual en la nube (VCN). El gateway de servicio permite a la instancia acceder de forma privada a servicios de Oracle sin exponer los datos en la red pública de Internet. A continuación, se muestran notas especiales para configurar el gateway de servicio para el plugin Gestión de volúmenes en bloque:

  • Al crear el gateway de servicio, active la etiqueta de servicio denominada Todos los servicios de <region> en la red de servicios de Oracle.
  • Al configurar el enrutamiento para la subred que contiene la instancia, configure una regla de ruta con Tipo de objetivo configurado en Gateway de servicio y Servicio de destino configurado en Todos los servicios de <region> en la red de servicios de Oracle.

Para obtener instrucciones detalladas, consulte Acceso a los servicios de Oracle: gateway de servicios.