PowerFlex: Liiallinen dataroolin vaihtaminen aiheuttaa IO-viivettä ja virheitä
Сводка: Tässä artikkelissa kerrotaan, miten liiallinen dataroolien vaihtaminen aiheuttaa I/O-viivettä ja -virheitä.
Симптомы
Tietyissä klusteritilasiirtymissä MDM-roolitasapainologiikka voi tuottaa nopeita, toistuvia ensisijaisia/toissijaisia roolikytkimiä useissa kammoissa (sisäiset tietorakenteet, jotka seuraavat, mitkä SDS-solmut tallentavat kutakin volyymidataa). Jokainen roolikytkin mitätöi asiakaspuolen (SDC) kampakartat ja pakottaa I/O-uudelleenyritykset. Kun ongelma koskee riittävän monta kampaa samanaikaisesti, kumulatiivinen uudelleenyrityksen yleiskustannus aiheuttaa I/O-viivepiikkejä ja I/O-virheitä SDC-isännissä. Palvelinympäristöstä riippuen tämä voi aiheuttaa sovellusten I/O-aikakatkaisuja, virtuaalikoneiden siirtymistä kirjoitussuojattuun tilaan tai tiedostojärjestelmän poissaoloja.
Tämä toiminta on havaittu useissa laukaisuskenaarioissa, eikä se rajoitu yksittäisiin toimintatapoihin.
Yhteiset indikaattorit
MDM_DATA_DEGRADEDtapahtuma, jota seuraa jatkuva I/O-viive, joka kestää 1–15+ minuuttia- SDC-isännät ilmoittavat I/O-virheistä ja/tai I/O-aikakatkaisuista heikentyneen ikkunan aikana
- VMware (ESXi): VMFS-sykeaikakatkaisut, SCSI-laitteistovirheet (
sense data: 0x4 0x0 0x0), virtuaalikoneiden siirtyminen vain luku -tilaan, mahdollinen HA-vikasietoisuus - Linux: I/O-virheet järjestelmälokeissa (
/var/log/messages, dmesg), sovelluksissa voi olla I/O-aikakatkaisuja tai tiedostojärjestelmä saattaa käynnistyä uudelleen vain luku -muodossa
- VMware (ESXi): VMFS-sykeaikakatkaisut, SCSI-laitteistovirheet (
- MDM-tapahtumalokeissa järjestelmä näkyy HEIKENTYNEESSÄ tilassa odotettua pidempään yksittäisen SDS-menetyksen varalta.
- Järjestelmä palautuu lopulta itsestään normaalitilaan ilman manuaalisia toimia (yleensä)
Tilanne 1: Armoton SDS-menetys (ei ylläpitotilaa)
Milloin se voi tapahtua:
- Tämä on harvinainen skenaario. Jotta nopeat, toistuvat roolinvaihtotapahtumat voivat tapahtua häpeällisen SDS-menetyksen aikana, useiden erityisolosuhteiden on täytyttävä samanaikaisesti:
-
- Laajamittainen ympäristö - merkittävä määrä SDS-solmuja ja taltioita
- Raskas tuotannon I/O-kuorma - merkittävä I/O-toiminta SDS:n vikaantuessa
- Uudelleenmuodostuskuormitus ylittää käsittelykapasiteetin – Uudelleenmuodostusta edellyttävien metatietorivien määrä ylittää MDM-tasapainottajan jaksokohtaisen 1 024 rivin rajan.
Jokainen tasapainotusjakso voi käsitellä jopa 1 024 metatietoriviä. Kun lisää rivejä on muodostettava uudelleen, tasapainottaja ei voi viimeistellä nykyistä suunnitelmaa ennen seuraavan luomista.
Mitä tapahtuu:
- SDS irtoaa äkillisesti MDM:stä (tapahtuma SDS_DECOUPLED)
- Kaikki kyseiseen SDS:ään yhteydessä olleet SDC:t menettävät yhteytensä, → SDC katkaisee yhteyden
- MDM merkitsee klusterin heikentyneeksi (tapahtuma)
MDM_DATA_DEGRADED) - Koska uudelleenmuodostettavien rivien määrä on yli 1 024, MDM-tasapainottaja ei voi suorittaa nykyistä tasapainotussuunnitelmaa loppuun
- Täsmäyttäjä aloittaa uuden suunnitelman edellisen suunnitelman ollessa vielä käynnissä ja tuottaa nopeita, toistuvia roolinvaihtotapahtumia
- Asiakasohjelmien SDC:t näkevät jatkuvia I/O-virheitä (
IO_FAULT_NOT_PRI, SCSI sense 0x4). Kun uudelleenyritykset on käytetty, isäntäkäyttöjärjestelmä ilmoittaa I/O-virheistä, aikakatkaisuista tai vain luku -tiedostojärjestelmästä - MDM-jäljitystodisteet:
Kun työmäärän tasapainotus ylittää 1 024 rivin rajan, MDM-jäljitys näyttää kynnysarvon ylittymisen:
2026/03/28 22:43:53.246702 MED:7f1f984aedb0:balanceExec_HandleDegradedRows:00343: BALANCER: Storage Pool: 1193844800000000 - 1024 rows processed out of 1098 degraded rows. 0 allocation failures. 0 cumulative allocation failures.
Tämä osoittaa, että 1 098 riviä oli muodostettava uudelleen, mutta vain 1 024 voitiin käsitellä nykyisessä syklissä. Jäljellä olevat rivit käynnistävät uuden tasapainotussuunnitelman ennen kuin edellinen suunnitelma on valmis, mikä käynnistää palautesilmukan.
Tapahtumaketju:
Log Source Event / Pattern MDM events SDS_DECOUPLED — SDS formally declared dead MDM events MDM_DATA_DEGRADED — Cluster enters DEGRADED state SDS traces Flood of IO_FAULT_NOT_PRI — SDS received IO for a comb it is no longer primary for ESXi vmkernel SCSI sense data: 0x4 0x0 0x0 — Hardware error MDM events MULTIPLE_SDC_CONNECTIVITY_CHANGES — Mass SDC connectivity storm MDM events SDC_DISCONNECTED_FROM_SDS_IP — SDCs losing contact with the failed SDSEsimerkki MDM-tapahtumajärjestyksestä:
SDC_DISCONNECTED_FROM_SDS_IP SDC disconnected from SDS <name> SDS_DECOUPLED SDS <name> decoupled MDM_DATA_DEGRADED The system is now in DEGRADED state
Tilanne 2: SDS-virrankatkaisu PMM-syötön aikana
Milloin se voi tapahtua:
Tämä on harvinainen tilanne, joka edellyttää kahta samanaikaista tapahtumaa:
- Käyttöturvallisuustiedote on siirtymässä Protected Maintenance Mode (PMM) -tilaan
- SDS epäonnistuu tai sammuu, ennen kuin PMM-siirtymä on valmis
Mitä tapahtuu:
- MDM vastaanottaa PMM-merkintäkomennon ja kirjaa sen onnistuneeksi
- SDS irrotetaan odottamatta, kun PMM-merkintä on vielä kesken
- MDM merkitsee klusterin heikentyneeksi
- Roolin tasapainottaja siirtyy jatkuvaan roolikytkinsilmukkaan koko PMM:n siirtymisvaiheen ajan
- Muut kuin PMM-tietorivit vaihdetaan toistuvasti roolilla koko tallennusvarannossa
- Myrsky jatkuu, kunnes käyttöturvallisuustiedote liittää klusterin uudelleen ja suorittaa ylläpitotilaan siirtymisen loppuun
Tapahtumaketju:
Log Source Event / Pattern MDM events CLI_COMMAND_SUCCEEDED — enter_protected_maintenance_mode command succeeded MDM events SDS_DECOUPLED — SDS decoupled before maintenance mode started MDM events MDM_DATA_DEGRADED — Cluster enters DEGRADED state SDS traces Repeated role-switch operations across non-PMM rows
Esimerkki MDM-tapahtumajärjestyksestä:
CLI_COMMAND_SUCCEEDED Command enter_protected_maintenance_mode succeeded SDS_DECOUPLED SDS <name> decoupled MDM_DATA_DEGRADED The system is now in DEGRADED state
Kun käyttöturvallisuustiedotteeseen liitytään uudelleen ja PMM valmistuu:
SDS_MAINTENANCE_MODE_STARTED SDS maintenance mode started MDM_DATA_NORMAL The system is now in NORMAL state
Tilanne 3: Käyttöturvallisuustiedote välittömässä ylläpitotilassa (IMM)
Milloin se voi tapahtua:
Käyttöturvallisuustiedote siirtyy tai poistuu pikahuoltotilasta (IMM). Tämä tilanne ilmenee, kun yksittäinen SDS on huoltotilassa eikä järjestelmä pysty päättämään, mikä SDS käsittelee tiettyjen tietojen I/O:ta.
Mitä tapahtuu:
- Järjestelmä muuttaa toistuvasti, mikä käyttöturvallisuustiedote vastaa samojen tietojen tarjoamisesta
- Nämä jatkuvat muutokset tarkoittavat, että sovellukset eivät tiedä, minne lähettää I/O-pyyntönsä
- I/O lähetetään väärään SDS:ään, mikä aiheuttaa uudelleenyrityksiä ja viiveitä
- Sovellukset kokevat viivettä tai aikakatkaisuja yrittäessään käyttää tietoja, joita ongelma koskee
Vaikutus:
- Vaikutus asiakkaaseen: Sovellukset ilmoittavat viiveestä ja aikakatkaisuista, kun SDS on IMM: ssä
- Kesto: Jatkuu, kun käyttöturvallisuustiedote on IMM-tilassa
- Recovery: Automaattinen - ratkaisee, kun SDS sulkee IMM: n
Tapahtumaketju:
Log Source Event / Pattern SDS traces Repeated role-switch operations on the same data SDS traces Primary and secondary role switches on identical data
Tilanne 4: SDS Poistuminen suojatusta huoltotilasta (PMM)
Milloin se voi tapahtua:
SDS poistuu Protected Maintenance Mode (PMM) -tilasta. Tämä skenaario tapahtuu jokaisen PMM-poistumisen aikana - se ei ole harvinainen tapahtuma, mutta vakavuus riippuu siitä, kuinka kauan huoltotila kesti.
Mitä tapahtuu:
- Kun SDS sulkee PMM:n, roolien tasapainottajan on määritettävä tietosegmentit uudelleen sisältämään palaava SDS
- Uudelleentasapainotusprosessi vaikuttaa koko tallennusvarantoon, ei vain palaavan SDS:n tietoihin
- Roolinvaihtoja esiintyy monissa tietosegmenteissä uudelleenintegroinnin aikana
- Sovellukset saattavat kokea lyhyitä I/O-virheitä tai viiveitä roolimääritysten tasaantuessa
Vaikutus:
- Vaikutus asiakkaaseen: Lyhyissä huoltoikkunoissa (alle 5 sekuntia) vaikutus on tuskin havaittavissa. Pitkäaikaisessa kunnossapidossa aktiivisella I/O:lla voi esiintyä tuhansia roolikytkimiä, jotka aiheuttavat jatkuvia I/O-katkoksia
- Kesto: Jatkuu uudelleenintegrointivaiheen aikana, kunnes tasapainotus on valmis
- Recovery: Automaattinen
Tapahtumaketju:
Log Source Event / Pattern MDM events Role-switch operations across the storage pool during exit SDS traces Repeated role-switch operations during reintegration
Esimerkki MDM-tapahtumajärjestyksestä:
SDS_MAINTENANCE_MODE_EXIT_STARTED SDS maintenance mode exit started SDS_MAINTENANCE_MODE_EXIT_COMPLETED SDS maintenance mode exit completed
Lokitulokset:
MDM-tapahtumalokit: MDM-tapahtumaloki näyttää klusteritason järjestyksen. Avainindikaattorit ovat roolikytkintoiminnot huoltotilasta poistumisen aikana.
SDS-jäljityslokit: SDS-solmujen jäljityslokeissa näkyy toistuvia roolinvaihtotoimintoja uudelleenintegroinnin aikana:
raidComb_SetPriTgtGenNum: combId <id> combGenNum: cur <gen> new <gen> contCmd_SetCombState: CombId <id> devId <id> PRI->SEC Switch roles contCmd_SetCombState: CombId <id> devId <id> SEC->PRI Switch roles
Suuri määrä Switch-rooleja lyhyessä ajassa (tuhansia tai enemmän sekunneissa) on tämän ongelman lopullinen SDS-puolen ilmaisin.
SDC-/isäntälokit: VMware (ESXi) SDC I/O -uudelleenyritykset, joissa näkyy kampa, kohde-SDS ja vikakoodi:
vmkernel log PowerFlex mapVolIO_Do_CK:1496 :Mit: <addr>. Retrying IO Type WRITE. Failed comb: <id>. SDS_ID <id>. Comb Gen <gen>. Head Gen <gen>. PowerFlex mapVolIO_Do_CK:1510 :Mit: <addr>. Vol ID <id>. Last fault Status IO_FAULT_NOT_PRI(12). Retry count (1)
Jos uuvutetaan uudelleen, SCSI-virheet palautetaan:
sense data: 0x4 0x0 0x0 -- SCSI Hardware Error
Diagnostinen vinkki: Jos näet I/O-virheitä useissa SDS-solmuissa (ei vain solmussa, jossa ongelma ilmeni), tämä saattaa tarkoittaa roolinvaihtomyrskyä normaalin heikentyneen tilan toiminnan sijaan. Jos I/O-virheet on eristetty yhteen SDS:ään, tämä on odotettua heikentyneen tilan toimintaa.
Tilanne 5: Ylläpitotilan vaihesiirtymät
Milloin se voi tapahtua:
Siirtymän aikana, kun SDS siirtyy tai poistuu huoltotilasta (IMM tai PMM) - tällä hetkellä tila muuttuu normaalista MM: ksi tai MM: stä takaisin normaaliksi.
Mitä tapahtuu:
- Roolien tasapainottaja jakaa tietovastuut uudelleen muutoksen mukaan
- Roolinvaihdoksia esiintyy lyhyitä jaksoja, kun järjestelmä sopeutuu uuteen järjestelyyn
- Sovelluksissa voi esiintyä lyhyitä viivepiikkejä siirtymän aikana
Vaikutus:
- Vaikutus asiakkaaseen: Lyhyet viivepiikit, jotka kestävät sekunnista muutamaan minuuttiin. Yleensä sovelluksen aikakatkaisurajojen alapuolella
- Kesto: Kestää sekunnista muutamaan minuuttiin ja asettuu sitten
- Recovery: Automaattinen
Tapahtumaketju:
Log Source Event / Pattern SDS traces Brief role-switch operations during phase transitions
Причина
MDM-roolitasapainologiikan ohjelmistovirhe aiheuttaa takaisinkytkentäsilmukan, kun klusterin tila siirtyy SDS:n menetyksen tai ylläpitotilan vuoksi.
Tietyissä olosuhteissa MDM määrittää toistuvasti uudelleen, mitkä SDS-solmut vastaavat I/O-palvelusta kammioille, joita ongelma koskee. Jokainen uudelleenmääritys mitätöi SDC:n välimuistiin tallennetun näkymän tietojen sijainnista, mikä pakottaa I/O-yritykset uudelleen. Kun ongelma koskee useita kampoja samanaikaisesti, uudelleenmääritysten määrä ylittää SDC:iden päivityskyvyn, mikä johtaa jatkuviin I/O-virheisiin useissa isännissä.
Myrsky on tyypillisesti itsestään rajoittuva. Se häviää, kun klusteri vakautuu, mutta kesto riippuu suojaustoimialueen koosta ja I/O-kuormituksesta tapahtumahetkellä.
Разрешение
Ongelma on korjattu PowerFlex Core -versiossa 4.5.6. Päivitä tähän versioon, kun se on saatavilla. Pyydä tiedot julkaisuaikataulusta Dell-tuelta .
Suunnitellut huoltotoimenpiteet:
- Älä sammuta SDS:ää tai käynnistä sitä uudelleen, ennen kuin MDM on kirjautunut lokiin
SDS_MAINTENANCE_MODE_STARTED. Varmista, että käyttöturvallisuustiedote on siirtynyt kokonaan huoltotilaan, ennen kuin jatkat fyysistä huoltoa. - Tarkkaile viivepiikkejä, kun siirryt ylläpitotilaan tai poistut siitä.
Suunnittelemattomat SDS-käyttökatkot:
- Myrsky on itsestään rajoittuva ja häviää tyypillisesti muutamassa minuutissa klusterin vakautuessa. Jos ongelma ilmenee, kerää
getinfolokit kaikista suojaustoimialueen SDS-solmuista, kaikista hallinta-MDM:istä mahdollisimman pian tapahtuman jälkeen ja ota yhteys Dellin tukeen.
Harvoissa tapauksissa, joissa ongelma ei ratkea itsestään, MDM voi vakautua ottamalla uudelleenkoonnin tilapäisesti pois päältä ja ottamalla sen uudelleen käyttöön:
scli --set_rebuild_mode --protection_domain_name <pd_name> --storage_pool_name <sp_name> --disable_rebuild
# Odota 5-10 sekuntia ja ota sitten uudelleenmuodostus käyttöön:
scli --set_rebuild_mode --protection_domain_name <pd_name> --storage_pool_name <sp_name> --enable_rebuild
scli --query_all komentojen tulos.