HA-web-services

1、HA部署html

 本次實驗的程序選型爲heartbeat v1 + hearesources。資源有IP和httpd,filesystemnode

    配置HA集羣的前提:linux

        (1)各節點資源一致,硬件或軟件環境一致web

        (2)各節點時間保持一致,便於心跳傳遞,使用ntp協議實現算法

#使用ntpdate命令同步時間,並創建週期性任務
#可以使用任意節點服務器做爲ntp時間服務器,如各節點可上公網,可直接指定公網ntp服務器
 
1、安裝ntp
[root@jymlinux ~]# yum install -y ntp
[root@jymlinux ~]# vim /etc/ntp.conf           #修改配置文件容許本網段客戶端獲取地址
將下面的語句
restrict default kod nomodify notrap nopeer noquery
修改成
restrict default nomodify 
restrict 192.168.0.0 mask 255.255.255.0 nomodify
 
[root@jymlinux ~]# service ntpd start
Starting ntpd:                                             [  OK  ]
 
查看同步過程
[root@jymlinux ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*202.118.1.81    202.118.1.47     2 u   30   64    1   92.249    8.602   0.714
 202.112.31.197  .INIT.          16 u    -   64    0    0.000    0.000   0.000
 
2、客戶端建立週期任務,每3秒同步時間
[root@centfils ~]# crontab -e
*/3 * * * * /usr/sbin/ntpdate 192.168.0.16 &> /dev/null
[root@centfils ~]# service crond start
 
 
#手動同步成功,因ntp通常爲自動,手動前kill掉全部ntp進程便可
[root@centfils ~]# ntpdate 192.168.0.16
14 Nov 20:26:09 ntpdate[3786]: adjust time server 192.168.0.16 offset -0.004440 sec
 
3、時間同步
[root@jymlinux ~]# date; ssh 192.168.0.15 'date'
Mon Nov 14 20:36:17 CST 2016
root@192.168.0.15's password: 
Mon Nov 14 20:36:20 CST 2016

       (3)節點間須要經過主機名互相通訊,必須解析主機至IP地址vim

            (a)建議名稱解析功能使用hosts文件來實現centos

            (b)通訊中使用的名字與節點名字必須保持一致 「uname -n」 或hostname展現出的名字保持一致安全

 

[root@jymlinux ~]# vim /etc/hosts
192.168.0.15   centfils
192.168.0.16   jymlinux

 

  (4)關於仲裁設備(共享硬盤或網關),若有偶數個節點,好比2個,應啓用仲裁設備,奇數無需啓用,大偶數也能夠無需仲裁設備服務器

       (5)配置各節點之間的root用戶可以給予密鑰認證網絡

1、生成密鑰對
[root@centfils ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a8:ad:2c:23:83:60:ff:36:73:9d:09:24:37:ae:da:c9 root@centfils
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|     . =         |
|      * S        |
|..   o o         |
|+ . . o o o      |
|+ ooo*.. +       |
| o +*E+          |
+-----------------+
 
2、把公鑰傳輸至遠程服務器對應用戶的家目錄
[root@centfils ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.16
The authenticity of host '192.168.0.16 (192.168.0.16)' can't be established.
RSA key fingerprint is e5:84:6c:f7:c0:60:3d:0b:39:b6:1e:12:0d:48:8b:07.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.16' (RSA) to the list of known hosts.
root@192.168.0.16's password: 
Now try logging into the machine, with "ssh 'root@192.168.0.16'", and check in:
 
  .ssh/authorized_keys
 
to make sure we haven't added extra keys that you weren't expecting.
 
3、測試
[root@jymlinux ~]# date; ssh root@192.168.0.15 'date'
Mon Nov 14 21:02:30 CST 2016
Mon Nov 14 21:02:30 CST 2016
密鑰認證

       (6)定義爲集羣的資源不能開機自啓,而是由crm管理

      配置列表:

          node1:192.168.0.15

          node2:192.168.0.16

          fip:192.168.0.17

2、安裝heartbeat

  由於heartbeat,紅帽和centos官方不提供rpm,所以先下載並安裝epel包

[root@centfils ~]# wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
[root@centfils ~]# rpm -ivh epel-release-6-8.noarch.rpm 
[root@centfils heartbeat2]# yum install heartbeat-2.1.4-12.el6.i686.rpm heartbeat-pils-2.1.4-12.el6.i686.rpm heartbeat-stonith-2.1.4-12.el6.i686.rpm 
 
#安裝依賴包,安裝在主程序包前
[root@jymlinux ~]# yum install perl-TimeDate net-snmp-libs libnet PyXML
[root@jymlinux  ~]#  yum install libpils*

   heartbeat的配置文件在/etc/ha.d目錄下,其主要配置文件爲ha.cf,定義各節點上的heartbeat HA集羣的基本屬性。authkeys配置文件,爲集羣內節點間彼此傳遞消息時使用的加密算法及密鑰。

haresources,爲heartbeat v1提供的資源管理器配置接口,v1版專用。

 

#將配置文件模板複製到/etc/ha.d目錄下
[root@centfils ha.d]# cp /usr/share/doc/heartbeat-3.0.4/{ha.cf,haresources,authkeys} /etc/ha.d/
    
#節點間認證配置文件權限必須爲600
[root@centfils ha.d]# chmod 600 authkeys

 

3、配置heartbeat

 

1、配置authkeys文件,指明啓用何種算法,使用何種密鑰,本文件須更改權限爲400
auth 2
#1 crc
2 sha1 dPCDBSAie31fz6d5MhM0/A
#3 md5 Hello!
 
生成隨機字符串做爲密鑰
[root@centfils ha.d]# openssl rand -base64 16
dPCDBSAie31fz6d5MhM0/A==
 
 
2、配置ha.cf文件,定義高可用集羣的基本工做方式
 
定義日誌文件位置(二選一) logfacility爲將日誌交由syslog管理     
logfile        /var/log/ha-log
#logfacility     local0
多長時間發送一次心跳信息,默認爲2秒
#keepalive 2
多長時間宣佈某節點死亡,默認30秒
#deadtime 30
多長時間警告對方心跳信息延遲了,默認10秒
#warntime 10
第一次死去時間,避免因網絡問題致使宣佈死亡
#initdead 120
使用udp694端口傳遞心跳,並選擇哪一種方式傳遞心跳
#udpport        694
串行線纜傳遞心跳
#serial /dev/ttyS0      # Linux
#serial /dev/cuaa0      # FreeBSD
#serial /dev/cuad0      # FreeBSD 6.x
#serial /dev/cua/a      # Solaris
串行線纜的工做頻率
#baud   19200
廣播傳遞心跳
#bcast  eth0            # Linux
#bcast  eth1 eth2       # Linux
#bcast  le0             # Solaris
#bcast  le1 le2         # Solaris
多播傳遞心跳,網卡必須支持多播,ifconfig | grep MULTICAST
mcast eth0 225.0.0.1 694 1 0          #端口694,TTL爲1,不容許回傳爲0
#啓用網卡支持多播
[root@jymlinux ~]# ip link set eth0 multicast on
 
單薄傳遞心跳
#ucast eth0 192.168.1.2
自動故障轉回
auto_failback on
指明節點
#node   ken3
#node   kathy
node    centfils
node    jymlinux
指明網關爲ping node設備(仲裁設備)
#ping 10.10.10.254
ping 192.168.0.1
指明一個組爲ping node設備(仲裁設備)
#ping_group group1 10.10.10.254 10.10.10.253
指明節點間傳送的壓縮算法
compression     bz2
指明節點間傳送數據壓縮的最小數據爲2KB
compression_threshold 2

 

3、配置haresources文件,定義集羣資源
直接加入資源
centfils         192.168.0.17/24/eth0/192.168.0.255 httpd
    
4、將httpd設置爲開機不啓動
[root@centfils ~]# chkconfig httpd off

5、啓動服務
[root@centfils ~]# service heartbeat start

5、HA web services中加入共享文件資源

  filesystem爲192.168.0.20,通常狀況下HA-web services使用的filesystem爲raid或分佈式文件系統,實驗以nfs演示

 

1、在filesystem上創建共享文件系統
[root@linus ~]# clear
[root@linus ~]# mkdir /web/htdocs -pv
mkdir: created directory `/web'
mkdir: created directory `/web/htdocs'
[root@linus ~]# vim /web/htdocs/index.html
 
2、將此目錄經過nfs共享
[root@linus ~]# yum install portmap*
#nfs-utils-* :包括基本的NFS命令與監控程序
 
[root@linus ~]# yum install nfs*
#portmap-* :支持安全NFS RPC服務的鏈接
 
[root@linus ~]# vim /etc/exports  
/web/htdocs     192.168.0.0/24(rw,no_root_squash)
#NFS服務的配置文件爲 /etc/exports,這個文件是NFS的主要配置文件,不過系統並無默認值,因此這個文件不必定會存在,可能要使用vim手動創建,而後在文件裏面寫入配置內容。
 
#在此處出現錯誤,nfs沒法啓動,提示爲rpc沒法鏈接,因此重啓rpc後啓動nfs
[root@linus ~]# /etc/init.d/rpcbind restart
Stopping rpcbind:                                          [FAILED]
Starting rpcbind:                                          [  OK  ]
[root@linus ~]#  service nfslock start
Starting NFS statd:                                        [  OK  ]
[root@linus ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
 
#將nfs加入開機自啓
[root@linus ~]# chkconfig nfs on
 
#將nfs掛載進行測試,
[root@centfils ~]# mount -t nfs 192.168.0.20:/web/htdocs /var/www/html
[root@centfils ~]# umount /var/www/html

 

[root@jymlinux ha.d]# vim haresources 
centfils         192.168.0.17/24/eth0/192.168.0.255 Filesystem::192.168.0.20:/web/htdocs::/var/www/html::nfs httpd
[root@jymlinux ha.d]# scp haresources centfils:/etc/ha.d/
haresources                                         100% 6018     5.9KB/s   00:00   
 
[root@jymlinux ha.d]# service heartbeat start; ssh centfils 'service heartbeat start'
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息