嵌套虚拟化一种虚拟化方法是嵌套虚拟化。这是一种嵌套虚拟化,其中虚拟实例放置在现有实例之上。您可以在虚拟机中安装虚拟机管理程序(例如 Hyper-V、ESXi 和 KVM),以便在其之上设置其他虚拟实例。然而,虚拟嵌套的缺点是它会导致 CPU 密集型应用程序的性能显着下降,这就是为什么我只部分推荐使用嵌套虚拟化。
容器
另一种选择是使用容器。与虚拟机相反,容器并不代表自己的实例,而是访问与主机相同的内核(即操作系统内核)。这种方法的优点是容器还可以直接访问主机硬件。此外,这消除了对额外虚拟机管理程序的需要,并且可用的 CPU 可以直接用于容器应用程序。顺便说一句,您可以使用 Docker 来实现整个过程。
Docker 作为一种合适的技术
在云中,您需要不同的技术来创建功能应用程序。为您的应用 律师电子邮件列表 程序找到合适的云平台 (PaaS) 非常重要。
开源软件Docker用于通过容器虚拟化来隔离应用程序。该软件遵循单进程方法,其中处理单独的和封装的进程。这种方法特别适合面向服务的架构(SOA),因为每个服务都可以“打包”到自己的 Docker 容器中。为了构建镜像,Docker 使用了一个层系统,其中每个层都是“不可变的”。
在下图中,您可以看到 Docker 镜像的结构。在此示例中,Apache Web 服务器(以红色显示的层)设置在 Ubuntu 基础映像(绿色层)上。基础映像不是经典操作系统,因为它没有自己的内核。
Docker 镜像的结构图
使用不可变图层系统的优点是您可以在另一个应用程序中重用已为另一个图像创建的图层。通过一个简短的例子,整个事情肯定会更容易理解:构建 Tomcat 映像时,可以再次使用绿色和蓝色层。这意味着较低层只需在系统中存储一次,从而节省大量存储空间。
镜像的重用是容器相对于虚拟机的另一个优势。如下图所示,当在系统中实例化其他容器时,这一点变得尤其明显。
Docker容器实例化图解
Docker 将新实例化的容器在临时可写的附加容器(即所谓的容器层)中执行时创建的更改存储起来。这样做的好处是,Docker 仅通过引用底层来将创建的容器层存储在系统中,以供新创建的映像使用。
前景
我希望我能够通过这篇文章让您对“虚拟化”的整个主题有一些深入的了解。我的博客系列的下一部分将继续令人兴奋,因为我将比较当前的云平台,并更详细地介绍 Kubernetes、VirtualBox、Vagrant 和 Gitlab 等。
本博客系列中的其他帖子:
Oliver Richter 最初是一名学生,现在是 adesso 的软件工程师。他对 DevOps 主题(例如 Docker、Vagrant 和 OpenShift)以及 Java 轻量级软件开发感兴趣。 Oliver 能够加深他在单元测试、构建管理和平台即服务等主题方面的知识。