Kennisgeving van de klant van SC-opslag: Linux grote i/o-grootten kunnen de beschikbaarheid van iSCSI volumes beïnvloeden
Summary: Er is een recente kernel-wijziging geïntroduceerd in de Oracle Enterprise Linux Distribution die het gedrag wijzigt van de manier waarop i/o-limieten worden berekend op blokapparaten. ...
Symptoms
Alert:
Deze wijzigingen worden hieronder beschreven.
Oracle Linux 6/7:
ELSA-2015-3098-onbreek bare Enterprise kernel Security-en bugfix-update
http://linux.oracle.com/errata/ELSA-2015-3098.html
Releasedatum/ 2015-11-13
[3.8.13-100.el6uek/3.8.13-100.el7uek]
blokkeren: Verwijder artifical max_hw_sectors kapje (Christoph Hellwig) [Orabug: 21511611]
Oracle Linux 5:
ELBA-2015-3076-onbreek bare Enterprise kernel-foutoplossing update
http://linux.oracle.com/errata/ELBA-2015-3076.html
Releasedatum/ 2015-08-27
[2.6.39-400.260.1.el5uek]
Blok: Verwijder artifical max_hw_sectors kapje (Joe Jin) [Orabug: 21455630]
Overzicht:
Elk block-apparaat dat op een Linux systeem staat, is toegewezen aan een wachtrijmap (te vinden op /sys/Block/xxx/Queue/). Deze map bevat een aantal configuratiebestanden. Details van deze bestanden kunt u vinden op:
https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt
De twee parameters die relevant zijn voor deze CSTA:
max_hw_sectors_kb
Het maximale aantal kilobytes dat in één gegevensoverdracht wordt ondersteund.
Deze parameter is alleen-lezen en wordt geleverd door het doel-opslagapparaat met behulp van SCSI query response. Het SCSI Doelsubsysteem in Storage Center Operating System (SCOS) reageert momenteel met een nul. Dit geeft geen limiet aan, dus de server stelt de waarde in op de maximaal toegestane maximum in die Linux-kernel versie (32 MB).
max_sectors_kb
Het maximale aantal kilobytes dat de Block-laag voor een bestandssysteem aanvraag zal toestaan.
Deze waarde is lezen-schrijven. Deze waarde moet kleiner zijn dan of gelijk zijn aan de max_hw_sectors_kbwaarde.
De wijzigingen in de Oracle Linux kernel die werden geïntroduceerd in kernels 2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek en 3.8.13-100. el7uek de manier gewijzigd waarop max_sectors_kb wordt berekend. In vorige kernel-releases was de waarde altijd ingesteld op 512 KB. Na deze wijziging wordt de waarde van max_sectors_kb ingesteld op de waarde van max_hw_sectors_kb. Dit heeft tot gevolg dat de maximumgrootte van een enkele i/o-overdracht naar een bepaald blok apparaat in wezen wordt vergroot van 512 KB tot 32 MB.
Deze wijziging blootgestelde aan een probleem met het Storage Center 10Gb iSCSI-stuurprogramma voor i/o-omvang van meer dan ~ 8 MB. Het serverproces dat de grote i/o produceert, loopt vast of het volume is onbeschikbaar vanwege de grote i/o-grootte. Bovendien kan het probleem met het 10 GB-iSCSI stuurprogramma ervoor zorgen dat de controller het geheugen verbruikt dat vereist is voor andere Storage Center-subsystemen. Dit kan leiden tot een grotere impact.
Tijdelijke oplossing:
Om dit probleem te voorkomen, moet het max_sectors_kb voor elk blok apparaat dynamisch worden gewijzigd op de Linux server. Hieronder vindt u Voorbeeldopdrachten voor een multipath-blok apparaat dat is verbonden met een Linux systeem:
#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
Deze wijzigingen zijn niet permanent door opnieuw op te starten. Er kan een init-script worden geïmplementeerd om te worden uitgevoerd wanneer een server opstart die deze parameter zal wijzigen voor alle iSCSI blokapparaten. Neem contact op met een Linux beheerder of Oracle Support voor de implementatie van deze persistentie voor elke klant omgeving.
In het volgende script (udev-regel) wordt de max_sectors_kb van elke iSCSI aangesloten Compellent-volume op 512 KB ingesteld. Gebruik dit script om uw eigen keuze, aangezien er geen garanties of garanties worden geïmpliceerd. Het is raadzaam om het script te testen, maar het moet zonder problemen werken.
Maak het bestand 99-cml-iSCSI. regels in de Directory /etc/udev/rules.d/ met de volgende inhoud:
[root@localhost/] # cat/etc/udev/rules.d/99-cml-iSCSI.rules
# Modify max_sectors_kb voor Dell Storage Center iSCSI toegewezen volumes
ACTIE = = "toevoegen", \
ENV = = "*-iSCSI-* compellent *", \
RUN + = "/bin/sh-c" echo 512 >/sys $ DEVPATH/Queue/max_sectors_kb ' "
Betreffende versies:
Alle SCOS versies hebben invloed op het gebruik van 10Gb iSCSI-interfaces. Fibre Channel, 1 GB iSCSI en FCoE worden niet beïnvloed.
Oplossing:
Het max_sectors_kbprobleem is opgelost in SCOS versies 7.01.12, 7.02.01 en 7.03.01 en hoger.
Wijzigingen zijn beschikbaar in SCOS 6.07.03 en hoger om het probleem met het geheugenverbruik op het 10 GB iSCSI-stuurprogramma te verhelpen.