Ubuntu 22.04.3 LTS服务器启动时iSCSI连接失败/超时,无法挂载NetApp LUN进入紧急模式
Ubuntu 22.04.3 LTS服务器启动时iSCSI连接失败/超时,无法挂载NetApp LUN进入紧急模式
看起来你碰到的是典型的systemd启动顺序踩坑问题——系统还没等网络和iSCSI服务完全就绪,就急着去挂载NetApp的LUN,再加上iscsid daemon启动滞后,直接触发了紧急模式。结合你贴的日志细节,我给你几个针对性的解决步骤:
1. 调整fstab挂载参数,让系统等网络就绪再挂载
iSCSI属于网络存储设备,必须告诉systemd这个挂载依赖网络,还要延长等待超时时间。编辑你的/etc/fstab,找到对应LUN的那一行,修改成类似这样:
UUID=5e252ca3-9f19-4a9c-946d-4cd4e02d29ff /mnt/veeam-hr01 ext4 defaults,_netdev,x-systemd.device-timeout=120 0 0
_netdev:告诉systemd这个设备是网络依赖的,必须等网络目标就绪后再尝试挂载x-systemd.device-timeout=120:把设备等待超时从默认的90秒延长到120秒,给iSCSI足够的登录时间
2. 修复iscsid与iscsi-initiator的启动顺序
从日志里的could not connect to iscsid可以看出来,iscsiadm尝试登录目标的时候,iscsid daemon还没启动起来。我们要强制让iscsid在iscsi-initiator之前启动:
- 执行
sudo systemctl edit iscsid.service,在弹出的编辑器里添加以下内容:[Unit] Before=iscsi-initiator.service - 保存退出后,重新加载systemd配置:
sudo systemctl daemon-reload - 重启相关服务生效:
sudo systemctl restart iscsid iscsi-initiator.service
3. 调整multipathd与iSCSI服务的依赖关系
因为你用了multipath,得确保multipathd在iSCSI完全登录、设备就绪后再开始工作,避免提前扫描不到设备:
- 执行
sudo systemctl edit multipathd.service,添加以下内容:[Unit] After=iscsi-initiator.service Wants=iscsi-initiator.service - 同样重新加载配置并重启服务:
sudo systemctl daemon-reload && sudo systemctl restart multipathd
4. 验证iSCSI自动登录配置
确保所有NetApp的iSCSI目标都设置了自动登录:
- 执行
sudo iscsiadm -m node -L all,强制所有节点设置为自动登录 - 检查
/etc/iscsi/nodes下对应目标的配置文件,确认node.startup的值是automatic
5. (可选)延长systemd全局启动超时
如果你的存储或网络环境响应确实偏慢,可以调整systemd的全局启动超时:
- 编辑
/etc/systemd/system.conf,找到DefaultTimeoutStartSec这一行,改成DefaultTimeoutStartSec=180s - 保存后执行
sudo systemctl daemon-reload
另外,你还可以做几个额外排查:
- 检查NetApp的iSCSI门户配置,确保两个路径都正常可达
- 升级open-iscsi包到最新版本:
sudo apt update && sudo apt install --reinstall open-iscsi - 查看
/var/log/iscsi/iscsid.log,有没有更详细的登录失败细节
备注:内容来源于stack exchange,提问作者Christian Herzyk
相关产品推荐
相关产品推荐

