Mamy grupę terminali konsumenckich z zainstalowanym Linuksem, lokalnym serwerem WWW i PostgreSQL. Otrzymujemy raporty terenowe dotyczące maszyn z problemami, a po badaniu wydaje się, że nastąpiła przerwa w dostawie prądu, a teraz coś jest nie tak z dyskiem.
Zakładałem, że problemem będzie po prostu uszkodzenie bazy danych lub szyfrowanie plików z ostatnimi zmianami, ale są też inne dziwne raporty.
- pliki z niewłaściwymi uprawnieniami
- pliki, które stały się katalogami (na przykład
index.php
jest teraz katalogiem) - katalogi, które stały się plikami
- pliki z zaszyfrowanymi danymi
Istnieją problemy z uszkodzeniem bazy danych, ale tego mogę się spodziewać. Bardziej zaskakują mnie bardziej podstawowe problemy z systemem plików - na przykład uprawnienia lub zmiana pliku na katalog. Problemy występują również w plikach, które nie uległy ostatnio zmianie (na przykład kod oprogramowania i konfiguracja).
Czy to „normalne” w przypadku uszkodzenia dysku SSD? Początkowo sądziliśmy, że dzieje się to na niektórych tanich dyskach SSD, ale dzieje się tak pod marką (klasa konsumencka).
FWIW, nie wykonujemy autofsck na nieczystym rozruchu (nie wiem dlaczego - jestem nowy). Mamy UPS-y zainstalowane w niektórych lokalizacjach, ale czasem nie jest to zrobione poprawnie itp. To powinno zostać naprawione, ale nawet wtedy ludzie mogą wyłączyć terminal nieczysto itp. - więc nie jest to głupie. System plików to ext4.
Pytanie: czy jest coś, co możemy zrobić, aby złagodzić problem na poziomie systemu?
Znalazłem kilka artykułów dotyczących wyłączania pamięci podręcznej sprzętu lub montowania napędu w trybie synchronizacji, ale nie jestem pewien, czy to pomogłoby w tym przypadku (uszkodzenie metadanych i nie najnowsze zmiany). Przeczytałem również odniesienie do montowania systemu plików w trybie tylko do odczytu. Nie możemy tego zrobić, ponieważ musimy pisać, ale moglibyśmy utworzyć partycję tylko do odczytu dla kodu i konfiguracji, gdyby to pomogło.
To jest przykład dysku 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
. To ogromny problem. Pamięć podręczna zapisu nigdy nie powinna być włączona na dyskach twardych z bazą danych. Niektórzy dostawcy, na przykład HP, faktycznie uniemożliwiają włączenie buforowania zapisu na dysku twardym z tego właśnie powodu.