스토리지와 마운트 · 바인드 마운트와 tmpfs · 퀴즈
퀴즈: 바인드 마운트와 tmpfs
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`/proc/self/mountinfo` 에만 있고 `mount` 출력에는 없는 중요한 정보는?
- 전파 방식(shared/slave/private)
- 각 마운트 지점의 파일시스템 타입
- 실제로 적용된 마운트 옵션 목록
- 마운트에 쓰인 장치 이름과 경로
tmpfs 를 만들 때 `size=` 를 반드시 지정해야 하는 이유는?
- 기본값이 물리 메모리의 절반이라 큰 파일을 쓰면 시스템이 메모리 압박을 받는다
- size 를 빼면 마운트 자체가 실패해 뜨지 않는다
- size 가 없으면 내용이 스왑으로 나가지 않는다
- size 가 없으면 sticky bit 가 걸리지 않는다
컨테이너를 삭제했는데 호스트에 마운트가 남아 있습니다. 가장 유력한 원인은?
- 컨테이너 런타임이 정리 단계에서 버그를 냈다
- 마운트 전파가 shared 여서 컨테이너가 만든 마운트가 호스트 네임스페이스로 전파됐다
- 볼륨 드라이버가 언마운트를 수행하지 않았다
- SELinux 라벨이 맞지 않아 해제가 거부됐다
systemd 의 `.mount` 유닛 이름 규칙은?
- 이름 규칙이 없어 원하는 대로 정할 수 있다
- 마운트 지점 경로를 이스케이프한 이름이어야 하며 다르면 유닛이 거부된다
- 장치 이름을 그대로 유닛 이름으로 쓴다
- 파일시스템 UUID 를 유닛 이름으로 쓴다
바인드 마운트를 mountinfo 에서 식별하는 방법은?
- 타입이 bind 로 적힌다
- 소스가 none 이다
- 4번 필드(원본 안에서의 루트)가 / 가 아니라 하위 경로로 적힌다
- 전파 방식이 항상 private 이다
심볼릭 링크 대신 바인드 마운트를 써야 하는 대표 상황은?
- 같은 파일을 두 번 저장하지 않아 용량을 아껴야 할 때
- 네트워크를 경유해 원격 데이터를 붙여야 할 때
- chroot 나 컨테이너 안에서도 그 경로가 제대로 해석되어야 할 때
- 경로마다 접근 권한을 사용자별로 나눠야 할 때