Backup naar Amazon S3 - hoe?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 01-10 16:02
Ik zit een beetje te spelen met het idee om m'n data automatisch te back-uppen naar Amazon S3 datastorage. Hoeft niet perse Amazon te zijn, maar die kwam wel betrouwbaar en OK over.

Wat ik in gedachte heb:
Elke maandag een nieuwe bucket aanmaken en de oudste bucket deleten;
Elke dag op een vaste tijd een sync van de datadirectories naar de nieuwste bucket.

Daarmee heb ik dus een meest recente snapshot (de nieuwste bucket) en een 1/2/3...x weken oude snapshot, afhankelijk van het aantal buckets dat ik ga gebruiken. Het geheel wil ik scripten in bash en aanroepen vanuit cron; dit alles op een Debian unstable server met ~5Mbps upload. Oh, belangrijk: de data moet uiteraard encrypted op de Amazon servers staan.

Waar ik mee zit: welk programma is het meest geschikt voor mij om de amazon S3 acties mee te doen?
Zo snel heb ik een paar kandidaten gevonden:
  • libnet-amazon-s3-perl: ziet er nogal laag bij de gronds uit; ik mis in elk geval een sync mogelijkheid. En om nou elke nacht al m'n data over te pompen wordt wat duur.
  • jets3t: voornamelijk grafisch georienteerd, maar het heeft wel een 'synchronize command line' tool. Zou ik dus moeten gebruiken met een ander tool voor buckets aanmaken/deleten.
  • s3cmd: leek mij het meest interessant, tot ik ergens las dat de sync mogelijkheid niet met encryptie overweg kan. (FAQ van s3tools).
  • s3ql: da's nu mijn favoriet. Lijkt een soort van lokaal filesystem te maken van een bucket, zodat je daarna kan rsync-en. Enige wat ik mij afvraag: werkt het handig? En, bij een sync waarbij er weinig data verplaatst moet worden: wordt alleen de nieuwe data overgezet?
Ik betwijfel of ik iets nieuws doe, dus nou ben ik benieuwd: mensen hier die ditzelfde eerder gedaan hebben? Wat zijn jullie ervaringen, welke tool werkt er handig?

Acties:
  • 0 Henk 'm!

  • Exhar
  • Registratie: Februari 2007
  • Niet online
Afhankelijk van je programmeerkunsten kan je eens kijken naar Boto :)

S3cmd werkt best ok, maar is vrij beperkt als je Python snapt (want dan heb je al snel iets wat wel precies werkt zoals je wilt in elkaar gebakken middels Boto)

Acties:
  • 0 Henk 'm!

  • d1ng
  • Registratie: Augustus 2009
  • Laatst online: 06-05-2024
Ik gebruik geen S3, ook geen ervaring mee met backup ernaartoe. Maar voor backups gebruik ik o.a. Amanda, en daarin kwam ik sample configs tegen voor backup naar S3. Had je die al bekeken/uitgesloten ?
http://wiki.zmanda.com/index.php/How_To:Backup_to_Amazon_S3

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 01-10 16:02
Amanda kende ik nog niet, maar wat ik zo snel even zie geeft mij de indruk dat er een sync-mogelijkheid mist. Bij voorkeur wil ik zo min mogelijk de complete dataset oversturen, bij voorkeur wil ik alleen de delta's (nieuwe files, veranderde files) oversturen. Het moet dus iets zijn wat dus de data op S3 vergelijkt met de lokale data. Volgens mij mist Amanda dat... of heb ik iets over het hoofd gezien?

Boto is ook nieuw voor mij, maar gaat denk ik voor mij wat te ver. Ik heb ooit wat ansi-C geleerd, kan wel wat scripten in bash & awk, maar om hiervoor even Python te gaan leren gaat mij wat teveel tijd kosten. Daarnaast moet ik wel het vertrouwen hebben dat het eindproduct altijd braaf betrouwbaar zal back-uppen, dus er moet zo min mogelijk eigen werk in zitten... ;)

Acties:
  • 0 Henk 'm!

  • jnr24
  • Registratie: Oktober 2004
  • Laatst online: 27-08 11:48
en duplicati? heel erg gui non-tech open source tooltje (ook win) , maar misschien voldoende configurabel voor je.

edit duplicati.com: Duplicati is available as application with an easy-to-use user interface and as command line tool.

