Erro ao criar uma partição em disco usado pelo AFD (close device failed: Input/output error)


O Oracle ASM Filter Driver (AFD) é um módulo de kernel que reside no caminho de E/S dos discos Oracle ASM. Ele elimina a necessidade de reassociar os dispositivos de disco usados com o Oracle ASM toda vez que o sistema é reiniciado. Em vez disso, o Oracle AFD gerencia automaticamente os dispositivos, tornando o processo mais eficiente e menos propenso a erros.

Ao utilizar o AFD em um disco, ele vai previnir ("filtrar") para que apenas as operações reconhecidas pela Oracle sejam efetuadas. Isso inclui não permitir a formatação de partições usadas pelo AFD, criação de novas partições ou filesystem em um disco que já esteja sendo usado pelo AFD.

O ambiente de teste abaixo esta utilizando as partições /dev/sdd1,/dev/sdb1,/dev/sde1,/dev/sdc1,/dev/sdc2 e /dev/sdc3. O disco /dev/sdc é uma unidade de 5GB e atualmente possui 3 partições de 1 GB cada. Ou seja, ainda tem livre 2 GB.


Se tentarmos criar uma nova partição de 1GB no disco /dev/sdc, vamos receber um erro gerado pela "proteção" do AFD.

/dev/sdc: close device failed: Input/output error

MESSAGES**

May  7 23:20:40 lamim19c systemd[1]: Started system activity accounting tool.
May  7 23:29:00 lamim19c kernel: F 4304491.197/240508022900 fdisk[9233] oracleafd:23:0294:Write IO to ASM managed device: [8] [32]
May  7 23:29:00 lamim19c kernel: Buffer I/O error on dev sdc, logical block 0, lost async page write
May  7 23:30:01 lamim19c systemd[1]: Starting system activity accounting tool...


Exemplo do erro que ocorre ao tentar formatar uma partição ja usada pelo AFD.
 

Porém se precisarmos criar uma partição em um disco que tem área sobrando e já possui alguma partição sendo usada pelo AFD, como pode ser feito?

Para esta atividade é necessário primeiro desabilitar o modo de filtragem  do AFD para então poder manipular o disco.
[root@lamim19c ~]#
[root@lamim19c ~]# asmcmd afd_state
ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'lamim19c'
[root@lamim19c ~]#

Acima constatamos que o AFD filter está ENABLED. Para desabilita-lo, será usado o comando  afd_filter -d.
[root@lamim19c ~]#
[root@lamim19c ~]# asmcmd afd_filter -d --all
[root@lamim19c ~]#
[root@lamim19c ~]# asmcmd afd_state
ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'DISABLED' on host 'lamim19c'
[root@lamim19c ~]#

Com o AFD desabilitado, podemos realizar o processo de manipulação do disco, criando a nova unidade.
[root@lamim19c ~]#
[root@lamim19c ~]# fdisk /dev/sdc

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): p

Selected partition 4
First sector (6293504-10485759, default 6293504):
Last sector, +sectors or +size{K,M,G,T,P} (6293504-10485759, default 10485759): +1G

Created a new partition 4 of type 'Linux' and of size 1 GiB.

Command (m for help): w
The partition table has been altered.
Syncing disks.

[root@lamim19c ~]#
[root@lamim19c ~]# lsblk | grep sdc
sdc           8:32   0   5G  0 disk
├─sdc1        8:33   0   1G  0 part
├─sdc2        8:34   0   1G  0 part
├─sdc3        8:35   0   1G  0 part
└─sdc4        8:36   0   1G  0 part
[root@lamim19c ~]#

Após finalizar a atividade é necessário habilitar o AFD filter novamente, através do comando abaixo.
[root@lamim19c ~]#
[root@lamim19c ~]# asmcmd afd_state
ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'DISABLED' on host 'lamim19c'
[root@lamim19c ~]# asmcmd afd_filter -e --all
[root@lamim19c ~]# asmcmd afd_state
ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'lamim19c'
[root@lamim19c ~]#

Todo o processo acima foi realizado com o ambiente ativo.

https://franckpachot.medium.com/asm-filter-driver-simple-test-on-filtering-2a506f048ee5
https://www.dbi-services.com/blog/oracle-dbs-and-ransomware-attacks/
Oracle Automatic Storage Management Filter Driver (ASMFD) (Doc ID 2806979.1)

Comentários