首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是Linux容器和Linux管理程序?

什么是Linux容器和Linux管理程序?
EN

Unix & Linux用户
提问于 2014-11-06 14:05:06
回答 2查看 4.6K关注 0票数 10

我查看了stackexchange网站,但什么也找不到。我查看了Linux容器https://en.wikipedia.org/wiki/LXC和管理程序https://en.wikipedia.org/wiki/Hypervisor上的维基百科条目,但这两个条目的解释都超出了一个没有从事过这两项工作的人所能理解的范围。我也看到了http://www.linux.com/news/enterprise/cloud-computing/785769-containers-vs-hypervisors-the-battle-has-just-begun,但这也解释不了它。

我玩过VM的,比如virtualbox。在我有限的理解中,最初的想法之一可能是在沙箱环境中测试软件(当您无法购买/负担不起这台机器时,拥有一个Solaris盒,并且仍然知道您正在为目标硬件开发的软件是如何工作的)。虽然受到限制,但它还是有用的。这可能也是它在云计算领域跳跃式发展的方式之一。问题很广泛所以我就是这么推断出来的-

有些人能解释一下虚拟机监控程序和*nix容器是什么吗(如果可能的话用类比)?

*nix管理程序是否与虚拟机相同,还是有区别?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2014-11-06 15:25:35

虚拟机(VM)是许多虚拟化技术的通用术语。

虚拟化技术有许多不同之处,但主要有:

  • 硬件级虚拟化
  • 操作系统级虚拟化

qemu-kvmVMWare就是第一个例子。他们使用管理程序来管理运行完整操作系统的虚拟环境。例如,在qemu-kvm系统上,可以让一个VM运行FreeBSD,另一个运行FreeBSD,另一个运行FreeBSD。

这些技术创建的虚拟机对客户来说就像孤立的单个计算机。这些有一个虚拟CPU,RAM,网卡,图形等,客人认为是真正的物品。因此,许多不同的操作系统可以安装在VM上,它们可以“开箱即用”,无需进行任何修改。

虽然这非常方便,因为许多OSes将不费多大力气就可以安装,但它的缺点是管理程序必须模拟所有硬件,这会减慢速度。另一种选择是半虚拟化硬件,其中为客户开发了一个新的虚拟设备和驱动程序,该虚拟设备和驱动程序是为虚拟环境中的性能而设计的。qemu-kvm为此提供了设备和驱动程序的virtio范围。这样做的一个缺点是必须支持客户操作系统;但是如果支持的话,性能方面的好处是很大的。

lxc是操作系统级虚拟化(即容器)的一个例子。在这个系统中,只安装了一个内核--主机内核。每个容器只是用户进程的隔离。例如,在容器中安装了web服务器(例如apache)。就网络服务器而言,唯一安装的服务器是它本身.另一个容器可能正在运行FTP服务器。那个FTP服务器不知道网络服务器的安装-只有它自己的。另一个容器可以包含Linux发行版的完整用户安装(只要该发行版能够与主机系统的内核一起运行)。

但是,在使用容器时没有单独的操作系统安装--只有用户土地服务的孤立实例。因此,您不能在容器中安装不同的平台-- Linux上没有Windows。

容器通常是使用chroot创建的。这将为要使用的进程创建单独的私有根(/)。通过创建许多单独的私有根,进程(web服务器或Linux发行版等)在它们自己的独立文件系统中运行。更先进的技术,如cgroups,可以隔离其他资源,如网络和内存。

这两种辩论各有优缺点,许多关于哪一种是最好的长期辩论也是有好处的。

  • 容器更轻,因为没有为每个容器安装完整的操作系统;这是虚拟机管理程序的情况。因此,它们可以在较低规格的硬件上运行。但是,它们只能运行Linux来宾(在Linux主机上)。另外,由于它们共享内核,因此可能存在受损害的容器可能会影响另一个容器的可能性。
  • 管理程序更安全,可以运行不同的OSes,因为在每个VM中都安装了完整的操作系统,而且来宾不知道其他VM。但是,这需要在主机上使用更多的资源,这必须是相对强大的。
票数 11
EN

Unix & Linux用户

发布于 2014-11-06 15:10:52

容器有点像色度环境,只是它实现了更完整的用户空间隔离。它提供的不是真正的VM,而是虚拟操作系统。VMs创造了多台机器的错觉,在每台机器中,一个真正的、完整的操作系统可能就像在裸金属上运行一样。这里的“完整操作系统”包括一个内核。有些VM(例如QEMU)甚至允许刺激不同类型的“裸金属”结构。

相反,容器创建了多个内核的错觉,每个内核都运行着一个完整的userland。例如,您可以在一个容器中运行Debian,在另一个容器中运行Arch,因此容器内部的透视图与VM非常相似。但是,您只能运行与一个实际内核兼容的OS userland,在本例中是Linux。这与真正的VM不同,在那里您可以运行独立的内核,因此也可以运行任何类型的操作系统。

因此,与容器相比,真正的VM更昂贵、更节省资源;如果在每个VM中不需要不同的内核,则最好使用容器。

还有其他一些与LXE类似的虚拟化系统,如openVZ,被VPS供应商广泛使用。openVZ VPS是一个独立的用户,它使用其主机操作系统的内核。这就是为什么这样的VPSs有很多linux的味道,但没有其他的;它们必须与主机内核兼容。

OpenVZ和LXC风格的虚拟化称为操作系统级虚拟化。

管理程序是管理虚拟机的系统,如VirtualBox、QEMU或Xen。一些虚拟机监控程序(如Xen )运行在裸金属上,不需要主机操作系统(尽管它们可能需要托管操作系统作为控制接口)。其他的,如VirtualBox和QEMU,在主机操作系统中运行。有些(如QEMU )允许模拟不同的机器体系结构;另一些(例如VirtualBox )则不允许(即VM体系结构总是与真正的主机相同)。模拟架构需要更多的资源,就像真正的VM需要比容器更多的资源一样。

虚拟机管理程序风格的虚拟化被称为平台级虚拟化。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/166398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档