Chapter 01 · Introduction

第 1 章 简介

1.简介 Introduction

Proxmox VE 是一个用于运行虚拟机(virtual machine , VM)与容器(container)的平台。它基于 Debian Linux , 完全开源。为获得最大灵活性 , 我们集成了两种虚拟化技术 — 基于内核的虚拟机(Kernel-based Virtual Machine , KVM)与基于容器的虚拟化(LXC)。

核心设计目标之一 , 是让管理工作尽可能简单。您可以在 单节点 上使用 Proxmox VE , 也可以将多台节点组建成 集群。所有管理任务均可通过基于 Web 的管理界面完成 , 即使是初次接触的用户 , 也能在数分钟内完成 Proxmox VE 的安装与配置。

User Tools · qm · pct · pveceph · pvesh · GUI · API · pvesm
Service Daemons · pveproxy · pvedaemon · pvestatd · pve-cluster · pve-firewall · pve-ha-crm · pve-ha-lrm · spiceproxy
Linux Kernel · KVM · LXC · Open vSwitch · Linux Bridge · iSCSI · Ceph · ZFS · LVM
Hardware · CPU · Memory · Storage · Network
图 1.1 :Proxmox 软件栈(Proxmox Software Stack)— 由用户工具、服务守护进程、 Linux 内核与硬件四层构成。

1.1.中央管理 Central Management

许多用户从单节点起步 , 但 Proxmox VE 可以横向扩展到大规模的集群节点群。集群栈完全集成 , 在默认安装中即已就绪。

独特的多主架构 Unique Multi-Master Design

集成的基于 Web 的管理界面让您可以清晰地总览全部 KVM 客户机与 Linux 容器 , 乃至整个集群。您可以从图形界面(GUI)轻松管理虚拟机、容器、存储或集群 , 无需安装独立的、复杂且昂贵的管理服务器。

Proxmox 集群文件系统 Proxmox Cluster File System (pmxcfs)

Proxmox VE 使用独有的 Proxmox 集群文件系统(pmxcfs)— 一个基于数据库的文件系统 , 用于存储配置文件。这让您能够存储成千上万台虚拟机的配置。借助 corosync , 这些文件会被实时复制到所有集群节点。文件系统将所有数据保存在磁盘的持久化数据库中 , 同时也在 RAM 中保留一份副本 , 以提供最高 30 MB 的存储容量 — 对成千上万的 VM 来说绰绰有余。

Proxmox VE 是 唯一 使用这一独特集群文件系统的虚拟化平台。

基于 Web 的管理界面 Web-based Management Interface

Proxmox VE 使用简单。所有管理任务都可通过内置的基于 Web 的管理界面完成 — 无需安装独立的管理工具 , 也无需另外架设带有大型数据库的管理节点。多主特性允许您从集群中的任意节点管理整个集群。这套基于 JavaScript 框架(ExtJS)构建的中央 Web 管理界面 , 让您能够通过 GUI 控制所有功能 , 并查看每个节点的任务历史与系统日志(syslog)— 包括正在运行的备份/恢复任务、实时迁移(live-migration)以及高可用(HA)触发的活动。

命令行 Command Line

对于熟悉 Unix shell 或 Windows PowerShell 的高级用户 , Proxmox VE 提供了命令行接口(CLI)来管理虚拟环境的所有组件。该 CLI 支持智能 Tab 补全 , 并以 UNIX man 手册页的形式提供完整文档。

REST API REST API

Proxmox VE 使用 RESTful API。我们选用 JSON 作为主数据格式 , 整个 API 通过 JSON Schema 形式化定义。这让自定义托管环境等第三方管理工具能够快速、便捷地集成。

基于角色的管理 Role-based Administration

您可以通过基于角色的用户与权限管理系统 , 为所有对象(如 VM、存储、节点等)定义细粒度的访问控制。这让您可以定义特权 , 并控制对各对象的访问。该机制亦称访问控制列表(access control lists , ACL):每条权限指定一个主体(用户或用户组)以及一个角色(特权集合) , 作用于特定路径上。

认证域 Authentication Realms

Proxmox VE 支持多种认证来源 , 例如 Microsoft Active Directory、 LDAP、 Linux PAM 标准认证 , 或内建的 Proxmox VE 认证服务器。

1.2.灵活的存储 Flexible Storage

Proxmox VE 的存储模型非常灵活。虚拟机镜像既可以存放于一个或多个本地存储中 , 也可以存放于 NFS 或 SAN 之类的共享存储中。没有数量限制 , 您可以根据需要配置任意多的存储定义。 Debian Linux 支持的所有存储技术都可以在 Proxmox VE 中使用。

