Linux, 로컬 웹 서버 및 PostgreSQL이 설치된 소비자 단말기 그룹이 있습니다. 문제가있는 기계에 대한 현장 보고서를 받고 있으며 조사 결과 정전이 발생한 것으로 보이며 이제 디스크에 문제가있는 것 같습니다.
문제는 데이터베이스가 손상되었거나 최근 변경 사항이있는 파일이 스크램블 된 것으로 가정했지만 다른 이상한 보고서가 있습니다.
- 권한이 잘못된 파일
- 디렉토리가 된 파일 (예
index.php
: 이제 디렉토리 임) - 파일이 된 디렉토리
- 스크램블 된 데이터가있는 파일
데이터베이스가 손상되는 데 문제가 있지만 예상했던 것입니다. 더 놀랍게도 권한이나 파일을 디렉토리로 변경하는 것과 같은보다 기본적인 파일 시스템 문제입니다. 최근에 변경되지 않은 파일 (예 : 소프트웨어 코드 및 구성)에서도 문제가 발생합니다.
이것이 SSD 손상에 대한 "정상"입니까? 원래 우리는 그것이 싼 SSD에서 일어나고 있다고 생각했지만, 이것은 유명 브랜드 (소비자 등급)에서 일어나고 있습니다.
FWIW, 우리는 부정한 부팅에서 autofsck을 수행하지 않습니다 (왜 새로운 지 모르겠습니다). 일부 지역에는 UPS가 설치되어 있지만 때로는 제대로 수행되지 않는 등의 경우도 있습니다.이 문제는 해결되어야하지만 사람들은 터미널의 전원을 불결하게 끄는 등의 작업을 수행 할 수 있습니다. 파일 시스템은 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와 같은 일부 공급 업체는 실제로 이런 이유로 하드 드라이브 쓰기 캐싱을 사용하지 못하게합니다.