Logo GH

Block Storage және өнімділігі

Қысқаша түйіндеме

Блокты сақтау орны сіз ФС, LVM/ZFS және т.б. жасайтын шикі құрылғыларды (LUN/том) береді. Өнімділік: жеткізгіштің типімен, қол жеткізу хаттамасымен, кезектермен және тереңдікпен, блок өлшемімен, кодтау схемасымен (RAID/EC), кэштермен және тосқауылдармен, желілік фабрикамен, сондай-ақ нақты қосымшаның I/O паттерімен (рандпен/дәйекті, оқу/жазба, sync/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 ≤ 1-2 мс, өте жоғары IOPS → жергілікті NVMe/NVMe-oF.
  • Тұрақты «орташа» жасырындылығы 2-5 мс, жетілген фабрика → FC немесе NVMe/FC.
  • Ethernet біріздендіру, пайдалану оңай → iSCSI немесе NVMe/TCP.

Хаттамалар және олардың ерекшеліктері

iSCSI: әмбебаптығы, MPIO/ALUA, TCP (MTU, offload, qdepth) баптауына сезімтал.
FC: оқшаулау, шығынсыз ағындар, WWPN, HBA-кезектер және кредиттер бойынша аймақтандыру.
NVMe-oF: көптеген Submission/Completion Queues арқылы параллельділік, төмен CPU-жүктеме, TLS NVMe/TCP үшін мүмкін (қажет болған жағдайда).

RAID/EC және тасымалдаушылар

RAID10 - ең төменгі жасырындылық және болжамды IOPS; ДБ/әмияндар үшін оңтайлы.
RAID5/6 - сыйымдылығы бойынша жақсы, жазуға айыппұл (write penalty), sync-write үшін IOPS түседі.
Бөлінген массивтерде Erasure Coding - сыйымдылығы жағынан тиімді, бірақ жазба «қымбат».
NVMe SSD - p99 топтық; SAS SSD - ымыраға келу; HDD - тізбекті өткізу, бірақ нашар рандом.

Файл жүйелері және теңестіру

XFS - үлкен файлдар/журналы үшін тамаша таңдау; Тіркемелер үшін 'agcount', 'realtime' теңшелетін.
ext4 - әмбебап, RAID астында 'stride/stripe _ width' -ке мұқият.
ZFS - CoW, тұтастығын тексеру, snapshot/реплика, ARC/ZIL/SLOG; sync-жүктемелер үшін - PLP бар NVMe SLOG.
Тегістеу: 1MiB-aligned бөлімдер, дұрыс 'recordsize '/' blocksize' жүктемесі.

Кезектер, блоктың тереңдігі мен өлшемі

IOPS Queue Depth өседі, бірақ жасырын өседі; мақсат - p95/p99 бақылау кезінде қажетті IOPS беретін QD.
Блок өлшемі: ұсақ (4-16К) - IOPS-тен үлкен, өткізу деңгейі нашар; ірі (128К-1М) - үздіксіз жылдамдық жақсы.
NVMe qpairs: ядро/NUMA бойынша бөліңіз; iSCSI/FC: qdepth НВА/бастамашылар, MPIO саясаты.
Кедергілер және FUA: қосылған write-barriers сенімділікті арттырады, бірақ p99 ұлғайтады; SLOG/PLP орнын толтырады.

Multipath және қол жетімділік

MPIO/DM-Multipath: жолдарды біріктіру, істен шығу тұрақтылығы.

Саясаттар: 'round-robin' (теңгерім), 'queue-length' (ақылды), 'failover' (актив-пассив).
ALUA: белсенді контроллерге «артықшылықты» жолдар.
Маңызды: 'no _ path _ retry', 'queue _ if _ no _ path' - I/O-ны ұзақ минуттарға «мұздатпау» үшін ұқыпты.
FC аймақтандыру: «бір бастамашыл аймақ - бір таргет» (reduces blast radius).
NVMe-oF: ANA (Asymmetric Namespace Access) — аналог ALUA.

TRIM/Discard және кэштеу

TRIM/Discard SSD блоктарын босатады (write-amp төмендетеді, жасырындылықты тұрақтандырады). Рұқсат етілген жерде тұрақты (cron) немесе онлайн-discard қосыңыз.
Read-ahead дәйекті оқу үшін пайдалы; рандом кезінде зиянды.
Write-back контроллер кэштері - тек BBU/PLP; әйтпесе деректерді жоғалту тәуекелі.

Желілік стек (iSCSI/NVMe-TCP үшін)

Сторадж-фабрикасы үшін жеке VLAN/VRF; клиенттік трафиктен оқшаулау.
MTU 9000 end-to-end; RSS/RPS және NUMA үшін IRQ пиннингі.
QoS/priority үшін RoCE (егер lossless), ECN/RED үшін TCP-шыңдар.
Стораджға дейінгі екі тәуелсіз фэт-ағаш (қос TOR, әртүрлі электрмен қоректендіру фидерлері).

Тюнинг Linux/хост (таңдау)

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/томына тестілеңіз (егер мақсаты «шикі» темір болса).
  • p95/p99 latency және 99 өлшеңіз. 9% tail - олар ДБ «өлтіреді».

Мониторинг және SLO

Өлшемдері:
  • Жасырындылық p50/p95/p99 (read/write), IOPS, throughput, queue-depth, device busy%, merges, discard.
  • Желі деңгейінде: drops, retransmits, ECN-таңбалау, интерфейстік қателер.
  • Массив деңгейінде: репликация лаг, rebuild/resilver прогресс, write-amp, wear-level SSD.
SLO (мысалдар):
  • LUN БД (OLTP): p99 write ≤ 1. 5 мс, p99 read ≤ 1. 0 мс, қол жетімділік ≥ 99. 95%.
  • Логи/журналдар: p95 append ≤ 2. 5 мс, өткізу ≥ 400 МБ/с
  • Бэкаптар: seq write ≥ 1 ГБ/с (агрегатталған), қалпына келтіру RTO ≤ 15 мин.
Алерталар:
  • p99 latency> N минут шегі, сол QD кезінде IOPS деградациясы, RAID5/6 read-modify-write өсуі, қызып кету/thermal throttle SSD, басталған/тұрып қалған ребильдтер.

Kubernetes и CSI

PVC/StorageClass: 'reclaimPolicy', 'volumeBindingMode = WaitForFirstConsumer' (дұрыс орналастыру), 'allowVolumeExpansion' параметрлері.
Вендорлық CSI плагиндер: снапшоттар/клондар, QoS/өнімділік саясаты, volume-topology.
AccessModes: БД/стейт үшін RWO, RWX - сақтық (әдетте файлдық/желі арқылы).
Topology/Affinity: стораджамен қатар нодтарға арналған подов pin (төмен жасырындылық).
Маңызды: HPA/VPA нашар дискіні «емдемейді»; SLO томдарын жоспарлаңыз, stateful желілері үшін PodDisruptionBudget бағдарламасын пайдаланыңыз.

Снапшоттар, клондар, Consistency Groups

Crash-consistent снапшоттары - жылдам, бірақ ДБ-да келіспеушіліктер болуы мүмкін.
App-consistent - quiesce скрипттері арқылы (fsfreeze, pre/post hooks БД).
Consistency Group (CG) - бір мезгілде бірнеше LUN (транзакциялық жүйелер) үшін.
Клондар - көшірмесіз жылдам dev/test ортасы.

Қауіпсіздік және комплаенс

iSCSI CHAP/Mutual CHAP, VLAN/VRF оқшаулағышы.
TLS бар NVMe/TCP - орталықаралық/көп жалға алынған сценарийлер үшін.
«Тыныштықта» шифрлау: LUKS/dm-crypt, self-encrypting drives (TCG Opal), KMS кілттері.
Аудит: кім LUN маппилі, FC аймағын ауыстыру, multipath өзгерістері.

DR және операциялар

Синхронды реплика (RPO ≈ 0) - жасырындылықты, қысқа қашықтықты арттырады.
Асинхронды (RPO = N мин) - геоарақашықтық, журналдары бар БД көпшілігі үшін қолайлы.
Runbooks: MPIO жолын жоғалту, контроллерді жоғалту, диск rebuild, пулдың тозуы, торапты ауыстыру.
Қызмет көрсету терезелері: бақылаушылардың «rolling», өнімді жемеу үшін ребилд лимиттері.

FinOps (өнімділік құны)

$/IOPS және $/мс p99 - OLTP үшін «$/ТБ» пайдалы.
Tiering: ыстық OLTP - NVMe/RAID10; репорттар/мұрағат - HDD/EC.
Резервтер мен амортизация: 30-50% өсуді жоспарлаңыз IOPS; қорды ребильдтер/скрабтар үшін ұстаңыз.
Egress/Factory: HBA/NIC Storage желісі және жаңарту үшін жеке бюджет.

Енгізу чек-парағы

  • Протокол (NVMe-oF/FC/iSCSI) және оқшаулау фабрикасы таңдалды.
  • RAID/EC және жүктеме түрлері бойынша пулдар (OLTP/лог/бэкап) жобаланған.
  • MPIO/ALUA/ANA және таймауттар теңшелген; тексерілді failover/restore.
  • ФС/RAID астында теңестіру, регламент бойынша TRIM/Discard қосылған.
  • Кезектерді тюнинг/qdepth/read-ahead; fio-профильдермен валидацияланған (randread/write 4k, seq 1M).
  • p95/p99 дискілерінің/жолдарының/жасырындылығының мониторингі, rebild және throttle.
  • Snapshots (app-consistent) және CG; DR/қалпына келтіру тесті.
  • Шифрлау және CHAP/TLS; KMS кілттері; операциялар аудиті.
  • Kubernetes/CSI параметрлері, топологиясы және том бойынша QoS.

Типтік қателер

MPIO → single point of failure жоқ бір жол.
RAID5/6-write ALTP → жоғары p99 write.
TRIM → write-amp өсімі және SSD деградациясы жоқ.
QD тым үлкен → «әдемі» IOPS және DD үшін қорқынышты tail.
OLTP → латенттілік секірісі арқылы «ыстық» томдарда онлайн-discard.
'queue _ if _ no _ path' таймаусыз → авария кезінде «ілініп тұрған» сервистер.
NVMe мен HDD-ді бір пулда араластыру → болжанбайтын жасырындылық.

iGaming/финтех ерекшелігі

Әмиян/транзакциялық ДБ: NVMe + RAID10, жеке SLOG/NVMe синхронды журналы, p99 write ≤ 1. 5 мс. CG-снапшоттар.
Төлем кезектері/антифрод: жүйелі логтар → үлкен блоктар, жоғары өткізу, журнал мен деректер үшін жеке LUN.
Ең жоғары TPS (турнирлер/матчтар): алдын ала warm кэш БД, headroom ≥ 30%, бақылау thermal throttle, burn-rate SLO.
Реттеуіш: LUN шифрлау, маппингтер аудиті, DR-жаттығулар, RPO/RTO бойынша есептілік.

Жиынтығы

Өнімді блокты сақтау орны - бұл дұрыс протокол + дұрыс реттелген кезектер және qdepth + барабар RAID/EC + кэш/кедергілер тәртібі + оқшауланған фабрика. Runbook-та бәрін бекітіңіз, p95/p99 өлшеңіз, fio-профильдермен валидацияланыңыз, снапшоттарды және DR автоматтандырыңыз - және өнім мен ақша ағынының сындарлы жолдары үшін қажетті болжамды латенттілік пен IOPS аласыз.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.