파일 시스템 작업

파일 시스템 장애 점검

파일 디스크립터 누수, 더티 페이지, inode 소진, RAID 리빌드, SSD TRIM은 서로 다른 층의 문제입니다. 증상별로 보는 지점이 달라야 합니다.

write가 디스크에 안정화되기까지

1 write()

프로세스 fd로 커널에 쓰기 요청을 보냅니다.

2 page cache

데이터는 먼저 메모리 캐시에 더티 페이지로 남습니다.

3 flush/fsync

주기 flush 또는 명시적 fsync로 장치에 밀어냅니다.

4 block layer

파일 시스템 요청이 블록 장치 I/O로 바뀝니다.

5 RAID/SSD

패리티, 미러, TRIM, 웨어 레벨링 정책을 거칩니다.

open 실패

fd 한도와 누수 확인

서버가 파일을 닫지 않으면 프로세스 한도에 먼저 걸립니다.

ulimit -n, lsof -p PID
공간 부족

용량과 inode를 분리

작은 파일이 많으면 용량이 남아도 inode가 먼저 소진될 수 있습니다.

df -hT, df -i, du -sh
내구성

fsync 경계를 명확히

중요 데이터는 커널 캐시에만 머물지 않도록 동기화를 요구합니다.

fsync(), fdatasync()
DB I/O

중복 캐시 줄이기

DB가 자체 버퍼 풀을 쓰면 OS 페이지 캐시를 우회하는 선택이 필요합니다.

O_DIRECT
RAID

가용성과 백업 구분

RAID는 디스크 고장 대응이며 삭제, 손상, 랜섬웨어 복구가 아닙니다.

리빌드 상태, 별도 백업
SSD

TRIM과 웨어 레벨링

삭제 블록 통지와 쓰기 분산이 장기 성능과 수명에 영향을 줍니다.

lsblk --discard, fstrim

복구·저널링 기준

파일 시스템 실무는 하나의 명령으로 끝나지 않습니다. 열린 파일 상태, 캐시 동기화, 파일 수, 장치 구성, 백업 정책을 층별로 확인해야 원인을 좁힐 수 있습니다.