Home

深信服 HCI 外置存储出现数据库重用

这篇文章记录深信服 HCI 使用外置存储时,出现“数据库重用”或 ResuedBlock 异常时的处理思路。适用场景不仅限于某一种存储协议,在 FCiSCSI 以及部分 600R5 版本环境中都可能遇到类似问题。

问题说明

当外置存储出现数据块重用或相关一致性异常时,业务层面可能表现为虚拟机异常、存储状态异常,甚至影响后续挂载和访问。

处理步骤

1. 先停业务

先把故障存储上的所有虚拟机全部关机,包括运行在上面的网络设备虚拟机。

2. 进入 asv-c 容器并停止自动挂载服务

需要先停掉 vtpstatd,避免服务自动重新挂载目标存储。

sfd_clu_hosts_do.sh "/sf/etc/init.d/vtpstatd stop"
sfd_clu_hosts_do.sh 1

3. 卸载故障存储

先查看具体挂载点:

mount -l

再在各主机上卸载对应存储:

sfd_clu_hosts_do.sh "umount /sf/data/33bbbbd5bb89726a7d36784ab0dcf902"
sfd_clu_hosts_do.sh 1

4. 确认是否已经完全卸载

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

网络 存储 超融合