Skip to main content

第一章 引言

第一章 引言

Proxmox VE 是一个支持运行虚拟机和容器的开源平台,基于 Debian Linux 系统构建且完全开源。为实现高度灵活性,该平台集成了两种虚拟化技术:基于内核的虚拟机(KVM)以及基于容器的虚拟化(LXC)。

其核心设计目标之一是最大限度地简化管理流程。用户既可将 Proxmox VE 部署于单个节点上,也可构建由多个节点组成的集群环境。所有管理操作均可通过其基于Web的管理界面完成,即使是初学者也能在短时间内快速完成平台的配置与安装。


1.1 中央管理

尽管许多用户从单个节点开始使用,但 Proxmox VE 可扩展至包含多个大型集群节点的环境。集群堆栈完全集成,并作为默认安装的一部分提供。

独特的多主设计

Proxmox VE 集成了基于Web的管理界面,能够清晰地展示所有 KVM 客户机和 Linux 容器,同时提供整个集群的概览。通过图形用户界面,您可以轻松管理虚拟机、容器、存储以及集群配置,无需额外安装复杂且昂贵的独立管理服务器。

Proxmox 集群文件系统(pmxcfs)

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

Proxmox VE 采用独特的 Proxmox 集群文件系统(pmxcfs),这是一种基于数据库的文件系统,专门用于存储配置文件。该文件系统支持存储数千台虚拟机的配置信息,并通过 corosync 实现配置文件在所有集群节点上的实时同步(复制)。数据以持久化数据库的形式存储于磁盘中,同时缓存副本驻留在内存中,最大容量为 30MB,对于数千台虚拟机来说,这已经绰绰有余。足以满足大规模虚拟化环境的需求。

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

基于Web的管理界面

Proxmox VE 提供直观且功能强大的内置Web管理界面,无需额外安装独立的管理工具或复杂的数据库管理节点。其多主架构允许用户从集群中的任意节点管理整个集群。基于 JavaScript 框架(ExtJS)开发的中央网络管理界面提供了对所有功能的图形化控制,包括查看每个节点的历史记录和系统日志、执行备份与恢复任务、实时迁移以及高可用性触发的操作等。

命令行

对于熟悉 Unix 命令行或 Windows Powershell 的高级用户,Proxmox VE 提供了功能全面的命令行接口(CLI),用于管理虚拟环境中的所有组件。该 CLI 具备智能自动补全功能,并以 UNIX 手册页的形式提供了详尽的文档支持。

RESTful API

Proxmox VE 提供 RESTful API,选择 JSON 作为主要数据格式,并通过 JSON Schema 对整个 API 进行了正式定义。这一设计使得第三方管理工具能够快速且便捷地与 Proxmox VE 集成,适用于自定义托管环境或其他自动化场景。

基于角色的管理

Proxmox VE 支持基于角色的用户和权限管理,可为所有对象(如虚拟机、存储、节点等)定义精细的访问权限。此功能通过访问控制列表(ACL)实现,允许用户指定主体(用户或组)及其在特定路径上的角色(一组权限)。

身份验证集成

Proxmox VE 支持多种身份验证源,包括 Microsoft Active Directory、LDAP、Linux PAM 标准身份验证以及内置的 Proxmox VE 身份验证服务器,确保灵活且安全的身份验证机制。


1.2 灵活存储 


Proxmox VE 的存储模型设计极为(非常)灵活。虚拟机镜像可以存储在本地存储设备上,也可以分布于多个本地存储设备中,或者存储在共享存储(如 NFS、SAN)等网络存储介质上。系统对存储定义的数量没有限制,用户可根据实际需求自由配置任意数量的存储资源。此外,Proxmox VE 支持 Debian Linux 提供的所有存储技术,为用户提供了广泛的兼容性和选择空间。

将虚拟机镜像存储在共享存储上的主要优势在于支持不停机的实时迁移功能。由于集群中的所有节点均可直接访问共享存储中的虚拟机磁盘映像,因此能够实现运行中虚拟机的无缝迁移。

