Powiadomienie klienta pamięci masowej SC: Linux duże rozmiary we/wy mogą mieć wpływ na dostępność woluminu iSCSI

Riepilogo: Wprowadzono ostatnią zmianę jądra do dystrybucji Oracle Enterprise Linux, która zmienia zachowanie sposobu obliczania limitów we/wy przez urządzenia blokujące.

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Sintomi

Alert:

Zmiany te zostały opisane poniżej.

Oracle Linux 6/7:

 

ELSA-2015-3098-nierozdzielne zabezpieczenia jądra i aktualizacja bugfixa

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

Data wydania/ 2015-11-13

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

Zablokuj: Usuń Artifical max_hw_sectors Cap (Christoph Hellwig) [Orabug: 21511611]

 

 

Oracle Linux 5:

 

Elba-2015-3076 — aktualizacja usterek jądra dla przedsiębiorstw rozwiązanych

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

Data wydania/ 2015-08-27

[2.6.39-400.260.1.el5uek]

Block: Remove Artifical max_hw_sectors Cap (Janusz Jin) [Orabug: 21455630]

 

 

 

Omówienie:

Każde urządzenie blokujące istniejące w systemie Linux jest przydzielone katalogiem kolejki (znajdującym się w lokalizacji /sys/Block/XXX/Queue/). Ten katalog zawiera szereg plików konfiguracyjnych. Szczegóły dotyczące tych plików można znaleźć w witrynie internetowej:

 

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

 

Dwa parametry związane z tym CSTA:

 

max_hw_sectors_kb

Maksymalna liczba kilobajtów obsługiwana w jednym transferze danych.

Ten parametr jest przeznaczony tylko do odczytu i dostarczany przez docelowe urządzenie pamięci masowej za pomocą SCSI odpowiedzi na zapytanie. Podsystem docelowa SCSI w ramach systemu operacyjnego centrum pamięci masowej (SCOS) odpowiada obecnie zerując się z zerem. Oznacza to brak limitu, więc serwer ustawia wartość na maksymalną dozwoloną w ramach tej wersji jądra systemu Linux (32MB).

 

max_sectors_kb

Maksymalna liczba kilobajtów, jaką może mieć warstwa bloku dla żądania system plików.

Ta wartość to odczyt-zapis. Wartość ta musi być mniejsza lub równa wartości max_hw_sectors_kb.

 

Zmiany Oracle jądra Linux wprowadzone w jądra 2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek i 3.8.13-100. el7uek zmieniły sposób obliczania max_sectors_kb . W poprzednich wersjach jądra wartość była zawsze ustawiona na 512KB. Po wprowadzeniu tej zmiany wartość max_sectors_kb jest ustawiana na wartość max_hw_sectors_kb. W ten sposób można w istocie zwiększyć maksymalny rozmiar pojedynczego transferu we/wy do danego urządzenia bloku z 512KB na 32MB.

 

Ta zmiana naraża problem z sterownikiem centrum pamięci masowej 10Gb iSCSI dla wielkości we/wy większych niż ~ 8 MB. Proces serwera z dużym stanem IO może ulec zawieszeniu lub wolumin może stać się niedostępny z powodu dużego rozmiaru we/wy. Ponadto problem ze sterownikiem 10 GB iSCSI może spowodować, że kontroler będzie korzystał z pamięci wymaganej przez inne podsystemy centrum pamięci masowej, co może doprowadzić do większego wpływu.

 

 

 

Obejście problemu:

Aby uniknąć tego problemu, max_sectors_kb dla każdego urządzenia blokującego muszą być dynamicznie zmieniane na serwerze Linux. Poniżej zamieszczono przykładowe polecenia dla urządzenia wielościeżkowego, podłączonego do Linux systemu:

 

#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

 

Zmiany te nie są trwałe przy ponownym uruchomieniu komputera. Skrypt init można zaimplementować w celu uruchomienia, kiedy zostanie uruchomiony dany serwer, który zmodyfikuje ten parametr dla wszystkich urządzeń blokujących iSCSI. Skontaktuj się z administratorem Linux lub Oracle, aby dowiedzieć się, jak najlepiej zaimplementować tę trwałość dla każdego środowiska klienta.

 

Poniższy skrypt (reguła udev) ustawi max_sectors_kb każdego iSCSI dołączonego woluminu Compellent do 512KB. Należy korzystać z tego skryptu według własnego uznania, ponieważ nie są implikowane żadne gwarancje anigwarancje. Zaleca się przetestowanie skryptu, ale powinien on działać bez problemu.

 

Utwórz plik 99-CML-iSCSI. reguły w katalogu /etc/udev/rules.d/ pod następującą zawartością:

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

# Modify max_sectors_kb dla Dell Storage Center iSCSI mapowanych woluminów

ACTION = = "Dodaj", \

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

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

 

 

Wersje, których dotyczy alert:

Wszystkie wersje SCOS są zagrożone przy korzystaniu z interfejsów 10 GB iSCSI. Nie wpływa to na Standard Fibre Channel, iSCSI 1 GB i FCoE.

 

 

Rozwiązanie:

Problem max_sectors_kbzostał rozwiązany w SCOS wersjach 7.01.12, 7.02.01, 7.03.01 i nowszych.

 

Zmiany są dostępne w SCOS 6.07.03 i nowszym w celu rozwiązania problemu z użyciem pamięci przez sterownik iSCSI 10Gb.

Causa

 

Risoluzione

 

Prodotti interessati

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
Proprietà dell'articolo
Numero articolo: 000137348
Tipo di articolo: Solution
Ultima modifica: 03 mag 2021
Versione:  4
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.