URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 86628
[ Назад ]

Исходное сообщение
"Xen+Heartbeat +Ocfs2"

Отправлено chapayev , 17-Сен-09 11:36 
Помогите пожалуйсто!
Задача:
       Есть две ноды debian lenny,с ядром хен, у них есть обшее файловое хранилише (DRBD c OCFS2),
       в этом хранилище живут 4-е виртуальные машины (srv,srv1,srv2,srv3).
       В нормальном режиме на каждой ноде должно крутиться по 2-е виртуалки ,
       если одна нода падает ,то вторая должна подхватить упавшие виртуалки, и когда нода поднимится ,
       отдать их обратно.

Вопрос:Я уже настроил все из этого, кроме одного.При падении ноды виртуалки поднимаются на второй,
       но не отдаются обратно,когда она поднимается то на ней запускается вторая копия этих виртуалок.
       Как победить это?(нужно чтобы в любой момент времени была запушена лишь одна копия виртуалки)

конфиг:Вот мой конфиг для /etc/ha.d/haresources
       debianxen1 mountvirtual.sh start.sh
       debianxen2 mountvirtual.sh start.sh

       скрипт mountvirtual.sh служит для монтирования общей фаиловой системы
            drbdadm primary vlad
            mount.ocfs2 /dev/drbd5 /home/virtual
       скрипт start.sh служит для старта виртуалок упавшей ноды
         на debianxen1
            xm create srv2.cfg
            xm create srv3.cfg
         на debianxen2
            xm create srv.cfg
            xm create srv1.cfg            


Содержание

Сообщения в этом обсуждении
"Xen+Heartbeat +Ocfs2"
Отправлено zd3n , 17-Сен-09 12:09 
А каким образом поднимаются вир.машины на той ноде, которая поднимается после после падения?
По xm create?
Думаю надо поднимать на ней виртуалки методом xm migrate --live

Т.е. про запуске ноды должна осуществляться проверка, какие вирмашины запущены на другой ноде. Если запущены все 4, то 2 из них перетаскивать xm migrate --live <domain> <node>.
Если какие то вирмашины не запущены(а вдруг), то поднимать методом xm create <вирмашина>


"Xen+Heartbeat +Ocfs2"
Отправлено valentine31 , 17-Сен-09 14:14 
heartbeat должен работать во втором режиме т.е. в файле ha.cf должно:

crm on

Тогда heartbeat будет управлять ресурсами отдельно, исходя из какой то политики, к примеру балансировка. В случае краха одной из машин она может быть запущена на второй ноде. А в первом варианте настройки, которая как я понимаю у вас - он обеспечивает только запуск всех приложений на второй ноде в случае краха первой. для справок http://linux-ha.org


"Xen+Heartbeat +Ocfs2"
Отправлено chapayev , 17-Сен-09 16:26 
>heartbeat должен работать во втором режиме т.е. в файле ha.cf должно:
>
>crm on
>
>Тогда heartbeat будет управлять ресурсами отдельно, исходя из какой то политики, к
>примеру балансировка. В случае краха одной из машин она может быть
>запущена на второй ноде. А в первом варианте настройки, которая как
>я понимаю у вас - он обеспечивает только запуск всех приложений
>на второй ноде в случае краха первой. для справок http://linux-ha.org

Спасибо большое за советы , но не могли бы вы помочь с конфигом cluster resources , а
то сколько не читаю никак не могу понять как же это применить к моей задачке


"Xen+Heartbeat +Ocfs2"
Отправлено valentine31 , 18-Сен-09 11:12 
>[оверквотинг удален]
>>Тогда heartbeat будет управлять ресурсами отдельно, исходя из какой то политики, к
>>примеру балансировка. В случае краха одной из машин она может быть
>>запущена на второй ноде. А в первом варианте настройки, которая как
>>я понимаю у вас - он обеспечивает только запуск всех приложений
>>на второй ноде в случае краха первой. для справок http://linux-ha.org
>
>Спасибо большое за советы , но не могли бы вы помочь с
>конфигом cluster resources , а
> то сколько не читаю никак не могу понять как же это
>применить к моей задачке