目前,Proxmox VE 支持以下网络存储类型: 

- LVM 卷组(可通过 iSCSI 目标提供网络支持) 

- iSCSI 目标端 

- NFS 共享 

- CIFS 共享 

- Ceph 块设备(RBD) 

- 直接使用 iSCSI 逻辑单元号(LUN) 

- GlusterFS(分布式文件系统) 

同时,Proxmox VE 还支持以下本地存储类型: 

- LVM 卷组(适用于本地存储设备,如块设备、光纤通道设备、DRBD 等) 

- 普通目录(基于现有文件系统存储) 

- ZFS(一种高性能文件系统)

1.3 集成备份与恢复 

集成备份工具(vzdump)能够为正在运行的容器和 KVM 客户机创建一致性的快照。该工具会生成一个包含虚拟机或容器数据及其配置文件的存档,确保备份内容完整且可靠。

KVM 实时备份功能支持所有存储类型,包括 NFS、CIFS、iSCSI LUN 和 Ceph RBD 上的虚拟机映像。新的备份格式经过优化设计,具备稀疏文件处理能力、无序数据存储以及最小化 I/O 操作的特点,从而实现快速高效的虚拟机备份。

1.4 高可用性集群 

多节点 Proxmox VE 高可用性集群支持定义高可用虚拟服务器。Proxmox VE 高可用性集群基于成熟的 Linux 高可用性技术构建,提供稳定可靠的高可用性服务,确保关键业务系统的连续性和可用性。

1.5 灵活网络 

Proxmox VE 采用桥接网络模型,允许所有虚拟机共享同一个网桥,类似于将每个虚拟机的虚拟网线插入同一物理交换机。为了实现虚拟机与外部网络的连接,网桥可绑定到物理网卡,并分配相应的 TCP/IP 配置。 

为进一步提升网络灵活性,Proxmox VE 支持 VLAN(IEEE 802.1q)和网络绑定/聚合功能。通过这些特性,用户可以充分利用 Linux 网络堆栈的强大功能,构建复杂且灵活的虚拟网络架构,以满足多样化的网络需求。

1.6 集成防火墙 

集成防火墙功能允许用户在任何虚拟机或容器接口上过滤网络数据包。常见的防火墙规则集可以被分组到“安全组”中,从而实现更高效的管理。

1.7 超融合基础设施 

Proxmox VE 是一个高度集成的虚拟化平台,将计算、存储和网络资源紧密融合,并支持高可用性集群管理、备份/恢复以及灾难恢复功能。所有组件均为软件定义且相互兼容,可通过集中化的Web管理界面进行统一管理,如同操作单个系统般便捷。这些特性使 Proxmox VE 成为部署和管理开源超融合基础设施(HCI)的理想选择。

1.7.1 采用 Proxmox VE 的超融合基础设施(HCI)的优势 

超融合基础设施(HCI)特别适用于对基础设施需求较高但管理预算有限的场景,例如分布式环境(如远程办公室和分支机构)、虚拟私有云及公共云等。 

Proxmox VE 提供以下优势:

• 可扩展性:计算、网络和存储设备能够无缝扩展(例如服务器和存储可快速且独立地扩展)。 

• 成本效益:作为开源软件,Proxmox VE 集成了所需的全部组件(包括计算、存储、网络、备份和管理中心),有效替代昂贵的传统计算/存储基础设施。 

• 数据保护与效率:内置了备份和灾难恢复功能,确保数据的安全性和高效管理。 

• 简洁性:配置简单,支持集中化管理,降低运维复杂度。 

• 开源性:无供应商锁定,用户可完全访问源代码并自由修改或贡献代码。

1.7.2 超融合基础设施:存储 

Proxmox VE 紧密集成了对超融合存储基础设施的支持。通过其直观的 Web 界面,用户可以轻松部署和管理以下两种主流存储技术: 

• Ceph:一种具备自愈和自管理能力的共享存储系统,具有高可靠性、高可扩展性,适合大规模分布式环境。 

