GH GambleHub

Blochează stocarea şi performanţa

Scurt rezumat

Stocarea în bloc oferă dispozitive brute (LUN/volum) pe care construiți FS, LVM/ZFS etc. Performanța este determinată de tipul media, protocolul de acces, cozile și adâncimea, dimensiunea blocului, schema de codificare (RAID/CE), cache-urile și barierele, țesătura de rețea și modelul I/O specific aplicației (aleatoriu/secvențial, citit/scris, sincronizat/async). Scopul este de a oferi latența necesară p95/p99 și IOPS/lățime de bandă cu robustețe și predictibilitate.

Taxonomia accesului la blocuri

Local: NVMe (PCIe), SAS/SATA SSD/HDD. Latență minimă, fără blocaje de rețea.

Reţea:
  • iSCSI (Ethernet, LUN, MPIO, ALUA).
  • Fibre Channel (FC) (16-64G, latenţă redusă, zonare).
  • NVMe-oF: NVMe/TCP, NVMe/RoCE, NVMe/FC - „nativ” NVMe prin rețea, mai puțin aeriene.
  • HCI/distribuit (Ceph RBD, vSAN): scalabilitate convenabilă, dar latența este mai mare, rețeaua/codificarea este esențială.
Selecție (semnale):
  • p99 latență ≤ 1-2 ms, IOPS foarte mare → NVMe/NVMe-oF locale.
  • Stabil „medie” latenta 2-5 ms, matur → FC sau NVMe/FC fabrica.
  • Unificat pe Ethernet, mai uşor de utilizat → iSCSI sau NVMe/TCP.

Protocoale și caracteristicile lor

iSCSI: versatilitate, MPIO/ALUA, sensibilitate la configurare TCP (MTU, descărcare, qdepth).
FC: izolare, fluxuri fără pierderi, zonare WWPN, cozi HBA și credite.
NVMe-oF: paralelism prin mai multe cozi de depunere/finalizare, sarcină CPU scăzută, TLS este posibil pentru NVMe/TCP (dacă este necesar).

RAID/CE și Media

RAID10 - latență minimă și IOPS previzibil; optim pentru baze de date/portofele.
RAID5/6 - mai bine în capacitate, scrie penalty, IOPS picături pentru sincronizare-scrie.
Codificarea ștergerii în matrice distribuite este avantajoasă din punct de vedere al capacității, dar înregistrarea este „mai scumpă”.
NVMe SSD - top p99; SSD SAS - compromis; HDD este o lățime de bandă secvențială, dar un rău aleatoriu.

Sisteme de fișiere și aliniere

XFS este o alegere excelentă pentru fișierele/jurnalele de baze de date mari; personalizabil "agcount'," timp real "pentru jurnale.
ext4 - versatil, atent la „stride/stripe _ width” pentru RAID.
ZFS - CoW, verificare integritate, instantanee/replica, ARC/ZIL/SLOG; pentru sarcini de sincronizare - SLOG pe NVMe cu PLP.
Aliniere: 1MiB-aligned partiții, corectați 'recordsize '/' blocksize' sub sarcină.

Cozi, adâncime și mărimea blocului

IOPS cresc cu adâncimea de coadă, dar la fel este și latența; țintă - QD, care oferă IOPS-ul necesar în timpul controlului p95/p99.
Dimensiune bloc: mic (4-16K) - mai mult IOPS, mai rău lățime de bandă; mare (128K-1M) - mai bine viteza end-to-end.
NVMe qpairs: alocați prin nuclee/NUMA; iSCSI/FC: HBA/iniţiatori qdepth, politici MPIO.
Bariere și FUA: barierele de scriere incluse sporesc fiabilitatea, dar cresc p99; Decalaj SLOG/PLP.

Multipath și disponibilitate

MPIO/DM-Multipath: agregarea căilor, toleranța la erori.

Politicieni: „rotund” (bilanț), „coadă de așteptare” (mai inteligent), „eșec” (pasiv).
Căile „preferate” ale ALUA față de controlerul activ.
Important: 'no _ path _ retry', 'queue _ if _ no _ path' - cu atenție pentru a nu „îngheța” I/O timp de minute lungi.
FC zonare: „o zonă inițiator - o țintă” (reduce raza de explozie).
NVMe-oF: ANA (Asymmetric Namespace Access) - аналог ALUA.

TRIM/Aruncați și caching

