tgtd服务启动全攻略,三步解决 Failed to start 报错

2025-07-23 0

上周深夜收到运维同事的求救:“tgtd死活起不来,存储池瘫了!”——这场景让我想起自己第一次部署iSCSI时,对着屏幕跳红的“Job failed”干瞪眼的狼狈样。​​tgtd服务启动失败看似小问题,背后却藏着Linux存储管理的三大暗雷​​。

tgtd服务启动全攻略,三步解决 Failed to start 报错​为什么你的tgtd总在报错?​

根据我处理过的案例,90%的启动失败逃不过这三类坑:

  1. ​权限幽灵​​:

    明明用root执行systemctl start tgtd,日志却报“Permission denied”。去年某金融客户就栽在这儿——​​SELinux没关​​!临时救急用setenforce 0,但长期方案得改/etc/selinux/config。更隐蔽的是​​/var/lib/tgtd目录属主错误​​,用chown -R tgtd:tgtd才搞定。

  2. ​端口绑架犯​​:

    iSCSI默认端口3260常被其他服务占用。有回客户机器上的Docker容器偷偷绑定3260,netstat -tulnp | grep 3260揪出元凶后,要么改tgtd端口(/etc/tgt/targets.confport 3261),要么停掉占用的服务。

  3. ​配置文件埋雷​​:

    targets.conf里手滑多写个>符号?完了,tgtd直接拒绝启动。曾见过新手把写成,系统居然不报错,只是默默宕着…

​救命三步法(附诊断命令)​

遇到启动失败别慌,按这个顺序排查:

bash复制
# 1. 查日志定位凶手
journalctl -u tgtd -f  # 实时跟踪日志

# 2. 检查依赖项
systemctl status iscsi-initiator  # 确认initiator状态

# 3. 强制重载配置
tgt-admin --update ALL  # 热更新配置文件

​高级技巧:避开编译坑​

源码安装时,./configure漏装​​libibverbs-dev​​会导致后台崩溃。去年给某云厂商做迁移,发现他们居然缺这个包!解决方案:

bash复制
apt install librdmacm-dev libibverbs-dev  # Ubuntu系
yum install rdma-core-devel             # CentOS系

再执行make才能绕过这个天坑。

​最容易被忽略的“锁文件”​

突然断电可能导致/var/lock/tgtd.lock残留,症状是启动超时无响应。用rm -f /var/lock/tgtd*清锁,比重启服务器省半小时——这个偏方救过我的KPI!

说真的,tgtd就像个倔老头,配置差毫厘就罢工。但按这套流程走下来,你会发现它其实讲道理。下次遇到报错,建议先泡杯咖啡冷静下——毕竟存储崩了的压力,我懂!

​附赠彩蛋​​:用tgtadm --op show --mode system验证服务状态时,若看到State: ready却连不上,八成是​​防火墙没放行3260端口​​,运维人懂的……

相关文章

每日兼职漫画?哪里有?怎么样?
在YouTube上如何赚钱?有哪些方法可以让你在YouTube上盈利?
chiwawa歌词中文翻译,魔性旋律背后的浪漫故事全解析
Keepbit加密市场情报为何如此重要?使用Keepbit的5大理由是什么?
总统每小时赚多少钱?时薪又是多少?
ETF投资是什么?如何进行ETF投资?