SC-meddelande för lagrings kund: Linux stora IO-storlekar kan påverka iSCSI volym tillgänglighet

Summary: En nyligen utförd kernel-ändring infördes i Oracle Enterprise Linux-fördelningen som ändrar beteendet för hur IO-gränserna beräknas på block enheter. ...

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

Varning!

Dessa ändringar beskrivs nedan.

Oracle Linux 6/7:

 

Elsa-2015-3098-Enterprise kernel Security-och Bugfix-uppdatering

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

Utgivningsdatum/ 2015-11-13

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

block: ta bort Artifical max_hw_sectors Cap (Christoph Hellwig) [Orabug: 21511611]

 

 

Oracle Linux 5:

 

Elba-2015-3076-Enterprise kernel fel korrigering uppdatering

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

Utgivningsdatum/ 2015-08-27

[2.6.39-400.260.1.el5uek]

block: ta bort Artifical max_hw_sectors Cap (Joe Jin) [Orabug: 21455630]

 

 

 

Översikt:

Varje block enhet som finns på ett Linux system allokeras en kömapp (som finns på /sys/block/XXX/Queue/). Den här katalogen innehåller ett antal konfigurationsfiler. Information om dessa filer finns på:

 

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

 

De två parametrarna som är relevanta för den här CSTA:

 

max_hw_sectors_kb

Maximalt antal kilobyte som stöds i en enda data överföring.

Den här parametern är skrivskyddad och tillhandahålls av mål lagrings enheten genom SCSI förfrågnings svar. Under systemet SCSI Target i Storage Center-operativsystemet (SCOS) svarar för närvarande med noll. Detta indikerar att servern inte tillåter det maximala värdet inom Linux-kernelns version (32 MB).

 

max_sectors_kb

Det maximala antalet kilobyte som block skiktet tillåter en begäran om filesystem.

Det här värdet är Läs-skriv. Det här värdet måste vara mindre än eller lika med max_hw_sectors_kbsvärdet.

 

Ändringarna i Oracle Linux kernel som introducerades i kernels 2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek och 3.8.13-100. el7uek ändrades på det sätt som max_sectors_kb beräknas. I tidigare kernel-versioner var värdet alltid inställt på 512 kB. Efter denna förändring är värdet för max_sectors_kb inställt på värdet för max_hw_sectors_kb. Detta ökade i huvudsak den maximala storleken på en enda IO-överföring till en given block enhet från 512 KB till 32 MB.

 

Ändringen exponerade ett problem med Storage Center GB iSCSI-drivrutinen för IO-storlekar större än ~ 8 MB. Den server process som producerar stor IO kan låsa sig eller så kan volymen bli otillgänglig på grund av den stora IO-storleken. Dessutom kan de 10 GB iSCSI driv rutins problem leda till att styrenheten förbrukar det minne som krävs av andra lagrings Center under system, vilket kan leda till en större inverkan.

 

 

 

Alternativ lösning:

För att förhindra det här problemet måste max_sectors_kb för varje block enhet ändras dynamiskt på Linux-servern. Nedan visas exempel kommandon för en blockerad Multisök vägs enhet som är ansluten till ett Linux system:

 

#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

 

Dessa ändringar är inte beständiga genom att datorn startas om. Ett init-skript kan implementeras för att köras när en viss server startar som ändrar den här parametern för alla iSCSI-block enheter. Kontakta en Linux administratör eller Oracle support om hur det är bäst att implementera detta persistence för varje kund miljö.

 

Följande skript (udev Rule) ställer in max_sectors_kb på alla iSCSI anslutna Compellent-volymen till 512 kB. Använd det här manuset själv eftersom inga garantier eller garantier är underförstådda. Vi rekommenderar att du testar skriptet, men det bör fungera utan problem.

 

Skapa filen 99-CML-iSCSI. regler i katalogen /etc/udev/rules.d/ med följande innehåll:

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

# Ändra max_sectors_kb för Dell Storage Center iSCSI mappade volymer

ACTION = = "Add", \

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

RUN + = "/bin/sh-c" ECHO 512 >/sys $ DEVPATH/kö/max_sectors_kb ""

 

 

Berörda versioner:

Alla SCOS versioner påverkas av att de använder 10 GB iSCSI-gränssnitt. Fibre Channel, 1 GB iSCSI och FCoE påverkas inte.

 

 

Lösning:

Max_sectors_kbproblemet har lösts i SCOS versionerna 7.01.12, 7.02.01 och 7.03.01 och senare.

 

Det finns ändringar i SCOS 6.07.03 och senare för att behandla problem med minnes förbrukningen med 10 GB iSCSI-drivrutinen.

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.