TagasĂŒsteem tuhandete virtuaalmasinate jaoks tasuta tööriistadega

TagasĂŒsteem tuhandete virtuaalmasinate jaoks tasuta tööriistadega

Tere, hiljuti sattusin huvitavale ĂŒlesandele seadistada salvestusruum suure hulga plokkseadmete varukoopiate jaoks.

Igal nÀdalal teeme varukoopiaid kÔigist virtuaalmasinatest meie pilves, seega peab olema suutlik hallata tuhandeid varukoopiaid ja teha seda vÔimalikult kiiresti ja tÔhusalt.

Kahjuks ei sobi tavalised konfiguratsioonid RAID5, RAID6 antud juhul meile ei sobi, kuna nende suurte ketaste nagu meie omad taastamisprotsess on vaevarikas ja tÔenÀoliselt ei lÔpe kunagi.

Vaatame, millised alternatiivid on:

Erasure Coding — RAID5, RAID6 analoog, kuid konfigureeritava pariteedi tasemega. Varundamine toimub mitte plokkide kaupa, vaid iga objekti kaupa eraldi. Lihtsaim viis proovida erasure coding’ut on kĂ€ivitada minio.

DRAID — see on hetkel veel vĂ€ljaandmata ZFS funktsioon. Erinevalt RAIDZ-st, DRAID-l on jaotatud pariteediblock ja taastamise ajal kaasab see kohe kĂ”ik massiivi kettad, mis talub paremini kettaidĂ”rkeid ja taastub kiiremini pĂ€rast tĂ”rke tekkimist.

TagasĂŒsteem tuhandete virtuaalmasinate jaoks tasuta tööriistadega

TagasĂŒsteem tuhandete virtuaalmasinate jaoks tasuta tööriistadega

KĂ€es on server Fujitsu Primergy RX300 S7 Intel Xeon CPU E5-2650L 0 @ 1.80GHz protsessoriga , ĂŒheksa RAM-moodulitSamsung DDR3-1333 8Gb PC3L-10600R ECC registreeritud (M393B1K70DH0-YH9) , ketta riiulSupermicro SuperChassis 847E26-RJBOD1 , ĂŒhendatud lĂ€biDual LSI SAS2X36 laiendaja ja 45 ketast Seagate ST6000NM0115-1YZ110 igaĂŒks 6TB igaĂŒhe. Enne kui midagi otsustame, peame kĂ”ik korralikult testima.

Selleks olen valmistunud ja viinud lĂ€bi erinevate konfiguratsioonide testimise. Selleks kasutasin minio’t, mis toimis S3-tagasiĂŒhenduse jaoks ja kĂ€ivitati erinevates reĆŸiimides erineva arvu sihtidega.

Peamiselt testiti minio juhtumit erasure coding vs tarkvara RAID sama ketaste ja pariteedi ketaste arvu puhul, nimelt: RAID6, RAIDZ2 ja DRAID2.

Teave: kui kĂ€ivitate minio ĂŒhe ainsa sihtmĂ€rgiga, töötab minio S3 vĂ€ravana, andes teie kohaliku failisĂŒsteemi S3-salvestusena. Kui aga kĂ€ivitate minio mitme sihtmĂ€rgiga, aktiveeritakse automaatselt Erasure Coding reĆŸiim, mis jaotab andmed teie sihtmĂ€rkide vahel, tagades talitlushĂ€irete taluvuse.

Teadmiseks: kui kĂ€ivitate minio vaid ĂŒhe sihtmĂ€rgiga, töötab minio S3-lĂ€bipÀÀsu reĆŸiimis, andes teie kohaliku failisĂŒsteemi S3-hoidina. Kuid juhul, kui kĂ€ivitate minio mitme sihtmĂ€rgiga, aktiveeritakse automaatselt Erasure Coding reĆŸiim, mis jaotab andmed teie sihtkohtade vahel, pakkudes talitlushĂ€iret tolerantsust.

Vaikimisi jagab minio sihtkohtadesse 16 ketta rĂŒhmadesse, kus igas grupis on 2 pariteeti. See tĂ€hendab, et kaks ketast vĂ”ivad korraga rikki minna ilma andmete kaotamata.

JĂ”udluse testimiseks kasutasin 16 ketast, igaĂŒks 6TB, ja kirjutasin neile vĂ€ikeseid objekte, mille suurus oli 1MB, mis tĂ€pselt kirjeldas meie tulevast koormust, kuna kĂ”ik kaasaegsed varundustööriistad jagavad andmeid mitme megabaidi suuruste plokkideks ja kirjutavad neid nii.

BĂ€nĆĄmarkimiseks kasutati tööriista s3bench, mis kĂ€ivitati eemalserveris ja saatis miniosse kĂŒmneid tuhandeid selliseid objekte sada voogu. PĂ€rast seda ĂŒritas ta neid samamoodi tagasi nĂ”uda.

