Udgivet: 11. marts 2025 af PerfGrid

Pulse: Uge 11, 2025

Velkommen til den fjerde udgave af vores Pulse serie, hvor vi deler indsigt i vores infrastrukturændringer, serviceforbedringer og andre bag kulisserne aktiviteter hos PerfGrid.

nlcp03 nedetid

Den 5. marts oplevede vi nedetid på en af vores cPanel-servere, nlcp03. Dette blev til sidst sporet til et fejlende netværkskort (også kendt som et NIC), som vi løste ved at flytte diskene til en anden server.

Så hvad skete der egentlig?

Omkring kl. 19.30 UTC modtog vi en alarm fra Nodeping, som vi bruger til ekstern overvågning, om at serveren nlcp03 var nede. Systemet svarede på ping, men det reagerede ikke rigtig på HTTP-forespørgsler. Efter cirka 2 minutter blev systemet igen responsivt.

Ved undersøgelse så vi følgende i vores dmesg output:

Mar  5 19:33:00 nlcp03 kernel: mlx5_core 0000:c1:00.0 enp193s0f0np0: Error cqe on cqn 0x8e, ci 0x1b1, qn 0x115c, opcode 0xd, syndrome 0x4, vendor syndrome 0x51
Mar  5 19:33:00 nlcp03 kernel: 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000030: 00 00 00 00 01 00 51 04 0e 00 11 5c 29 67 4a d3
Mar  5 19:33:00 nlcp03 kernel: WQE DUMP: WQ size 1024 WQ cur size 0, WQE index 0x167, len: 192
Mar  5 19:33:00 nlcp03 kernel: 00000000: 00 29 67 0e 00 11 5c 09 00 00 00 08 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000010: 00 00 00 00 c0 00 05 a8 00 00 00 00 00 42 00 1c
Mar  5 19:33:00 nlcp03 kernel: 00000020: 73 00 09 99 b8 59 9f c7 43 ce 08 00 45 20 fe bc
Mar  5 19:33:00 nlcp03 kernel: 00000030: 46 54 40 00 40 06 31 fb d5 b8 55 0c 6d f8 2b 0f
Mar  5 19:33:00 nlcp03 kernel: 00000040: b5 66 00 16 e0 2f 67 38 20 11 80 0a 80 18 70 03
Mar  5 19:33:00 nlcp03 kernel: 00000050: c2 7b 00 00 01 01 08 0a 28 b6 d5 10 17 be b6 a8
Mar  5 19:33:00 nlcp03 kernel: 00000060: 00 00 7a a4 00 00 11 00 00 00 00 00 ad 3a 05 5c
Mar  5 19:33:00 nlcp03 kernel: 00000070: 00 00 80 00 00 00 11 00 00 00 00 00 cc 59 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000080: 00 00 03 e4 00 00 11 00 00 00 00 00 e7 03 80 00
Mar  5 19:33:00 nlcp03 kernel: 00000090: 04 4b 00 00 01 01 08 0a 28 b6 d4 21 17 be b5 de
Mar  5 19:33:00 nlcp03 kernel: 000000a0: 00 00 40 58 00 00 11 00 00 00 00 00 ad 7b 8d e4
Mar  5 19:33:00 nlcp03 kernel: 000000b0: 00 00 39 50 00 00 11 00 00 00 00 00 c4 5a c0 00
Mar  5 19:33:00 nlcp03 kernel: mlx5_core 0000:c1:00.0 enp193s0f0np0: ERR CQE on SQ: 0x115c
Mar  5 19:33:00 nlcp03 kernel: mlx5_core 0000:c1:00.0 enp193s0f0np0: Error cqe on cqn 0x59, ci 0x222, qn 0x1107, opcode 0xd, syndrome 0x4, vendor syndrome 0x51
Mar  5 19:33:00 nlcp03 kernel: 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000030: 00 00 00 00 01 00 51 04 0a 00 11 07 b2 75 47 d2
Mar  5 19:33:00 nlcp03 kernel: WQE DUMP: WQ size 1024 WQ cur size 0, WQE index 0x275, len: 64
Mar  5 19:33:00 nlcp03 kernel: 00000000: 00 b2 75 0a 00 11 07 04 00 00 00 08 00 00 00 00
Mar  5 19:33:00 nlcp03 kernel: 00000010: 00 00 00 00 c0 00 00 00 00 00 00 00 00 12 00 1c
Mar  5 19:33:00 nlcp03 kernel: 00000020: 73 00 09 99 b8 59 9f c7 43 ce 08 00 45 01 05 00
Mar  5 19:33:00 nlcp03 kernel: 00000030: 00 00 04 fc 00 00 11 00 00 00 00 00 b1 d6 80 14
Mar  5 19:33:00 nlcp03 kernel: mlx5_core 0000:c1:00.0 enp193s0f0np0: ERR CQE on SQ: 0x1107

