Upload
suchin
View
75
Download
1
Embed Size (px)
DESCRIPTION
BackupPC Aco Dmitrović Ožujak 2011. Kompresija i deduplikacija Kako brisati backup Backup MySQL baze Rješavanje problema Autentikacija LDAP ili AD? iSCSI. Sadržaj. Zašto backup? MTBF i MTTF Istraživanje Googlea BackupPC Instalacija Konfiguracija Web sučelje Windows klijenti - PowerPoint PPT Presentation
Citation preview
BackupPCAco DmitrovićOžujak 2011.
Sadržaj
Zašto backup? MTBF i MTTF Istraživanje Googlea
BackupPC Instalacija Konfiguracija Web sučelje Windows klijenti Linux klijenti
Kompresija i deduplikacija
Kako brisati backup Backup MySQL baze Rješavanje problema
Autentikacija LDAP ili AD?
iSCSI
3
Zašto backup?
Dokumenti u elektroničkom obliku Zakonska obaveza arhiviranja građe Diskovi se kvare
MTTF – mean time to failure MTBF – mean time between failures Vrijeme u kojem će se pola diskova pokvariti!? RAID smanjuje rizik
rijetko se istovremeno pokvare dva diska Rizici – kvarovi, bugovi, virusi, greške korisnika...
4
MTBF
Članak u eWeek-u: SMART tehnologija ne omogućuje pouzdano
predviđanje kvara Diskovi enterprise kvalitete deklarirani na 1,000,000 sati
rada (114 god!) Godišnje bi po tome trebalo zamijeniti 1% diskova U stvarnosti između 2 i 4%, pa sve do 13%
5
Failure Trends in a Large Disk Drive Population FAST 2007 Proizvođači ubrzanim testom simuliraju opterećenje Google razvio System Health infrastrukturu Daemon na svakom serveru prikuplja podatke
Temp., SMART err., opterećenje, konfiguracija > 100.000 HD, dec 2005 - aug 2006
Korelacija s bazom popravaka Stres test diskova prije produkcije
Proizvođač testira vraćene diskove, dio proglasi ispravnima!
6
7
Google...
8
Temperatura
9
Temp/starost
10
SMART
11
Zaključak
”Nije pitanje hoće li se disk pokvariti, pitanje je kada će se pokvariti.”
Smanjivanje rizika RAID više kopija podataka na razičitim lokacijama
12
Zašto BackupPC?
Slobodni softver, otvoren kod, dokumentiran http://backuppc.sourceforge.net/
Upute za instalaciju na Debianu http://www.debianhelp.co.uk/backuppc.htm
Wiki http://wiki.zmanda.com/index.php/Backuppc http://backuppc.wiki.sourceforge.net/
Jednostavna instalacija i konfiguracija
13
Prednosti Mrežni backup Unix/Linux, Windows, MacOSX klijenata Na klijentima ne treba instalirati agente Inteligentno korištenje diskovnog prostora
Kompresija, deduplikacija Scheduling prilagođen pojedinim klijentima Prijenos podataka: samba, rsync, ftp, ssh Web sučelje za admina i korisnike
korisnici sami brinu o svojim podacima Restore pojedinih datoteka ili arhive (.tar, .gz) Šalje korisniku obavijesti e-mailom Bare metal recovery, uz pomoć Knoppixa
14
15
Kako radi? Default: backup cijelog sistema (C$, /)
Exclude (/proc, /tmp...) Globalna + mini konfiguracija za hosta
Xfer method Unix:
tar/rsync preko ssh Windows:
smb rsync preko ssh (cygwin)
Mac OS X tar, xtar, rsync?
FTP
16
Briga za klijente
Pinga klijente Nastoji obaviti posao izvan radnog vremena Ako se ne klijent odaziva, backup će se obaviti
čim se pojavi na mreži
17
Instalacija naOpenVZ virtualni server
18
Instalacija - VM
Debian Lenny + kernel s podrškom za openvz Koji kernel je instaliran?dpkg -l | grep linux
apt-cache search openvz
Nađite istu verziju kernela, samo s podrškom za openvz, na pr.apt-get install linux-image-2.6.26-2-openvz-amd64
Kernel može imati oznaku x86_64, 686 ili i386
19
Template
Alati: apt-get install vzctl vzprocps vzquota
Predložak za VMcd /vz/template/cache
wget http://download.openvz.org/template/precreated/\
contrib/debian-5.0-amd64-minimal.tar.gz
20
sysctl
# packet forwarding enabled and proxy arp disabled
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp=0
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
# Enables the magic-sysrq key
kernel.sysrq=1
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects=1
net.ipv4.conf.all.send_redirects=0
sysctl -p
21
Virtualka
vzctl create 100 –-ostemplate debian-5.0-amd64-minimal -–config basic.vps
# Ako ne nalazi basic konfiguraciju, provjerite datoteke u /etc/vz/conf
# umjesto basic.vps, vps.basic ili samo basic
vzctl set 100 –-ipadd 192.168.x.x –-save
vzctl set 100 -–nameserver 161.53.x.x –-save
vzctl set 100 –-hostname backuppc -–save
vzctl start 100
vzlist
vzctl enter 100
22
Instalacija...
/etc/apt/sources.list
deb http://ftp.carnet.hr/debian lenny main contrib non-free
deb-src http://ftp.carnet.hr/debian lenny main contrib non-free
deb http://security.debian.org lenny/updates main contrib non-free
deb-src http://security.debian.org lenny/updates main contrib non-free
23
Priprema
# apt-get install debian-archive-keyring
# apt-get update
# apt-get upgrade
# apt-get install apache2-mpm-prefork
[...]
The following packages will be REMOVED:
apache2-mpm-worker
The following NEW packages will be installed:
apache2-mpm-prefork
24
perl moduli
apt-get install libxml-rss-feed-perl
apt-get install libarchive-zip-perl
apt-get install libfile-rsync-perl
apt-get install libfile-rsyncp-perl
perldoc Compress::Zlib
perldoc Archive::Zip
perldoc XML::RSS
perldoc File::RsyncP
25
Točno vrijeme
Za backup je potrebna sinhronizacija vremena Provjerite je li instaliran i konfiguriran ntp Provjerite vremensku zonu iz predloška
dpkg-reconfigure tzdata
26
Instalacija
# aptitude install backuppc rsync par2 bzip2 Instalacijska skripta pita za
Workgroup/Domain Web server – apache2 DHCP – ne
Zatim doda korisnika backuppc:BackupPC can be managed through its web interface: http://backuppc/backuppc/
For that purpose, a web user named 'backuppc' with 'kHsKlWIQ' as password has been created.
27
Redirekcija
Ako želimo URL http://backuppc U /etc/apache2/conf.d/backuppc.conf, na kraju
dodajte: RedirectMatch ^/$ http://backuppc/backuppc/ d Provjerite #DocumentRoot /var/www/
DocumentRoot /usr/share/backuppc
28
Password za web sučelje
Promjena passworda za adminahtpasswd /etc/backuppc/htpasswd backuppc
Dodavanje korisnika, kako bi mogli upravljati svojim backupom
htpasswd /etc/backuppc/htpasswd pero
Korisnik vidi svoje podatke, admin sve
29
Konfiguracija
Globalne postavke u /etc/backuppc/config.pl$Conf{ServerHost} = 'backuppc.domena';
$Conf{MaxOldLogFiles} = '14';
$Conf{DfPath} = '/bin/df';
$Conf{DfCmd} = '$dfPath $topDir';
$Conf{DfMaxUsagePct} = '95';
$Conf{BackupPCUser} = 'backuppc';
30
Staze
$Conf{TopDir} = '/var/lib/backuppc';
$Conf{ConfDir} = '/etc/backuppc';
$Conf{LogDir} = '';
$Conf{InstallDir} = '/usr/share/backuppc';
$Conf{CgiDir} = '/usr/share/backuppc/cgi-bin';
$Conf{ServerInitdPath} = '/etc/init.d/backuppc';
31
Config.pl
$Conf{WakeupSchedule}['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
Minimalan razmak između punih backupa (7 dana)
$Conf{FullPeriod} = '6.97'; Minimalan razmak između inkrementalnih backupa (1 dan)
$Conf{IncrPeriod} = '0.97';
$Conf{IncrKeepCnt} = '6'; Koliko punih backupa čuvati (default 1)
$Conf{FullKeepCnt} = ['1'];
$Conf{FullKeepCntMin} = '1';
$Conf{FullAgeMax} = '90';
32
Složenija konfiguracija
Za početak je dobra podrazumijevana konfiguracija Kasnije je možete prilagoditi, na pr.: Exponential backup expiry $Conf{FullKeepCnt} = [4, 2, 3];
2^n * $Conf{FullPeriod} Eksponencijalno raste razmak između punih backupa
1 2 4 8 16 32 ... tjedna 4 puna backupa s razmakom od 1 tjedna 2 s razmakom od 2 tjedna (prethodni mj.) 3 s razmakom od 4 tjedna (3 mjesečna)
33
Godišnji backup
Zadatak: Čuvati tjedni full backup za tekući mjesec Mjesečni za tekuću godinu godišnji za proteklih 10 godina
34
Inkrementalni backup
$Conf{FullPeriod} = 7;
$Conf{IncrPeriod} = 1;
$Conf{IncrKeepCnt}= 6;
$Conf{IncrLevels} = [1, 2, 3, 4, 5, 6]; backup #0 (full, level 0) backup #1 (incr, level 1) backup #2 (incr, level 2) backup #3 (incr, level 3) backup #4 (incr, level 4) backup #5 (incr, level 5) backup #6 (incr, level 6)
35
Inkrementalni...
$Conf{FullPeriod} = 7;
$Conf{IncrPeriod} = 1;
$Conf{IncrKeepCnt}= 6;
$Conf{IncrLevels} = [1, 2, 3 ]; backup #0 (full, level 0) backup #1 (incr, level 1) backup #2 (incr, level 2) backup #3 (incr, level 3)
Poslije #3 inkrementalni se brišu, a novi inkrementalni sadrži razliku od zadnjeg punog
36
dump
BackupPC slijedi istu logiku kao dump Level 0 – full backup Level 1 – razlika Level 2 – razlika od 1 Itd.
http://linux.die.net/man/8/dump
37
hosts
Popis računala za backup /etc/backuppc/hosts:host dhcp user moreUsers
# example static IP host entry
# farside 0 craig jill,jeff
# example DHCP host entry
# larson 1 bill
hawkeye 0 luzer
localhost 0 root
38
Web sučelje
39
user
Korisnik u polju user dobija mailove Treba dodati domenu u config.pl$Conf{EMailUserDestDomain} = '@mojadomena.hr';
Korisnici u moreUsers ne dobijaju mailove Svi imaju pristup web sučelju i backupu hosta
40
CGI
41
42
Pronalaženje hostova
Prvo se koristi DNSperl -e 'print(gethostbyname("myhost") ? "ok\n" : "not
found\n");'
Zatim NetBios multicastnmblookup myhost
NetBios over TCP
43
DHCP
Da bi nalaženje hosta DNS-om radilo, DHCP treba prijavljivati hostove DNS-u:
44
Win klijent
45
Backup Windowsa
Prijenos podataka samba protokolom$Conf{XferMethod} = 'smb';
$Conf{SmbShareName} = [ 'Poslovno' ];
$Conf{SmbShareUserName} = 'backuppc';
$Conf{SmbSharePasswd} = '!*Arghh+%#?';
$Conf{SmbClientFullCmd} = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode\\ full -Tc$X_option - $fileList';
$Conf{SmbClientIncrCmd} = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode\\ full -TcN$X_option $timeStampFile - $fileList';
46
AD
47
Konfiguracija hosta
Globalna konfiguracija u /etc/backuppc/config.pl
Za hostove kojima to ne odgovara /etc/backuppc/pc/<hostname>.pl
48
Backup Linuxa# Setting only matters if $Conf{XferMethod} = 'rsync'.
$Conf{RsyncClientPath} = '/usr/bin/rsync';
#$Conf{RsyncClientCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+';
# necemo se ulogirati kao root, nego kao rbackup
$Conf{RsyncClientCmd} = '$sshPath -q -x -l rbackup $host sudo $rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l rbackup $host sudo $rsyncPath $argList+';
$Conf{RsyncShareName} = [ '/'];
$Conf{RsyncdClientPort} = '873';
$Conf{RsyncdUserName} = 'rbackup';
$Conf{RsyncdPasswd} = '!*Arghh+%#?';
49
Rsync argumenti$Conf{RsyncArgs} = [
'--numeric-ids',
'--perms',
'--owner',
'--group',
'-D',
'--links',
'--hard-links',
'--times',
'--block-size=2048',
'--recursive'
];
50
Rsync args...
# Dodatni argumenti, na pr. --exclude/--include,
# $Conf{RsyncArgs} = [
# # original arguments here
# '-v',
# '--exclude', '/proc',
# '--exclude', '*.tmp',
# ];
51
rsyncd ili ssh/rsync?
Alternative za Linux klijente Na klijentu radi rsyncd
Backuppc - rsync s passwordom Backuppc se logira na klijenta koristeći ssh
Pokrene rsync klijenta
52
ssh
Na backuppc serveru Generiramo ssh ključ, distribuiramo ga U*x
klijentima (no passphrase) su - backuppc
ssh-keygen
ssh-copy-id -p [email protected]
config.pl$Conf{RsyncdUserName} = 'rbackup';
$Conf{RsyncdPasswd} = ''; # ne treba
$Conf{RsyncdAuthRequired} = '0';
53
sudoers
Na Linux klijentu:
adduser rbackup
visudo
rbackup ALL=NOPASSWD: /usr/bin/rsync
54
Operacije Kod starta čita konfiguraciju – config.pl I prilikom buđenja, ako ima promjena
$Conf{WakeupSchedule}
4 koraka Zahtjevi u background command queue BackupPC_dump proces za pojedine klijente
Zastarjeli backupi u /var/lib/backuppc/trash BackupPC_link kreće ako je backup ispravan
Obavlja deduplikaciju BackupPC_trashClean i BackupPC_nightly
Briše trash i datoteke s jednim hard linkom
55
Datoteke
BackupPC_dump sprema datoteke u ./pool Komprimirane datoteke su u ./cpool Za svakog klijenta direktorij ./pc/<hostname>
Za svaki backup novi direktorij ./pc/<hostname>/<rbr> hard link na datoteke u ./cpool
Backup mora biti na istom file systemu
56
Kompresija
Compress::Zlib modul $Conf{CompressLevel}=3
0 - bez kompresije 1 - štedi CPU, nešto lošija kompresija 3 - preporučena vrijednost 5 - +20% CPU, +2-3% bolja kompresija 9 - opterećuje CPU, malo bolja kompresija
57
Deduplikacija
Više klijenata čuva istu datoteku Dodaje se samo hard link Čak i ako je naziv datoteke različit Ime datoteke je pokazivač na inode
Lokacija, vlasnik, vremena (ctime, mtime, atime) Link reference counter – broj hard linkova
Počinje s 1 raste s dodavanjem, pada s brisanjem linkova Datoteka se briše samo ako je brojač na 1
58
inode, hard links, filename
find /var/lib/backuppc/pc -printf "%i %n %p\n" | sort > /tmp/inode
less /tmp/inode
[...]
14928011 8 ./hawkeye/0/fHGI/fFascinantno.pps
14928011 8 ./nb-soky/1/fPoslovni/fFascinantno.pps
14928011 8 ./nb-soky/2/fPoslovni/fFascinantno.pps
14928011 8 ./nb-soky/3/fPoslovni/fFascinantno.pps
14928011 8 ./nb-soky/4/fPoslovni/fFascinantno.pps
14928011 8 ./nb-soky/5/fPoslovni/fFascinantno.pps
14928011 8 ./nb-soky/6/fPoslovni/fFascinantno.pps
59
Deduplikacija...
Kako BackupPC otkriva identične datoteke? Ime datoteke u poolu je MD5 digest veličine i sadržaja Ne uzima se cijeli sadržaj, veličina i odrezak
Više datoteka - isti hash U tom slučaju obavi se detaljna provjera
Rješenje zasnovano na eksperimentiranju Moguće izmjene u konfiguraciji, ali
Ako već imate pool, gubite deduplikaciju Dok se ne izrotiraju stari backupi
60
Umirovljenje klijenta
$Conf{BackupsDisable} = 0;
0 – backup omogućen 1 – auto backup onemogućen,
moguć ručno pokrenut na web sučelju 2 – backup posve onemogućen
Podaci i dalje dostupni
61
Brisanje klijenta
Brisanje hosta iz /etc/backuppc/hosts Brisanje podataka:
rm -rf /var/lib/backuppc/pc/hostname Preko noći će se pobrisati datoteke u .cpool
62
Brisanje starih backupa?
Što ako želimo selektivno brisati backupe? Na pr. da se oslobodi prostor
Skripta Matthiasa MeyeraUsage: $0 [-c <client> [-d <backupnumber> -b <before data>
-r [-f]] | [-l]] | [-n]
Spremimo je u /bin/backup_del.shchown backuppc:backuppc /bin/backup_del.sh
backup_del.sh -c hawkeye -d 0
63
Premještanje poola
Ako koristite LVM ili RAID mogu se dodavati diskovi
U protivnom, treba pri kopiranju sačuvati odnos hard linkova i komprimiranog backupa
Kopiramo raw disk na razini bloka - dd Aplikacije koje znaju s hard linkovima
cp -a rsync -H
64
Skripta
BackupPC od ver. 3 sadrži skriptu BackupPC_tarPCCopy
su backuppc
cd newTopdir
mkdir pc
cd pc
__INSTALLDIR__/bin/BackupPC_tarPCCopy __TOPDIR__/pc | tar xvPf -
65
Najčešći problemi
66
No ping
DNS resolving? nslookup (not found) ipconfig /release, ipconfig /renew
I dalje ne prolazi ping Obrnuto, s hosta na backuppc prolazi Je li spojen na vlastiti router? Firewall?
67
PC´s config
Ne čita konfiguraciju za hostachown backuppc:www-data /etc/backuppc/pc/<hostname>.pl
68
Bad network name
/usr/bin/smbclient \\\\hasano\\Poslovni -U backuppc
Enter backuppc's password:
Anonymous login successful
Domain=[IGI] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
69
Bad network name...
Bad network name odnosi se na samba share Dotični host dijeli drugu mapu Upišite u konfiguraciju hosta (hostname.pl)$Conf{SmbShareName} = 'Posao';
config.pl – javio bi istu grešku za druge hostove Nakon toga:
70
BackupPC server
Visok load, procesi stanu Smanjite broj simultanih backupa
$Conf{MaxBackups} + $Conf{MaxUserBackups}$Conf{MaxBackups} = '4';
$Conf{MaxUserBackups} = '4'; Provjerite resurse dodijeljene virtualki
cat /proc/user_beancounter Zadnji stupac mora biti 0 Kritičan othersockbuf
71
failcnt
72
vztop
73
Disk
Ako je disk usko grlo isključite atimeu /etc/mtab/dev/cciss/c0d0p1 / ext3 rw,noatime,errors=remount-ro 0 0
Journaling Preselite journal na drugi disk
ext4 umjesto ext3, po mogućnosti 64-bit
74
BackupPC za napredne
75
mod_perl
Ubrzanje 15 puta!? Apache se izvršava kao user backuppc Perl skripte više ne trebaju setuid Upute u dokumentaciji, Mod_perl Setup Ako je apache kompajliran s podrškom za
mod_perl:apache2 -l | grep mod_perl
76
Backup MySQL baze
Ne može ”na živo” Skripta koja se izvrši prije backupahttp://sourceforge.net/projects/automysqlbackup/ scripta za dnevni, tjedni i mjesečni backup MySQL baza mysqldumpom. Svojstva
Backup više baza podataka Jedinstvena backup datoteka ili odvojena za svaku bazu Kompresija Backup udaljenih servera Slanje logova e-mailom
77
Autentikacija
LDAP – [email protected] ili AD? Apache 2.2 mod_authnz_ldap Debian 5.0 apt-get install libapache-authznetldap-perl a2enmod authnz_ldap
AAI@EduHr koristi Radius kao posrednikaapt-get install libapache2-mod-auth-radius
78
Noviji modul
libapache2_mod_auth_xradius Paket u repozitoriju Srca: http://tinyurl.com/3jgc6w4 dpkg -i libapache2-mod-auth-xradius_0.4.6-1_amd64.deb
Upute: http://www.outoforder.cc/projects/apache/mod_auth_xradius/
79
LDAP server
Prijava klijenta na Radius/LDAP serveru
/etc/freeradius/clients.conf
client 161.53.x.y {
secret = pssssttt
shortname = backuppc
}
/etc/intit.d/freeradius reload
80
Konfiguracija za radius
U /etc/backuppc/apache.conf ili .htaccess# Xradius modul
AuthType Basic
AuthName "Predstavite se svojim AAI@EduHr identitetom"
AuthXRadiusAddServer "161.53.x.x:1812" "pssssttt"
AuthXRadiusTimeout 3
AuthXRadiusRetries 3
require valid-user
81
Backup naiSCSI storage
82
iSCSI
Network storage protocol over TCP Encapsulira SCSI naredbe u TCP pakete Zaseban 1 GB ethernet port
Jeftinije od FC SAN-a Skupi 10 Gb preklopnici
83
iSCSI
Host vidi storage LUN kao lokalni disk Initiator - host Target – storage Discovery:
Internet Storage Name Service (iSNS) SendTargets SLP - Service Location protocol (RFC 4018) Static – statička IP adresa targeta
Host vidi storage kao /dev/sdx
84
85
iSCSI na Debianu
apt-get install open-iscsi
/etc/iscsi/iscsid.conf
node.startup = automaticnode.session.auth.username = MY-ISCSI-USERnode.session.auth.password = MY-ISCSI-PASSWORDdiscovery.sendtargets.auth.username = MY-ISCSI-USERdiscovery.sendtargets.auth.password = MY-ISCSI-PASSWORD[...]
/etc/init.d/open-iscsi start
86
Target discovery
Nađimo storageiscsiadm -m discovery -t sendtargets -p 192.168.x.x iliiscsiadm --mode discovery --type sendtargets --portal
192.168.x.x Vrati record ID, koji treba za loginiscsiadm --mode node --targetname iqn.2001-05.com.doe:test
--portal 192.168.x.x:3260 –login
/etc/init.d/open-iscsi restart
87
iSCSI
Pronađi SCSI uređajtail -f /var/log/messages
fdisk /dev/sdd mkfs.ext3 /dev/sdd1
Mount direktorijmkdir /iscsi
mount /dev/sdd1 /iscsi
Podesi /etc/iscsi/iscsi.conf i /etc/mtab