总结

 

HAIB


RHCSlvs (4层)

Hearteatnginx(7层)

keepalived

 

                      / Rule Server  单点client 连接是唯一的Rule Server

                VS    /

client ——> CDN ——> server /———Rule Server

(cook)    cache         \

 n                   \  ...

                     \ Rule Server

 

心跳层

RHCS ——> (corosync)使用 UTP多波发送

Hearteat ——> 广播

keepalive ——> (keepalive)使用 UTP多波

pacemaker ——> corosync

VRRP(虚拟地址冗余协议)

 

 

******************************

**********pacemaker***********

******************************

 

简介:

pacemaker,集群方式,即在corosync 中配置信息。然后使用crm 交互界面进行服务的添加和配置。

.下载所需要的软件包 网站:linux-ha.org  ——>  Cluster Glue

   测试使用的是 Pacemake 1.1 和 Corosync 1.X

   crmsh-1.2.6-0.rc2.2.1.x86_64  ;  pass-2.3.1-2.1.x86    交互式集群配置软件

   

   cp /etc/corosync/corosync.conf.example /etc/corosync/corosync

.更改配置文件 vim /etc/corosync/corosync

       [标号]

2 compatibility: whitetank[是否兼容0.8以前的版本]

     

4 totem {

  5         version: 2[版本]

  6         secauth: off[验证]

  7         threads: 0

  8         interface {

  9                 ringnumber: 0[定义环号,防止心跳在一台机子上持续发送,1块网卡就填0]

 10                 bindnetaddr: 172.25.254.0[绑定主机ip网段]

 11                 mcastaddr: 226.94.1.1[广播地址]

 12                 mcastport: 5656[端口]

 13                 ttl: 1[只发一次,避免回环]

 14         }

15 }

  ...[日志有关的信息,采用默认]

35 service {[添加pacemaker服务,版本]

 36         name: pacemaker

 37         ver: 0

 38 }

 

 

.使用crm 进行集群配置。

输入crm,进入crm 命令交互shell,输入configure,直接编写命令行进行文件配置。

    [常用]

      *show:查看文件信息; verify:查看报错提示; commit:保存,每次更改完,必须保存; edit:查看文件; primitive:简单(用来添加策略和服务);resource:这个模式下更改服务状态,方便更新配置,refresh 刷新服务等

      *crm_mon 监控集群信息内容变化,crm node standby (节点关闭);crm node online (节点上线)

      *在crm 中的 ra 下可以使用 meta 命令查看服务信息

   

      1.primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.254.168 cidr_netmask=24 [添加虚拟IP;ocf为自定义资源方式]

 

      2.primitive apache lsb:httpd op monitor interval=10s[以自带的服务模块添加httpd服务]

    2.1.primitive apache ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=10s[以自带的apache模板添加服务]【注意,这样添加的话,要打开/etc/httpd/conf 中的 ,启动允许集群操作】

 

      3.group website vip apache[加组,在组中 先vip 后apache,group 由于 oder 排序]

      4.properyt no-quorum-policy=ignore[向不回转转忽视(回转),当首节点服务重启后,服务会回来]

      5.primitive vmfence stonith:fence_xvm params pcmk_host_map="server1.example.com:server1;server2.example.com:server2" op monitor interval=1min[添加fence_xvm,添加之前要在主机上配置fence,并开启,细节清看HA(2.13)]

      6.colocation apache-with-vip inf: vip apache[约束服务,绑定vip 和 apache 服务在一起]

      8.commit[保存]

      9.上述操作选取所适合自己的进行操作

.添加ISCSI 存储  HA(2.13)版本中有详细记载

 

.向服务中添加ISCSI存储

       1.primitive webdata ocf:heartbeat:Filesystem params device=/dev/sda1 directory=/var/www/html fstype=ex4 op monitor interval=20s

       2.group website vip webdata apache[整合服务]


.向服务中添加drbd存储方式 drbd配置方式详见HA(开源版本2.16)

1.ms drbddataclone drbddata meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true


 

.添加drbd 服务 和 mysql 。[drbd服务配置详情请看 HA(开源版本2.16)](首先清除上述多于的服务,留下vip)

1.primitive drbddata ocf:linbit:drbd params drbd_resource=example     [载入drbd 服务,载入example配置文件]

2.ms drbddataclone drbddata meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=ture[写入drbdclone 主节点机最大一个,接管机两个,最大备机1,通知信息ture]

3.meta ocf:linbit:drbd[查看服务的drbd 配置方式]

4.primitive sqlfs ocf:heartbeat:Filesystem params device=/dev/drbd1 directory=/var/lib/mysql fstype=ext4 op monitor interval=60s

5.colocation sqlfs-with-drbddata inf: sqlfs drbddataclone:Master[设置sqlfs 和 drbddata 一起,并且 drbddataclone 首启]

6.order sqlfs-after-drbddata inf: drbddataclone:promote sqlfs:start[设置drbddata 先启于 sqlfs; drbddataclone 优先 sqlfs 启动]

        7.primitive fstype=ext4 op monitor timeout=40 interval=60s op start timeout=60 op stop timeout=60

[挂载ext4文件系统 60s监控一次 40s超时监控, 启动60 关闭60 监控]

8.primitive mysql lsb:mysql op monitor interval=60s

9.group mysqlgroup vip sqlfs mysql[添加 mysqlgroup,按照 vip sqlfs mysql ]


.添加lvs (具体lvs的配置方法详见 Keepalive+lvs(2.20))

1.primitive lvs lsb:ldirectordop monitor interval=30s


 

 

*********************

****lvs - fullNAT****(未完待续)

   *********************

 

. 重新编译内核(2.6-32)

      1.下载 kernel-2.6.62-220.23.1.el6.src.rpm 包

yum install -y rpm-build

cd rpmbuild/SPECS

      2.rpmbuild -bp kernel.spec (粘贴复制,根据提示安装完所需要的软件)

yum install -y gcc redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel newt-devel python-devel perl-ExtUtils-Embed hmaccalc

下载 newt-devel-0.52.11-3.el6.x86_64.rpm asciidoc-8.4.5-4.1.el6.noarch.rpmslang-devel-2.2.1-1.el6.x86_64.rpm

rpm -ivh 上述三个包

rpmbuild -bp kernel.spec

      3.yum install -y rng-rools[如果需要 执行 rngd -r /dev/urandom 以便随即取得操作 是内核继续向下编译]

      4.cd rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32.220.23.1.el6.x86_64

       4.1 下载 lvs-fullnat-synproxy.tar.gz  将其解压后的 .patch 文件放到rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32.220.23.1.el6.x86_64下

       4.2 patch -p1 < lvs-2.6.32-220.23.1.el6.patch

       4.3 make ; make install

      

. 整合 keepalived

      1.cd /lvs-fullnat-synproxy/tools/keepalived

1.1 ./configure  --with-kernel-dir="/lib/modules/`uname -r`/build"  (根据提示却啥yum啥)

          yum install -y popt-deve

      2. 看到 Keepalived configuration 列表中 Use IPVS Framework;IPVS sync daemon support;Use VRRP Framework 都为 Yes 即可。

      3.make ; make install

      4.完成之后 ipvsadm -l看到IP Virtual Server version 1.2.1 (size=4194304) 即为成功。