Системи зберігання даних і NAS
Коротке резюме
Сховище - це поєднання медіа (SSD/NVMe/HDD), мереж (Ethernet/IB/FC), протоколів (NFS/SMB/iSCSI/S3) і ПЗ (ZFS, Ceph, NetApp, TrueNAS і т. п.), яке забезпечує продуктивність, надійність, безпеку та економіку. Правильний вибір залежить від профілю I/O (рандом/послідовний, блок/файл/об'єкт), вимог до RPO/RTO і SLO по латентності/пропускної здатності.
Таксономія сховищ
DAS (Direct Attached Storage) - диски «поруч із сервером». Мінімальна латентність, немає мережевих пляшкових горлечок, але складніше ділитися ресурсами.
SAN (Storage Area Network) - блочне сховище по FC/iSCSI/NVMe-oF. Висока продуктивність, загальні LUN-и, централізоване управління.
NAS (Network Attached Storage) - файлові кулі по NFS/SMB. Зручно для загальних директорій, логів, артефактів, медіаконтенту.
Об'єктне сховище - S3-сумісні API (Ceph RGW/MinIO/хмари). Для бекапів, логів, архівів, медіа, модельних артефактів.
Гіперконвергентні рішення (HCI) - об'єднують обчислення і зберігання (Ceph, vSAN, StarWind та ін.) для горизонтального масштабу.
Протоколи доступу
Файлові:- NFSv3/v4 - Unix/Posix середовище, стейтфул-блокування, Kerberos/KRB5i/KRB5p.
- SMB 3. x - Windows/домени AD, шифрування/підписи, multichannel, DFS.
- iSCSI - поверх Ethernet, LUN, багато шляхів (MPIO), зручно для віртуалізації/БД.
- FC/NVMe-oF - низька латентність, спеціалізовані фабрики/карти.
- S3 API - версії об'єктів, lifecycle, WORM/Compliance mode, multipart upload.
- БД/віртуалки → блок (iSCSI/NVMe-oF).
- Спільні папки/CI артефакти → NFS/SMB.
- Логи/бекапи/медіа/моделі → S3-сумісна об'єктка.
Дані та кодування: RAID, ZFS, Erasure Coding
RAID
RAID1/10 - низька латентність і висока IOPS/рандом-читання/запис.
RAID5/6 - економія ємності, але штраф на запис (write penalty).
ZFS - копія-на-запис (CoW), пули і vdev, ARC/L2ARC кеш, ZIL/SLOG для sync-операцій, снапшоти/репліка і вбудована цілісність (checksums).
Erasure Coding (EC) в розподілених системах (Ceph/MinIO): код Ріда-Соломона'k + m'- економія в порівнянні з триразовою реплікацією при прийнятній деградації продуктивності на запис.
- Гарячі випадкові навантаження (метадані, малі файли) → RAID10/ZFS-миррори на NVMe.
- Холодні/архівні → EC, великі HDD, агресивні кеші.
- Для sync-записів (NFS export) - виділений SLOG на надійних низьколатентних NVMe (PLP).
Продуктивність: IOPS, пропускна, латентність
IOPS важливі для дрібних випадкових операцій (DB/метадані).
Пропускна здатність - для великих файлів (відео, бекапи).
Латентність p95/p99 - критична для БД, черг, API кешів.
Черги та паралелізм: багатопоточність на клієнті,'rsize/wsize'для NFS,'rw, queue _ depth'для iSCSI.
Мережа: 25/40/100 GbE (або IB) + RSS/RPS, jumbo MTU всередині ЦОДа.
Кешування і тирування
ARC/L2ARC (ZFS) - RAM і NVMe-кеш читання; SLOG - журнал sync-записів.
Write-back/Write-through кеші контролерів - обережно, тільки з батарейкою/суперконденсатором (BBU/PLP).
Tiering: NVMe (гаряче) → SSD (тепле) → HDD (холодне) → об'єктка (архів). Політики міграції та lifecycle.
Снапшоти, клони, реплікація, DR
Снапшоти (CoW): миттєві точки для відкату/бекапа; зберігати каталоги «всередині» сховища, а не тільки в гіпервізорі.
Реплікація: синхронна (RPO≈0, вище latency), асинхронна (RPO = N хв).
Клони: економні dev/test оточення.
DR-схеми: 3-2-1 (три копії, два типи носіїв, одна - поза майданчиком), регулярні DR-навчання; цілі RPO/RTO.
Безпека, комплаєнс і багатоарендність
Автентифікація/авторизація: LDAP/AD, Kerberos/NTLMv2 для SMB, AUTH_SYS/KRB для NFSv4.
Ізоляція: VLAN/VRF, export-політики, tenant-квоти/quotas.
Шифрування: в спокої (LUKS/ZFS native/SED) і в польоті (NFS-krb5p/SMB encryption/TLS для S3).
WORM/Compliance для юридично значущих даних (S3 Object Lock, SnapLock аналоги).
Аудит: незмінні логи доступу, інтеграція з SIEM.
Моніторинг та SLO
Метрики:- По пулах/томах: використання,'p95/p99 latency', IOPS, throughput, queue depth, cache hit, write amplification.
- По мережі: drops, retransmits, PPS, MTU mismatch.
- За носіями: media errors, wear-level, температура, SMART.
- По реплікації/снапшотам: лаг/вік, успіх завдань, тривалість.
- NFS куля для CI: p95 latency ≤ 3 мс, доступність ≥ 99. 95%.
- LUN для БД: p99 write ≤ 1. 5 мс, синхронна репліка в межах регіону; RPO 0, RTO ≤ 5 хв.
- Об'єктка: p95 PUT ≤ 50 мс, p95 GET ≤ 30 мс, 11 × 9 довговічності (через ЄС/реплікації).
- Заповнення пулу> 80/90/95%, падіння cache hit, зростання write-amp, деградація диска, просадка по мережі, лаг реплікації> порогу.
Резервне копіювання та архів
Знімки + віддалена репліка + окремий бекап в об'єктку/стрічки.
Політики retention: денні/тижневі/місячні.
Іммутабельність: S3 Object Lock (Governance/Compliance), «air-gap» (стрічка/відключені акаунти).
Тести відновлення - регулярно.
Практичні шаблони (мінімальні)
Експорт NFS (приклад)
/pool/projects 10. 0. 0. 0/16(rw,async,no_root_squash,sec=krb5p)
SMB share (фрагмент smb. conf)
[media]
path = /pool/media read only = no vfs objects = acl_xattr, recycle ea support = yes kernel oplocks = no smb encrypt = required
ZFS: створення пулу і dataset
bash zpool create tank mirror nvme0n1 nvme1n1 zfs set atime=off compression=lz4 tank zfs create tank/projects zfs set recordsize=1M tank/projects # большие файлы zfs set recordsize=16K tank/db # БД/мелкие I/O
iSCSI (ідеї)
Включити ALUA/MPIO, коректні таймаути і queue depth на клієнтах.
Рознести мережі iSCSI і клієнтський трафік, задіяти Jumbo MTU всередині сторадж-фабрики.
Планування ємності та продуктивності
Модель working set (гарячий об'єм) і growth rate (місячний приріст).
Запас по IOPS і пропускної здатності 30-50% під піки і ребаланс.
Враховуйте write amplification (RAID/EC/CoW) і метадані.
Для об'єктки - вартість запитів і вихідного трафіку, класи зберігання (standard/IA/glacier-подібні).
Операції та оновлення
Rolling-оновлення контролерів/ОС/прошивок.
Scrubs/Resilver вікна і пріоритети.
Балансування ребілдів: обмеження I/O при відновленні, щоб не «вбити» прод.
Runbooks на деградації/втрату вузлів/мереж.
Чек-лист впровадження
- Вибрано профіль доступу: файл/блок/об'єкт + RPO/RTO/SLO.
- Схема кодування (RAID/ZFS/EC) під навантаження і ціну.
- Мережі: окремі VLAN/VRF, MTU 9000 всередині фабрики, MPIO/ALUA.
- Кеш/тировка: ARC/L2ARC/SLOG або аналогічні механізми.
- Снапшоти/репліка/бекап: розклади, іммутабельність, DR-навчання.
- Моніторинг: пули/носії/мережеві/реплікаційні метрики, алерти.
- Доступ/безпека: ACL, Kerberos/AD, шифрування, аудит.
- Квоти/ліміти для тенантів і каталоги SLA/SLO.
- Документація і runbooks, тест-відновлення.
Типові помилки
Переповнення пулу> 80% в ZFS/EC-системах → різке зростання латентності.
Один контролер/одна мережа без MPIO/резервування.
Змішують гарячі і холодні робочі набори в одному класі носіїв.
Немає SLOG для sync-навантажень на NFS → непередбачувані затримки.
Бекапи тільки «всередині» того ж масиву/аккаунта → втрата при аварії/компрометації.
Відсутність регулярних scrub і SMART-моніторингу.
Ігнор малих I/O-патернів: великий'recordsize'для БД.
Специфіка для iGaming/фінтех
Транзакційні БД і гаманці: окремі пули NVMe, RAID10/ZFS-миррори, синхронна репліка в зону B, незалежні запити.
Логи/сирі події та антифрод-фічі: об'єктка + lifecycle + дешеві класи, індекси/вітрини - на SSD.
Контент і медіа (провайдери): NAS + CDN, агресивний кеш, дедуплікація.
Звітність та PII: WORM/immutability, шифрування, аудит доступу, гео-локалізація даних.
Пікові події: warm-up кешів, ліміти введення/виведення, контроль p99 latency на пулах.
Підсумок
Надійна система зберігання - це правильне розбиття на класи (файл/блок/об'єкт), адекватна схема кодування (RAID/ZFS/EC), швидка мережа, кеш/тирування, снапшоти + репліка + бекап, жорсткі SLO і автоматизовані операції. Дотримуючись цих принципів, ви отримаєте передбачувану продуктивність, високу стійкість і прозору економіку зберігання - з урахуванням вимог безпеки і регуляторів.