В пн, 16/06/2014 в 16:40 +0300, Vladislav V. Prodan пишет:
> 16 июня 2014 г., 16:36 пользователь Nike <[email protected]> написал:
> > Может вам лучше глянуть в сторону кластера?
> >
> > https://wiki.freebsd.org/HAST
> >
>
> Я полтора года назад пытался юзать HAST и ZFS.
> Но скорость записи была очень печальная.
> А при восстановлении данных при появлении в онлайне второго
> устройства, вся система колом становилась :(
> Если у вас есть свежие данные - поделитесь.
>
>
пробовал кластер (( - не понравилось
расскажу как делал
вопервых добавил
echo "device carp" >> KERNEL
config KERNEL
make depend all install && reboot
на каждой ноде кластера настроил hast.conf
на экспорт 3-х блочных устройств
on data0{
<------>listen 192.168.250.30
}
on data1{
<------>listen 192.168.250.31
}
resource ada1 {
local /dev/ada1
on data0{
<------>remote 192.168.250.31
}
on data1{
<------>remote 192.168.250.30
}
}
resource ada2 {
local /dev/ada2
on data0{
<------>remote 192.168.250.31
}
on data1{
<------>remote 192.168.250.30
}
}
resource ada3 {
local /dev/ada3
on data0{
<------>remote 192.168.250.31
}
on data1{
<------>remote 192.168.250.30
}
}
на мастере
hastctl create ada[1-3]
hastctl role primary ada[1-3]
zpool create data raidz hast/ada1 hast/ada2 hast/ada3
на втором
hastctl create ada[1-3]
hastctl role secondary ada[1-3]
вроде все прошло гладко - синхронизировались быстро
потом настроил carp на обоих машинах
ifconfig age0 vhid 1 pass ++++++ 192.168.253.9/30 alias
ifconfig age0 vhid 1 advskew 100 pass +++++++ 192.168.253.9/30
и соответственно переключение в /etc/devd.conf на случай падения
notify 0 {
<----->match "system"<><------>"CARP";
<----->match "subsystem"<----->"[0-9]+@[0-9a-z]+";
<----->match "type"<--><------>"(MASTER|BACKUP)";
<----->action "/root/bin/carp.sh $type";
};
и разумеется в /root/bin/carp.sh
если MASTER
hastctl role primary ada[1-3]
zpool import data
если BACKUP
zpool export data
hastctl role secondary ada[1-3]
гладко писано в бумаге
в случае пропадания линка (вытащил езер) - мастер ничего не делает -
саrр переходит в состаяние INIT и не считает себя обязанным
предупредить devd ((( или я не знаю какой match type в devd.conf писать
- в доке об этом не слова
вторая нода спокойно стала мастером.
вроде все норм.
но вот втыкаю езер - и пока карп дуплился - у меня 2 мастера и
соответстенно split brain
ны тут решение есть нормальное - в devd.conf добавил еще секцию
реакция на исчезновение линка
notify 100 {
<----->match "system"<><------>"IFNET";
<----->match "subsystem"<----->"age0";
<----->match "type"<--><------>"LINK_DOWN";
<----->action "/root/bin/carp.sh INIT";
};
а в carp.sh дописал секцию перевода
zpool export data
hastctl role init ada[1-3]
возможность попасть в ситуацию с split-brain исключена
а вот теперь самое плохое
zpool export -f data не всегда срабатывает - иногда зависает
причем в логе тишина
смена роли на одном из винтов тоже регулярно зависает
причем на смене primary -> secondary
вобщем вот такая не очень саксесфул стори