Linux 컨테이너와 Linux 하이퍼 바이저 란 무엇입니까?


10

나는 stackexchange 사이트를 보았지만 아무것도 찾을 수 없었다. Linux 컨테이너 https://en.wikipedia.org/wiki/LXC 및 하이퍼 바이저 https://en.wikipedia.org/wiki/Hypervisor 의 wikipedia 항목을 보았지만 둘 다에 대한 설명은 어느 쪽도 이해하지 못했습니다. 또한 http://www.linux.com/news/enterprise/cloud-computing/785769-containers-vs-hypervisors-the-battle-has-just-begun 도 보았지만 설명하지는 않았습니다.

나는 virtualbox와 같은 VM을 가지고 놀았습니다. 내가 제한적으로 이해하기 시작한 아이디어 중 하나는 Virtual Machines가 아마도 샌드 박스 환경에서 소프트웨어를 테스트하는 것이었을 것입니다. (기계를 구매할 수 없거나 비용이 들지 않을 때 Solaris 상자가 있고 여전히 소프트웨어가 어떻게 개발되고 있는지에 대한 아이디어가 있습니다 대상 하드웨어가 작동 중입니다.) 제한되어 있지만 사용하고있었습니다. 이것은 아마도 클라우드 컴퓨팅에서 도약 한 방법 중 하나 일 것입니다. 질문은 광범위하므로 이것이 증류 방법입니다.

어떤 사람들은 하이퍼 바이저와 * nix 컨테이너가 무엇인지 설명 할 수 있습니까 (가능한 경우 유사성이 있음)?
* nix 하이퍼 바이저가 가상 머신과 동일합니까 아니면 차이가 있습니까?

답변:


9

가상 머신 (VM)는 많은 가상화 기술에 대한 매우 일반적인 용어입니다.

가상화 기술에는 많은 변형이 있지만 주요 기술은 다음과 같습니다.

  • 하드웨어 레벨 가상화
  • 운영 체제 수준 가상화

qemu-kvm그리고 VMWare첫 번째의 예입니다. 하이퍼 바이저를 사용하여 전체 운영 체제가 실행되는 가상 환경을 관리합니다. 예를 들어, qemu-kvm시스템에서 하나의 VM이 FreeBSD를 실행하고 다른 하나는 Windows를 실행하고 다른 하나는 Linux를 실행할 수 있습니다.

이러한 기술로 생성 된 가상 머신은 게스트에 대한 격리 된 개별 컴퓨터처럼 작동합니다. 여기에는 게스트가 실제 기사라고 생각하는 가상 CPU, RAM, NIC, 그래픽 등이 있습니다. 이로 인해 많은 다른 운영 체제를 VM에 설치할 수 있으며 수정없이 "즉시"작동합니다.

많은 OS가 많은 노력없이 설치 될 수 있다는 점에서 매우 편리하지만 하이퍼 바이저는 모든 하드웨어를 시뮬레이션해야하므로 속도가 느려질 수 있습니다. 대안은 반 가상화 하드웨어이며, 가상 환경에서의 성능을 위해 설계된 게스트 용으로 새로운 가상 장치 및 드라이버가 개발됩니다. qemu-kvm이를 위해 virtio다양한 장치 및 드라이버를 제공하십시오. 이에 대한 단점은 게스트 OS가 지원되어야한다는 것입니다. 그러나 지원되는 경우 성능 이점이 뛰어납니다.


lxc운영 체제 레벨 가상화 또는 컨테이너의 예입니다. 이 시스템에는 하나의 커널 (호스트 커널) 만 설치됩니다. 각 컨테이너는 단순히 사용자 영역 프로세스의 격리입니다. 예를 들어 웹 서버 (예 apache:)가 컨테이너에 설치되어 있습니다. 해당 웹 서버와 관련하여 설치된 유일한 서버 자체입니다. 다른 컨테이너가 FTP 서버를 실행 중일 수 있습니다. 해당 FTP 서버는 웹 서버 설치를 인식하지 못하며 자체 서버 만 설치합니다. 다른 컨테이너에는 Linux 배포판의 전체 사용자 영역 설치가 포함될 수 있습니다 (해당 배포판이 호스트 시스템의 커널에서 실행될 수있는 한).

그러나 컨테이너를 사용할 때는 별도의 운영 체제 설치가 없으며 격리 된 Userland 서비스 인스턴스 만 있습니다. 이 때문에 Linux에는 Windows가 아닌 컨테이너에 다른 플랫폼을 설치할 수 없습니다.