TRIM/Discard eliberează blocuri SSD (reduce scrierea-amp, stabilizează latența). Activați în mod regulat (cron) sau aruncați online, după caz.
Citiți mai departe este util pentru citiri consecutive; este dăunătoare în mod aleatoriu.
Scrieți cache-uri de controler - numai cu BBU/PLP; în caz contrar, riscul pierderii datelor.

Stiva de rețea (pentru iSCSI/NVMe-TCP)

Separat VLAN/VRF pentru fabrica SRF; izolarea de traficul clientului.
MTU 9000 end-to-end; RSS/RPS și fixarea IRQ la NUMA.
QoS/prioritate pentru RoCE (dacă nu se pierde), ECN/RED pentru vârfurile TCP.
Doi arbori de grăsime independenți până la storaj (TOR-uri duale, alimentatoare de putere diferite).

Linux/Tuning gazdă (Exemplu)

bash
Scheduler for NVMe echo none     sudo tee /sys/block/nvme0n1/queue/scheduler echo 1024      sudo tee /sys/block/nvme0n1/queue/nr_requests echo 0        sudo tee /sys/block/nvme0n1/queue/add_random echo 0        sudo tee /sys/block/nvme0n1/queue/iostats

Read-ahead (sequential loads)
blockdev --setra 4096 /dev/nvme0n1

iSCSI: example of aggressive timeouts and retries iscsiadm -m node --op update -n node. session. timeo. replacement_timeout -v 10 iscsiadm -m node --op update -n node. conn[0].timeo. noop_out_interval -v 5 iscsiadm -m node --op update -n node. conn[0].timeo. noop_out_timeout -v 5
Multipath (fragment "multipath. inf "):
conf defaults {
find_multipaths yes polling_interval 5 no_path_retry 12
}
devices {
device {
vendor "PURE    DELL    NETAPP    HITACHI"
path_checker tur features "1 queue_if_no_path"
path_grouping_policy group_by_prio prio alua
}
}

Benchmarking și profilare

fio - set minim de profiluri:
bash
Random read 4K, queue 32, 4 threads fio --name = randread --filename =/dev/nvme0n1 --direct = 1 --rw = randread\
--bs=4k --iodepth=32 --numjobs=4 --time_based --runtime=60

Random 4K entry (sync), log loads fio --name = randwrite --rw = randwrite --bs = 4k --iodepth = 16 --numjobs = 4\
--fsync=1 --direct=1 --runtime=60

Large block sequential recording (backups/dumps)
fio --name=seqwrite --rw=write --bs=1M --iodepth=64 --numjobs=2 --runtime=60
Sfaturi:
  • Încălzire și măsurare separată, înregistrați temperatura/throttling termic.
  • Testați pe LUN/volum, nu pe FS (dacă ținta este hardware brut).
  • Măsurați latența p95/p99 și 99. 9% coada - ei sunt cei care „ucid” baza de date.

Monitorizare și SLO

Măsurători:
  • Latență p50/p95/p99 (citire/scriere), IOPS, debit, adâncime de coadă, dispozitiv ocupat%, fuziuni, aruncare.
  • La nivel de rețea: picături, retransmiteri, marcaje ECN, erori de interfață.
  • La nivel de matrice: lag replicare, reconstrui/progresul resolver, scrie-amp, uzura nivel SSD.
SLO (exemple):
  • LUN БД (OLTP): p99 scrie ≤ 1. 5ms, p99 citeşte ≤ 1. 0 ms, disponibilitate ≥ 99. 95%.
  • Jurnale: p95 se adaugă ≤ 2. 5 ms, lăţime de bandă ≥ 400 MB/s per volum.
  • Backup-uri: seq scrie ≥ 1 GB/s (agregat), recuperare RTO ≤ 15 minute.
Alerte:
  • p99 latență> prag N minute, degradarea IOPS cu același QD, creșterea de citire-modificare-scriere în RAID5/6, supraîncălzire/accelerație termică SSD, a început/blocat coaste.

Kubernetes и CSI

PVC/StorageClass: parametrii 'revendicaPolicy', 'volumeBindingMode = WaitForFirstConsumer' (locație corectă), 'allowVolumeExpansion'.
Furnizor CSI plugin-uri: instantanee/clone, QoS/politici de performanță, volum-topologie.
AccessModes: RWO pentru baza de date/stat, RWX - cu atenție (de obicei, prin fișier/rețea).
Topologie/Afinitate: pin tampoane la noduri de lângă stocare (latență scăzută).
Important: HPA/VPA nu va „vindeca” o unitate de rău; planificați volumele SLO, utilizați PodDisruptionBudget pentru rețele statale.

