Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение под *NIX системы > DRBD&Heartbeat v2: не поднимается кастер


Автор: ADm 6.9.2007, 09:44
Привет All!

   Есть кластер DRDB+Heartbeat v2 из двух нод, heartbeat на обоих нодах запускается, сервисы drbd (сконфигурированные как master-slave) переходят в состояние started (те slave). cat /proc/drbd показывает что обе drbd-ноды имеют статус secondary (secondary/secondary)
но! более ничего не происходит, те ни одна нода не становится мастером автоматом.

в документации есть пример, когда для сервиса по умолчанию прописан параметр target_role = stop, а потом если ввести команду crm_resource -r <resource_name> -v '#default' -p target_role то одна из нод становится мастером - так все работает.
но если в конфиге прописать target_role="#default" и просто запустить кластер - происходит вышеописанное.

Подскажите пожалуйста, знающие люди, в какую сторону копать, чтобы кластер стартовал нормально!!!

PS: Debain 4.0r1, drbd ver 0.7, heartbeat ver 2.0.7 (но на последних версиях скачанных с сайтов разработчиков картина такая же)

PS: конфиги готов опубликовать по требованию.)

Автор: bilbobagginz 6.9.2007, 12:03
конфиги кидайте.

лично не знаком с данным пакетом, но обычно в таких случаях нужно следовать строго инструкции по установке.
а устанавливать поэтапно. насколько я понял тут есть 3 механизма:
0. собстветнно сама система, которую вы хотите сделать highly available. она должна быть рабочей.
1. механизм "проверки пульса" ( т.е. сам heartbeat )
2. механизм решения кто же сейчас мастер ( предполагаю на основе 1. )

т.е. налицо зависимость 2 от 1

вы можете данные этапы протестировать по отдельности ?



Автор: ADm 6.9.2007, 12:42
Цитата(bilbobagginz @ 6.9.2007,  12:03)
конфиги кидайте.

конфиги см внизу сообщения

Цитата(bilbobagginz @ 6.9.2007,  12:03)

лично не знаком с данным пакетом, но обычно в таких случаях нужно следовать строго инструкции по установке.
а устанавливать поэтапно. насколько я понял тут есть 3 механизма:
0. собстветнно сама система, которую вы хотите сделать highly available. она должна быть рабочей.
1. механизм "проверки пульса" ( т.е. сам heartbeat )
2. механизм решения кто же сейчас мастер ( предполагаю на основе 1. )

т.е. налицо зависимость 2 от 1

вы можете данные этапы протестировать по отдельности ?


в общем да...
0 - drbd нормально монтируется если его запускать обычным сервисом, оба сервера ессно рабочие и в сети
1 - по heartbeat'у ноды друг-друга видят, crm_mon показывает статус обеих нод как started
2 - но вот например, странность - если запустить руками кластер (см предыдущее сообщение), одна из нод корректно становится мастером те они между собой определяют кто из них кто... те механизм решения, кто будет мастером работает... автоматом же нет...

--Конфиги
---ha.cf
debugfile /var/log/ha.debug
logfile /var/log/ha.log
logfacility local0

bcast eth0
node www1 www2

debug 5

crm on

---cib.xml
Код

<cib admin_epoch="0" have_quorum="true" generated="true" num_peers="2" cib_feature_revision="1.3" ccm_transition="4" dc_uui
   <configuration>
     <crm_config>
       <cluster_property_set id="default-options">
         <attributes/>
       </cluster_property_set>
     </crm_config>
     <nodes>
     </nodes>
     <resources>
       <master_slave id="ms-drbd0">
         <meta_attributes id="ma-ms-drbd0">
           <attributes>
             <nvpair id="ma-ms-drbd0-1" name="clone_max" value="2"/>
             <nvpair id="ma-ms-drbd0-2" name="clone_node_max" value="1"/>
             <nvpair id="ma-ms-drbd0-3" name="master_max" value="1"/>
             <nvpair id="ma-ms-drbd0-4" name="master_node_max" value="1"/>
             <nvpair id="ma-ms-drbd0-5" name="notify" value="yes"/>
             <nvpair id="ma-ms-drbd0-6" name="globally_unique" value="false"/>
             <nvpair id="ma-ms-drbd0-7" name="target_role" value="#default"/>
           </attributes>
         </meta_attributes>
         <primitive id="drbd0" class="ocf" provider="heartbeat" type="drbd">
           <instance_attributes id="ia-drbd0">
             <attributes>
               <nvpair id="ia-drbd0-1" name="drbd_resource" value="mysql"/>
             </attributes>
           </instance_attributes>
         </primitive>
       </master_slave>
       <primitive class="ocf" provider="heartbeat" type="Filesystem" id="fs0">
         <meta_attributes id="ma-fs0">
           <attributes>
             <nvpair name="target_role" id="ma-fs0-1" value="#default"/>
           </attributes>
         </meta_attributes>
         <instance_attributes id="ia-fs0">
           <attributes>
             <nvpair id="ia-fs0-1" name="fstype" value="reiserfs"/>
             <nvpair id="ia-fs0-2" name="directory" value="/mnt/cluster"/>
             <nvpair id="ia-fs0-3" name="device" value="/dev/drbd0"/>
           </attributes>
         </instance_attributes>
       </primitive>
     </resources>
     <constraints>
       <rsc_order id="drbd0_before_fs0" from="fs0" action="start" to="ms-drbd0" to_action="promote"/>
       <rsc_colocation id="fs0_on_drbd0" to="ms-drbd0" to_role="master" from="fs0" score="infinity"/>
     </constraints>
   </configuration>
 </cib>


Автор: bilbobagginz 6.9.2007, 18:25
а что будет если между этими тэгами вписать информацию о нодах ?
Код

   <nodes>
     </nodes>


Добавлено через 1 минуту и 8 секунд
а что будет если между этими тэгами вписать информацию о нодах ?
Код

   <nodes>
     </nodes>


и др. вопрос: неужели ничего путного не пишется в логах ?

Автор: ADm 7.9.2007, 07:30
информация о нодах подставляется автоматом (ноды перечислены в ha.cf (www1 и www2) поэтому тэг можно не заполнять...
но даже с заполненым тэгом результат тот же...

в логах пишется конечно, там много все... не знаю на что смотреть пока, но разбираюсь конечно. по крайней мере, явных записей почему нода не становится мастером нет...

PS: вот содержимое тэга <nodes> (содержимое тэга nodes генерируется автоматом, в howto, кстати, тэг nodes оставляют незаполененым)
Код

    <nodes>
       <node uname="www1" type="normal" id="dbacdcca-85c2-4a55-bebd-489e70d0613e">
         <instance_attributes id="master-dbacdcca-85c2-4a55-bebd-489e70d0613e">
           <attributes/>
         </instance_attributes>
       </node>
       <node uname="www2" type="normal" id="36e93cd7-2b90-4674-b7ff-419815d061a6">
         <instance_attributes id="master-36e93cd7-2b90-4674-b7ff-419815d061a6">
           <attributes>
             <nvpair id="master-drbd0:1-36e93cd7-2b90-4674-b7ff-419815d061a6" name="master-drbd0:1" value="10"/>
           </attributes>
         </instance_attributes>
       </node>
     </nodes>


PPS: вот кстати howto
 http://wiki.linux-ha.org/DRBD/HowTov2

PPPS: для heartbeat v1 все работает, но, в силу ограничений v1, хочется кластер именно на v2


Автор: bilbobagginz 7.9.2007, 13:04
извини нет времени вникать, придется тебе раскопать решение, и напечатать его тут.
а потом получить в репу. ( в смыле в репутацию )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)