18 июн. 2013 г.

Создание DRDB устройства

Система будет развернута на debian wheezy, на данный момент стабильный.
Версии пакетов: ocfs2-tools:1.6.4, drbd8-utils:8.3.13
Устанавливаем пакеты:
apt-get install ocfs2-tools drbd8-utils


Создание DRBD устройства

В обоих нодах требуется чтобы была одинаковая разметка диска. Для создания сетевого хранилища был выбран раздел с размером 200 гб. Можно разбить диск на 2 части - один для метаданных и  другой блочное устройство. Но мы обойдемся без этого (будем хранить метаданные и данные на одном диске).


oxygen1# gdisk -l /dev/md0
GPT fdisk (gdisk) version 0.8.5

Disk /dev/md0: 1464784000 sectors, 698.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 3BE3DE93-D88B-4BFA-A324-36D66AB2ED8E
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1464783966
Partitions will be aligned on 2048-sector boundaries
Total free space is 1045353533 sectors (498.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       419432447   200.0 GiB   8300  Linux filesystem


В файле /etc/drbd.conf удалите первую строчку. Далее Создаем конфиг для drbd:

#vim /etc/drbd.d/r0.res
global {
        usage-count yes;
}   

common {

        syncer {
                rate 40m;
                al-extents 320;
        }
}

resource r0{

protocol c;

        startup{
                wfc-timeout             20;
                degr-wfc-timeout        10;
                become-primary-on       both;
        }
        disk {
                on-io-error     detach;
        }
        net{
                cram-hmac-alg   sha1;
                shared-secret   "secret";
                allow-two-primaries;
                after-sb-0pri   discard-zero-changes;
                after-sb-1pri   violently-as0p;
                after-sb-2pri   violently-as0p;
                max-buffers     2048;
        }
        on oxygen {
                device          /dev/drbd1;
                disk            /dev/md0p1;
                address         10.3.1.4:7789;
                meta-disk       internal;
        }
        on oxygen2 {
                device          /dev/drbd1;
                disk            /dev/sdb1;
                address         10.3.1.5:7789;
                meta-disk       internal;
        }
}


Желательно почистить заголовки дисков:
dd if=/dev/zero of=/dev/md0p1 bs=1M count=20
Прописываем хосты:
vim /etc/hosts
10.3.1.4 oxygen
10.3.1.5 oxygen2
Проверяем включен ли модуль ядра drbd. если нет то подключаем.
lsmod | grep drbd
modprobe drbd
Первая инициализация:
drbd create-md r0 # r0 название нашего ресурса
drbd up r0
Смортим статус нашего диска:
watch cat /proc/drbd
Должен показать что то типа:
0: cs:WFConnection ro:Secondary/Unknown
Это значит что второй диск еще не подключен. Идем на вторую ноду и повторяем все действия. Настройки drbd должны быть одинаковыми, так что лучше закинуть r0.res через scp. Только на основном ноде выолняем:
drbdadm -- --overwrite-data-of-peer primary netdisk
После выполнения этой команды начинается полная синхронизация дисков. теперь на обоих нодах выполняем:
drbdadm primary r0
watch "cat /proc/drbd"
1: cs:SyncSource ro:Primary/Primary ds:UpToDate/Inconsistent C r-----
ns:71352888 nr:0 dw:0 dr:76727332 al:0 bm:4676 lo:0 pe:281 ua:122 ap:0 ep:1 wo:f oos:133021916
[======>.............] synced: 35.0% (129904/199564)Mfinish: 0:59:06 speed: 37,484 (38,064) K/sec
При возникновении проблем с синхронизацией: на основной ноде:
drbdadm connect r0 
на второй ноде:
drbdadm -- --discard-my-data connect all 

Комментариев нет:

Отправить комментарий