深信服 HCI 外置存储出现数据库重用
这篇文章记录深信服 HCI 使用外置存储时,出现“数据库重用”或 ResuedBlock 异常时的处理思路。适用场景不仅限于某一种存储协议,在 FC、iSCSI 以及部分 600R5 版本环境中都可能遇到类似问题。
问题说明
当外置存储出现数据块重用或相关一致性异常时,业务层面可能表现为虚拟机异常、存储状态异常,甚至影响后续挂载和访问。

处理步骤
1. 先停业务
先把故障存储上的所有虚拟机全部关机,包括运行在上面的网络设备虚拟机。
2. 进入 asv-c 容器并停止自动挂载服务
需要先停掉 vtpstatd,避免服务自动重新挂载目标存储。
sfd_clu_hosts_do.sh "/sf/etc/init.d/vtpstatd stop"
sfd_clu_hosts_do.sh 13. 卸载故障存储
先查看具体挂载点:
mount -l再在各主机上卸载对应存储:
sfd_clu_hosts_do.sh "umount /sf/data/33bbbbd5bb89726a7d36784ab0dcf902"
sfd_clu_hosts_do.sh 14. 确认是否已经完全卸载
sfd_clu_hosts_do.sh "mount | grep 33bbbbd5bb89726a7d36784ab0dcf902"
sfd_clu_hosts_do.sh 1确认没有输出后,再继续后面的检查。
5. 检查存储状态
sffsck -C /dev/mapper/xxxxxxxxxx文中的说明是,这一步检查时不需要再额外做 umount。
6. 检查 ResuedBlock
重点确认 ResuedBlock=0 是否成立。
- 如果是
0,说明当前没有数据块重用,可以先不处理。 - 如果不是
0,就继续执行修复。
修复命令:
sffsck -a -f /dev/mapper/xxxxx修复完成后,再重新检查一次,确认重用块计数已经恢复正常。
7. 拉起 vtpstatd
sfd_clu_hosts_do.sh "/sf/etc/init.d/vtpstatd start"8. 启动虚拟机并检查业务
确认存储状态恢复后,再把虚拟机启动起来,验证业务是否正常。
常见补充问题
外置存储挂载的 ISO 导致 umount 失败
如果在卸载过程中失败,一个常见原因是虚拟机还挂着外置存储上的 ISO。
这时可以先查占用:
lsof | grep xxx
必要时可以结合循环脚本持续检查占用状态。

补充说明
如果检测到数据块重用,建议优先把重用问题处理完,再继续做后续步骤。文中的说明也提到,这部分可以参考深信服官方知识库中的对应案例。
参考:
https://support.sangfor.com.cn/cases/list?product_id=33&type=1&category_id=17538