= bubbalog =Дневникът на моето стадо

Backup/Restore с LiveCD по мрежата през NFS

Friday 05.02.2010 00:03 EET · Публикувано от в = FreeBSD =

Бекъпването с dump се оказа много полезно, вече няколко пъти ме спасява от много лоши положения. Всичко това е много добре, но в крайна сметка се получи един много неприятен момент – не винаги може да се отдели диск, на който да се направят и съхраняват бекъпите. Решението? Целия този процес който вече описах в тази статия може да бъде извършен по мрежата с помоща на NFS server/client. Да си призная, NFS въобще много повече започна да ми харесва напоследък от SAMBA, но това е друга тема на разговор. За тези, които не са наясно как точно се използва NFS могат да погледнат http://www.freebsd.org/doc/handbook/network-nfs.html. Това описание е предвидено при положение, че използвате 2 FreeBSD машини, но в Интернет могат да се намерият голям брой NFS сървър/клиенти и за Windows, така че метода теоретично е приложим и при различни операционни системи, въпреки, че не съм го тествал на практика лично.

Работата по процеса започва с подготвянето на NFS сървъра и клиента. Тъй като той е част от FreeBSD, за него не се изискват някакви допълниелни инсталации, а само няколко настойки. Тъй като в посочените 2 линка доста подробно е описано всичко, тука ще напиша само синтезирано самия процес на бекъп и ресторе на системата.

NFS Server

1. Създайте директория, в която ще съхранявате бекъпите

# mkdir /path/to/dir
# chmod 777 /path/to/dir

2. Редактирайте /etc/exports и добавете следния ред

/path/to/dir -alldirs -network 192.168.1.0 -mask 255.255.255.0

където мрежата и маската трябва да замените с тези на вашата мрежа

3. Редактирайте /etc/rc.conf и добавете следните редове

rpcbind_enable=”YES”
nfs_server_enable=”YES”
mountd_flags=”-r”

4. Стартирайте NFS. На ръка, без да рестартирате системата това може да стане с изпълняването на следните 3 комади

# rpcbind
# nfsd -u -t -n 4
# mountd -r

NFS Client

1. Създайте директория в която да маунтвате споделената от NFS сървъра дректория

# mkdir /path/to/dir
# chmod 777 /path/to/dir

2. Редактирайте /etc/rc.conf и добавете следния ред

nfs_client_enable=”YES”

3. Стартирайте NFS. На ръка, без да рестартирате системата това може да стане с изпълняването на следната команда

# nfsiod -n 4

С това подготовката приключва следва съюинската работа

Backup

Първата задача е да монтирате споделената папка пт сървъра

# mount server:/path/to/dir /path/to/dir

След което правите бекъпите – в този вариант компресирани. Пести място и време за трафик по мрежата, което при този вариант на бекъп/ресторе е от значение

# dump -0Lauf – /dev/ad0s1a | bzip2 > /path/to/dir/ad0s1a.dump.bz2
# dump -0Lauf – /dev/ad0s1d | bzip2 > /path/to/dir/ad0s1d.dump.bz2
# dump -0Lauf – /dev/ad0s1e | bzip2 > /path/to/dir/ad0s1e.dump.bz2
# dump -0Lauf – /dev/ad0s1f | bzip2 > /path/to/dir/ad0s1f.dump.bz2

Поворете операцията за всеки дивайс който искате да запазите.

Restore

Така нещата също са малко пипкавки, както се досещате, всичко става с помоща а LiveCD. Тъй като нещата се припокиват с прената статия направо копирам стъпките.

1. Заредете системата от LiveCD диска и когато стигнете до основното меню отидете на Configure->Fdisk. От там направете дял за FreeBSD и го направете  активен ако е нужно с натискане на S. Натиснете Q и излезте от това меню.

2. Изберете disklabel опцията и създайте необходимите слайсове. Sysinstall създава тези слайсове и ги маунтва в /mnt директорията. Например ако използвате „Auto“ опцията Sysinstall ще създаде и маунтне следните слайсове последния начин:

/     = /mnt
/tmp     = /mnt/tmp
/var    = /mnt/var
/usr    = /mnt/usr

Следва записване на всичко с натискане на W (игнорирайте диалога коойто ще излезе) и излизане от менюто с Q.  Тук е мястото да спомена, че понякога се получава един бъг – слайсовете не могат да се запишат. Незнам от какво е, но ми се струва, че просто системата не може да се сработи с диска и започва да пищи, че няма място да създаде всичко това. Работата се оправя като рестартирате, заредите наново от LiveCD-то и пропуснете стъпката с Fdisk и нараво започнете с правенето на слайсовете (върху партишъна създаден при първото зареждане). Сега вече не би трябвало да имате проблеми при записването с W. Излезте от менюто и да пристъпим към следващата стъпка.

3. Настройте мрежата. В менюто за настройка на интерфейса въведете вашите данни, вдигнете интерфейса, а след това сложете отметка на NFS Client

4. Излезте на главното меню и изберете fixit -> cd/dvd. Ще ви се отвори специален (FixIt#) шел и е време да започнем същинската работа. Първата работа е да създадем по-голям темп дял който системата да може да използва. Направете това чрез линкване към /mnt/tmp дяла който създадохме преди малко

# mv tmp/ tmp.old
# ln -sf /mnt/tmp tmp

Включваме NFS клиента по начина описан по-горе. Както се досещате, няма друг начн това да се случи, тъй като ако рестартирате губим всичко до тук…

# nfsiod -n 4

Създава се нова директория в която се маунтва NFS споделената папка с бекъпите от сървъра

# mkdir /mnt/path/to/dir
# chmod 777 /mnt/path/to/dir

монтираме съответната отдалечена директория

# mount server:/path/to/dir /mnt/path/to/dir

проверяваме дали всичко е там

#ls /mnt/path/to/dir

и извършваме същинския ресторинг на системата

# cd /mnt
# bzcat /mnt/path/to/dir/ad0s1a.dump.bz2 | restore -rf –
# cd /mnt/var
# bzcat /mnt/path/to/dir/ad0s1d.dump.bz2 | restore -rf –
# cd /mnt/tmp
# bzcat /mnt/path/to/dir/ad0s1e.dump.bz2 | restore -rf –
# cd /mnt/usr
# bzcat /mnt/path/to/dir/ad0s1f.dump.bz2 | restore -rf –

След края на процеса сменяме руута и правим /tmp дректорията с права за запис от всеки

# chroot /mnt
# chmod 1777 /tmp

и рестартираме системата, з да видим дали всичко ще работи както трябва.

Ами това е. Практиката доказа, че начина е доста ефективен и доста по-уден от разглобяването на компютри, прекачване на дискове, местене… Колкото повече машини стават в нас, толкова повече започва да ме мързи и да изхитрявам :)

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.