将 VM 存放于共享存储的一大优势 , 是可以 无停机实时迁移 运行中的虚拟机 , 因为集群中的所有节点都能直接访问 VM 的磁盘镜像。

当前我们支持以下网络存储类型:

  • LVM 组(基于 iSCSI target 的网络后端)
  • iSCSI target
  • NFS 共享
  • CIFS 共享
  • Ceph RBD
  • CephFS
  • 直接使用 iSCSI LUN 或 Fibre Channel SAN

支持的本地存储类型如下:

  • LVM 组(基于本地块设备 , 例如裸块设备、 FC 设备、 DRBD 等)
  • 目录(已有文件系统上的存储)
  • ZFS

1.3.集成的备份与恢复 Integrated Backup and Restore

集成的备份工具(vzdump)可为运行中的容器与 KVM 客户机创建一致性快照。它实质上是创建包含 VM/CT 配置文件在内的 VM 或 CT 数据归档文件。

此外 , Proxmox Backup Server 集成 提供了高级特性 , 包括将完整备份与数据去重相结合、客户端加密、备份至磁带或 S3 对象存储 , 以及与其他异地 Proxmox Backup Server 实例同步等能力。

QEMU/KVM 实时备份适用于所有存储类型 , 包括 NFS、 CIFS、 iSCSI LUN、 Ceph RBD 上的 VM 镜像。新的备份格式针对快速、高效地存储 VM 备份做了优化(稀疏文件、乱序数据、最小化 I/O)。

1.4.高可用集群 High Availability Cluster

多节点 Proxmox VE HA 集群支持定义高可用的虚拟服务器。 Proxmox VE HA 集群基于经过验证的 Linux HA 技术 , 提供稳定可靠的 HA 服务。

1.5.灵活的网络 Flexible Networking

Proxmox VE 采用桥接(bridged)网络模型。所有 VM 都可以共用一个桥(bridge)— 就好像每台客户机的虚拟网线都插入了同一台交换机。为了让 VM 与外界通信 , 桥被关联到物理网卡 , 并被分配 TCP/IP 配置。

为获得更高灵活性 , 还可使用 VLAN(IEEE 802.1q)以及网卡绑定/聚合(network bonding/aggregation)。借此 , 您可以为 Proxmox VE 主机构建复杂、灵活的虚拟网络 , 充分发挥 Linux 网络栈的全部能力。

1.6.集成的防火墙 Integrated Firewall

集成的防火墙允许您过滤任意 VM 或容器接口上的网络数据包。常用的防火墙规则集可以归入「安全组(security groups)」。

1.7.超融合基础设施 Hyper-converged Infrastructure

Proxmox VE 是一个紧密整合了计算、存储与网络资源的虚拟化平台 , 提供高可用集群管理、备份/恢复以及灾难恢复。所有组件都是软件定义的 , 并且彼此兼容。

因此 , 您可以通过中央化的 Web 管理界面像管理单一系统一样管理它们。这些能力使 Proxmox VE 成为部署与管理开源 超融合基础设施(hyper-converged infrastructure) 的理想选择。

1.7.1.使用 Proxmox VE 构建超融合基础设施 (HCI) 的优势 Benefits of a Hyper-Converged Infrastructure (HCI) with Proxmox VE

超融合基础设施(HCI)特别适用于 :高基础设施需求与低管理预算并存的部署场景、远程办公与分支机构等分布式部署 , 或虚拟私有云与公有云。

HCI 提供以下优势:

  • 可扩展性:无缝扩展计算、网络与存储设备(即可以快速、互相独立地横向扩展服务器与存储)。
  • 低成本:Proxmox VE 是开源软件 , 集成了您所需要的全部组件 , 包括计算、存储、网络、备份与管理中心。它可以替代昂贵的计算/存储基础设施。
  • 数据保护与效率:备份与灾难恢复等服务已被集成。
  • 简洁性:易于配置、集中管理。
  • 开源:无供应商锁定(vendor lock-in)。

1.7.2.超融合基础设施 :存储 Hyper-Converged Infrastructure: Storage

Proxmox VE 紧密集成了对超融合存储基础设施的部署支持。例如 , 您可以仅通过 Web 界面部署并管理以下两种存储技术:

除此之外 , Proxmox VE 还支持集成多种附加存储技术。详情请参见 存储管理器章节

1.8.为什么选择开源 Why Open Source

Proxmox VE 使用 Linux 内核 , 基于 Debian GNU/Linux 发行版。 Proxmox VE 的源代码以 GNU Affero General Public License v3 发布。这意味着您可以随时查阅源代码 , 也可以亲自向项目贡献。

