728x90
Mount Namespace
전에 공부할때 확인했듯이 리눅스는 루트 파일 시스템으로 구성
- 루트로 시작하는 계층 구조
- 파일, 디렉토리 제어 정보
- 생성, 삭제, 마운트 등의 기능을 제공
Mount namespace는 각 프로세스에 격리된 파일시스템 마운트 포인트를 제공
VFS(virtual filesystem)으로 데이터 구조, 저장 매체를 추상화하여 사용 가능
매체의 특징에 따라 파일시스템을 어떻게 나눌지 결정하는 것이 많음
unshare 명령어를 통해 Mount namespace 생성 가능
보통 이미지를 통해 mountns를 관리하는데, 중복된 이미지 때문에 리소스 낭비가 심할 수 있음
Union Mount
중복된 이미지로 인한 리소스 낭비를 해결하기 위해 사용
복수의 filesystem을 하나로 mount 가능
working directory로 이미지파일들을 병합하여 사용하는 것
이미지 레이어가 생성이 되고, 기본적으로 Read Only(RO)로 동작
변경이 발생했을 시 Copy On Write(COW)로 동작
즉, 이미지 레이어를 Read only로 symbolic하게만 가져와서 사용을 하다가 변경이 발생했을 시 Copy하여 새로운 이미지 레이어를 만들어내는 것으로 이해
Docker에서도 해당 기능을 이용한 Overlay Filesystem을 이용
/var/lib/docker/image/overlay2
해당 디렉토리 참고시 확인 가능하며 하위 디렉토리 중 layer db에서
- cache-id: 로컬 저장 경로
- diff: 레어이 고유 id
- parent: 부모 layer db id
등의 정보를 저장
cache-id를 보면 로컬 경로를 식별가능 → 각자 다른 저장 경로로부터 오는 것을 확인 가능
해당 이미지로 컨테이너를 띄우면 Base Layer은 share되고 변경이 발생하면 앞서 말한 방식인 COW가 적용되는 것을 확인 가능
반응형
'개발 > 개발공부' 카테고리의 다른 글
Network Device 정리 / Bridge, Switch, Repeater, Hub, Router, 차이 (0) | 2023.01.13 |
---|---|
Container Image / 컨테이너 이미지, Kubernetes, Docker, Dockerfile (2) | 2023.01.11 |
Network Namespace / Container 기초, 네트워크, 네임스페이스, 컨테이너, 간단 정리 (0) | 2023.01.06 |
Docker vs Containerd / Container runtime, 쿠버네티스, 도커, 차이점, 장단점 (2) | 2023.01.04 |
cgroups / 컨테이너 기초, 프로세스 제어, 자원 제한 (1) | 2023.01.03 |
댓글