[LinuxFocus-icon]
<--  | Strona G��wna  | Mapa Serwisu  | Indeks  | Szukaj

Nowo�ci | Archiwum | Linki | O Nas
Ten dokument jest dost�pny w nast�puj�cych j�zykach: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Russian  Turkce  Polish  

Brian Hone
Brian Hone
<bhone(at)eink.com>

O Autorze:

Brian Hone jest administratorem i programist� w korporacji E Ink. W wolnych chwilach �egluje na bardzo zimnych wodach i wisi na ska�kach .



T�umaczenie na j�zyk polski:
Mariusz Koz�owski <mariusz(at)linuxfocus.org>

Zawarto��:

 

Rsync: Najlepszy system tworzenia kopii zapasowych.

RSYNC Backup

Notka:

Tworzenie kopii zapasowych to jedno z najtrudniejszych zada� w administracji systemem. Jest ono r�wnie� jednym z najwa�niejszych. Stanowi ono ostatni� desk� ratunku w przypadku uszkodzenia sprz�tu, naruszenia bezpiecze�stwa oraz najwi�kszego z zagro�e�: u�ytkownikcy systemu. Podczas gdy istnieje wiele system�w tworzenia kopii zapasowych kosztuj�cych wiele tysi�cy dolar�w, kt�re archiwizuj� dane na drogie nap�dy ta�mowe u�ywaj�c wadliwego p�atnego oprogramowania jest lepsze rozwi�zanie: Rsync i tania macierz dyskowa.

_________________ _________________ _________________

 

Problem

Mog� przytoczy� d�ug� list� powod�w, dla kt�rych archiwizazja danych to koszmar administratora. Je�li jeste� administratorem, prawdopodobnie nie musz� tego robi�. Niekt�re z powod�w to: drogi sprz�t, kt�ry wysiada cz�ciej ni� pracuje, drogie oprogramowanie, kt�rego zarz�dzanie to koszmar i d�ugie godziny sp�dzone na odzyskiwaniu odpowiednich wersji plik�w. �eby jeszcze pogorszy� spraw� zwykle korporacja przyk�ada bardzo ma�o wagi do kopii zapasowych, a� do tego nieuniknionego dnia, gdy s� one naprawd� potrzebne. Je�li zarchiwizowa�e�/odzyska�e� dane odby�e� tak� rozmow�:

User: "Zgubi�em plik. Chc� aby� odzyska� go natychmiast."
SysAdmin: "Ok, jak si� nazywa�?"
User: "Nie wiem, chyba mia� 'e' w nazwie."
SysAdmin: "Ok, wi�c w jakim by� katalogu?"
User: "Nie wiem, m�g� by� w jednym z tych trzech..."
SysAdmin: "*westchni�cie* Kiedy ostatnio go u�ywa�e�?"
User: "Hmmm... To chyba by� czwartek w lutym czy kwietniu. W czym problem? My�la�em, �e macie kopie zapasowe w takich sytuacjach."

 

Rsync jako alternatywa

Rsync to bardzo dobra implementacja ma�ego pi�knego algorytmu. Jego podstawowa zaleta to mo�liwo�� efektywnego mirrorowania sysetmu plik�w. U�ywaj�c rsync prostym jest stworzenie systemu, kt�ry b�dzie przechowywa� �wie�� kopi� obserwowanego systemu plik�w u�ywaj�c r�nych protoko��w sieciowych jak nfs, smb czy ssh. Drug� wa�n� w�a�ciwo�ci� rsync jest mo�liwo�� archiwizacji starych kopii plik�w, kt�re zosta�y zmodyfikowane lub usuni�te. Istnieje zdecydowanie zbyt wiele w�a�ciwo�ci aby je rozwa�a� w tym artykule. Gor�co polecam lektur� rsync.samba.org.

 

System

Po kr�tce system ten sk�ada si� z taniej maszyny opartej na Linux'ie z mas� tanich dysk�w i ma�ym skryptem pow�oki zwanym rsync. [Fig 1] Gdy archiwizujemy dane m�wimy rsync aby stworzy� katalog o nazwie 'YY-DD-MM' jako miejsce do przechowywania zmian. Nast�pnie rsync sprawdza czy na serwerach kt�re archiwizujemy zasz�y jakie� zmiany. Je�li jaki� plik uleg� zmianie stara wersja jest kopiowana do wczesniej opisanego katalogu, a po�niej nadpisuje plik w g��wnym katalogu z archwizowanymi danymi. [Fig 2]

RSYNC Backup Process

Og�lnie dzienne zmiany stanowi� ma�y procent ca�ego systemu plik�w. Wg moich test�w warto�� ta zwykle wacha si� w przedziale 0.5% do 1%. Dlatego te� z zestawem dysk�w o rozmiarze dwukrotnie wi�kszym od naszych archiwizowanych system�w mo�esz przechowa� oko�o 50-100 dni zmian. Gdy dysk staje si� pe�ny po prostu podepnij nowy zestaw dysk�w, a stare odepnij. W praktyce jest mo�liwe przechowanie ponad sze�ciu miesi�cy zmian na dysku. W�a�ciwie je�li znajdziesz gdzie� miejsce mo�esz skopiowa� archiwizowane dane na inny serwer zanim zmienisz dyski. W ten spos�b mo�esz przechowa� ca�kiem du�� liczb� katalogow zmian na dysku.

How Incremental Files are Handled  

Zalety: odzyskiwanie danych i przywracanie plik�w

