У нас есть группа пользовательских терминалов с установленным Linux, локальным веб-сервером и PostgreSQL. Мы получаем полевые отчеты о машинах с проблемами, и после расследования кажется, что произошел сбой питания, а теперь с диском что-то не так.
Я предполагал, что проблема будет просто в повреждении базы данных или в зашифрованных файлах с недавними изменениями, но есть и другие странные отчеты.
- файлы с неправильными разрешениями
- файлы, которые стали каталогами (например,
index.php
теперь каталог) - каталоги, которые стали файлами
- файлы с зашифрованными данными
Есть проблемы с повреждением базы данных, но это то, что я мог ожидать. Больше всего меня удивляют более простые проблемы с файловой системой - например, права доступа или изменение файла в каталоге. Проблемы также возникают в файлах, которые не были изменены в последнее время (например, программный код и конфигурация).
Это "нормально" для коррупции SSD? Первоначально мы думали, что это происходит на некоторых дешевых твердотельных накопителях, но у нас это происходит на именитом бренде (потребительский класс).
FWIW, мы не делаем autofsck при нечистой загрузке (не знаю почему - я новичок). В некоторых местах у нас установлены ИБП, но иногда это не выполняется должным образом и т. Д. Это следует исправить, но даже тогда люди могут отключить терминал нечистым образом и т. Д. Файловая система - ext4.
Вопрос: есть ли что-то, что мы можем сделать, чтобы смягчить проблему на системном уровне?
Я нашел несколько статей, касающихся отключения аппаратного кэша или подключения диска в режиме синхронизации, но я не уверен, поможет ли это в этом случае (повреждение метаданных и недавние изменения). Я также прочитал справку о монтировании файловой системы в режиме только для чтения. Мы не можем этого сделать, потому что нам нужно писать, но мы можем создать раздел только для чтения для кода и конфигурации, если это поможет.
Это пример диска 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
, Это огромная проблема. Кэш записи никогда не должен быть включен на жестких дисках с базой данных. По этой причине некоторые производители, например HP, фактически запрещают включение кэширования записи на жесткий диск.