總結html
HAIBnode
RHCSlvs (4層)python
Hearteatnginx(7層)mysql
keepalivedlinux
/ Rule Server 單點client 鏈接是惟一的Rule Servernginx
VS /web
client ——> CDN ——> server /———Rule Serversql
(cook) cache \shell
n \ ... apache
\ 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) 即爲成功。