Filtrado de controladores de filtro Oracle ASM y 5,15 núcleos UEK7

Un cambio reciente en el kernel de Linux afectó al controlador de filtros Oracle ASM. Este artículo analiza la desactivación del 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 de controladores de filtros de Oracle ASM apareció originalmente en el blog de Ron Ekins. Se ha vuelto a publicar con el crédito y consentimiento del autor.

Soy fanático de Oracle Oracle ASM Filter Driver (AFD) desde hace mucho tiempo. Uno de sus principales beneficios es el filtrado AFD.

AFD puede garantizar que las escrituras solo se realicen mediante procesos de Oracle confiables y registrados, lo que bloquea las escrituras potencialmente perjudiciales que de otro modo habrían provocado la corrupción de los datos.

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

Desde Oracle Database 19.24, el filtrado está deshabilitado de forma predeterminada, pero para versiones anteriores, Oracle ha proporcionado Patch 35618858: Desactive el filtrado de forma predeterminada para Kernels 5.15 y superiores.

Parches de actualización de lanzamiento (RU) de Oracle 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 publicación del blog, exploraré el impacto de desactivar el filtrado de AFD en la recuperación del espacio en matrices almacenamiento basado íntegramente en tecnología flash. 

Versión de Kernel

Recientemente, actualicé mis servidores Oracle RAC a Oracle Linux 8.10 con kernel 5.15. Puede verificar su versión de kernel usando unme -r:

Estado ASMFD de Oracle

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

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

Desactivar el filtrado ASMFD

Desactive el filtrado usando el comando asmcmd afd_filter -d:

Habilite el filtrado ASMFD

Si es necesario, puede volver a habilitar el filtrado mediante el comando asmcmdafd_filter-e, por ejemplo:

Recuperación del espacio de almacenamiento

Ahora, esto plantea una gran pregunta: Si deshabilito el controlador de filtro ASM, ¿perderé la capacidad de enviar comandos UNMAP de SCSI a una matriz de almacenamiento basado íntegramente en tecnología flash para liberar espacio no utilizado?

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

Cree Oracle Tablespace

Para demostrar esto, creemos un espacio de mesa de 4TB y esperemos a que Oracle inicialice el archivo de datos.

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

Y ahora cree el espacio de mesa de 4TB Bigfile.

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

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

Al usar la CLI de FlashArray™ y realizar 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

Desconecte el espacio de mesa

Dejemos atrás el espacio de mesa de Oracle usando DROP TABLESPACE INCLUYENDO CONTENIDO 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 ahora informa que se ha publicado el espacio de mesa de prueba de 4TB.

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

Fase compacta de reequilibrio ASMFD de Oracle

Al usar el controlador de filtro Oracle ASM, podemos activar manualmente un comando SCSI UNMAP para liberar espacio de vuelta a la matriz de almacenamiento mediante el comando ALTER DISKGROUP REBALANCE WITH BALANCE COMPACT.

Incluí la opción opcional de ESPERAR para regresar solo una vez que haya finalizado.

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 deshabilitado, ASMFD aún puede enviar la solicitud UNMAP de SCSI a la matriz de almacenamiento para liberar el espacio.

Resumen

En esta publicación del blog, confirmé que desactivar el filtrado de ASMFD no afecta 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 más nuevos y mencionados anteriormente. Cuando la nueva solución de filtrado esté disponible, la intentaré y compartiré mis resultados.

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