Instantanee, clone, grupuri de consistență

Instantanee Crash-consistente sunt rapide, dar inconsecvențele bazei de date sunt posibile.
App-consistent - prin scripturi quiesce (fsfreeze, pre/post cârlige DB).
Consistency Group (CG) - pentru mai multe LUN-uri (sisteme tranzactionale) in acelasi timp.
Clonele sunt medii rapide dev/test fără copiere.

Siguranță și conformitate

iSCSI CHAP/CHAP reciproc, izolare VLAN/VRF.
NVMe/TCP cu TLS - pentru scenarii cross-center/multi-lease.
Criptare „în repaus”: LUKS/dm-criptă, unități de auto-criptare (TCG Opal), chei în KMS.
Audit: cine a cartografiat schimbarea zonei LUN, FC, modificări multiple.

DR și operații

Replica sincronă (RPO≈0) - crește latența, distanțe scurte.
Asincron (RPO = N min) - geo-distanță, acceptabil pentru majoritatea bazelor de date cu jurnale.
Runbooks: pierderea căii MPIO, pierderea controlerului, reconstruirea discului, degradarea piscinei, comutatorul site-ului.
ferestre de serviciu: „rulare” controlere, limite rebield, astfel încât să nu mănânce prod.

FinOps (cost per performanță)

$/IOPS și $/ms p99 sunt mai utile „$/TB” pentru OLTP.
Niveluri: hot OLTP - NVMe/RAID10; rapoarte/arhivă - HDD/CE.
Dispoziții și amortizare: Plan pentru 30-50% creștere IOPS; păstrați stocul sub rebilds/scrubs.
Ieșire/fabrică: buget separat pentru rețeaua de stocare și actualizări HBA/NIC.

Lista de verificare a implementării

  • Protocol (NVMe-oF/FC/iSCSI) și material izolat selectat.
  • Sunt proiectate RAID/EC și bazine de tip sarcină (OLTP/log/backup).
  • MPIO/ALUA/ANA și timeout configurate; verificat failover/restore.
  • FS/aliniere pentru RAID, TRIM/Eliminare activată conform regulamentului.
  • Tuning de coadă/qdepth/read-away; validat de profile fio (randread/write 4k, seq 1M).
  • Disc/cale/latență de monitorizare p95/p99, alerte la rebilds și accelerație.
  • Instantanee (app-consistent) și CG; DR/test de recuperare.
  • Criptare și CHAP/TLS; Cheile în KMS audit de operațiuni.
  • Parametrii kuberneți/CSI, topologia și QoS per volum.

Erori comune

O cale fără MPIO → un singur punct de eșec.
RAID5/6 sub sync-write OLTP → mare p99 scrie.
Nu TRIM → scrie-amp creștere și degradarea SSD.
QD este prea mare → „frumos” IOPS și coada teribil pentru baza de date.
Aruncați online volumele „fierbinți” cu salturi de latență OLTP →.
'queue _ if _ no _ path' fără timeout → servicii „înghețate” într-un dezastru.
Amestecarea NVMe și HDD în aceeași piscină → latență imprevizibilă.

iGaming/fintech specific

Portofel/baze de date tranzactionale: NVMe + RAID10, jurnal sincron pe un SLOG/NVMe separat, p99 scrie ≤ 1. 5 ms, instantanee CG.
Cozi de plată/anti-fraudă: jurnale seriale → blocuri mari, lățime de bandă mare, LUN-uri separate pentru jurnal și date.
Vârf TPS (turnee/meciuri): cache-uri de baze de date pre-cald, sală de picioare ≥ 30%, controlul accelerației termice, SLO burn-rate.
Reglementare: criptare LUN, maparea jurnalului de audit, exerciții DR, raportare RPO/RTO.

Total

Stocarea în bloc productivă este protocolul corect + cozile configurate corect și qdepth + disciplina RAID/CE + cache/barieră adecvată + țesătură izolată. Fixați totul în runbooks, măsurați p95/p99, validați cu profile fio, automatizați instantanee și DR - și obțineți latența previzibilă și IOPS necesare pentru produsele critice și căile de flux de numerar.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Telegram
@Gamble_GC
Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.