Bosh sahifa Wiki NVMe

NVMe

NVMeflash storage qurilmalarini PCI Express orqali yuqori samaradorlikda boshqarish uchun yaratilgan protocol. Uning to‘liq nomi Non-Volatile Memory Express hisoblanadi.

NVMe SSDning past latency va parallel ishlash xususiyatlarini hisobga oladi. Eski AHCI protokoli mexanik disklar davridagi modelga tayangan, NVMe esa ko‘p queue va ko‘p coreli tizimlar uchun loyihalangan.

NVMe form factor emas. U M.2, U.2, add-in card va boshqa shakldagi qurilmalarda ishlashi mumkin.

PCI Express

NVMe controller CPU yoki chipsetga PCIe lane orqali ulanadi.

Link xususiyatlari:

  • PCIe avlodi;
  • lane soni;
  • negotiated speed;
  • controller joylashuvi;
  • chipset uplink.

M.2 NVMe SSD ko‘pincha x4 PCIe linkdan foydalanadi.

Slot fizik x4 bo‘lsa ham, platforma x2 yoki pastroq avlodda ishlatishi mumkin.

Queue modeli

NVMe bitta Admin Queue va ko‘plab I/O Queuelarni qo‘llaydi.

Har queue:

dan iborat.

Host commandni submission queuega yozadi. Controller natijani completion queuega joylaydi.

Queue soni

NVMe nazariy jihatdan juda ko‘p queue va har queue’da ko‘p commandni qo‘llashi mumkin.

Bu har CPU core uchun alohida queue yaratib, lock contentionni kamaytirishga yordam beradi.

AHCI odatda ancha kam queue depthga ega.

Command

NVMe commandlar:

kabi amallarni o‘z ichiga oladi.

Command fixed-size strukturaga ega va DMA orqali ishlaydi.

Namespace

NVMe controller bir yoki bir nechta namespace taqdim etishi mumkin.

Namespace hostga mustaqil block device sifatida ko‘rinadi.

Enterprise storage’da capacity va isolationni bo‘lish uchun ishlatiladi.

Oddiy consumer SSD ko‘pincha bitta namespace beradi.

M.2

M.2 — fizik form factor va connector standarti.

M.2 qurilma:

bo‘lishi mumkin.

M.2 slotning key turi va motherboard qo‘llovi tekshiriladi.

U.2 va U.3

U.2 enterprise 2.5-inch form factorda PCIe/NVMe ulanishini beradi.

Afzalliklari:

  • hot-swap;
  • yaxshi sovitish;
  • server backplane;
  • yuqori capacity.

U.3 SAS, SATA va NVMe drive’larni universal bay arxitekturasida qo‘llashga qaratilgan.

Add-in card

NVMe SSD to‘g‘ridan-to‘g‘ri PCIe karta ko‘rinishida bo‘lishi mumkin.

Katta heatsink, ko‘proq NAND va enterprise power-loss protection joylashtirish qulay.

Latency

NVMe protocol stack soddaroq va parallel bo‘lgani sabab latency past.

Ammo real latencyga:

ta’sir qiladi.

IOPS

NVMe SSD kichik random I/Oda yuz minglab yoki millionlab IOPS ko‘rsatishi mumkin.

Marketing qiymati odatda yuqori queue depth va parallel threadda o‘lchanadi.

Desktop workload ko‘pincha past queue depthda ishlaydi. Shu sababli maksimal IOPS kundalik tezlikni to‘liq ifodalamaydi.

Sequential throughput

PCIe avlodi oshgani sari nazariy bandwidth ortadi.

Bir SSD controller va NAND tezligi link bandwidthiga yetmasligi mumkin.

Large sequential benchmark real applicationga mos kelmasligi mumkin.

NAND flash

NVMe protocol storage media turini belgilamaydi. Ko‘p SSD NAND flashdan foydalanadi.

NAND turlari:

  • SLC;
  • MLC;
  • TLC;
  • QLC.

Bit soni oshgani sari capacity zichligi ortadi, endurance va raw write tezligi kamayishi mumkin.

SLC cache

TLC yoki QLC SSD NANDning bir qismini SLC rejimida cache sifatida ishlatadi.

Qisqa write tez bo‘ladi.

Cache to‘lganda sustained write keskin pasayishi mumkin.

Bo‘sh diskda dynamic cache kattaroq, to‘la diskda kichikroq bo‘lishi mumkin.

DRAM va HMB

Ba’zi NVMe SSD mapping table uchun onboard DRAM ishlatadi.

DRAMsiz SSD Host Memory Buffer orqali host RAMning kichik qismini ishlatishi mumkin.

HMB barcha workload’da to‘liq DRAM o‘rnini bosmaydi.

TRIM va deallocate

OS ishlatilmayotgan blocklarni SSDga bildiradi.

NVMe Dataset Management yoki deallocate command ishlatiladi.

Controller garbage collection va wear levelingni yaxshiroq bajaradi.

Wear leveling

NAND celllar cheklangan program/erase cycle’ga ega.

Controller yozuvlarni bloklar bo‘ylab taqsimlaydi.

Endurance odatda TBW yoki DWPD bilan beriladi.

Power-loss protection

Enterprise NVMe SSD capacitor orqali volatile cache va mapping metadata’ni power loss paytida NANDga yozadi.

Consumer SSDda to‘liq PLP bo‘lmasligi mumkin.

Database va sync write workload uchun muhim.

Thermal throttling

Yuqori throughput controller va NANDni qizdiradi.

Temperature limitga yetganda SSD tezlikni pasaytiradi.

M.2 drive uchun:

muhim.

NVMe-oF

NVMe over Fabrics NVMe commandlarini tarmoq orqali remote storage’ga uzatadi.

Transportlar:

  • RDMA;
  • Fibre Channel;
  • TCP.

Maqsad local NVMega yaqin past latency va parallel queue modelini network storage’da saqlash.

Boot

UEFI va motherboard NVMe bootni qo‘llashi kerak.

Eski platforma drive’ni OS ichida ko‘rishi, ammo undan boot qila olmasligi mumkin.

SMART va health

NVMe health log:

  • temperature;
  • available spare;
  • percentage used;
  • data units read/written;
  • media error;
  • unsafe shutdown;
  • power cycles;
  • critical warning

ni ko‘rsatishi mumkin.

Secure erase

NVMe format va sanitize commandlar data’ni yo‘q qilish uchun ishlatilishi mumkin.

Crypto erase encryption keyni o‘chiradi.

Amal qaytarib bo‘lmaydi va to‘g‘ri namespace/device tanlanadi.

Diagnostika

NVMe muammosida:

tekshiriladi.

SSD sekinlashsa avval SLC cache, disk to‘liqligi va thermal throttling aniqlanadi.

Bog‘liq tushunchalar

PCI Express, M.2, Namespace, Queue, NAND flash, SSD, SLC cache, Wear leveling, NVMe-oF, SMART