Backup

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
a (minimális olvasószerkesztés, nincs kész)
 
(2 szerkesztő 22 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.
 
* 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 ==
+
== Biztonsági mentés fogalma, célja ==
- HDD
+
- CD/DVD
+
* A backup-megoldás elsődleges célja biztonsági mentés készítése a rendszer adott állapotáról
- Mágnesszalag
+
* A biztonsági mentés alapvető védelmet jelent bizonyos hardver- és szoftverhibák ellen
- NAS/SAN
+
** 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
  +
* Mágnesszalag
  +
* 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.
  +
  +
== 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.
  +
  +
== 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
  +
  +
== 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 ==
  +
* 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.
  +
  +
== 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)
  +
  +
== 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
 
 
- Backup policy
+
image-default: %Y%m%d
- Szervezeti belső szabályzat
+
log: gzip
- Milyen gyakran, azokat meddig tároljuk.
+
index: gzip
- Jó, ha automatizált.
 
- Biztonsági szempontből célszerű fizikailag, stb elkülönített helyen
 
 
 
- Backup célok:
+
exclude:
- Fájl alapú
+
/etc/mtab
- Fájlrendszer
+
/i-home/*
- Verziózott fájlrendszer
+
/mnt/*
- Adatbázis backup
+
lost+found/
- Memória
+
.nfs*
- ...
+
/proc
  +
/snapshot
  +
/sys
  +
/tmp
  +
/var/cache/apt/archives/*.deb
  +
/var/lock/
  +
/var/run/
  +
/var/tmp
 
 
- Backup teljesítmény mérése
+
Runall:
- Egyszeri mentés lefutási idő
+
celeborn 1:00
- Visszaállítási idő (Nem annyira kritikus)
+
legolas 1:40
- Visszaállítható időtáv.
+
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
   
- Felhasználható eszközök:
+
Egy hoszthoz tartozó konfigurációs állomány:
- Bármilyen fájl alapú másoló eszköz (tar, dd, cp)
+
- RSync over ssh
+
client: hosztnév/IP cím
- Komplett backup toolok
 
- Mögöttük gyakorlatilag az elemi eszközök helyezkednek el
 
- Automatikát, plussz szolgáltatást adnak a backupoláshoz
 
 
- Unix/Linux által nyújtott technikák
 
- Inkrementális mentés támogatottsága hard/symlinkek szegítségével
 
 
 
- Unix/Linux backup toolok
+
tree: /
- rSnapshot
+
xdev: 0
- DirVish
+
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)
- http://www.linux-backup.net/Example/
+
* Informatikai infrastruktúra szolgáltatásbiztonsága című tantárgy (dr. Majzik István - BME-MIT)
- http://www.bacula.org/en/
+
* http://www.linux-backup.net/Example/
- http://en.wikipedia.org/wiki/Rsync
+
* http://www.bacula.org/en/
- http://www.nongnu.org/rdiff-backup/features.html
+
* 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/

A lap jelenlegi, 2021. május 6., 08:31-kori változata

Írta: Szatmári Zoltán.

Tartalomjegyzék

[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

Személyes eszközök