Kirjoittaja Aihe: Varmuuskopiointi  (Luettu 3706 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Varmuuskopiointi
« : 13.11.09 - klo:09.29 »
Paljon on tullut urputettua Linuxista ilman, että olisin paljoakaan pystynyt tarjoamaan vastineeksi.
Tässä olisi nyt kuitenkin jotain.
Itse ohjelmat toimivat, ja dokumentaatiokin on hieman normaalin tason yläpuolella, joskin vielä kesken. Esimerkiksi asennustyökalu puuttuu kokonaan.
Järjestelmä ei ole mikään plug & play, vaan asennuksessa pitää osata tehdä käsityötä. Jos jollain riittää asiaan intoa, niin tässä olisi vapaata kenttää kehittelylle. Itse haluaisin nähdä, että tälläisestä tulisi elimellinen osa tulevaisuuden Linux-asennuksia.

Kyseessä on varmuuskopiojärjestelmä. Vaikka näitä onkin maailma piukassa, haluan esitellä tämänkin, koska minusta siinä tiivistyy myös moni asia, joista olen Linuxissa urputtanut.

http://users.utu.fi/ptmusta/backup.shtml
« Viimeksi muokattu: 17.11.09 - klo:11.42 kirjoittanut Mistofelees »

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #1 : 14.11.09 - klo:12.32 »
Köh, tuo nimeää kiertävät snapshotit tyyliin 'new', 'old' jne., ja joka snapshotille on skriptissa oma ehtolause, ts. lukumäärä on kovakoodattu systeemiin. Eipä herätä kovin suurta luottamusta. Skriptissä on pitkin matkaa tehty mutkan kautta yhtä ja toista, minkä rsync osaisi itsekin. (Viritelmä on Turun yliopiston matemaattisluonnontieteellisen tiedekunnan ylläpidon sivuilla, ja kyseisesta putiikista aikanani valmistuneena en ehkä katselisi siihen suuntaan toimivia systeemejä etsiskellessäni.)

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #2 : 14.11.09 - klo:17.56 »
Köh, tuo nimeää kiertävät snapshotit tyyliin 'new', 'old' jne., ja joka snapshotille on skriptissa oma ehtolause, ts. lukumäärä on kovakoodattu systeemiin. Eipä herätä kovin suurta luottamusta. Skriptissä on pitkin matkaa tehty mutkan kautta yhtä ja toista, minkä rsync osaisi itsekin. (Viritelmä on Turun yliopiston matemaattisluonnontieteellisen tiedekunnan ylläpidon sivuilla, ja kyseisesta putiikista aikanani valmistuneena en ehkä katselisi siihen suuntaan toimivia systeemejä etsiskellessäni.)

Kiitos palautteesta. En ala puolustella koodin sisältöä, mutta selitän hieman valintojen syitä. Tärkeämpää, kuin kasaamani paketin koodin tökköydet, on periaate. Itsekin aion vielä jatkaa tämän järjestelmän kehittelyä.

Pahin tökkö tässä versiossa on se, että kopioitavat hakemistot luetellaan ohjelman sisällä osana rsync-lausetta. Toinen on se, että mnt-piste pitää mainita exclude -listassa, jottei syntyisi rekursiota.

Oleellista tässä paketissa on oikeastaan se, että varmuuskopio tehdään samassa koneessa olevalle toiselle kovalevylle, jota ei käytetä mihinkään muuhun. (Toinen kovalevy on joka tapauksessa halvempi, kuin yksinkertaisinkaan palautustoimenpide.) Sekä se, että jokaisella käyttäjällä on vapaa pääsy lukemaan omia varmuuskopioitaan ilman, että tarvitsisi konsultoida Root:a ja pystymättä tuhoamaan kopioita.

Nimet on valittu selkeyden takia. Määrä on valittu sen perusteella, että on aika turha säilöä ikivanhoja vedoksia tiedostoista. Kolmekin tasoa riittäisi kotikäytössä. Ja kopiointiväliksi riittäisi kaksikin vuorokautta. Joka tapauksessa tälläinen rakenne voittaa RAID.n 3-0.
Yhtäkkiä en nyt keksi, miten koodin tökköys heikentää luottamusta toimintaan.  Tälläisellä pure force -ratkaisulla koodista tulee helposti luettavaa sekä testattavaa ja siihen on helppo liittää erilaisia tarkistus- ja toiminnankirjausmenetelmiä. Esimerkiksi toiminnan valvontaa varten on oma werkkosivunsa sekä selkokieliset hälytykset sähköpostilla.
Toisaalta koodi on vapaassa jakelussa eikä ole mitään estettä sen muokkaamiseen. Oikeastaan jopa toivoisin, että joku pistäisi paremmiksi ja saisi Linuxin jakeluun mukaan toimivan työkalun, jolla ohjattaisiin ihmiset huolehtimaan varmuuskopioinneista. Ehkä tämä koodikasa antaa jollekin uusia ideoita. Scritien kirjoittaminen ei ole puristien mielestä 'oikeaa' ohjelmointia, mutta Linuxissa scriptit ovat osa oikeaa työskentelyä silloin, kun ei tarvitse välittää mikrosekunneista ja huippuunsa optimoidusta koodista.

Rsync on tehokas työkalu, mutta pahuksen hankala saada tottelemaan luotettavasti, vaikkei optioita loputtomasti olekaan. Olen ollut huomaavinani jopa eri versioissa eroja, joten päädyin ratkaisuihin, jotka sain testattua toimiviksi mahdollisimman monessa kokeilemassani testiympäristössä. Rsync ei missään mielessä ole hyvä työkalu Miinalle ja Manulle. Heille se on liian monimutkainen. Sitä voidaan kuitenkin käyttää varmuuskopioinnin moottorina.
Parhaimmillaan systeemi olisi, jos siihen olisi olemassa GUI, jolla peruskäyttäjä voisi asettaa parametrit varmuuskopioinnilleen. Toisaalta parametrit kirjaantuisivat tiedostoon, jota myös paneutuneempi käyttäjä voisi puukottaa suoraan editorilla.

Muutenkin kaipaisin Linuxin rakenteeseen muutamia muutoksia, jotka tekisivät varmuuskopioinnista helpompaa. Esimerkiksi se, että kaikki käyttäjän (myös root) luomat tiedostot ja käyttäjää koskevat asetustiedostot olisivat /home -hakemistossa. /etc on helppo ottaa mukaan, mutta vielä on joitain huonosti käyttäytyviä ohjelmia, jotka tallettavat konfiguraationsa jonnekin /usr tai /var -polun syövereihin.

Julkaisin paketin tuolla sivustolla, koska  sain sen sinne pistää. Se ei sinänsä ole millään tavalla sidoksissa muuhun yliopistoon eikä ATK-tukeen. Eikä tuo sivusto muutenkaan ole virallinen Mlt:n tukisivusto, vaan keräelmä yksittäisen ihmisen ATK-ylläpitoon liittyviä muistiinpanoja.
Harmi sinänsä, että sinulle on jäänyt huonot muistot opiskelusta.

Kullervo

  • Käyttäjä
  • Viestejä: 875
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #3 : 14.11.09 - klo:18.57 »

Parhaimmillaan systeemi olisi, jos siihen olisi olemassa GUI, jolla peruskäyttäjä voisi asettaa parametrit varmuuskopioinnilleen. Toisaalta parametrit kirjaantuisivat tiedostoon, jota myös paneutuneempi käyttäjä voisi puukottaa suoraan editorilla.

Pakettivarastosta löytyy grsync, lieneekö tarkoittamasi?

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #4 : 14.11.09 - klo:20.27 »

Parhaimmillaan systeemi olisi, jos siihen olisi olemassa GUI, jolla peruskäyttäjä voisi asettaa parametrit varmuuskopioinnilleen. Toisaalta parametrit kirjaantuisivat tiedostoon, jota myös paneutuneempi käyttäjä voisi puukottaa suoraan editorilla.

Pakettivarastosta löytyy grsync, lieneekö tarkoittamasi?
Hätäisesti katsoen se ei näytä siltä, mitä minulla on mielessä. Grsync vaikuttaa liian hienolta ja monipuoliselta Miina & Manu -käyttöön. Pitää tutkia paremmalla ajalla.

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #5 : 15.11.09 - klo:00.57 »
Miina & Manu -backupia varten on vissiin kehitelty Applen Time Machinen perässä ainakin TimeVault. Itselläni ei ole siitä kokemusta. Ks.

https://wiki.ubuntu.com/TimeVault

Muoks. Näemmä aktiivisemmin kehitetään tekelettä nimeltä Back In Time: https://launchpad.net/backintime Omakohtaista kokemusta ei ole siitäkään.

Pahin tökkö tässä versiossa on se, että kopioitavat hakemistot luetellaan ohjelman sisällä osana rsync-lausetta. Toinen on se, että mnt-piste pitää mainita exclude -listassa, jottei syntyisi rekursiota.

On tuohon muuten joku järkisyy, miksi backup-laite liitetään /home:n alle? Skriptihän ajetaan joka tapauksessa roottina ja levyjen liittämistä varten on järjestelmässä olemassa paikkansa (/media).

Nimet on valittu selkeyden takia. Määrä on valittu sen perusteella, että on aika turha säilöä ikivanhoja vedoksia tiedostoista. Kolmekin tasoa riittäisi kotikäytössä. Ja kopiointiväliksi riittäisi kaksikin vuorokautta. Joka tapauksessa tälläinen rakenne voittaa RAID.n 3-0.

Homma olisi triviaalia tehdä siten, että backuppeja olisi numeroitu sarja jonka pituuden voi asettaa (siis vaikka 3 kpl kahden päivän välein tai mitä tahansa muuta). Rotaatio samaan tyyliin kuin lokitiedostoille. Koodia olisi vähemmän .

Luottamuspulaa aiheuttaa se, että olen yrittänyt auttaa tai työskennellyt monien ihmisten kanssa, jotka nimeävät omien työtiedostojensa versiot tyyliin 'new', 'newnew', 'latest' jne. sen sijaan että laittaisivat päiväyksen tai käyttäisivät versionhallintaa. Tuosta seuraa poikkeusetta kaaos. Tietysti niin kauan kuin backuppeihin ei koske muu kuin tuo skripti, niin nimet pysyvät järjestyksessä.   

Scriptien kirjoittaminen ei ole puristien mielestä 'oikeaa' ohjelmointia, mutta Linuxissa scriptit ovat osa oikeaa työskentelyä silloin, kun ei tarvitse välittää mikrosekunneista ja huippuunsa optimoidusta koodista.

Skriptien väheksyminen asennesyistä on tietysti turhaa. Tulkatulla kielellä ohjelmointi on ohjelmointia siinä missä mikä tahansa muukin ja iso osa Linux-järjestelmien keskeisistä palikoista on shell-koodia (init-skriptit yms.).

Esimerkiksi se, että kaikki käyttäjän (myös root) luomat tiedostot ja käyttäjää koskevat asetustiedostot olisivat /home -hakemistossa. /etc on helppo ottaa mukaan, mutta vielä on joitain huonosti käyttäytyviä ohjelmia, jotka tallettavat konfiguraationsa jonnekin /usr tai /var -polun syövereihin.

Näitä on kyllä nykyään erittäin harvassa ja ainakin Fedorassa ja varmasti muissakin on pyritty siirtämään tiedostot /etc-hakemistoon ja laittamaan muualle sinne osoittava symlinkki.

Itsellä on tullut vastaan lähinnä distron paketoinnin ulkopuolisia (kaupallisia) ohjelmia, jotka pyörittävät jonkun sortin palvelinta ja haluavat asentua kokonaan omaan hakemistoonsa. Taustalla on usein se, että viritelmien on tarkoitus toimia monissa unixeissa, jolloin ne eivät oikein noudata minkään järjestelmän käytäntöjä. Tähän ei tietysti oikein auta muu kuin distron paketoijien alkuperäiseen tekemä muutos ja kaupallisten osalta ei sekään.

Harmi sinänsä, että sinulle on jäänyt huonot muistot opiskelusta.

Ei todellakaan jäänyt, enkä ollut opiskeluvaiheessa edes mitenkään erityisen riippuvainen yliopiston systeemeistä. Ne vaan olivat silloin melkoinen sekamelska, mutta siitäkin on jo aikaa.
« Viimeksi muokattu: 15.11.09 - klo:01.29 kirjoittanut mikko_h »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11443
    • Profiili
    • Tomin kotisivut
Vs: Varmuuskopiointi
« Vastaus #6 : 15.11.09 - klo:12.14 »
https://wiki.ubuntu.com/TimeVault

Muoks. Näemmä aktiivisemmin kehitetään tekelettä nimeltä Back In Time: https://launchpad.net/backintime Omakohtaista kokemusta ei ole siitäkään.

Tuohon Back In Timeen pitääkin tutustua. Tuon TimeVaultin lisäksi olen kuullut FlyBackistä, mutta en tiedä mitä sille (tai TimeVaultille) kuuluu. Linkki kuitenkin tässä: http://code.google.com/p/flyback/
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #7 : 15.11.09 - klo:13.59 »
Tuohon Back In Timeen pitääkin tutustua. Tuon TimeVaultin lisäksi olen kuullut FlyBackistä, mutta en tiedä mitä sille (tai TimeVaultille) kuuluu. Linkki kuitenkin tässä: http://code.google.com/p/flyback/

Katsoin itsekin Flybackia, mutta sen kehitys tuntuu lopahtaneen ja se käyttää snapshottien tallentamiseen Gitiä, eli on siis toimintaperiaatteeltaan kokolailla erilainen. Git-versionhallinta on kehitetty lähdekoodia varten ja siinä ei ole juuri varauduttu isojen binääritiedostojen käsittelemiseen, mikä aiheuttaa tiettyjä ongelmia (systeemi ei nykyisellään esim. pysty tallentamaan tiedostoja, jotka eivät mahdu kerralla muistiin).

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #8 : 17.11.09 - klo:01.43 »
Linux Journalin tekemä parin minuutin videonpätkä Back in Time:n toiminnasta.

http://video.linuxfoundation.org/video/1611

Tuon mukaan Back in Time on paketoitu Karmicissa.

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #9 : 17.11.09 - klo:11.30 »

Pahin tökkö tässä versiossa on se, että kopioitavat hakemistot luetellaan ohjelman sisällä osana rsync-lausetta. Toinen on se, että mnt-piste pitää mainita exclude -listassa, jottei syntyisi rekursiota.

On tuohon muuten joku järkisyy, miksi backup-laite liitetään /home:n alle? Skriptihän ajetaan joka tapauksessa roottina ja levyjen liittämistä varten on järjestelmässä olemassa paikkansa (/media).

- On oikein hyvä syy: oma typeryys. Teinkin jo korjauksen scriptiin, vaikken pistänytkään sitä vielä näytille. Pitää testailla ensin.
Itselle on epäselvää, miksi tämä /media on tullut käyttöön, kun aiemmin käytettiin /mnt.

Nimet on valittu selkeyden takia. Määrä on valittu sen perusteella, että on aika turha säilöä ikivanhoja vedoksia tiedostoista. Kolmekin tasoa riittäisi kotikäytössä. Ja kopiointiväliksi riittäisi kaksikin vuorokautta. Joka tapauksessa tälläinen rakenne voittaa RAID.n 3-0.

Homma olisi triviaalia tehdä siten, että backuppeja olisi numeroitu sarja jonka pituuden voi asettaa (siis vaikka 3 kpl kahden päivän välein tai mitä tahansa muuta). Rotaatio samaan tyyliin kuin lokitiedostoille. Koodia olisi vähemmän .
- Aivan tosi. Miinaa ja Manua ajatellen selkeät nimet ovat helpompia, kuin numerosarja. Tosin backupit aikaleimataan, mutta kokemus on osoittanut, että ainakaan wanhan polven käyttäjät eivät luota aikaleimoihin, eivätkä edes katso niitä.
Koodin määrää en pidä kriittisenä tekijänä. Kaikkineenkin tuo scripti on pieni, jos kumittaa kommentit pois. Koodimääränä tämä ei ole kuin alle prosentin luokkaa joistain isommista ohjelmista, joita on tullut kasattua, alle 300 riviä kommentteineen.
Myönnän numerointitavan oikeutuksen, vaikken itse sitä haluaisikaan käyttää.

Luottamuspulaa aiheuttaa se, että olen yrittänyt auttaa tai työskennellyt monien ihmisten kanssa, jotka nimeävät omien työtiedostojensa versiot tyyliin 'new', 'newnew', 'latest' jne. sen sijaan että laittaisivat päiväyksen tai käyttäisivät versionhallintaa. Tuosta seuraa poikkeusetta kaaos. Tietysti niin kauan kuin backuppeihin ei koske muu kuin tuo skripti, niin nimet pysyvät järjestyksessä.   
- Hihi. Kuulostaa tutulta. MSDOS:n 8+3 -järjestelmässä talletettiin 'kirje1.doc'. WinXP soi mahdollisuuden tallettaa 'mun ihan oma kirje 1.doc'. Ja kaikki tämä Office -hakemistoon. Silmissään märehtivän lehmän ystävällinen tuijotus, kun puhun hakemistopuista ja tiedostojen nimeen kirjoitetuista päivämääristä versiotunnuksina.
Versiohallintaan pitäisi itsekin perehtyä. Jonkinlainen automaaginen järjestelmä, joka osaisi tallettaa ja leimata scriptin versiot, helpottaisi puukotusta huomattavasti. En ole perehtynyt, koska ei ole tullut väännettyä Linuxille mitään erityisen vakavasti otettavaa koodia.
Samaten logrotateen pitäisi tutustua.
« Viimeksi muokattu: 17.11.09 - klo:11.51 kirjoittanut Mistofelees »

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #10 : 17.11.09 - klo:13.49 »
WinXP soi mahdollisuuden tallettaa 'mun ihan oma kirje 1.doc'. Ja kaikki tämä Office -hakemistoon. Silmissään märehtivän lehmän ystävällinen tuijotus, kun puhun hakemistopuista ja tiedostojen nimeen kirjoitetuista päivämääristä versiotunnuksina.

Ikävimmästä päästä selviteltäviä omalla kohdalla oli takavuosina yli kymmenen vuotta vanha C-kielinen lähdekoodi, jota oli kehitetty muistaakseni SCO:n Unixilla ja jollain alkuhämärän Linux-versiolla 90-luvun puolivälin tienoilla. Tekeleen toimintaan perustui useampi tieteellinen julkaisu ja lisää oli tarkoitus tehdä. Lähdekoodihakemistosta oli tekijän kotihakemiston uumenissa useampia kopioita, joissa oli viritelty koodi eri järjestelmissä kääntyvään tilaan. Versionhallinnasta tai versioiden kommentoinnista ei tietoakaan. Silloisessa Linuxissa (luokkaa 2003-4) kääntyi ja toimi versio, jonka nimessä identifioiva loppukaneetti oli ".works". Toimihan se. Tekijä ei siis ollut lehmäkastia ollenkaan, vaan professori, joka oli käyttänyt Unixeja koko uransa, alkaen 70-luvun teletype-terminaaleista (siis ei näyttöruutua, vaan paljon paperia).

Versiohallintaan pitäisi itsekin perehtyä. Jonkinlainen automaaginen järjestelmä, joka osaisi tallettaa ja leimata scriptin versiot, helpottaisi puukotusta huomattavasti. En ole perehtynyt, koska ei ole tullut väännettyä Linuxille mitään erityisen vakavasti otettavaa koodia.

Itse käytän Gitiä, lähinnä LaTeX-käsikirjoitusten ja muutaman ohjelmanpätkän hallintaan. Koodia ei ole kovin suuria määriä (n. 1500 riviä Pythonia muutamassa eri ohjelmassa kussakin) ja olen itse yleensä ainoa varsinainen kehittäjä. Tämä on siis aika kaukana tilanteesta, jota varten Git on kehitetty (Linusin kernel-lähdekoodin versionhallinta), joten homma voi vaikuttaa kärpäsen ampumiselta tykillä, mutta ainakin meikäläisen ajatuksenkulkuun Git istuu paremmin kuin CVS tai Subversion. Tavallaan se on myös yhden kayttäjän systeemi eri tavalla kuin nuo perinteiset. Käytän kaikkeen kirjoittamiseen Emacsia, ja siihen on nykyään suorastaan loistava Git-moodi Magit (ei siis Emacsin tavallinen version-control-mode, joka sekin ymmärtää Gitiä, vaan erikseen asennettava paketti). Gitiä on moitittu hankalakäyttöiseksi, mutta käyttöliittymät ovat kyllä tässä vaiheessa yhtä hyvässä kunnossa kuin muissakin. Rutina taitaa enimmäkseen johtua siitä, että Gitissä on CVS/Subversioniin verrattuna konseptin tasolla oleellisia eroja, joiden tajuamiseen voi mennä hetki, jos on ehdollistunut perinteisten systeemien ajatusmalliin. Gitin kotisivun dokumentaatio-osastolla (http://git-scm.com/documentation) on kaikenlaisia tutoriaaleja ja videoita.
« Viimeksi muokattu: 17.11.09 - klo:14.08 kirjoittanut mikko_h »

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Varmuuskopiointi
« Vastaus #11 : 17.11.09 - klo:16.00 »
WinXP soi mahdollisuuden tallettaa 'mun ihan oma kirje 1.doc'. Ja kaikki tämä Office -hakemistoon. Silmissään märehtivän lehmän ystävällinen tuijotus, kun puhun hakemistopuista ja tiedostojen nimeen kirjoitetuista päivämääristä versiotunnuksina.

Ikävimmästä päästä selviteltäviä omalla kohdalla oli takavuosina yli kymmenen vuotta vanha C-kielinen lähdekoodi,....
Itse totuttelin MSDOS-aikana järjestelmään, jossa jokainen uusi versio paketista rakennettiinn uuteen alihakemistoon, jonne tuli myös versiodokumentointi.
Versiot erotettiin toisistaan kahden kirjaimen ja 6-numeroisen päivämääräkoodin avulla. Aliversio ilmaistiin hakemiston nimen jatkeella. Mitään kieliriippuvaista ei kirjoitettu koodin sisään vaan liimattiin pakettiin indeksoidulla tietokannalla. Muutenhan homma olisi räjähtänyt käsiin.
Versiohallintaan pitäisi itsekin perehtyä.

Itse käytän Gitiä,...
Kiitos vinkistä. Pitääpä tutustua.