PowerFlex-SDCs haben IO-Fehler nach dem Hinzufügen eines neuen SDS zum Cluster

Summary: Nach dem Hinzufügen eines neuen SDS zum PowerFlex-Cluster und dem erneuten Ausbalancieren von Daten auf dem neuen SDS zeigen einige SDCs I/O-Fehler an

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

- SDS wurde zum Cluster hinzugefügt (aus MDM-Ereignissen)

2022-03-07 18:28:07.080 MDM_CLI_CONF_COMMAND_RECEIVED INFO     	 Command add_sds received, User: 'admin'. [4576114] protection_domain with ID a876543f00000000, fault_set N/A, 

New SDS name: sds12, Hostnames: 172.1.0.12, Port: 7072
2022-03-07 18:28:07.324 CLI_COMMAND_SUCCEEDED         INFO     	 Command add_sds succeeded. [4576114] ID: 7d120650000002f

 - SDC-Protokolle zeigen Kernel-Stack-Traces beim Versuch, eine Verbindung zum neuen SDS herzustellen. Diese können mehrmals angezeigt werden, wenn der SDC versucht, eine Verbindung zum neuen SDS herzustellen:

 
022-03-07T18:29:02.880040-05:00 sdc32 kernel: net_sched: page allocation failure: order:4, mode:0x104020
2022-03-07T18:29:02.880170-05:00 sdc32 kernel: CPU: 16 PID: 5662 Comm: net_sched Kdump: loaded Tainted: P           OE  ------------   3.10.0-1062.el7.x86_64 #1
2022-03-07T18:29:02.880242-05:00 sdc32 kernel: Hardware name: Dell Inc. PowerEdge R740xd/5XXXXX, BIOS 2.4.8 11/26/2019
2022-03-07T18:29:02.880355-05:00 sdc32 kernel: Call Trace:
2022-03-07T18:29:02.880453-05:00 sdc32 kernel: [<ffffffffbb179262>] dump_stack+0x19/0x1b
2022-03-07T18:29:02.880553-05:00 sdc32 kernel: [<ffffffffbabc23d0>] warn_alloc_failed+0x110/0x180
2022-03-07T18:29:02.880623-05:00 sdc32 kernel: [<ffffffffbb1747fc>] __alloc_pages_slowpath+0x6b6/0x724
2022-03-07T18:29:02.880709-05:00 sdc32 kernel: [<ffffffffc09c021e>] ? netAddress_ToStrCopy+0x2de/0x520 [scini]
2022-03-07T18:29:02.880787-05:00 sdc32 kernel: [<ffffffffbabc6b84>] __alloc_pages_nodemask+0x404/0x420
2022-03-07T18:29:02.880851-05:00 sdc32 kernel: [<ffffffffbac14c68>] alloc_pages_current+0x98/0x110
2022-03-07T18:29:02.880922-05:00 sdc32 kernel: [<ffffffffbabc117e>] __get_free_pages+0xe/0x40
2022-03-07T18:29:02.880995-05:00 sdc32 kernel: [<ffffffffbac2052e>] kmalloc_order_trace+0x2e/0xa0
2022-03-07T18:29:02.881053-05:00 sdc32 kernel: [<ffffffffbac24571>] __kmalloc+0x211/0x230
2022-03-07T18:29:02.881110-05:00 sdc32 kernel: [<ffffffffc0988274>] mapClass_AllocAndInitObj+0x44/0x140 [scini]
2022-03-07T18:29:02.881167-05:00 sdc32 kernel: [<ffffffffc098959e>] mapClass_UpdateAll+0x40e/0x9b0 [scini]
2022-03-07T18:29:02.881229-05:00 sdc32 kernel: [<ffffffffc09c9994>] ? mosMitSchedThrd_CurThrdOurs+0x64/0x90 [scini]
2022-03-07T18:29:02.881298-05:00 sdc32 kernel: [<ffffffffc099aa07>] mapMdm_HandleObjUpdate_CK+0x327/0x730 [scini]
2022-03-07T18:29:02.881360-05:00 sdc32 kernel: [<ffffffffc099c070>] ? mapMdm_SendUpdateReq_CK+0xf0/0xed0 [scini]
2022-03-07T18:29:02.881419-05:00 sdc32 kernel: [<ffffffffc099c4b0>] mapMdm_SendUpdateReq_CK+0x530/0xed0 [scini]
2022-03-07T18:29:02.881480-05:00 sdc32 kernel: [<ffffffffc09a704f>] ? netSock_DoIO+0xef/0x7d0 [scini]
2022-03-07T18:29:02.881543-05:00 sdc32 kernel: [<ffffffffc09aaf47>] ? netChanThrottler_TryToWakeupWaiterOfCond+0x27/0x100 [scini]
2022-03-07T18:29:02.881606-05:00 sdc32 kernel: [<ffffffffc09ab118>] ? netChanThrottler_TryToWakeupWaiter+0x58/0x80 [scini]
2022-03-07T18:29:02.881660-05:00 sdc32 kernel: [<ffffffffc095cc80>] ? netChan_SendReq_CK+0x90/0xa70 [scini]
2022-03-07T18:29:02.881716-05:00 sdc32 kernel: [<ffffffffc095cdd0>] netChan_SendReq_CK+0x1e0/0xa70 [scini]
2022-03-07T18:29:02.881775-05:00 sdc32 kernel: [<ffffffffc09699c5>] netCon_SendReq_CK+0x175/0x590 [scini]
2022-03-07T18:29:02.881835-05:00 sdc32 kernel: [<ffffffffc0963cf7>] ? netRPC_SendDone_CK+0x47/0xab0 [scini]
2022-03-07T18:29:02.881890-05:00 sdc32 kernel: [<ffffffffc0963dd3>] netRPC_SendDone_CK+0x123/0xab0 [scini]
2022-03-07T18:29:02.881959-05:00 sdc32 kernel: [<ffffffffc09c9c24>] mosMit_RunWithTLS+0x54/0x60 [scini]
2022-03-07T18:29:02.882017-05:00 sdc32 kernel: [<ffffffffc09cbb92>] mosMitSchedThrd_ThrdEntry+0x1a2/0x500 [scini]
2022-03-07T18:29:02.882071-05:00 sdc32 kernel: [<ffffffffc09c82f0>] ? mosTicks_DestroyEnvSpecific+0x10/0x10 [scini]
2022-03-07T18:29:02.882126-05:00 sdc32 kernel: [<ffffffffc09c8310>] mosOsThrd_Entry+0x20/0x50 [scini]
2022-03-07T18:29:02.882185-05:00 sdc32 kernel: [<ffffffffbaac50d1>] kthread+0xd1/0xe0
2022-03-07T18:29:02.882240-05:00 sdc32 kernel: [<ffffffffbaac5000>] ? insert_kthread_work+0x40/0x40
2022-03-07T18:29:02.882294-05:00 sdc32 kernel: [<ffffffffbb18bd37>] ret_from_fork_nospec_begin+0x21/0x21
2022-03-07T18:29:02.882351-05:00 sdc32 kernel: [<ffffffffbaac5000>] ? insert_kthread_work+0x40/0x40
2022-03-07T18:29:02.891431-05:00 sdc32 kernel: ScaleIO mapClass_AllocAndInitObj:1301 :Error: Failed to allocate memory 38480.Cannot process MDM response



 - In den SDC-Protokollen werden dann I/O-Fehler angezeigt:
 

