Infomation

기본 가상화 기술과 Docker (LXC 기술)의 차이

DarkSoul.Story 2016. 6. 5. 18:36
반응형

널리 사용되고 있는 가상화 기술은 Xen, KVM등이 있으며, 가상화 기술에는 하이퍼바이저(Hypervisor)라는 기술이 반드시 필요하다. 하이퍼바이저(Hypervisor)는 하나의 컴퓨터에서 여러개의 OS를 사용할 수 있도록 도와주는 기술이다. 


도커(Docker)는 OS전체를 가상화하는 기존 가상머신과 다르게, 게스트OS를 두지않고 호스트 OS의 커널을 그대로 사용하면서 리눅스 컨테이너를 사용하여, 호스트 OS와 다른 부분만 컨테이너에 패키징하고 호스트의 리소스를 공유하여 기존 가상머신 보다 리소스를 효율적으로 사용할 수 있는 가상화 환경을 제공한다. 도커(Docker)는 하이퍼바이저 대신 도커 엔진이 올라가, 호스트 OS와 여러 어플리케이션을 연결해주는 역할을 하기 때문에 도커를 사용하면 기존 가상화보다는 내부에서 적은 일을 처리하여, 어플리케이션을 좀더 빠르고 효율적으로 실행시킬 수 있다. 


기존 가상화 기술에서는 가상 머신이 실제 물리적 하드웨어를 에뮬레이트(Emulate)하기 때문에 위 그림에서와 같이 가상 환경에서도 OS(게스트 OS)가 반드시 필요하며, 호스트 OS와 게스트 OS가 완전히 분리 할 수 있는 장점이 있지만, 물리적 하드웨어를 에뮬레이트(Emulate)하기 때문에 오버헤드가 증가하는 단점이 있다.


 오버헤드(Overhead)


 컴퓨터가 유저 프로그램을 실행할 때 사용자가 직접 프로그램을 처리하지 않는 부분을 오버헤드라고 한다. 

 구체적으로 OS가 시스템을 관리하는데 필요로 하는 CPU타임이나 메모리 용량등을 오버헤드라고 한다.   


리눅스 컨테이너(Linux Container)는 위 그림에서와 같이 게스트 OS가 없이 모든 프로세스는 호스트 OS에서 바로 시작되며, 시작 과정 일부를 그룹화하여 다른 그룹과 그룹에 속하지 않는 프로세스는 단절된 공간으로 분리하여 동작한다. 독립된 공간에 프로세스가 들어가 있는것이 화물 컨테이너와 비슷하다고 하여 독립된 공간을 컨테이너 라고 부르며, A라는 컨테이너에서 B라는 컨테이너의 내부를 볼 수 없다.


[잘못된 부분이 있으면 댓글 남겨주세요]

반응형