Backup
a (minimális olvasószerkesztés, nincs kész) |
|||
| (2 szerkesztő 19 közbeeső változata nincs mutatva) | |||
| 1. sor: | 1. sor: | ||
| − | == Backup fogalma, célja == |
+ | Írta: Szatmári Zoltán. |
| − | * Biztonsági mentés a rendszer állapotáról |
+ | == Biztonsági mentés fogalma, célja == |
| − | * Védelmet jelent hardware és software hibák ellen |
||
| − | ** Emberi hibák ellen is véd (pl. a RAID-el szemben)! |
||
| − | * Célja a tárolás, naplózás és helyreállítás |
||
| − | == Backup cél média == |
+ | * A backup-megoldás elsődleges célja biztonsági mentés készítése a rendszer adott állapotáról |
| − | * HDD |
+ | * A biztonsági mentés alapvető védelmet jelent bizonyos hardver- és szoftverhibák ellen |
| + | ** Emberi hibák ellen is véd (pl. a RAID-el ellentétben)! |
||
| + | * Célja az adatok tárolása, naplózása és helyreállítás lehetőségének biztosítása |
||
| + | |||
| + | == A mentés célmédiuma == |
||
| + | |||
| + | Lehetséges tárolómédium |
||
| + | |||
| + | * HDD (Lokális vagy távoli kiszolgálóban) |
||
* CD/DVD |
* CD/DVD |
||
* Mágnesszalag |
* Mágnesszalag |
||
| 10. sor: | 10. sor: | ||
== Backup megoldások == |
== Backup megoldások == |
||
| − | * Full |
+ | * '''Teljes mentés''': A rendszer minden adata válogatás nélkül mentésre kerül. A mentési folyamat ezért egyszerű, ellenben hosszú ideig tart és sok tárterület szükséges hozzá. Amennyiben adataink olyanok, hogy nem változnak túl sűrűn, a gyakori teljes mentés sok fölösleges adat tárolását okozza. Előnye azonban, hogy a visszaállítás viszonylag gyors. |
| − | * Inkrementális |
+ | * '''Inkrementális mentés''': Alkalmazása esetén nem kerül elmentésre minden adat, hanem csak azok, amelyek egy korábbi mentés óta megváltoztak (ekkor a visszaállításhoz természetesen több biztonsági mentésre is szükség van). Az inkrementális mentésnek két alapvető fajtája van: a kumulatív és a differenciális mentés. Ezek segítségével többféle mentési stratégia kidolgozható. |
| − | * Diff |
+ | ** '''Kumulatív mentés''': Ezen mentés során mindig az utolsó teljes mentés óta megváltozott adategységek kerülnek elmentésre. A kumulatív mentésekből álló mentési stratégiánál ha egy adategység valamikor megváltozott, akkor az minden kumulatív mentés alkalmával ismételten mentésre kerül egészen a következő teljes mentésig. A kumulatív mentés gyorsabb a teljes mentésnél és kevesebb helyet is kíván. A differenciális mentésnél azonban lassúbb és a tárigénye is nagyobb. |
| − | * ... |
+ | ** '''Differenciális mentés''': A differenciális mentés során csak az utolsó inkrementális mentés óta megváltozott adategységek kerülnek elmentésre. Ha két teljes mentés között több differenciális mentést végzünk, akkor pl. a második differenciális mentés csak az első óta történt változásokat fogja rögzíteni. Ennek köszönhetően maga a mentés folyamata gyorsabbá válik, és esetenként kevesebb helyet foglal el. Hátránya azonban, hogy a visszaállításhoz a legutolsó teljes mentésre, és az azt követő összes differenciális mentésre szükség van. |
| − | * If one of the ( todays ) daily backup files was bad, for any reason |
+ | |
| − | ** than you dont have backup for "today" |
+ | Megjegyzendő, hogy a szóhasználat nem egységes; a "differenciális" és az "inkrementális" mentések fogalmát lényegében felcserélve is használják. A [https://en.wikipedia.org/wiki/Differential_backup Wikipédia szerint] például a differenciális mentés az utolsó ''teljes'' mentéshez képesti változásokat menti, és az [https://en.wikipedia.org/wiki/Incremental_backup inkrementális] mentés az, ami a legutóbbi mentéshez képesti különbségeket. Ha mentésekről írunk, célszerű tisztázni, mi milyen értelemben használjuk ezeket a szavakat. |
| − | ** all subsequent ( tommorrow, next day ) backups are basically unsusable |
+ | |
| − | + | Érdemes egyébként a [https://en.wikipedia.org/wiki/Backup#Backup_methods Wikipédia Backup-szócikk] vonatkozó részét is megnézni, mert az itt felsorolt fő csapásirányokon kívül vannak mások is. |
|
| − | == Backup policy == |
+ | |
| − | * Szervezeti belső szabályzat |
+ | == A mentés végrehajtása == |
| − | * Milyen gyakran, azokat meddig tároljuk. |
+ | |
| − | * Jó, ha automatizált. |
+ | * Biztonsági mentés a rendszer konzisztens állapotában végezhető el. Nagyméretű rendszerek esetén előfordulhat, hogy a mentés elvégzésének ideje olyannyira hosszú, hogy akkora leállás már nem fér bele az üzemidőn kívüli időszakba. A ritkábban végzett mentés pedig az utolsó mentés óta elveszett adatok mennyiségét növelheti meg jelentősen, valamint nagyon nagy adatmennyiségeknél már a szükséges tárolókapacitás miatt is nehézségekbe ütközhetünk. Megoldásképpen tipikusan ilyenkor alkalmazzák azt a módszert, hogy teljes mentést csak ritkábban (pl. hétvégente) készítenek, napi rendszerességgel csak a változásokat mentik valamelyik inkrementális mentési stratégia alkalmazásával. |
| − | * Biztonsági szempontből célszerű fizikailag, stb elkülönített helyen |
+ | * On-line rendszerek esetén problémát okozhat az, hogy a mentés végzése közben a rendszert nem állíthatjuk le, így a mentés közben változhat a mentett adatbázis tartalma, ami beláthatatlan következményekkel járó inkonzisztenciához vezethet. Ilyen esetben az úgynevezett hideg mentés módszerét szokták alkalmazni, azaz az adatbázis tartalmát befagyasztják a mentés idejére és a változásokat nem végzik el benne, hanem pusztán feljegyzik egy külön listába (transaction log-ba). A mentés befejeződését követően az el nem végzett módosításokat a rendszer végrehajtja az adatbázison, így annak fizikai tartalma hamarosan utoléri az on-line működést. |
| − | + | ||
| − | == Backup célok == |
+ | * A backup policy egy szervezeten belüli belső szabályzat, melyet speciálisan a nyújtott szolgáltatáshoz kell hangolni. |
| − | * Fájl alapú |
+ | * Leírja: |
| − | * Fájlrendszer |
+ | ** Biztonsági mentést milyen gyakran kell végezni |
| − | * Verziózott fájlrendszer |
+ | ** Milyen típusú mentést kell végrehajtani |
| − | * Adatbázis backup |
+ | ** Az elkészült mentéseket mennyi ideig kell tárolni. (Ebbe törvényi előírások is beleszólhatnak, például minősített vagy pénzügyi adatok esetében.) |
| − | * ... |
+ | * A mentés végrehajtása célszerű, ha automatizáltan megy végbe, emberi beavatkozást nem igényel. |
| − | + | * Biztonsági szempontból célszerű fizikailag elkülönített helyen tárolni a mentett adatokat. |
|
| − | == Backup teljesítmény mérése, mérőszámok == |
+ | |
| − | * Egyszeri mentés lefutási idő |
+ | == A biztonsági mentés teljesítményének mérése, mérőszámai == |
| − | * Visszaállítási idő (Nem annyira kritikus) |
+ | * Egyszeri mentés lefutási ideje |
| − | * Visszaállítható időtáv. |
+ | * Visszaállítás időigénye (Nem kritikus, ha ritkán van rá szükség) |
| − | * Elfoglalt tárhely aránya |
+ | * Visszaállítható időtáv |
| + | * Visszaállítható verziók száma |
||
| + | * Elfoglalt tárhely aránya az adatmennyiséghez képest |
||
| + | |||
| + | == Mentési szintek == |
||
| + | * Teljes lemez mentése (bájtszinten) - alacsony szintű backup |
||
| + | * Teljes fájlrendszer mentése |
||
| + | ** Verziózott fájlrendszer használata |
||
| + | * Adott fájlok, mappák mentése. |
||
| + | * Alkalmazás-specifikus mentés - magas szintű backup |
||
| + | ** Adatbázismentés |
||
| + | |||
| + | == Vezérlés == |
||
| + | * PULL: központi szerver által vezérelt biztonsági mentés. |
||
| + | * PUSH: A mentendő munkaállomás vagy alkalmazás által vezérelt (igényvezérelt) mentés. |
||
== Felhasználható eszközök == |
== Felhasználható eszközök == |
||
| − | * Bármilyen fájl alapú másoló eszköz (tar, dd, cp) |
+ | * dd - lemezkép készítése, teljes lemez mentéséhez alkalmas program |
| − | * RSync over ssh |
+ | * Bármilyen fájl alapú másoló, tömörítő eszköz (cp, tar, scp, ...) egyszerű fájlok, mappák mentéséhez. |
| − | * Komplett backup toolok |
+ | * rsync inkrementális másoláshoz |
| + | * Komplett backup toolok |
||
** Mögöttük gyakorlatilag az elemi eszközök helyezkednek el |
** Mögöttük gyakorlatilag az elemi eszközök helyezkednek el |
||
| − | ** Automatikát, plussz szolgáltatást adnak a backupoláshoz |
+ | ** Automatikát és egyéb plusz szolgáltatást adnak az elemi eszközökhöz. |
| − | == Unix/Linux által nyújtott technikák == |
+ | == Rsync == |
| − | * Inkrementális mentés támogatottsága hard/symlinkek szegítségével |
+ | Az rsync segítségével gyorsan és minimális adatmozgatással lehetőségünk van biztonsági másolatot készíteni adatainkról. Egy speciális "delta-kódolás" segítségével csak a változásokat kell átvinni a halózaton. |
| + | |||
| + | Rugalmas paraméterezhetőségével beállíthatjuk többek között: |
||
| + | * a törölt fájlokat a mentésből is törölje le, |
||
| + | * meghatározhatjuk, hogy mely fájlokat szükséges menteni és melyeket hagyja figyelmen kívül |
||
| + | * inkrementális backup esetén új mappában helyezze el a változtatott adatokat és hardlinkek segítségével a változatlanokat "linkelje" be (azaz egy példányban léteznek a változatlan adatok) |
||
| + | |||
| + | == A hálózaton keresztül történő mentéssel kapcsolatban felmerülő problémák == |
||
| + | |||
| + | A biztonsági mentés többnyire hálózaton keresztül, egy távoli gépre, vagy ahhoz csatlakoztatott szalagos meghajtóra történik. Ekkor a mentendő adatokat hálózaton keresztül, SSH kapcsolattal visszük át (rsync over SSH). Ekkor problémaként merül fel, hogy egyik gépről a másikra ssh-n keresztül be kell jelentkeznünk a fájlok eléréséhez. Alapvetően két megközelítés van: |
||
| + | * a mentendő gép (kliens) kapcsolódik a backup szerverhez és automatikusan küldi el az adatokat, szinkronizál a szerverrel, vagy |
||
| + | * a backup szerver jelentkezik be a mentendő gépre és "szerzi meg" a mentendő adatokat. |
||
| + | |||
| + | Mindkét esetben egy automatikus SSH-n keresztüli bejelentkezés szükségeltetik, ami csak SSH-kulcspárok segítségével lehetséges. A fájlok eléréséhez a távoli felhasználó részére jogokat kell biztosítanunk, ami egy fontos biztonsági rés lehet a rendszerünkben. Ezen biztonsági kockázatot csökkenthejük, ha korlátozásokat teszünk az SSH kulcspár alapú hitelesítésre: |
||
| + | * csak adott hosztról lehessen bejelentkezni, |
||
| + | * csak adott parancs futtatása engedélyezett. |
||
| + | |||
| + | authorized_keys: |
||
| + | |||
| + | from="1.2.3.4",command="/...../validate-ssh" ssh-dss AAAAB3fdsfsdcMrhA7hKTu74FT |
||
| + | ............. |
||
| + | HHGJShgjHGJHhGHJG=T/ZTFCFZN0xyy root@host |
||
| + | |||
| + | |||
| + | validate-ssh: |
||
| + | |||
| + | #!/bin/sh |
||
| + | case "$SSH_ORIGINAL_COMMAND" in |
||
| + | *\&*) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | *\(*) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | *\{*) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | *\;*) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | *\<*) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | *\`*) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | *\|*) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | rsync\ --server*) |
||
| + | $SSH_ORIGINAL_COMMAND |
||
| + | ;; |
||
| + | *) |
||
| + | echo "Rejected" |
||
| + | ;; |
||
| + | esac |
||
| + | |||
| + | == Unix/Linux backup toolok vázlatos bemutatása == |
||
| + | |||
| + | === Dirvish === |
||
| + | |||
| + | * Lemezalapú backup-megoldás (disk-to-disk) |
||
| + | * rsync-re épülő PERL implementáció |
||
| + | * Szerver által vezérelt (PULL) |
||
| + | * A legutolsó mentés óta nem változtatott fájlok esetén hardlinket használ |
||
| + | |||
| + | Központi konfigurációs állomány: |
||
| + | |||
| + | bank: |
||
| + | /snapshot |
||
| − | == Unix/Linux backup toolok == |
+ | image-default: %Y%m%d |
| − | * rSnapshot |
+ | log: gzip |
| − | * DirVish |
+ | index: gzip |
| + | exclude: |
||
| + | /etc/mtab |
||
| + | /i-home/* |
||
| + | /mnt/* |
||
| + | lost+found/ |
||
| + | .nfs* |
||
| + | /proc |
||
| + | /snapshot |
||
| + | /sys |
||
| + | /tmp |
||
| + | /var/cache/apt/archives/*.deb |
||
| + | /var/lock/ |
||
| + | /var/run/ |
||
| + | /var/tmp |
||
| + | Runall: |
||
| + | celeborn 1:00 |
||
| + | legolas 1:40 |
||
| + | balrog 2:00 |
||
| + | gorbag 2:40 |
||
| + | salvador 3:00 |
||
| + | |||
| + | expire-default: +7 days |
||
| + | expire-rule: |
||
| + | # MIN HR DOM MON DOW STRFTIME_FMT |
||
| + | * * 1-7 * 1 +3 months |
||
| + | # * * 1-7 * 1 +3 months |
||
| + | # * * * * 1 +3 months |
||
| + | # * * 1-7 1,4,7,10 1 |
||
| + | # * 10-20 * * * +4 days |
||
| + | # * * * * 2-7 +15 days |
||
| + | |||
| + | Egy hoszthoz tartozó konfigurációs állomány: |
||
| + | |||
| + | client: hosztnév/IP cím |
||
| + | |||
| + | tree: / |
||
| + | xdev: 0 |
||
| + | index: gzip |
||
| + | |||
| + | === rSnapshot === |
||
| + | * Céljai: |
||
| + | ** a fájlok rsync-alapú mentésének megvalósítása |
||
| + | ** egyéb tetszőleges script futtatása (adatbázis-backup, stb) |
||
| + | |||
| + | * Config: |
||
| + | |||
| + | ######################################### |
||
| + | # BACKUP INTERVALS # |
||
| + | # Must be unique and in ascending order # |
||
| + | # i.e. hourly, daily, weekly, etc. # |
||
| + | ######################################### |
||
| + | |||
| + | # The interval names (hourly, daily, ...) are just names and have no influence |
||
| + | # on the length of the interval. The numbers set the number of snapshots to |
||
| + | # keep for each interval (hourly.0, hourly.1, ...). |
||
| + | # The length of the interval is set by the time between two executions of |
||
| + | # rsnapshot <interval name>, this is normally done via cron. |
||
| + | # Feel free to adapt the names, and the sample cron file under /etc/cron.d/rsnapshot |
||
| + | # to your needs. The only requirement is that the intervals must be listed |
||
| + | # in ascending order. To activate just uncomment the entries. |
||
| + | |||
| + | interval hourly 6 |
||
| + | interval daily 7 |
||
| + | interval weekly 4 |
||
| + | interval monthly 6 |
||
| + | |||
| + | .... |
||
| + | |||
| + | exclude_file /etc/rsnapshot.exclude |
||
| + | |||
| + | .... |
||
| + | |||
| + | ############################### |
||
| + | ### BACKUP POINTS / SCRIPTS ### |
||
| + | ############################### |
||
| + | |||
| + | # LOCALHOST |
||
| + | backup /home/ localhost/ |
||
| + | backup /etc/ localhost/ |
||
| + | backup /root/ localhost/ |
||
| + | backup /var/ localhost/ |
||
| + | |||
| + | # Remote |
||
| + | backup backupuser@remotehost:/home remotehost/ |
||
| + | backup backupuser@remotehost:/etc remotehost/ |
||
| + | backup backupuser@remotehost:/root remotehost/ |
||
| + | backup backupuser@remotehost:/var remotehost/ |
||
| + | |||
| + | #backup_script /usr/local/bin/backup_rsnapshot_cvsroot.sh rsnapshot.cvs.sourceforge.net/ |
||
| + | |||
| + | * Tárhelyfoglalás: |
||
| + | |||
| + | A tárhelyfoglalást egy mindennapi használatú szerver (svn, web, levelezés, adatbázis) mentése alapján vettem fel: |
||
| + | |||
| + | user@hoszt:/data/backup# du -h --summarize * |
||
| + | 11G daily.0 |
||
| + | 169M daily.1 |
||
| + | 160M daily.2 |
||
| + | 190M daily.3 |
||
| + | 59M daily.4 |
||
| + | 672K daily.5 |
||
| + | 141M hourly.0 |
||
| + | 151M hourly.1 |
||
| + | 140M hourly.2 |
||
| + | 150M hourly.3 |
||
| + | 150M hourly.4 |
||
| + | 149M hourly.5 |
||
| + | |||
| + | Példascript MySQL adatbázis mentésére: |
||
| + | |||
| + | #!/bin/sh |
||
| + | NOW=$(date +"%d-%m-%Y") |
||
| + | MUSER="MySQL-UserNAME" #root |
||
| + | MPASS="MySQL-SERVER-PASSWORD" # mypassword |
||
| + | MHOST="MySQL-SERVER-IP-ADDRESS" # server1 |
||
| + | MYSQL="$(which mysql)" |
||
| + | MYSQLDUMP="$(which mysqldump)" |
||
| + | GZIP="$(which gzip)" |
||
| + | |||
| + | DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" |
||
| + | for db in $DBS |
||
| + | do |
||
| + | FILE=mysql-$db.$NOW-$(date +"%T").gz |
||
| + | $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE |
||
| + | done |
||
| + | |||
| + | === Amanda === |
||
| + | |||
| + | * Natív kliensek segítségével különböző operációs rendszereket támogat |
||
| + | ** Pl. Windows esetén Cygwin, Samba vagy egy natív kliens segítségével végezhető el a mentés. |
||
| + | |||
| + | * A mentést különböző adattárolókra képes elvégezni, mely adattárolók használatához szabványos felületet kínál. |
||
| + | ** Disk-to-disk, disk-to-tape, disk-to-cloud (Pl Amazoon S3) mentési lehetőségeket kínál |
||
| + | |||
| + | * A kliensek fele is egységes, a mentendő adat típusától független felületet biztosít. (Application API) |
||
| + | ** Az API felhasználásával lehetőség van tetszőleges alkalmazáshoz biztonsági mentést végrehajtó klienst készíteni. |
||
| + | ** Absztrakt megfogalmazása a mentendő adatoknak: |
||
| + | *** User Object: a mentendő adat |
||
| + | *** Collection: Ezen adatok halmaza, ami egyszeri alkalommal mentésre kerül. |
||
| + | ** Példák: |
||
| + | *** Adatbázis: User Object: table, Collection: MySQL dump |
||
| + | *** Fájlrendszer: User object: fájl, Collection: teljes dump |
||
| + | *** svn, MS Exchange, Lotus Domino, |
||
| + | === Bacula === |
||
| + | |||
| + | * Szintén kliens-szerver architechtúrájú, biztonsági mentés készítésére alkalmas alkalmazásgyűjtemény. |
||
| + | * A következő alkalmazások gyűjteményéből áll: |
||
| + | ** Director: a központi, biztonsági mentést és visszaállítást végző szolgáltatás (daemon) |
||
| + | ** Console: ezen az alkalmazáson keresztül férhetünk hozzá a Director daemnonhoz. |
||
| + | ** File: a kliens alkalmazás, mely a mentendő hoszton fut. Közvetlenül a Director vezérli a mentés végrehajtása céljából. |
||
| + | ** Storage: az adattárolást megvalósító gépen futó alkalmazás, mely a Directorral áll kapcsolatban. Elvégzi az adatok fizika tárolóra kiírását és visszaállítását. |
||
| + | ** Catalog: A mentett adatokról tárolt metainformációkat tartalmazó adatbázis. Segítségével gyorsan és egyszerűen találhatóak meg és állíthatóak vissza a keresett fájlok. |
||
| + | ** Monitor: a rendszer aktuális állapotának megfigyelésére alkalmas program. Nyomon követketőa Director, a fájl- és storagedaemonok tevékenysége |
||
== Irodalom == |
== Irodalom == |
||
| − | * http://en.wikipedia.org/wiki/Backup |
+ | * http://www.biztostu.hu |
| − | * SzIRT tantárgy |
+ | * Számítógépes infrastruktúra rendszertervezése című tantárgy (Dr. Pataricza András - BME-MIT) |
| + | * Informatikai infrastruktúra szolgáltatásbiztonsága című tantárgy (dr. Majzik István - BME-MIT) |
||
* http://www.linux-backup.net/Example/ |
* http://www.linux-backup.net/Example/ |
||
* http://www.bacula.org/en/ |
* http://www.bacula.org/en/ |
||
| − | * http://en.wikipedia.org/wiki/Rsync |
+ | * http://rsync.samba.org/ |
| − | * http://www.nongnu.org/rdiff-backup/features.html |
+ | * http://wiki.zmanda.com/index.php/Main_Page |
| + | * http://www.dirvish.org/ |
||
| + | * http://www.rsnapshot.org/ |
||
| + | * http://www.cyberciti.biz/faq/linux-rsnapshot-backup-howto/ |
||
A lap jelenlegi, 2021. május 6., 08:31-kori változata
Írta: Szatmári Zoltán.
[szerkesztés] 1 Biztonsági mentés fogalma, célja
- A backup-megoldás elsődleges célja biztonsági mentés készítése a rendszer adott állapotáról
- A biztonsági mentés alapvető védelmet jelent bizonyos hardver- és szoftverhibák ellen
- Emberi hibák ellen is véd (pl. a RAID-el ellentétben)!
- Célja az adatok tárolása, naplózása és helyreállítás lehetőségének biztosítása
[szerkesztés] 2 A mentés célmédiuma
Lehetséges tárolómédium
- HDD (Lokális vagy távoli kiszolgálóban)
- CD/DVD
- Mágnesszalag
- NAS/SAN
[szerkesztés] 3 Backup megoldások
- Teljes mentés: A rendszer minden adata válogatás nélkül mentésre kerül. A mentési folyamat ezért egyszerű, ellenben hosszú ideig tart és sok tárterület szükséges hozzá. Amennyiben adataink olyanok, hogy nem változnak túl sűrűn, a gyakori teljes mentés sok fölösleges adat tárolását okozza. Előnye azonban, hogy a visszaállítás viszonylag gyors.
- Inkrementális mentés: Alkalmazása esetén nem kerül elmentésre minden adat, hanem csak azok, amelyek egy korábbi mentés óta megváltoztak (ekkor a visszaállításhoz természetesen több biztonsági mentésre is szükség van). Az inkrementális mentésnek két alapvető fajtája van: a kumulatív és a differenciális mentés. Ezek segítségével többféle mentési stratégia kidolgozható.
- Kumulatív mentés: Ezen mentés során mindig az utolsó teljes mentés óta megváltozott adategységek kerülnek elmentésre. A kumulatív mentésekből álló mentési stratégiánál ha egy adategység valamikor megváltozott, akkor az minden kumulatív mentés alkalmával ismételten mentésre kerül egészen a következő teljes mentésig. A kumulatív mentés gyorsabb a teljes mentésnél és kevesebb helyet is kíván. A differenciális mentésnél azonban lassúbb és a tárigénye is nagyobb.
- Differenciális mentés: A differenciális mentés során csak az utolsó inkrementális mentés óta megváltozott adategységek kerülnek elmentésre. Ha két teljes mentés között több differenciális mentést végzünk, akkor pl. a második differenciális mentés csak az első óta történt változásokat fogja rögzíteni. Ennek köszönhetően maga a mentés folyamata gyorsabbá válik, és esetenként kevesebb helyet foglal el. Hátránya azonban, hogy a visszaállításhoz a legutolsó teljes mentésre, és az azt követő összes differenciális mentésre szükség van.
Megjegyzendő, hogy a szóhasználat nem egységes; a "differenciális" és az "inkrementális" mentések fogalmát lényegében felcserélve is használják. A Wikipédia szerint például a differenciális mentés az utolsó teljes mentéshez képesti változásokat menti, és az inkrementális mentés az, ami a legutóbbi mentéshez képesti különbségeket. Ha mentésekről írunk, célszerű tisztázni, mi milyen értelemben használjuk ezeket a szavakat.
Érdemes egyébként a Wikipédia Backup-szócikk vonatkozó részét is megnézni, mert az itt felsorolt fő csapásirányokon kívül vannak mások is.
[szerkesztés] 4 A mentés végrehajtása
- Biztonsági mentés a rendszer konzisztens állapotában végezhető el. Nagyméretű rendszerek esetén előfordulhat, hogy a mentés elvégzésének ideje olyannyira hosszú, hogy akkora leállás már nem fér bele az üzemidőn kívüli időszakba. A ritkábban végzett mentés pedig az utolsó mentés óta elveszett adatok mennyiségét növelheti meg jelentősen, valamint nagyon nagy adatmennyiségeknél már a szükséges tárolókapacitás miatt is nehézségekbe ütközhetünk. Megoldásképpen tipikusan ilyenkor alkalmazzák azt a módszert, hogy teljes mentést csak ritkábban (pl. hétvégente) készítenek, napi rendszerességgel csak a változásokat mentik valamelyik inkrementális mentési stratégia alkalmazásával.
- On-line rendszerek esetén problémát okozhat az, hogy a mentés végzése közben a rendszert nem állíthatjuk le, így a mentés közben változhat a mentett adatbázis tartalma, ami beláthatatlan következményekkel járó inkonzisztenciához vezethet. Ilyen esetben az úgynevezett hideg mentés módszerét szokták alkalmazni, azaz az adatbázis tartalmát befagyasztják a mentés idejére és a változásokat nem végzik el benne, hanem pusztán feljegyzik egy külön listába (transaction log-ba). A mentés befejeződését követően az el nem végzett módosításokat a rendszer végrehajtja az adatbázison, így annak fizikai tartalma hamarosan utoléri az on-line működést.
- A backup policy egy szervezeten belüli belső szabályzat, melyet speciálisan a nyújtott szolgáltatáshoz kell hangolni.
- Leírja:
- Biztonsági mentést milyen gyakran kell végezni
- Milyen típusú mentést kell végrehajtani
- Az elkészült mentéseket mennyi ideig kell tárolni. (Ebbe törvényi előírások is beleszólhatnak, például minősített vagy pénzügyi adatok esetében.)
- A mentés végrehajtása célszerű, ha automatizáltan megy végbe, emberi beavatkozást nem igényel.
- Biztonsági szempontból célszerű fizikailag elkülönített helyen tárolni a mentett adatokat.
[szerkesztés] 5 A biztonsági mentés teljesítményének mérése, mérőszámai
- Egyszeri mentés lefutási ideje
- Visszaállítás időigénye (Nem kritikus, ha ritkán van rá szükség)
- Visszaállítható időtáv
- Visszaállítható verziók száma
- Elfoglalt tárhely aránya az adatmennyiséghez képest
[szerkesztés] 6 Mentési szintek
- Teljes lemez mentése (bájtszinten) - alacsony szintű backup
- Teljes fájlrendszer mentése
- Verziózott fájlrendszer használata
- Adott fájlok, mappák mentése.
- Alkalmazás-specifikus mentés - magas szintű backup
- Adatbázismentés
[szerkesztés] 7 Vezérlés
- PULL: központi szerver által vezérelt biztonsági mentés.
- PUSH: A mentendő munkaállomás vagy alkalmazás által vezérelt (igényvezérelt) mentés.
[szerkesztés] 8 Felhasználható eszközök
- dd - lemezkép készítése, teljes lemez mentéséhez alkalmas program
- Bármilyen fájl alapú másoló, tömörítő eszköz (cp, tar, scp, ...) egyszerű fájlok, mappák mentéséhez.
- rsync inkrementális másoláshoz
- Komplett backup toolok
- Mögöttük gyakorlatilag az elemi eszközök helyezkednek el
- Automatikát és egyéb plusz szolgáltatást adnak az elemi eszközökhöz.
[szerkesztés] 9 Rsync
Az rsync segítségével gyorsan és minimális adatmozgatással lehetőségünk van biztonsági másolatot készíteni adatainkról. Egy speciális "delta-kódolás" segítségével csak a változásokat kell átvinni a halózaton.
Rugalmas paraméterezhetőségével beállíthatjuk többek között:
- a törölt fájlokat a mentésből is törölje le,
- meghatározhatjuk, hogy mely fájlokat szükséges menteni és melyeket hagyja figyelmen kívül
- inkrementális backup esetén új mappában helyezze el a változtatott adatokat és hardlinkek segítségével a változatlanokat "linkelje" be (azaz egy példányban léteznek a változatlan adatok)
[szerkesztés] 10 A hálózaton keresztül történő mentéssel kapcsolatban felmerülő problémák
A biztonsági mentés többnyire hálózaton keresztül, egy távoli gépre, vagy ahhoz csatlakoztatott szalagos meghajtóra történik. Ekkor a mentendő adatokat hálózaton keresztül, SSH kapcsolattal visszük át (rsync over SSH). Ekkor problémaként merül fel, hogy egyik gépről a másikra ssh-n keresztül be kell jelentkeznünk a fájlok eléréséhez. Alapvetően két megközelítés van:
- a mentendő gép (kliens) kapcsolódik a backup szerverhez és automatikusan küldi el az adatokat, szinkronizál a szerverrel, vagy
- a backup szerver jelentkezik be a mentendő gépre és "szerzi meg" a mentendő adatokat.
Mindkét esetben egy automatikus SSH-n keresztüli bejelentkezés szükségeltetik, ami csak SSH-kulcspárok segítségével lehetséges. A fájlok eléréséhez a távoli felhasználó részére jogokat kell biztosítanunk, ami egy fontos biztonsági rés lehet a rendszerünkben. Ezen biztonsági kockázatot csökkenthejük, ha korlátozásokat teszünk az SSH kulcspár alapú hitelesítésre:
- csak adott hosztról lehessen bejelentkezni,
- csak adott parancs futtatása engedélyezett.
authorized_keys:
from="1.2.3.4",command="/...../validate-ssh" ssh-dss AAAAB3fdsfsdcMrhA7hKTu74FT ............. HHGJShgjHGJHhGHJG=T/ZTFCFZN0xyy root@host
validate-ssh:
#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
*\&*)
echo "Rejected"
;;
*\(*)
echo "Rejected"
;;
*\{*)
echo "Rejected"
;;
*\;*)
echo "Rejected"
;;
*\<*)
echo "Rejected"
;;
*\`*)
echo "Rejected"
;;
*\|*)
echo "Rejected"
;;
rsync\ --server*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Rejected"
;;
esac
[szerkesztés] 11 Unix/Linux backup toolok vázlatos bemutatása
[szerkesztés] 11.1 Dirvish
- Lemezalapú backup-megoldás (disk-to-disk)
- rsync-re épülő PERL implementáció
- Szerver által vezérelt (PULL)
- A legutolsó mentés óta nem változtatott fájlok esetén hardlinket használ
Központi konfigurációs állomány:
bank:
/snapshot
image-default: %Y%m%d
log: gzip
index: gzip
exclude:
/etc/mtab
/i-home/*
/mnt/*
lost+found/
.nfs*
/proc
/snapshot
/sys
/tmp
/var/cache/apt/archives/*.deb
/var/lock/
/var/run/
/var/tmp
Runall:
celeborn 1:00
legolas 1:40
balrog 2:00
gorbag 2:40
salvador 3:00
expire-default: +7 days
expire-rule:
# MIN HR DOM MON DOW STRFTIME_FMT
* * 1-7 * 1 +3 months
# * * 1-7 * 1 +3 months
# * * * * 1 +3 months
# * * 1-7 1,4,7,10 1
# * 10-20 * * * +4 days
# * * * * 2-7 +15 days
Egy hoszthoz tartozó konfigurációs állomány:
client: hosztnév/IP cím tree: / xdev: 0 index: gzip
[szerkesztés] 11.2 rSnapshot
- Céljai:
- a fájlok rsync-alapú mentésének megvalósítása
- egyéb tetszőleges script futtatása (adatbázis-backup, stb)
- Config:
######################################### # BACKUP INTERVALS # # Must be unique and in ascending order # # i.e. hourly, daily, weekly, etc. # ######################################### # The interval names (hourly, daily, ...) are just names and have no influence # on the length of the interval. The numbers set the number of snapshots to # keep for each interval (hourly.0, hourly.1, ...). # The length of the interval is set by the time between two executions of # rsnapshot <interval name>, this is normally done via cron. # Feel free to adapt the names, and the sample cron file under /etc/cron.d/rsnapshot # to your needs. The only requirement is that the intervals must be listed # in ascending order. To activate just uncomment the entries. interval hourly 6 interval daily 7 interval weekly 4 interval monthly 6 .... exclude_file /etc/rsnapshot.exclude .... ############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /home/ localhost/ backup /etc/ localhost/ backup /root/ localhost/ backup /var/ localhost/ # Remote backup backupuser@remotehost:/home remotehost/ backup backupuser@remotehost:/etc remotehost/ backup backupuser@remotehost:/root remotehost/ backup backupuser@remotehost:/var remotehost/ #backup_script /usr/local/bin/backup_rsnapshot_cvsroot.sh rsnapshot.cvs.sourceforge.net/
- Tárhelyfoglalás:
A tárhelyfoglalást egy mindennapi használatú szerver (svn, web, levelezés, adatbázis) mentése alapján vettem fel:
user@hoszt:/data/backup# du -h --summarize * 11G daily.0 169M daily.1 160M daily.2 190M daily.3 59M daily.4 672K daily.5 141M hourly.0 151M hourly.1 140M hourly.2 150M hourly.3 150M hourly.4 149M hourly.5
Példascript MySQL adatbázis mentésére:
#!/bin/sh NOW=$(date +"%d-%m-%Y") MUSER="MySQL-UserNAME" #root MPASS="MySQL-SERVER-PASSWORD" # mypassword MHOST="MySQL-SERVER-IP-ADDRESS" # server1 MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" GZIP="$(which gzip)" DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do FILE=mysql-$db.$NOW-$(date +"%T").gz $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done
[szerkesztés] 11.3 Amanda
- Natív kliensek segítségével különböző operációs rendszereket támogat
- Pl. Windows esetén Cygwin, Samba vagy egy natív kliens segítségével végezhető el a mentés.
- A mentést különböző adattárolókra képes elvégezni, mely adattárolók használatához szabványos felületet kínál.
- Disk-to-disk, disk-to-tape, disk-to-cloud (Pl Amazoon S3) mentési lehetőségeket kínál
- A kliensek fele is egységes, a mentendő adat típusától független felületet biztosít. (Application API)
- Az API felhasználásával lehetőség van tetszőleges alkalmazáshoz biztonsági mentést végrehajtó klienst készíteni.
- Absztrakt megfogalmazása a mentendő adatoknak:
- User Object: a mentendő adat
- Collection: Ezen adatok halmaza, ami egyszeri alkalommal mentésre kerül.
- Példák:
- Adatbázis: User Object: table, Collection: MySQL dump
- Fájlrendszer: User object: fájl, Collection: teljes dump
- svn, MS Exchange, Lotus Domino,
[szerkesztés] 11.4 Bacula
- Szintén kliens-szerver architechtúrájú, biztonsági mentés készítésére alkalmas alkalmazásgyűjtemény.
- A következő alkalmazások gyűjteményéből áll:
- Director: a központi, biztonsági mentést és visszaállítást végző szolgáltatás (daemon)
- Console: ezen az alkalmazáson keresztül férhetünk hozzá a Director daemnonhoz.
- File: a kliens alkalmazás, mely a mentendő hoszton fut. Közvetlenül a Director vezérli a mentés végrehajtása céljából.
- Storage: az adattárolást megvalósító gépen futó alkalmazás, mely a Directorral áll kapcsolatban. Elvégzi az adatok fizika tárolóra kiírását és visszaállítását.
- Catalog: A mentett adatokról tárolt metainformációkat tartalmazó adatbázis. Segítségével gyorsan és egyszerűen találhatóak meg és állíthatóak vissza a keresett fájlok.
- Monitor: a rendszer aktuális állapotának megfigyelésére alkalmas program. Nyomon követketőa Director, a fájl- és storagedaemonok tevékenysége
[szerkesztés] 12 Irodalom
- http://www.biztostu.hu
- Számítógépes infrastruktúra rendszertervezése című tantárgy (Dr. Pataricza András - BME-MIT)
- Informatikai infrastruktúra szolgáltatásbiztonsága című tantárgy (dr. Majzik István - BME-MIT)
- http://www.linux-backup.net/Example/
- http://www.bacula.org/en/
- http://rsync.samba.org/
- http://wiki.zmanda.com/index.php/Main_Page
- http://www.dirvish.org/
- http://www.rsnapshot.org/
- http://www.cyberciti.biz/faq/linux-rsnapshot-backup-howto/