Orei bune din timpul zilei, dragă comunitate!
În acest articol, aș dori să împărtășesc experiența creării unui spațiu de stocare pe disc, care a dus la o mulțime de experimente, încercări, erori, constatări, condimentate cu dezamăgire amară. Și, în cele din urmă, sa încheiat cu un depozit interesant, relativ bugetar și rapid.
Dacă aveți o sarcină similară sau sunteți doar interesat de titlu, atunci bine ați venit la Habrcut.
Deci, recent departamentul nostru sa confruntat cu sarcina de a furniza un cluster de hypervisoare VMware ESXi 5.1 cu o capacitate mare de stocare. De asemenea, am planificat să plasăm maildir-ul criptat pentru dovecot și stocarea fișierului "cloud". O condiție prealabilă pentru alocarea bugetului a fost de a oferi un loc pentru stocarea informațiilor critice pentru companie, iar această secțiune ar trebui să fie criptată.
Din nefericire, și din fericire, în astfel de sarcini ambițioase, nu am fost împovărați de un buget mare. Prin urmare, nu ne-am putut permite orice magazin de mărci, ca fanii adevărați ai maximalismului, și în limitele resurselor materiale alocate am ales următorul fier:
- Server caz Supermicro CSE-836BE16-R920B
A existat o mulțime de discuții, pentru a alege numărul de unități, dimensiunea hard disk-uri, viteza lor, organismul sau o dată pe platforma, revizuit o varietate de opțiuni, afumat la internet și în cele din urmă stabilit pe această versiune, ca optim pentru sarcinile noastre. - Plăci de bază Supermicro MBD-X9DRI-F-O
Condiția principală a fost prezența a 4 porturi PCI-E x8. - Procesoare Intel Xeon E5-2603
Alegerea a fost simplă - sunt destui bani. În plus, a trebuit să punem 2 procesoare simultan, și nu primul, apoi, dacă este necesar, apoi cumpărați, deoarece cu un slot ocupat doar 3 PCI-Es lucrează și am avut nevoie de 4. - Seagate Constellation ES.3 Drives ST3000NM0033
SATA deoarece este mai ieftin și în aceiași bani avem un spațiu mult mai liber decât cu SAS. - Controler RAID Adaptec ASR-7805Q
Deoarece acesta este un sistem de stocare, nu avea importanță prea mult la controler. Această serie are cache-ul SSD, care ar fi foarte util pentru noi, și există un BBU imediat în pachet, care este, de asemenea, o opțiune foarte utilă. - Unitățile SSD Intel SSDSC2CW240A310
Au fost necesare numai pentru ca MaxCache să funcționeze (este, de asemenea, o memorie cache SSD). - Carduri de rețea Intel X520 DA2
Pentru a evita blocajele pe interfețele de rețea, a fost necesar să se asigure o legătură 10 Gb între nodurile ESXi și memoria de stocare. După studierea ofertelor de pe piață, am putea ajunge la unul mai puțin elegant, dar la același preț și viteză, utilizând carduri de rețea de 10 gigabit.
Toate acestea ne-au costat aproximativ 200 de mii de ruble.
punerea în aplicare
Pentru a emite ținte, vreau să alocăm resurse de stocare consumatorilor, am decis să folosim iSCSI și NFS. Soluția cea mai rezonabilă și rapidă, desigur, ar fi de a utiliza FCoE, astfel încât să nu intre în TCP cu costurile de regie aferente, care, în general, se poate face cu cardurile noastre de rețea, dar, din păcate, nu avem nici o SFP comutatorul FCoE, nu a fost posibil să-l cumperi, deoarece ne-ar costa 500 tr. de mai sus.
Încă o dată un fum de internet, a găsit o cale de ieșire din această tehnologie în vn2vn, dar să învețe să lucreze cu ESXi vn2vn numai la versiunea 6.x, deci fără să se gândească mai departe, am început ceea ce este.
Standardul nostru corporative pentru Linux Server - CentOS, dar în kernel-ul curent (2.6.32-358) de criptare este foarte lent, așa că a trebuit să folosesc ca sistem de operare Fedora. Desigur, aceasta este gama Red Hat, dar în cele mai recente kernel-uri Linux, datele sunt criptate aproape "în zbor", iar restul nu pare a fi necesar.
În plus, versiunea actuală 19 va fi utilizată ca bază pentru RHEL 7 și, prin urmare, ne va permite să ne mutăm la CentOS 7 în viitor fără nici o durere.
Pentru a nu umfla articolul și a nu se îndepărta de subiect, am omis tot felul de ansamblu hardware neinteresant, vopsirea cu controlerul, instalarea sistemului de operare și altele. De asemenea, voi încerca să descriu ținta cât mai puțin posibil și să mă limitez doar la munca ei cu inițiatorul ESXi.
Din țintă am dorit să obținem următoarele:
Faceți cunoștință, aici sunt.
www.peach.ne.jp/archives/istgt
Folosit în FreeBSD.
Ținta funcționează suficient de bine, cu excepția câtorva.
În primul rând, el nu știe cum să blocheze și, în al doilea rând, nu poate folosi diferite MaxRec și MaxXtran, cel puțin nu am reușit. La valori mici MaxRec, viteza secvențială de scriere nu a depășit 250 MB / sec, iar citirea a fost destul de ridicată - 700 MB / sec. Aproximativ 40K iopsov am luat la întâmplare atunci când se înregistrează 4k cu o adâncime de coadă 32. Cu o creștere a vitezei de înregistrare MaxRec este mărită până la 700 MB / sec citire scade la 600 MB / sec. Jopii cad pentru a citi 30K și 20K pentru înregistrare.
Adică, ar fi posibil să găsească un teren intermediar, schimbând setările, dar într-un fel nu părea a fi o trompetă.
stgt.sourceforge.net
Cu această etichetare, au existat probleme cu configurarea interfeței cu hypervisor. ESXi a confundat în mod constant LUN - a luat unul pentru ceilalți sau a încetat să vadă deloc. A existat o suspiciune de o problemă în legarea incorectă a numerelor de serie, însă prescrierea lor în config nu a ajutat.
Viteza nu este, de asemenea, mulțumită. Acesta va primi mai mult de 500 MB / s din ea, nici citirea nici scrierea nu a reușit. Numărul de IOPS pentru citire este de 20K, pentru o înregistrare de aproximativ 15K.
Ca urmare, există probleme cu indicatorii de configurare și de viteză redusă. Refuză.
scst.sourceforge.net
Și în sfârșit am ajuns la conducătorul rasei noastre.
După reconstruirea kernelului și minimizarea setării țintei însăși, am citit 750MB / s și scriem 950MB / sec. IOPS în modul fileio este de 44K pentru citire și 37K pentru scriere. O dată, aproape fără tamburină.
Această țintă mi sa părut alegerea ideală.
iSCSI pentru VMWare ESXi 5.1 pe SCST și Fedora
Și acum, de fapt, pentru ceea ce suntem cu toții aici, s-au adunat.
O instrucțiune mică pentru configurarea ESXi-ului țintă și a inițiatorului. Nu am decis imediat să încerc să scriu un articol despre Habr, deci instrucțiunea nu va fi pas-cu-pas - o recuperez din memorie, dar va conține setările principale care au făcut posibilă obținerea rezultatelor dorite.
Pregătirea ESXi 5.1
Următoarele setări au fost făcute în hypervisor:
- în setările inițialei iSCSI, ACK întârziat este dezactivat pentru toate țintele. Ea a făcut în conformitate cu: kb.vmware.com/selfservice/microsites/search.do?language=en_UScmd=displayKCexternalId=1002598
- parametrii inițiatorului sunt modificați în conformitate cu parametrii de direcționare:
InitialR2T = Nu
ImmediateData = Da
MaxConnections = 1
MaxRecvDataSegmentLength = 1048576
MaxBurstLength = 1048576
FirstBurstLength = 65536
DefaultTime2Wait = 0
DefaultTime2Retain = 0
MaxOutstandingR2T = 32
DataPDUInOrder = Nu
DataSequenceInOrder = Nu
ErrorRecoveryLevel = 0
HeaderDigest = Niciunul
DataDigest = Niciuna
OFMarker = Nu
IFMarker = Nu
OFMarkInt = Respingere
IFMarkInt = Respingere
Va fi necesar să dezactivați Moderarea întreruperii și LRO pentru adaptoarele de rețea. Puteți face acest lucru cu comenzile:
Pentru a nu re-seta aceste valori, ele pot fi adăugate la acest script:
Pregătirea Fedora
Descărcați și instalați în versiunea minimă cea mai recentă versiune de Fedora.
Actualizați sistemul și reporniți:
Sistemul va funcționa numai în rețeaua locală, așa că am dezactivat paravanul de protecție și SELinux:
Configurați interfețele de rețea și dezactivați serviciul NetworkManager.service. Nu este compatibil cu interfețele BRIDGE, care erau necesare pentru NFS.
LRO este dezactivat pe cardurile de rețea.
În urma recomandărilor de la Intel, au fost modificați următorii parametri ai sistemului:
Pregătirea țintă
Dar pentru a nu exista dificultăți, voi descrie pregătirea în detaliu.
Să mergem la miercuri:
Instalați pachetele pentru a construi și a pregăti codul sursă pentru kernel:
Acum veți avea nevoie de patch-urile în sine. Descărcați SCST din depozitul SVN:
Copiați părțile necesare în
Adăugați o linie la configurația kernelului:
Să începem editarea kernel.spec.
Adăugăm patch-urile noastre, de preferat după toate celelalte:
Adăugăm comanda pentru aplicarea plasturelui, se recomandă să adăugăm după celelalte intrări:
După toate acțiunile, executați ansamblul de pachete kernel rpm cu fișierele firmware incluse:
După ce asamblarea este finalizată, instalați firmware-ul kernel-ului și fișierele antetului kernel-ului:
După o descărcare de succes, sperăm, mergeți la directorul cu sursele SCST și deja utilizatorul root selectați ținta în sine:
După construire, adăugați serviciul la autorun:
Și configurați config-ul în /etc/scst.conf. De exemplu, meu:
După configurarea fișierelor de configurare, executați SCST:
Dacă totul a fost făcut corect, ESXi va primi țintă corespunzătoare.
Vă mulțumim că ați citit până la sfârșit!