Puncte:2

Proxmox pe probleme de performanță și stabilitate Ceph / îndoieli de configurare

drapel uz

Tocmai am instalat un cluster de 6 servere Proxmox, folosind 3 noduri ca stocare Ceph și 3 noduri ca noduri de calcul.

Ne confruntăm cu probleme ciudate și critice cu performanța și stabilitatea cluster-ului nostru.

Accesul la VM și la Proxmox web tinde să se blocheze fără un motiv evident, de la câteva secunde la câteva minute - atunci când accesați direct prin consola SSH, RDP sau VNC. Chiar și gazdele Proxmox par să fie la îndemână, așa cum se poate vedea în această captură de monitorizare. Acest lucru creează, de asemenea, probleme cu clusterul Proxmox, unele servere care nu se sincronizează. introduceți descrierea imaginii aici

De exemplu, atunci când testați ping-ul între nodurile gazdă, ar funcționa perfect câteva ping-uri, s-ar bloca, ar continua (fără nicio creștere a timpului de ping-back - încă <1ms), ar fi blocat din nou etc.

Am avut câteva probleme de performanță inițial, dar acestea au fost rezolvate prin ajustarea MTU-urilor NIC-urilor la 9000 (+1300% îmbunătățire citire/scriere). Acum trebuie să stabilim toate acestea, pentru că acum nu este gata de producție.

Configurare hardware

Avem o arhitectură de rețea similară cu cea descrisă în documentul oficial al lui Ceph, cu o rețea publică de 1 Gbps și o rețea de cluster de 10 Gbps. Acestea sunt conectate la două plăci de rețea fizice pentru fiecare dintre cele 6 servere. introduceți descrierea imaginii aici

Noduri de server de stocare:

  • CPU: Xeon E-2136 (6 nuclee, 12 fire), 3,3 GHz, Turbo 4,5 GHz
  • RAM: 16 GB
  • Depozitare:
    • 2x RAID 1 256 GB NVMe, LVM
      • volum logic rădăcină de sistem: 15 GB (~55% gratuit)
      • schimb: 7,4 GB
      • WAL pentru OSD2: 80 GB
    • SSD SATA de 4 TB (OSD1)
    • HDD SATA de 12 TB (OSD2)
  • Controller de interfață de rețea:
    • Intel Corporation I350 Gigabit: conectat la o rețea publică de 1 Gbps
    • Intel Corporation 82599 10 Gigabit: conectat la o rețea de cluster (internă) de 10 Gbps

Noduri de server de calcul:

  • CPU: Xeon E-2136 (6 nuclee, 12 fire), 3,3 GHz, Turbo 4,5 GHz
  • RAM: 64 GB
  • Depozitare:
    • 2x RAID 1 256 GB SSD SATA
      • volum logic rădăcină de sistem: 15 GB (~65% gratuit)

Software: (pe toate cele 6 noduri)

  • Proxmox 7.0-13, instalat pe Debian 11
  • Ceph v16.2.6, instalat cu GUI Proxmox
  • Ceph Monitor pe fiecare nod de stocare
  • Manager Ceph pe nodul de stocare 1 + 3

Configurația Ceph

ceph.conf al clusterului:

[global]
     auth_client_required = cephx
     auth_cluster_required = cephx
     auth_service_required = cephx
     cluster_network = 192.168.0.100/30
     fsid = 97637047-5283-4ae7-96f2-7009a4cfbcb1
     mon_allow_pool_delete = adevărat
     mon_host = 1.2.3.100 1.2.3.101 1.2.3.102
     ms_bind_ipv4 = adevărat
     ms_bind_ipv6 = fals
     osd_pool_default_min_size = 2
     osd_pool_default_size = 3
     public_network = 1.2.3.100/30

[client]
     keyring = /etc/pve/priv/$cluster.$name.keyring

[mds]
     keyring = /var/lib/ceph/mds/ceph-$id/keyring

[mds.asrv-pxdn-402]
     gazdă = asrv-pxdn-402
     mds standby pentru nume = pve

[mds.asrv-pxdn-403]
     gazdă = asrv-pxdn-403
     mds_standby_for_name = pve

[mon.asrv-pxdn-401]
     public_addr = 1.2.3.100

[mon.asrv-pxdn-402]
     public_addr = 1.2.3.101

[mon.asrv-pxdn-403]
     public_addr = 1.2.3.102

Întrebări:

  1. Este arhitectura noastră corectă?
  2. Monitorii și Managerii Ceph ar trebui să fie accesați prin intermediul rețelei publice? (Ceea ce ne-a oferit configurația implicită a Proxmox)
  3. Știe cineva de unde vin aceste tulburări/instabilități și cum să le rezolvi?

[Editați | ×]

  1. Este corect să utilizați o dimensiune implicită a pool-ului de 3, când aveți 3 noduri de stocare? Inițial am fost tentat să folosesc 2, dar nu am putut găsi exemple similare și am decis să folosesc configurația implicită.

Probleme observate

  • Am observat că arping-ul returnează cumva ping-uri de la două adrese MAC (NIC publică și NIC privată), ceea ce nu are niciun sens, deoarece acestea sunt NIC-uri separate, legate printr-un comutator separat. Aceasta poate face parte din problema rețelei.
  • În timpul unei sarcini de backup pe una dintre VM (backup pe un server de backup Proxmox, la distanță fizică), pare să afecteze cumva clusterul. VM-ul rămâne blocat în modul de rezervă/blocat, chiar dacă backupul pare să se fi terminat corect (vizibil și accesibil pe serverul de rezervă).
  • De la prima problemă de rezervă, Ceph a încercat să se reconstruiască singur, dar nu a reușit să facă acest lucru. Este într-o stare degradată, ceea ce indică faptul că îi lipsește un daemon MDS. Cu toate acestea, verific din nou și există demoni MDS care funcționează pe nodul de stocare 2 și 3. A lucrat la reconstruirea ei înșiși până când a rămas blocat în această stare.

