安装配置虚拟化平台 Proxmox VE
参考资源:
GitHub - sqlsec/PVE: 国光的 PVE 生产力环境搭建教程
PVE 创建集群
参考链接:
第五章 集群管理 — Promxox VE 中文文档 7.1 文档
电脑死机服务继续?集群原来用起来这么有安全感!——PVE集群初体验_哔哩哔哩_bilibili
PVE 的集群为多主架构,各节点功能相同,没有主次之分
- 创建集群
选择一个节点,通过网页创建集群
📌 位置:数据中心 → 集群 → 创建集群
新增集群节点
为避免虚拟机 ID 冲突,Proxmox VE 规定新节点加入集群前不能配置有任何虚拟机。如果节点上已有虚拟机,可以首先使用 vzdump 将所有虚拟机备份,然后删除节点上的虚拟机,待加入集群后再用新的虚拟机 ID 恢复原有虚拟机。
- 复制已创建的机器认证信息
📌 位置:数据中心 → 集群 →
加入信息- 进入其他节点网页加入集群
📌 位置:数据中心 → 集群 →
加入集群粘贴信息并输入密码

- (附加)删除异常节点
当特定节点出现异常,需要删除该节点时,可运行
pvecm delnode pve-3部署超融合 Ceph 集群
创建高可用 Ceph 分布式存储集群
参考链接:
第八章 部署超融合Ceph集群 — Promxox VE 中文文档 7.1 文档
Proxmox VE + Ceph 超融合项目实战(第七部分:Ceph分布式存储) - Varden - 博客园
不要使用硬 RAID
Ceph 需要直接控制磁盘硬件设备。硬件 RAID 控制器并非为 Ceph 所设计,其写操作管理和缓存算法可能干扰 Ceph 对磁盘的正常操作,从而把事情复杂化,并导致性能降低
Ceph安装和初始化配置
安装方式一: 通过 Web 面板安装
此方式在安装部分组件时无法进行国内加速
📌 位置:节点 → Ceph →
安装 Ceph打开集群节点中的 Web 面板,使用向导进行安装
Ceph 的版本选择刚才命令提示的版本,存储库选择
无订阅,以使用本地镜像源加速下载。安装方式二:命令行手动安装
此方式适用于网络不佳,需要加速安装 Ceph 时
# 安装所有必要组件 sudo apt -y install \ ceph-base \ ceph-common \ ceph-mgr \ ceph-mon \ ceph-osd \ python3-cephfs \ python3-rados \ python3-rbd \ librados2-perl
在所有 ceph 节点中重复以上安装操作
初始化配置 Ceph
不管安装方式是命令行还是 Web 面板,安装完成后都能打开 Web 面板对 Ceph 进行配置
配置 Ceph 监视器
📌 位置:节点 → Ceph → 监视器
每个节点都
创建监视器与管理员,数量按需选择,这里每个节点各添加一个监视器与管理员配置 Ceph OSD
📌 位置:节点 → Ceph → OSD
配置 Ceph OSD 对象存储守护进程,它负责管理存储的数据对象,执行数据的复制、恢复、回收等任务,确保数据的可靠性和高可用性。
将每个节点都选择未使用的硬盘
创建 Ceph OSD,其的 DB 和 WAL 盘暂时保持默认,设备类型按情况选择:NVMe或SSD。 
配置 Ceph OSD 配置 Ceph 资源池
📌 位置:节点 → Ceph → 资源池
创建资源池,成功后每个集群节点都会多出一个共享的块存储,用于存放虚拟磁盘。此处命名此存储为:SSD-Storage。
配置 Ceph 资源池 配置 CephFS 文件系统
上面 Ceph 资源池创建的是块设备,这里创建 CephFS 作为文件系统用于存储系统镜像和一般文件
📌 位置:节点 → Ceph → CephFS
为每个节点都
创建元数据服务器。接着
创建 CephFS,成功后每个节点会多一个共享存储。此处命名此 CephFS 为:cephfs
配置 CephFS 文件系统

