SC-Speicherkunden Benachrichtigung: Linux große i/o-Größen können iSCSI Volume-Verfügbarkeit beeinflussen.

Summary: Eine aktuelle Kernel Änderung wurde in die Oracle Enterprise-Linux-Verteilung eingeführt, die das Verhalten der Berechnung von i/o-Limits auf Blockgeräten ändert.

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

Achtung:

Diese Änderungen werden nachfolgend beschrieben.

Oracle Linux 6/7:

 

ELSA-2015-3098 – Unbreakable Enterprise Kernel Security und Bugfix Update

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

Versionsdatum/ 2015-11-13

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

Block: Remove Artificial max_hw_sectors Cap (Christoph Hellwig) [Orabug: 21511611]

 

 

Oracle Linux 5:

 

Elba-2015-3076 – Unbreakable Enterprise Kernel Bug Fix Update

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

Versionsdatum/ 2015-08-27

[2.6.39-400.260.1.el5uek]

Block: Remove Artificial max_hw_sectors Cap (Joe Jin) [Orabug: 21455630]

 

 

 

Übersicht.

Jedem Blockgerät, das auf einem Linux-System vorhanden ist, wird ein Warteschlangenverzeichnis zugewiesen (unter /sys/Block/xxx/Queue/). Dieses Verzeichnis enthält eine Reihe von Konfigurationsdateien. Informationen zu diesen Dateien finden Sie unter:

 

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

 

Die beiden Parameter, die für diese CSTA relevant sind:

 

max_hw_sectors_kb

Die maximale Anzahl von Kilobyte, die in einer einzigen Datenübertragung unterstützt wird.

Dieser Parameter ist schreibgeschützt und wird vom Zielspeicher Gerät über SCSI Abfrageantwort bereitgestellt. Das SCSI Zielsubsystem im Storage Center-Betriebssystem (SCOs) reagiert derzeit auf NULL. Dies gibt keine Begrenzung an, sodass der-Server den Wert auf die maximal zulässige Anzahl innerhalb der Linux-Kernel-Version (32MB) festlegt.

 

max_sectors_kb

Die maximale Anzahl von Kilobyte, die von der Block Schicht für eine Dateisystemanforderung zulässig ist.

Dieser Wert ist Lese-/Schreibzugriff. Dieser Wert muss kleiner als oder gleich dem max_hw_sectors_kbWert sein.

 

Die Änderungen an der Oracle Linux Kernel, die in Kernels 2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek und 3.8.13-100. el7uek eingeführt wurden, haben die Art und Weise geändert, wie max_sectors_kb berechnet wird. In vorherigen Kernel Versionen war der Wert immer auf 512 KB eingestellt. Nach dieser Änderung wird der Wert von max_sectors_kb auf den Wert max_hw_sectors_kb festgelegt . Dies erhöhte im Wesentlichen die maximale Größe einer einzigen i/o-Übertragung auf ein bestimmtes Blockgerät von 512 KB auf 32MB.

 

Diese Änderung hat ein Problem mit dem Storage Center-10Gb-iSCSI Treiber für IO-Größen von mehr als ~ 8MB ausgesetzt. Der Serverprozess, der die große IO erzeugt, hängt möglicherweise nicht mehr oder das Volume ist aufgrund der großen i/o-Größe nicht mehr verfügbar. Darüber hinaus kann das Problem mit dem 10Gb-iSCSI Treiber dazu führen, dass der Controller Speicher beansprucht, der von anderen Storage Center-Untersystemen benötigt wird, was zu einer größeren Auswirkung führen könnte.

 

 

 

Problemumgehung:

Um dieses Problem zu vermeiden, müssen die max_sectors_kb für jedes Blockgerät dynamisch auf dem Linux-Server geändert werden. Im folgenden finden Sie Beispielbefehle für ein Multipath-Blockgerät, das mit einem Linux-System verbunden ist:

 

#mpath1:

Echo 512 >/sys/Block/DM-6/Queue/max_sectors_kb

Echo 512 >/sys/Block/SDC/Queue/max_sectors_kb

Echo 512 >/sys/Block/SDE/Queue/max_sectors_kb

Echo 512 >/sys/Block/SDK/Queue/max_sectors_kb

Echo 512 >/sys/Block/SDM/Queue/max_sectors_kb

 

Diese Änderungen sind bei Neustarts nicht persistent. Ein Init-Skript kann implementiert werden, wenn ein bestimmter Server gestartet wird, der diesen Parameter für alle iSCSI Blockgeräte ändert. Wenden Sie sich an einen Linux-Administrator oder Oracle Unterstützung, um diese Beständigkeit für jede Kundenumgebung optimal zu implementieren.

 

Das folgende Skript (udev-Regel) setzt die max_sectors_kb jedes iSCSI angehängten Compellent-Volumes auf 512 KB. Bitte verwenden Sie dieses Skript nach eigenem Ermessen, da keine Garantien oder Garantien impliziert sind. Es wird empfohlen, das Skript zu testen, sollte aber ohne Probleme funktionieren.

 

Erstellen Sie die Datei 99-CML-iSCSI. Rules im Verzeichnis /etc/udev/rules.d/ mit dem folgenden Inhalt:

[root@localhost/] # cat/etc/udev/rules.d/99-CML-iSCSI.Rules

# Ändern Sie max_sectors_kb für Dell Storage Center iSCSI zugeordnete Volumes

ACTION = = "Add", \

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

Run + = "/bin/sh-c ' Echo 512 >/sys $ DEVPATH/Queue/max_sectors_kb '"

 

 

Betroffene Versionen:

Alle SCOs Versionen haben Auswirkungen auf die Verwendung von 10Gb iSCSI Schnittstellen. Fibre Channel, 1 GB iSCSI und FCoE sind nicht betroffen.

 

 

Lösung:

Das max_sectors_kbProblem wurde in SCOs Versionen 7.01.12, 7.02.01 und 7.03.01 und höher behoben.

 

Änderungen sind in SCOs 6.07.03 und höher verfügbar, um das Problem mit der Speichernutzung beim 10Gb-iSCSI Treiber zu beheben.

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.