说在前面:

   这个编辑器也太霸道了,,两个浏览器,,一个不能粘贴,一个不能上图,只能保存草稿之后切换,  

   造孽啊! 写博不易,且看且珍惜   [蜡烛]

ntp服务器配置

# vim /etc/ntf.conf 加入如下配置.# 国家授时中心restrict 210.72.145.44restrict 202.120.2.101restrict 1.cn.pool.ntp.org# 允许本网络内机器同步restrict 172.16.43.0 mask 255.255.255.0 nomodify.server 210.72.145.44server 202.120.2.101server 1.cn.pool.ntp.org# 配置完毕  service ntpd restart# 注意 时间服务器配置后需要等待10-15分钟# ntpstat 可查看时间服务器状态# 客户端使用ntpdate来同步时间 (集群中十分常用)

高可用概念:

   采用架构冗余(2台以上机器)

   底层节点信息传递(下图 Messaging/Infrashructrue 层)

   计算机资源管理与协调(下图 Resource Allocation 层)与一身架构设计

高可用架构一览

来自https://www.suse.com/Document

高可用方案

   ML messaging/infrashructrue

   CRM cluster resource manager

   RA resource agent(resorce provider)

   i)  Corosync/OpenAIS [ML] + (Pacemaker,crm) [CRM]

   ii) heartbeat v1 [ML] + haresource [CRM]

   iii)heartbeat v2 [ML] + (crm,crmsh/hb_gui) [CRM]

   iv) Cman+Corosync [ML] + Pacemaker [CRM]

   # 以上方案在功能特点上没有区别,在于易用性

   v) PCS + Conga + Pacemaker + Corosync

   vi) PCS + Pcsd + Pacemaker + Corosync

   # 以上均为全生命周期集群配置

   vii) Cman + RHCS

   # 重量级解决方案

实验配置

   172.16.43.200  master.king.com  <- 主控节点,负责配置集群,但不参与

   172.16.43.1    slave1.king.com  <- 集群节点1

   172.16.43.2    slave2.king.com  <- 集群节点2

实验过程

   i) 主控节点配置

# 安装 ansibleyum -y install ansible-1.5.4-1.el6.noarch.rpm# 配置复制节点互信ssh-keygen -t rsa# 此处需要 slave1.king.com 在主控节点上解析ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1.king.com或scp ~/.ssh/id_rsa.pub root@172.16.43.1:/root/.ssh/authorized_keys# 安装corosync,pacemaker,pcs,crmshyum -y install corosync pacemakeryum -y install pssh-2.3.1-2.el6.x86_64.rpmyum -y install crmsh-1.2.6-4.el6.x86_64.rpm# 集群节点项配置cd /etc/corosynccp corosync.conf.example corosync.conf# 编辑配置文件vim corosync.conf    totem {        version: 2        secauth: on  # 集群节点需要验证才能加入集群        threads: 0        interface {            ringnumber: 0            bindnetaddr: 172.16.43.0 # 在此网段进行广播            mcastaddr: 226.94.43.1   # 多播地址            mcastport: 5405            ttl: 1        }    }    logging {        fileline: off        to_stderr: no        to_logfile: yes        to_syslog: yes        logfile: /var/log/cluster/corosync.log        debug: off        timestamp: on        logger_subsys {            subsys: AMF            debug: off        }    }    amf {        mode: disabled    }    service {        ver:    0        name:   pacemaker   # 启动corosync时启动pacemaker服务    }    aisexec {        user:   root        group:  root    }# 生成corosync节点验证信息corosync-keygen

   ii): 集群节点安装corosync + pacemaker + crmsh + pssh 及配置

# 配置集群节点互信,分别在集群节点1,2上执行ssh-keygen -t rsassh-copy-id -i ~/.ssh/id_rsa.pub root@slave2.king.comssh-keygen -t rsassh-copy-id -i ~/.ssh/id_rsa.pub root@slave1.king.com.# 配置管理节点将管理的集群节点信息 /etc/ansible/hosts[server]slave1.king.comslave2.king.com.# all 是代表hosts文件中所定义所有集群主机, all 也可换 server当前的意义是等价的# 安装 corosync pacemaker crmsh pssh 注意crmsh , pssh 没有用yum源# 本地文件先拷贝在安装的ansible all -m yum -a 'name=corosync state=present'ansible all -m yum -a 'name=pacemaker state=present'ansible all -m copy -a 'src=./crmsh-1.2.6-4.el6.x86_64.rpm dest=/root'ansible all -m copy -a 'src=./pssh-2.3.1-2.el6.x86_64.rpm dest=/root'# pssh crmsh的本地安装ansible all -m command -a 'yum -y install /root/pssh-2.3.1-2.el6.x86_64.rpm'ansible all -m command -a 'yum -y install /root/crmsh-1.2.6-4.el6.x86_64.rpm'# 将主控节点配置好的信息同步到集群节点    authkey , corosync 到 slave1,slave2ansible all -m copy -a 'src=/etc/corosync/authkey dest=/etc/corosync'ansible all -m file -a 'path=/etc/corosync/authkey mode=400'ansible all -m copy -a 'src=/etc/corosync/corosync.conf dest=/etc/corosync'ansible all -m service -a 'name=corosync state=started'# 更多modual及参数请详见ansible-doc modualname

   iii): 配置集群资源

crm # 在主控节点中进入crm管理器crm > status # 查看集群状态. 图1# 这里是双节点集群 , 一旦失效就可能导致资源无法转移 , 所以这里设置不需要 隔离设备crm(live)configure > property stonith-enabled=falsecrm(live)configure > property no-quorum-policy=ignore# 查看设置. 图2crm > help # 获得crm菜单帮助# 使用configure配置主资源 注意 提示符 处的菜单路径crm(live)configure > primitive webip ocf:heartbeat:IPaddr params ip=172.16.43.88 op monitor interval=30s timeout=20s onfail restartcrm(live)configure > primitive webfile ocf:heartbeat:Filesystem params device='172.16.43.200:/htdocs' directory='/var/www/html' fstype='nfs' op monitor intetval=30s timeout=20s onfail restartcrm(live)configure > primitive webhttp ocf:heartbeat:httpdcrm > status # 查看集群状态, 此时资源处于均衡负载. 图3# 将资源加入组实现资源聚合crm(live)configure > group webserivce webipcrm(live)configure > group webserivce webfilecrm(live)configure > group webserivce webhttp# 将资源加入排列顺序实现资源启动先后order order_webip_webfile_webhttp mandatory: webip webfile webhttp. 图4

图1

图2

图3

图4

  iv): 测试

       .图

   先发出来, 标记  .图 的地方正在编辑上传中....