深信服 HCI 检查副本是否一致
这篇文章用于记录深信服 HCI 环境中检查副本一致性的常用方法。不同版本的命令略有差异,排查时先确认版本,再选择对应方案执行。
常规检查
6.8.0 及以上版本
先进入 VS 容器,再执行副本一致性检查命令:
container_exec -n vs-cp-manager
for b in $(gluster v i | grep host- | awk -F: '{print $1}' | grep -Eo '[0-9]+'); do vs_rpc_tool --cmd check --brickno "$b"; done命令执行完成后,如果回显为 0,说明副本一致;如果返回其他结果,则表示副本一致性存在异常。

5.8.6 之前版本
在虚拟存储主机上执行以下命令:
vs_cluster_cmd.sh e "/sf/vs/bin/vs_localhost_checkok.js ;echo \$?"如果检测结果不为 0,则表示副本状态异常。

5.8.6 及之后版本
在任意主机上执行以下命令即可检查主机副本一致性:
for b in $(gluster v i | grep host- | awk -F: '{print $1}' | grep -Eo '[0-9]+'); do vs_rpc_tool --cmd check --brickno "$b"; done
排除故障主机后检查
如果环境中有主机或磁盘离线,可以先排除故障主机,再检查其余副本是否完整。
for b in $(gluster v i | grep 改成故障主机名 | awk -F: '{print $1}' | grep -Eo '[0-9]+'); do vs_rpc_tool --cmd check --brickno $b --exclude yes; done其中,故障主机名可以通过 vtpclustat 查看。

排除故障磁盘后检查
当环境中有单块磁盘离线时,需要确认除故障磁盘之外的其他副本是否仍然正常。
先查看所有 brick 信息:
vs_rpc_tool -c clnt
再根据实际磁盘 ID 执行排除检查,例如:
vs_rpc_tool --cmd check --brickno 18 --exclude yes其中 18 需要替换为对应故障磁盘的实际 ID。
