zoukankan      html  css  js  c++  java
  • HA集群

    //硬件准备:
    
    1.两个机器,相同系统
    
    2.网卡ip为:aming   192.168.11.24
               aming1  192.168.11.23
    //实验准备:
    
    1. hostname : aming , aming1
    
    2. 关闭防火墙 : iptables -F
    
            setenforce 0
    
    3. 更改hosts  : vi /etc/hosts
    
            192.168.11.24 aming   
            192.168.11.23 aming1 
    
    4. 安装epel扩展源:  rpm -ivh  'http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm'
    
    5. 主从都安装heartbeat / libnet / nginx
    yum install -y heartbeat* libnet nginx
     //实验时需要的
    
    一、 两个机器的网卡需要相同 ,不管是eth0还是eth1。但如果是克隆出来的虚拟机,则网卡一个为eth0,一个为eth1.所以需要设置
    
    在eth1的虚拟机中做下列的步骤
    1、在/etc/grub.conf 里增加biosdevname=0的启动参数,形如 
    kernel /vmlinuz-2.6.32-131.21.1.el6.i686 ro root=/dev/mapper/vg_test-lv_root rd_LVM_LV=vg_test/lv_root rd_LVM_LV=vg_test/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latar 
    
    --将此行复制在上行的下方
    cyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet biosdevname=0 
    
    2、删除udev的配置文件rm -f /etc/udev/rules.d/70-persistent-net.rules 
    3、把网卡配置文件改名 
    mv ifcfg-em1 ifcfg-eth0 
    4、把网卡配置文件内容修正,把em1的全部改成eth0 
    可以使用 perl -p -i -e 's/em1/eth0/g' ifcfg-eth0 或
    sed -i 's/em1/eth0/g' ifcfg-eth0 进行替换。 
    5、重启系统即可
    
    
    
    
    二、两个机器之间 拷贝文件 scp
    
    安装:
    --> yum install openssh-clients
    主 和从都需要安装
    //主上配置
    [root@localhost ~]# cd /usr/share/doc/heartbeat-3.0.4/
    [root@localhost /heartbeat-3.0.4]# cp  authkeys  ha.cf haresources   /etc/ha.d/
    [root@localhost /heartbeat-3.0.4]# cd /etc/ha.d
    [root@localhost ha.d]# vi  authkeys     
    //此配置文件 是主从进行通信的  要时时检测是否有当掉的迹象
    //文件最尾处
    将
    #auth 1    //1 ,2 ,3表示通信的加密程度 
    #1 crc {最简单}
    #2 sha1 HI! {最复杂} 
    #3 md5 Hello!  {第二简单} 
    
    改为
    auth 3 //选择中间值
    #1 crc
    #2 sha1 HI!
    3 md5 Hello!
    [root@localhost ha.d]# chmod 600 authkeys
    [root@localhost ha.d]# vi  haresources    
    //这里如果做了nfs共享存储 也可以配置在这里
    //加入
    aming 192.168.11.10/24/eth1:0 nginx
    
    /*第一段 master的主机名*/
    /*第二段 流动ip,实验时用同网段的*/
    /*eth1:0 这个根据主机的网卡设置,主机为eth0则设置为eth0:n,n自定义*/
    /*nginx 为哪一个提供服务 意义为如果主的nginx服务down掉以后,从会启动继续提供服务*/
    
    <--流动ip--->
    主和从都有自己的 ip ,但当主宕机时 ,主的ip不能跑到从去
    
    即vip ,主运行时,流动ip在主,从运行时,则流动ip在从。
    <-->
    
    [root@localhost ~]# vi ha.cf
    //改为
    debugfile /var/log/ha-debug
    logfile /var/log/ha-log 
    logfacility     local0
    keepalive 2  
    deadtime 30  
    warntime 10 
    initdead 60  
    udpport 694 
    ucast eth1 192.168.11.23 
    auto_failback on  
    node    aming   
    node    aming1
    ping 192.168.11.1
    respawn hacluster /usr/lib/heartbeat/ipfail 
    
    //将主上配置文件拷贝到从上
    [root@localhost ~]# cd /etc/ha.d/
    [root@localhost ha.d]# scp authkeys ha.cf haresources aming1:/etc/ha.d/ 
    //在从上编辑
    [root@localhost ~]# vi /etc/ha.d/ha.cf
    //只需要改一个地方,将此处的slave的ip改为master的ip
    ucast eth1 192.168.11.23  改为   ucast eth1 192.168.11.24
    
    //启动 heartbeat
    //先主,后从
    [root@localhost ~]# service heartbeat start
    //检查测试
    
    ifconfig 看是否有 eth1:0  /   ip add 命令看是否多了 eth1:0
    ps aux |grep nginx  看是否有nginx进程
    
    //测试
    1.主上对nginx的页面进行设置   
    echo "1111master" > /usr/share/nginx/html/index.html 
    
    去浏览器访问 http://192.168.11.10{流动ip}/  页面会显示 1111master
    
    从上也设置 echo "2222slave" > /usr/share/nginx/html/index.html 
    
    设置规则 iptables -A INPUT -p icmp -j DROP 
    查看heartbeat日志  tail /var/log/ha-log    tail -f /var/log/ha-log 
    看到master停掉 ,转给slave运行
    
    再打开浏览器 页面变成了 2222slave
    
    则说明设置成功
    
    
    2.主上故意禁ping
    iptables -I INPUT -p icmp -j DROP
    
    --主上的当掉了,从上还可以用
  • 相关阅读:
    彻底理解ThreadLocal(转)
    javascript中神奇的(+)加操作符
    quartz集群调度机制调研及源码分析---转载
    quartz源码解析--转
    通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
    LeetCode 917. Reverse Only Letters (仅仅反转字母)
    LeetCode 893. Groups of Special-Equivalent Strings (特殊等价字符串组)
    LeetCode 824. Goat Latin (山羊拉丁文)
    LeetCode 443. String Compression (压缩字符串)
    LeetCode 387. First Unique Character in a String (字符串中的第一个唯一字符)
  • 原文地址:https://www.cnblogs.com/frankielf0921/p/5400648.html
Copyright © 2011-2022 走看看