根据您提供的图片和描述,这是一个典型的华三CAS平台单节点存储服务异常问题。其他主机正常,只有这一台CVK主机在死机重启后连接不到存储,说明问题出在该主机的本地存储服务上。
问题诊断
从错误信息可以看出:
fsmcli showpool命令尝试连接本地 127.0.0.1:20199端口
连接被拒绝,说明存储管理服务(FSM)没有正常运行
fdisk -l能看到LUN说明存储链路和映射正常,只是CAS的存储管理服务无法访问
解决方案步骤
步骤1:检查并重启存储管理服务
# 1. 检查FSM服务状态
systemctl status fsm
# 2. 如果服务停止,尝试启动
systemctl start fsm
# 3. 查看服务启动日志
journalctl -u fsm -n 50 --no-pager
# 4. 如果启动失败,检查端口占用情况
netstat -tlnp | grep 20199
lsof -i :20199
步骤2:检查相关依赖服务
# 1. 检查CAS核心服务
systemctl status cas
# 2. 检查数据库服务
systemctl status postgresql # CAS 7.0通常使用PostgreSQL
systemctl status mysql # 或MySQL
# 3. 检查消息队列服务
systemctl status rabbitmq-server
# 4. 按顺序重启相关服务(在业务低峰期操作)
systemctl restart postgresql
systemctl restart rabbitmq-server
systemctl restart fsm
systemctl restart cas
步骤3:手动修复存储连接
# 1. 查看存储连接状态
cat /var/log/cas/storage.log | tail -100
cat /var/log/fsm/fsm.log | tail -100
# 2. 尝试重新注册存储(先备份配置)
cp -r /etc/fsm/ /etc/fsm_backup_$(date +%Y%m%d)
# 3. 清除可能损坏的存储缓存
rm -f /var/run/fsm/fsm.pid
rm -f /var/lock/fsm/*
# 4. 重新加载存储驱动
modprobe -r qla2xxx # 如果是QLogic FC HBA
modprobe qla2xxx
# 或
modprobe -r lpfc # 如果是Emulex FC HBA
modprobe lpfc
步骤4:从CAS管理平台修复
登录CAS管理界面
进入 "资源" → "存储"
找到问题主机的存储池,尝试:
刷新存储池
重新挂载存储
重新扫描存储设备
如果以上无效,可以尝试:
将该主机从集群中临时移除
删除该主机的存储配置
重新添加存储配置
将主机重新加入集群
步骤5:检查硬件和驱动问题
# 1. 检查HBA卡状态(如果使用FC SAN)
cat /sys/class/fc_host/host*/port_state
cat /sys/class/fc_host/host*/speed
# 2. 检查多路径状态
multipath -ll
multipath -r
# 3. 重新扫描SCSI总线
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
# 4. 检查内核消息
dmesg | grep -i storage
dmesg | grep -i error
步骤6:深度修复(如上述步骤无效)
# 1. 停止所有相关服务
systemctl stop cas
systemctl stop fsm
# 2. 备份数据库(重要!)
pg_dump -U postgres casdb > /tmp/casdb_backup_$(date +%Y%m%d).sql
# 3. 清理并重建FSM数据库连接
su - postgres -c "psql -c \"SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'fsmdb';\""
su - postgres -c "psql -c \"DROP DATABASE fsmdb;\""
su - postgres -c "psql -c \"CREATE DATABASE fsmdb OWNER fsmuser;\""
# 4. 重新初始化FSM
fsmcli initdb
systemctl start fsm
# 5. 重新注册存储
fsmcli addpool --type=共享存储类型 --path=存储路径 --name=存储池名称
紧急恢复方案
如果业务急需恢复,可以先将虚拟机迁移到其他正常主机:
# 1. 在CAS管理平台中将该主机设置为维护模式
cvkmgr set --host=cvknode-6 --mode=maintenance
# 2. 迁移所有虚拟机到其他主机
# 通过CAS管理界面手动迁移,或使用命令行
for vm in $(cvmcli listvm --host=cvknode-6 | awk '{print $1}'); do
cvmcli migrate --vm=$vm --dsthost=其他正常主机
done
# 3. 彻底修复问题主机
预防措施
监控配置:
# 添加服务监控
crontab -e
# 添加:*/5 * * * * systemctl is-active --quiet fsm || systemctl restart fsm
定期检查:
# 创建健康检查脚本
vim /usr/local/bin/cas_health_check.sh
配置备份:
# 定期备份CAS配置
0 2 * * * tar czf /backup/cas_config_$(date +\%Y\%m\%d).tar.gz /etc/cas/ /etc/fsm/
重要注意事项
操作前务必备份:所有关键数据和配置
按顺序操作:从简到繁,避免不必要的重启
记录操作:记录每一步操作和结果
联系支持:如果问题复杂,及时联系华三技术支持(400-810-0504)
问题总结
这个问题通常是由以下原因之一引起的:
死机导致服务状态不一致
存储服务进程崩溃
数据库连接异常
配置文件损坏
建议按照上述步骤顺序排查,大多数情况下通过重启服务和清理缓存可以解决问题。如果存储池配置信息丢失,可能需要从其他正常节点同步配置或重新配置存储。
CAS 7.0 平台上一台 CVK 主机重启后无法连接存储,执行 fsmc1i showpool 提示连接 127.0.0.1:20199 被拒绝。这通常是因为管理存储池的本地服务(如 fsmd)未启动或异常导致的。虽然 fdisk -l 能看到存储映射的 LUN,但 CAS 的存储管理依赖于该服务来识别和管理存储池。
以下为排查和解决步骤:
fsmc1i 命令依赖本地 fsmd 服务(也可能是 cas-fsmd 等),该服务监听 20199 端口。请登录该 CVK 主机后台执行:
由于存储 LUN 通常通过多路径软件聚合,重启后多路径服务可能未正常聚合设备,影响 CAS 对存储的识别。执行:
failed,尝试重启多路径服务:multipath -ll 确认生成正确的多路径设备(如 mpatha)。服务启动并多路径正常后,重新执行存储池查看命令:
fsmd 服务:确认本地防火墙未阻止 20199 端口:
服务正常后,再次使用 fsmc1i showpool 查看存储池,如果正常显示,说明存储连接已恢复。同时可在 CAS 管理界面重新扫描存储或重启 CVK 的存储代理服务。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论