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

Summary: 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.

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

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.

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.