EL7平台BeeGFS 7.1.5 TargetID重复及Buddy Mirror故障求助
BeeGFS 7.1.5 Buddy Mirror故障恢复方案
故障场景
- 环境:EL7系统,BeeGFS 7.1.5
- 核心问题:TargetID 13离线恢复后Buddy Mirror异常,出现Target ID漂移、状态变更失败、镜像组移除通信错误等问题:
- 执行
beegfs-ctl --nodetype=storage --setstate --state=good --force --targetid=13报错:Node did not accept state change. Error: Unknown storage target - Target列表中原13的位置出现新ID 16,无法换回原ID
beegfs-ctl --removetarget 13因Target属于Buddy Mirror组被终止beegfs-ctl --removemirrorgroup --mirrorgroupid=7 --nodetype=storage --dry-run报错:Could not remove buddy group: Communication errorbeegfs-df显示Target 13为emergency状态、容量0,同时报错[ERROR from beegfs-storage n13.mintrop.usp.br [ID: 13]: Unknown storage target]
- 执行
恢复步骤
1. 清理管理节点上异常Target 13的元数据
Target 13的元数据已出现混乱,需强制清理管理节点的残留记录:
- 登录运行
beegfs-meta的管理节点,停止元数据服务:systemctl stop beegfs-meta - 进入元数据存储目录的
targets子目录(默认路径为/mnt/beegfs_meta/targets,请根据实际配置调整):cd /mnt/beegfs_meta/targets - 删除Target 13相关的所有文件/目录:
rm -rf ./target_13* - 重启元数据服务:
systemctl start beegfs-meta
2. 修复存储节点的Target ID配置与服务
针对原Target 13所在的存储节点(n13.mintrop.usp.br),重置Target配置:
- 登录该存储节点,停止
beegfs-storage服务:systemctl stop beegfs-storage - 修改存储节点配置文件(默认
/etc/beegfs/beegfs-storage.conf),将storeTargetID参数值改回13(若当前为16):storeTargetID = 13 - 检查Target数据目录(如
/mnt/beegfs_target13),若数据已损坏,可备份后清空(需确认Buddy镜像的另一Target有完整副本):mv /mnt/beegfs_target13 /mnt/beegfs_target13_bak mkdir /mnt/beegfs_target13 chown beegfs:beegfs /mnt/beegfs_target13 - 重启存储服务:
systemctl start beegfs-storage
3. 移除异常镜像组并重建
- 回到管理节点,执行镜像组移除命令(去掉
--dry-run参数):beegfs-ctl --removemirrorgroup --mirrorgroupid=7 --nodetype=storage - 确认Target 13状态恢复为
good:beegfs-ctl --listtargets - 重新创建镜像组7(替换
<另一TargetID>为原镜像组中正常的Target ID):beegfs-ctl --addmirrorgroup --mirrorgroupid=7 --targetid=<另一TargetID>,13
4. 验证恢复结果
执行beegfs-df检查所有Target状态,确认无报错、容量显示正常:
beegfs-df
注意事项
- 操作前务必备份元数据和关键业务数据,防止数据丢失
- BeeGFS 7.1.5版本较旧,建议后续升级至官方推荐的稳定版本,减少此类兼容性问题
- 若Buddy镜像的另一Target也存在数据损坏,需先从备份恢复数据再执行上述步骤
内容的提问来源于stack exchange,提问作者Jaqueline Botelho
相关产品推荐
相关产品推荐

