본문 바로가기

About/Docker

[Docker] Docker의 작동 구조 (4) (이미지 데이터 관리)

Docker 이미지의 데이터 관리 장치

'Copy on Write'란 복사를 요구 받으면 바로 복사하지 않고 원래의 데이터를 그대로 참조시켜, 원본 또는 복사 어느 쪽에 수정이 가해진 시점에 비로서 새로운 빈 영역을 확보하고 데이터를 복사하는 것을 뜻한다.

 

Docker에서는 'Copy on Write' 방식으로 컨테이너의 이미지를 관리한다.

Docker의 이미지를 관리하는 스토리지 디바이스로는 다음과 같은 것들이 있다.

 

 

AUFS

다른 파일 시스템의 파일이나 디렉토리를 투과적으로 겹쳐서 하나의 파일 트리를 구성할 수 있는 파일 시스템.

단, 현재 AUFS는 표준 Linux 커널의 일부가 아니다.

 

Btrfs

Linux용 Copy on Wirte 파일 시스템으로, Oracle에 의해 2007년 발표되었다. Btrfs는 과거의 상태로 돌아갈 수 있는 롤백 기능이나 어떤 시점에서 상태를 저장할 수 있는 스냅샷 기능이 있다.

 

Device Mapper

Linux 커널 2.6에 들어간 Linux 블록 디바이스 드라이버와 그것을 지원하는 라이브러리들이다. Device MApper는 파일 시스템의 블록 I/O와 디바이스의 매핑 관계를 관리한다.

Device Mapper는 *thin-provisioning 기능과 snapshot 기능을 가지고 있다.

CentOS나 Fedora와 같은 Red Hat OS나 Ubuntu 등에서 Docker를 이용할 때 사용된다.

 

(*thin-provisioning - 스토리지에 남아도는 용량 없이 꼭 필요한 만큼, 필요할 때 사용할 수 있도록 스토리지를 날씬하게 만드는 것으로 스토리지 용량의 활용도를 최대로 높이는 기술)

 

OverlayFS

UnionFS 중 하나로, 파일 시스템에 다른 파일 시스템을 투과적으로 합병(merging)하는 장치이다. Linux 커널 3.18에 도입되어 읽기(readout) 전용 파일 시스템에 읽어들이기(readin)가 파일 시스템을 겹침으로써, 읽기 전용 파일 시스템상의 디렉토리나 파일에 대한 읽어 들이기, 변경이 가능하다. Docker에서는 overlay와 overlay2라는 2종류의 드라이버를 이용할 수 있다.

Linux 커널 4.0 이상의 경우 overlay2를 사용하는 것이 좋다.

 

ZFS

ZFS는 썬마이크로시스템즈(현재 Oracle)가 개발한 새로운 파일 시스템이다. 볼륨 관리, 스냅샷, 체크섬 처리, 리플리케이션 등을 지원한다. 단, ZFS on Linux에 대한 충분한 경험이 없는경우 제품환경에서 사용하는 것은 권장하지 않는다.

 

 

추가정보

https://docs.docker.com/storage/storagedriver/

 

About storage drivers

 

docs.docker.com

https://docs.docker.com/storage/storagedriver/select-storage-driver/

 

Docker storage drivers

 

docs.docker.com

 

참고

https://book.naver.com/bookdb/book_detail.nhn?bid=13987575