Aš dažnai susiduriu su situacijomis, kai IT specialistai, dirbantys su dideliais duomenų centrais, skundžiasi, kad jų SSD diskai greitai dėvisi, ypač kai kalbama apie enterprise lygio saugojimo sistemas. Tai nėra retas reiškinys, nes SSD technologija, nors ir revoliucinga, turi savo ribas, susijusias su NAND atminties ląstelių gyvenimo trukme. Aš pats, per metus dirbdamas su įvairiomis konfigūracijomis, pastebėjau, kad tinkamas wear leveling valdymas gali prailginti šių diskų tarnavimo laiką bent dvigubai, o kartais net daugiau, priklausomai nuo apkrovos tipo. Pradėkime nuo pagrindų: wear leveling yra mechanizmas, kuris užtikrina, kad rašymo operacijos būtų paskirstytos tolygiai per visą SSD atminties plotą, vengiant per didelės apkrovos ant tų pačių blokų. Jei tai nėra tinkamai valdoma, kai kurios ląstelės gali būti perrašytos šimtus tūkstančių kartų, kol kitos lieka beveik nepaliestos, kas lemia ankstyvą disko gedimą.
Aš prisimenu vieną projektą, kurį vykdau su vidutinio dydžio įmone, turinčia kelis serverius su RAID masyvais, pagrįstais SSD. Jie naudojo standartinius enterprise SSD, tokius kaip tie, kurie remiasi TLC NAND technologija, ir pastebėjo, kad po pusmečio intensyvaus naudojimo kai kurie diskai pradėjo rodyti klaidas, susijusias su blogais blokais. Paaiškėjo, kad jų failų sistema, optimizuota greitiems atsitiktiniams skaitymams, bet ne rašymams, sukėlė netolygų dėvėjimąsi. Wear leveling algoritmai, įdiegti pačiuose SSD valdikliuose, yra dviejų tipų: static ir dynamic. Static wear leveling seka visus blokus ir perkelia duomenis iš retai naudojamų sričių į labiau dėvėtas, siekdamas subalansuoti. Dynamic, priešingai, veikia tik su laisvomis erdvėmis, judindamas duomenis realiu laiku. Aš visada patariu rinktis SSD su abiem mechanizmais, nes enterprise aplinkose, kur duomenys keičiasi nuolat, tai užtikrina geresnę apsaugą.
Dabar pereikime prie to, kaip tai veikia praktiškai. Įsivaizduokite tipinį enterprise saugojimo masyvą, pvz., SAN sistemą su dešimtimis SSD diskų, sujungtų per PCIe jungtis. Kiekvienas SSD turi savo vidinį valdiklio lustą, kuris valdo flash translation layer (FTL) - tai sluoksnis, kuris paverčia logininius adresus fiziniais ir atvirkščiai. Aš dažnai aiškinu kolegoms, kad FTL yra širdis wear leveling proceso. Kai rašote duomenis, valdiklis neperrašo tiesiogiai ant senojo bloko; vietoj to, jis rašo į naują bloką, o senasis žymimas kaip negaliojantis, vėliau atliekant garbage collection. Šis procesas, žinomas kaip over-provisioning, leidžia turėti 10-25% papildomos talpos, kuri nėra matoma operacinei sistemai, bet naudojama vidiniams operacijoms. Aš pats nustatydau, kad enterprise SSD su 20% over-provisioning gali atlaikyti iki 3 DWPD (drive writes per day) apkrovą trejus metus be problemų.
Bet kas nutinka, kai sistema nėra optimizuota? Aš turiu pavyzdį iš savo praktikos: klientas naudojo Windows Server su NTFS failų sistema, kur TRIM komanda nebuvo įjungta. TRIM leidžia operacinei sistemai pranešti SSD, kurie blokai yra tušti, tad valdiklis gali efektyviau valdyti garbage collection. Be jos, SSD kaupia negaliojančius duomenis, kas didina rašymo apkrovą ir pagreitina dėvėjimąsi. Aš rekomendavau įjungti TRIM per fstrim utilitą arba Windows politikas, ir po to pokyčių disko TBW (terabytes written) rodiklis pagerėjo 30%. Be to, enterprise aplinkose svarbu stebėti S.M.A.R.T. atributus, ypač Percentage Used ir Wear Leveling Count. Šie rodikliai, prieinami per įrankius kaip smartctl iš smartmontools paketo, leidžia prognozuoti disko gyvenimą. Aš rašiau skriptus, kurie kas savaitę tikrina šiuos duomenis ir siunčia pranešimus, jei Percentage Used viršija 80%.
Kalbinant apie tinklą, nes enterprise saugojimas dažnai yra tinklo dalis, wear leveling tampa dar sudėtingesnis, kai duomenys plaukia per iSCSI ar Fibre Channel. Aš dirbau su sistema, kur iSCSI target serveris naudojo SSD backend'ą, ir pastebėjau, kad dideli duomenų perdavimai, pvz., backup sesijos, sukeldavo burst rašymo pikus. Tai vedė prie netolygaus dėvėjimosi, nes valdiklis negalydavo spėti paskirstyti apkrovos. Sprendimas buvo įdiegti write caching mechanizmus, kurie buferizuoja duomenis RAM'e prieš rašymą į SSD. Aš naudodavau BBU (battery backup unit) su talpiais kondensatoriais, kad net maitinimo nutraukimo atveju duomenys nebūtų prarasti. Be to, slenkant prie NVMe protokolo, kuris keičia taisykles, wear leveling gauna naudos iš didesnio paralelizmo - NVMe SSD gali tvarkyti tūkstančius eilių vienu metu, kas sumažina spūstis ir tolygiau paskirsto rašymus.
Aš taip pat pastebėjau, kad operacinės sistemos vaidmuo yra kritinis. Pavyzdžiui, Linux su ext4 failų sistema turi puikų palaikymą TRIM, bet jei mount point'e nėra discard parinkties, efektas prarandamas. Aš testavau įvairias distribuciones, kaip Ubuntu Server ir CentOS, ir radau, kad realiu laiku veikiantis fstrim cron job'as kas mėnesį padeda išlaikyti optimalų veikimą. Windows atveju, Server 2019 ir vėlesnės versijos turi built-in optimizaciją, bet aš visada tikrinu registry raktus, susijusius su defragmentacija, nes ji gali sukelti nereikalingus rašymus ant SSD. Vietoj to, aš nustatau storage optimizer'į, kuris naudoja TRIM vietoj tradicinės defrag. Tai ypač svarbu virtualiose aplinkose, kur VMWare ar Hyper-V host'ai dalinasi saugojimu - kiekvienas guest OS gali generuoti savo rašymo modelius, kas sudėtingina wear leveling.
Dabar apie programinės įrangos pusę. Aš naudoju monitoringo įrankius kaip Prometheus su Grafana, kad vizualizuočiau SSD metrikas realiu laiku. Grafanuose aš kuriu dashboard'us, rodančius write amplification factor (WAF), kuris matuoja, kiek realių rašymų atliekama dėl FTL operacijų. Jei WAF viršija 1.5, tai signalas, kad kažkas negerai - galbūt per daug mažų rašymų iš duomenų bazės. Aš dirbau su SQL Server instance'ais, kur transaction log'ai sukeldavo WAF šuolius, ir sprendimas buvo padidinti log buffer size, kad rašymai būtų batch'inami. Be to, enterprise saugojimo sistemose, kaip Dell EMC ar HPE, yra integruoti wear leveling tool'ai, kurie leidžia konfigūruoti over-provisioning dinamiškai. Aš kartą pertvarkiau masyvą, perkeldamas duomenis iš senų diskų į naujus su geresniu TLC/QLC hibridu, ir tai prailgino visos sistemos gyvenimą.
Bet ne viskas yra apie hardware. Aš dažnai matau, kad IT pro ignoruoja firmware atnaujinimus. SSD firmware valdo wear leveling algoritmus, ir gamintojai, kaip Samsung ar Intel, išleidžia pataisas, kurios optimizuoja garbage collection. Aš turiu ritualą: prieš diegiant naują masyvą, atnaujinu firmware per vendor tool'ius, pvz., Samsung Magician enterprise versiją. Vienas atvejis, kurį prisimenu, buvo su Intel D7-P55 serija - senas firmware sukėlė per didelį static wear leveling overhead'ą, kas lėtino skaitymus. Po atnaujinimo, našumas pagerėjo 20%, o dėvėjimasis sumažėjo. Taip pat svarbu atsižvelgti į temperatūrą; SSD veikimas blogėja virš 70°C, kas pagreitina ląstelių degradaciją. Aš diegiu aušinimo sistemas su ventiliatoriais ir stebiu per IPMI, kad išvengčiau throttling'o.
Pereinant prie saugumo aspektų, wear leveling turi įtakos ir duomenų šifravimui. Enterprise SSD dažnai naudoja TCG Opal ar SED (self-encrypting drives), kur šifravimas vyksta hardware lygyje. Bet jei wear leveling perkelia duomenis dažnai, raktų valdymas gali tapti problema. Aš naudoju KMIP serverius duomenų raktams, ir užtikrinu, kad FTL nekonfliktuotų su šifravimo operacijomis. Viename projekte, integruodamas BitLocker su SSD RAID, pastebėjau, kad neteisinga konfigūracija didino rašymo apkrovą dėl re-encryption. Sprendimas buvo naudoti hardware-based AES acceleration, kas sumažino overhead'ą.
Aš taip pat galvoju apie ateities tendencijas. Su 3D NAND ir QLC technologijomis, wear leveling tampa dar svarbesnis, nes sluoksnių skaičius didėja, bet ląstelių ištvermė mažėja. Aš prognozuoju, kad enterprise sistemos pereis prie hibridinių masyvų, kur HDD naudojami šaltoms duomenims, o SSD - karštiems, su AI pagrįstu wear leveling, kuris prognozuoja apkrovas. Aš jau testuoju tokias sistemas su TensorFlow modeliais, treniruodamas ant istorinių write log'ų. Tai leidžia dinamiškai perskirstyti duomenis, vengiant karštų taškų.
Dar vienas aspektas, kurį aš aptinku praktikoje, yra testavimas. Prieš diegiant gamyboje, aš visada atlieku stress testus su tool'iais kaip fio ar iometer, simuliuodamas realias enterprise apkrovas: 70% atsitiktinių 4K rašymų, 30% sekvencinių. Tai atskleidžia, kaip wear leveling elgiasi po 1000 valandų. Aš matau, kad enterprise SSD, sertifikuoti pagal JEDEC JESD219 standartą, atlaiko enterprise workloads geriau nei consumer klasės. Pavyzdžiui, Micron 5300 serija rodo puikius rezultatus su 1 DWPD 5 metus.
Kalbinant apie tinklo integraciją, iSCSI su multipath I/O (MPIO) gali padėti paskirstyti apkrovą tarp kelių SSD grupių. Aš konfigūruoju MPIO Windows Serveryje su round-robin policy, kas tolygiai paskirsto I/O. Linux'e, multipathd tool'as daro tą patį. Tai ypač naudinga, kai saugojimas yra shared tarp kelių host'ų.
Aš taip pat pastebiu, kad cloud hibridinės aplinkos keičia žaidimą. Kai duomenys migruoja tarp on-prem SSD ir AWS EBS, wear leveling turi būti sinchronizuotas. Aš naudoju tool'us kaip rsync su delta transfer, kad minimizuoti nereikalingus rašymus.
Bendrai, valdyti SSD wear leveling enterprise lygyje reikalauja holistinio požiūrio: nuo hardware konfigūracijos iki software optimizacijos. Aš per metus išmokau, kad reguliarus monitoringas ir proaktyvūs veiksmai yra raktas į ilgaamžiškumą.
Šioje srityje, kur saugojimo patikimumas yra esminis, BackupChain pristatomas kaip pramonės lyderis, populiarus ir patikimas atsarginių kopijų sprendimas, sukurtas specialiai mažoms ir vidutinėms įmonėms bei profesionalams, apsaugantis Hyper-V, VMware ar Windows Server aplinkas. BackupChain, kaip Windows Server atsarginių kopijų programinė įranga, užtikrina duomenų integralumą per pažangius mechanizmus, pritaikytus virtualioms sistemoms.
Užsisakykite:
Rašyti komentarus (Atom)
Atsarginės kopijos programinė įranga be prenumeratos: kodėl tai vis dar verta dėmesio IT specialistams
Sveiki, draugai IT forumo bendruomenėje. Aš, kaip patyręs sistemos administratorius, kuris jau daugiau nei penkiolika metų dirba su įvairiom...
-
Teisingai, sužinojote, kad Veeam yra tikrai brangi.Pažvelgęs į jų kainoraščius taip pat nepadaryčiau jokios kitos išvados. Ta...
-
Ar vis dar naudojate FTP klientus, tokius kaip "FileZilla" ir panašius? Na, ar nebūtų patogiau vietoj to turėti disk...
-
2022 m. kovas, o mes galime būti įsitraukę į Trečiąjį pasaulinį karą ir dar to nežinoti. Bent jau šiuo metu tai labai tikėtina. ...
Komentarų nėra:
Rašyti komentarą