从环境中移除大量主机后,vSphere Replication 需要 24 小时才能启动
search cancel

从环境中移除大量主机后,vSphere Replication 需要 24 小时才能启动

book

Article ID: 344580

calendar_today

Updated On:

Products

VMware Live Recovery VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 vSphere Replication takes 24 hours to start after removing a large number of hosts from the environment 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

启动 vSphere Replication 设备后,hbr 服务在端口 8123 上持续 24 小时未启动。

Environment

VMware vSphere Replication 5.6.x
VMware vSphere Replication 6.1.x
VMware vSphere Replication 5.1.x
VMware vSphere Replication 5.5.x
VMware vSphere Replication 5.8.x
VMware vSphere Replication 6.0.x

Cause

vSphere Replication 会存储主机的 IP 列表,并通过极其持久的方法与每个 IP 连接。在某些情况下,如果更改的主机超过 100 个且不再可见,hbr 服务需要 24 小时才能启动。

Resolution


要解决此问题,请执行以下操作:
  1. 运行以下命令,停止 hbr 服务:

    service hbrsrv stop
     
  2. 运行以下命令,备份数据库:

    cp /etc/vmware/hbrsrv.54.db /etc/vmware/hbrsrv.54.db.bak
     
  3. 运行以下 IP 查询:

    sqlite3 /etc/vmware/hbrsrv.54.db 'SELECT addresses FROM HostInfo' > /tmp/addresses.txt

    您会看到类似以下内容的输出:

    0.90.6.123,10.90.36.139
    10.90.6.57,10.90.36.77
    10.90.6.53,10.90.36.73
    10.90.6.8,10.90.36.28
    10.90.6.60,10.90.36.80
    10.90.6.30,10.90.36.50
    10.90.6.66,10.90.36.86
    10.90.6.114,10.90.36.130


    注意:IP 以逗号分隔。
     
  4. 使用文本编辑器打开 /tmp/addresses.txt 文件。
  5. 运行以下命令,移除逗号:

    :%s;,;\r;g
     
  6. 运行以下命令,确定哪些 IP 执行以及哪些未执行 ping:

    nohup cat /tmp/addresses.txt | xargs -n1 ping -c 1 > /tmp/pings.txt
     
  7. 运行以下命令,确定无效 IP:

    cat /tmp/pings.txt | grep -B 3 "100%" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | uniq > /tmp/badips.txt
     
  8. 运行以下命令,确定正常 IP:

    cat /tmp/pings.txt | grep -B 3 " 0%" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | uniq > /tmp/goodips.txt
     
  9. 运行以下命令,测试正常 IP:

    cat /tmp/goodips.txt | xargs -n1 ping -c 1
     
  10. 运行以下命令,测试无效 IP:

    cat /tmp/badips.txt | xargs -n1 ping -c 1
     
  11. 运行以下命令,了解无效的 IP 数:

    cat /tmp/badips.txt | wc
     
  12. 运行以下命令,准备 SQL 语句:

    cp /tmp/badips.txt /tmp/sqlstatement.txt
     
  13. 编辑以下语句:

    vi /tmp/sqlstatement.txt
     
  14. 运行以下命令,在 IP 两侧添加引号和百分比号:

    :%s/^\(.*\)$/"%\1%"'/
     
  15. 在每行的开头添加 SELECT 语句:

    例如:

    :%s!^!sqlite3 /etc/vmware/hbrsrv.54.db 'SELECT addresses FROM HostInfo WHERE addresses LIKE !
     
  16. 保存文件:

    :wq
     
  17. 使 SQL 语句可执行:

    chmod +x /tmp/sqlstatement.txt
     
  18. 运行以下查询:

    /tmp/sqlstatement.txt

    应返回包含的无效 IP 类似于步骤 1 的所有字段。
     
  19. 运行以下命令,复制到新文件:

    cp /tmp/sqlstatement.txt /tmp/deletesql.txt
     
  20. 使用以下命令,编辑新文件:

    vi /tmp/deletesql.txt
     
  21. 将 SELECT 替换为 DELETE:

    :%s;SELECT addresses;DELETE FROM;g
     
  22. 保存文件:

    :wq
     
  23. 执行 deletesql.txt 文件: 

    chmod +x /tmp/deletesql.txt
     
  24. 执行:

    /tmp/deletesql.txt
     
  25. 验证:

    /tmp/sqlstatement.txt

    注意:输出应不包含任何结果。
     
  26. 启动 hbr 服务。


Additional Information

vSphere Replication takes 24 hours to start after removing a large number of hosts from the environment