日常运维

适用对象:机房管理员、网管 · 系统上线后的日常维护操作
运维总原则 网管只需要维护三件事:服务器别断电、交换机别掉线、模板偶尔更新。日常运维比传统 PC 机房轻松 80% 以上。

模板更新与推送

什么时候需要更新模板

更新流程

  1. 在 PVE 中找到模板 VM(如 9000)
  2. 从模板克隆一个临时 VM(如 9001)
  3. 启动 9001,开机,进行软件更新
  4. 确认软件都正常后,关机
  5. 将 9001 转为新模板
  6. 在教师端设置中,将课程模板指向新模板编号(9001)
  7. 下一节课点上课时,系统自动用新模板克隆
  8. 确认无误后,旧模板可保留或删除
不要直接修改原模板 始终通过"克隆 → 修改 → 新模板"的方式更新。这样如果新模板有问题,可以立刻回退到旧模板。

多模板管理

建议按课程命名模板,并在 PVE 注释里标注:

VM ID模板名称用途
9000tpl-win10-base基础模板(只装系统+驱动)
9001tpl-python编程课(Python + VSCode)
9002tpl-design设计课(Photoshop + Illustrator)
9003tpl-exam考试环境(干净系统,指定软件)
9004tpl-office办公课(Office + WPS)

终端升级(ELF 替换)

终端程序(terminal_student.py 或打包后的 ELF)有版本更新时,需要批量替换。

升级工具

使用 terminal-upgrader.sh 脚本进行批量升级:

# 在教师端或管理机上执行
# 批量推送新 ELF 到所有终端
./terminal-upgrader.sh --source /path/to/new-terminal.elf --target /home/vdi/

# 或逐台升级
scp new-terminal.elf root@终端IP:/home/vdi/
ssh root@终端IP "chmod +x /home/vdi/new-terminal.elf"

升级注意事项

os.rename 防 Text file busy 终端程序在运行中,直接覆盖会导致 "Text file busy" 错误。正确做法:
  1. 先将新文件传到临时文件名(如 terminal_student.elf.new)
  2. 用 os.rename() 原子替换旧文件(rename 不受运行中限制)
  3. 重启终端程序

版本确认

升级后在终端上确认版本:

# 查看终端程序版本
ssh root@终端IP "strings /home/vdi/terminal_student.elf | grep -o '1\.5\.[0-9]*'"

# 或在教师端详情页查看终端版本号
版本口径 当前终端程序最新版口径是 1.5.039。不能只看文件头里的旧版本注释判断新旧,要实际比对程序功能。

T1 模板母盘升级规则

T1 = 克隆母盘/模板 母盘上的终端程序只用于克隆模板,不回推到开发机。升级流程:先在开发机验证新版本 → 确认无误 → 推送到母盘 → 从母盘批量克隆到其他终端。

PVE 日常维护

定期检查项

频率检查项方法
每周磁盘空间PVE 界面 → 节点 → Storage
每周VM 残留PVE 界面确认没有遗留的 running VM
每月系统日志journalctl -u pveproxy -n 200
每月PVE 更新apt update && apt list --upgradable
每学期存储碎片整理检查 thin pool 或 ZFS fragmentation
每学期备份模板vzdump 9000 --storage 备份存储名

清理 VM 残留

正常情况下下课会自动回收 VM。但如果异常断电或教师端崩溃,可能有残留 VM:

# 查看所有 VM 状态
qm list

# 批量停止所有 running 的 VM(谨慎!)
for vmid in $(qm list | grep running | awk '{print $1}'); do
  qm stop $vmid
done

PVE 官方维护文档

备份与恢复

需要备份什么

对象频率方法恢复方式
模板 VM每学期vzdumpqmrestore
教师端配置每次修改后手动导出 JSON导入 JSON
终端配置每次修改后备份 /home/vdi/.terminal_config还原文件
PVE 网络配置每次修改后备份 /etc/network/interfaces还原文件

模板备份示例

# 备份模板 VM 9000
vzdump 9000 --storage local --mode snapshot --compress zstd

# 备份结果在 /var/lib/vz/dump/

# 恢复(从备份文件)
qmrestore /var/lib/vz/dump/vzdump-qemu-9000-*.vma.zst 9000

教师端配置备份

教师端配置存储在 DB(SQLite)。备份方法:

# 在教师端电脑上
# 复制 DB 文件
copy "C:\teacher\data\school.db" "D:\backup\school-$(date).db"

# 同时导出配置为 JSON(在教师端设置界面操作)
A2 备份缺字段注意 旧版本 A2 备份可能缺 teacher_ip 字段。从旧备份恢复后需要检查配置完整性。

性能调优

服务器 CPU 与 Worker 调优

详见 部署手册 - PVE 配置。核心规则:

物理核数pveproxy workerspvedaemon workers
≤233
≤444
≤866
9+(如 16 核)88
检测失败4(回退)4(回退)

不要超过物理核数的 1.5-2 倍。

存储 IOPS 优化

网络优化

实测性能基准

指标实测值条件
60 台批量启动3 分钟全部就绪16 核 / 128GB / NVMe
SPICE 连接数360 路持续运行5+ 小时无断线
网络延迟< 1ms0% 丢包
带宽总占用< 100 Mbps空闲约 2 Mbps
下课回收10 秒内60 台全部 VM 停止
数据来源 以上数据来自已服务 60+ 院校机房的实测口径。实际性能取决于服务器配置、网络质量和终端硬件。
预约演示
🤖
智能客服
服务极客 · 随时响应
您好!我是服务极客的智能客服 👋 有什么关于云桌面系统的问题,欢迎随时咨询——上课使用、部署安装、故障排查,都可以问我。
刚刚
您也可以通过以下方式联系我们: