RAID arrays on NVMe

RAID arrays on NVMe
Dina artikel ieu kami baris ngobrol ngeunaan cara béda pikeun ngatur arrays RAID, sarta ogé nembongkeun salah sahiji hardware RAID controller munggaran kalayan rojongan NVMe.

Sadayana rupa-rupa aplikasi téknologi RAID kapanggih dina bagéan server. Dina bagean klien, ngan software RAID0 atanapi RAID1 dina dua disk anu paling sering dianggo.

Tulisan ieu bakal masihan gambaran ringkes ngeunaan téknologi RAID, tutorial pondok ngeunaan cara ngadamel array RAID nganggo tilu alat anu béda, sareng ngabandingkeun kinerja disk virtual nganggo unggal metode.

Naon RAID?

Wikipedia masihan definisi komprehensif ngeunaan téknologi RAID:

ngoroyok (Ing. Asép Sunandar Sunarya tina Cakram Bebas - Asép Sunandar Sunarya kaleuleuwihan bebas (bebas) disk) - téhnologi virtualization data pikeun ngagabungkeun sababaraha alat disk fisik kana modul logis pikeun ngaronjatkeun kasabaran sesar jeung kinerja.

Konfigurasi susunan disk sareng téknologi anu dianggo gumantung kana anu dipilih tingkat RAID. Tingkat RAID distandarisasi dina spésifikasi Format Data Disk RAID umum. Éta ngajelaskeun seueur tingkat RAID, tapi anu paling umum nyaéta RAID0, RAID1, RAID5 sareng RAID6.

RAID0atawa stripes, nyaéta tingkat RAID anu ngagabungkeun dua atawa leuwih drive fisik kana hiji drive logis. Volume disk logis sarua jeung jumlah volume disk fisik kaasup dina Asép Sunandar Sunarya. Henteu aya redundancy dina tingkat RAID ieu, sareng kagagalan hiji drive tiasa nyababkeun leungitna sadaya data dina disk virtual.

Tingkat RAID1atawa kaca, nyieun salinan data idéntik dina dua atawa leuwih disk. Ukuran disk virtual henteu ngaleuwihan ukuran minimum disk fisik. Data dina disk virtual RAID1 bakal sadia salami sahenteuna hiji disk fisik ti Asép Sunandar Sunarya téh operasional. Ngagunakeun RAID1 nambihan redundancy, tapi mangrupakeun solusi rada mahal, saprak arrays dua atawa leuwih disk kapasitas ngan hiji sadia.

Tingkat RAID5 solves masalah ongkos tinggi. Pikeun nyieun hiji Asép Sunandar Sunarya kalawan tingkat RAID5, anjeun peryogi sahanteuna 3 disk, sarta Asép Sunandar Sunarya tahan ka gagalna hiji disk. Data dina RAID5 disimpen dina blok kalawan checksums. Henteu aya pamisahan anu ketat antara disk data sareng disk checksum. Checksums di RAID5 mangrupa hasil operasi XOR dilarapkeun ka N-1 blok, unggal dicokot tina disk béda.

Sanajan RAID arrays ningkatkeun redundancy sarta nyadiakeun redundancy, aranjeunna henteu cocog pikeun nyimpen cadangan.

Saatos piknik ringkes kana jinis arrays RAID, anjeun tiasa ngaléngkah ka alat sareng program anu ngamungkinkeun anjeun ngumpul sareng nganggo susunan disk.

Jinis pangendali RAID

Aya dua cara pikeun nyieun sareng nganggo RAID arrays: hardware sareng software. Urang bakal mertimbangkeun solusi di handap ieu:

  • Linux Ubuntu Software RAID.
  • Intel® Virtual RAID Dina CPU.
  • LSI MegaRAID 9460-8i.

Catet yén solusi Intel® dijalankeun dina chipset, anu nyababkeun patarosan naha éta mangrupikeun solusi hardware atanapi software. Salaku conto, hypervisor VMWare ESXi nganggap software VROC sareng henteu ngadukung sacara resmi.

Linux Ubuntu Software RAID

