스토리지와 마운트 · NFS 개념 · 퀴즈
퀴즈: NFS 개념
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
NFS 서버가 죽자 클라이언트의 프로세스가 D 상태로 멈추고 kill 도 안 먹습니다. 원인은?
- soft 마운트라 I/O 오류가 반복된다
- hard 마운트라 커널이 영원히 재시도한다
- root_squash 때문
- 속성 캐시가 만료됐다
클라이언트에서 root 로 만든 파일의 소유자가 nobody 로 보입니다. 이유는?
- 공유 디렉터리의 권한 설정이 잘못돼 있어서
- UID 를 옮겨 주는 매핑 데몬이 죽어 있어서
- 서버의 root_squash 가 클라이언트 root 를 nobody 로 매핑하기 때문
- 읽기 전용으로 마운트되어 소유자가 가려져서
서버와 클라이언트에서 같은 UID 1001 이 서로 다른 사용자입니다. 결과는?
- UID 충돌을 감지해 마운트 자체가 거부된다
- 파일 소유권이 엉뚱한 사용자로 보이고 권한 판단이 어긋난다
- 쓰기가 막히고 읽기만 가능해진다
- 이름으로 대조하므로 아무 문제가 없다
여러 노드가 NFS 위의 같은 파일을 동시에 수정하는 설계가 위험한 이유는?
- 여러 노드가 붙으면 대역폭이 먼저 모자라서
- NFS 는 여러 클라이언트의 쓰기를 지원하지 않아서
- root_squash 때문에 쓰기 권한이 사라져서
- 클라이언트가 속성을 수 초간 캐시하고 잠금 복구도 완전하지 않기 때문
NFS 마운트가 걸린 상태에서 `df` 가 멈춥니다. 실무적 우회는?
- df -l 로 로컬만 보거나 timeout 을 씌워 실행한다
- df -h 대신 du 로 사용량을 확인한다
- 그 NFS 마운트를 끊고 다시 건다
- 커널 파라미터로 타임아웃을 줄인다
fstab 의 NFS 항목에서 `sync` 와 `async`(서버 export 옵션)의 트레이드오프는?
- sync 가 빠른 쪽이고 async 가 안전한 쪽이다
- 둘은 성능만 다르고 안전성은 완전히 같다
- async 는 읽기 경로에만 적용되는 옵션이다
- sync 는 디스크에 반영한 뒤 응답해 안전하고, async 는 빠르지만 서버 장애에 약하다