Назад | Перейти на главную страницу

Pygrub с DRBD на Xen 3.2

у нас есть двухузловой кластер с использованием DRBD 8.2 на CentOS 5.2 64bit. В кластере работают несколько виртуальных машин поверх Xen 3.2.1, вот конфигурация виртуальной машины Ubuntu Jaunty:

name = 'dev'
bootloader = '/usr/bin/pygrub'
memory = '512'
vif = [ 'ip=192.168.1.217,mac=00:16:3E:CD:60:80' ]
disk = [ 'phy:/dev/drbd24,xvda1,w',
              'phy:/dev/drbd25,xvda2,w' ]

Как видите, диски указаны как "phy:", и поэтому pygrub ничего не знает о базовом устройстве drbd ...
Итак, моя проблема в том, что, хотя виртуальная машина загружается нормально, она не обрабатывает состояние устройства drbd. В результате, когда по какой-то причине устройство переходит во вторичное / вторичное состояние, виртуальная машина не загружается, и мне приходится вручную указывать, какой узел является первичным.

Я читал, что начиная с Xen 3.3 pygrub понимает спецификацию «drbd:», и я думаю, что это решит мою проблему, но я не могу обновить Xen на данный момент ... Есть ли обходной путь? Например, могу ли я использовать версию pygrub 3.3?

Спасибо!

почему бы вам не убедиться, что ваш drbd является основным перед запуском DomU?

Полагаю, вы используете Heartbeat в качестве программного обеспечения для кластера?

Таким образом, в /etc/ha.d/resource.d/ должен быть ресурс типа "drbddisk".

Используйте этот ресурс, прежде чем ваш xen-ресурс и стартап заработают нормально.

Вот что я сделал с SLES 10 до SP2 (используя старый drbd 0.7). С переключением на SLES 10 SP3 я перешел на свою собственную сборку drbd 8.3.5 - я думаю, что она содержала интеграцию с xen, так что с этого момента можно было использовать drbd-disk-type.

Кстати, вам не нужно использовать pygrub. Я смоделировал способ, которым SuSE выполняет общую ссылку в / boot, создав символическую ссылку на новейший initrd / vmlinz с общим именем в моих CentOS-DomU. Это можно использовать в Dom0-Config традиционным способом.

С уважением

Нильс

В качестве обходного пути я использую директиву drbd become-primary-on.