У нас є група споживчих терміналів, на яких встановлений Linux, локальний веб-сервер та PostgreSQL. Ми отримуємо польові звіти про машини з проблемами, і після розслідування здається, що сталося відключення електроенергії, а з диском щось не так.
Я припускав, що проблема полягатиме лише в тому, що база даних пошкоджується, або файли з останніми змінами стають скрутними, але є й інші дивні звіти.
- файли з неправильними дозволами
- файли, які стали каталогами (наприклад,
index.php
зараз це каталог) - каталоги, які стали файлами
- файли із зашифрованими даними
Є проблеми з пошкодженням бази даних, але я можу очікувати цього. Що мене більше дивує, це більш основні проблеми файлової системи - наприклад, дозволи або зміна файлу в каталог. Проблеми трапляються також у файлах, які нещодавно не змінилися (наприклад, програмний код та конфігурація).
Це "нормально" для корупції SSD? Спочатку ми думали, що це відбувається на деяких дешевих 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, фактично не дають змоги кешувати запис на жорсткий диск саме з цієї причини.