[ Voor 34% gewijzigd door jnr24 op 06-01-2013 00:48 ]


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 01-10 16:02
Duplicati ziet er ook erg interessant uit! De command line client lijkt ook voldoende opties te bieden (bucket creation, encryptie, incrementele backup).

Kan ik wel even mee vooruit. Heb nu twee opties:
  • s3cmd combineren met s3ql. Nadeel dat je twee tools nodig hebt, voordeel dat ze in de Debian repository zitten en dat het wat meer low-level aanvoelt - dus meer controle. En dat ik rsync kan gebruiken.
  • duplicati. Een programma voor alles. Nadeel hooguit dat het mono nodig heeft en een losse deb-package is, niet uit de Debian repository.
...Binnenkort eens kijken of ik hier goed gebruik van kan maken. Bedankt voor het meedenken!

Acties:
  • 0 Henk 'm!

  • jnr24
  • Registratie: Oktober 2004
  • Laatst online: 27-08 11:48
Misschien kan je duplicatie compilen/vinden zonder mono?

Acties:
  • 0 Henk 'm!

  • idef1x
  • Registratie: Januari 2004
  • Laatst online: 29-09 17:12
vanaalten schreef op zondag 06 januari 2013 @ 12:21:

• s3cmd combineren met s3ql. Nadeel dat je twee tools nodig hebt, voordeel dat ze in de Debian repository zitten en dat het wat meer low-level aanvoelt - dus meer controle. En dat ik rsync kan gebruiken.
Hoezo zou je s3cmd EN s3ql moeten combineren? Ik zit momenteel een beetjemet S3 te testen en je kunt s3ql prima zonder s3cmd gebruiken en v.v.
Ik gebruik s3cmd eigenlijk allleen om mijn totale storage gebruik te bekijken op S3 (en vergelijken met wat de mounted bucket via s3ql geeft voor gebruik)

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 01-10 16:02
Zo, da's een flinke topic-kick! :)

Uiteindelijk heb ik toch de tip van d1ng opgevolgd: Amanda gebruiken i.p.v. s3cmd/s3ql.

En dat werkt prima! Elke nacht een incrementele backup, in het weekend een volledige backup en tot 15 dagen data terug te halen; inclusief encryptie van de data. En elke dag een log van hoeveel data er verzonden is. En eens per maand een rekening van Amazon van ongeveer 20 dollarcent. :-)

Geen idee waarom ik destijds een combo van s3cmd en s3ql overwoog. Wellicht s3cmd voor het dynamisch maken & opruimen van buckets en s3ql voor het eigenlijke werk - geen idee, te lang geleden.

Dus ben nu best tevreden over de oplossing. Enige wat ik nog moet doen is de private key voor de backup (en wat instructies en zo) op een USB stick buitenshuis bewaren. Als m'n huis nu affikt heb ik nog niets aan die externe backup... :X

Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 01-10 12:22

CAPSLOCK2000

zie teletekst pagina 888

Dat klinkt interessant. Laat je de encryptie door Amanda zelf doen?
Mag ik vragen hoeveel data je bij Amazon opslaat?

This post is warranted for the full amount you paid me for it.


Acties:
  • +2 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 01-10 16:02
Ehmm, ruwweg twee volwaardige (wekelijkse) backups van 2750MB elk, plus nog wat MB's voor de dagelijkse incrementele backups - en dan nog gecomprimeerd opgeslagen. Als ik zo snel even kijk in de Amazon cloud storage, dan schat ik het op zo'n 4GB data.

Voor de volledigheid, als documentatie voor mijzelf en wellicht interessant voor anderen:
Amanda geinstalleerd op een debian 'Wheezy' machine; amanda draait als user 'backup' die als homedir /var/backups heeft. Die user had volgens mij nog geen default shell en heb ik /bin/bash als shell gegeven - volgens mij maakte dat m'n leven een stuk makkelijker bij het uitvogelen van dit alles. Zo af en toe wil je dingen uitproberen als user 'backup'.

Maar goed, even een quick&dirty howto:


In /etc/crontab de volgende regel toegevoegd
code:
1
 0 03    * * *   backup  /usr/sbin/amcheck -m backup_my_documents && /usr/sbin/amdump backup_my_documents

(elke nacht om drie uur een backup-run)


In /etc/amanda heb ik een directory 'backup_my_documents' met daarin twee bestanden:
/etc/amanda/backup_my_documents/disklist:
code:
1
2
3
4
5
6
7
localhost Maildir     /home/UserName/Maildir server-encrypt-fast
localhost MyDocuments "/home/UserName/My Documents" {
  server-encrypt-fast
  exclude        "./Boeken & tijdschriften"
  exclude append "./Handleidingen"
  exclude append "./foto's"
}

