※ 경기도 x MS 의 클라우드 강의 내용 중 주관적으로 낮설거나 헷갈리는 내용을 정리합니다. 모든 저작권은 해당 기관에 있습니다.
컨테이너 기반 기술

1) chroot
2) namespace
3) cgroup (control group)
4) Union File system
chroot



- chroot로 newroot를 루트로 인식하도록 바꾸었다.
- /bin/bash 와 /bin/ls를 newroot 하위에 같은위치에 복사함
- ldd로 각 bash, ls 에 관련된 동적라이브러리 파일들을 같은 경로에 복사함
- chroot로 newroot를 root로 인식되도록 변경함. 그럼 새로운 터미널이 보이면서, ls 명령어로 동작하게 된다.
- 리눅스 파일시스템이 격리, 분리됨을 확인할 수 있다.
namespace

- 격리된 환경을 제공하는 리눅스 커널의 경량 프로세스 가상화기술

- 기본적으로 리눅스의 root를 지우면 그 하위의 디렉토리,파일이 모두 지워지는 것처럼 ps도 같은 계층구조를 따라 생성된다.
- echo $$ : 현재셸의 ps id를 보여준다.




- unshare로 격리시켜서 bash로 들어간 환경의 uts가 다름을 확인할 수 있다.

- 네트워크를 격리해보자.
- 네트워크는 pid, uts 처럼 네임스페이스를 분리시키지만, 동시에 기존의 네트워크와 연결해주는 과정이 필요하다.



Cgroup





- cgroup 내에서 directory를 만들면 상위 폴더의 내용을 상속받아 cgroup. , cpu. 등으로 시작하는 많은 파일을 볼 수 있다.


Union Filesystem(AUFS, overlayfs)

-
Azure에서 VM을 만든다는 것은 어떤 의미인가?
-
디스크에 저장되는 파일 덩어리이다.
-
사실 VM은 파일이다. VM이 완전히 같은 것을 두개 만들어도, 별도의 디렉토리를 만들어 각각 연결하는 형태로 만들어 진다. 그래서, VM은 생각보다 디스크 사용량이 꽤 많다.
-
컨테이너는 무엇인가?
-
컨테이너는 이미지로 만들어지는데, 그 이미지는 read-only 이다.
-
따라서 같은 이미지를 바탕으로 하는 다른 모든 인스턴스는 같은 이미지를 참조할수 있다.
-
컨테이너는 read-write 즉, writable layer이다.
-
COW(Copy on write) 즉 복사해서 필요한 경우만, 쓰기를 하는 방식으로 작동한다.






- 변경사항은 container에만 변경되었다. 이미지는 그대로임
- merge는 변경후 최종 결과이므로 저렇게 보인다.