Parangkat lunak RAID arrays dina kulawarga OS Linux mangrupikeun solusi anu cukup umum dina bagéan klien sareng server. Sadaya anu anjeun peryogikeun pikeun nyiptakeun susunan nyaéta utilitas mdadm sareng sababaraha alat blok. Hiji-hijina sarat Linux Software RAID nempatkeun dina drive anu dianggo nyaéta janten alat blok anu tiasa diaksés ku sistem.

Henteuna biaya pikeun alat sareng parangkat lunak mangrupikeun kauntungan anu jelas tina metode ieu. Linux Software RAID ngatur susunan disk kalayan biaya waktos CPU. Daptar tingkat RAID anu dirojong sareng status susunan disk ayeuna tiasa ditingali dina file mdstat, anu aya dina akar procfs:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

Rojongan pikeun tingkat RAID ditambahkeun ku cara nyambungkeun modul kernel luyu, contona:

root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
unused devices: <none>

Sadaya operasi sareng susunan disk dilakukeun ngaliwatan utilitas garis paréntah mdadm. Asép Sunandar Sunarya disk dirakit dina hiji paréntah:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

Saatos ngalaksanakeun paréntah ieu, alat blok / dev / md0 bakal muncul dina sistem, anu ngagambarkeun anjeun salaku disk virtual.

Intel® Virtual RAID Dina CPU

RAID arrays on NVMeIntel® VROC Standar Hardware Key
Intel® Virtual RAID On CPU (VROC) nyaéta téknologi hardware jeung software pikeun nyieun array RAID dumasar kana chipset Intel®. Téknologi ieu sadia utamana pikeun motherboard nu ngarojong prosesor Intel® Xeon® Scalable. Sacara standar, VROC henteu sayogi. Pikeun ngaktipkeunana, anjeun kedah masang konci lisénsi hardware VROC.

Lisénsi VROC baku ngidinan Anjeun pikeun nyieun arrays disk kalawan 0, 1 jeung 10 tingkat RAID. Versi premium ngalegaan daptar ieu kalayan dukungan RAID5.

Téknologi Intel® VROC dina motherboards modéren tiasa dianggo sareng Intel® Volume Management Device (VMD), anu nyayogikeun kamampuan hot-swap pikeun drive NVMe.

RAID arrays on NVMeLisensi Standar Intel® VROC Arrays dikonpigurasi ngaliwatan Setup Utiliti nalika server boot. Dina tab maju Intel® Virtual RAID on CPU item nembongan, dimana anjeun bisa ngonpigurasikeun arrays disk.

RAID arrays on NVMeNyiptakeun RAID1 dina dua drive
téhnologi Intel® VROC boga aces sorangan nepi leungeun baju na. Array disk anu diwangun nganggo VROC cocog sareng Linux Software RAID. Ieu ngandung harti yén kaayaan arrays bisa diawaskeun dina / proc / mdstat sarta dikaluarkeun ngaliwatan mdadm. "Fitur" ieu sacara resmi dirojong ku Intel. Saatos assembling RAID1 di Setup Utility, anjeun tiasa niténan sinkronisasi drive dina OS:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blocks super external:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
      
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
      10402 blocks super external:imsm
       
unused devices: <none>

Catet yén anjeun teu bisa ngumpul arrays on VROC maké mdadm (arrays dirakit bakal Linux SW RAID), tapi anjeun bisa ngarobah disk di aranjeunna sarta ngabongkar arrays.

LSI MegaRAID 9460-8i

RAID arrays on NVMePenampilan LSI MegaRAID 9460-8i controller
Controller RAID mangrupikeun solusi hardware anu mandiri. Controller ngan tiasa dianggo sareng drive anu langsung nyambung ka éta. Controller RAID ieu ngadukung dugi ka 24 drive NVMe. Ieu mangrupikeun dukungan NVMe anu ngabédakeun controller ieu tina seueur anu sanés.

RAID arrays on NVMeMenu utama controller hardware
Lamun make modeu UEFI, setelan controller terpadu kana Setup Utility. Dibandingkeun sareng VROC, ménu controller hardware katingalina langkung rumit.

