Backup
| a (minimális olvasószerkesztés, nincs kész) | |||
| (2 szerkesztő 20 közbeeső változata nincs mutatva) | |||
| 1. sor: | 1. sor: | ||
| − | == Backup fogalma == | + | Írta: Szatmári Zoltán. | 
| − | * Biztonsági mentés rendszer, hw/sw ellen. | + | == Biztonsági mentés fogalma, célja == | 
| − | * Emberi hülyeség ellen is véd a RAID-el szemben! | ||
| − | * Célja a tárolás és helyreállítási lehetőség | ||
| − | == 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 | ||
| * NAS/SAN | * NAS/SAN | ||
| − | |||
| == 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/