Dette er ikke ideelt, fordi det betyder, at netværkskortet stødte på fejl i CQE (Completion Queue Entry) for SQ (Send Queues), hvilket forhindrede det i at behandle netværkspakker korrekt.

Dette kan ske af en række årsager, alt fra et simpelt driverproblem til defekt hardware.

Systemet blev dog responsivt igen, og vi så ingen problemer i cirka en time, men til sidst begyndte vi at se fejl på TX (Transmission), altså udgående trafik:

[6645621.018524] mlx5_core 0000:c1:00.0 enp193s0f0np0: TX timeout detected
[6645621.018551] mlx5_core 0000:c1:00.0 enp193s0f0np0: TX timeout on queue: 10, SQ: 0x1107, CQ: 0x59, SQ Cons: 0x9204 SQ Prod: 0x9210, usecs since last trans: 310839000
[6645621.018565] mlx5_core 0000:c1:00.0 enp193s0f0np0: TX timeout on queue: 28, SQ: 0x1161, CQ: 0xb3, SQ Cons: 0x70b0 SQ Prod: 0x70cd, usecs since last trans: 66129000

Vi besluttede til sidst at genstarte systemet i håb om, at det blot var et enkeltstående problem på grund af det indledende driverproblem, da hvis du aflæser og indlæser netværksdriveren, kan det til tider løse forskellige problemer.

Desværre fortsatte vi med at opleve ustabilitet i systemet med tilfældige NIC-fejl.

Der er et kendt problem mellem Mellanox NICs (som vi bruger) og 2. generations AMD EPYCs, såsom AMD EPYC 7402P, der bruges i denne specifikke server.

En mulig løsning på dette stabilitetsproblem er at indstille iommu=pt som et GRUB boot flag, hvilket nogle gange løser det. Vi lavede denne rettelse på systemet, hvilket derefter krævede at vi genstartede systemet et par gange mere, men i sidste ende løste det ikke problemet.

Dette tyder på en faktisk hardwarefejl, eller at hardwaren er på randen af at fejle. Vi besluttede at pakke vores ting, samt nogle ekstra netværkskort, og tage til datacenteret. Omkring kl. 00.15 UTC ankom vi til datacenteret og gik til serveren. Efter lidt forberedelse slukkede vi nlcp03 og flyttede diskene fra en server til en anden reserveserver, vi har tilgængelig i vores rackskab, og kl. 00.41 UTC var systemet online igen.

Vi har siden udskiftet Mellanox-netværkskortet i det gamle system med et netværkskort som vi har tilgængeligt, og vi kører nogle tests på hardwaren for at se, om problemet ligger i andet end netværkskortet. Ligeledes udfører vi også uafhængige tests på det mistænkte defekte netværkskort.

Samlet set varede nedetiden omkring en time. Det kan have været lidt mere eller mindre, det er svært at vurdere, da TCP-forbindelser lejlighedsvis virkede afhængigt af besøgende. Baseret på vores trafikgrafer anslår vi dog omkring en time, da trafikniveauerne ellers forblev normale for det tidspunkt på dagen.

Konklusion

Selvom hardwarefejl er uheldige, er vi glade for at have reserveudstyr på stedet i datacenteret, herunder bundkort, netværkskort, RAM, diske, faner og endda CPU'er, da hardwarefejl er uundgåelige.

Dette er faktisk første gang, vi har oplevet denne type hardwarefejl med vores eget udstyr. Men efter at have arbejdet i hostingbranchen i over et årti på forskellige infrastrukturprojekter, har vi stødt på en god del hardwareproblemer og komplikationer gennem årene.

Men i det mindste får vi et billede af den berørte server ud af det, som vi kan dele!

Billede af den berørte server

nlsh02 - nlsh03 flytning planlagt

Den 2. marts planlagde vi flytningen af serverne nlsh02 og nlsh03.

Disse servere er de to resterende servere, der oprindeligt blev leaset fra WorldStream, da vi byggede vores Grid Hosting platform, men siden vi har afsluttet datacenter-migreringen til Iron Mountain AMS1 med vores eget udstyr, giver det mening at flytte kunder fra disse resterende servere.

Denne flytning betyder, at berørte kunder vil blive flyttet til hurtigere og nyere hardware, under IP'er som vi ejer, samtidig med at det giver os mulighed for at standardisere hardwarekonfigurationer.

De første kunder er allerede blevet flyttet, og vi vil fortsætte flytningen over den næste måned eller to.

Faktureringssystem opgraderet

Vi har for nylig opdateret vores faktureringssystem, som er baseret på WHMCS. Denne opdatering bringer nogle nye funktioner og en række fejlrettelser til forskellige funktioner i systemet. Selvom der ikke er noget større på kundesiden af det, løser det et par problemer, vi har stået over for i den ældre version af softwaren.

Denne opdatering blev også foretaget for at sikre, at vi opgraderer, før den tidligere version når end-of-life.