Temos arquivos corrompidos que contêm um número zero de bytes. Eu me pergunto qual seria a causa raiz. O que eu sei é:
- Todos os tipos de arquivos que foram gravados recentemente são afetados, eles contêm um número de bytes zero. Por exemplo, arquivos de log, arquivos de índice (índices do Apache Lucene), arquivos jsp. Então, arquivos de texto, arquivos binários, todos os tipos de arquivos.
- Os bytes zero sempre começam em uma posição que é múltipla de 4096.
- O número de zero bytes nem sempre é o mesmo. Tamanhos de exemplo: 2053 bytes, 266 bytes, 243 bytes.
- Algumas posições dos bytes zero em um arquivo: 0xa000 - 0xa805, 0xc000 - 0xc806, 0xf000 - 0xfc10a, 0x3e000 - 0x3e0f3, 0x3f000 - 0x3f0f3.
Um hexdump parcial de um arquivo de log é:
00006fe0 61 6e 64 6c 65 72 20 49 67 6e 6f 72 69 6e 67 20 |andler Ignoring |
00006ff0 63 6f 72 72 75 70 74 20 69 6e 64 65 78 20 5b 2f |corrupt index [/|
00007000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00007090 2e 20 54 68 69 73 20 69 6e 64 65 78 20 4d 55 53 |. This index MUS|
- Parece apenas uma máquina (existem várias máquinas com a mesma configuração executando as mesmas operações, mas parece que isso acontece apenas em uma máquina). Mas eu não estou completamente certo.
- Servidor Red Hat Enterprise Linux versão 5.11 (Tikanga) 2.6.18-419.el5
- Aplicativos principalmente Java, versão: jdk1.8.0_162
- Montagem baseada em SAN - 950 GB
- 16 GB de RAM e 6 vCPU
- O servidor está conectado a uma matriz de armazenamento externo, que é conectada por meio do HBA - > Cabos FC - > Comutador SAN - > Matriz de armazenamento