ocfs2 + drbd

pupseg
На сайте с 14.05.2010
Offline
347
775

Статей полно, мало ли , может кому пригодиться.

в наличии имеем centos-5.8 х86_64 на 2-х kvm-виртуалках.

Задача: запилить крутючий raid1 по сети, для тех кому неймется иметь на своих серверах мега-афигенски-понтовый "кластер" :) :)

Поднималось смеха ради и теста для.

Ниже по тексту делаем это НА ОБОИХ виртуалках.

сажаем на каждую виртуалку хостнеймы:


ocfs1.vps - 172.19.1.1
ocfs2.vps - 172.19.1.2

прописываем каждую каждой в hosts:


[root@ocfs1 mnt]# cat /etc/hosts | grep ocfs
172.23.1.1 ocfs2.vps
172.23.1.2 ocfs1.vps

ставим drbd и сопутствующие пакеты, которые пригодятся для сборки модуля ядра ocfs2:


yum install -y redhat-lsb vte pygtk2 e2fsprogs-devel glib2-devel kernel-headers kernel-devel gcc cpp make pkgconfig ncurses-devel readline-devel

делаем папку для файлопомойки и качаем source'ы ocfs2, разпаковываем source'ы и собираем:


mkdir /root/pomoika
cd /root/pomoika
wget https://oss.oracle.com/projects/ocfs2/dist/files/source/v1.4/ocfs2-1.4.7.tar.gz
tar zxf ocfs2-1.4.7.tar.gz
cd ocfs2-1.4.7
./configure && make && make install

ставим drbd:


yum install kmod-drbd82 drbd82

запиливаем конфиг для ocfs2 и для drbd.

OCFS2:


mkdir /etc/ocfs2
touch /etc/ocfs2/cluster.conf

зафигариваем в /etc/ocfs2/cluster.conf это:


cluster:
node_count = 2
name = ocfs2
node:
ip_port = 7777
ip_address = 172.23.1.1
number = 0
name = ocfs1.vps
cluster = ocfs2
node:
ip_port = 7777
ip_address = 172.23.1.2
number = 1
name = ocfs2.vps
cluster = ocfs2

зафигариваем в /etc/drbd.conf это:


resource res0 {
protocol C;
startup {
wfc-timeout 20;
degr-wfc-timeout 10;
become-primary-on both;
}
net {


allow-two-primaries;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
on ocfs1.vps {
device /dev/drbd0;
disk /dev/hdc;
address 172.23.1.1:7789;
meta-disk internal;
}
on ocfs2.vps {
device /dev/drbd0;
disk /dev/hdc;
address 172.23.1.1:7789;
meta-disk internal;
}
disk {
fencing dont-care;
}
}

на обоих виртуалках даем команды:


modprobe res0
drbdadm create-md res0
drbdadm attach res0
drbdadm connect res0

берем стартовые скрипты из этого пакета. Сам пакет ставить не нужно, из него нужны только стартовые скрипты.

на обоих виртуалках после распаковки стартовых скриптов и засовывания их в init.d:


/etc/init.d/o2cb enable
/etc/init.d/drbd restart
mkfs.ocfs2 -b 4K -C 32K -N 4 -L crsfile /dev/drbd0

засовываем наш raid1 сетевой в /etc/fstab:


[root@ocfs1 ~]# cat /etc/fstab | grep drbd
/dev/drbd0 /mnt ocfs2 defaults 0 0
[root@ocfs1 ~]#

и запускаем ocfs2:


/etc/init.d/ocfs2 start

drbd кинется пересобираться. Придется ждать пока пересоберется. Возможно после пересборки чтото нужно будет рестартнуть. Написано для тех кто понимает, что делает. Порядок действий не точен, чтото, возможно раньше, чтото - возможно позже, то есть пробующий ЭТО ( :) ) должен знать такие команды как cat /var/log/messages и dmesg.

но в итоге вы получите папку /mnt - полностью синхронную на обоих серверах на разделе в кластерной файловой системе от Oracle. После можно загибать пальцы партнерам - что у нас мегакластер :) ну а дальше уже фантизия безгранична, хоть контент оттуда фигарьте, хоть файлы храните.

PS: Не пишу документацию, извините за орфографические ошибки. Для дундуков - которые в тупую голову копипастят конфиги, не понимая что они значат - намеренно допущена ошибка. Нанимайте за деньги администратора в этой ветке:) . Так же утаен момент про tune2fs и возможные проблемы с features. некоторые из features нужно на обоих виртуалках отключить. Если у вас два выделенных сервера - то этой проблемы не должно возникнуть. Данное графоманство не претендует на "статью", просто сделал так - и заработало сразу.

PPS: спрашивайте, будет время - на вопросы отвечу.

PPPS: почему соберал из сорсов модуль ядра, не смотря на то, что он есть в rpm - в rpm - версия, скомпилированная для старенького кернела.

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
S
На сайте с 21.05.2012
Offline
11
#1
PS: Не пишу документацию, извините за орфографические ошибки. Для дундуков - которые в тупую голову копипастят конфиги, не понимая что они значат - намеренно допущена ошибка. Нанимайте за деньги администратора в этой ветке .

Блин так бы не читал, но стало интересно где ошибка)

Администрирование и мониторинг серверов (http://servcare.com)
M
На сайте с 16.09.2009
Offline
278
#2
pupseg:
Для дундуков - которые в тупую голову копипастят конфиги, не понимая что они значат - намеренно допущена ошибка.

Там как минимум две их уже.

Servcare:
Блин так бы не читал, но стало интересно где ошибка)

Да хоть в самых первых абзацах...

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
pupseg
На сайте с 14.05.2010
Offline
347
#3
myhand:
Там как минимум две их уже.

Да хоть в самых первых абзацах...

оо!! фак, внатуре, и в первом абзаце тупанул. ну ниче. кто понимает тот увидит :)

pupseg
На сайте с 14.05.2010
Offline
347
#5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий