Kirjoittanut: Lars Wirzenius
Sain syyskuussa 2015 FUUGin säätiöltä avustuksen varmuuskopio-ohjelmani Obnamin nopeuttamiseksi. Ostin avustukselle tietokoneen, jolla olen voinut ajaa nopeustestejä ja erilaisia kokeiluja. Aikaisemmin olen ajanut ne lähinnä kannettavalla tietokoneellani, joten erillinen kone niitä varten on ollut iso parannus.
Rauta
Ostin ohjelman nopeuttamista varten seuraavat osat:
- CPU: Intel Core i7 4790K 4.0 GHz (4 ydintä, yhteensä 8 hyperthreadiä)
- RAM: Kingston HyperX Beast 32 GB
- Mainboard: 46400 Asus H97M-Plus Intel H97 LGA 1150 micro-ATX
- SSD: Samsung 850 EVO SSD 120 GB
- HDD: 4 x WD Red 4 TB
- PSU: Corsair CX750M ATX
- Case: BitFenix Phenom micro-ATX
SSD-levy on järjestelmälevy, jolla on käyttöjärjestelmä, sekä virtuaalikoneiden virtuaalilevyt.
Pyörivät kovalevyt ovat Obnamin nopeustestejä varten. Kovalevyt eivät ole RAID-pakkana, vaan ne on vain ketjutettu peräkkäin LVM:n avulla. RAID ei tuo tälle koneelle mitään tarpeellista. Kaikki näillä levyillä oleva data on tarvittaessa poisheitettävää. Itse asiassa suurin osa siitä tuotetaan ohjelmallisesti ja poistetaan nopeustestien aikana.
Koneessa pyörii Debian 8 (Jessie). Asennus on aika minimaalinen ja sisältää vain virtuaalikoneiden hallintaan tarvittavat osat. Kaikki varsinainen työ tapahtuu virtuaalikoneissa, myös nopeustestit, koska näin resurssien rajoittaminen on helpompaa.
Nopeustestit
Käytän nopeustestien ajamiseen itse tekemääni välinettä nimeltä Obbench. Tulokset julkaistaan obnam.org -sivustolla. Alla yhteenveto syksyn muutoksista:
pvm | many files | one big file |
---|---|---|
2015-09-28 | 2165.0 | 1381.9 |
2015-12-06 | 1461.6 | 384.0 |
Reilussa kahdessa kuukaudessa Obnam on nopeutunut oikein hienosti, suurelta osin uuden koneen ansiosta.
Tällä hetkellä ajamani nopeustestit ovat:
- Miljoona pientä tiedostoa, joissa on kussakin yksi satunnainen tavu.
- Yksi kymmenen gigatavun tiedosto.
Nämä ovat varmmuuskopioiden äärimmäistapauksia. Joko lähes pelkästään tiedostojen metadataa tai sitten lähes pelkästään tiedoston sisältöä. Kumpikin ääripää aiheuttaa erilaista raskautta varmuuskopio-ohjelmalle, jonka pitää tietysti pystyä käsittelemään sekä paljon tiedostoja että paljon dataa ja näiden vaatimat tietorakenteet ovat erilaisia.
Nopeustesti koostuu tiedostojen varmuuskopioinnista ja palautuksesta. Monen pienen tiedoston kohdalla lisäksi toisesta varmuuskopioinnista ilman, että dataan on tullut muutoksia. Toisen varmuuskopion tarkoituksena on katsoa, miten hyvin Obnam käsittelee vielä yhtä ääritapausta: dataan ei tule muutoksia, mutta tiedostoja on paljon.
Nämä nopeustestit ovat tietenkin keinotekoisia: ne käyttävät dataa, joka on generoitu ohjelmallisesti (ohjelmalla Genbackupdata), jotta ne voi kuka tahansa helposti toistaa. Keinotekoiset testit ovat hyödyllisiä, erityisesti ohjelman tiettyjen osien käyttäytymisen tutkimiseen, mutta ne eivät välttämättä kerro, miten ohjelma käyttäytyy oikeassa käytössä.
Tämän takia ajan myös käsin kokeiluja oikealla datalla. Minulla on kotimme tiedostopalvelimen sekä kannettavan tietokoneeni kopiot nopeustestejä varten. Kopiot ovat staattisia, eivätkä päivity, jotta voin vertailla eri ajoja. Kokeilen tällä datalla samaan tapaan kuin keinotekoisella datalla: täysi varmuuskopio sekä sama uudestaan ilman muutoksia dataan. Palautuksia en ole vielä kokeillut.
Lokakuun alussa en saanut ensimmäistä tällaistä kokeilua valmistumaan. Se kesti liian pitkään ja keskeytin sen reilun viikon jälkeen. Joulukuussa se vie alle vuorokauden. Tämä on erittäin merkittävä muutos, joka ei suoraan näy ylläolevasta keinotekoisten testien taulukosta.
Numeroina: 572986 tiedostoa, yhteensä noin 4.5 TiB. Ensimmäinen varmuuskopio, noin 18.5 tuntia. Toinen, 4m13s. Tässä kokeilussa varsinainen data ja varmuuskopio ovat kumpikin paikallisilla levyillä. Nopeudet laskevat, jos varmuuskopio on verkon päässä.
Näiden testien lisäksi olen ajanut monia kokeiluja uudella koneella. Nämä olisivat olleet paljon hankalampia, mikäli olisin joutunut tekemään ne kannettavalla tietokoneellani, joten luultavasti olisin jättänyt suurimman osan niistä tekemättä. Kannettavallani on paljon vähemmän levytilaa ja tarvitsen sitä muuhunkin käyttöön.
Tähänastiset tulokset
Kiitos systemaattisten nopeustestien ja kokeilujen Obnamin uusi versio, koodinimeltään FORMAT GREEN ALBTROSS, on kehittynyt huimasti tämän syksyn aikana. Se on nopeutunut niin paljon, että käytän sitä nyt rinnakkain varsinaisten varmuuskopioiden kanssa, jotta näen, miten se toimii oikeasti. Toistaiseksi olen tyytyväinen, joskin on vielä tekemistäkin.
Tulevaisuus
On vielä paljon tekemistä, ennen kuin uusi Obnamin tallennusmuoto on valmis tuotantokäyttöön. Pääasiana tietysti lisäoptimointi: esimerkiksi Obnam voisi pitää paikallista välimuistia, jotta kaikkia asioita ei tarvitse tarkistaa verkon yli varmuuskopiopalvelimelta.
Nopeuden lisäksi tarkoitukseni on parantaa toistuvan datan huomaamista. Tämä odottaa nopeutustoimia, koska se tulee lisäämään datan palasten määrää suuresti ja Obnamin vanhat tietorakenteet eivät skaalaudu tarpeeksi.
Lisäksi haluan tutkia ja optimoida muistinkäyttöä. Obnam on perinteisesti vienyt aika paljonkin muistia ja toivon, että saan uuden tallennusmuodon käyttämään paljon vähemmän muistia ilman että tehokkuus kärsii.