使用 Proxmox Backup Server 恢复大容量虚拟机时的真实速度分析

在一次大规模 Proxmox VE → Proxmox Backup Server → 新节点恢复的过程中,多个虚拟机磁盘被从 PBS 还原为 qcow2 格式。通过分析 restore 日志,可以清楚地看到:影响恢复时间的关键并不是虚拟磁盘标称容量,而是其中“实际非零数据量”。 本文基于多台 VM(102 / 104 / 106 / 101)的真实恢复日志,分析了 restore 性能、零块跳过比例以及对 6TB 级虚拟机恢复时间的准确估计方式。 一、PBS restore 的关键机制:–skip-zero 所有恢复命令都使用了: 这意味着: PBS 会识别磁盘中的“全零块”,直接跳过,不向目标磁盘写入。 因此: 这也是为什么 PBS restore 日志中会显示: zeroes 百分比越高,真正要写的数据越少,速度越快。 二、不同 VM 的真实恢复速度 从几台 VM 的 restore 完成日志可直接看到最终速度: VM …

使用 rsync 与 tar 迁移 Proxmox VE 宿主机系统(排除虚拟机磁盘)

在 Proxmox VE(PVE)环境中进行宿主机迁移时,正确区分“系统数据”和“虚拟机数据”是关键。宿主机应当只包含操作系统、Proxmox 配置、网络与服务状态,而虚拟机磁盘(qcow2、raw、LVM-thin 等)应交由 PBS 或单独备份处理。这样可以在迁移、恢复或硬件更换时保持高可控性和可恢复性。 本文介绍一种稳定、可重复的做法:在运行中的 PVE 上备份宿主机系统,同时排除虚拟机磁盘文件。 一、系统与虚拟机数据的分离原则 在典型 PVE 安装中,虚拟机磁盘可能以 qcow2 文件的形式存在于: 这类文件往往单个就有数 TB 大小,且已经通过 Proxmox Backup Server(PBS)等方式被单独备份,因此在迁移宿主机时应明确排除。 应当备份的内容包括: 不应当备份的内容包括: 二、推荐方式:使用 rsync 在线备份宿主机 rsync 非常适合做“可恢复的系统复制”,在宿主机运行时也可安全执行。 示例命令 参数说明 该方式不会影响正在运行的虚拟机,只会产生少量“运行中变更文件”的时间差,这在系统迁移场景中是可接受的。 三、tar 打包方式(需要注意排除运行态目录) 如果需要生成一个单一的归档文件(如 .tar.gz),可以使用 tar,但必须排除动态伪文件系统和 lxcfs。 稳定可用的 tar 模板 为什么要排除 /var/lib/lxcfs lxcfs 是 LXC 容器使用的运行时虚拟文件系统,用于显示 CPU、内存等动态状态。这些文件: 若不排除,会看到大量类似: 这类警告不是磁盘损坏,也不是 …

在 Proxmox VE 中将 /var/lib/vz 挂载到独立 LVM 磁盘并实现启动容错

在 Proxmox VE(PVE)环境中,/var/lib/vz 是一个非常关键的目录,用于存放虚拟机磁盘、CT 容器、ISO 镜像、模板以及部分备份数据。如果该目录与系统盘混用,一旦发生磁盘故障,既可能影响虚拟化数据,也可能拖垮整个宿主机系统。 一种更加专业和稳健的做法,是将 /var/lib/vz 单独放在一块独立磁盘上,并使用 LVM(Logical Volume Manager)进行管理,同时设置为“即使磁盘缺失也不阻断系统启动”。 本文将完整介绍这种架构的设计思路与实现方式。 一、设计目标 该方案的目标是: 最终结构如下: 二、创建 LVM 磁盘结构 假设新磁盘为 /dev/sdb。 1. 初始化为物理卷 2. 创建卷组 3. 创建逻辑卷(占满磁盘) 三、创建文件系统 可以使用 ext4 或 xfs,这里以 ext4 为例: 四、迁移原有 /var/lib/vz 数据 1. 临时挂载新磁盘 2. 拷贝数据(保留权限与属性) 五、正式替换挂载点 确认挂载: 六、配置开机自动挂载(容错模式) 获取 UUID: 编辑 /etc/fstab: 添加一行: 这行配置的意义 …

