Filtro de controlador de filtro Oracle ASM y 5,15 núcleos UEK7

Un cambio reciente en el núcleo de Linux ha afectado al controlador de filtro Oracle ASM. Este artículo trata sobre cómo desactivar el filtrado y la recuperación del espacio de almacenamiento.

Oracle ASM Filter Driver

Resumen

This blog post explores the impact of disabling Oracle ASM Filter Driver filtering on space reclamation on a FlashArray system.

image_pdfimage_print

Este artículo sobre el filtrado del Controlador de Filtros Oracle ASM apareció originalmente en el blog de Ron Ekins. Se ha vuelto a publicar con el reconocimiento y el consentimiento del autor.

Soy fan desde hace mucho tiempo del Controlador de Filtros (AFD) Oracle ASM. Una de sus mayores ventajas es el filtrado AFD.

La AFD puede garantizar que las escrituras solo se realizan mediante procesos de Oracle de confianza y registrados, bloqueando las escrituras potencialmente dañinas que de otro modo hubieran provocado daños en los datos.

Lamentablemente, un cambio reciente en el núcleo de Linux ha afectado a la AFD y la última recomendación de Oracle es desactivar el filtrado de la AFD hasta que haya una solución disponible.

Desde Oracle Database 19.24, el filtrado está desactivado de manera predeterminada, pero para las versiones anteriores, Oracle ha proporcionado el parche 35618858: Desactive el Filtrado por defecto para 5,15 Kernels y superiores.

Parches de actualización de lanzamiento de Oracle (RU) disponibles

  • Lanzamiento de Oracle Clusterware 19 (19.23.0.0.240416ACFSRU)
  • Lanzamiento de Oracle Clusterware 19 (19.24.0.0.0ACFSRU)
  • Lanzamiento de Oracle Clusterware 19 (19.25.0.0.0ACFSRU)

En esta entrada del blog, exploraré el impacto de desactivar el filtrado AFD en la recuperación del espacio en las cabinas de almacenamiento totalmente flash. 

Versión de Kernel

Recientemente he actualizado mis servidores Oracle RAC a Oracle Linux 8.10 usando kernel 5.15. Puede comprobar su versión de kernel usando unme -r:

Estado de Oracle ASMFD

Podemos usar el comando asmcmd afd_state para obtener el estado del controlador de filtro ASM, por ejemplo:

En un clúster RAC, use la opción asmcmd afd_state –all para ver el estado de todos los nodos. Todos los nodos deben tener el mismo estado de filtrado.

Deshabilitar el filtrado de ASMFD

Desactive el filtrado usando el comando asmcmd afd_filter -d:

Habilitar el filtrado ASMFD

Si es necesario, puede volver a habilitar el filtrado usando el comando asmcmd afd_filter -e, por ejemplo:

Reclamación del espacio de almacenamiento

Esto plantea una gran pregunta: Si deshabilito el controlador de filtro ASM, ¿perdo la capacidad de enviar comandos SCSI UNMAP a una cabina de almacenamiento totalmente flash para liberar espacio no utilizado?

Bien, tengo un clúster RAC de dos nodos con filtro ASMFD DESACTIVADO.

Crear Oracle Tablespace

Para demostrarlo, vamos a crear un espacio de tabla de 4TB y a esperar a que Oracle inicialice el archivo de datos.

Confirmemos que no se utiliza espacio usando mi v$asm_disk consulta:

Y ahora cree el espacio de tabla de bigfile de 4TB.

Usando la v$asm_disk consulta, puedo ver que mis cuatro volúmenes ASMFD se han utilizado en total 4TB como se esperaba.

Usando la utilidad de línea de comandos asmcmd con la opción de atributo de lista, veo que el aprovisionamiento fino está habilitado en mi grupo de discos AFDATA:

Usando la CLI de FlashArray™ y realizando el comando purevol list –-space –-total, podemos confirmar el espacio utilizado por el espacio de tabla en el grupo de discos AFD. Por ejemplo:

lista purevol z-racpod::afd_data* –espacio –total

Soltar espacio de tabla

Ahora dejemos caer el espacio de tabla de Oracle usando DROP TABLESPACE , INCLUIDOS CONTENIDOS Y FILTROS DE DATOS, y veamos el impacto en la plataforma de almacenamiento y la base de datos de Oracle.

Si volvemos a ejecutar la v$asm_view consulta, Oracle informa ahora de que se ha publicado el espacio de tabla de prueba de 4TB.

Volviendo a FlashArray de Pure Storage®, podemos ver que seguimos consumiendo espacio aunque se haya borrado el espacio de tabla de Oracle.

Fase compacta de reequilibrio Oracle ASMFD

Cuando se utiliza Oracle ASM Filter Driver, podemos activar manualmente un comando SCSI UNMAP para liberar espacio en la cabina de almacenamiento usando ALTER DISKGROUP REBALANCE WITH BALANCE COMPACT.

He incluido la opción opcional de ESPERAR para que solo vuelva una vez completado.

Si ahora volvemos a la CLI de FlashArray y repetimos el comando purevol list –space –total, podemos ver el impacto de ALTER DISKGROUP REBALANCE WITH COMPACT.

Podemos ver que, aunque el filtrado AFD se ha desactivado, ASMFD sigue siendo capaz de enviar la solicitud SCSI UNMAP a la cabina de almacenamiento para liberar el espacio.

Resumen

En esta entrada del blog, he confirmado que desactivar el filtrado ASMFD no afecta a la recuperación del espacio.

El equipo de desarrollo de Oracle AFD está trabajando activamente en un nuevo mecanismo de filtrado y protección para los núcleos mencionados anteriormente y los más nuevos. Cuando la nueva solución de filtrado esté disponible, la probaré y compartiré mis hallazgos.

Si desea obtener más información sobre el uso del controlador de filtro ASM para recuperar el espacio de almacenamiento, consulte esta entrada del blog.