在 Proxmox , 我们承诺尽可能使用开源软件。使用开源软件保证了对所有功能的完整访问 , 以及高水平的安全性与可靠性。我们认为 , 每个人都应当有权访问软件的源代码 , 以便运行、构建于其上 , 或将变更回馈给项目本身。我们鼓励所有人贡献 , 同时由 Proxmox 确保产品始终满足专业级质量标准。

开源软件还能帮助您降低成本 , 让核心基础设施不依赖于单一供应商。

1.9.使用 Proxmox VE 的好处 Your benefits with Proxmox VE

  • 开源软件
  • 无供应商锁定
  • Linux 内核
  • 安装快速、易于使用
  • 基于 Web 的管理界面
  • REST API
  • 庞大且活跃的社区
  • 低管理成本与简单部署

1.10.获取帮助 Getting Help

1.10.1.Proxmox VE Wiki Proxmox VE Wiki

主要的信息来源是 Proxmox VE Wiki。它将参考文档与用户贡献的内容结合在一起。

1.10.2.社区支持论坛 Community Support Forum

Proxmox VE 本身完全开源 , 因此我们一贯鼓励用户在 Proxmox VE 社区论坛 上讨论与分享知识。该论坛由 Proxmox 支持团队管理 , 拥有遍布全球的庞大用户群。不必多说 , 这样一个大型论坛是获取信息的绝佳去处。

1.10.3.邮件列表 Mailing Lists

这是一种通过电子邮件与 Proxmox VE 社区快速沟通的方式。

Proxmox VE 完全开源 , 欢迎贡献!开发者的主要沟通渠道是:

1.10.4.商业支持 Commercial Support

Proxmox Server Solutions GmbH 还以 Proxmox VE 订阅服务计划 的形式提供企业级支持。所有持有订阅的用户都可以访问 Proxmox VE 企业仓库(Enterprise Repository);持有 Basic、 Standard 或 Premium 订阅的用户还可访问 Proxmox 客户门户。客户门户提供帮助与支持 , 并由 Proxmox VE 开发者按承诺响应时间答复。

关于批量折扣或更多信息 , 请联系 sales@proxmox.com

1.10.5.缺陷追踪 Bug Tracker

Proxmox 在 https://bugzilla.proxmox.com 上运行公开的缺陷追踪系统(bug tracker)。如果遇到问题 , 请在那里提交报告。问题既可以是缺陷(bug) , 也可以是新特性或增强需求。缺陷追踪系统帮助跟踪问题 , 并在解决后发送通知。

1.11.项目历史 Project History

项目始于 2007 年 , 第一个稳定版本于 2008 年发布。当时我们使用 OpenVZ 实现容器 , 使用配合 KVM 的 QEMU 实现虚拟机。集群特性有限 , 用户界面也很简单(服务器生成的网页)。

但我们随后基于 Corosync 集群栈快速开发出新特性 , 而引入新的 Proxmox 集群文件系统(pmxcfs)则是一大跃进 — 它把集群的复杂性完全对用户屏蔽。管理一个 16 节点集群和管理一台单节点一样简单。

新的 REST API 引入 , 配合用 JSON Schema 编写的完整声明式规范 , 使其他人能够将 Proxmox VE 集成到自己的基础设施中 , 并方便地提供附加服务。

而新的 REST API 还使我们能用基于 JavaScript 的现代客户端单页应用替换最初的用户界面。我们还以 noVNC 替换了原先基于 Java 的 VNC 控制台代码。这样一来 , 您只需要一个浏览器就能管理虚拟机。

对各种存储类型的支持是另一项重要工作。值得一提的是 , Proxmox VE 是 2014 年首批默认搭载 ZFS on Linux 的发行版之一。另一个里程碑是能够在虚拟化主机节点上运行并管理 Ceph 存储 , 这种部署方式极具成本效益。

项目伊始 , 我们就是首批为 KVM 提供商业支持的公司之一。 KVM 项目本身持续演进 , 现已成为广泛使用的虚拟机监控程序(hypervisor) , 每个版本都带来新特性。我们开发了 KVM 实时备份特性 , 使在任意类型的存储上创建快照备份成为可能。

4.0 版最值得注意的变化 , 是从 OpenVZ 迁移到 LXC。容器自此被深度集成 , 可以使用与虚拟机相同的存储与网络特性。同时 , 我们引入了易用的 高可用 (HA) 管理器 , 简化了高可用部署的配置与管理。

在 Proxmox VE 5 的开发期间 , 异步 存储复制 , 以及通过 ACME / Let's Encrypt 实现的自动化 证书管理 等众多特性被引入。

软件定义网络 (SDN) 栈是与社区合作开发的成果 , 在 6.2 版被作为实验特性集成到 Web 界面 , 简化了复杂网络配置的管理。从 8.1 版开始 , SDN 集成被完全支持并默认安装。

