Pacemaker + LVS/fullNAT(未完待續)

總結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) 即爲成功。

相關文章
相關標籤/搜索