OpenVZ是什么

子凡 问答 2020-08-20 17:32:13 阅读(...)

OpenVZ是基于Linux内核的操作系统级虚拟化技术。OpenVZ允许物理服务器运行多个操作系统,该技术常用于虚拟专用服务器。 与VMware和Xen这种硬件辅助虚拟化技术相比,OpenVZ的主机与客户系统都必须是Linux。

OpenVZ 是基于 Linux 内核的操作系统级虚拟化技术。OpenVZ 允许物理服务器运行多个操作系统,该技术常用于虚拟专用服务器。 与 VMware 这种虚拟机和 Xen 这种硬件辅助虚拟化技术相比,OpenVZ 的主机与客户系统都必须是 Linux。但是,OpenVZ 声称这样做有性能上的优势。

OpenVZ

根据 OpenVZ 网站的说法,使用 OpenVZ 与使用独立的实体服务器相比,性能只会有 1-3%的损失。

OpenVZ 的 Linux 客户系统其实是共享 OpenVZ 主机 Linux 系统的内核,也就意味着 OpenVZ 的 Linux 客户系统不能升级内核。

OpenVZ 是 SWsoft, Inc.公司开发的专有软件 Virtuozzo(Virtuozzo 虚拟机还支持 Windows 客户系统)的基础。OpenVZ 的授权为 GPLv2。

OpenVZ 由两部分组成,一个经修改过的 Linux 内核与一套用户工具。

核心

OpenVZ 的核心是 Linux 内核,并进行了修改以加入对 OpenVZ 虚拟环境的支持。修改后的核心提供了虚拟化,隔离,资源管理和检查点机制。

虚拟化和隔离

每一个虚拟环境都是一个单独的个体,表现得和一个物理服务器所表现的相同。每一个虚拟环境都有其自己的:

文件

系统库、应用软件,虚拟化的/proc 及/sys,虚拟化的锁等等。

用户和用户组

每一个虚拟环境都有其自己的 root 用户、用户和用户组。

进程树

虚拟环境只能看见其自己的行程(从 init 开始)。PID 也是虚拟化的,所以 init 的 PID 是 1。

网络

虚拟的网络设备,允许虚拟环境拥有自己的 IP 地址,以及一组 netfilter 及路由规则。

设备

如果需要,任何虚拟环境都可以授予访问真正设备,如网络接口、串口、磁盘分区等的权力。

进程间通信对象

共享内存、信号量、消息传递。

资源管理

OpenVZ 的资源管理包括三个部分:两级磁盘配额,公平的 CPU 调度器,以及 user beancounters。这些资源在虚拟环境的运行过程中可以调整,可以不必重启动。

两级磁盘配额

每一个虚拟环境都有其自己的磁盘配额,以磁盘的 block 数和 inode(大概相当于文档的数目)的数目来计算。在虚拟环境中,可以通过标准的工具来设置 UNIX 用户和用户组的磁盘配额。

CPU 调度器

OpenVZ 中的调度器是一个两级的公平分享调度策略的实现。

在第一级,调度器根据每个虚拟环境的 cpuunits 的值决定哪一个虚拟环境被分配 CPU 时间片。在第二级,标准的 Linux 调度器使用标准的 Linux 进程优先级和相关机制决定该虚拟环境中的哪一个进程获得 CPU。

检查点机制和动态迁移

2006 年 4 月中旬的 OpenVZ 发布了动态迁移和检查点功能。这使得在将一个虚拟环境从一个物理服务器迁移到另一个物理服务器的过程中不需要进行关机。这个过程被称为动态迁移:一个虚拟环境被冻结,然后它的所有状态被存到磁盘中的一个文件中;这个文件被传输到另外一个机器,然后虚拟环境在那里被解冻(恢复)。整个过程的延迟时间只有数秒。由于状态通常被完整地保护,这个暂停看起来就像一个正常的计算延迟。

用户级工具