• ZFS:一种结合文件系统与逻辑卷管理器的存储解决方案,提供强大的数据保护功能,支持多种 RAID 模式,并能以低成本快速创建快照。 

此外,Proxmox VE 还支持多种其他存储技术,具体信息请参阅“存储管理器”章节。


1.8 为何选择开源 

Proxmox VE 基于 Debian GNU/Linux 发行版构建,使用 Linux 内核,并在 GNU Affero 通用公共许可证第 3 版下发布源代码。这使得用户可以随时查看源代码并参与项目开发。Proxmox 致力于尽可能采用开源软件,确保用户能够完全访问所有功能,同时保障高安全性和可靠性。我们坚信每个人都应有权访问软件源代码,以便运行、开发或向项目提交更改。Proxmox 鼓励社区成员积极参与贡献,同时确保产品始终符合专业质量标准。 

开源软件的优势在于显著降低用户的成本,同时避免对单一供应商的依赖。

1.9 使用 Proxmox VE 您将获得的好处 

• 开源软件 

• 无供应商锁定 

• 基于 Linux 内核 

• 安装迅速,使用便捷 

• 基于Web的管理界面 

• REST API 支持自动化管理 

• 拥有庞大且活跃的社区支持 

• 管理成本低且部署简便

1.10 获取帮助 

1.10.1 Proxmox VE 维基 

主要的信息来源是 Proxmox VE 维基,它结合了参考文档与用户贡献的内容。  

1.10.2 社区支持论坛 

Proxmox VE 是一个完全开源的平台,我们一直鼓励用户通过 Proxmox VE 社区论坛进行交流和知识共享。该论坛由 Proxmox 支持团队管理,并拥有来自全球的大量活跃用户。作为一个大型社区,该论坛是获取技术信息和解决方案的理想场所。

1.10.3 邮件列表 

此外,Proxmox VE 提供以下快速交流方式: 

- 用户邮件列表:Proxmox VE 用户列表,适用于用户之间的技术讨论和问题解决。 

- 开发者邮件列表:Proxmox VE 开发讨论,专注于开发人员的技术沟通与协作。

1.10.4 商业支持 

Proxmox Server Solutions GmbH 还提供企业级支持服务,用户可通过订阅 Proxmox VE 服务计划获得支持。所有订阅用户均可访问 Proxmox VE 企业级软件库,而订阅基础版、标准版或高级版的用户还可使用 Proxmox 客户门户。该客户门户提供由 Proxmox VE 开发团队提供的有响应时间保障的技术支持与帮助。如需了解批量折扣或其他相关信息,请联系 Proxmox 官方团队:sales@proxmox-china.com。  

1.10.5 错误追踪器 

Proxmox 在 https://bugzilla.proxmox.com 上运行了一个公开的错误追踪系统。如果遇到任何问题(包括错误报告、新功能请求或改进建议),请在该系统中提交报告。错误追踪系统不仅有助于跟踪问题状态,还会在问题解决后发送通知。

1.11 项目历史 

Proxmox VE 项目始于 2007 年,并于 2008 年发布了首个稳定版本。当时,我们使用 OpenVZ 来运行容器,使用 KVM 来运行虚拟机。集群功能相对有限,用户界面也较为简单(基于服务器生成的网页)。然而,随着项目的快速发展,我们在 Corosync 集群堆栈的基础上引入了多项新功能。特别是 Proxmox 集群文件系统(pmxcfs)的引入,极大地简化了集群管理。通过隐藏集群复杂性,用户可以像管理单个节点一样轻松管理多达 16 个节点的集群环境。 

为了进一步提升可扩展性和集成能力,我们开发了一个全新的 REST API,其完整的声明式规范采用 JSON-Schema 编写。这不仅使第三方能够将 Proxmox VE 无缝集成到其基础设施中,还便于提供额外的服务。基于此 REST API,我们成功用现代 HTML5 应用程序(使用 JavaScript)替换了原有的用户界面,并用 noVNC 替代了旧的基于 Java 的 VNC 控制台代码。因此,用户只需通过网络浏览器即可完成虚拟机的管理操作。 

