Tenemos un grupo de terminales de consumo que tienen instalado Linux, un servidor web local y PostgreSQL. Estamos recibiendo informes de campo de máquinas con problemas y tras una investigación parece que hubo un corte de energía y ahora hay algo mal con el disco.
Asumí que el problema sería que la base de datos se corrompe o que los archivos con cambios recientes se revuelven, pero hay otros informes extraños.
- archivos con los permisos incorrectos
- archivos que se han convertido en directorios (por ejemplo,
index.php
ahora es un directorio) - directorios que se han convertido en archivos
- archivos con datos codificados
Hay problemas con la base de datos que se corrompe, pero eso es algo que podría esperar. Lo que me sorprende más son los problemas más básicos del sistema de archivos, por ejemplo, permisos o cambiar un archivo a un directorio. Los problemas también están ocurriendo en archivos que no cambiaron recientemente (por ejemplo, el código y la configuración del software).
¿Es esto "normal" para la corrupción de SSD? Originalmente pensamos que estaba sucediendo en algunos SSD baratos, pero tenemos esto sucediendo en una marca (grado de consumo).
FWIW, no estamos haciendo autofsck en arranque sucio (no sé por qué, soy nuevo). Tenemos UPS instalados en algunos lugares, pero a veces no se hace correctamente, etc. Esto debería repararse, pero incluso entonces las personas pueden apagar el terminal de forma sucia, etc., por lo que no es infalible. El sistema de archivos es ext4.
La pregunta: ¿hay algo que podamos hacer para mitigar el problema a nivel de sistema?
Encontré algunos artículos que se refieren a apagar el caché de hardware o montar la unidad en modo de sincronización, pero no estoy seguro de si eso ayudaría en este caso (corrupción de metadatos y cambios no recientes). También leí una referencia sobre el montaje del sistema de archivos en modo de solo lectura. No podemos hacer eso porque necesitamos escribir, pero podríamos hacer una partición de solo lectura para el código y la configuración si eso fuera de ayuda.
Este es un ejemplo de una unidad sudo hdparm -i /dev/sda1
:
Model=KINGSTON RBU-SMS151S364GG, FwRev=S9FM02.5, SerialNo=<deleted>
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=125045424
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
WriteCache=enabled
. Este es un gran problema. La caché de escritura nunca debe habilitarse en discos duros que tengan una base de datos. Algunos proveedores, HP, por ejemplo, en realidad evitan habilitar el almacenamiento en caché de escritura en el disco duro por esta misma razón.