BÀnƥmarkimise tulemused on esitatud jÀrgmises tabelis:

TagasĂŒsteem tuhandete virtuaalmasinate jaoks tasuta tööriistadega

NĂ€eme, et minio oma erasure coding reĆŸiimis töötab kirjutamisel mĂ€rkimisvÀÀrselt halvemini kui minio, mis on loodud tarkvara RAID6, RAIDZ2 ja DRAID2 peal sama konfiguratsiooni raames.

Erakordselt paluti mind testida miniot ext4 vs XFS. Üllatavalt, kuid minu koormuse puhul osutus XFS oluliselt aeglasemaks kui ext4.

Esimeses testierias nĂ€itas Mdadm ZFS-i ees ĂŒletust, kuid hiljem gmelikov soovis, et ZFS-i jĂ”udlust saaks parandada, seades jĂ€rgmised valikud:

xattr=sa atime=off recordsize=1M

ja pÀrast seda paranesid ZFS-i testid oluliselt.

Samuti vÔib tÀheldada, et DRAID ei too eriti suurt jÔudluse kasu RAIDZ ees, kuid teoorias peaks see olema palju turvalisem.

Viimastes kahes testis pĂŒĂŒdsin samuti andmefailid (special) ja ZIL (log) tuua SSD peegeldusele. Kuid andmematerjalide ĂŒlekanne ei toonud eriliselt kiiret kirjutamise kasu, kuid ZIL-i eemaldamisel SSDSC2KI128G8 silmusime 100% kasutuse piirides, nii et pean seda testi ebaĂ”nnestunuks. Ma ei vĂ€lista, et kui mul oleks olnud kiiremaid SSD-d, oleks see minu tulemusi tĂ”siselt parandanud, kuid kahjuks ei olnud neid mul.

KokkuvÔttes otsustasin jÀÀda DRAIDi kasutamisele ja hoolimata oma beetastaatusest on see meie jaoks kÔige kiirem ja tÔhusam lahendus andmete salvestamiseks.

Loomisin lihtsa DRAID2 konfiguratsiooni koos kolme grupiga ja kahe jaotatud varu:

# zpool status data
  pool: data
 state: ONLINE
  scan: none requested
config:

    NAME                 STATE     READ WRITE CKSUM
    data                 ONLINE       0     0     0
      draid2:3g:2s-0     ONLINE       0     0     0
        sdy              ONLINE       0     0     0
        sdam             ONLINE       0     0     0
        sdf              ONLINE       0     0     0
        sdau             ONLINE       0     0     0
        sdab             ONLINE       0     0     0
        sdo              ONLINE       0     0     0
        sdw              ONLINE       0     0     0
        sdak             ONLINE       0     0     0
        sdd              ONLINE       0     0     0
        sdas             ONLINE       0     0     0
        sdm              ONLINE       0     0     0
        sdu              ONLINE       0     0     0
        sdai             ONLINE       0     0     0
        sdaq             ONLINE       0     0     0
        sdk              ONLINE       0     0     0
        sds              ONLINE       0     0     0
        sdag             ONLINE       0     0     0
        sdi              ONLINE       0     0     0
        sdq              ONLINE       0     0     0
        sdae             ONLINE       0     0     0
        sdz              ONLINE       0     0     0
        sdan             ONLINE       0     0     0
        sdg              ONLINE       0     0     0
        sdac             ONLINE       0     0     0
        sdx              ONLINE       0     0     0
        sdal             ONLINE       0     0     0
        sde              ONLINE       0     0     0
        sdat             ONLINE       0     0     0
        sdaa             ONLINE       0     0     0
        sdn              ONLINE       0     0     0
        sdv              ONLINE       0     0     0
        sdaj             ONLINE       0     0     0
        sdc              ONLINE       0     0     0
        sdar             ONLINE       0     0     0
        sdl              ONLINE       0     0     0
        sdt              ONLINE       0     0     0
        sdah             ONLINE       0     0     0
        sdap             ONLINE       0     0     0
        sdj              ONLINE       0     0     0
        sdr              ONLINE       0     0     0
        sdaf             ONLINE       0     0     0
        sdao             ONLINE       0     0     0
        sdh              ONLINE       0     0     0
        sdp              ONLINE       0     0     0
        sdad             ONLINE       0     0     0
    spares
      s0-draid2:3g:2s-0  AVAIL   
      s1-draid2:3g:2s-0  AVAIL   

errors: No known data errors

Nii, nĂŒĂŒd oleme salvestamisega hakkama saanud, rÀÀgime, millega me varundame. Siin tahaks kohe rÀÀkida kolmest lahendusest, mida mul oli vĂ”imalus proovida, nimelt:

