Muokattava ja deduplikoiva tiedostojen paketointi- ja pakkausjärjestelmä
Heino, Henrik (2013)
Heino, Henrik
2013
Tietotekniikan koulutusohjelma
Luonnontieteiden tiedekunta - Faculty of Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2013-11-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201311181446
https://urn.fi/URN:NBN:fi:tty-201311181446
Tiivistelmä
Työn tavoitteena oli kehittää pakkaustyökalu, eli ohjelma ja sen käyttämä tiedostoformaatti. Näiden erityisvaatimuksena oli deduplikointi sekä pakettitiedoston muokattavuus. Deduplikoinnilla tarkoitetaan tässä identtisten tiedostojen ja hakemistorakenteiden tallentamista vain kerran, vaikka ne esiintyisivätkin aineistossa jopa miljoonia kertoja. Työssä kehitetty pakkaustyökalu deduplikoi koko paketoitavan aineiston laajuudelta.
Lähtökohtana työlle oli oma varmuuskopiointitapaus, jossa tärkeät tiedostot ja hakemistot tallennetaan joka yö tiettyyn pakettitiedostoon. Muokattavuutta tarvittiin, jotta pakettitiedostoon voidaan lisätä tiedostoja ja hakemistoja.
Ohjelma toteutettiin C++-ohjelmointikielellä. Ohjelman algoritmit keskittyvät lähinnä siihen, miten tiedostot ja hakemistot paketoidaan deduplikoinnin saavuttamiseksi. Varsinaisen tiedon pakkaamisen, eli tiivistämisen tekee zlib-ohjelmistokomponentti. Pakkaustyökalu tukee myös yksinkertaista AES256-pohjaista salausta.
Toteutettu työkalu pakkaa lähtökohtana olleen varmuuskopiointitapauksen erittäin tehokkaasti. Deduplikointi toimii tiedostojen lisäksi kokonaisille hakemistorakenteille ja säästää sen vuoksi paljon tilaa. Työkalua voi käyttää myös tavallisissa pakkaustapauksissa, kuten esimerkiksi ohjelmiston paketoimisessa, mutta näissä työkalun pakkaustehokkuus on korkeintaan keskitasoa.
Ohjelmasta löytyi myös virheitä. Vaikka työkalu onkin käyttökelpoinen päivittäiseen varmuuskopiointiin, tulee pakettitiedostoihin aina silloin tällöin virheitä. Näihin ongelmiin puututtiin toki jo työn aikana, mutta niitä jäi ratkottavaksi myös tulevaisuuteen. Mitkään virheet eivät kuitenkaan olleet sellaisia, että koko paketin sisältö menetettäisiin.
Lähtökohtana työlle oli oma varmuuskopiointitapaus, jossa tärkeät tiedostot ja hakemistot tallennetaan joka yö tiettyyn pakettitiedostoon. Muokattavuutta tarvittiin, jotta pakettitiedostoon voidaan lisätä tiedostoja ja hakemistoja.
Ohjelma toteutettiin C++-ohjelmointikielellä. Ohjelman algoritmit keskittyvät lähinnä siihen, miten tiedostot ja hakemistot paketoidaan deduplikoinnin saavuttamiseksi. Varsinaisen tiedon pakkaamisen, eli tiivistämisen tekee zlib-ohjelmistokomponentti. Pakkaustyökalu tukee myös yksinkertaista AES256-pohjaista salausta.
Toteutettu työkalu pakkaa lähtökohtana olleen varmuuskopiointitapauksen erittäin tehokkaasti. Deduplikointi toimii tiedostojen lisäksi kokonaisille hakemistorakenteille ja säästää sen vuoksi paljon tilaa. Työkalua voi käyttää myös tavallisissa pakkaustapauksissa, kuten esimerkiksi ohjelmiston paketoimisessa, mutta näissä työkalun pakkaustehokkuus on korkeintaan keskitasoa.
Ohjelmasta löytyi myös virheitä. Vaikka työkalu onkin käyttökelpoinen päivittäiseen varmuuskopiointiin, tulee pakettitiedostoihin aina silloin tällöin virheitä. Näihin ongelmiin puututtiin toki jo työn aikana, mutta niitä jäi ratkottavaksi myös tulevaisuuteen. Mitkään virheet eivät kuitenkaan olleet sellaisia, että koko paketin sisältö menetettäisiin.