Puncte:0

Verificarea RAID săptămânală care îmi afectează sistemul - vreo modalitate de a atenua?

drapel ml

Am primit recent gazda mea web (Hetzner) să adauge unități SATA plătite de 16 TB la serverul meu web. În prezent, se folosesc 2,5 TB dintre ele. Sunt în oglindă RAID 1.

Am și două unități nVME de 4TB cu 700GB în prezent pe ele, tot RAID 1 în oglindă.

În fiecare săptămână, CentOS lansează un cronjob pentru a executa o „verificare” pe ambele matrice md ale mele. Se întâmplă concomitent, cel nVME terminându-se după 5 ore. Cel SATA durează 18 ore dureroase, la 200 MB/sec tot timpul.

# Executați raid-check la nivel de sistem o dată pe săptămână, duminică, la ora 1:00, în mod implicit
0 1 * * Sun root /usr/sbin/raid-check

Serverul meu este destul de puternic, cu un EPYC de 32 de nuclee și 128 GB de ram, dar observ o încetinire a IO atunci când se execută această verificare.

  1. este necesar să rulați acestea săptămânal?

  2. 200 MB/sec * 18 ore înseamnă că ocupă toți cei 16 TB, nu doar spațiul ocupat. Se poate face acest lucru mai inteligent/mai leneș în vreun fel, astfel încât să ruleze doar pe spațiul ocupat?

  3. ar putea fi acest job Grozavd sau similar? Apreciez că ar dura mai mult, dar ar putea fi de preferat. vezi editarea de mai jos

  4. Ar fi o idee proastă întreruperea scriptului în acest lucru? Deci, în loc de 18 ore într-o singură lovitură, aș putea face (să zicem) 3 ore pe noapte?

  5. este aceasta o problemă pe care o suferă toată lumea sau am luat niște decizii proaste? M-ar face mult mai fericit instalarea unei plăci raid hardware, de exemplu?

Editați | ×

Am descoperit acum /etc/sysconfig/raid-check si schimbata NICE=scăzut la NICE=inactiv. Cred că nu voi ști ce diferență face asta până săptămâna viitoare.

paladin avatar
drapel id
Utilizați btrfs-raid1 (prin utilizarea sistemului de fișiere btrfs) în loc de stupid mdadm raid1.
Codemonkey avatar
drapel ml
Poți să-mi spui mai multe @paladin - de ce ar fi mai bine? Și presupun că nu le pot converti în loc, ar trebui mai întâi să mut datele pe alte unități, apoi să mă întorc? Sunt un dezvoltator full stack care gestionează propria mea afacere/server/site, sunt bucuros să recunosc că acesta nu este domeniul meu de expertiză. La naiba, nu am un domeniu de expertiză zilele astea!
paladin avatar
drapel id
Sistemul de fișiere btrfs acceptă raid la nivel de sistem de fișiere, în timp ce mdadm face raid la nivel de bloc. btrfs creează, de asemenea, suma de verificare a tuturor fișierelor și a tuturor datelor, în timp ce mdadm nu. mdadm este doar prost. btrfs compară toate metadatele și toate datele cu suma de control și, de asemenea, poate să le compare cu o copie (raid1 sau copie dup). Dacă ceva este corupt, numai fișierul corupt va fi reparat, nu este nevoie de o verificare a întregului nivel de bloc de disc. Dar vă rugăm să citiți mai întâi despre btrfs, deoarece unele funcții ale acestui sistem de fișiere sunt diferite de ext4 și co..
paladin avatar
drapel id
Ar trebui să citiți mai multe despre el [aici](https://btrfs.wiki.kernel.org/index.php/Main_Page). btrfs este gata de producție și stabil pentru utilizare atunci când îl utilizați în mod corect. Voi scrie un mic rezumat mai târziu. PS nu ar trebui să utilizați modul btrfs-raid5 sau btrfs-raid6, deoarece acele moduri sunt experimentale și foarte periculoase (mai periculoase decât raid0). Un sistem de fișiere btrfs ar trebui să fie întotdeauna montat cu opțiunea de montare `noatime`.
Puncte:2
drapel za

Nu, MD RAID nu poate fi mai inteligent decât asta. Dacă doriți să verificați doar zonele folosite, utilizați ZFS sau poate BTRFS.

Verificarea săptămânală este prea des. Faceți acest lucru lunar sau chiar o dată la două luni.

Nu știu ce face cu adevărat acest NICE. Dacă setează I/O-ul frumos al procesului de kernel [mdX_resync], este bine și folosește inactiv. Ceea ce puteți limita este lățimea de bandă a verificării: este setată în /sys/block/mdX/md/sync_speed_max fișier în kB/s. Acesta este un fișier virtual, de ex. va fi resetat după repornirea sistemului.

Apropo, este limitat la 200 MB/s în mod implicit și se pare că atingeți această limită. Puteți crește viteza pentru SSD-uri (setați 5000000 și vedeți în ce oră vor fi verificate). Și în loc să-l „pauzăm” pentru HDD-uri, m-aș juca cu limite (de exemplu, în perioadele de încărcare mare, aș seta o limită inferioară, în timpul inactiv aș seta 600000 â SATA 6 Gb/S lățime de bandă maximă).

Mă îndoiesc că placa HW RAID va face lucrurile mult mai bine.

drapel jm
O placă hardware RAID va face lucrurile mult mai bine.Comanda md checkarray scanează fiecare sector al fiecărui disc pentru consistență și putregaiul biților. Acest lucru se realizează prin procesul de citire a fiecărui bloc, deci este intens I/O și oarecum CPU. Cu un raid hardware, aceste funcții sunt rulate din interiorul cardului, astfel încât nicio I/O pe magistrală și CPU-ul nu este implicat.
Codemonkey avatar
drapel ml
Interesant, multumesc. Cu siguranță mi s-a părut ciudat că verificarea nVME a durat atât de mult, încât limita de 200 MB/s are sens. Deși aș dori să rulez jobul mai rar, cred că Debian optează pentru lunar și RHEL săptămânal. Cine poate spune care este corect... poți să înțelegi de ce crezi că săptămânal este „prea des”?
Codemonkey avatar
drapel ml
În plus, știți în ce moment raid-check va reîncărca fișierul conf? Sau cum să facă asta? Am încercat să las verificările la inactiv (`echo idle > /sys/devices/virtual/block/mdX/md/sync_action`) și apoi am pornit din nou, dar asta nu pare să o facă. (Am setat `MAX_CONCURRENT=1` ​​și le face fericit pe amândouă în același timp chiar acum)

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.