完整版请移步至A-lab页面查看:安装指导-基于Proxmox VE的安装部署和性能测试 - 星融元Asterfusion
1 目标
本文档将简要介绍Proxmox VE基本概念,并使用PVE进行集群部署以及功能验证。
2 概要介绍
2.1 关于Proxmox VE
Proxmox VE (Virtual Environment) 是一个开源的虚拟化平台,它基于 Debian GNU/Linux 发行版,并集成了 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 两种虚拟化技术,提供了一套完整的虚拟化解决方案。以下为PVE架构图:
图1.1:PVE架构
由以下几个组件构成:
- Proxmox VE管理界面:提供了易于使用的Web界面,用于管理虚拟机、容器、存储、网络和集群等。
- KVM虚拟化:Proxmox VE基于Linux内核虚拟机(KVM)技术实现了完整的虚拟化,并支持Windows和Linux等操作系统的虚拟化。
- LXC容器:Proxmox VE支持Linux容器(LXC)技术,可以在同一物理主机上运行多个隔离的Linux容器,从而提供更高的资源利用率和更快的启动时间。
- 存储管理:Proxmox VE支持多种存储类型,包括本地存储、网络存储(NFS、iSCSI、FC)、对象存储(Ceph、Swift)等,可以通过Web界面方便地管理存储池、卷和镜像等。
- 网络管理:Proxmox VE支持多种网络模式,包括桥接、NAT、VLAN、OpenvSwitch等,可以通过Web界面方便地管理虚拟网络接口、虚拟交换机和虚拟网络等。
- 集群管理:Proxmox VE支持多台物理主机组成的集群,可以通过Web界面方便地管理节点、HA、负载均衡等。
- API:Proxmox VE提供RESTful API,可以通过API方便地进行自动化管理和集成。
2.2 功能特性与ESXi对比
功能/特性 | Proxmox VE | ESXi |
---|---|---|
许可证费用 | 开源免费 | 商业许可证 |
支持的虚拟化技术 | KVM, LXC | VMware 虚拟化技术 |
界面和管理工具 | Web 界面管理工具 | 客户端界面 |
高可用性 (HA) | 支持 | 支持 |
备份与恢复 | 完整备份和恢复方案,包括快照 | 完整备份和恢复方案,包括快照 |
存储管理 | 多种存储管理方式,包括本地存储、NFS、iSCSI 和 Ceph 等 | 多种存储管理方式,包括本地存储、NFS、iSCSI 和 Fibre Channel 等 |
网络管理 | 多种网络管理方式,包括 NAT、桥接和 VLAN 等 | 多种网络管理方式,包括 NAT、桥接和 VLAN 等 |
安全性 | 基于角色的用户访问控制、防火墙和 TLS 加密等 | 基于角色的用户访问控制、防火墙和 TLS 加密等 |
社区支持 | 活跃的社区支持和开发者社区 | 有活跃的用户和支持社区 |
表2.1:功能对比
3 配置
3.1 最小硬件配置
- CPU要求为Intel EMT64或AMD64,需要支持Intel VT/AMD-V虚拟化。
- 内存不低于2GB,以确保操作系统和Proxmox VE服务正常运行。如需运行虚拟机,需相应增加更多内存。如需运行Ceph或ZFS,还需要增配内存,大概1TB存储空间增加1GB内存。
- 高性能高冗余存储资源,最好使用SSD盘。
- 操作系统盘:带有电池保护缓存的硬RAID卡,没有硬RAID卡时可以使用带有SSD缓存的ZFS。
- 虚拟机存储:本地磁盘可以采用带有电池保护缓存的硬RAID卡,或不带硬RAID卡的ZFS。ZFS和Ceph都不能和硬RAID控制器同时使用。也可以共享分布式存储。
- 多块千兆网卡。根据所用存储技术和集群配置,可以选配更多网卡。也可使用10Gbit或更高速网卡。
- 如需使用PCI直通,必须采用支持VT-d/AMD-d的CPU。
3.2 推荐系统硬件配置
- CPU:64位(Intel EMT64或AMD64),推荐使用多核CPU。
- CPU和主板需要支持Intel VT/AMD-V技术,以便支持KVM全虚拟化功能。
- 内存:8GB,如果要运行虚拟机则应配置更多硬RAID卡,带有电池保护(BBU)或闪存保护的写缓存。
- 性能硬盘,最好是15k转速的SAS盘,配置成Raid10。
- 最少2块以太网卡,也根据采用的共享存储技术配置更多网卡。
3.3 软件源配置
默认情况下,PVE是企业订阅源,并且每次登录有订阅通知窗口,需要去除弹窗,并且将软件源更改为国内源。
vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
将if(data.status!==’Active’)修改为 if(false)
cat >/etc/apt/sources.list <<EOF
deb https://mirrors.ustc.edu.cn/debian bookworm main contrib
deb https://mirrors.ustc.edu.cn/debian bookworm-updates main contrib
# security updates
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib
deb http://download.proxmox.com/debian bookworm pve-no-subscription
EOF
echo "deb http://mirrors.ustc.edu.cn/proxmox/debian/ceph-pacific bullseye main
" > /etc/apt/sources.list.d//ceph.list
rm pve-enterprise.list
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription">/etc/apt/sources.list.d/pve -no-subscription.list
apt-get update && apt-get upgrade -y
3.4 网络配置
3.4.1 基于网桥的默认配置
网桥相当于一个软件实现的物理交换机。所有虚拟机共享一个网桥,在多个域的网络环境中,也可以创建多个网桥以分别对应不同网络域。理论上,每个Proxmox VE最多可以支持4094个网桥。 Proxmox VE安装程序会创建一个名为vmbr0的网桥,并和检测到的服务器第一块网卡桥接。配置文件/etc/network/interfaces中的对应配置信息如下:
auto lo
iface lo inet loopback
iface ens160 inet manual
auto vmbr0
iface vmbr0 inet static
address 10.240.4.148/24
gateway 10.240.4.1
bridge-ports ens160
bridge-stp off
bridge-fd 0
iface ens192 inet manual
3.4.2 路由配置
大部分IPC服务器供应商不支持基于网桥的默认配置方式,出于网络安全的考虑,一旦发现网络接口上有多个MAC地址出现,则会立刻禁用相关网络端口。
可以通过配置“路由”的方式让多个虚拟机共享一个网络端口,对方通信使用同一个MAC地址。
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet static
address 192.51.100.5
netmask 255.255.255.0
gateway 192.51.100.1
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up echo 1 > /proc/sys/net/ipv4/conf/eno1/proxy_arp
auto vmbr0
iface vmbr0 inet static
address 203.0.113.17
netmask 255.255.255.248
bridge_ports none
bridge_stp off
bridge_fd 0
3.4.3 网络地址转换(NAT)
利用地址转换技术,所有虚拟机可以使用内部私有IP地址,并通过Proxmox VE服务器的IP来访问外部网络。Iptables将改写虚拟机和外部网络通信数据包,对于虚拟机向外部网络发出的数据包,将源IP地址替换成服务器IP地址,对于外部网络返回数据包,将目的地址替换为对应虚拟机IP地址。配置如下:
auto lo
iface lo inet loopback
auto eno1
#real IP address
iface eno1 inet static
address 192.51.100.5
netmask 255.255.255.0
gateway 192.51.100.1
auto vmbr0
#private sub network
iface vmbr0 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s ’10.10.10.0/24’ -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s ’10.10.10.0/24’ -o eno1 -j MASQUERADE
3.4.4 多网口绑定
多网口绑定(也称为网卡组或链路聚合)是一种将多个网卡绑定成单个网络设备的技术。利用该技术可以实现某个或多个目标,例如提高网络链路容错能力,增加网络通信性能等。配置如下:
auto lo
iface lo inet loopback
iface eno1 inet manual
iface eno2 inet manual
auto bond0
iface bond0 inet static
slaves eno1 eno2
address 192.168.1.2
netmask 255.255.255.0
bond_miimon 100
bond_mode 802.3ad
bond_xmit_hash_policy layer2+3
auto vmbr0
iface vmbr0 inet static
address 10.10.10.2
netmask 255.255.255.0
gateway 10.10.10.1
bridge_ports eno1
bridge_stp off
bridge_fd 0
完整版请移步至A-lab页面查看:安装指导-基于Proxmox VE的安装部署和性能测试 - 星融元Asterfusion