SC 存储客户通知:Linux 较大的 IO 大小可能会影响 iSCSI 卷的可用性

Summary: 向 Oracle Enterprise Linux 分发中引入了最近的内核更改,更改了在数据块设备上计算 IO 限制的行为。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

警告:

下面概述了这些更改。

Oracle Linux 6/7:

 

ELSA-2015-3098-Unbreakable Enterprise 内核安全和 bugfix 更新

http://linux.oracle.com/errata/ELSA-2015-3098.html

发布日期/2015-11-13

[3.8.13-100.el6uek/3.8.13-100.el7uek]

block:卸下 artifical max_hw_sectors 帽(Christoph Hellwig) [Orabug:21511611]

 

 

Oracle Linux 5:

 

ELBA-2015-3076-Unbreakable Enterprise 内核错误修复更新

http://linux.oracle.com/errata/ELBA-2015-3076.html

发布日期/2015-08-27

[2.6.39-400.260.1. el5uek]

block:卸下 artifical max_hw_sectors 帽(李先生金) [Orabug:21455630]

 

 

 

概述:

Linux 系统上存在的每个数据块设备都分配有队列目录(位于/sys/block/xxx/queue/)。此目录包含多个配置文件。这些文件的详细信息可在以下位置找到:

 

https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt

 

与此 CSTA 相关的两个参数:

 

max_hw_sectors_kb

单个数据传输中支持的最大 kb 数。

通过 SCSI 查询响应,此参数为只读并由目标存储设备提供。Storage Center 操作系统(SCOS)中的 SCSI 目标子系统当前响应零。这表示没有限制,因此服务器会将该值设置为 linux 内核版本(32MB)中允许的最大值。

 

max_sectors_kb

Block 层将允许文件系统请求的最大 kb 数。

此值为读写。此值必须小于或等于max_hw_sectors_kb值。

 

对内核2.6.39-400.260.1 el5uek、3.8.13-100. el6uek 和 3.8.13-100 中引入的 Oracle Linux 内核的更改。 el7uek 更改max_sectors_kb计算方式。在以前的内核版本中,值始终设置为 512 KB。更改后, max_sectors_kb的值被设置为max_hw_sectors_kb的值。这主要会将单个 IO 传输的最大大小从512KB 增加到 32 MB。

 

此更改暴露了 Storage Center 10Gb iSCSI 驱动程序的问题,超出容量超过 ~ 8MB 的 I/O。导致大型 IO 的服务器进程可能会挂起,或者由于大型 IO 大小,卷可能变得不可用。此外,10Gb iSCSI 驱动程序问题可能会导致控制器占用其他 Storage Center 子系统所需的内存,这可能会导致更大的影响。

 

 

 

解决办法:

为了防止出现此问题, 必须在 Linux 服务器上动态更改每个数据块设备的 max_sectors_kb。下面是连接到 Linux 系统的多路径数据块设备的命令示例:

 

#mpath1:

回显 512 >/sys/block/dm-6/queue/max_sectors_kb

回显 512 >/sys/block/sdc/queue/max_sectors_kb

回显 512 >/sys/block/sde/queue/max_sectors_kb

回显 512 >/sys/block/sdk/queue/max_sectors_kb

回显 512 >/sys/block/sdm/queue/max_sectors_kb

 

这些更改不会通过重新引导来持续进行。可以实施 init 脚本,以便在给定的服务器引导时运行,这将为所有 iSCSI 数据块设备修改此参数。请咨询 Linux 管理员或 Oracle 对每个客户环境实施此持久性的最佳方式的支持。

 

以下脚本(udev 规则)将每个 iSCSI 连接的 Compellent 卷的 max_sectors_kb 设置为 512 kb。请自行决定使用此脚本,因为不存在暗示或保证。建议测试脚本,但不会出现问题。

 

创建文件99-cml-iscsi。目录/etc/udev/rules.d/中的规则具有以下内容:

[root@localhost/] # cat/etc/udev/rules.d/99-cml-iscsi.rules

# Dell Storage Center iSCSI 映射卷的 "Modify" max_sectors_kb

ACTION = = "add",\

ENV = = "*-iscsi-* compellent *",\

RUN + = "/bin/sh-c" echo 512 >/sys $ DEVPATH/queue/max_sectors_kb ""

 

 

受影响的版本:

使用 10Gb iSCSI 接口的所有 SCOS 版本都会受到影响。光纤通道、1 Gb iSCSI 和 FCoE 不受影响。

 

 

解决办法:

7.01.12、7.02.01 和7.03.01 及更高版本 SCOS 中已解决了 max_sectors_kb 问题。

 

更改在 SCOS 6.07.03 和更高版本中可用,以解决 10Gb iSCSI 驱动程序的内存消耗问题。

Cause

 

Resolution

 

Affected Products

Entry Level & Midrange, Compellent (SC, SCv & FS Series), Dell Compellent SC4020, Dell Storage SC8000, Dell Compellent Series 40, Dell Storage SCv2000, Dell Storage SCv2020, Dell Storage SCv2080, Dell Storage SC9000
Article Properties
Article Number: 000137348
Article Type: Solution
Last Modified: 03 May 2021
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.