- (附加)卸载 Ceph
如果不小心损坏了 Ceph 系统的话,比较彻底的解决方法就是重装它,参考卸载 Ceph 命令如下(若未卸载干净,可多执行两遍):
systemctl stop ceph-mon.target
systemctl stop ceph-mgr.target
systemctl stop ceph-mds.target
systemctl stop ceph-osd.target
rm -rf /etc/systemd/system/ceph*
killall -9 ceph-mon ceph-mgr ceph-mds
rm -rf /var/lib/ceph/mon/ /var/lib/ceph/mgr/ /var/lib/ceph/mds/
pveceph purge
apt -y purge ceph-mon ceph-osd ceph-mgr ceph-mds
apt -y purge ceph-base ceph-mgr-modules-core
rm -rf /etc/ceph/* /etc/pve/ceph.conf /etc/pve/priv/ceph.*
apt -y autoremove- (附加)删除 Ceph 监视器
ceph mon remove pve-3编辑 Ceph 配置文件 /etc/pve/ceph.conf,删除相应节点的配置信息
创建虚拟机
参考链接:pve_configuration_notes/04.PVE创建模板虚拟机.md at main · CallMeR/pve_configuration_notes · GitHub
虚拟机镜像:
debian-13-genericcloud-amd64.qcow2
将虚拟机制作成模板,可以在以后创建新的虚拟机时,快速地从该模板进行克隆,从而大大缩短系统安装和配置的时间。
创建虚拟机
云环境镜像链接:
Debian:Index of /images/cloud/trixie/latest
Alpine:downloads | Alpine Linux
因为云环境版本的 Debian 镜像内去掉了大量的硬件驱动,所以体积更小,并且还优化了虚拟机环境的适配,因此选择 genericcloud 版本的镜像来创建虚拟机。如果使用 Alpine 系统的话,选择 virtual 版本的系统镜像。
过程如下:
点击 Proxmox VE 管理后台,点击右上角的
创建虚拟机,进入虚拟机创建流程常规:可以自定义虚拟机名称
操作系统:
不使用任何介质系统:勾选
Qemu 代理磁盘:由于使用 Debian 云镜像制作虚拟机模板,此处
删除所有磁盘CPU:
核心数酌情设置,类别选择host,主板有多个 CPU 的可以勾选启用 NUMA内存:容量酌情设置,因为不需要超开所以
取消勾选 Ballooning 设备。如果内存资源确实紧张,可以考虑在必要时临时启用此功能,以更灵活地调整内存使用。网络:
关闭防火墙,将Multiqueue设置为与核心数相同,防止网络I/O操作成为瓶颈。

加载系统镜像
把官方的 Cloud Image 云环境系统镜像添加到虚拟机中,步骤如下:
📌 位置:虚拟机 → 硬件
卸载 CD/DVD 驱动器
导入镜像文件
把镜像文件
上传到服务器,并检验其完整性,比如将debian-13-genericcloud-amd64.qcow2镜像上传到/root/OS-images,然后执行# 检验镜像文件哈希值 sha512sum /root/OS-images/debian-13-genericcloud-amd64.qcow2🖥️ 示例输出:
d76122c87c940d1ab9334f4307c98c01dc42f0b49a20cddf278d59b92d34ab63d05ac1f40dffda3d2d32e381f097706eee6ccbf79a596bfb2cbb3d83c635ae35 /tmp/Debian/debian-13-genericcloud-amd64.qcow2将此结果与官方仓库中的
SHA512SUMS文件记录值比对,如果一致则镜像正确将镜像文件
导入虚拟机,替换其中的虚拟机ID和存储ID为实际值,此处设置硬盘格式为qcow2,以支持硬盘快照# 将 qcow2 镜像导入虚拟机中 qm importdisk <VM_ID> /root/OS-images/debian-13-genericcloud-amd64.qcow2 <local_stroage> --format qcow2 :<<EOF 比如 qm importdisk 100 /root/OS-images/debian-13-genericcloud-amd64.qcow2 SSD-Storage --format qcow2 EOF🖥️ 示例输出:
importing disk '/root/OS-images/debian-13-genericcloud-amd64.qcow2' to VM 100 ... format 'qcow2' is not supported by the target storage - using 'raw' instead transferred 0.0 B of 3.0 GiB (0.00%) transferred 30.7 MiB of 3.0 GiB (1.00%) ... transferred 3.0 GiB of 3.0 GiB (99.25%) transferred 3.0 GiB of 3.0 GiB (100.00%) unused0: successfully imported disk 'SSD-Storage:vm-100-disk-0'之后就能看见硬件中多了一个
磁盘设备 
导入系统镜像完成
配置硬件参数
📌 位置:虚拟机 → 硬件
编辑硬盘勾选
丢弃:有助于回收不再使用存储空间,提高存储效率。勾选
SSD仿真:让虚拟机将虚拟磁盘视为 SSD 存储设备,从而利用 SSD 的高性能特性。勾选
IO Thread:启用 IO 线程可以提高虚拟机的磁盘 I/O 性能。由于导入的硬盘容量较小,所以需要在
磁盘操作中调整大小,酌情增加磁盘空间。添加
CloudInit 设备,初始化系统和管理配置云环境镜像总线/设备:
SCSI,编号1(与先前的硬盘编号不同)存储:为之前创建的 Ceph 资源池,比如:
SSD-Storage添加
串口设备,允许通过 Xterm.js 连接虚拟机,以实现共享剪切板等功能硬件设备添加完成后,如下图所示:

配置虚拟机 Cloudinit 初始化参数
📌 位置:虚拟机 → Cloud-Init
设置用户名和密码
IP 配置:
这里选择
DHCP通过路由器分配 IP,通过 IP-MAC 绑定统一管理 IP如需设置静态 IP 可设置
IP 地址与网关IPv6 选择 SLAAC 自我分配地址
Cloudinit 要在虚拟机关机情况下修改才会生效
配置虚拟机选项
根据需求配置选项,类似于设置主板 BIOS,以下为示例
📌 位置:虚拟机 → 选项
- 开机自启动:勾选
开机自启动 - 启动/关机顺序:设置虚拟机之间的
启动顺序,关机顺序与开机顺序相反,1 为最先启动 - 引导顺序:
启用导入的镜像设备,并将其排在首位
设置备注信息
📌 位置:虚拟机 → 概要
按需设置,此处示例:
### 服务器信息
- 系统: Debian 13
- 用途: Debian ( 模板 )
- 自启: 是
- 用户: tsanfer
- IPv4: 192.168.0.100/24
- IPv6: SLAAC然后打开虚拟机即可,记得路由器开启 DHCP,这样才能分配 IP 给虚拟机

制作虚拟机模板
进入虚拟机,对其进行一些配置后生成虚拟机模板
配置 SSH
参考本教程前面的章节,配置 SSH,在网页中的虚拟机终端中键入
sudo vim /etc/ssh/sshd_config配置选项值为
PasswordAuthentication yes
PermitEmptyPasswords no修改完成保持后,重启 SSH
sudo systemctl restart ssh.service之后就可通过 SSH 客户端连接虚拟机
(可选)添加免密 sudo 权限
通过 Cloudinit 初始化的用户,默认开启免密 sudo 权限
参考本教程前面的章节
# 使用以下命令添加免密 sudo 规则
echo '%<USERNAME> ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/<USERNAME>
:<<EOF 比如
echo '%tsanfer ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/tsanfer
EOF重新登陆当前用户 shell
su - <USERNAME>
:<<EOF 比如
su - tsanfer
EOF验证免密 sudo 权限:
sudo ls -la配置软件仓库镜像源
apt 换源
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' \
/etc/apt/sources.list.d/debian.sources配置 ZSH
参考本教程前面的章节,使用笔者本人的 Debian 初始化脚本,初始化 ZSH:
if command -v curl >/dev/null 2>&1; then
bash -c "$(curl -fsSL https://ghfast.top/https://raw.githubusercontent.com/Tsanfer/Setup_server/main/Setup.sh)"
elif command -v wget >/dev/null 2>&1; then
bash -c "$(wget https://ghfast.top/https://raw.githubusercontent.com/Tsanfer/Setup_server/main/Setup.sh -O -)"
else
echo "请先安装 curl 或 wget" >&2
fi安装相关常用软件
# 安装系统软件
# 安装网络工具
# 写入磁盘
sudo apt -y install qemu-guest-agent guestfs-tools htop btop tmux logrotate cron neovim zsh git && \
sudo apt -y install nftables sshguard lsof && \
sudo sync调整系统时区
# 调整系统时区
# 检查系统时间
sudo timedatectl set-timezone Asia/Shanghai && date -R🖥️ 示例输出:
Tue, 02 Sep 2025 11:20:29 +0800生成虚拟机模板
关闭虚拟机,右键点击虚拟机,选择 转换成模板

在后续使用模板时,需要在路由器中配置 IP-MAC 映射
创建 LXC 容器
参考链接:无特权容器vs特权容器——PVE下创建LXC容器基础流程_网络存储_什么值得买
LXC 容器镜像:
debian-13-standard
下载 CT 容器模板
📌 位置:文件存储 → CT 模板 → 模板
此处 Promox 官方提供了十几种 Linux 操作系统容器模板,选择合适的模板下载即可,比如 debian-13-standard

创建 LXC 容器
点击主页右上角 创建 CT 进入创建页面
常规:选中
无特权容器和嵌套,按需设置主机名、密码,或者也可使用密钥登陆模板:存储选择下载好模板的存储、模板选择下载好的系统
磁盘:按需设置磁盘大小
CPU:核心数按需设置
内存:内存和 Swap 虚拟内存按需设置
网络:按实际网络设置,比如,设置 IPv4 为
DHCP,IPv6 为SLAAC自我分配地址,关闭防火墙DNS:按需设置,此处可保持空白默认
然后确认保存,等待其完成后可以看见多了一个容器,先不要开机,接下来还要对其进行设置

配置 LXC 容器
📌 位置:容器
网络:可复制生成的容器 MAC 地址,在路由器中进行 IP-MAC 绑定
DNS:可按需设置主机名,比如:
Debian-13-LXC-template选项:
- 开机自启动:
是 - 控制台模式:
shell - 功能:
嵌套表示可在容器中创建容器
- 开机自启动:
Proxmox VE 默认将宿主机上的普通用户映射为容器内的 root 用户,限制 root 用户的权限,这样的做法相比使用特权容器来说更加安全。
配置完成后即可运行 LXC 容器,默认使用 root 用户登陆。

制作 LXC 容器模板
此步骤与制作虚拟机模板,以及服务器初始化类似,这里简略解释如何设置。
初始化 LXC 容器
apt 换源
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' \
/etc/apt/sources.list.d/debian.sources安装 sudo
apt -y install sudo使用笔者本人的 Debian 初始化脚本,初始化 LXC 容器的一部分设置。用这个脚本的主要目的是 安装常用软件、配置终端,还能顺便调用融合怪脚本 测试服务器。
if command -v curl >/dev/null 2>&1; then
bash -c "$(curl -fsSL https://ghfast.top/https://raw.githubusercontent.com/Tsanfer/Setup_server/main/Setup.sh)"
elif command -v wget >/dev/null 2>&1; then
bash -c "$(wget https://ghfast.top/https://raw.githubusercontent.com/Tsanfer/Setup_server/main/Setup.sh -O -)"
else
echo "请先安装 curl 或 wget" >&2
fi- 设置 root 的 ssh 密码登陆
可根据实际情况设置
# 设置允许 Root 用户登录
cat /etc/ssh/sshd_config | grep -Eq "^[# ]?PermitRootLogin " ; [ $? -eq 0 ] && \
sed -i 's/^[# ]\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config || \
echo -e "\nPermitRootLogin yes" >> /etc/ssh/sshd_config
# 设置密码认证
cat /etc/ssh/sshd_config | grep -Eq "^[# ]?PasswordAuthentication " ; [ $? -eq 0 ] && \
sed -i 's/^[# ]\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config || \
echo -e "\nPasswordAuthentication yes" >> /etc/ssh/sshd_config
# 启动/重启 SSH 服务
ps -ef | grep -q ssh ; [ $? -eq 0 ] && \
systemctl restart sshd || systemctl enable --now sshdsu
systemctl enable ssh.service || service sshd restart- 调整系统时区
# 调整系统时区
# 检查系统时间
sudo timedatectl set-timezone Asia/Shanghai && date -R生成 LXC 容器模板
之后即可关闭容器创建模板,步骤类似创建虚拟机模板。
关闭容器,右键点击容器,选择 转换成模板

在后续使用模板时,需要在路由器中配置 IP-MAC 映射
备份与快照
参考链接:讲解PVE虚拟机的:备份,快照,复制,克隆 笔记250703讲解PVE虚拟机的:备份,快照,复制,克隆 PVE虚拟机备份 - 掘金
备份
📌 位置:数据中心 → 备份 → 添加
- 常规:按需设置备份对象、备份计划和存储等配置,比如对
Debian-13-LXC-template计划每日02:30备份、存储为cephfs - 保留:按需设置,比如保留上次
3、保留每天6、保留每周3、保留每月11、保留每年4
可点击 现在运行 测试备份

快照
📌 位置:容器/虚拟机 → 快照 → 做快照

高可用设置
📌 位置:数据中心 → HA → 添加
选择需要高可用的 KVM 虚拟机与 LXC 容器,按需设置最大重启与最大重定位等参数。设置完 HA 高可用过后节点如果断开与集群的连接,一段时间后该节点会自动重启

创建只读用户
用于展示 Proxmox VE 后台
📌 位置:数据中心 → 权限
用户:
添加- 领域:
Proxmox VE authentication server - 设置用户名和密码
- 领域:
权限:
添加用户- 路径:
/ - 用户:
viewer@pve - 角色:
PVEAuditor
- 路径: