PVE存储复制

作者Lin-Tech

11 月 1, 2023

pvesr命令行工具管理 Proxmox VE存储复制框架。存储复制为使用本地存储的来宾带来冗余并减少迁移时间。

它将来宾卷复制到另一个节点,以便所有数据都可用,而无需使用共享存储。复制使用快照来最大限度地减少通过网络发送的流量。因此,新数据仅在初始完全同步后增量发送。在节点发生故障的情况下,您的来宾数据在复制的节点上仍然可用。

复制以可配置的时间间隔自动完成。最小复制间隔为一分钟,最大间隔为每周一次。用于指定这些间隔的格式是 systemd日历事件的子集,请参阅 计划格式部分:

可以将来宾复制到多个目标节点,但不能两次复制到同一目标节点。

每个复制的带宽都可以受到限制,以避免存储或服务器过载。

如果来宾迁移到已复制的节点,则仅需要传输自上次复制以来的更改(所谓的增量)。这大大减少了所需的时间。如果将来宾迁移到复制目标节点,复制方向会自动切换。

例如:VM100 当前位于NodeA上并被复制到NodeB。您将其迁移到nodeB ,因此现在它会自动从nodeB复制 回nodeA

如果迁移到未复制 guest 虚拟机的节点,则必须将整个磁盘数据发送过来。迁移后,复制作业继续将此来宾复制到已配置的节点。

重要的

高可用性允许与存储复制结合使用,但在上次同步时间和节点故障时间之间可能会出现一些数据丢失。

9.1. 支持的存储类型

表 17. 存储类型
描述 插件类型 快照 稳定的

ZFS(本地)

zfspool

是的

是的

9.2. 时间表格式

复制使用日历事件来配置计划。

9.3. 错误处理

如果复制作业遇到问题,则会将其置于错误状态。在此状态下,配置的复制间隔将暂时挂起。失败的复制会以 30 分钟的间隔重复尝试。一旦成功,原始计划将再次激活。

9.3.1. 可能出现的问题

以下列表中列出了一些最常见的问题。根据您的设置,可能还有其他原因。

  • 网络不工作。

  • 复制目标存储上没有剩余可用空间。

  • 目标节点上可用的具有相同存储 ID 的存储

笔记 您始终可以使用复制日志来找出导致问题的原因。

9.3.2. 发生错误时迁移访客

如果发生严重错误,虚拟客户可能会卡在故障节点上。然后您需要再次手动将其移动到工作节点。

9.3.3. 例子

假设您有两个来宾(VM 100 和 CT 200)在节点 A 上运行并复制到节点 B。节点 A 发生故障并且无法重新联机。现在您必须手动将来宾迁移到节点 B。

  • 通过 ssh 连接到节点 B 或通过 WebUI 打开其 shell

  • 检查集群是否达到法定人数

    #pvecm状态
  • 如果您没有法定人数,我们强烈建议您先解决此问题,然后使节点再次可操作。仅当目前无法执行此操作时,您才可以使用以下命令在当前节点上强制执行仲裁:

    # pvecm 预期 1
警告 如果设置了预期投票(例如添加/删除节点、存储、虚拟来宾),请不惜一切代价避免影响集群的更改。仅使用它来让重要的来宾重新启动并运行或解决法定人数问题本身。
  • 将两个来宾配置文件从原始节点 A 移动到节点 B:

    # mv /etc/pve/nodes/A/qemu-server/100.conf /etc/pve/nodes/B/qemu-server/100.conf 
    # mv /etc/pve/nodes/A/lxc/200.conf /etc/pve/nodes/B/lxc/200.conf
  • 现在您可以再次启动来宾:

    # qm 开始 100 
    # pct 开始 200

请记住将 VMID 和节点名称替换为您各自的值。

9.4. 管理工作

截图/gui-qemu-add-replication-job.png

您可以使用 Web GUI 轻松创建、修改和删除复制作业。此外,还可以使用命令行界面 (CLI) 工具pvesr来执行此操作。

您可以在 Web GUI 中找到所有级别(数据中心、节点、虚拟客户)的复制面板。它们的不同之处在于显示的作业:所有作业、特定于节点的作业或特定于来宾的作业。

添加新作业时,您需要指定来宾(如果尚未选择)以及目标节点。如果不需要默认的全部 15 分钟,则可以设置复制 计划。您可以对复制作业施加速率限制。速率限制有助于保持存储上的负载可接受。

复制作业由集群范围内的唯一 ID 来标识。该 ID 由 VMID 和作业编号组成。仅当使用 CLI 工具时才必须手动指定此 ID。

9.5。命令行界面示例

创建一个复制作业,该作业每 5 分钟运行一次,并为 ID 为 100 的来宾创建 10 Mbps(兆字节每秒)的有限带宽。

# pvesr 创建本地作业 100-0 pve1 --schedule "*/5" --rate 10

禁用 ID 为100-0 的活动作业。

# pvesr 禁用 100-0

启用 ID 为100-0的已停用作业。

# pvesr 启用 100-0

将 ID 为100-0 的作业的计划间隔更改为每小时一次。

# pvesr update 100-0 --schedule '*/00'

作者 Lin-Tech

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注