Wr��my do powy�szej, wyimaginowanej rozmowy. Wyobra� sobie teraz, �e zamiast niepor�cznego systemu opartego o ta�my masz system oparty o Linux'a z czekaj�cymi na Ciebie danymi z ostatnich sze�ciu miesi�cy. U�ywaj�c Twojej ulubionej kombinacji locate/find/grep mo�esz znale�� wszystkie pliki nale��ce do danego u�ytkownika zawieraj�ce 'e' z dat� czwartek luty b�d� kwiecie� i zrzuci� je do katalogu tego wla�nie u�ytkownika. Problem w znalezieniu, kt�ra z wersji jest wa�ciwa to jeden z moich ulubionych rodzaj�w problemu: to nie m�j problem.

Nst�pnie wyobra� sobie nasz ulubiony scenariusz - ca�kowita utrata danych. Powiedzmy, �e masz wielki serwer nfs/samba, kt�ry tracisz. Je�li zarchiwizowa�e� pliki konfiguracyjne samby mo�esz przywr�ci� serwer jako chwilowo tylko do odczytu w par� minut. Chcia�bym zobaczy� jak to robisz z ta�mami.

 

Por�wnanie Rsync/Dysk twardy i archiwizacja na ta�mie.

  Archiwizacja na ta�mie Rsync
Koszt Bardzo du�y Ma�y
Pe�na archiwizacja Szybko Szybko
Archiwizacja zmian Szybko Szybko
Pe�ne odzyskiwanie systemu Bardzo wolno, prawdopodownie wiele ta�m Szybko - wszystko jest na dysku
Przywracanie plik�w Powoli, mo�e wiele ta�m, cz�sto problem ze znalezieniem w�a�ciwej wersji. Bardzo szybko - wszystko jest na dysku, a na dodatek masz pod r�k� narz�dzia systemu UN*X jak: find, grep i locate
Ca�kowita utrata danych Jednyna mo�liwo�� to pe�ne odzyskiwanie systemu Mo�e zosta� przywr�cony jako serwer plik�w w par� minut
 

Narz�dzia

Istnieje wiele kombinacji konfiguracji systemu archiwizacji. Wszystkie narz�dzia s� open-source, zawarte standardowo w dystrybucjach i bardzo elastyczne. Opiszemy tutaj jedn� z wielu mo�liwo�ci konfiguracji.

 

Skrypty

Podstawowa wersja tego skryptu pochodzi ze strony rsync. Jest to naprawd� jedno polecenie:

rsync --force --ignore-errors --delete --delete-excluded --exclude-from=exclude_file --backup --backup-dir=`date +%Y-%m-%d` -av

Kluczowe opcje to:

Poni�szy skrypt mo�e by� odpalany co noc u�waj�c linux'owego cron. Aby skrypt by� uruchamiany o 23 co noc u�yj polecenia "crontab -e", a potem wpisz to:

0 23 * * * /�cie�ka/do/twojego/skryptu

 

M�j skrypt

Oto m�j skrypt pow�oki wi���cy to wszystko w ca�o��. Znowu istnieje wiele sposob�w na zrealizowanie tego. Jest to tylko jedna z implementacji.

#!/bin/sh

#########################################################
# Script to do incremental rsync backups
# Adapted from script found on the rsync.samba.org
# Brian Hone 3/24/2002
# This script is freely distributed under the GPL
#########################################################

##################################
# Configure These Options
##################################

###################################
# mail address for status updates
#  - This is used to email you a status report
###################################
MAILADDR=your_mail_address_here

###################################
# HOSTNAME
#  - This is also used for reporting
###################################
HOSTNAME=your_hostname_here

###################################
# directory to backup
# - This is the path to the directory you want to archive
###################################
BACKUPDIR=directory_you_want_to_backup

###################################
# excludes file - contains one wildcard pattern per line of files to exclude
#  - This is a rsync exclude file.  See the rsync man page and/or the
#    example_exclude_file
###################################
EXCLUDES=example_exclude_file

###################################
# root directory to for backup stuff
###################################
ARCHIVEROOT=directory_to_backup_to

#########################################
# From here on out, you probably don't  #
#   want to change anything unless you  #
#   know what you're doing.             #
#########################################

# directory which holds our current datastore
CURRENT=main

# directory which we save incremental changes to
INCREMENTDIR=`date +%Y-%m-%d`

# options to pass to rsync
OPTIONS="--force --ignore-errors --delete --delete-excluded \
 --exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -av"

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# make sure our backup tree exists
install -d $ARCHIVEROOT/$CURRENT

# our actual rsyncing function
do_rsync()
{
   rsync $OPTIONS $BACKUPDIR $ARCHIVEROOT/$CURRENT
}

# our post rsync accounting function
do_accounting()
{
   echo "Backup Accounting for Day $INCREMENTDIR on $HOSTNAME:">/tmp/rsync_script_tmpfile
   echo >> /tmp/rsync_script_tmpfile
   echo "################################################">>/tmp/rsync_script_tmpfile
   du -s $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile
   echo "Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile"
   Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile
   echo "rm /tmp/rsync_script_tmpfile"
   rm /tmp/rsync_script_tmpfile
}

# some error handling and/or run our backup and accounting
if [ -f $EXCLUDES ]; then
	if [ -d $BACKUPDIR ]; then
		# now the actual transfer
		do_rsync && do_accounting
	else
		echo "cant find $BACKUPDIR"; exit
	fi
	else
		echo "cant find $EXCLUDES"; exit
fi
 

Zasoby

 

Dyskusja dotycz�ca tego artyku�u

Komentarze do dyskusji:
 Strona talkback 

<--, powr�t na stron� g��wn� tego wydania

Strona prowadzona przez redakcj� LinuxFocus
© Brian Hone, FDL
LinuxFocus.org
t�umaczenie:
en --> -- : Brian Hone <bhone(at)eink.com>
en --> pl: Mariusz Koz�owski <mariusz(at)linuxfocus.org>

2004-03-09, generated by lfparser version 2.46