Benji Backup — fork Backy2, spetsialiseeritud lahendus plokkseadmestike varundamiseks, omab tihedat integratsiooni Cephiga. Suudab vĂ”tta vahepealsed muudatused snapshot'ide vahel ja vormida neist inkrementaalse varukoopia. Toetab suurt hulka salvestusbackend'e, sealhulgas nii kohalikke kui ka S3 lahendusi. NĂ”uab deduplikeerimise hĂ€shtabeli salvestamiseks eraldi andmebaasi. Miinustest: on kirjutatud Pythonis ja tal on veidi mitte-reaktiivne CLI.

Borg Backup — fork Attic, pikka aega tuntud ja tĂ”estatud lahendus varundamiseks, suudab andmeid varundada ja hĂ€sti deduplikerida. Suudab salvestada varukoopiad nii kohalikult kui ka kaugserverisse lĂ€bi SCP. Suudab varundada plokkseadmeid, kui kĂ€ivitada lippudega --special, miinustest: varukoopia loomisel blokeerib repository tĂ€ielikult, seetĂ”ttu on soovitatav iga virtuaalmasina jaoks luua eraldi repository, see pole aga probleem, kuna need on vĂ€ga kergesti loodud.

Restic — aktiivselt arenev projekt, kirjutatud Go-s, piisavalt kiire ja toetab suurt hulka salvestusbackend'e, sealhulgas nii kohalikke salvestusi kui ka SCP, S3 ja palju muud. Eriti vÀÀrib mainimist, et on loodud rest-server restic'i jaoks, mis vĂ”imaldab kĂ”ige kiiremini eksportida salvestust kaugkasutamiseks. KĂ”igist ĂŒlalkirjeldatutest meeldis see mulle kĂ”ige rohkem. Suudab varundada stdin'ist. MĂ€rkimisvÀÀrseid miinuseid peaaegu ei ole, kuid on mitmeid eripĂ€rasid:

  • Esiteks proovisin seda kasutada ĂŒldise repository reĆŸiimis kĂ”igi virtuaalmasinate jaoks (nagu Benji) ja see töötas isegi hĂ€sti, kuid taastamisprotsessid vĂ”tsid ĂŒsna kaua aega, kuna iga kord enne taastamist proovib restic lugeda kĂ”igi varukoopiate metaandmeid. See probleem lahendus vĂ€ga lihtsalt, nagu ka Borgi puhul, luues iga virtuaalmasina jaoks eraldi repository. See lĂ€henemine osutus samuti varukoopiate haldamisel vĂ€ga efektiivseks. Eraldi repository'd vĂ”ivad omada eraldi parooli andmetele juurdepÀÀsuks, samuti ei pea me kartma, et globaalne repository vĂ”iks kuidagi puruneda. Uute repository'de loomine on samuti sama lihtne kui Borg Backupis.

    Igal juhul toimub deduplikeerimine ainult varasema versiooni varunduse suhtes, eelmine varukoopia mÀÀratakse antud varunduse jaoks path'i pĂ”hjal, nii et kui varundate erinevaid objekte stdin'ist ĂŒhisse repositoriumisse, Ă€rge unustage nĂ€idata valikut --stdin-filename, vĂ”i öelda valikut igal korral selgelt --parent.

  • Teiseks, taastamine stdout'i on oluliselt aeglasem kui taastamine failisĂŒsteemi oma paralleelsuse tĂ”ttu. Tulevikus on plaanis lisada tihedam tugi plokkseadmestiku varukoopiatele.

  • Kolmandaks, hetkel soovitatakse kasutada master'i versiooni, kuna versioon 0.9.6-l on tĂ”rge suurte failide pika taastamise osas.

Varukoopia efektiivsuse ja kirje / taastamise kiirusest testimiseks lÔin eraldi repositoriumi ja proovisin varundada vÀikest virtuaalse masina pilti (21 GB). Tehti kaks varundust ilma originaali muutmata, kasutades iga loetletud lahenduse kÀigus, et uurida, kui palju kiiremini / aeglasemalt deduplikeeritud andmed kopeeritakse.

TagasĂŒsteem tuhandete virtuaalmasinate jaoks tasuta tööriistadega

Kuidas nÀeme, Borg Backup'il on parim algse varukoopia efektiivsuse koefitsient, kuid see kaotab nii kirje kui ka taastamise kiirusel.

Restic osutus kiiremaks kui Benji Backup, kuid taastab stdout'i aeglasemalt, ja kirjutada otse plokkseadmestikku, kahjuks, ta ei oska veel.

Kaaludes kÔiki plusse ja miinuseid, otsustasin jÀÀda restic jot rest-server nagu kÔige mugavam ja perspektiivikam lahendus varukoopiaks.

TagasĂŒsteem tuhandete virtuaalmasinate jaoks tasuta tööriistadega

Selles screencastis vĂ”ite nĂ€ha, kuidas 10-gigabitine kanal on tĂ€ielikult kasutuses mitme samaaegselt kĂ€ivitatud varukoopia operatsiooni ajal. Tasub mĂ€rkida, et kettaruumi kasutus ei tĂ”use ĂŒle 30%.

Saadud lahendusega olen rohkem kui rahul!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster