ISCSI timeout configuration

24.16.3. iSCSI Root
When accessing the root partition directly through an iSCSI disk, the iSCSI timers should be set so that iSCSI layer has several chances to try to reestablish a path/session. In addition, commands should not be quickly re-queued to the SCSI layer. This is the opposite of what should be done when dm-multipath is implemented.
To start with, NOP-Outs should be disabled. You can do this by setting both NOP-Out interval and timeout to zero. To set this, open /etc/iscsi/iscsid.conf and edit as follows:
node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0
In line with this, replacement_timeout should be set to a high number. This will instruct the system to wait a long time for a path/session to reestablish itself. To adjust replacement_timeout, open /etc/iscsi/iscsid.conf and edit the following line:
node.session.timeo.replacement_timeout = replacement_timeout
After configuring /etc/iscsi/iscsid.conf, you must perform a re-discovery of the affected storage. This will allow the system to load and use any new values in /etc/iscsi/iscsid.conf. For more information on how to discover iSCSI devices, refer to Section 24.12, “ Scanning iSCSI Interconnects”.


Configuring Timeouts for a Specific Session
You can also configure timeouts for a specific session and make them non-persistent (instead of using/etc/iscsi/iscsid.conf). To do so, run the following command (replace the variables accordingly):
# iscsiadm -m node -T target_name -p target_IP:port -o update -n node.session.timeo.replacement_timeout -v $timeout_value






24.16.3. iSCSI Root
当直接通过一个ISCSI磁盘访问根分区的时候,iSCSI计时器应该被设置,以便iSCSI层有足够的时间重建会话/路径。此外,命令不应过快在SCSI层重排。这个是对立的,当实施多路径的时候应该被完成。
首先,NOP-Outs应该被禁用。你可以通过NOP-Out间隔和超时设置为零。设置这个打开/etc/iscsi/iscsid.conf编辑修改参数如下:
node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0
以上修改之后,replacement_timeout应该设置为高的数字。这将指示系统等很长时间让会话/路径重建自己的连接。调整replacement_timeout,打开/etc/iscsi/iscsid.conf编辑以下行:
node.session.timeo.replacement_timeout = 替换的时间(默认是120,我改为2000)
在配置/etc/iscsi/iscsid.config之后,你必须执重新读取配置命令,去实时生效。让系统使用新配置的数值。

为一个单独的会话设置超时:
你还可以为特定的会话设置超时,让他们非持久性(而不是使用/ etc / iscsi / iscsid.conf的配置)。为此,运行以下命令(替换相应的变量):
# iscsiadm -m node -T target_name -p target_IP:port -o update -n node.session.timeo.replacement_timeout -v $timeout_value



service tgtd restart
service iscsi restart

service netfs restart
service iscsid restart






译自:http://blog.youkuaiyun.com/hshl1214/article/details/7624005