2022-03-07T18:49:03.652009-05:00 sdc32 kernel: ScaleIO mapMultiHead_UpdateInPlace:561 :Warning: Invalid primaryTgtIdx 47 at 2. Multi-head ID dd990042.
2022-03-07T18:49:03.652130-05:00 sdc32 kernel: ScaleIO mapClass_UpdateAll:614 :Error: Object ffff948c7f350000 (class multi_head) failed to update in place.status NO_RESOURCES (67)
2022-03-07T18:49:04.662144-05:00 sdc32 kernel: ScaleIO mapVolIO_ReportIOErrorIfNeeded:491 :[67641433832] IO-ERROR Type READ. comb: 6ecc80210154. offsetInComb 14536800. SizeInLB 256. SDS_ID 7dd0d24700000033. Comb Gen 21c1. Head Gen 222c. StartLB 5fb1ac860.
2022-03-07T18:49:04.662268-05:00 sdc32 kernel: blk_update_request: I/O error, dev scinic, sector 25687672672


 

Auswirkungen

I/O-Fehler auf einigen SDCs



 

Cause

Das Hostbetriebssystem, auf dem der SDC ausgeführt wird, verfügt nicht mehr über zusammenhängende Arbeitsspeicherblöcke im Bereich von 64 KB. Der Fehler bei der Seitenzuordnung: Reihenfolge: 4" meldet uns, dass es sich um einen 64-KB-Block handelt, der nicht verfügbar ist. Der SDC bittet das Betriebssystem um eine Speicherzuweisung, um den neuen Sockel zu erstellen und eine Verbindung zum neu hinzugefügten SDS herzustellen, was jedoch fehlschlägt. Wenn der SDC keine Verbindung zum neuen SDS herstellen kann und die Daten auf dem neuen SDS neu verteilt werden, führt dies zu I/O-Fehlern auf dem SDC-Host.

