Proxmox VE (PVE) 是一款开源的虚拟化平台,它基于 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 技术,支持虚拟机和容器的运行。PVE 还提供高可用集群管理、软件定义存储、备份和恢复以及网络管理等企业级功能。下面介绍 PVE 的主要架构和其重要的服务。
1. 主要架构
1.1 KVM (Kernel-based Virtual Machine)
PVE 使用 KVM 作为虚拟机管理程序,它是基于内核的虚拟化技术,支持创建和管理全虚拟化的虚拟机。KVM 支持多种操作系统(如 Linux、Windows、BSD 等),并且能高效地管理硬件资源。
1.2 LXC (Linux Containers)
LXC 是一种轻量级的虚拟化技术,允许在单一 Linux 内核上运行多个隔离的 Linux 系统(即容器)。相比 KVM,LXC 更加轻量,适合快速启动和运行 Linux 应用程序或服务。
1.3 Proxmox VE Cluster (PVE 集群)
PVE 支持多个节点组成一个集群,从而提供高可用性、资源分配和集中管理。集群中的所有节点共享存储,并且可以实现虚拟机的实时迁移。
1.4 Ceph 分布式存储
PVE 提供对 Ceph 的原生支持,Ceph 是一种分布式存储系统,可以通过多个节点共享存储资源。它提供块存储、对象存储和文件存储,并且具有高度的可扩展性和高可用性。
1.5 软件定义网络 (SDN)
PVE 支持软件定义网络,可以通过虚拟网络实现不同虚拟机和容器之间的通信。Proxmox VE 提供 VLAN、VXLAN、Bonding、桥接等功能,使用户能够灵活配置网络架构。
1.6 QEMU 仪表盘
PVE 使用 QEMU 作为虚拟机的底层模拟器,QEMU 提供虚拟硬件仿真,并支持实时迁移、备份等高级功能。用户可以通过 PVE 的 Web 界面管理 QEMU 虚拟机。
2. 重要服务介绍
2.1 pvedaemon
pvedaemon 是 Proxmox VE 的核心守护进程,负责处理用户通过 Web UI 或命令行发出的管理请求。它是管理和控制虚拟机、容器、存储、备份等操作的关键服务。
功能:
创建、删除、启动、停止虚拟机和容器。
管理存储资源。
监控系统状态和性能。
2.2 pveproxy
pveproxy 是 Proxmox VE 提供 Web 界面的后台服务。它为管理员提供了友好的图形用户界面,支持集群管理、虚拟机和容器操作、网络和存储配置等功能。
功能:
提供 Web 界面访问。
处理用户的 HTTP 请求并转发给其他服务。
提供 SSL 加密的管理访问。
2.3 pvestatd
pvestatd 负责收集集群中各个节点的状态信息,包括虚拟机、容器的运行状态、存储和网络的使用情况等,并将这些信息传递给其他服务进行管理决策。
功能:
收集节点和虚拟机的实时状态信息。
提供统计信息用于性能监控和高可用性管理。
2.4 pve-cluster
pve-cluster 是 PVE 集群的核心管理服务,负责集群中的数据同步、节点通信和配置管理。它基于 corosync 提供分布式数据存储,用于共享配置文件、存储、网络等信息。
功能:
管理节点的加入和离开。
同步集群配置文件。
提供虚拟机和容器的实时迁移功能。
2.5 Corosync 和 Qdevice
Corosync 负责集群中的节点通信和仲裁。在集群环境中,它确保所有节点的配置一致性,并管理高可用性故障转移。Qdevice 是一个外部的仲裁设备,可以防止集群分裂脑。
功能:
提供节点间的心跳信号。
监控节点的健康状态。
提供高可用性集群仲裁。
2.6 pve-ha-manager
pve-ha-manager 是 PVE 高可用性集群的核心服务,它负责在主节点宕机或出现故障时,自动将虚拟机或容器切换到其他节点继续运行。
功能:
实现虚拟机和容器的高可用性。
自动故障切换,保证业务连续性。
管理高可用性的资源调度。
2.7 Proxmox Backup Server
Proxmox 提供独立的备份解决方案——Proxmox Backup Server,它与 PVE 无缝集成,支持对虚拟机和容器的增量备份和恢复。
功能:
增量备份,节省存储空间。
高效的数据压缩和加密。
支持备份计划和自动备份。
3. 其他相关服务
LVM 和 ZFS 存储管理:提供逻辑卷管理和 ZFS 文件系统的集成,用于管理物理和逻辑存储设备。
SPICE 和 VNC:用于远程连接虚拟机,提供图形化控制台访问。
Cloud-Init 支持:用于自动化虚拟机配置和初始启动配置,尤其在云环境中。
4. 总结
PVE 架构和服务紧密结合了虚拟化和容器技术,并通过集群、存储和网络的统一管理,提供了一个强大、灵活且可扩展的虚拟化平台。