PowerScale OneFS 9.11 und höher: Vnodes werden nicht effizient zurückgewonnen, was dazu führt, dass Nodes OOM ausführen
Summary: Eine hohe Anzahl von Vnodes, die sich im Arbeitsspeicher ansammeln, kann dazu führen, dass ein oder mehrere Nodes in einen OOM-Zustand (Out Of Memory) geraten. Dieses Problem kann bei jedem Cluster auftreten, der Snapshots und SmartPools verwendet und auf dem OneFS 9.11 oder höher ausgeführt wird. ...
Symptoms
Eine OOM-Bedingung kann zu Node-Fehlern und einer Nichtreaktion führen, was zu Leistungseinbußen und Nichtverfügbarkeit von Daten führt. Die Anzahl der Vnodes im Arbeitsspeicher ist höher als die erforderliche maximale Anzahl an vNodes. Aktivieren oder Deaktivieren von vfs.vnlru_reuse_freevnodes (Vnode-Recycling) hat keine Auswirkung auf das Problem.
Das Problem kann anhand von OOM-Meldungen identifiziert werden. vmlogsund ein Minidump. Beispielausgabe von Nachrichten auf einem F200-Node mit 48 GB Arbeitsspeicher:
2025-06-11T05:31:56.025986+02:00 <0.4> - /boot/kernel.amd64/kernel: OOM: v_wire_count: 11262575, v_active_count: 7 events_since_last_log 674 2025-06-11T05:31:56.025992+02:00 <0.4> - /boot/kernel.amd64/kernel: Malloc Pigs: 2025-06-11T05:31:56.025997+02:00 <0.4> - /boot/kernel.amd64/kernel: Type InUse MemUse Requests 2025-06-11T05:31:56.026004+02:00 <0.4> - /boot/kernel.amd64/kernel: iaddr_set 15701654 981354K 4078195298 2025-06-11T05:31:56.026010+02:00 <0.4> - /boot/kernel.amd64/kernel: devbuf 171845 649730K 35775475 2025-06-11T05:31:56.026016+02:00 <0.4> - /boot/kernel.amd64/kernel: isi_hash 137112 505157K 760464664 2025-06-11T05:31:56.026022+02:00 <0.4> - /boot/kernel.amd64/kernel: newblk 4 131072K 1483813 2025-06-11T05:31:56.026027+02:00 <0.4> - /boot/kernel.amd64/kernel: inodedep 4 65536K 531073 2025-06-11T05:31:56.026035+02:00 <0.4> - /boot/kernel.amd64/kernel: vfscache 4 32817K 4 2025-06-11T05:31:56.026041+02:00 <0.4> - /boot/kernel.amd64/kernel: bar_owner_vec264 259 32256K 191809 2025-06-11T05:31:56.026047+02:00 <0.4> - /boot/kernel.amd64/kernel: linux 169103 28170K 142448723 2025-06-11T05:31:56.026052+02:00 <0.4> - /boot/kernel.amd64/kernel: statistics data 13062 20453K 1189902 2025-06-11T05:31:56.026058+02:00 <0.4> - /boot/kernel.amd64/kernel: vfs_hash 1 16384K 1 2025-06-11T05:31:56.026064+02:00 <0.4> - /boot/kernel.amd64/kernel: pagedep 4 16384K 151925 2025-06-11T05:31:56.026069+02:00 <0.4> - /boot/kernel.amd64/kernel: sysctloid 269900 14747K 274194 2025-06-11T05:31:56.026075+02:00 <0.4> - /boot/kernel.amd64/kernel: acpica 194000 12817K 3055662 2025-06-11T05:31:56.026081+02:00 <0.4> - /boot/kernel.amd64/kernel: 8kB dinodes 2315 11909K 10694470462 2025-06-11T05:31:56.026086+02:00 <0.4> - /boot/kernel.amd64/kernel: pcb 136 9230K 470386 2025-06-11T05:31:56.026092+02:00 <0.4> - /boot/kernel.amd64/kernel: Unshown bins account for 100723K 2025-06-11T05:31:56.026103+02:00 <0.4> - /boot/kernel.amd64/kernel: Total: 2628733K 2025-06-11T05:31:56.026109+02:00 <0.4> - /boot/kernel.amd64/kernel: UMA Zalloc Pigs: 2025-06-11T05:31:56.026114+02:00 <0.4> - /boot/kernel.amd64/kernel: NAME SIZE LIMIT COUNT MEM USED 2025-06-11T05:31:56.026120+02:00 <0.4> - /boot/kernel.amd64/kernel: IFSINODE 616, 0, 17222149, 11481500K 2025-06-11T05:31:56.026126+02:00 <0.4> - /boot/kernel.amd64/kernel: VNODE 584, 0, 17224440, 9842604K 2025-06-11T05:31:56.026132+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf_jumbo_p 4096, 0, 272268, 1089072K 2025-06-11T05:31:56.026137+02:00 <0.4> - /boot/kernel.amd64/kernel: VM OBJECT 272, 0, 49671, 839200K 2025-06-11T05:31:56.026143+02:00 <0.4> - /boot/kernel.amd64/kernel: UMA Slabs 0 80, 0, 3078132, 246336K 2025-06-11T05:31:56.026149+02:00 <0.4> - /boot/kernel.amd64/kernel: BUF TRIE 144, 0, 122678, 217204K 2025-06-11T05:31:56.026154+02:00 <0.4> - /boot/kernel.amd64/kernel: RADIX NODE 144, 0, 333231, 141808K 2025-06-11T05:31:56.026160+02:00 <0.4> - /boot/kernel.amd64/kernel: vmem btag 56, 0, 143433, 114884K 2025-06-11T05:31:56.026166+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf 256, *, *, 75888K 2025-06-11T05:31:56.026172+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf 256, 19265886, 284503, * 2025-06-11T05:31:56.026177+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf_packet 256, 0, 64, * 2025-06-11T05:31:56.026183+02:00 <0.4> - /boot/kernel.amd64/kernel: lki_mds_ent 160, 0, 62000, 69428K 2025-06-11T05:31:56.026189+02:00 <0.4> - /boot/kernel.amd64/kernel: md3 512, 0, 131072, 65540K 2025-06-11T05:31:56.026194+02:00 <0.4> - /boot/kernel.amd64/kernel: md0 512, 0, 131072, 65540K 2025-06-11T05:31:56.026200+02:00 <0.4> - /boot/kernel.amd64/kernel: pbuf 1024, *, *, 38760K 2025-06-11T05:31:56.026206+02:00 <0.4> - /boot/kernel.amd64/kernel: pbuf 1024, 256, 0, * 2025-06-11T05:31:56.026211+02:00 <0.4> - /boot/kernel.amd64/kernel: vnpbuf 1024, 512, 0, * 2025-06-11T05:31:56.026217+02:00 <0.4> - /boot/kernel.amd64/kernel: clpbuf 1024, 15872, 0, * 2025-06-11T05:31:56.026223+02:00 <0.4> - /boot/kernel.amd64/kernel: mdpbuf 1024, 1638, 0, * 2025-06-11T05:31:56.026228+02:00 <0.4> - /boot/kernel.amd64/kernel: nfspbuf 1024, 8192, 0, * 2025-06-11T05:31:56.026234+02:00 <0.4> - /boot/kernel.amd64/kernel: swwbuf 1024, 4096, 0, * 2025-06-11T05:31:56.026240+02:00 <0.4> - /boot/kernel.amd64/kernel: swrbuf 1024, 8192, 0, * 2025-06-11T05:31:56.026245+02:00 <0.4> - /boot/kernel.amd64/kernel: lkc_gen_ent 64, 0, 21333, 18100K 2025-06-11T05:31:56.026253+02:00 <0.4> - /boot/kernel.amd64/kernel: MAP ENTRY 96, 0, 138594, 15488K 2025-06-11T05:31:56.026259+02:00 <0.4> - /boot/kernel.amd64/kernel: Top zones: 24321352K 2025-06-11T05:31:56.026265+02:00 <0.4> - /boot/kernel.amd64/kernel: Malloc zones: 2344608K 2025-06-11T05:31:56.026270+02:00 <0.4> - /boot/kernel.amd64/kernel: Other zones: 117512K 2025-06-11T05:31:56.026276+02:00 <0.4> - /boot/kernel.amd64/kernel: UMA total: 26783472K
Die Zahl der folgenden Einträge liegt bei über 17 Millionen:
NAME SIZE LIMIT COUNT MEM USE IFSINODE 616, 0, 17222149, 11481500 VNODE 584, 0, 17224440, 9842604
Die maximale Anzahl der Vnodes beträgt 2.900.000 und befindet sich in vmlogs > kern.maxvnodes.
Die Anzahl der Vnodes kann auf dem Cluster überprüft und für die maximale Anzahl von Vnodes mit den folgenden Angaben referenziert werden: sysctlaus:
# isi_for_array -s "sysctl vfs.numvnodes" # isi_for_array -s "sysctl kern.maxvnodes"
Cause
Das Problem wird derzeit untersucht.
Resolution
Eine dauerhafte Lösung befindet sich in OneFS 9.11.0.2 und 9.12.0.0 und höheren OneFS-Versionen.
Problemumgehung:
Der aktuelle Workaround besteht darin, den Arbeitsspeichercache auf allen Nodes jede Stunde zu leeren. Die folgende Beispielschleife kann in einer Bildschirmsitzung auf einem beliebigen Node verwendet werden:
# while true; do date; isi_for_array -s 'sysctl vfs.numvnodes; isi_flush '; sleep 3600; done
isi_flush Der Befehl wird ausgeführt. Beenden Sie nicht die isi_flush Prozesses, da dies zu einer vorübergehenden Serviceunterbrechung führen kann.
Um das Löschen des Cache-Speichers weiter zu automatisieren und zuverlässiger zu gestalten, wird ein cron Der Job kann geplant werden. Im folgenden Beispiel wird der Cache jede Stunde 7 Minuten nach geleert:
Bearbeiten /etc/mcp/override/crontab mit einem beliebigen Texteditor und geben Sie Folgendes ein:
7 * * * * root pgrep isi_flush || /usr/bin/isi_flush
Weitere Informationen zum Bearbeiten von crontab finden Sie im Artikel Isilon Wie man crontab bearbeitet.
SmartLock-Compliancemodus
Für SmartLock-Cluster im Compliancemodus: sudo sollte vor hinzugefügt werden isi_for_array und isi_flushaus:
# while true; do date; sudo isi_for_array -s 'sysctl vfs.numvnodes; sudo isi_flush '; sleep 3600; done
Bei Verwendung von cron Arbeit compadmin Bearbeiten der Datei /etc/mcp/override/crontabdas crontab CLI-Tool mit -e sollte auf jedem Node verwendet werden, um die erforderliche Zeile wie unten beschrieben hinzuzufügen. Die Zeile enthält nicht die Spalte "wer", die root in /etc/mcp/override/crontab, weil es sich um eine cron Auftrag von compadmin nur.
Redigieren cron Job mit:
# crontab -e
Im Editor:
Presse i , um in den Einfügemodus zu wechseln.
Fügen Sie unter der Zeile ein :
7 * * * * pgrep isi_flush || sudo /usr/bin/isi_flush
Drücken Sie Esc.
Presse :wq! , um Änderungen zu speichern.