为 AWS Storage Gateway 卷网关配置 ISCSI 超时设置

为 AWS Storage Gateway 卷网关配置 ISCSI 超时设置

我有一个 EC2 实例,该实例配置为连接到使用 AWS Storage Gateway 服务配置的卷网关卷。该实例通过iSCSI 发起程序(由 APT 包提供open-iscsi)。

最近,亚马逊联系我们,提醒我们他们正在对我们的存储网关主机进行更新,这可能会导致一些停机时间。为了最大限度地降低中断风险,亚马逊建议增加用于卷网关的 iSCSI 请求队列和磁盘超时。然而,他们提供的说明关于如何执行此操作的特定内容特定于 Windows 和 RHEL。

是否有人知道配置 iSCSI 磁盘和请求超时的最佳方法,就像 Ubuntu 16.04 中的 iSCSI 启动器所使用的那样?

答案1

经过一些实验并阅读iscsiadmUbuntu 16.04 中实用程序的手册页后,我得出了以下解决方案:

对于 iSCSI 请求队列超时,我修改了以下条目/etc/iscsi/iscsid.conf,将其修改为精确值AWS 在其 RHEL 文档中建议

node.session.timeo.replacement_timeout = 600 
node.conn[0].timeo.noop_out_interval = 60
node.conn[0].timeo.noop_out_timeout = 600

为了加载这些设置,我运行以下命令来清除并重新填充 iSCSI 发现数据库:

sudo iscsiadm -m discoverydb -t sendtargets -p [GATEWAY_IP]:3260 -o delete
sudo /sbin/iscsiadm --mode discovery --type sendtargets --portal 10.79.1.4:3260

替换[GATEWAY_IP]用于连接我的存储网关主机的 IP 地址。

然后我通过运行以下命令验证更新的超时值已被提取:

sudo iscsiadm --mode node --op show

为了配置磁盘超时,我创建了一个新的 udev 规则文件,/etc/udev/rules.d/60-storage-gateway.rules其中包含 AWS 针对 RHEL 6/7 建议的相同规则:

ACTION=="add", SUBSYSTEMS=="scsi" , ATTRS{model}=="Storage Gateway", 
RUN+="/bin/sh -c 'echo 600 > /sys$$DEVPATH/timeout'"

然后我通过运行以下命令强制 udev 重新配置卷网关 iSCSI 磁盘(在我的情况下/dev/sda):

udevadm test /sys/block/sda

然后我通过运行以下命令验证新的超时值是否已正确配置:

cat /sys/block/sda/device/timeout

相关内容