вот пример описания ресурса как у меня:
     <resources>
       <primitive class="ocf" type="Xen" provider="heartbeat" id="r001">
         <instance_attributes id="r001_instance_attrs">
           <attributes>
             <nvpair id="r001_xmfile" name="xmfile" value="/etc/xen/r001"/>
             <nvpair name="target_role" id="r001-target_role" value="started"/>
             <nvpair id="r001-allow_migrate" name="allow_migrate" value="1"/>
             <nvpair name="resource_stickiness" id="r001-resource_stickiness" value="0"/>
           </attributes>
         </instance_attributes>
         <operations>
           <op id="r001_stop" name="stop" timeout="180s"/>
           <op id="r001_monitor" name="monitor" interval="10s" timeout="60s" prereq="nothing" start_delay="20"/>
           <op id="r001_start" name="start" timeout="60s" start_delay="0"/>
         </operations>
       </primitive>
     </resources>


"Xen+Heartbeat +Ocfs2"
Отправлено chapayev , 21-Сен-09 13:03 
>[оверквотинг удален]
>             <nvpair name="resource_stickiness" id="r001-resource_stickiness" value="0"/>
>           </attributes>
>         </instance_attributes>
>         <operations>
>           <op id="r001_stop" name="stop" timeout="180s"/>
>           <op id="r001_monitor" name="monitor" interval="10s" timeout="60s" prereq="nothing" start_delay="20"/>
>           <op id="r001_start" name="start" timeout="60s" start_delay="0"/>
>         </operations>
>       </primitive>
>     </resources>

Пробую, пробую, но ничего пока не получается .
Создаю 5 файлов (bootstrap.xml,host1.xml-host4.xml)
перезапускаю heartbeat , но ресурсы не стартуют. Запускаю их вручную и смотрю crm_mon
те ресурсы которые расположены на текушей машине работают а на остальные показывает ошибку
Не подскажите что это за напасть такая?
PS:Заранее спасибо :)
1 bootstrap.xml
   <cluster_property_set id="bootstrap">
   <attributes>
      <nvpair id="bootstrap01" name="transition_idle_timeout" value="60"/>
      <nvpair id="bootstrap02" name="default_resource_stickiness" value="0"/>
      <nvpair id="bootstrap03" name="default_resource_failure_stickiness" value="-500"/>
      <nvpair id="bootstrap04" name="stonith_enabled" value="false"/>
      <nvpair id="bootstrap05" name="stonith_action" value="reboot"/>
      <nvpair id="bootstrap06" name="symmetric_cluster" value="false"/>
      <nvpair id="bootstrap07" name="no_quorum_policy" value="stop"/>
      <nvpair id="bootstrap08" name="stop_orphan_resources" value="true"/>
      <nvpair id="bootstrap09" name="stop_orphan_actions" value="true"/>
      <nvpair id="bootstrap10" name="is_managed_default" value="true"/>
   </attributes>
</cluster_property_set>

2-5 host1.xml
   <resources>
       <primitive class="ocf" type="Xen" provider="heartbeat" id="vm1">
         <instance_attributes id="vm1_instance_attrs">
           <attributes>
             <nvpair id="vm1_xmfile" name="xmfile" value="/home/virtual/srv1.cfg"/>
             <nvpair name="target_role" id="vm1-target_role" value="started"/>
             <nvpair id="vm1-allow_migrate" name="allow_migrate" value="1"/>
             <nvpair name="resource_stickiness" id="vm1-resource_stickiness" value="0"/>
           </attributes>
         </instance_attributes>
         <operations>
           <op id="vm1_stop" name="stop" timeout="180s"/>
           <op id="vm1_monitor" name="monitor" interval="10s" timeout="60s" prereq="nothing" start_delay="20"/>
           <op id="vm1_start" name="start" timeout="60s" start_delay="0"/>
         </operations>
       </primitive>
     </resources>


/home/virtual -обший drbd ресурс который монтируется к обоим нодам


"Xen+Heartbeat +Ocfs2"
Отправлено chapayev , 21-Сен-09 13:05 
Да, чуть не забыл добавить , после выключения одной из нод ее виртуалки не мигрируют на вторую !

