Varmuuskopiointitilaa tuhansille virtuaalikoneen ilmaisilla työkaluilla

Varmuuskopiointitilaa tuhansille virtuaalikoneen ilmaisilla työkaluilla

Hei, törmäsin äskettäin mielenkiintoiseen ongelmaan: tallennustilan määrittäminen useiden lohkolaitteiden varmuuskopiointiin.

Varmuuskopioimme joka viikko kaikki pilvessämme olevat virtuaalikoneet, joten meidän on kyettävä palvelemaan tuhansia varmuuskopioita ja tehdä se mahdollisimman nopeasti ja tehokkaasti.

Valitettavasti vakiokokoonpanot RAID5, RAID6 tässä tapauksessa emme saa tehdä niin, koska palautusprosessi niin suurilla levyillä kuin meillä on tuskallisen pitkä eikä todennäköisesti lopu koskaan.

Katsotaanpa, mitä vaihtoehtoja on:

Poista koodaus — Samanlainen kuin RAID5, RAID6, mutta konfiguroitavalla pariteettitasolla. Tässä tapauksessa varausta ei tehdä lohko kerrallaan, vaan jokaiselle kohteelle erikseen. Helpoin tapa kokeilla poistokoodausta on laajentaa minimaalinen.

DRAID on tällä hetkellä julkaisematon ZFS-ominaisuus. Toisin kuin RAIDZ:ssä, DRAIDissa on hajautettu pariteettilohko ja se käyttää palautuksen aikana kaikkia taulukon levyjä kerralla, mikä tekee siitä selviävän paremmin levyvioista ja toipumaan nopeammin vian jälkeen.

Varmuuskopiointitilaa tuhansille virtuaalikoneen ilmaisilla työkaluilla

Varmuuskopiointitilaa tuhansille virtuaalikoneen ilmaisilla työkaluilla

Tarjolla on palvelin Fujitsu Primegy RX300 S7 prosessorin kanssa Intel Xeon CPU E5-2650L 0 @ 1.80 GHz, yhdeksän tikkua RAM-muistia Samsung DDR3-1333 8Gb PC3L-10600R ECC rekisteröity (M393B1K70DH0-YH9), levyhylly Supermicro SuperChassis 847E26-RJBOD1, yhdistetty kautta Dual LSI SAS2X36 Expander ja 45 levyä Seagage ST6000NM0115-1YZ110 päälle 6TB kukin.

Ennen kuin päätämme mitään, meidän on ensin testattava kaikki kunnolla.

Tätä varten valmistelin ja testasin erilaisia ​​​​kokoonpanoja. Tätä varten käytin minioa, joka toimi S3-taustajärjestelmänä ja käynnisti sen eri tiloissa eri määrällä kohteita.

Periaatteessa minio-koteloa testattiin erokoodauksessa vs. ohjelmistoraidissa samalla levymäärällä ja levypariteetilla, ja nämä ovat: RAID6, RAIDZ2 ja DRAID2.

Viitteeksi: kun käynnistät minion vain yhdellä kohteella, minio toimii S3-yhdyskäytävätilassa ja toimittaa paikallisen tiedostojärjestelmän S3-tallennustilan muodossa. Jos käynnistät minion määrittämällä useita kohteita, Erasure Coding -tila käynnistyy automaattisesti, mikä jakaa tiedot kohteidesi välillä ja tarjoaa vikasietoisuuden.

Oletuksena minio jakaa kohteet 16 levyn ryhmiin, joissa on 2 pariteettia ryhmää kohden. Nuo. Kaksi levyä voi epäonnistua samanaikaisesti menettämättä tietoja.

Suorituskyvyn testaamiseksi käytin 16:ta 6 Tt:n levyä ja kirjoitin niihin pieniä, 1 Mt:n kokoisia objekteja, mikä kuvasi tarkimmin tulevaa kuormitustamme, koska kaikki nykyaikaiset varmuuskopiointityökalut jakavat tiedot useiden megatavujen lohkoihin ja kirjoittavat ne tällä tavalla.