Iată starea:

root@storage-node-2:~# ceph -s
  cluster:
    ID: 97637047-5283-4ae7-96f2-7009a4cfbcb1
    sănătate: HEALTH_WARN
            demoni MDS de așteptare insuficiente disponibile
            Bătăi lente ale inimii OSD pe spate (cea mai lungă 10055,902 ms)
            Bătăi lente ale inimii OSD în față (cea mai lungă 10360,184 ms)
            Redundanță de date degradată: 141397/1524759 obiecte degradate (9,273%), 156 pgs degradate, 288 pgs subdimensionate
 
  Servicii:
    luni: 3 demoni, cvorum asrv-pxdn-402, asrv-pxdn-401, asrv-pxdn-403 (vârsta 4 m)
    mgr: asrv-pxdn-401(activ, de la 16m)
    mds: 1/1 demoni în sus
    osd: 6 osds: 4 în sus (din 22h), 4 in (din 21h)
 
  date:
    volume: 1/1 sănătos
    piscine: 5 piscine, 480 pg
    obiecte: 691,68k obiecte, 2,6 TiB
    utilizare: 5,2 TiB utilizat, 24 TiB / 29 TiB disponibil
    pgs: 141397/1524759 obiecte degradate (9,273%)
             192 activ+curat
             156 active+subdimensionate+degradate
             132 active+subdimensionate

[editare 2]

root@storage-node-2:~# arbore ceph osd
ID CLASA GREUTATE TIP NUME STARE REGREINTARE PRI-AFF
-1 43.65834 rădăcină implicită                                     
-3 14.55278 gazdă asrv-pxdn-401                           
 0 hdd 10.91409 osd.0 up 1.00000 1.00000
 3 ssd 3.63869 osd.3 up 1.00000 1.00000
-5 14.55278 gazdă asrv-pxdn-402                           
 1 hdd 10.91409 osd.1 up 1.00000 1.00000
 4 ssd 3.63869 osd.4 up 1.00000 1.00000
-7 14.55278 gazdă asrv-pxdn-403                           
 2 hdd 10.91409 osd.2 jos 0 1.00000
 5 ssd 3,63869 osd.5 jos 0 1,00000
drapel us
Ați monitorizat clusterul ceph în timpul acestor întreruperi? Ați observat ceva, de exemplu demonii MON care eșuează? Dacă acesta ar fi cazul, toți clienții ar trebui să se reconnecteze la următorul MON pentru a-și restabili sesiunile, ceea ce ar putea cauza așa ceva. Celălalt lucru este schimbul folosit, care ar putea provoca și întreruperi, în special OSD-urile gestionează bine utilizarea schimbului. Vă recomand să priviți mai de aproape și să monitorizați toate componentele în mai multe detalii pentru a vă simți de unde provin aceste întreruperi. Rețeaua publică pentru clienți este corectă.
drapel uz
Da, am verificat starea ceph, care a fost în regulă până la erorile menționate în editare (vezi mai sus). Există un MON pe toate cele 3 noduri de stocare și 1 MDS pe nodul 2 și 3. Utilizarea RAM a nodului este de aproximativ 10 GB din 16 disponibile, practic fără utilizare de schimb. Întrebarea 4 (tocmai am adăugat) are poate o influență asupra acestui lucru? Multumesc pentru ajutor
drapel us
Mărimea pool-ului 3 este bună, pur și simplu nu vă puteți recupera la o altă gazdă dacă domeniul dvs. de eșec este gazdă (care este implicit și recomandat), dar trebuie să așteptați până când acesta s-a recuperat. Aveți rezultatul `ceph osd tree` din momentul eșecului? Sau mai este in aceasta stare?
drapel uz
Tocmai a adăugat rezultatul „ceph osd tree” mai sus. Este încă în această stare. Se pare că este legat de CephFS și nu de RBD, dar nu sunt sigur...
drapel us
Mesajul MDS spune doar că nu aveți un demon de așteptare pentru a prelua CephFS în cazul în care un demon nu reușește. De obicei doriți să o aveți redundantă, dar nu asta este problema aici. Pentru mine încă sună ca o problemă de rețea între acele OSD-uri.
drapel us
Încă o întrebare: folosiți diferite clase de dispozitive (hdd/ssd) în regulile dvs. de zdrobire? Pentru că asta ar putea face, de asemenea, o diferență de performanță atunci când unele PG-uri sunt pe HDD-uri și altele pe SSD-uri, dar aparțin aceluiași grup. Dacă nu distingeți, atunci veți avea și majoritatea PG-urilor pe HDD-uri, deoarece au o capacitate mai mare și, prin urmare, o greutate de zdrobire mai mare.
drapel uz
Ai avut dreptate, problema a venit din probleme de rețea. Într-un fel, comutatoarele nu filtrau/separau rețelele în mod corespunzător, ceea ce a făcut ca întregul sistem să înnebunească. Rețeaua este remediată, dar clusterul Ceph nu și-a revenit încă...
drapel uz
Pentru a răspunde la cealaltă întrebare referitoare la clasa dispozitivului: am creat două hărți CRUSH diferite pentru fiecare tip de dispozitiv, pentru a crea 1 pool cu ​​SSD-uri și 1 pool cu ​​HDD (care permite, de asemenea, reglajul fin în VM-urile noastre).
drapel us
Dar se reface clusterul? Vezi progrese?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.