对多种存储类型的兼容性支持是 Proxmox VE 的另一项重要特性。值得一提的是,Proxmox VE 在 2014 年成为首个默认搭载 ZFS 文件系统的 Linux 发行版。此外,我们还实现了在虚拟机管理程序节点上运行和管理 Ceph 存储的功能,这种配置极具成本效益。 

自项目启动以来,Proxmox VE 始终致力于为 KVM 提供商业支持。KVM 项目本身也在不断发展,如今已成为广泛使用的虚拟机管理程序。每次发布都会带来新的功能。我们开发了 KVM 实时备份功能,使得在任何存储类型上创建快照备份成为可能。 

在 4.0 版本中,Proxmox VE 最显著的变化是从 OpenVZ 转向 LXC。容器功能现已深度集成,能够使用与虚拟机相同的存储和网络功能。

1.12 改进 Proxmox VE 文档 

Proxmox VE 欢迎对文档的贡献和改进。以下是几种贡献方式: 

- 如果您发现本文档中的错误或其他可改进之处,请在 Proxmox 错误追踪器中提交错误报告并提出修正建议。 

- 对于特定的设置、操作指南或教程,请通过维基页面贡献内容。 

- 对于所有用户都会觉得有用的一般性内容,请为参考文档提交您的贡献。参考文档采用 asciidoc 格式编写。要编辑文档,请克隆位于 git://git.proxmox.com/git/pve-docs 的 Git 仓库,并按照 README.adoc 文档中的说明操作。 

笔记

如果您有兴趣参与 Proxmox VE 代码库的开发工作,那么“开发者文档”维基页面将为您指明入门方向。

1.13 Proxmox VE 的翻译 

Proxmox VE 的用户界面默认语言为英文,但得益于社区的贡献,目前已提供多种语言的翻译版本。我们欢迎任何有助于添加新语言、翻译最新功能以及改进不完整或不一致翻译的支持。 

我们使用 gettext 工具来管理翻译文件。像 Poedit 这样的工具提供了友好的用户界面以编辑翻译文件,但您也可以使用任何熟悉的文本编辑器进行操作。翻译工作无需编程知识。

1.13.1 使用 Git 进行翻译 

语言文件以 Git 代码库的形式托管。如果您熟悉 Git,请参考我们的《开发者文档》了解如何提交翻译贡献。

如需创建新的翻译(请将 <LANG> 替换为对应的语言代码),可按照以下步骤操作: 

或者,您可以使用您选择的编辑器对现有的翻译文件进行编辑:

1.13.2 不使用 Git 进行翻译 

即使您不熟悉 Git,也可以参与 Proxmox VE 的翻译工作。首先,您可以从此处下载所需的语言文件。找到您希望改进的语言,然后右键单击该语言文件的“原始”链接,并选择“另存为目标”以保存文件。完成修改后,请将最终的翻译文件发送至 office(at)proxmox.com,并附上一份已签署的贡献者许可协议。

1.13.3 测试翻译 

若要将翻译应用于 Proxmox VE,您需要首先将 .po 文件转换为 .js 文件。此操作可通过调用同一存储库中提供的以下脚本来完成: 生成的文件 pve-lang-xx.js 可复制至 Proxmox 服务器的 /usr/share/pve-i18n 目录中,以便进行本地测试。

或者,您也可以从存储库根目录运行以下命令以构建 deb 包: 

无论采用上述哪种方法,为确保其正常工作,您需要在系统上安装以下 Perl 包(适用于 Debian/Ubuntu 系统):

1.13.4 发送翻译 

完成翻译后,您可以将 .po 文件连同已签署的贡献者许可协议一并发送至 Proxmox 团队邮箱 office(at)proxmox.com。此外,如果您具备一定的开发经验,还可以将翻译作为补丁提交至 Proxmox VE 开发邮件列表。具体操作请参考开发者文档。