Ofwel, twee disks te backuppen: mijn e-mail folder en m'n documentenfolder, waarbij ik wat minder waardevolle dingen exclude. (foto's wil ik liever wel backuppen, maar dan werd het veel data en minder betaalbaar).
Beide gebruiken dumptype 'server-encrypt-fast', wat dus iets is als comprimeren en encrypten. Verderop meer daarover.

/etc/amanda/backup_my_documents/amanda.conf:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
org         "Backup of Maildir/My Documents"
logdir      "/var/log/amanda"
infofile    "/var/backups/state/backup_my_documents/curinfo"
indexdir    "/var/backups/state/backup_my_documents/index"
tapelist    "/var/backups/state/backup_my_documents/tapelist"
changerfile "/var/backups/state/backup_my_documents/s3-statefile"
tpchanger "chg-multi:s3:<s3_access_key>-backups/backup_my_documents/slot-{01,02,03,04,05,06,07,08,09,10,11,12,13,14}"
mailto      "Mijn@Mailadres.net"

# amazonaws S3
device_property "S3_ACCESS_KEY" "<S3-ACCESS_KEY>"
device_property "S3_SECRET_KEY" "<geheimekey>"
device_property "S3_BUCKET_LOCATION" "EU"
device_property "S3_SSL" "YES"

tapetype S3
tapecycle 14
dumpcycle 7

define tapetype S3 {
    comment "S3 Bucket"
    length 5120 gigabytes
    blocksize 1 gigabytes
}

define dumptype server-encrypt-fast {
    program "GNUTAR"
    comment "dump with fast client compression and server symmetric encryption"
    compress client fast
    encrypt  server
    server_encrypt "/usr/sbin/amcrypt"
    server_decrypt_option "-d"
    maxpromoteday 0
}
Het meeste spreekt denk ik wel voor zich, of weet ik ook niet (zoals die length/blocksize getallen in het tapetype). Ik heb gekozen voor 'EU' als opslaglocatie, omdat voor mij dit liever niet in de USA terecht komt (naieve 'dan-kan-de-NSA-er-niet-bij' instelling) en ik werkgelegenheid in de EU support. En 'ssl' als beveiliging tijdens de transfer zelf. Access key & secret key heb je als het goed is bij de Amazon S3 console ergens kunnen aanmaken.

Let op: EU-locaties bij Amazon hebben wat vage extra eisen die andere locaties niet hebben. De S3 access key is in hoofdletters en diezelfde key heb ik ook gebruikt voor m'n bucketnaam - maar die moest weer in kleine letters.

Verder heb ik 14 'slots' gedefinieerd - de eerste backup naar slot #1, de volgende naar #2, volgende naar #3 en na #14 gaat 'ie over #1 heen. Om de 7 (dumpcycle) backup-runs doet 'ie een volledige dump in plaats van een incrementele.

Je ziet hier ook het eerder genoemde dumptype gedefinieerd worden. Hoe/waar exact gnutar dan weer gespecificeerd wordt weet ik niet, maar blijkbaar roept 'ie gnutar aan met niet al te hevige compressie; daarnaast encryptie met /usr/sbin/amcrypt. Onder water roept die weer /usr/bin/aespipe op, een standaard binary van de Debian distro.

Er is nog iets vaags aan Amanda: ze probeert standaard de backup-hoeveelheid een beetje te spreiden, ze doet dus liefst NIET een full-backup gevolgd door vele incrementele. Dat is te sturen - volgens mij heb ik dat met dat 'maxpromoteday 0' uitgeschakeld zodat het lekker voorspelbaar is: strak eens per week van alle 'disks' een volledige dump.


Dan, encryptie:
Je moet een secret key aanmaken door wat random data te genereren en met een passphrase te encrypten:
code:
1
head -c 2925 /dev/random | uuencode -m - | head -n 66 | tail -n 65 | gpg --symmetric -a > ~backup/.gnupg/am_key.gpg

... die passphrase die je zelf daar invoert moet je opslaan in ~backup/.am_passphrase
... en let uiteraard even op alle benodigde rechten (ofwel, vooral dichtzetten voor iedereen behalve user 'backup' zelf.) Hij staat hier op chmod '600', owner backup en group disk.