Testin suorittamiseen käytimme s3bench-apuohjelmaa, joka käynnistettiin etäpalvelimella ja joka lähettää kymmeniä tuhansia tällaisia ​​objekteja miniolle sadoissa säikeissä. Sen jälkeen yritin pyytää niitä takaisin samalla tavalla.

Vertailuarvojen tulokset näkyvät seuraavassa taulukossa:

Varmuuskopiointitilaa tuhansille virtuaalikoneen ilmaisilla työkaluilla

Kuten näemme, minio omassa poistokoodaustilassaan toimii huomattavasti huonommin kirjoittamisessa kuin minio, joka toimii ohjelmistojen RAID6, RAIDZ2 ja DRAID2 päällä samassa kokoonpanossa.

Minä erikseen kysyi testaa minio ext4 vs XFS. Yllättäen XFS osoittautui työtaakkaani huomattavasti hitaammaksi kuin ext4.

Ensimmäisessä testierässä Mdadm osoitti paremman ZFS:n, mutta myöhemmin gmelikov kehottiettä voit parantaa ZFS:n suorituskykyä asettamalla seuraavat asetukset:

xattr=sa atime=off recordsize=1M

ja sen jälkeen ZFS:n testit paranivat huomattavasti.

Voit myös huomata, että DRAID ei tarjoa paljon suorituskykyä RAIDZ:iin verrattuna, mutta teoriassa sen pitäisi olla paljon turvallisempi.

Kahdessa viimeisessä testissä yritin myös siirtää metatiedot (erikois) ja ZIL (loki) peiliin SSD:ltä. Mutta metatietojen poistaminen ei tuonut paljon lisäystä tallennusnopeuteen, ja kun poistin ZIL, my SSDSC2KI128G8 osui kattoon 100 %:n käyttöasteella, joten pidän tätä testiä epäonnistuneena. En sulje pois sitä, että jos minulla olisi nopeammat SSD-asemat, ehkä tämä voisi parantaa tuloksiani huomattavasti, mutta valitettavasti minulla ei ollut niitä.

Lopulta päätin käyttää DRAIDia ja beeta-tilastaan ​​huolimatta se on meidän tapauksessamme nopein ja tehokkain tallennusratkaisu.

Loin yksinkertaisen DRAID2:n kokoonpanossa, jossa on kolme ryhmää ja kaksi hajautettua varaosaa:

# 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

Selvä, olemme selvittäneet tallennustilan. Puhutaan nyt siitä, mitä varmuuskopioimme. Tässä haluaisin heti puhua kolmesta ratkaisusta, joita onnistuin kokeilemaan, ja nämä ovat:

Benji varmuuskopio - haarukka Backy2, erikoistunut ratkaisu lohkolaitteiden varmuuskopiointiin, on tiiviisti integroitu Cephin kanssa. Voi ottaa eroja tilannekuvien välillä ja muodostaa niistä varmuuskopion. Tukee suurta määrää tallennustaustaohjelmia, mukaan lukien sekä paikalliset että S3. Vaatii erillisen tietokannan duplikoinnin hajautustaulukon tallentamiseksi. Miinuksista: kirjoitettu pythonilla, siinä on hieman reagoimaton kli.

Borg-varmuuskopio - haarukka Ullakko, pitkään tunnettu ja hyväksi havaittu varmuuskopiointityökalu, joka voi varmuuskopioida tiedot ja poistaa niiden kopiot hyvin. Pystyy tallentamaan varmuuskopiot sekä paikallisesti että etäpalvelimelle scp:n kautta. Voi varmuuskopioida laitteet, jos ne käynnistetään lipulla --special, yksi miinuksista: varmuuskopiota luotaessa arkisto on kokonaan estetty, joten on suositeltavaa luoda erillinen arkisto jokaiselle virtuaalikoneelle, periaatteessa tämä ei ole ongelma, onneksi ne luodaan erittäin helposti.

