Tatasusunan RAID pada NVMe

Tatasusunan RAID pada NVMe
Dalam artikel ini kita akan bercakap tentang cara yang berbeza untuk mengatur tatasusunan RAID, dan juga menunjukkan salah satu pengawal RAID perkakasan pertama dengan sokongan NVMe.

Semua kepelbagaian aplikasi teknologi RAID ditemui dalam segmen pelayan. Dalam segmen pelanggan, hanya perisian RAID0 atau RAID1 pada dua cakera yang paling kerap digunakan.

Artikel ini akan memberikan gambaran ringkas tentang teknologi RAID, tutorial ringkas tentang cara mencipta tatasusunan RAID menggunakan tiga alatan berbeza dan perbandingan prestasi cakera maya menggunakan setiap kaedah.

Apakah RAID?

Wikipedia memberikan definisi komprehensif teknologi RAID:

RAID (Bahasa Inggeris Array berlebihan cakera bebas - susunan berlebihan cakera bebas (bebas) - teknologi virtualisasi data untuk menggabungkan beberapa peranti cakera fizikal ke dalam modul logik untuk meningkatkan toleransi kesalahan dan prestasi.

Konfigurasi tatasusunan cakera dan teknologi yang digunakan bergantung pada yang dipilih Tahap RAID. Tahap RAID diseragamkan dalam spesifikasi Format Data Cakera RAID Biasa. Ia menerangkan banyak peringkat RAID, tetapi yang paling biasa ialah RAID0, RAID1, RAID5 dan RAID6.

RAID0Atau Jalur, ialah tahap RAID yang menggabungkan dua atau lebih pemacu fizikal ke dalam satu pemacu logik. Isipadu cakera logik adalah sama dengan jumlah isipadu cakera fizikal yang disertakan dalam tatasusunan. Tiada redundansi pada tahap RAID ini, dan kegagalan satu pemacu boleh mengakibatkan kehilangan semua data dalam cakera maya.

Уровень RAID1Atau Cermin, mencipta salinan data yang sama pada dua atau lebih cakera. Saiz cakera maya tidak melebihi saiz minimum cakera fizikal. Data pada cakera maya RAID1 akan tersedia selagi sekurang-kurangnya satu cakera fizikal daripada tatasusunan beroperasi. Menggunakan RAID1 menambah redundansi, tetapi merupakan penyelesaian yang agak mahal, kerana dalam tatasusunan dua atau lebih cakera kapasiti hanya satu tersedia.

Уровень RAID5 menyelesaikan masalah kos yang tinggi. Untuk mencipta tatasusunan dengan tahap RAID5, anda memerlukan sekurang-kurangnya 3 cakera dan tatasusunan itu tahan terhadap kegagalan satu cakera. Data dalam RAID5 disimpan dalam blok dengan jumlah semak. Tiada pembahagian yang ketat antara cakera data dan cakera semak. Jumlah semak dalam RAID5 adalah hasil daripada operasi XOR yang digunakan pada blok N-1, setiap satu diambil daripada cakera yang berbeza.

Walaupun tatasusunan RAID meningkatkan lebihan dan memberikan lebihan, mereka tidak sesuai untuk menyimpan sandaran.

Selepas lawatan singkat ke dalam jenis tatasusunan RAID, anda boleh beralih kepada peranti dan atur cara yang membolehkan anda memasang dan menggunakan tatasusunan cakera.

Jenis pengawal RAID

Terdapat dua cara untuk mencipta dan menggunakan tatasusunan RAID: perkakasan dan perisian. Kami akan mempertimbangkan penyelesaian berikut:

  • RAID Perisian Linux.
  • Intel® Virtual RAID Pada CPU.
  • LSI MegaRAID 9460-8i.

Ambil perhatian bahawa penyelesaian Intel® dijalankan pada set cip, yang menimbulkan persoalan sama ada ia penyelesaian perkakasan atau perisian. Sebagai contoh, hipervisor VMWare ESXi menganggap perisian VROC dan tidak menyokongnya secara rasmi.

RAID Perisian Linux

Tatasusunan RAID perisian dalam keluarga OS Linux ialah penyelesaian yang agak biasa dalam kedua-dua segmen pelanggan dan pelayan. Apa yang anda perlukan untuk membuat tatasusunan ialah utiliti mdadm dan beberapa peranti blok. Satu-satunya keperluan Linux Software RAID yang diletakkan pada pemacu yang digunakan adalah menjadi peranti blok yang boleh diakses oleh sistem.

Ketiadaan kos untuk peralatan dan perisian adalah kelebihan jelas kaedah ini. Linux Software RAID mengatur tatasusunan cakera pada kos masa CPU. Senarai tahap RAID yang disokong dan status tatasusunan cakera semasa boleh dilihat dalam fail mdstat, yang terletak dalam akar procfs:

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

Sokongan untuk tahap RAID ditambah dengan menyambungkan modul kernel yang sesuai, sebagai contoh:

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

Semua operasi dengan tatasusunan cakera dilakukan melalui utiliti baris arahan mdadm. Tatasusunan cakera dipasang dalam satu arahan:

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

Selepas melaksanakan arahan ini, peranti blok /dev/md0 akan muncul dalam sistem, yang mewakili anda sebagai cakera maya.

Intel® Virtual RAID Pada CPU

Tatasusunan RAID pada NVMeKunci Perkakasan Standard Intel® VROC
Intel® Virtual RAID On CPU (VROC) ialah teknologi perkakasan dan perisian untuk mencipta tatasusunan RAID berdasarkan set cip Intel®. Teknologi ini tersedia terutamanya untuk papan induk yang menyokong pemproses Boleh Skala Intel® Xeon®. Secara lalai, VROC tidak tersedia. Untuk mengaktifkannya, anda mesti memasang kunci lesen perkakasan VROC.

Lesen VROC standard membolehkan anda membuat tatasusunan cakera dengan tahap RAID 0, 1 dan 10. Versi premium mengembangkan senarai ini dengan sokongan RAID5.

Teknologi Intel® VROC pada papan induk moden berfungsi bersama-sama dengan Peranti Pengurusan Volume Intel® (VMD), yang menyediakan keupayaan pertukaran panas untuk pemacu NVMe.

Tatasusunan RAID pada NVMeLesen Standard Intel® VROC Tatasusunan dikonfigurasikan melalui Utiliti Persediaan apabila pelayan but. Pada tab Maju Item Intel® Virtual RAID pada CPU muncul, di mana anda boleh mengkonfigurasi tatasusunan cakera.

Tatasusunan RAID pada NVMeMencipta tatasusunan RAID1 pada dua pemacu
Teknologi Intel® VROC mempunyai acenya sendiri. Tatasusunan cakera yang dibina menggunakan VROC serasi dengan Linux Software RAID. Ini bermakna keadaan tatasusunan boleh dipantau dalam /proc/mdstat dan ditadbir melalui mdadm. "Ciri" ini disokong secara rasmi oleh Intel. Selepas memasang RAID1 dalam Setup Utility, anda boleh melihat penyegerakan pemacu dalam 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>

Ambil perhatian bahawa anda tidak boleh memasang tatasusunan pada VROC menggunakan mdadm (tatasusunan yang dipasang ialah Linux SW RAID), tetapi anda boleh menukar cakera di dalamnya dan membuka tatasusunan.

LSI MegaRAID 9460-8i

Tatasusunan RAID pada NVMePenampilan pengawal LSI MegaRAID 9460-8i
Pengawal RAID ialah penyelesaian perkakasan yang berdiri sendiri. Pengawal hanya berfungsi dengan pemacu yang disambungkan terus kepadanya. Pengawal RAID ini menyokong sehingga 24 pemacu NVMe. Ia adalah sokongan NVMe yang membezakan pengawal ini daripada yang lain.

Tatasusunan RAID pada NVMeMenu utama pengawal perkakasan
Apabila menggunakan mod UEFI, tetapan pengawal disepadukan ke dalam Utiliti Persediaan. Berbanding dengan VROC, menu pengawal perkakasan kelihatan lebih kompleks.

Tatasusunan RAID pada NVMeMencipta RAID1 pada dua cakera
Menjelaskan cara mengkonfigurasi tatasusunan cakera pada pengawal perkakasan adalah topik yang agak rumit dan boleh menjadi sebab untuk artikel lengkap. Di sini kami hanya akan mengehadkan diri kami untuk mencipta RAID0 dan RAID1 dengan tetapan lalai.

Cakera yang disambungkan kepada pengawal perkakasan tidak kelihatan kepada sistem pengendalian. Sebaliknya, pengawal "menopeng" semua tatasusunan RAID sebagai pemacu SAS. Pemacu yang disambungkan kepada pengawal, tetapi bukan sebahagian daripada tatasusunan cakera, tidak akan dapat diakses oleh 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.

Walaupun menyamar sebagai pemacu SAS, tatasusunan NVMe akan beroperasi pada kelajuan PCIe. Walau bagaimanapun, ciri ini membolehkan anda but daripada NVMe dalam Legacy.

Tempat ujian

Setiap kaedah mengatur tatasusunan cakera mempunyai kebaikan dan keburukan fizikalnya sendiri. Tetapi adakah terdapat perbezaan prestasi apabila bekerja dengan tatasusunan cakera?

Untuk mencapai keadilan maksimum, semua ujian akan dijalankan pada pelayan yang sama. Konfigurasinya:

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

Unit ujian ialah P4510, separuh daripadanya disambungkan ke papan induk, dan separuh lagi kepada pengawal RAID. M.2 menjalankan Ubuntu 20.04 dan ujian akan dijalankan menggunakan fio versi 3.16.

Ujian

Pertama sekali, mari kita semak kelewatan apabila bekerja dengan cakera. Ujian dilaksanakan dalam satu utas, saiz blok ialah 4 KB. Setiap ujian mengambil masa 5 minit. Sebelum bermula, peranti blok yang sepadan ditetapkan kepada tiada sebagai penjadual I/O. Perintah fio kelihatan seperti ini:

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

Daripada keputusan fio kami mengambil clat 99.00%. Keputusan ditunjukkan dalam jadual di bawah.

Bacaan rawak, μs
Rakaman rawak, μs

Диск
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

Selain kelewatan semasa mengakses data, saya ingin melihat prestasi pemacu maya dan membandingkannya dengan prestasi cakera fizikal. Perintah untuk menjalankan fio:

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

Prestasi diukur dari segi operasi I/O. Keputusan dibentangkan dalam jadual di bawah.

Bacaan rawak 1 utas, IOPS
Tulis rawak 1 utas, IOPS
Bacaan rawak 128 utas, IOPS
Tulis rawak 128 utas, IOPS

Диск
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

Sangat mudah untuk melihat bahawa menggunakan pengawal perkakasan menghasilkan peningkatan kependaman dan prestasi prestasi berbanding dengan penyelesaian perisian.

Kesimpulan

Menggunakan penyelesaian perkakasan untuk mencipta tatasusunan cakera daripada dua cakera kelihatan tidak rasional. Walau bagaimanapun, terdapat tugas di mana penggunaan pengawal RAID adalah wajar. Dengan kemunculan pengawal yang menyokong antara muka NVMe, pengguna berpeluang menggunakan SSD yang lebih pantas dalam projek mereka.

Tatasusunan RAID pada NVMe

Hanya pengguna berdaftar boleh mengambil bahagian dalam tinjauan. Log masuk, Sama-sama.

Adakah anda menggunakan penyelesaian RAID?

  • 29,6% Ya, penyelesaian perkakasan32

  • 50,0% Ya, penyelesaian perisian54

  • 16,7% No18

  • 3,7% Tiada RAID diperlukan4

108 pengguna mengundi. 14 pengguna berpantang.

Sumber: www.habr.com

Tambah komen