Block Storage жана аткаруу
Кыскача резюме
Блоктук сактоо сиз FS, LVM/ZFS ж.б. куруп жаткан чийки түзмөктөрдү (LUN/том) берет. Аткаруу аныкталат: медиа түрү, кирүү протоколу, кезек жана тереңдиги, блок көлөмү, коддоо схемасы (RAID/EC), кэштер жана тоскоолдуктар, тармактык фабрика, ошондой эле үлгү I/O белгилүү бир колдонмо (rand/ырааттуу, окуу/жазуу, 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 ms, абдан жогорку IOPS → жергиликтүү NVMe/NVMe-oF.
- Туруктуу "орто" 2-5 ms жашыруун, жетилген фабрика → 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; DD/капчыктар үчүн оптималдуу.
RAID5/6 - жакшы сыйымдуулугу, жазууга айып (жаза), sync-write үчүн IOPS түшөт.
бөлүштүрүлгөн катар Erasure Coding - кубаттуулугу боюнча пайдалуу, бирок жазуу "кымбат".
NVMe SSD - p99 жогорку; SAS SSD - компромисс; HDD - ырааттуу өткөрүү, бирок начар жолугушуу.
Файлдык системалар жана тегиздөө
XFS - чоң файлдар/DD журналдары үчүн мыкты тандоо; ылайыкташтырылган 'agcount', 'realtime' логиндер үчүн.
ext4 - универсалдуу, кылдаттык менен 'stride/stripe _ width' RAID астында.
ZFS - CoW, бүтүндүгүн текшерүү, snapshots/реплика, ARC/ZIL/SLOG; sync жүктөр үчүн - PLP менен NVMe боюнча SLOG.
тегиздөө: 1MiB-aligned бөлүмдөрү, туура 'recordsize '/' blocksize' жүк астында.
Кезек, тереңдиги жана көлөмү
IOPS Queue Depth менен өсөт, бирок өсүп жана жашыруун; максаты - QD, p95/p99 көзөмөлдөөдө керектүү IOPS берет.
Блок көлөмү: майда (4-16К) - көп IOPS, начар өткөрүү; ири (128К-1М) - жогорку ылдамдык.
NVMe qpairs: ядро/NUMA; iSCSI/FC: qdepth НВА/демилгечилери, MPIO саясаты.
Барьерлер жана FUA: камтылган write-барьерлер ишенимдүүлүктү жогорулатат, бирок 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 Free SSD блоктору (write-amp азайтат, жашыруун турукташтырат). үзгүлтүксүз (cron) же онлайн discard жол бар.
Read-ahead ырааттуу окуу үчүн пайдалуу; рандом учурунда зыяндуу.
Write-back кэш контроллер - BBU/PLP менен гана; болбосо маалыматтарды жоготуу коркунучу.
Тармак стек (iSCSI/NVMe-TCP үчүн)
Storage Factory үчүн өзүнчө VLAN/VRF; кардар трафиктен обочолонуу.
MTU 9000 end-to-end; RSS/RPS жана NUMA үчүн IRQ пиннинг.
RoCE үчүн QoS/priority (эгер lossless), TCP чокулары үчүн ECN/RED.
Эки көз карандысыз тамеки дарактар storaj (Double 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
}
}
Benchmarking жана Profile
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.
- FS эмес, LUN/том боюнча сыноо (максаты "чийки" темир болсо).
- p95/p99 latency жана 99 өлчөө. 9% tail - алар "өлтүрүп" DD болуп саналат.
Мониторинг жана SLO
Метрикасы:- Жашыруун p50/p95/p99 (read/write), IOPS, throughput, queue-depth, device busy%, merges, discard.
- тармак деъгээлинде: drops, retransmits, ECN-белгилөө, интерфейстик каталар.
- Массивдин деңгээлинде: репликация, rebuild/resilver прогресс, write-amp, wear-level SSD.
- LUN БД (OLTP): p99 write ≤ 1. 5 мс, p99 окуу ≤ 1. 0 мс, жеткиликтүүлүгү ≥ 99. 95%.
- Логи/журналдар: p95 append ≤ 2. 5 мс, өткөрүү ≥ 400 МБ/с.
- Backaps: seq write ≥ 1 ГБ/с (бириктирилген), RTO калыбына келтирүү ≤ 15 мин.
- p99 latency> N мүнөт босогосу, ошол эле QD менен IOPS деградациясы, RAID5/6-жылы read-modify-write өсүшү, ысып/thermal throttle SSD, башталган/тыгылып rebild.
Kubernetes и CSI
PVC/StorageClass: 'reclaimPolicy', 'volumeBindingMode = WaitForFirstConsumer' (туура жайгаштыруу), 'allowVolumeExpansion' параметрлери.
Сатуучу CSI плагиндер: snapshots/клондор, QoS/аткаруу саясаты, volume-topology.
AccessModes: RWO DB/State үчүн, RWX - этият (адатта файлдык/тармак аркылуу).
Topology/Affinity: Storage (төмөн латенттүүлүк) жанында NOD үчүн PIN.
Маанилүү: HPA/VPA жаман дискти "айыктырбайт"; SLO томдорду пландаштыруу, stateful тармактары үчүн PodDisruptionBudget колдонуу.
Snapshots, клондор, Consistency Groups
Crash-consistent snapshots - тез, бирок мүмкүн эмес макулдашуу DD.
App-consistent - quiesce скрипттери аркылуу (fsfreeze, pre/post hooks DD).
Consistency Group (CG) - бир эле учурда бир нече LUN (транзакциялык системалар) үчүн.
Клондор - тез dev/сыноо чөйрө көчүрмөсү жок.
Коопсуздук жана комплаенс
iSCSI СОЛ/абсолюттук СОЛ, VLAN/VRF изоляциясы.
TLS менен NVMe/TCP - аралык борбору/көп ижара жагдайлар үчүн.
"Тынч" шифрлөө: LUKS/dm-crypt, self-encrypting drives (TCG Opal), KMS ачкычтары.
Аудит: ким mappil LUN, FC зоналарын өзгөртүү, өзгөрүүлөр multipath.
DR жана иш
Синхрондуу реплика (RPO ≈ 0) - латенттүүлүктү, кыска аралыктарды жогорулатат.
Асинхрондук (RPO = N мин) - гео-аралык.
Runbooks: MPIO жол жоготуу, контроллер жоготуу, диск rebuild, көлмөнүн бузулушу, сайтты өзгөртүү.
Тейлөө терезелери: "rolling" контроллерлор, rebild лимиттери, тамак-аш жебөө.
FinOps (аткаруу наркы)
$/IOPS жана $/ms p99 - OLTP үчүн пайдалуу "$/ТБ".
Tiering: ысык OLTP - NVMe/RAID10; репорттор/архив - HDD/EC.
Камдар жана амортизация: 30-50% IOPS өсүшүн пландаштыруу; rebild/скраб үчүн запастарын сактап.
Egress/Factory: Storage Network жана HBA/NIC жаңылоо үчүн өзүнчө бюджет.
Киргизүү чек-тизмеси
- Протокол тандалып алынган (NVMe-oF/FC/iSCSI) жана изоляцияланган фабрика.
- RAID/EC жана бассейндер жүктөө түрлөрү боюнча иштелип чыккан (OLTP/лог/backup).
- MPIO/ALUA/ANA жана таймауттар; текшерилген failover/restore.
- FS/RAID боюнча тегиздөө, регламент боюнча TRIM/Discard кирет.
- Тюнинг кезек/qdepth/read-ahead; fio профилдери менен тастыкталган (randread/write 4k, seq 1M).
- Мониторинг дисктер/жол/жашыруун p95/p99, rebild жана throttle боюнча алерт.
- Snapshot (app-consistent) жана CG; DR/калыбына келтирүү тест.
- Шифрлөө жана CHAP/TLS; KMS ачкычтары; операциялардын аудити.
- Kubernetes/CSI параметрлери, топология жана көлөмү боюнча QoS.
Типтүү каталар
Бир жолу жок MPIO → single point of failure.
RAID5/6 sync-write ALTP → жогорку p99 write астында.
Жок TRIM → write-amp өсүшү жана SSD бузулушу.
QD өтө чоң → "сулуу" IOPS жана DD үчүн коркунучтуу байланыш.
OLTP → жашыруун секирүү менен "ысык" көлөмдө онлайн discard.
'queue _ if _ no _ path' тайм жок → кырсык болгон учурда "илинген" кызматтар.
бир пулда NVMe жана HDD аралаштыруу → күтүлбөгөн жашыруун.
iGaming/Fintech үчүн өзгөчөлүктөрү
Капчык/транзакциялык БД: NVMe + RAID10, өзүнчө SLOG/NVMe боюнча синхрондуу журнал, p99 write ≤ 1. 5 ms, CG-снапшот.
Төлөм кезектери/антифрод: ырааттуу логиндер → чоң блоктор, жогорку өткөрүү, журнал жана маалыматтар үчүн өзүнчө LUN.
Жогорку TPS (турнирлер/дан): алдын ала warm кэш DD, headroom ≥ 30%, thermal throttle көзөмөлдөө, бурн-rate SLO.
Жөнгө салуучу: LUN шифрлөө, mapping аудит журналы, DR-машыгуулар, RPO/RTO боюнча отчеттуулук.
Жыйынтык
Продуктивдүү блоктук сактоо - бул туура протокол + туура орнотулган кезек жана qdepth + адекваттуу RAID/EC + тартип кэш/тоскоолдуктар + изоляцияланган фабрика. Runbook баарын бекитүү, p95/p99 өлчөө, fio профилдери менен ырастоо, snapshots жана DR автоматташтыруу - жана продукт жана акча агымынын маанилүү жолдору үчүн зарыл болгон алдын ала жашыруун жана IOPS алуу.