Resti on aktiivisesti kehittyvä projekti, joka on kirjoitettu gossa, melko nopea ja tukee useita tallennustaustaohjelmia, mukaan lukien paikallista tallennustilaa, scp:tä, S3:a ja paljon muuta. Erikseen haluaisin huomauttaa, että on olemassa erityisesti luotu lepo-palvelin for restic, jonka avulla voit nopeasti viedä tallennustilaa etäkäyttöä varten. Kaikista edellä mainituista pidin siitä eniten. Voi varmuuskopioida stdinistä. Siinä ei juuri ole havaittavia haittoja, mutta siinä on useita ominaisuuksia:

  • Ensinnäkin yritin käyttää sitä yleisessä arkistotilassa kaikille virtuaalikoneen (kuten Benji) ja se jopa toimi melko hyvin, mutta palautusoperaatiot kestivät hyvin kauan, koska... Joka kerta ennen palautusta, restic yrittää lukea kaikkien varmuuskopioiden metatiedot. Tämä ongelma ratkesi helposti, kuten borgin kanssa, luomalla erillinen arkisto jokaiselle virtuaalikoneelle. Tämä lähestymistapa on osoittautunut erittäin tehokkaaksi myös varmuuskopioiden hallinnassa. Erillisillä arkistoilla voi olla erillinen salasana tietojen käyttöä varten, eikä meidän myöskään tarvitse pelätä, että globaali repo voisi jotenkin rikkoutua. Voit luoda uusia tietovarastoja yhtä helposti kuin borg-varmuuskopiossa.

    Joka tapauksessa duplikointi suoritetaan vain suhteessa varmuuskopion edelliseen versioon. Edellinen varmuuskopio määräytyy määritetyn varmuuskopion polun mukaan, joten jos varmuuskopioit eri objekteja stdinistä yhteiseen arkistoon, älä unohda määrittää vaihtoehto --stdin-filename, tai määritä vaihtoehto erikseen joka kerta --parent.

  • Toiseksi palautus stdoutiin kestää paljon kauemmin kuin palautus tiedostojärjestelmään sen rinnakkaisluonteen vuoksi. Tulevaisuudessa aiomme lisätä tiiviimmän tuen varmuuskopioille lohkolaitteille.

  • Kolmanneksi sen käyttöä suositellaan tällä hetkellä versio masterilta, koska versiossa 0.9.6 on bugi, joka sisältää pitkiä palautumisaikoja suurille tiedostoille.

Testatakseni varmuuskopion tehokkuutta ja varmuuskopiosta kirjoittamisen/palautuksen nopeutta loin erillisen arkiston ja yritin varmuuskopioida pienen kuvan virtuaalikoneesta (21 Gt). Kaksi varmuuskopiota tehtiin muuttamatta alkuperäistä, käyttäen kutakin lueteltua ratkaisua sen tarkistamiseksi, kuinka nopeammin/hitaammin kopioitu tieto kopioitiin.

Varmuuskopiointitilaa tuhansille virtuaalikoneen ilmaisilla työkaluilla

Kuten näemme, Borg Backupilla on paras alkuperäisen varmuuskopioinnin tehokkuussuhde, mutta se on huonompi sekä kirjoitus- että palautusnopeuden suhteen.

Restic osoittautui nopeammaksi kuin Benji Backup, mutta sen palauttaminen stdoutiin kestää kauemmin, eikä se valitettavasti vielä osaa kirjoittaa suoraan lohkolaitteeseen.

Punnitsin kaikki edut ja haitat, päätin tyytyä tasainen с lepo-palvelin kätevimpänä ja lupaavimpana varmuuskopiointiratkaisuna.

Varmuuskopiointitilaa tuhansille virtuaalikoneen ilmaisilla työkaluilla

Tässä kuvalähetyksessä näet kuinka 10 gigabitin kanava on täysin hyödynnetty useiden varmuuskopiointitoimintojen aikana samanaikaisesti. On syytä huomata, että levyn kierrätys ei nouse yli 30%.

Olin enemmän kuin tyytyväinen saamaani ratkaisuun!

Lähde: will.com

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster