파일 시스템에서 특정 파일이나 디렉토리에 대한 참조를 제공하는 특수한 파일
유닉스 계열에서 아래 명령어로 생성한다
ln -s [연결하려는 디렉토리] [링크 디렉토리]
시스템 구조를 유지하면서 다양한 위치에서 동일한 파일에 접근하기 위함이다
서버가 /gest 디렉토리를 파일저장소로 바라보고 있는 경우 /usr/test디렉토리를 해당 저장소로 연결시킬 수 있다
ln -s /usr/test gest
/usr/test 디렉토리를 gest 라는 이름으로 연결한다
gest 라는 링크 디렉토리에서 ls 명령어를 쳐보면 test 디렉토리를 볼 수 있다
ll 명령어를 쳐보면 링크이름으로 연결된 디렉토리를 확인할 수 있다
gest -> /usr/test
gest는 /usr/test의 바로가기 이므로 모든 내역은 /usr/test에 남는다 (추가, 수정, 삭제)
예를들어 gest/test 디렉토리에 추가 및 삭제하면 /usr/test 디렉토리에 반영
링크를 삭제할때는 rm -r gest로 삭제한다
# rm -r gest
rm: remove 심볼릭 링크 'gest'? y
Unix 계열 운영체제에서 파일 시스템의 한 디렉토리를 다른 디렉토리에 마운트하는 방법이다
mount --bind [연결하려는 디렉토리] [연결 대상 디렉토리]
바인드 마운트와 심볼릭 링크는 유사하지만 바인드 마운트는 동일한 파일과 디렉토리 구조를 공유한다
아래의 명령어로 /usr/test 디렉토리를 /gest 디렉토리로 마운트한다면
mount --bind /usr/test /gest
기존의 gest 디렉토리의 파일들은 마운트동안 잠깐 보이지 않게된다
gest 디렉토리에 들어가보면 /usr/test 디렉토리의 파일들이 바로 보여진다
심볼릭 링크와 마찬가지로 바인드 마운트에서도 추가 및 삭제를 하면 원본 디렉토리에 반영이 된다
마운트를 해제할 경우
umount /gest
umount: Mounted: target is busy가 발생하면
umount /gest -f -l # -f: force, -l: lazy
운영중이던 서버에서 마운트된 파일저장소 A가 가득참에 따라 추가로 마운트된 B 저장소를 사용하면서 기존의 A와 B를 함께 볼 수 있는 방법을 찾다가 아래의 방법을 알게되었다
OverlayFS는 리눅스 커널에서 제공하는 파일 시스템으로
여러 개의 디렉토리를 하나의 통합된 디렉토리 구조로 합쳐서 보여주는 기능을 제공한다
OverlayFS는 두 개 이상의 디렉토리(혹은 파일 시스템)를 겹쳐서 하나의 단일 디렉토리로 제공하는 파일 시스템이다
이를 통해 서로 다른 디렉토리의 파일과 디렉토리를 하나의 통합된 구조로 볼 수 있다
mount -t overlay overlay -o lowerdir=/lowerdir,upperdir=/upperdir,workdir=/workdir /merged
lowerdir는 읽기 전용 디렉토리
upperdir는 읽기/쓰기 전용 디렉토리
workdir는 upperdir내부의 임시 작업 디렉토리
/merged로 지정된 경로에서 lowerdir 와 upperdir를 함께 볼 수 있다
여기서 지정되는 모든 디렉토리는 오버레이 전에 생성되어 있어야 한다
사용자는 /merged 디렉토리만 조회하면 되고, /upperdir 디렉토리에 파일을 저장하면 된다
여기서 lowerdir, upperdir는 하나의 마운트 드라이브여도 되고 다른 드라이브여도 된다
아래 명령어로 시스템의 오버레이 모듈을 로드할 수 있다
modprobe overlay
로드 확인
lsmod | grep overlay
아래 명령어로 실패한 로그를 확인할 수 있다
dmesg | tail
$ dmesg | tail
overlayfs: workdir and upperdir must reside under the same mount
오버레이 삭제
$ umount [dir_name]
오버레이 확인
# mount | grep overlay