总结
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 中的 <Location /server-status>,启动允许集群操作】
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) 即为成功。