OpenVZ 提供了命令行工具来管理虚拟环境(vzctl)和虚拟环境中的软件(vzpkg)。

vzctl

这是一个简单的用于管理一个虚拟环境的高级命令行工具。

模板与 vzpkg

可以用 OpenVZ 的模板快速部署 OpenVZ Linux 虚拟机,OpenVZ 的模板可在 OpenVZ 的网站下载。不同 Linux 发行版所用的模板不同。比如,使用 CentOS 7 的模板部署采用 CentOS 7 发行版的 OpenVZ 虚拟机,使用 Debian 8 的模板部署采用 Debian 8 发行版的 OpenVZ 虚拟机等。

OpenVZ 的特色

可扩展性

由于 OpenVZ 使用了一个单独的核心模型,它就和 2.6 版的 Linux 核心有着同样的可扩展性。它支持高达 64 个 CPU 和 64G 内存,一个单独的虚拟环境可以扩放到整个物理服务器,比如说使用所有的 CPU 和所有的内存。

密度

OpenVZ 可以在一台相当好的硬件上运行上百个虚拟环境(主要瓶颈是内存和 CPU)。

图标显示了虚拟环境上的 Apache HTTP Server 响应时间与虚拟环境数目的关系。测量是在一台有 768M 内存的机器上进行的;每一个虚拟环境都运行一组通常的进程:init、syslogd、crond、sshd 和 Apache。Apache 用来提供静态页面,而这些页面是由 http_load 所读取,然后测度第一个响应的时间。就如你看到的一样,随着虚拟环境的数量增加,响应时间由于内存存储和交换而变得更长。

在这种场景下,在一个 768M 内存的硬件上运行高达 120 个这样的虚拟环境是可能的。并以线性的方式外推,所以可以在 1 台 2G 内存的硬件上运行 320 个这样的虚拟环境。

集中管理

一台 OpenVZ 物理服务器(也称为硬件节点)的拥有者(root)可以看见所有虚拟环境的进程和文件。这使得大规模的管理成为可能。试想想当你是用 VMware 或 Xen 来做服务器集成的情况:为了给你的 10 个虚拟服务器进行安全更新,你必须登录到每一台机器并运行更新过程,这跟你为 10 台物理服务器进行更新是一样的。

在 OpenVZ,你可以运行一个简单的 shell 脚本,就可以一次更新所有(或只是你选择的)虚拟环境。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • VPS 虚拟专用服务器

    国外vps网站有哪些

    搬瓦工、Vultr、阿里云海外云服务器、Sugarhost、virmach、interserver、Digitalocean、HostUS、dedipath、CloudCone等等。
  • LXC

    LXC是什么

    LXC是一种操作系统层虚拟化技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器,内含应用软件本身的代码,以及所需要的操作系统核心和库。
  • Proxmox VE

    Proxmox VE是什么

    Proxmox VE是一个非常棒的集成OPENVZ支持KVM应用的环境。有方便易用的WEB界面,基于JAVA的UI和内核接口,可以登录到VM客户方便的操作,还有易用的模板功能,基本跟老外的商业VPS环境差不多了,支持VT和ISCSI。
  • libvirt

    libvirt是什么

    libvirt是一套用于管理硬件虚拟化的开源API、守护进程与管理工具。此套组可用于管理KVM、Xen、VMware ESXi、QEMU及其他虚拟化技术。libvirt内置的API广泛用于云解决方案开发中的虚拟机监视器编排层。
  • CloudLinux

    CloudLinux是什么

    CloudLinux 是一个基于 CentOS 的 Linux 发行版,是专为虚拟主机开发的操作系统。CloudLinux 可以有效的限制共享账户占用资源,使得每台服务器能够放置更多地账户,并且更稳定。
  • Cloudmin

    Cloudmin是什么软件

    Cloudmin 是云计算控制面板,允许在易于使用的基于 Web 的 UI 中创建和管理虚拟机。是一个灵活的界面,可在一个 UI 下集成内部和外部云服务。