Die random data genereren kan een eeuwigheid duren, want als het systeem te weinig random activiteit heeft zal /dev/random maar weinig outputten. Je kan dit flink verbeteren door haveged te installeren:
code:
1
sudo apt-get install haveged

De pseudo-random processor activiteit wordt door haveged gebruikt om /dev/random wat produktiever te maken. Use at own risk!


Tot slot heb ik nog een Makefile aangemaakt:
/var/backups/Makefile:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CONFIG=backup_my_documents
RUN=daily
KEY=<s3_access_key>

check:
        amcheck $(CONFIG)

devcheck:
        for i in `seq -f "%02g" 1 14`; do amdevcheck $(CONFIG) s3:$(KEY)-backups/$(CONFIG)/slot-$$i; done

dump:
        amdump $(CONFIG)

report:
        amreport $(CONFIG)

slots:
        mkdir -p /var/backups/state/$(CONFIG)/curinfo
        mkdir -p /var/backups/state/$(CONFIG)/index
        for i in `seq 1 14`; do amlabel -f $(CONFIG) $(CONFIG)-$$i slot $$i; done

clean:
        rm -fr /var/backups/state/$(CONFIG)/*

Hier bovenin dus in kleine letters je s3 access key opgeven. Een 'make slots' maakt dan wat state-opslagdirs aan en creert de nodige structuren in je Amazon S3 cloud voor de 14 slots. Die andere keuzes in de makefile zijn voor de volledigheid, maar niet echt in gebruik voor het maken van de backups.


Tot slot nog een kleinigheid:
/etc/amandahosts:
code:
1
2
localhost backup amdump
localhost root amindexd amidxtaped

ik weet niet meer exact wat ik hier aan aangepast heb, maar er was een toevoeging nodig om het terughalen van een backup mogelijk te maken.


Verder: man pages, HowTo's op het internet - er is meer te vinden dan alleen dit. En misschien klein beginnen (ik begon met enkel /etc te backuppen - da's relatief klein en snel) voor je je volledige fotoverzameling er op los laat. En als je de boel niet vertrouwt: eerst een backup maken voor je de eerste testen doet! })

Vergeet ook niet om:
Je passphrase en GPG key off-site te backuppen;
Te oefenen met het terughalen van (delen van) je backup - zowel met de Amanda tools als wellicht met het zelf downloaden van je backup-file en met aespipe zelf decrypten. Leerzaam.

Vragen? Vraag maar raak - maar m'n geheugen is wel wat dingen kwijt, ruim een jaar na het zelf uitzoeken.

Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 01-10 12:22

CAPSLOCK2000

zie teletekst pagina 888

Goed bezig :)
Dat ga ik volgende week eens lekker nabouwen.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • idef1x
  • Registratie: Januari 2004
  • Laatst online: 29-09 17:12
vanaalten schreef op dinsdag 20 mei 2014 @ 12:42:
Zo, da's een flinke topic-kick! :)
De WK komt eraan he? ;)
Ben toevallig tegen dit topic aangelopen omdat ik me aan het verdiepen ben in backup oplossingen buitenshuis voor het geval inderdaad mijn huis affikt of gewoon de pc gestolen wordt e.d.

Amazon S3 is zo te zien het goedkoopst en gebruik het momenteel als backup van mijn foto reportoir (nou ja hij is nog bezig met uploaden ;) )
Ik gebruik nu alleen s3ql, zodat niemand bij Amazon bij mijn data kan door de encryptie.
Voor de rest maak ik een rdiff backup elke nacht, wat ik prima vind werken en Amanda lijkt me wat overkill hiervoor.

Maarre bedankt voor je amanda set-up! _/-\o_

[ Voor 3% gewijzigd door idef1x op 21-05-2014 17:01 ]


Acties:
  • 0 Henk 'm!

  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Mss beetje laat maar ik gebruik duplicity (duply) voor backups.
Ondersteunt encryptie, incremental backups.

Ik gebruik het voor backups van enkele servers op freebsd (ufs+j dus geen snapshots). Ondersteund verschillende protocollen, waaronder na installatie van python-boto.

http://blog.phusion.nl/20...backups-for-your-servers/

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 01-10 16:02
Duplicity ziet er ook prima bruikbaar uit. Zo op het allereerste gezicht een duidelijke howto en het lijkt wat simpeler te configureren van Amanda. Maar ik ben tevreden zoals ik het nu heb, dus ik hou het bij Amanda. :)
Pagina: 1