컨테이너는 일반적으로을 사용하여 chroot만듭니다. /프로세스가 작동 할 별도의 개인 루트 ( )를 만듭니다 . 많은 개별 개인 루트를 생성함으로써 프로세스 (웹 서버 또는 Linux 배포판 등)는 자체 격리 된 파일 시스템에서 실행됩니다. cgroups네트워크 및 RAM과 같은 다른 리소스를 격리 할 수있는 고급 기술


어느 것이 가장 좋은지에 관한 장거리 논쟁과 장단점이 있습니다.

  • 컨테이너는 전체 OS가 설치되지 않기 때문에 더 가볍습니다. 하이퍼 바이저의 경우입니다. 따라서 낮은 사양의 하드웨어에서 실행될 수 있습니다. 그러나 Linux 게스트 (Linux 호스트) 만 실행할 수 있습니다. 또한 커널을 공유하기 때문에 손상된 컨테이너가 다른 컨테이너에 영향을 줄 수 있습니다.
  • 각 VM에 전체 OS가 설치되어 있고 게스트가 다른 VM을 인식하지 못하므로 하이퍼 바이저가 더 안전하고 다른 OS를 실행할 수 있습니다. 그러나 이는 호스트에서 더 많은 리소스를 사용하므로 상대적으로 강력해야합니다.

2

컨테이너는 사용자 공간을보다 완벽하게 격리한다는 점을 제외하면 chroot 환경 과 조금 다릅니다. 실제 VM은 제공하지 않지만 가상 운영 체제는 제공합니다. VM은 여러 머신의 환상을 만들어 내고, 각 머신 내에서 실제 완전 운영 체제가 베어 메탈 에서처럼 실행될 수 있습니다. 여기에 "완전한 운영 체제"에는 커널이 포함됩니다. 일부 VM (예 : QEMU )은 다른 종류의 "베어 메탈"아키텍처를 자극 할 수도 있습니다.

대신 컨테이너는 여러 커널의 환상을 만들어 내고 각 커널은 완전한 사용자 영역을 실행합니다. 예를 들어 한 컨테이너에서 Debian을 실행하고 다른 컨테이너에서 Arch를 실행할 수 있으므로 컨테이너 내에서의 관점은 VM과 거의 동일합니다. 그러나 실제 커널 하나 (이 경우 Linux)와 호환되는 OS 사용자 영역 만 실행할 수 있습니다. 이것은 독립적 인 커널과 모든 종류의 운영 체제를 실행할 수있는 실제 VM과 다릅니다.

따라서 진정한 VM은 컨테이너보다 비싸고 리소스 수준이 높습니다. 각 VM에 다른 커널이 필요하지 않은 경우 컨테이너를 사용할 수도 있습니다.

VPS 공급 업체에서 널리 사용하는 openVZ 와 같이 LXE와 유사한 기능을 수행하는 다른 가상화 시스템이 있습니다. openVZ VPS는 호스트 OS의 커널을 사용하는 독립적 인 사용자 영역입니다. 그렇기 때문에 그러한 VPS는 많은 리눅스 맛이 나지만 다른 것은 없습니다. 호스트 커널과 호환 가능해야합니다.

OpenVZ 및 LXC 스타일 가상화를 운영 체제 레벨 가상화 라고 합니다.

하이퍼 바이저는 같은 가상 시스템, 관리 시스템 버추얼 박스 , QEMU, 또는 . Xen과 같은 일부 하이퍼 바이저는 베어 메탈에서 실행되며 호스트 OS가 필요하지 않습니다 (단, 제어 된 인터페이스로 호스팅 된 OS가 필요할 수 있음). VirtualBox 및 QEMU와 같은 다른 장치는 호스트 OS 내에서 실행됩니다. QEMU와 같은 일부는 다른 기계 아키텍처를 시뮬레이션 할 수 있습니다. VirtualBox와 같은 다른 시스템은 그렇지 않습니다 (즉, VM 아키텍처는 항상 실제 호스트와 동일 함). 실제 VM에 ​​컨테이너보다 많은 리소스가 필요한 것처럼 아키텍처를 시뮬레이션하려면 더 많은 리소스가 필요합니다.

하이퍼 바이저 스타일 가상화를 플랫폼 레벨 가상화 라고 합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.