2020 年 , 一个用 Rust 编写的新项目 — Proxmox Backup Server 发布。 Proxmox Backup Server 与 Proxmox VE 深度集成 , 通过实现增量备份、去重等能力大幅提升了备份能力。

2022 年发布的另一新工具 Proxmox Offline Mirror, 支持为没有公网连接的系统启用订阅。

呼声极高的 Web 界面深色主题在 2023 年引入。同年晚些时候 , 8.0 版集成了对 Ceph 企业仓库的访问。如今 , 任何 Proxmox VE 订阅都可获得最稳定 Ceph 仓库的访问权。

用于官方 ISO 安装器 的自动化与无人值守安装在 8.2 版中引入 , 大幅简化了 Proxmox VE 的大规模部署。

同样在 8.2 版引入的 导入向导(import wizard), 让用户可以轻松、高效地从 VMware ESXi 等其他 hypervisor 直接迁移客户机[1]。此外 , 现在还可以从 Web 界面直接从基于文件的存储中导入开放虚拟化格式(Open Virtualization Format , OVF/OVA)的归档文件。

1.12.改进 Proxmox VE 文档 Improving the Proxmox VE Documentation

欢迎您为 Proxmox VE 文档做出贡献和改进。有以下几种贡献途径。

如果您在本文档中发现错误或可改进之处 , 请在 Proxmox 缺陷追踪系统 提交一个 bug 来建议修正。

如果您希望提议新内容 , 请从下列选项中选择:

  • Wiki:对于特定的部署、 how-to 指南或教程 , wiki 是最适合的贡献渠道。
  • 参考文档:对全体用户都有帮助的通用内容 , 请将贡献提交到参考文档。这包括 Proxmox VE 特性的安装、配置、使用与故障排查相关的所有信息。参考文档使用 asciidoc 格式 编写。要编辑文档 , 您需要克隆 git 仓库 git://git.proxmox.com/git/pve-docs.git, 然后参考 README.adoc 文档。
NOTE

如果您有兴趣参与 Proxmox VE 代码库的工作 , 开发者文档(Developer Documentation) wiki 文章会告诉您从哪里开始。

1.13.翻译 Proxmox VE Translating Proxmox VE

Proxmox VE 用户界面默认使用英文。不过 , 借助社区贡献 , 也提供了其他语言的翻译。我们欢迎任何对添加新语言、翻译最新特性 , 以及改进不完整或不一致翻译的支持。

我们使用 gettext 来管理翻译文件。Poedit 等工具提供了友好的图形界面来编辑翻译文件 , 但您也可以使用任何顺手的编辑器。翻译不需要编程知识。

1.13.1.使用 git 翻译 Translating with git

语言文件以 git 仓库 形式提供。如果您熟悉 git , 请按照我们的 开发者文档 进行贡献。

您可以通过执行下列命令创建一份新翻译(将 <LANG> 替换为目标语言 ID):

# git clone git://git.proxmox.com/git/proxmox-i18n.git
# cd proxmox-i18n
# make init-<LANG>.po

或者 , 您可以使用顺手的编辑器编辑已有翻译:

# poedit <LANG>.po

1.13.2.不使用 git 翻译 Translating without git

即使您不熟悉 git , 也可以帮助翻译 Proxmox VE。请先 从这里下载语言文件。找到您想完善的语言 , 在该语言文件的「raw」链接上点击鼠标右键 , 选择 Save Link As…(链接另存为…)。完成修改后 , 将最终翻译连同已签署的 贡献者许可协议(contributor license agreement) 一并发送至 office(at)proxmox.com。

1.13.3.测试翻译 Testing the Translation

为使翻译可在 Proxmox VE 中使用 , 必须先把 .po 文件转换为 .js 文件。可以调用同一仓库中的脚本完成:

# ./po2js.pl -t pve xx.po >pve-lang-xx.js

得到的 pve-lang-xx.js 文件可复制到 Proxmox 服务器的 /usr/share/pve-i18n 目录下进行测试。

或者 , 您也可以在仓库根目录运行下列命令构建 deb 安装包:

# make deb
IMPT

无论使用上述哪种方法 , 系统中都需要安装下列 perl 软件包。对于 Debian / Ubuntu:

# apt-get install perl liblocale-po-perl libjson-perl

1.13.4.提交翻译 Sending the Translation

您可以将完成的翻译(.po 文件)连同已签署的贡献者许可协议一并发送至 Proxmox 团队邮箱 office(at)proxmox.com。或者 , 如果您具备开发者经验 , 也可以将其作为补丁(patch)发送到 Proxmox VE 开发者邮件列表。详见 开发者文档


[1] Migrate to Proxmox VEhttps://pve.proxmox.com/wiki/Migrate_to_Proxmox_VE