<think>好的,用户遇到了dracut-initqueue超时的问题,需要帮助解决。首先,我得回忆一下dracut的作用。Dracut是用于生成initramfs的工具,在系统启动时负责加载必要的驱动和模块。当出现initqueue超时,通常是因为系统在启动过程中无法找到根文件系统所在的设备,导致等待超时。 接下来,我需要考虑可能的原因。常见的包括存储驱动未正确加载、设备路径变化(比如从/dev/sda变成/dev/sdb)、UUID或标签错误、磁盘阵列或LVM配置问题,以及硬件连接问题。此外,用户可能在虚拟机环境中遇到了网络存储配置问题,比如iSCSI或NFS挂载的问题,这也会导致initqueue等待超时。 然后,思考解决方案。首先应该检查启动参数,确认root=参数是否正确,包括UUID或设备路径。如果使用UUID,需要确保与blkid显示的一致。如果设备路径变化,可能需要修改为正确的设备名。 接下来,考虑重新生成initramfs。有时候,更新系统或内核后,initramfs没有正确更新,导致缺少必要的驱动。用户需要进入救援模式,使用dracut命令重新生成,并加上--force参数覆盖旧文件。 添加驱动模块也是一个可能的解决方法。如果存储控制器驱动没有包含在initramfs中,需要手动添加。例如,对于某些硬件RAID卡,可能需要添加megaraid_sas模块。使用dracut --add-drivers模块名来更新。 检查文件系统是否正确,使用fsck进行修复。如果文件系统损坏,可能会导致无法挂载,进而超时。此外,检查/etc/fstab中的配置是否正确,避免错误的挂载点导致问题。 对于虚拟机环境,特别是像Proxmox或VMware这样的平台,检查虚拟磁盘的配置是否正确,是否使用了正确的总线类型(如SCSI或VirtIO)。如果是iSCSI或NFS存储,确认网络配置和存储连接正常。 如果以上方法都不奏效,可能需要在内核启动参数中添加rd.break或rd.shell,进入紧急shell手动排查问题,查看设备是否被正确识别,或者是否有必要的模块需要加载。 最后,用户可能需要参考相关的文档或社区资源,比如Red Hat的解决方案或者论坛讨论。例如,有些案例中提到,在Proxmox中创建虚拟网络时选择正确的隔离网络配置,可能影响存储设备的识别,需要检查虚拟机的设置是否正确[^1]。 总结下来,解决步骤大致是:检查启动参数,重新生成initramfs,添加必要驱动,检查文件系统和硬件连接,虚拟机环境配置确认,以及使用紧急shell调试。需要逐步排除可能的原因,直到找到具体问题所在。</think>针对**dracut initqueue timeout**问题,通常与系统启动时无法正确挂载根文件系统有关。以下是分步解决方案: --- ### 1. **检查根设备参数** - **现象**:系统启动时卡在`dracut-initqueue`提示符,提示`Warning: /dev/disk/by-uuid/... does not exist`。 - **解决方法**: 1. 在启动菜单中按`e`编辑内核参数,确认`root=`后的设备标识(如UUID或设备路径)是否正确。 2. 若使用UUID,检查是否与实际设备匹配: ```bash blkid /dev/sdX # 替换为实际设备名 ``` 3. 若设备路径错误(如从`/dev/sda`变为`/dev/sdb`),修改`root=/dev/sdX`为正确路径。 --- ### 2. **重新生成initramfs** - **适用场景**:内核更新或驱动缺失导致initramfs不包含必要模块。 - **步骤**: 1. 进入救援模式或Live CD环境。 2. 挂载原系统根分区: ```bash mount /dev/sdX /mnt ``` 3. 重新生成initramfs: ```bash dracut --force --verbose /boot/initramfs-$(uname -r).img $(uname -r) ``` --- ### 3. **添加缺失的驱动模块** - **适用场景**:存储控制器驱动(如RAID卡、NVMe驱动)未加载。 - **操作**: 1. 检查当前系统加载的驱动: ```bash lsmod | grep [驱动关键词] ``` 2. 手动添加驱动到initramfs: ```bash dracut --add-drivers "megaraid_sas nvme" --force ``` --- ### 4. **检查文件系统与硬件连接** - **硬件问题**:磁盘未正确连接或文件系统损坏。 - **步骤**: 1. 使用`fsck`修复文件系统: ```bash fsck -y /dev/sdX ``` 2. 检查硬盘连接(物理机)或虚拟机磁盘配置(如Proxmox/VirtualBox)。 --- ### 5. **虚拟机环境专用方案** - **现象**:虚拟机因虚拟磁盘配置错误或网络存储超时导致问题。 - **解决**: 1. 确认虚拟磁盘总线类型(如SCSI或VirtIO)与驱动匹配。 2. 若使用iSCSI/NFS,检查网络连通性及存储服务器状态。 3. 参考Proxmox配置建议:选择`Virtual network "isolated200" : isolated network`确保存储网络隔离[^1]。 --- ### 6. **调试模式定位问题** - **高级排查**: 1. 在内核参数添加`rd.break`或`rd.shell`进入紧急Shell。 2. 手动挂载根分区并检查设备: ```bash dracut:/# ls /dev/sd* dracut:/# journalctl -xb # 查看启动日志 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值