Szaisztok!
Egy szerver folyamatos mentését szeretném megoldani. Az albbi szempontok alapján kellene kialakítani.
- sok kicsi és apró fájlt kell menteni naponta egyszer
- mentési tárhely van bőven, ami pl. NFS-en keresztül érhető el, de annyi nincsen, hogy naponta mindent újra teljesen lementsünk
- fontos, hogy 30 napra visszamenőleg tudjunk visszaállítani állapotokat, többnyire egy-egy fájlt, amit törölt a felhasználó
- fontos, hogy ha teljesen meghal a szerver, akkor a teljes visszaállítás is minél gyorsabb legyen
Kérdésem, hogy kienek milyen ötlete, elképzelése vagy tapasztalata van e téren? Köszönöm ha foglalkozol vele.
- 6481 megtekintés
Hozzászólások
rdiff-backup
- A hozzászóláshoz be kell jelentkezni
+1 teljesen jól működik, sok helyen használom
- A hozzászóláshoz be kell jelentkezni
Ez jónak tűnik. Elkezdem tesztelni. Köszönöm.
- A hozzászóláshoz be kell jelentkezni
Nincs mit.
Első mentés adatmennyiségtől függően "sokáig" tart.
Definiálhatod hány napos inkrementet akarsz menteni pl. -d 30, a visszatöltésnél is megadható mikori mentést akarod visszaállítani.
Jól scriptelhető mind a két folyamat.
Első mentés után elenyésző időt vesz igénybe a mentés, persze ez is adatmennyiség függő.
Ajánlom a két helyre mentést biztonsági okokból, a másikra pl. heti egyszer egy teljes mentés s soha nem lesz gondod :-) S a törölt levelét visszaállítod te leszel a király :-)
- A hozzászóláshoz be kell jelentkezni
dirvish, rdiff-backup es hasonszoru baratainal felesleges teljes mentest futtatni periodikusan, mivel az aktualis allapot mindig a legujabb teljes mentes allapotat mutatja.
Sajnos persze ez sem igaz teljesen, volt mar ra pelda, h vmi kernel bug miatt a munin-nak az .rrd file-jain nem modosult az mtime (CentOS 5) es igy azok nem kerultek bele a mentesbe.
Csak FYI.
tompos
- A hozzászóláshoz be kell jelentkezni
A lényeg a két elkülönített helyre b.mentés lenne, hogy oldja meg nekem mind1.
- A hozzászóláshoz be kell jelentkezni
hm. valami módosított rsync-nek tűnik. jó dolog az egyszerűsítés, köszi, eltéve :)
- A hozzászóláshoz be kell jelentkezni
Szerintem jó megoldás lehet az...
rsync -rlptgoDH --delete -h $RsyncOpt "$User@$Host::$Module/" "$des/"
majd...
cp -al $des/* $arch/
--
maszili
- A hozzászóláshoz be kell jelentkezni
Nekem most ez alapjan az rsync tetszik:
http://danielmcgraw.com/2010/02/25/Incremental-Rotating-Backups-With-Rs…
Hard linkekkel jatszva, ami nem valtozik, az csak egyszer van letarolva fizikailag, a rotalasnal meg csak linket tesz ra, az ujakt menti fizikailag, ami meg torolt, arra nem rak linket.
Az elso nap teljes masolasa utan, mar gyors is.
Nalam levelezest mentve igy az eredeti meret 110-120%-ra rafer ket het. Mivel tomoritetlen, gyorsan visszaranthato barmi, ha kell.
Ez egy regi, de magyarazosabb leiras ugyanerrol:
http://www.mikerubel.org/computers/rsync_snapshots/
- A hozzászóláshoz be kell jelentkezni
+1, s valami ilyesmit csinal az osxben levo time machine is.
- A hozzászóláshoz be kell jelentkezni
ezt használom kb 3 éve nagy sikerrel: r1soft.com
- A hozzászóláshoz be kell jelentkezni
Amit ajánlani tudok : duplicity egyszerű, kényelmes, hatékony
Amit nem ajánlok: dirvish, jó amíg minden jó, de ha egyszer elsz@ródik nehéz konzisztens állapotot visszaállítani
- A hozzászóláshoz be kell jelentkezni
Mi az, hogy elsz@ródik? :)
- A hozzászóláshoz be kell jelentkezni
Nálunk rendszeres a "dirvish error: branch /bar/foo:default image 20110829-2204 failed", és a "cannot expire bar-foo/:default:20110829-2205 No unexpired good images" üzenet. Tudom mit jelent a hibaüzenet, és tettem jó sok kisérletet a javításra is (átírogattam kézzel a dirvish státuszokat, meg minden) érdemleges változás nem történt. Amit sikerült is megcsinálnom, néhány nap mulva ismét elszaródott, vagy ha nem az akkor a másik. Meguntam, most duplicityt használunk, és bevált, nem kezdem minden reggelemet úgy, hogy az elsz@rt (és mostmár érted :)) backupokat javítgatom kézzel.
- A hozzászóláshoz be kell jelentkezni
"No unexpired good images" akkor szokott előfordulni, ha a mentéseid zsinórban nem sikeresek. Pl. a mentés ideje alatt változik a forrás. Így egy gyorsan változó nagy elemszámú és méretű filerendszer mentésére nem a legalkalmasabb.
- A hozzászóláshoz be kell jelentkezni
Már odáig fajultunk, hogy hackolt rsync_no24-el szinkronizálunk, ami a 24-es hibát, azaz a forrás közben változott elnyeli. Nem segít mindig. Kb 6 gépről mentünk összesen majd 30 könyvtárat, és ritka az olyan reggel, amikor minden flottúl megy, ezért váltottunk. Igaz így a duplicityt midnen gépen be kellett állítani, de azóta nincs hiba.
- A hozzászóláshoz be kell jelentkezni
Nekem nem vilagos, hasznaljatok meg, vagy nem?
Ha igen, ezzel probald:
--- dirvish-expire 2011-03-17 15:31:58.000000000 +0000
+++ dirvish-expire-new 2011-07-19 11:00:08.000000000 +0100
@@ -109,6 +109,7 @@
$$Options{time} and $expire_time = parsedate($$Options{time});
$expire_time ||= time;
+my %recent;
if ($$Options{vault})
{
@@ -150,7 +151,20 @@
my ($created, $expired);
($created = $$expire{created}) =~ s/:\d\d$//;
($expired = $$expire{expire}) =~ s/:\d\d$//;
-
+
+ my $vault = $$expire{vault};
+ my $branch = $$expire{branch};
+
+ if ($recent{$vault}{$branch} eq $created)
+ {
+ printf "cannot expire %s:%s:%s It's the latest good image\n",
+ $vault,
+ $branch,
+ $$expire{image};
+ ++$unexpired{$vault}{$branch};
+ next;
+ }
+
if (!$unexpired{$$expire{vault}}{$$expire{branch}})
{
printf "cannot expire %s:%s:%s No unexpired good images\n",
@@ -224,6 +238,19 @@
$$summary{vault} && $$summary{branch} && $$summary{Image}
or return;
+ my ($vault, $branch, $success, $created, $recent);
+
+ $vault = $$summary{vault};
+ $branch = $$summary{branch};
+ $success = $$summary{Status} =~ /^success/ && -d ($path . '/tree');
+ ($created = $$summary{'Backup-complete'}) =~ s/:\d\d$//;
+ $recent = $recent{$vault}{$branch};
+
+ if ($success and (!defined($recent) or $recent lt $created))
+ {
+ $recent{$vault}{$branch} = $created;
+ }
+
if ($status == 0)
{
$$summary{Status} =~ /^success/ && -d ($path . '/tree')
- A hozzászóláshoz be kell jelentkezni
Bevallom töredelmesen még 2 gépen nem volt időm leváltani, mert azokon nincs repóbol duplicity, de folyamatban van a csere. Ez okozhatja a zavart, hogy kis jelenidő is keveredett a mondatokba. Köszi a segítséget, nem igérem, hogy megpróbálom.
- A hozzászóláshoz be kell jelentkezni
Elsosorban a kozos tudatnak irtam be:)
tompos
- A hozzászóláshoz be kell jelentkezni
En ajanlom a dirvish-t. Nem tudom, mi az, h elszarodik:)
t
- A hozzászóláshoz be kell jelentkezni
En ajanlom a dirvish-t. Nem tudom, mi az, h elszarodik:)
t
- A hozzászóláshoz be kell jelentkezni
duplan, tompos? ;)
- A hozzászóláshoz be kell jelentkezni
Ajdonno, szerintem csak egyszer kuldtem el, de lehet, h benaztam vmit.
t
- A hozzászóláshoz be kell jelentkezni
Backup, hatha az egyik elszarodik. :)
--
Always remember you’re unique, just like everyone else.
- A hozzászóláshoz be kell jelentkezni
A Te barátod az egyszerű rsync, erre van kitalálva.
- A hozzászóláshoz be kell jelentkezni
rsnapshot?
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ez a feljebb említett hardlinkes megoldást használja.
Használtam egy ideig, aztán rdiff-backup lett belőle.
rsnapshot-hoz még annyit, hogy akár a felhasználóknak is hozzáférést adhatsz a mentésekhez (mondjuk ro mounttal). A visszaállítás sima másolás. Ami nem tetszett akkor rajra, hogy a backup gépen rootként futkorászik.
- A hozzászóláshoz be kell jelentkezni
En rsnapshottal tolom, miert valtottal rdiff-backupra? Csak a rootkent futas miatt? Az az uid/gid/jogok beallitasahoz kell a backupolt fileokra, gondolom az rdiff-backup is hasonloan csinalja...
- A hozzászóláshoz be kell jelentkezni
Igen, ezért váltottam. Több gépről (többek közt webszerverről) kellett menteni, nem tűnt nagyon biztonságosnak.
rdiff-backup állományban tárolja a ownert, jogokat, talán az acl-eket is, bár erre nem volt szükség.
Macerásabb visszaállítani, az biztos.
- A hozzászóláshoz be kell jelentkezni
dirvish
- A hozzászóláshoz be kell jelentkezni
Ha a teljes rendszervisszaállítás tényleg gyors kell hogy legyen _és_ belefér néha egy-egy kiesés, akkor pl. clonezillával érdemes lementeni a rendszerterületeket. Ez újraindítással jár, cserébe viszonylag biztos mentést csinál. Ezt érdemes havonta egyszer, vagy érdemi változtatások után megtenni.
E mellett lehet menteni a gépet bármelyik szimpatikus mentőmegoldással, én pl. a backuppc-t is tudom ajánlani, bár ez leginkább akkor kényelmes, ha sok gépet kell menteni, és olyanokat, amik nem mindig elérhetőek, pl. laptopok.
- A hozzászóláshoz be kell jelentkezni
viccnek is rossz az ujrainditast igenylo mentes:)
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ezt csak az tudja eldönteni aki az adott rendszert üzemelteti. Ha sok apró file van, akkor pl. ez lehet akár egy dovecot szerver is, tehát nem feltétlenül vastüdőt hajt a gép. Ha a cég elfogadja hogy havonta egyszer van fél órás kiesés mondjuk vasárnap reggel, akkor miért ne?
Éves szinten ez 1,5%(*) (tervezett, jó esetben üzemidőn kívüli) kiesés, cserébe a megbízhatóságért.
*) Jól számoltam?
- A hozzászóláshoz be kell jelentkezni
Ha Te fél óra alatt lementesz egy rendszert, akkor az olyan is. Mármint méretben. nekünk 100 gigákat kellene...
- A hozzászóláshoz be kell jelentkezni
"akkor pl. clonezillával érdemes lementeni a rendszerterületeket."
"E mellett lehet menteni a gépet bármelyik szimpatikus mentőmegoldással."
Lehet hogy homályosan fogalmaztam, de arra céloztam hogy az OS-t elég viszonylag ritkán menteni, viszont cserébe érdemes úgy, hogy hamar visszatölthető legyen (azaz ne kelljen pl. csak azért feltenni egy alap OS-t, hogy a mentést vissza lehessen tölteni, hanem azonnal rá lehessen borítani az image-t). Kétlem hogy 100G-s az OS amit használtok, de bármi lehet. És egy OS mentése ami mondjuk 4-5G szerintem belefér fél órába a reboot-save-reboot lépésekkel.
E mentés mellett szükség van az adatok (plusz etc., plusz logok, de talán ennyire már nem kell magyarázni) mentésére is, amire már "bármi" jó, mindenkinek megvan a maga kedvence, nyilván azt javasolja.
- A hozzászóláshoz be kell jelentkezni
fogsz egy ZFS-t, minden backup targetnek csinalsz egy fs-t rajta, rsync ramegy, majd snapshot utana, datestamppel ellatva. X idonel regebbi snapshotok torolhetoek. ha dedupot bekapcsolod, akkor a gepek kozotti azonos blokkok sem foglalnak extra helyet. takarekos, egyszeru.
- A hozzászóláshoz be kell jelentkezni
A dirvish-hez van patch, amivel ezt megcsinaltak, csak btrfs-sel es talan xfs-sel. De lehet, h mar zfs-sel is, ill. feltehetoleg nem nehez belerakni.
udv,
tompos
- A hozzászóláshoz be kell jelentkezni
Hát ha btrfs-sel csinál backupot, az inkább /dev/null
- A hozzászóláshoz be kell jelentkezni
Gratulalok a szovegertesi kepessegeidhez. Javaslom, terj vissza az altalanos iskola 4. osztalyba.
tompos
- A hozzászóláshoz be kell jelentkezni
OK, főnök! btrfs-t használ backup file rendszernek. Így jó lesz?
Viszont a lényegen nem változtat. devnull!
És ha nem lennék érthető, sem a divish-sel, sem az xfs-sel nincs bajon, viszont a btrfs-sel. ;) (direkt zártam így. 4.-ben jó lesz? Vagy csak a nyelvi szabadság...)
- A hozzászóláshoz be kell jelentkezni
FYI beirtam.
Nem kerte tole senki, h hasznaljon btrfs-t, csupan beirtam, hogy van egy ilyen lehetoseg, a btrfs-sel elesben majd nyilvan akkor erdemes hasznalni, ha az stabilizalodik.
Nem ertem, mit lovagolsz ezen.
tompos
- A hozzászóláshoz be kell jelentkezni
"Nem kerte tole senki, h hasznaljon btrfs-t".
Ja, főleg, hogy NFS-e van. ;)
písz!
- A hozzászóláshoz be kell jelentkezni
Veszel egy EMC tárolót 20 milláért, és minden nap full mentést csinálsz rá.
Vagy elolvasod a post-ot, ahol leírják, hogy NFS-en érhető el a backup tárterület.
- A hozzászóláshoz be kell jelentkezni
Tényleg, ezen én is "átfutottam".
Ez alapján a rsnapshot a legjobb megoldás. NFS-t csatolja rw-ban amíg backupol, felhasználókat kizárja, utána pedig ro-ban olvashatják is a kedves userek.
- A hozzászóláshoz be kell jelentkezni
Pontosan ezt csinálom, SD kártyára mentek.
Nagyon ügyes megoldásnak tartom a ZFS snapshotot.
Fuszenecker_Róbert
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
szábszkrájb
--
Imperare sibi maximum imperium est.
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
Alapvetően az rdiff-backup-ot javasoltam volna, azonban látva az NFS-t és a sok apró file-t, valószínűleg a duplicity jobb lesz.
Előbbi ui. file-onként hasonlítja össze a két véget (metaadat szinten), míg az utóbbi, ha jól tudom, lokálisan állítja elő a növekményt egyetlen (opcionálisan titkosított) tar-ban, helyi szignatúra-állományok alapján, és a növekményt egyben tölti fel. Mindenesetre ne higgy nekem, próbáld ki mindkettőt.
- A hozzászóláshoz be kell jelentkezni
A duplicity és az rdiff-backup között mi a különbség? Nagyon azonosnak tűnnek.
- A hozzászóláshoz be kell jelentkezni
Nem azonosak. Ugyanaz a csóka írta mindkettőt, így valószínűtlen, hogy átsiklott volna afelett, hogy másodjára írja meg ugyanazt :)
http://www.nongnu.org/rdiff-backup/features.html
http://duplicity.nongnu.org/features.html
Az alábbi az én értelmezésem. A duplicity-t még sosem használtam, az rdiff-backup-ot igen.
Az rdiff-backup a forrás- és a célkönyvtárat párhuzamosan, rekurzívan végignyalja, metaadat-eltérésre vadászva (mtime, file mérete stb). Ahol eltérést talál, ott a célt frissíti a forrásból (tartalmilag és metaadatban). A célban a korábbi változatot nem szimplán lecseréli az új változatra, hanem az rdiff algoritmussal egy különbséget képez a cél eggyel megelőző és a legfrissebb változata között, majd a különbséget tömörítve eltárolja. A cél így a backup végén a forrásnak egy tükre, azonban a korábbi cél-állapotokra (amelyek korábbi forrás-állapotok tükrei voltak) reverse rdiff-ekkel mutat vissza. Az rdiff-ek file-onként képződnek és tárolódnak.
A fentihez elég annyit tudni az rdiff-ről, hogy valamiféle bináris diff. A duplicity (általam vélt) működéséhez azonban egy kicsit jobban bele kell nézni az rdiff-be. Az rdiff használata az alábbi lépésekből áll:
- Kiinduló file-ból szignatúra (lenyomat) készítése. A szignatúra lényegében annyi, hogy a file-t darabokra szedjük, minden darabra kiszámolunk külön-külön egy strong hash-t, illetve egy gyenge gördülő hash-t is (ld később), és ezeket a hash-eket egy tömbben elmentjük.
- A szignatúrát odatesszük az új (target) file mellé. A szignatúra és a target file kettőséből előállítható a delta. Ez úgy működik, hogy beolvassuk a felmásolt szignatúrát, majd végignyaljuk a target file-t. A végignyalás közben byte-onként számolunk egy csúszóablakra egy rolling checksum-ot. Ez a checksum gyenge (sok az ütközés), azonban rolling, és így gyors számolni, és amikor egy byte-nyit odébblökjük a csúszóablakot a target-en, akkor a rolling checksum-ot könnyű frissíteni. A rolling checksum minden értékére (minden byte-pozíción) megnézzük, van-e ilyen rolling checksum a szignatúrában. Ha van ilyen találat, akkor kiszámoljuk a csúszóablakra az erős hash-t is. Ha még ez is stimmel, akkor a target-ben találtunk egy olyan blokkot, ami a forrásban megvan. Így a deltába egy copy utasítást írunk bele: "másold a forrásból ezt a blokkot a célba". A strong hash találatok közötti (= a forrásban meg nem lévő) adatokat pedig "literal" command-ok formájában tesszük a deltába (vagyis az ilyen target-byte-sorozat "szó szerint" belekerül a deltába).
- A deltát visszamásoljuk az eredeti file mellé. Itt a deltát utasítás-folyamként végrehajtjuk: amikor copy utasítást találunk, akkor a forrásból másolunk a kimeneti file-ba, amikor pedig literal utasítást, akkor a deltából másolunk a kimeneti file-ba.
A duplicity az alábbi elven működik (sejtésem szerint...):
- Legelső alkalommal (full backup) egy teljes tar-t készítünk, plusz minden állományról elkészül a szignatúra is. A teljes tar-t titkosítva és integritás-védve felmásoljuk a nem megbízható távoli szerverre. A szignatúra-halmazt helyben megőrizzük, de a redundancia kedvéért szintén titkosítva és védve szintén felmásoljuk külön állományként a távoli szerverre. Természetesen a szignatúrahalmaz-file mérete csak egy töredéke a teljes tar méretének.
- Amikor növekményesen frissítünk, akkor a bemenő adataink a (frissült) forrásunk és a helyben őrzött (vagy távolról visszaállított) szignatúra-halmaz, amely a forrásunk korábbi állapotának felel meg. Ebben a lépésben előállítjuk a deltákat, amelyek így a (csak a távolban meglévő) korábbi forráslenyomatból képesek majd visszaállítani a jelenlegi forrásállapotot. A módosult file-ok szignatúráit szintén újraszámoljuk. Feltöltésre a szignatúra-növekmény és az adatnövekmény kerül.
- Fontos, hogy a szignatúrahalmaz csak növekmény képzéséhez kell, helyreállításhoz nem.
Ha jól sejtem, a duplicity-nél a delták nem fordított irányúak, vagyis a target sosem friss mirror, hanem egy régi full backup, plusz néhány növekmény. Így a helyreállítás tovább tart.
De mondom, sosem használtam a duplicity-t :)
Az rdiff-backup és a duplicity különbségei tehát nagyjából:
- Az előbbi párhuzamosan olvassa végig a forrást és a célt, és metaadat-eltérésre vadászik. Az utóbbi a növekményt kizárólag helyi adatok és tartalomváltozás alapján állítja elő. Emiatt az utóbbinak sokkal kisebb a latenciája.
- Az rdiff-backup ment metaadatokat, a duplicity (úgy tűnik...) nem. Vagy legalábbis nem tudom.
- Az rdiff-backup nem támogatja a cél titkosított tárolását (egyéb segítség nélkül), a duplicity igen. Persze sshfs-en keresztül felcsatolhatunk egy távoli file-t loop device-nak, amire tehetünk LUKS-ot, amire formázhatunk egy ext2-t, amire helyben tehetünk rdiff-backup-ot...
Ha az NFS szerver a szomszéd gépteremben van, akkor az rdiff-backup akár ideális is lehet, mivel kifejezetten készül arra, hogy a cél alatti fs nem támogat ugyanannyi metaadat-típust, mint a forrás.
Pontatlanságokért bocsánat stb. stb., ez csak egy fésületlen braindump volt.
- A hozzászóláshoz be kell jelentkezni
hdup esetleg?
- A hozzászóláshoz be kell jelentkezni
faubackup volt mar? Napi full backup-okat nyugodtan lehet vele tolni. Ami nem valtozott tegnap ota, arra hard linket csinal...
- A hozzászóláshoz be kell jelentkezni
Veritas NetBackup ?
- A hozzászóláshoz be kell jelentkezni
Mennyire sok es kicsi filek? ? 1 millio 10 millio 100 millio file? Esetleg megtobb ? Mennyi az osszmeret?
- A hozzászóláshoz be kell jelentkezni