在 ext4 损坏后将 Raspberry Pi 系统从 64GB SD 卡无损迁移到 8GB SD 卡

摘要 在 Raspberry Pi 上运行 Ubuntu 或 Raspberry Pi OS 时,如果发生异常断电或 SD 卡老化,常会导致 ext4 文件系统元数据损坏,表现为启动进入 initramfs、fsck 报错、甚至出现异常输出(如大量负数刷屏)。当系统仍可启动时,最佳做法不是继续在原卡上修复,而是将当前系统整体迁移到一张健康的新存储介质。 本文记录了一次真实的灾难恢复流程:在原 64GB SD 卡发生 ext4 元数据错误后,将系统无重装迁移到一张 8GB 新 SD 卡,并保证系统可以从新卡稳定启动。 问题背景 系统在一次强制断电后启动失败,进入 initramfs,并提示: 执行 fsck 后虽然可以重新启动,但内核日志中出现: 这类错误并非单纯 journal 未回放,而是 ext4 从底层存储读到了不一致的数据,说明原 SD 卡已经出现 silent corruption(隐性数据损坏)。 此时继续在原卡上使用会导致未来随机文件损坏,因此必须迁移系统。 目标 环境 1. 对新 SD 卡重新分区 在 …

Linux 下彻底清除硬盘与 NVMe SSD 数据的方法

在日常使用中,如果我们需要报废、转让或重新利用一块硬盘,彻底清除数据 是非常重要的一步。单纯的删除文件或重新分区并不会真正抹掉数据,仍可能被恢复工具找回。本文记录在 Linux 下对一块 机械硬盘(/dev/sda) 和一块 NVMe SSD(/dev/nvme0n1) 进行彻底清理的过程。 为什么要彻底清除? 一、清理机械硬盘(/dev/sda) 对于机械硬盘,最常见的方式就是用 dd 或 shred 将整个盘覆盖。 方法 1:用 dd 写满 0 最终磁盘会被完全写满 0,所有数据被覆盖。 方法 2:用 shred 多次覆盖(更彻底) 这种方式比单次写 0 更难恢复,但耗时也更长。 二、清理 NVMe SSD(/dev/nvme0n1) SSD 与机械硬盘不同,出于磨损均衡和 Flash 管理的原因,单纯的写零未必能保证彻底覆盖。NVMe 盘推荐使用固件自带的 安全擦除指令。 使用 NVMe Secure Erase 安装 nvme-cli 工具: 执行安全擦除: 此方法速度极快(通常几秒钟),效果等同于恢复出厂,所有数据不可恢复。 三、执行结果 清理完成后,可以用以下命令确认: …

在 Proxmox VE 中安装 Windows 11 时遇到的 CPU 指令集检测问题及解决方案

在虚拟化环境中部署 Windows 11 时,常常会遇到安装程序提示 CPU 不支持必要的指令集 的情况。即便宿主机 CPU 本身功能完备,如果虚拟化配置不当,虚拟机依然会误报缺少指令集,从而阻碍安装。本文记录一次在 Proxmox VE (PVE) 环境中解决此类问题的过程。 问题背景 在使用 Rufus 制作的 Windows 11 安装 U 盘启动虚拟机时,安装程序提示 缺少 SSE4.2 和 POPCNT 指令。然而,宿主机搭载的 Xeon E5-2695 v2 处理器基于 Ivy Bridge-EP 架构,本身完全支持 SSE4.2、POPCNT 以及 AVX 等现代指令集。说明问题并非源自硬件,而是虚拟化配置导致。 原因分析 Proxmox VE 在创建虚拟机时,默认 CPU 类型往往是 kvm64。该配置出于兼容性考虑,只暴露最基本的 x86 指令集(类似于 SSE2 级别),从而屏蔽了宿主机 CPU …

在 Proxmox VE 中通过反向代理连接 Proxmox Backup Server 的实践