"Xen+Heartbeat +Ocfs2"
Отправлено chapayev , 22-Сен-09 11:41 
Все, решил, всеработает!!!
Спасибо всем кто откликнулся :) в особености  valentine31
Были созданы 2-е группы по 2- виртуалки, каждая группа запускается на преферед ноде
Рабочие конфиги :
debianxen2:~# cat bootstrap.xml
<cluster_property_set id="bootstrap">
   <attributes>
      <nvpair id="bootstrap01" name="transition_idle_timeout" value="60"/>
      <nvpair id="bootstrap02" name="default_resource_stickiness" value="0"/>
      <nvpair id="bootstrap03" name="default_resource_failure_stickiness" value="-500"/>
      <nvpair id="bootstrap04" name="stonith_enabled" value="false"/>
      <nvpair id="bootstrap05" name="stonith_action" value="reboot"/>
      <nvpair id="bootstrap06" name="symmetric_cluster" value="true"/>
      <nvpair id="bootstrap07" name="no_quorum_policy" value="stop"/>
      <nvpair id="bootstrap08" name="stop_orphan_resources" value="true"/>
      <nvpair id="bootstrap09" name="stop_orphan_actions" value="true"/>
      <nvpair id="bootstrap10" name="is_managed_default" value="true"/>
   </attributes>
</cluster_property_set>

debianxen2:~# cat group1.xml
<group id="group_1">              
       <primitive class="ocf" type="Xen" provider="heartbeat" id="vm1">
         <instance_attributes id="vm1_instance_attrs">                
           <attributes>                                                
             <nvpair id="vm1_xmfile" name="xmfile" value="/home/virtual/srv.cfg"/>
             <nvpair name="target_role" id="vm1-target_role" value="started"/>    
             <nvpair id="vm1-allow_migrate" name="allow_migrate" value="1"/>      
             <nvpair name="resource_stickiness" id="vm1-resource_stickiness" value="0"/>
           </attributes>                                                                
         </instance_attributes>                                                        
         <operations>                                                                  
           <op id="vm1_stop" name="stop" timeout="180s"/>                              
           <op id="vm1_monitor" name="monitor" interval="10s" timeout="60s" prereq="nothing" start_delay="20"/>
           <op id="vm1_start" name="start" timeout="60s" start_delay="0"/>
         </operations>
       </primitive>
       <primitive class="ocf" type="Xen" provider="heartbeat" id="vm2">
         <instance_attributes id="vm2_instance_attrs">
           <attributes>
             <nvpair id="vm2_xmfile" name="xmfile" value="/home/virtual/srv1.cfg"/>
             <nvpair name="target_role" id="vm2-target_role" value="started"/>
             <nvpair id="vm2-allow_migrate" name="allow_migrate" value="1"/>
             <nvpair name="resource_stickiness" id="vm2-resource_stickiness" value="0"/>
           </attributes>
         </instance_attributes>
         <operations>
           <op id="vm2_stop" name="stop" timeout="180s"/>
           <op id="vm2_monitor" name="monitor" interval="10s" timeout="60s" prereq="nothing" start_delay="20"/>
           <op id="vm2_start" name="start" timeout="60s" start_delay="0"/>
         </operations>
       </primitive>
</group>


"Xen+Heartbeat +Ocfs2"
Отправлено chapayev , 23-Сен-09 18:07 
Блин, поспешил я!
Все работает почти нормально , при выключении ресурсы мигрируют, но не всегда(не понятно почему)!
Да и не могу понять как настроить чтобы на упавшем хосте отрубались виртуалки!
Т.е если во время работы вытаскиваю кабель то на второй ноде появляются виртуалки первой,
но они также продолжают работать и на первой ногде. И когда я врубаю сеть обратно то получается что виртуалки первой ноды запущены в двойном экзэмпляре.
Знаю что надо использовать stonith но почему то никак не получается настроить!
Может у кого есть рабочие конфиги ,и не жаль поделиться? :)
Заранее спасибо за помощь :)

"Xen+Heartbeat +Ocfs2"
Отправлено past , 02-Дек-09 17:39 
А вот не подскажет никто, как еще ocfs2 монтировать через сrm?

"Xen+Heartbeat +Ocfs2"
Отправлено chapayev , 07-Дек-09 14:20 
>А вот не подскажет никто, как еще ocfs2 монтировать через сrm?

Посмотри здесь:
http://clusterlabs.org/wiki/Dual_Primary_DRBD_%2B_OCFS2
Но у меня это как то криво завелось , работало через раз, так что пока настраиваю в v1 stile