Egy ideje problémát okozott a rengeteg hosting-anyag mentése, főleg a méretek miatt. Leírom, én hogyan backupolok.
Először is a jó hír az, hogy egész gyorsan, egész olcsón összeraktam egy sima PC-t a mentések elkészítésére. A gép jelenleg ezekből áll:
– core2duo E8400, 3.0GHz, 6MB L1 cache
– 2x1GB Corsair XMS2 RAM KIT
– ASUS 5KPL-AM alaplap
Ezen lóg néhány lemez:
– WD 320GB PATA (ez a rendszerlemez, mert itt nem olyan fontos, hogy extra gyors legyen, rendszer-lemezműveletek minimálisak ezen a meghajtón)
– WD 500GB Blue PATA, ez most nincs használatban, és lehet, hogy nem is lesz, mert vannak nem túl biztató SMART értékek
– WD 1TB Black SATA (ez az rsync tükör, bővebben lejjebb)
– Seagate Constellation ES2 2TB SATA (ez pedig tárolja a napi mentéseket)
Az oprendszer – mi más lenne – 64 bites Debian linux.
A mentés menete, tematikája nálam több éve a következő:
A hosting szerverek SSH belépéssel rsync-kel küldik be naponta a frissítéseket a saját könyvtárukba, egy, a backup-szerveren felvett felhasználóval, kulcs alapú hitelesítéssel. Mivel azonban a jogkörök minden szerveren mások (de nagyon hasonlóak nálam), ezért a mentést a backup gépen mindenképp root-ként kell megcsinálni, hogy a kinti szerverek felhasználói, jogai megmaradjanak a backupban. Ehhez az rsync-et kiegészítettem az –rsync-path=”sudo rsync” paraméterrel, ellenkező esetben minden tükrözött file a backup gép felhasználójának nevében jön létre.
Persze ehhez a sudo-t is be kell állítani. A backup gép felhasználója, így annak kulcsa minden mentett gépen megtalálható.
Ez a tükrözés menete, így gyakorlatilag az éles tartalmak mind megvannak itt naponta frissítve. Ez leginkább a weboldalakra, levelezésre igaz.
A backup gép ezekből készíti el a napi backupot tömörített, inkrementális mentéssel, ami azt jelenti, hogy egy héten egyszer készül master, azaz teljes backup, ezután a napi mentésbe csak azok a fileok kerülnek bele, ami nincs a masterben. Ebből tárolok én 14 napnyit.
Az adatbázisok mentése másképp készül, minden szerveren minden éjjel egy célscript lementi mindet egyenként, majd ezek is bekerülnek a backup gépre, szintén rsync segítségével. Ezekből 90 napnyi mentést tárolok.
Természetesen a mentések részletességét a configokkal, beállításokkal be lehet állítani, tehát lehet akár domainenként menteni, vagy ahogy szeretné az ember.
Mentésre backup-manager-t használok, ami gzip tar-ba archivál, a mysql-ek tar bzip-be kerülnek.
Hátrányok
– nagy hely kell ahhoz, hogy teljes rsync tükröket tároljunk, ugyanannyi, ami a hosting gépeken kell, ez nálam nagyjából most 700 GB
– nagy tömörített fileok születnek helyenként (site-tól függően akár 8-15-20GB-os is, amiből egy-egy file-t előásni nem túl könnyű, s mivel itt nincs semmilyen mentési katalógus, elég pontosan tudni kell, hol található. Ámbár ez elég egyértelmű, amikor valaki visszaállítást kér.
Előnyök
– egy tükörrel mást is lehet kezdeni, például a weboldalakat víruskeresővel át lehet fésülni rendszeresen, így fellelhetőek fertőzések. Ez (is) egy nagy erőforrás-igényű művelet, ezért nagyon jó, hogy egy olyan gép csinálja, aminek máshoz épp nem kell nyúlnia
– ha egyszer bent van egy tükör, akkor a szinkronizáció már nagyon gyorsan le tud futni, hiszen az rsync erőssége pontosan ez, érdemes kihasználni!
– sok erőforrást megspórolunk az éles szervereknek azzal, hogy a tömörített mentéseket nem nekik kell elkészíteni, ami még akkor is jól jön, ha éjjel kerülne rá sor. Ekkora mennyiséget sok óra tömöríteni, arról nem beszélve, hogy a vírusscan sem két perc (egy erős szerveren ~400 GB, közel 500.000 file esetén, átlagos üzem mellett úgy 6-8 óra).
– helyi szerverre samba-t téve, nagyon kényelmesen, megosztott mappákkal szemmel lehet tartani a mentéseket, hozzájuk lehet férni könnyen.
Nagyjából ennyi lenne, először csak a gépről akartam pár szót írni, de végül belemerültem. 🙂