리눅스 장애 대응 · 디스크와 inode · 퀴즈
퀴즈: 디스크와 inode
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
df 는 20G 사용, du -shx 는 3.1G 를 보고합니다. 17GB 차이의 가장 유력한 원인은?
- du 가 하드 링크를 한 번만 세기 때문
- 이름은 지워졌지만 프로세스가 열고 있는 파일들이 블록을 붙잡고 있기 때문
- df 가 예약 블록을 포함해 세기 때문
- 파일시스템 메타데이터 오버헤드 때문
df -h 는 여유가 있는데 df -i 의 IUse% 가 100% 입니다. 무슨 뜻인가요?
- 파일시스템이 손상됐다
- 디스크가 물리적으로 고장 나기 직전이다
- 마운트 옵션이 읽기 전용이다
- 블록은 남았지만 파일을 더 만들 수 없다. inode 가 고갈됐다
root 로는 파일이 만들어지는데 서비스 계정으로만 ENOSPC 가 납니다. 원인은?
- 서비스 계정의 권한이 부족하다
- 쿼터가 설정돼 있다
- SELinux 가 차단하고 있다
- ext 파일시스템의 root 전용 예약 블록만 남았다
truncate -s 0 /proc/1234/fd/7 로 공간을 돌려받았습니다. 이 조치의 위험은?
- 파일을 열고 있던 프로세스가 즉시 죽는다
- O_APPEND 가 아니면 프로세스가 예전 오프셋에 계속 써서 sparse 파일이 된다
- 같은 파일을 열고 있던 다른 프로세스의 것까지 함께 비워진다
- 파일시스템이 읽기 전용으로 전환된다
빈 파일 500개를 만들었는데 du 가 0 이 아닌 값을 보고합니다. 이유는?
- du 가 파일 개수를 용량으로 환산하기 때문
- 각 파일이 최소 1블록을 할당받기 때문
- 파일시스템 저널이 커졌기 때문
- 디렉터리 엔트리 자체가 블록을 소비하기 때문
이미 I/O 가 포화된 서버에서 원인을 찾을 때 주의할 점은?
- find / 전체 스캔으로 한 번에 훑는 것이 가장 빠르다
- du 대신 항상 df 만 쓴다
- -xdev 로 파일시스템 경계를 고정하고 범위를 좁혀서 시작한다
- 진단은 부하와 무관하므로 신경 쓸 필요 없다