UiPath Documentation
automation-suite
2.2510
true
Linux 版 Automation Suite 安装指南
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

由于 Rancher 和 etcd 磁盘装载顺序不正确,重新启动后集群数据似乎丢失

在 Linux 上的 Automation Suite 上重新启动后,还原隐藏的 etcd 数据并更正 Rancher 和 etcd 磁盘装载顺序。

描述​

在多磁盘安装中,在 /var/lib/rancher/rke2/server/db 装载的专用 etcd 磁盘必须先装载其父目录 /var/lib/rancher 之后。如果装载顺序相反,以便将 /var/lib/rancher 装载在已装载的 etcd 磁盘上,则 etcd 数据将隐藏在 /var/lib/rancher 装载的下方。

重新触发此不正确装载顺序的重新启动会使 RKE2 服务器节点似乎丢失所有持久卷、持久卷声明和应用程序,即使基础 etcd 数据仍存在于磁盘上。

从 Automation Suite 2.2510.4 开始,uipathctl rke2 prereq run 命令用于检查此条件。要运行检查,请使用以下命令:

./bin/uipathctl rke2 prereq run cluster_config.json --versions ./versions/helm-charts.json --log-level=debug --included disk --node-type server -v
./bin/uipathctl rke2 prereq run cluster_config.json --versions ./versions/helm-charts.json --log-level=debug --included disk --node-type server -v

如果装载顺序不正确,检查将失败,并显示以下错误:

❌ [RKE2_DISK]
   ❌ [Rancher_Etcd_Mount_Order] '/var/lib/rancher/rke2/server/db' is not mounted. Configure the cluster disk (--cluster-disk-name) before continuing, or if both disks are already mounted, do the data migration if required, unmount and remount (or reboot) so '/var/lib/rancher' is mounted before '/var/lib/rancher/rke2/server/db'.
❌ [RKE2_DISK]
   ❌ [Rancher_Etcd_Mount_Order] '/var/lib/rancher/rke2/server/db' is not mounted. Configure the cluster disk (--cluster-disk-name) before continuing, or if both disks are already mounted, do the data migration if required, unmount and remount (or reboot) so '/var/lib/rancher' is mounted before '/var/lib/rancher/rke2/server/db'.

在早期版本上,或者您不想运行完整的先决条件检查,请直接验证装载顺序:

stat -c '%n -> %D' /var/lib/rancher/ /var/lib/rancher/rke2/server/db /
stat -c '%n -> %D' /var/lib/rancher/ /var/lib/rancher/rke2/server/db /

如果设备 ID 并非全部不同,则 etcd 磁盘不会装载到其预期路径。

解决方案​

重要提示:

对于多节点集群,请一次将以下步骤应用于一个服务器节点,并确认节点运行正常,然后再转到下一个节点。开始之前,请备份集群并将其置于维护模式。以根用户身份 (sudo -i) 运行所有命令。

要修复装载顺序并还原隐藏的 etcd 数据,请执行以下步骤:

  1. 停止 Node Drain 和 RKE2 服务器服务,然后卸载两条路径:

    systemctl stop node-drain.service
    systemctl stop rke2-server
    rke2-killall.sh
    umount /var/lib/rancher
    umount /var/lib/rancher/rke2/server/db
    systemctl stop node-drain.service
    systemctl stop rke2-server
    rke2-killall.sh
    umount /var/lib/rancher
    umount /var/lib/rancher/rke2/server/db
    
  2. 仅装载父 /var/lib/rancher 卷:

    RANCHER_UUID=$(blkid -o value -s UUID /dev/uipathvg/rancherlv)
    mount -t xfs -o defaults,nofail UUID="$RANCHER_UUID" /var/lib/rancher
    RANCHER_UUID=$(blkid -o value -s UUID /dev/uipathvg/rancherlv)
    mount -t xfs -o defaults,nofail UUID="$RANCHER_UUID" /var/lib/rancher
    
  3. 将 etcd 磁盘装载到临时位置,因此隐藏的数据将公开,而不是再次被覆盖:

    mkdir -p /mnt/tmp_db
    ETCD_UUID=$(blkid -o value -s UUID /dev/uipathetcdvg/etcdlv)
    mount -t xfs -o defaults,nofail UUID="$ETCD_UUID" /mnt/tmp_db
    mkdir -p /mnt/tmp_db
    ETCD_UUID=$(blkid -o value -s UUID /dev/uipathetcdvg/etcdlv)
    mount -t xfs -o defaults,nofail UUID="$ETCD_UUID" /mnt/tmp_db
    
  4. 将隐藏的 etcd 数据复制到 etcd 磁盘:

    cp -ax /var/lib/rancher/rke2/server/db/. /mnt/tmp_db/
    cp -ax /var/lib/rancher/rke2/server/db/. /mnt/tmp_db/
    
  5. 卸载临时位置,清除父磁盘中的过时数据,然后在正确的嵌套路径装载 etcd 磁盘:

    umount /mnt/tmp_db
    rmdir /mnt/tmp_db
    find /var/lib/rancher/rke2/server/db -mindepth 1 -delete
    mount -t xfs -o defaults,nofail UUID="$ETCD_UUID" /var/lib/rancher/rke2/server/db
    umount /mnt/tmp_db
    rmdir /mnt/tmp_db
    find /var/lib/rancher/rke2/server/db -mindepth 1 -delete
    mount -t xfs -o defaults,nofail UUID="$ETCD_UUID" /var/lib/rancher/rke2/server/db
    
  6. 更新 /etc/fstab,以便装载顺序在重新启动后保持不变。父装载 (/var/lib/rancher) 必须在嵌套装载 (/var/lib/rancher/rke2/server/db) 之前声明:

    # uipath-rancher
    UUID=<rancher-disk-uuid>    /var/lib/rancher    xfs    defaults,nofail    0    0
    # uipath-etcd
    UUID=<etcd-disk-uuid>    /var/lib/rancher/rke2/server/db    xfs    defaults,nofail    0    0
    # uipath-rancher
    UUID=<rancher-disk-uuid>    /var/lib/rancher    xfs    defaults,nofail    0    0
    # uipath-etcd
    UUID=<etcd-disk-uuid>    /var/lib/rancher/rke2/server/db    xfs    defaults,nofail    0    0
    

    在重新启动之前,请验证两条路径是否正确装载:

    mountpoint /var/lib/rancher
    mountpoint /var/lib/rancher/rke2/server/db
    mountpoint /var/lib/rancher
    mountpoint /var/lib/rancher/rke2/server/db
    
  7. 验证装载顺序并重新启动集群服务:

    df -h | grep rancher
    systemctl start rke2-server
    systemctl start node-uncordon
    df -h | grep rancher
    systemctl start rke2-server
    systemctl start node-uncordon
    
  • 描述​
  • 解决方案​

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新