RAID arrays on NVMeNyiptakeun RAID1 dina dua disk
Ngajelaskeun kumaha ngonpigurasikeun arrays disk dina controller hardware mangrupakeun topik rada hipu tur bisa jadi alesan pikeun artikel full-fledged. Di dieu urang ngan saukur ngawatesan diri pikeun nyiptakeun RAID0 sareng RAID1 nganggo setélan standar.

Disk disambungkeun ka controller hardware teu katingali ku sistem operasi. Gantina, controller "masker" sagala arrays RAID sakumaha SAS drive. Drive disambungkeun ka controller, tapi teu bagian tina susunan disk, moal bisa diasupan ku OS.

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9460-8i
Revision:             5.14
Compliance:           SPC-3
User Capacity:        1,999,844,147,200 bytes [1.99 TB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Logical Unit id:      0x000000000000000000000000000000
Serial number:        00000000000000000000000000000000
Device type:          disk
Local Time is:        Sun Oct 11 16:27:59 2020 MSK
SMART support is:     Unavailable - device lacks SMART capability.

Sanaos nyamar salaku drive SAS, susunan NVMe bakal beroperasi dina kecepatan PCIe. Nanging, fitur ieu ngamungkinkeun anjeun pikeun boot ti NVMe di Legacy.

bangku tés

Unggal metodeu pikeun ngatur susunan disk gaduh pro sareng kontra fisikna. Tapi naha aya bédana kinerja nalika damel sareng susunan disk?

Pikeun ngahontal kaadilan maksimal, sadaya tés bakal dilakukeun dina server anu sami. Konfigurasina:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC Standar Hardware Key;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Ditambah M.2 500GB.

Unit test anu P4510, hiji satengah disambungkeun ka motherboard nu, sarta satengah séjén pikeun razia controller. M.2 ngajalankeun Ubuntu 20.04 sareng tés bakal dijalankeun nganggo versi fio 3.16.

Tés

Anu mimiti, hayu urang parios telat nalika damel sareng disk. Tés dilaksanakeun dina hiji utas, ukuran blokna 4 KB. Tiap tés lumangsung 5 menit. Sateuacan ngamimitian, alat blok anu saluyu disetél ka teu aya salaku panjadwal I/O. Paréntah fio sapertos kieu:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw=<mode> --filename=<blkdev>

Tina hasil fio kami nyandak clat 99.00%. Hasilna dipidangkeun dina tabél ieu di handap.

Bacaan acak, μs
Rékam acak, μs

cakram
112
78

Linux SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

Linux SW RAID, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

Salian telat nalika ngaksés data, kuring hoyong ningali kinerja drive virtual sareng ngabandingkeunana sareng kinerja disk fisik. Paréntah pikeun ngajalankeun fio:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth=<threads> --rw=<mode> --filename=<blkdev>

Kinerja diukur tina segi operasi I/O. Hasilna dipidangkeun dina tabél ieu di handap.

Bacaan acak 1 utas, IOPS
Tulis acak 1 utas, IOPS
Acak maca 128 threads, IOPS
Tulis acak 128 benang, IOPS

cakram
11300
40700
453000
105000

Linux SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

Linux SW RAID, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

Gampang ningali yén ngagunakeun controller hardware nyababkeun paningkatan latency sareng kinerja hit dibandingkeun sareng solusi parangkat lunak.

kacindekan

Ngagunakeun solusi hardware pikeun nyieun arrays disk tina dua disk Sigana irasional. Sanajan kitu, aya tugas dimana pamakéan controller RAID diyakinkeun. Kalayan munculna pengendali anu ngadukung antarbeungeut NVMe, pangguna ngagaduhan kasempetan ngagunakeun SSD anu langkung gancang dina proyék-proyékna.

RAID arrays on NVMe

Ngan pamaké nu kadaptar bisa ilubiung dina survey. Daptar, Punten.

Naha anjeun nganggo solusi RAID?

  • 29,6%Leres, solusi hardware32

  • 50,0%Leres, solusi parangkat lunak54

  • 16,7%No18

  • 3,7%Teu diperlukeun RAID4

108 pamaké milih. 14 pamaké abstained.

sumber: www.habr.com

Tambahkeun komentar