Blog (12)
Komentarze (34)
Recenzje (0)
@Marek607Debian jessie – Podstawowa konfiguracja drbd

Debian jessie – Podstawowa konfiguracja drbd

15.02.2017 19:27

DRBD czyli Distributed Replicated Block Device jest rozwiązaniem programowym umożliwiającym replikację urządzeń blokowych takich jak dyski twarde, partycje, woluminy logiczne z wykorzystaniem sieci. Konfiguracja oparta jest o system Debian jessie, utworzone urządzenie działa w trybie active-passive

Operacje wykonywane na każdym z serwerów

1) Tworzymy partycje -w moim przypadku to /dev/sda3 o rozmiarze 50 GB i typie Linux (kod 83)

/dev/sda3       42008576 147028965 105020390 50.1G 83 Linux

2) Dodajemy w /etc/hosts wpisy z adresami IP i nazwą serwerów:

37.187.103.5            r2.marek.pro     kimsufi2
176.31.127.129            r1.marek.pro     kimsufi

3)Instalujemy drbd:

apt‑get install drbd drbd8-utils

4)Dodajemy moduł drbd i sprawdzamy czy został poprawnie zainicjowany:

# modprobe drbd
r1:~# lsmod | grep drbd
drbd                  318526  3
lru_cache              13032  1 drbd
libcrc32c              12426  1 drbd

5)Wykonujemy kopie głownej konfiguracji i dokonujemy własnej:

cp /etc/drbd.conf /etc/drbd.conf_orig
cat /dev/null > /etc/drbd.conf
vi /etc/drbd.conf

Przykładowy plik konfiguracyjny:


global { usage-count no; }
common { syncer { rate 100M; } }
resource r0 {
        protocol C;
        startup {
                wfc-timeout  15;
                degr-wfc-timeout 60;
        }
                disk {
        on-io-error             detach;
        no-disk-flushes ;
        no-disk-barrier;
        c-plan-ahead 0;
        c-fill-target 24M;
        c-min-rate 80M;
        c-max-rate 720M;
        }
        net {
        # max-epoch-size          20000;
        max-buffers             36k;
        sndbuf-size            1024k ;
        rcvbuf-size            2048k;
        }
        on r1.uphost.pro {
                device /dev/drbd0;
                disk /dev/sda3;
                address 176.31.127.129:7788;
                meta-disk internal;
        }
        on r2.uphost.pro {
                device /dev/drbd0;
                disk /dev/sda3;
                address 37.187.103.5:7788;
                meta-disk internal;
        }
}

6) Tworzymy macierz danych:

r1:~# drbdadm create-md r0
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.

7)Uruchamiamy DRBD

r1:~# /etc/init.d/drbd start
Starting DRBD resources:[ d(r0) s(r0) n(r0) ]....

Operacje do wykonania na głównym (primary) serwerze

Ustawiamy serwer jako primary usuwając wszystki dane:

drbdadm -- --overwrite-data-of-peer primary all

Sprawdzamy na drugim serwerze stan synchronizacji:

r2:~# cat /proc/drbd
version: 8.3.7 (api:88/proto:86-91)
srcversion: EE47D8BF18AC166BE219757
 0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r----
    ns:0 nr:15790400 dw:15790144 dr:0 al:0 bm:963 lo:9 pe:29622 ua:8 ap:0 ep:1 wo:b oos:15664096
        [=========>..........] sync'ed: 50.3% (15296/30716)M
        finish: 0:02:44 speed: 95,212 (85,352) K/sec

Po zakończeniu synchronizacji wynik będzie wyglądał tak:

# cat /proc/drbd
version: 8.3.7 (api:88/proto:86-91)
srcversion: EE47D8BF18AC166BE219757
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----
    ns:0 nr:31454240 dw:31454240 dr:0 al:0 bm:1920 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

Wracamy więc do pierwszego serwera, sprawdzamy czy synchronizacja została zrobiona i tworzymy system plików, oraz montujemy go na serwerze -w moim przypadku pod /home:

mkfs.ext3 /dev/drbd0
mount /dev/drbd0 /home

Sprawdzamy czy jest poprawnie zamontowany:

root@r1:~# mount | grep drbd
/dev/drbd0 on /home type ext3 (rw,relatime,data=ordered)
root@r1:~# df -h /dev/drbd0
Filesystem      Size  Used Avail Use% Mounted on
/dev/drbd0       50G  1.1G   46G   3% /home
root@r1:~#

Gotowe!

Zmiana serwera głównego

Aby zmienić serwer główny należy odmontować zasób na serwerze głównym i ustawić serwer jako secondary


r1:~# ls -l /home/
total 1049620
drwx------ 2 root root      16384 Jan 12 02:12 lost+found
-rw-r--r-- 1 root root          0 Jan 12 08:49 s
-rw-r--r-- 1 root root 1073741824 Jan 12 10:23 test
root@r1:~# umount /home
root@r1:~# drbdadm secondary r0

następnie logujemy się na serwer zapasowy, ustawiamy go jako główny i motujemy zasób:

root@r2:~# drbdadm primary r0
root@r2:~# mount /dev/drbd0 /home

Sprawdzamy czy zawartośc plików sie zgadza:

root@r2:~# ls -l /home/
total 1049620
drwx------ 2 root root      16384 Jan 12 02:12 lost+found
-rw-r--r-- 1 root root          0 Jan 12 08:49 s
-rw-r--r-- 1 root root 1073741824 Jan 12 10:23 test
root@r2:~#

Zawartość się oczywiscie zgadza – jako potwierdzenie że r2 jest serwerem primary sprawdzamy /proc/drbd


root@r2:~# cat /proc/drbd 
version: 8.4.3 (api:1/proto:86-101)
srcversion: 1A9F77B1CA5FF92235C2213 
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:4 nr:54914052 dw:54914056 dr:1529 al:1 bm:3247 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d oos:0

Zapis „Primary/Secondary” potwierdza, że serwer r2 jest teraz jako primary.

Wybrane dla Ciebie
Komentarze (1)