从环境中移除大量主机后,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
要解决此问题,请执行以下操作:
- 运行以下命令,停止 hbr 服务:
service hbrsrv stop
- 运行以下命令,备份数据库:
cp /etc/vmware/hbrsrv.54.db /etc/vmware/hbrsrv.54.db.bak
- 运行以下 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 以逗号分隔。
- 使用文本编辑器打开 /tmp/addresses.txt 文件。
- 运行以下命令,移除逗号:
:%s;,;\r;g
- 运行以下命令,确定哪些 IP 执行以及哪些未执行 ping:
nohup cat /tmp/addresses.txt | xargs -n1 ping -c 1 > /tmp/pings.txt
- 运行以下命令,确定无效 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
- 运行以下命令,确定正常 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
- 运行以下命令,测试正常 IP:
cat /tmp/goodips.txt | xargs -n1 ping -c 1
- 运行以下命令,测试无效 IP:
cat /tmp/badips.txt | xargs -n1 ping -c 1
- 运行以下命令,了解无效的 IP 数:
cat /tmp/badips.txt | wc
- 运行以下命令,准备 SQL 语句:
cp /tmp/badips.txt /tmp/sqlstatement.txt
- 编辑以下语句:
vi /tmp/sqlstatement.txt
- 运行以下命令,在 IP 两侧添加引号和百分比号:
:%s/^\(.*\)$/"%\1%"'/
- 在每行的开头添加 SELECT 语句:
例如:
:%s!^!sqlite3 /etc/vmware/hbrsrv.54.db 'SELECT addresses FROM HostInfo WHERE addresses LIKE !
- 保存文件:
:wq
- 使 SQL 语句可执行:
chmod +x /tmp/sqlstatement.txt
- 运行以下查询:
/tmp/sqlstatement.txt
应返回包含的无效 IP 类似于步骤 1 的所有字段。
- 运行以下命令,复制到新文件:
cp /tmp/sqlstatement.txt /tmp/deletesql.txt
- 使用以下命令,编辑新文件:
vi /tmp/deletesql.txt
- 将 SELECT 替换为 DELETE:
:%s;SELECT addresses;DELETE FROM;g
- 保存文件:
:wq
- 执行 deletesql.txt 文件:
chmod +x /tmp/deletesql.txt
- 执行:
/tmp/deletesql.txt
- 验证:
/tmp/sqlstatement.txt
注意:输出应不包含任何结果。
- 启动 hbr 服务。
Feedback
thumb_up
Yes
thumb_down
No