heartbeat problem on redhat

Discussion in 'Server Operation' started by NorwayFun, Sep 7, 2009.

  1. NorwayFun

    NorwayFun New Member

    hi.

    I have built mysql cluster with one management server, and its working fine
    but now I will need to do load balancing between them and decided to use heartbeat.

    downloaded rpm's, installed them and configured as it's in

    http://www.howtoforge.org/setting-up-a-loadbalanced-mysql-cluster-with-mysql5.1


    my setup looks like this:

    management/loadbalancer IP 192.168.12.1
    sql0(node0) 192.168.12.2
    sql1(node1) 192.168.12.3

    authkeys file

    auth 3
    3 md5 somerandomstring

    ha.cf file


    debugfile /var/log/ha-debug
    logfile /var/log/ha-log

    logfacility local0
    bcast eth1
    mcast eth1 225.0.0.1 694 1 0
    auto_failback off
    node sqlmgmt.myvideo.ge
    respawn hacluster /usr/lib/heartbeat/ipfail
    apiauth ipfail gid=haclient uid=hacluster



    ldirectord.cf file


    # Global Directives
    checktimeout=10
    checkinterval=2
    autoreload=no
    logfile="local0"
    quiescent=yes

    virtual = 192.168.12.10:3306
    service = mysql
    real = 192.168.12.3:3306 gate
    real = 192.168.12.2:3306 gate
    checktype = negotiate
    login = "ldirector"
    passwd = "ldirectorpassword"
    database = "ldirectordb"
    request = "SELECT * FROM connectioncheck"
    scheduler = wrr

    haresources file



    sqlmgmt.myvideo.ge \
    ldirectord::ldirectord.cf \
    LVSSyncDaemonSwap::master \
    IPaddr2::192.168.12.10/24/eth1/192.168.12.255



    and it's not working... set up virtual addresses and kernel parameters on nodes are correct too...


    but heartbeat is not working

    here is complete debug output

    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1796]: info: Version 2 support: false
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1796]: WARN: Logging daemon is disabled --enabling logging daemon is recommended
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1796]: info: **************************
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1796]: info: Configuration validated. Starting heartbeat 2.99.4
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: heartbeat: version 2.99.4
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: Heartbeat generation: 1252138489
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: glib: UDP Broadcast heartbeat started on port 694 (694) interface eth1
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1800]: info: Stack hogger failed 0xffffffff
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1801]: info: Stack hogger failed 0xffffffff
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: glib: UDP Broadcast heartbeat closed on port 694 interface eth1 - Status: 1
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: glib: UDP multicast heartbeat started for group 225.0.0.1 port 694 interface eth1 (ttl=1 loop=0)
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1803]: info: Stack hogger failed 0xffffffff
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: G_main_add_TriggerHandler: Added signal manual handler
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: G_main_add_TriggerHandler: Added signal manual handler
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: G_main_add_SignalHandler: Added signal handler for signal 17
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: Stack hogger failed 0xffffffff
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: Comm_now_up(): updating status to active
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: Local status now set to: 'active'
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: Starting child client "/usr/lib/heartbeat/ipfail" (497,487)
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1797]: info: Local status now set to: 'up'
    Sep 07 10:31:02 sqlmgmt.myvideo.ge heartbeat: [1805]: info: Starting "/usr/lib/heartbeat/ipfail" as uid 497 gid 487 (pid 1805)
    Sep 07 10:31:02 sqlmgmt.myvideo.ge ipfail: [1805]: debug: PID=1805
    Sep 07 10:31:02 sqlmgmt.myvideo.ge ipfail: [1805]: debug: Signing in with heartbeat
    Sep 07 10:31:02 sqlmgmt.myvideo.ge ipfail: [1805]: debug: [We are sqlmgmt.myvideo.ge]
    Sep 07 10:31:03 sqlmgmt.myvideo.ge heartbeat: [1802]: info: Stack hogger failed 0xffffffff
    Sep 07 10:31:03 sqlmgmt.myvideo.ge heartbeat: [1804]: info: Stack hogger failed 0xffffffff
    Sep 07 10:31:03 sqlmgmt.myvideo.ge heartbeat: [1797]: info: Link sqlmgmt.myvideo.ge:eth1 up.
    Sep 07 10:31:03 sqlmgmt.myvideo.ge ipfail: [1805]: debug: auto_failback -> 0 (off)
    Sep 07 10:31:03 sqlmgmt.myvideo.ge ipfail: [1805]: debug: Setting message filter mode
    Sep 07 10:31:04 sqlmgmt.myvideo.ge ipfail: [1805]: debug: Starting node walk
    Sep 07 10:31:04 sqlmgmt.myvideo.ge ipfail: [1805]: debug: Cluster node: sqlmgmt.myvideo.ge: status: up
    Sep 07 10:31:05 sqlmgmt.myvideo.ge ipfail: [1805]: debug: Setting message signal
    Sep 07 10:31:05 sqlmgmt.myvideo.ge ipfail: [1805]: debug: Waiting for messages...
    Sep 07 10:31:06 sqlmgmt.myvideo.ge ipfail: [1805]: info: Link Status update: Link sqlmgmt.myvideo.ge/eth1 now has status up



    I dunno what to do now.. any suggestions?

    regards
     
  2. NorwayFun

    NorwayFun New Member

    please help with that, or my boss is gonna kill meh :))
     
  3. meeso

    meeso New Member

    Hi,

    I'm not using ldirector for MySQL, however you could just try the following:

    virtual = 192.168.12.10:3306
    real = 192.168.12.3:3306 gate 1
    real = 192.168.12.2:3306 gate 2
    checktimeout=10
    protocol=tcp
    scheduler=rr


    Try just that without all the negotiate stuff. If it polls tcp:3306 and nothing answers, it's going to fail out. I'm sure there are advantages to doing a full on negotiated connection but for the time being (just to get it to work) simple TCP should do the trick.

    Like I said, never tried it with MySQL but I mean it IS just a service :)

    - Chris
     
  4. NorwayFun

    NorwayFun New Member

    I have changed my ldirector conf file to this

    checktimeout=10
    checkinterval=2
    autoreload=no
    logfile="local0"
    quiescent=yes

    virtual = 192.168.12.10:3306
    real = 192.168.12.3:3306 gate 1
    real = 192.168.12.2:3306 gate 2
    scheduler = rr


    not its complaining that for mysql i have to specify user/pass/query


    Sep 9 03:42:02 sqlmgmt ldirectord[1708]: Error: Must specify a login and request string for MySQL, Oracle and PostgreSQL checks. Not adding 192.168.12.3.
     
  5. meeso

    meeso New Member

    Did you add the protocol=tcp in there? It should just poll using standard TCP methods.
     
  6. NorwayFun

    NorwayFun New Member

    yes I did.

    tried all possible variants =))
     

Share This Page