Notifica del cliente SC storage: Linux dimensioni di i/o di grandi dimensioni possono influire iSCSI disponibilità del volume

Summary: Una modifica recente del kernel è stata introdotta nella distribuzione di Oracle Enterprise Linux che cambia il comportamento del modo in cui i limiti di i/o vengono calcolati sui Block Device. ...

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

Avviso:

Queste modifiche sono descritte di seguito.

Oracle Linux 6/7:

 

ELSA-2015-3098-Unbreakable Enterprise kernel Security and bugfix Update

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

Data di rilascio/ 2015-11-13

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

blocca: rimozione del cappuccio max_hw_sectors artificioso (Christoph Hellwig) [Orabug: 21511611]

 

 

Oracle Linux 5:

 

ELBA-2015-3076-aggiornamento del bug fix del kernel Enterprise indistruttibile

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

Data di rilascio/ 2015-08-27

[2.6.39-400.260.1.el5uek]

blocca: rimuovere l'artificioso max_hw_sectors Cap (Joe Jin) [Orabug: 21455630]

 

 

 

Panoramica:

Ogni device a blocchi esistente in un sistema Linux è allocato una directory coda (che si trova in /sys/block/xxx/Queue/). Questa directory contiene un numero di file di configurazione. I dettagli di questi file sono disponibili all'indirizzo:

 

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

 

I due parametri rilevanti per questo CSTA:

 

max_hw_sectors_kb

Il numero massimo di kilobyte supportati in un singolo trasferimento dei dati.

Questo parametro è di sola lettura e fornito dallo storage device di destinazione tramite SCSI risposta di richiesta. Il sottosistema di destinazione SCSI all'interno del sistema operativo di Storage Center (SCOS) risponde attualmente con uno zero. Ciò indica che il server non è in grado di impostare il valore massimo consentito all'interno della versione del kernel Linux (32MB).

 

max_sectors_kb

Il numero massimo di kilobyte che il livello di blocco consentirà per una richiesta di filesystem.

Questo valore è in lettura/scrittura. Questo valore deve essere minore o uguale al valore max_hw_sectors_kb.

 

Le modifiche apportate al kernel di Oracle Linux introdotte nei kernel 2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek e 3.8.13-100. el7uek hanno modificato il modo in cui viene calcolato max_sectors_kb. Nelle release precedenti del kernel, il valore era sempre impostato su 512KB. Dopo questa modifica, il valore di max_sectors_kb viene impostato sul valore di max_hw_sectors_kb. Ciò sostanzialmente ha aumentato le dimensioni massime di un singolo trasferimento di i/o a un device Block dato da 512KB a 32MB.

 

Questa modifica ha evidenziato un problema con lo Storage Center 10Gb iSCSI driver per le dimensioni di i/o maggiore di ~ 8MB. Il processo server che produce l'IO di grandi dimensioni può essere sospeso o il volume potrebbe non essere disponibile a causa delle grandi dimensioni di i/o. Inoltre, il problema del driver di 10Gb iSCSI potrebbe causare la memoria richiesta da altri sottosistemi di Storage Center, il che potrebbe causare un maggiore impatto.

 

 

 

Soluzione alternativa:

Per evitare questo problema, è necessario modificare dinamicamente il max_sectors_kb per ciascun Block Device sul server Linux. Di seguito sono riportati i comandi di esempio per un device a blocchi multipath collegati a un sistema Linux:

 

#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

 

Queste modifiche non sono persistenti tramite riavvii. È possibile implementare uno script init per l'esecuzione quando viene avviato un determinato server che modificherà questo parametro per tutti i device di iSCSI Block. Consultare un amministratore Linux o Oracle supporto su come implementare al meglio la persistenza per ogni ambiente del cliente.

 

Il seguente script (regola udev) consentirà di impostare il max_sectors_kb di ogni iSCSI volume Compellent collegato a 512KB. Utilizzare questo script a propria discrezione, in quanto non sono implicite garanzie ogaranzie. Si consiglia di eseguire il test dello script, ma dovrebbe funzionare senza problemi.

 

Creare il file 99-CML-iSCSI. Rules nella directory /etc/udev/rules.d/ con il seguente contenuto:

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

# Modifica max_sectors_kb per Dell Storage Center iSCSI volumi mappati

ACTION = = "Aggiungi", \

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

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

 

 

Versioni interessate:

Tutte le versioni di SCOS sono interessate dall'utilizzo di interfacce iSCSI da 10 GB. Fibre Channel, 1 GB di iSCSI e FCoE non sono interessati.

 

 

Risoluzione:

Il problema di max_sectors_kb è stato risolto in scos versioni 7.01.12, 7.02.01 e 7.03.01 e versioni successive.

 

Le modifiche sono disponibili in SCOS 6.07.03 e versioni successive per risolvere il problema di consumo di memoria con il driver di 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.