아주 간단한 질문입니다. 저는 사용자가 편안한 환경으로 부팅할 수 있도록 btrfs 하위 볼륨을 사용하여 동일한 시스템에 여러 운영 체제(모두 Linux)를 설치하는 프로젝트를 진행하고 있습니다. 모두 Linux 커널을 사용하므로 단일 커널을 컴파일하여 시스템의 모든 운영 체제에 사용할 수 있습니까? OS에 특정한 것이 있습니까? 그렇다면 OS에 필요한 것은 단지 커널 모듈입니까, 아니면 그보다 더 심층적입니까?
현재 내 가정은 커널이 OS와 완전히 독립적이며 모든 모듈이 하나의 공유 커널에 두 OS에 모두 포함되어 있으면 둘 다 커널을 공유할 수 있으므로 커널에 대한 업데이트와 변경 사항을 공유할 수 있다는 것입니다.
답변1
오픈VZ당신이 요구하는 것을 정확하게 수행합니다.
서로 100% 독립적이지만 수정된 동일한 커널을 공유하는 컨테이너를 생성합니다.
전체 가상화에 비해 유일한 단점은 컨테이너를 사용할 때 Linux 이외의 다른 것을 설치할 수 없다는 것입니다.
답변2
OpenVZ는 훌륭하며 안전하고 안정적이며 사용하기 쉬운 컨테이너용 솔루션을 제공합니다. 그러나 Linux에 내장된 Linux 컨테이너도 있으며 최근 커널 릴리스에서 많은 진전이 이루어졌습니다.
Linux 컨테이너에는 lxc, vzctl(OpenVZ의), libvirt 및 docker를 포함하여 사용할 수 있는 많은 사용자 공간 유틸리티가 있습니다.
Linux 컨테이너를 사용하면 별도의 네임스페이스에서 프로세스(및 사용자 네임스페이스를 사용하는 경우 사용자)를 실행할 수 있습니다. 이는 동일한 커널에서 실행되는 별도의 시스템과 같은 느낌을 주며 cgroup을 사용하여 리소스에 제한을 추가할 수 있게 해줍니다. Linux 컨테이너는 Xen, Qemu/KVM 또는 VMWare와 같은 하드웨어 가상 머신에 비해 매우 가볍습니다.