Block Storage և արտադրողականությունը
Live ռեզյումե
Բլոկային պահեստը տալիս է հում սարքեր (LUN/հատոր), որոնց վերևում դուք կառուցում եք FS, LVM/ZMS և այլն։ Արտադրողականությունը որոշվում է 'կրիչի տեսակը, մուտքագրումը, հերթերը և խորությունը, բլոկի չափսերը, միացումը (SNC/EC), քեշները և խոչընդոտները, ցանցային գործարանը, ինչպես նաև I/O հատուկ ծրագիրը (rand/հաջորդական, ընթերցում/ձայնագրություն, wwww.nc/async)։ Նպատակն է ապահովել անհրաժեշտ p95/p99 ուշացումները և IOPS/բաց կայուն և կանխատեսելի։
Փայլուն հասանելիության տաքսոնոմիա
Տեղական ՝ NVMe (PCIe), SAS/SATA SSD/HDD։ Նվազագույն լատենտ, ցանցային նեղ տեղերի բացակայություն։
Ցանցային
iSCSI (Ethernet, LUN, MPIO, ALUA).
Fibre Channel (FC) (16-64G, ցածր ուշացումները, հովանոցը)։
NVME-oF: NVMe/TCP, NVME/RoCE, NVME/FC - «NVME» ցանցը, ավելի քիչ կեղծ։
HCI/բաշխված (Ceph RBD, vSAN) 'հարմար մեծացում, բայց լատինականությունը ավելի բարձր է, քննադատական է ցանցը/կոդավորումը։
Ընտրություն (ազդանշաններ)
p99 latency 241-2 ms, շատ բարձր IOPS-ը տեղական NVMe/NVMe-oF-ն է։
Կայուն «միջին» լատենտ 2-5 ms, տեսողական գործարան www.FC կամ NVMe/FC։
Բելգիայի վրա միավորումը, ավելի հեշտ է օգտագործել www.iSCSI կամ NVMe/TCP-ը։
Արձանագրությունները և դրանց առանձնահատկությունները
iSCSI 'համընդհանուր, MPIO/ALUA, զգայուն է TCP (MTU, www.load, qdepth)։
FC 'մեկուսացում, հոսքեր առանց վիզաների, WWPN, HBA գծեր և վարկեր։
NVME-oF: Զուգահեռ բազմաթիվ Disission/Completion Queues, ցածր CPU-2019, TSA-ն հնարավոր է NVMe/TCP (անհրաժեշտության դեպքում) համար։
III/EC և կրողներ
RAID10-ը նվազագույն լատենտ և կանխատեսելի IOPS-ն է։ լավատես է BD/դրամապանակների համար։
RAID5/6-ը ավելի լավ է տարաներով, ձայնագրման տուգանքը (write penalty), ընկնում է IOPS-ը nc-write-ի համար։
Erasure Coding-ը բաշխված զանգվածներում ձեռնտու է տեմպերով, բայց ձայնագրությունը «ավելի թանկ է»։
NVMe SSD-p99 տեղային; SAS SSD-ը փոխզիջում է։ HDD-ը հետևողական անցք է, բայց վատ վերք։
Հիբրիդային համակարգեր և հավասարեցում
XIV-ը հիանալի ընտրություն է մեծ ֆայլերի/BD ամսագրերի տակ։ տեղադրված «agcount», «realtime» լոգարանների համար։
ext4-ը համընդհանուր է, ուշադիր '«stride/strone e _ width» տակ։
ZMS-COW, ամբողջականության, դիպուկահարների/կրկնօրինակի ստուգում, ARC/ZIL/SLOG; nc բեռնման համար SLOG-ն NVMe-ում PLP-ի հետ։
Հավասարեցում ՝ 1MiB-aligned հատվածներ, ճիշտ «recordsize »/« blocksize» բեռի տակ։
Հերթերը, խորությունը և բլոկի չափը
IOPS-ը աճում է Queue Depth-ից, բայց աճում է նաև լատինականությունը։ նպատակը QD է, որը տալիս է անհրաժեշտ IOPS-ը p95/p99 վերահսկման ժամանակ։
Բլոկի չափը 'փոքր (4-16K) - ավելի շատ IOPS, ավելի վատ անցնող; մեծ (128K-1M) - ավելի լավ արագություն։
NVMe qpairs: Հատկացրեք միջուկներով/NUMA; iSCSI/FC: qdepth NVA/նախաձեռնողներ, MPIO քաղաքականություն։
Խոչընդոտները և FUA-ը 'write-barriers-ներն ավելացնում են պարամետրերը, բայց ավելացնում են p99; SLOG/PLP-ն փոխհատուցում է։
Multipath և հասանելիություն
MPIO/DM-Multipath 'ուղիների ագրեգացիան, անկայունությունը։
Քաղաքական գործիչները ՝ «round-robin» (հավասարակշռություն), «queue-length» (ավելի խելացի), «failover» (71-լոկոմոտիվ)։
ALUA '«նախընտրելի» ճանապարհներ ակտիվ վերահսկողի համար։
Կարևոր է, որ «բանաձև _ path _ retry», «queue _ if _ բանաձև _ path» - կոկիկ, որպեսզի չլինի «սառեցնել» I/O երկար րոպեների ընթացքում։
FC zonization: «մեկ նախաձեռնող գոտի մեկ target» (reduces blast radius)։
NVMe-oF: ANA (Asymmetric Namespace Access) — аналог ALUA.
TRIM/Wincard և cashing
TRIM/Wincard-ը ազատում է SSD բլոկները (նվազեցնում է write-amp, կայունացնում է լատինականությունը)։ Միացրեք պարբերաբար (com) կամ առցանց www.card, որտեղ թույլատրելի է։
Read-ahead օգտակար է հաջորդական ընթերցումների համար։ վնասակար է ռանդոմում։
Write-back kashi-ը միայն BBU/PLP-ից է։ հակառակ դեպքում տվյալների կորստի ռիսկը։
Ցանցային հոսքը (iSCSI/NVMe-TCP)
Առանձին SNAN/VRF սթորաջի գործարանի համար։ հաճախորդներից մեկուսացում։
MTU 9000 end-to-end; RSA/RPS-ը և IRQ-ի պինինգը NUMA-ին։
QoS/priority RoCE-ի համար (եթե lossless), ECN/RED-ի համար TCP պիկի համար։
Երկու դելֆիտ ծառեր մինչև storage (կրկնակի TOR, տարբեր ներարկման ֆիդերներ)։
Linux/host (նմուշը)
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 (հատված 'multipath. conf`):
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
}
}
Բենչմարկինգը և ավելացումը
fio-ը կոդավորման նվազագույն հավաքածու է
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
Խորհուրդ
Բաժանեք տաքությունը և չափեք, գրանցեք ջերմաստիճանը/thermal throttling։
Փորձարկեք LUN/tome-ում, ոչ թե FS-ում (եթե նպատակը «հում» երկաթի)։
Չափեք p95/p99 latency և 99։ 9% tail, նրանք «սպանում են» BD-ն։
Windows և SLO
Մետրիկները
P50/p95/p99 (read/write), IOPS, throughput, queue-depth, device busy%, merges, www.card։
Ցանցի մակարդակում 'drops, retransmits, ECN պիտակավորում, ինտերֆեյսային սխալներ։
Գրանցման մակարդակում 'վերարտադրության լամգ, rebuild/resilver առաջընթաց, write-amp, wear-level SSD։
SLO (օրինակներ)
LUN БД (OLTP): p99 write ≤ 1. 5 ms, p99 read 241։ 0 մզ, հասանելիություն 3699։ 95%.
Լոգա/ամսագրեր ՝ p95 append 242։ Հինգ մզ, բաց թողնելով 400 ՄԲ/s։
Bakaps: seq write 241 GB/s (համախմբված), RTO վերականգնումը թիվ 15
Ալերտա
p99 latency> N րոպեի շեմն է, IOPS-ի քայքայումը նույն QD-ում, read-modify-write աճը RAID5/6-ում, գերտաքացման/thermal throtttle SSD, որը սկսվեց/խրված ռեբիլդները։
Kubernetes и CSI
PVC/Storts Class: Պարամետրեր 'reclaimPolicy "," volumeBindingMode = WaitFirStonsumer "(ճիշտ տեղադրում)," allows VolumeeExpansion "։
Vendore CSI-plagins: Crupshots/clons, QoS/արտադրողական քաղաքականություն, volume-topology։
Modes: RWO-ի համար BD/steit-ի համար, RWX-ը զգուշավոր է (սովորաբար ալյումինե/ցանցի միջոցով)։
Topology/Affinity: Pin Pin-ը ստորագիայի կողքին (ցածր լատենտ)։
Կարևոր է 'HPA/MSA-ը չի «բուժում» վատ սկավառակը։ պլանավորեք SLO tomov, օգտագործեք PodMedrupics Budget stateful ցանցերի համար։
Դիպուկահարներ, կլոններ, Consistency Drups
Crash consistent-consistent-ը արագ է, բայց հնարավոր է BD-ի անհամաձայնությունը։
App-consistent - quiesce (fsfreeze, pre/post hooks BD) ջութակների միջոցով։
Consistency Group (CG) - միաժամանակ մի քանի LUN (գործարքային համակարգեր) համար։
Կլոնները արագ dev/test միջավայր են առանց պատճենման։
Անվտանգություն և ընկերակցություն
iSCSI CHAP/Mutium CHAP, MSAN/VRF մեկուսացում։
NVMe/TCP-ը TFC-ի հետ 'միջքաղաքային/բազմաբնույթ պարամետրերի համար։
«Հանգիստ» կոդավորումը ՝ LUKS/dm-crypt, wwww.f-encrypting drives (TCG Opal), KHL-ի բանալիները։
Աուդիտ 'ով mappate LUN, FC գոտիների փոփոխություն, multipath փոփոխություններ։
DR և վիրահատություն
Սինխրոն կրկնօրինակը (RPO 350) մեծացնում է լատենտությունը, կարճ հեռավորությունները։
Asinhronnaya (RPO = N min) - գեորեսթիա, ընդունելի է BD մեծամասնության համար ամսագրերի հետ։
Runbooks: MPIO ճանապարհի կորուստ, միգրանտների կորուստ, rebuild սկավառակ, փամփուշտի քայքայումը, կայքի տեղափոխումը։
Ծառայության պատուհանները '«rolling» վերահսկիչներ, ռեբիլդի լիմիտներ, որպեսզի չուտեն։
FinOps (արտադրողականության արժեքը)
/ IOPS դոլար և $/ms p99 - ավելի օգտակար «դոլար/TB» OLTP-ի համար։
Tiering: տաք OLTP - NVMe/RAID10; լրագրողներ/արխիվ - HDD/EC։
Պահուստները և ամորտիզացիան 'պլանավորեք աճը 30-50 տոկոսով IOPS; պահեք պահեստամասերը։
Egress/գործարան 'առանձին բյուջե storage ցանցի և HBA/NIC նորարարությունների համար։
Ներդրման թուղթ
- Ընտրվել է արձանագրություն (NVMe-oF/FC/iSCSI) և մեկուսացման գործարան։
- Նախագծված են RF/EC և փամփուշտները բեռնման տեսակի (OLTP/log/bakap)։
- MPIO/ALUA/ANA և թայմաուտներ; ստուգվել է failover/restore։
- FC/հավասարումը RF-ի տակ, ներառված է TRIM/Wincard-ում։
- Թյունինգը հերթերով/qdepth/read-ahead; vaio fio (randread/write 4k, seq 1M)։
- Սկավառակներ/ճանապարհներ/p95/p99, ալտերտեր և throttle։
- Սնապշոտները (ap-consistent) և CG; DR/վերականգնումը։
- Կոդավորումը և CHAP/TRK; բանալիներ KFC; վիրահատության աուդիտ։
- Kubernetes/CSI պարամետրերը, տեղաբանությունը և QoS-ը հատորով։
Տիպիկ սխալներ
Մեկ ճանապարհ առանց MPIO www.single of failure։
RAID5/6-ը nc-write OLTP-ի տակ տեղադրվում է բարձր p99 write։
Ոչ TRIM-ը կանխատեսում է write-amp աճը և SSD-ի քայքայումը։
QD-ը չափազանց մեծ է IOPS-ի «գեղեցիկ» և սարսափելի tail BD-ի համար։
Առցանց www.card-ը OLTP-ի «տաք» հատորների վրա ցույց է տալիս լատենտության ցատկ։
"queue _ if _ բանաձև _ path 'առանց թայմաուտի" կախված "ծառայություններն են վթարի ժամանակ։
NVMe-ի և HDD-ի խառնուրդը մեկ փամփուշտի մեջ անկանխատեսելի լատենտ է։
Հատուկ iGaming/fintech համար
Դրամապանակ/գործարքային BD: NVMe + RAID10, սինխրոն ամսագիր առանձին SLOG/NVMe, p99 write 351։ 5 ms, CG-cupshots։
Հերթերը/հակաֆրոդը 'հաջորդական լոգները մեծ բլոկներ են, բարձր բաց, առանձին LUN-ը ամսագրերի և տվյալների տակ։
Pike TPS (Records/խաղեր): pre-warm cash BD, headrope 2430 տոկոսը, thermal throttle, burn-rate SLO-ի վերահսկողությունը։
Կարգավորիչ ՝ LUN ծածկագրում, mapings, DR ուսուցումներ, RPO/RTO հաշվետվություններ։
Արդյունքը
Արդյունավետ բլոկային պահեստը ճիշտ արձանագրություն է + ճիշտ տրամադրված գծեր և qdepth + համարժեք MS/EC + քեշի/խոչընդոտների կարգապահություն + մեկուսացված գործարան։ Ամրագրեք ամեն ինչ runbook-ah-ում, չափեք p95/p99, validirute fio-պրոֆիլներով, ավտոմատ և DR-ով, և կստանաք կանխատեսելի լատենտ և IOPS, որոնք անհրաժեշտ են ապրանքի և դրամական հոսքի կրիտիկական ուղիների համար։