在实际环境中,Proxmox Backup Server(PBS)往往部署在内网环境,无法直接被公网访问。为了方便远程管理和使用,可以通过反向代理(如 Nginx、Caddy、Traefik 等)将内网 PBS 暴露到公网,并使用自定义域名进行访问。在 Proxmox VE(PVE)中添加 PBS 存储时,可能会遇到 证书指纹验证失败 的问题。本文记录了相关原因和解决方案。 问题背景 在 PVE Web 界面添加 PBS 时,需要填写以下参数: 如果 PBS 运行在内网,但 PVE 通过反向代理域名(公网 443 端口)进行访问,那么 Fingerprint 验证可能会失败。错误信息大致如下: 问题原因 PVE 在连接 PBS 时会校验证书指纹,防止中间人攻击。 由于返回的证书不同,Fingerprint 不一致,导致验证失败。 解决方案 方法一:使用反向代理证书的 Fingerprint ✅ 既然 PVE 通过反向代理访问 PBS,那么就需要使用 反向代理证书的 SHA-256 指纹。 操作步骤: 这样 PVE …

在 Proxmox VE 中安装 Windows XP 的完整步骤

Windows XP 已经发布二十多年,虽然早已停止支持,但在某些场景下依然需要使用,例如运行老旧软件或测试环境。本文将介绍如何在 Proxmox VE (PVE) 虚拟化环境中安装 Windows XP,并解决常见的兼容性问题。 一、准备工作 二、创建虚拟机 完成后,点击 Finish。 三、安装系统 四、驱动与优化 五、注意事项 六、命令行创建方式(可选) 如果习惯命令行,可以直接使用以下命令快速创建 VM(假设 ISO 已上传到 /var/lib/vz/template/iso/): 这样即可通过 Web 界面连接并安装 XP。 总结 在 PVE 中安装 Windows XP 的关键点是选择 SeaBIOS + i440fx + IDE 磁盘 + E1000 网卡。这些设置能保证 XP 正常运行,避免安装过程中的蓝屏或驱动问题。完成安装后,XP 可用于老软件兼容性测试,或作为怀旧系统体验。

Proxmox Backup Server (PBS) 使用独立磁盘作为 Datastore 并实现灾难恢复

在部署 Proxmox Backup Server (PBS) 时,一个常见的需求是:将备份数据存储在独立的磁盘上(如 USB 磁盘)。这样即使系统盘损坏或需要更换设备,只要数据盘还在,就能快速恢复所有备份。本文将介绍完整的操作流程,包括挂载磁盘、配置 PBS,以及灾难恢复的方法。 背景与问题 在 PBS 的 Web 界面中新建 datastore 时,系统会要求目标目录必须为空,否则会提示: 然而实际使用场景中,数据盘里往往已经有 PBS 生成的备份文件,我们需要的是“导入”而不是“清空”。解决方法是:手动修改 PBS 配置文件,让 PBS 直接识别已有的目录。 步骤 1:确认磁盘与文件系统 首先确认磁盘设备和文件系统类型: 示例输出(已格式化为 ext4): 步骤 2:挂载磁盘 确认挂载成功。 步骤 3:手动配置 PBS Datastore 因为 Web 界面不允许添加非空目录,我们需要直接修改 PBS 配置文件。 说明: 步骤 4:验证结果 进入 PBS Web 界面 → Datastore,即可看到新添加的 …

使用 journalctl 实时查看 Linux 服务日志

在 Linux 系统中,实时查看由 systemd 管理的服务日志是日常运维中的基础操作。以下内容以一个通用服务名(如 example_server.service)为例,介绍如何使用 journalctl 命令查看服务的运行日志。 实时查看服务日志 使用以下命令可以实时追踪某个 systemd 服务的日志输出: 查看最近日志并持续追踪 结合 -n 参数可以查看最近若干条日志并继续实时输出: 查看失败日志的详细信息 当服务启动失败或出现异常时,可以使用以下命令获取详细日志说明: 总结 借助 journalctl,可以便捷地监控 systemd 服务的运行状态。无论是排查故障,还是验证启动行为,该命令都是系统管理中的关键工具。