SC-tallennustilan asiakasilmoitus: Linux suuret IO-koot voivat vaikuttaa iSCSI-äänenvoimakkuuden saatavuuteen
Summary: Oracle Enterprise Linux -jakeluun tehtiin äskettäin ydinmuutos, joka muuttaa IO-rajojen laskemista estolaitteissa.
Symptoms
Hälytys:
Nämä muutokset on esitetty jäljempänä.
Oracle Linux 6/7:
ELSA-2015-3098 - Särkymätön Enterprise-ytimen suojaus ja virheenkorjauspäivitys
http://linux.oracle.com/errata/ELSA-2015-3098.html
Julkaisupäivä/ 2015-11-13
[3.8.13-100.el6uek/3.8.13-100.el7uek]
lohko: poista artifical max_hw_sectors (Christoph Hellwig) [Orabug: 21511611]
Oracle Linux 5:
ELBA-2015-3076 - Särkymätön Enterprise-ytimen virheenkorjauspäivitys
http://linux.oracle.com/errata/ELBA-2015-3076.html
Julkaisupäivä/ 2015-08-27
[2.6.39-400.260.1.el5uek]
lohko: poista artifical max_hw_sectors (Joe Jin) [Orabug: 21455630]
Yleiskuvaus:
Jokaiselle Linux-järjestelmässä olevalle estolaitteeseen varataan jonohakemisto (sijaitsee osoitteessa /sys/block/xxx/queue/). Tämä kansio sisältää useita määritystiedostoja. Lisätietoja näistä tiedostoista on osoitteessa:
https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt
Kaksi parametria, jotka ovat merkityksellisiä tämän CSTA: n kannalta:
max_hw_sectors_kb
Yksittäisessä tiedonsiirrossa tuettu kilotavujen enimmäismäärä.
Tämä parametri on vain luku -tyyppinen, ja kohdetallennuslaite tarjoaa sen SCSI-kyselyvastauksen avulla. SCSI Target -alijärjestelmä tallennuskeskuksen käyttöjärjestelmässä (SCOS) vastaa tällä hetkellä nollalla. Tämä ei osoita mitään rajoitusta, joten palvelin asettaa arvon enimmäisarvoon, joka sallitaan linux-ydinversiossa (32MB).
max_sectors_kb
Lohkokerroksen tiedostojärjestelmäpyynnön sallimien kilotavujen enimmäismäärä.
Tämä arvo on luku- ja kirjoitusarvo. Tämän arvon on oltava pienempi tai yhtä suuri kuin max_hw_sectors_kbarvo.
Oracle Linux -ytimen muutokset, jotka otettiin käyttöön ytimissä 2.6.39-400.260.1.el5uek, 3.8.13-100.el6uek ja 3.8.13-100.el7uek muuttivat tapaa, jolla max_sectors_kb lasketaan. Aiemmissa ytimen julkaisuissa arvoksi asetettiin aina 512KB. Tämän muutoksen jälkeen max_sectors_kb arvoksi asetetaan max_hw_sectors_kb. Tämä kasvatti olennaisesti yksittäisen IO-siirron enimmäiskokoa 512KB: stä 32MB: iin.
Tämä muutos paljasti ongelman Storage Center 10Gb iSCSI -ohjain, jonka IO-koot ovat suurempia kuin ~8MB. Suurta IO:ta tuottava palvelinprosessi saattaa jumitlla tai asema saattaa jäädä käyttämättä suuren IO-koon vuoksi. Lisäksi 10 Gt:n iSCSI-ohjainongelma saattaa aiheuttaa sen, että ohjain kuluttaa muiden Tallennuskeskuksen alijärjestelmien vaatimaa muistia, mikä voi johtaa suurempaan vaikutukseen.
Kiertotapa:
Tämän ongelman estämiseksi kunkin max_sectors_kb asetukset on vaihdettava dynaamisesti Linux-palvelimella. Alla on esimerkkikomentoja Linux-järjestelmään liitetylle multipath-estolaitteeseen:
#mpath1:
kaiku 512 > /sys/block/dm-6/queue/max_sectors_kb
kaiku 512 > /sys/block/sdc/queue/max_sectors_kb
kaiku 512 > /sys/block/sde/queue/max_sectors_kb
kaiku 512 > /sys/block/sdk/queue/max_sectors_kb
kaiku 512 > /sys/block/sdm/queue/max_sectors_kb
Nämä muutokset eivät ole pysyviä uudelleenkäynnistysten kautta. Init-komentosarja voidaan suorittaa, kun annettu palvelin käynnistyy, joka muokkaa tätä parametria kaikille iSCSI-estolaitteille. Ota yhteyttä Linux-järjestelmänvalvojaan tai Oracle-tukeen siitä, miten tämä pysyvyys voidaan parhaiten toteuttaa kussakin asiakasympäristössä.
Seuraava komentosarja (udev-sääntö) asettaa max_sectors_kb iSCSI:hen liitetyn Compellent-aseman arvoksi 512 KB. Käytä tätä komentosarjaa oman harkintasi mukaan , koska takeita tai takuita ei ole annettu. On suositeltavaa testata komentosarjaa, mutta sen pitäisi toimia ilman ongelmia.
Luo tiedosto 99-cml-iscsi.rules hakemistoon /etc/udev/rules.d/ seuraavalla sisällöllä:
[root@localhost /]# kissa /etc/udev/rules.d/99-cml-iscsi.rules
# max_sectors_kb Dell Storage Center iSCSI -yhdistettyjen määrien määritystä
ACTION=="lisää",\
ENV =="*-iscsi-*compellent*",\
RUN+="/bin/sh -c 'kaiku 512 > /sys$DEVPATH/queue/max_sectors_kb'"
Versiot, joita asia koskee:
Tämä vaikuttaa kaikkiin SCOS-versioihin, jotka käyttävät 10Gb iSCSI -liittymiä. Tämä ei vaikuta Fibre Channeliin, 1 Gt:n iSCSI:hen ja FCoE:hen.
Ratkaisu:
Ongelman max_sectors_kbon ratkaistu SCOS-versioissa 7.01.12, 7.02.01 ja 7.03.01 tai uudemmissa.
Muutokset ovat saatavilla SCOS 6.07.03:ssa ja sitä korkeammassa versiossa, jotta muistinkulutusongelma voidaan käsitellä 10 Gt:n iSCSI-ohjainten kanssa.