Resolution

Die IO-Fehler können sofort gestoppt werden, indem der neue SDS in den Instant Maintenance Mode versetzt wird. Die SDCs können ihre Daten von den verbleibenden SDSs abrufen. Beenden Sie die Wartung des SDS, sobald das Problem mit dem SDC-Speicher behoben ist. 

Hier gibt es ein paar Dinge zu tun, die alle für den Aktionsplan berücksichtigt werden sollten:

  1. Wenn eine sichere Methode erforderlich ist, um das Problem zu beheben, wird das Problem durch einen Neustart des SDC-Hosts behoben. Das Betriebssystem wird neu initialisiert und die vorherige Speicherfragmentierung wird beseitigt
     
  2. Wenn ein Neustart nicht möglich ist, verwenden Sie den folgenden Befehl. Es versucht, den fragmentierten Speicher so weit wie möglich zurückzugewinnen und zu komprimieren. Es ist nicht garantiert, dass dies funktioniert, und kann für die wenigen Sekunden, in denen Speicherfragmente zurückgewonnen/komprimiert werden, zu Unterbrechungen für aktuelle Anwendungen führen: 

    sync; echo 1 > /proc/sys/vm/drop_caches; echo 1 > /proc/sys/vm/compact_memory



    Überprüfen Sie die Speicherauslastung mit "cat /proc/buddyinfo", um zu sehen, ob der obige Befehl geholfen hat oder nicht. Verwenden Sie sie vor und nach dem Ausführen des obigen Befehls, um festzustellen, ob der Wert über Null steigt. Wir sehen uns die vierte Spalte in der Zeile "Node 0, zone Normal" an, die eine Anzahl von 64 KB zusammenhängenden verfügbaren Speicherblöcken angibt. In diesem Fall wird vor dem Ausführen des obigen Befehls zum Zurückgewinnen/Komprimieren Folgendes angezeigt:

    sdc32:~ # cat /proc/buddyinfo
    Node 0, zone      DMA        1        0       0      1      2      1      1      0      1      1      2
    Node 0, zone    DMA32        9        5       7      5      9      6      8      6      7      5    295
    Node 0, zone   Normal   909921  1263646  202478      0<===  0      0      0      0      0      0      0
    Node 1, zone   Normal	 39085	      0	      0      0      0      0      0      0      0      0      0

     

  3. Überprüfen Sie die Einstellungen für die Speicherüberbelegung auf dem Kernel mit "sysctl -a". Wenn der Kernel die Standardeinstellung wie folgt verwendet:
    vm.overcommit_memory = 0
    vm.overcommit_ratio = 50

    Es wäre vorteilhaft, mit dem Betriebssystemanbieter über die Änderung dieser Parameter wie folgt zu sprechen, um dem Betriebssystem mehr Speicher zur Verfügung zu stellen, mit dem es nach einem Neustart arbeiten kann, und dieses Problem in Zukunft zu vermeiden:
    vm.overcommit_memory = 2
    vm.overcommit_ratio = 98
     
  4. Der Linux-Kernel muss möglicherweise aktualisiert werden, wenn dies zu einem regelmäßigen Muster der Speicherfragmentierung des Betriebssystems wird

 

Betroffene Versionen

Alle PowerFlex-SDCs können von Problemen mit der Speicherfragmentierung des Betriebssystems betroffen sein.
 

Affected Products

PowerFlex Software
Article Properties
Article Number: 000197199
Article Type: Solution
Last Modified: 09 Jun 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.