Union filesystems는 특별한 형태의 파일 시스템입니다.
이 파일 시스템은 여러개의 디렉토리들을 오버레이함으로써 가상적인 그리고 계층화된 파일 구조를 가집니다.
원본 파일 시스템을 바꾸거나 디렉토리들을 병합하는 대신에 Union Filesystems는 하나의 단일 마운트 포인트에 대해 여러 개의 디렉토리들을 동시에 마운트 할 수 있습니다.
Docker는 이러한 Union Filesystems의 특징을 이용해 중복을 최소하하고 컨테이너의 이미지 사이즈를 줄임으로써 스토리지 성능을 관리하고 최적화하도록 도와줍니다.
아래는 Union Filesystems의 특징들입니다.
Layered Structure
Union Filesystems는 여러개의 읽기 전용 레이어들과 하나의 쓰기 가능한 레이어로 구성되어 있습니다.
이는 읽기 전용 레이어들이 원본 데이터를 보존하면서 쓰기 가능한 레이어만 업데이트 함으로써 효율적인 변경을 다룰 수 있게 해줍니다.
Copy-on-Write
Copy-On-Write는 COW 메커니즘이라고도 불립니다.
COW 메커니즘은 Union Filesystems의 필수 기능입니다.
컨테이너가 존재하는 파일에 대해 변경 사항을 만들어내면 해당 파일에 대해 쓰기 가능한 레이어 안에 복사본을 만듭니다.
이러한 프로세는 수정을 최상위 레이어에서만 일어나게 만들어 빠르로 효율적인 작업을 보장합니다.
Resource Sharing
Union Filesystems는 여러개의 컨테이너들이 독립적으로 작동하면서 공통된 기본 레이어를 공유하게 해줍니다.
이러한 특징은 리소스의 중복을 막아주고 많은 양의 스토리지 공간을 절약해줍니다.
Fast Container Initialization
Union Filesystems는 새로운 컨테이너를 바로 만들어 줍니다.
이는 기존의 읽기 전용 레이어 위에 새로운 쓰기 가능한 레이어를 만듦으로써 가능하게 됩니다.
이렇게 빠른 초기화는 오버헤드를 줄여주고 성능을 향상시킵니다.