分類: 內(nèi)存數(shù)據(jù)庫移動互聯(lián)網(wǎng)電子商務應用開發(fā)數(shù)據(jù)庫群集云計算J2EE技術Java基礎技術2012-01-18 18:26203人閱讀評論(0)收藏舉報
目錄
1、安裝ipvsadm 和 KeepAlived for Master. 5
一、要做那些事?1、安裝ipvsadm(Master/Backup) 2、安裝keepalived(Master/Backup) 3、配置keepalived(Master/Backup) 4、配置ipvsadm(Master/Backup) 5、配置RealServer
二、環(huán)境:CentOS6 (Linux Kernel 2.6.32-71.el6.i686) ipvsadm 1.2.4 keepalived 1.1.17
三、IP:Master IP:192.168.20.100 Backup IP:192.168.20.101 RealServer IP:192.168.20.102、192.168.20.100(兼)、192.168.20.101(兼)
四、VIP:192.168.20.99
五、注意事項:CentOS6 安裝選擇開發(fā)工作站模式 防火墻都關閉(因為業(yè)務機器前端有專用的防火墻,如果沒有,那么Master也可兼)
六、網(wǎng)絡結構圖 七、Master安裝步驟:1、安裝ipvsadm 和 KeepAlived for Master[root@RServer2 soft]#mkdir /soft [root@RServer2 soft]#cd /soft [root@RServer2 soft]# wget http://www./software/kernel-2.6/ipvsadm-1.24.tar.gz [root@RServer2 soft]# wget http://www./software/keepalived-1.1.17.tar.gz [root@RServer2 soft]#ln -s /usr/src/kernels/2.6.32-71.el6.i686/ /usr/src/linux [root@RServer2 soft]# tar -zxvf ipvsadm-1.24.tar.gz [root@RServer2 soft]# cd ipvsadm-1.24 [root@RServer2 ipvsadm-1.24]# make;make install [root@RServer2 ipvsadm-1.24]# cd .. [root@RServer2 soft]# tar -zxvf keepalived-1.1.17.tar.gz [root@RServer2 soft]# cd keepalived-1.1.17 [root@RServer2 soft]# ./configure --prefix=/usr/local/keepalived [root@RServer2 keepalived-1.1.17]# make;make install 順利的話就這些步驟了,如果出現(xiàn)錯誤提示,那么根據(jù)具體的錯誤具體處理,一般可能出現(xiàn)的錯誤: 1)、OpenSSL,提示可能如下 !!! OpenSSL is not properly installed on your system. !!! !!! Can not include OpenSSL headers files. 解決方案:運行yum -y installopenssl-devel 2)、提示沒有gcc編譯器 解決方案:運行yum installncurses-devel gcc gcc-c++ make rpm-build
2、配置keepalived for Master[root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived [root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ [root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ [root@RServer2 keepalived-1.1.17]# mkdir -p /etc/keepalived/ [root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf [root@RServer2 keepalived-1.1.17]# chmod +x /etc/init.d/keepalived [root@RServer2 keepalived-1.1.17]# gedit /etc/keepalived/keepalived.conf 或是 [root@RServer2 keepalived-1.1.17]# vi /etc/keepalived/keepalived.conf keepalived.conf文件如下: #Master服務器上的配置 /etc/keepalived/keepalived.conf global_defs { notification_email { likx@****.com #可以多個地址 } notification_email_from likx@****.com smtp_server 192.168.0.** smtp_connect_timeout 30 router_id LVS_DEVEL } #監(jiān)測ipvsadm進程狀態(tài),每3秒執(zhí)行一次 vrrp_script chk_ipvsadm{ script "/usr/local/keepalived/chk_ipvsadm.sh" interval 3 weight 3 } vrrp_instance VI_1 { state MASTER #標示狀態(tài)為MASTER 備份機為BACKUP interface eth0 virtual_router_id 51 priority 100 #MASTER權重要高于BACKUP 比如BACKUP為99 advert_int 5 mcast_src_ip 192.168.20.101 #Master服務器IP,如果是備份機請?zhí)顚憘浞輽C的IP authentication { auth_type PASS #主從服務器驗證方式 auth_pass 1111 } virtual_ipaddress { 192.168.20.99 #虛擬IP } } #虛擬服務器 21端口的配置 virtual_server 192.168.20.99 21 { delay_loop 10 #(每隔10秒查詢realserver狀態(tài)) lb_algo rr #(lvs 算法) lb_kind DR #(Direct Route) persistence_timeout 60 #(同一IP的連接60秒內(nèi)被分配到同一臺realserver) protocol TCP #(用TCP協(xié)議檢查realserver狀態(tài)) #實際服務器的IP和端口 real_server 192.168.20.102 21 { weight 5 TCP_CHECK { connect_timeout 10 connect_port 21 } } #實際服務器的IP和端口 real_server 192.168.20.100 21 { weight 5 TCP_CHECK { connect_timeout 10 connect_port 21 } } #實際服務器的IP和端口 real_server 192.168.20.101 21 { weight 5 TCP_CHECK { connect_timeout 10 connect_port 21 } } } #虛擬服務器 80端口的配置 virtual_server 192.168.20.99 80 { delay_loop 6 lb_algo rr lb_kind DR protocol TCP real_server 192.168.20.102 80 { weight 5 TCP_CHECK { connect_timeout 10 connect_port 80 } } real_server 192.168.20.100 80 { weight 5 TCP_CHECK { connect_timeout 10 connect_port 80 } } real_server 192.168.20.101 80 { weight 5 TCP_CHECK { connect_timeout 10 connect_port 80 } } } keepAlived使用方式: /etc/init.d/keepalived start|stop|restart /usr/local/keepalived/chk_ipvsadm.sh文件內(nèi)容如下: #!/bin/bash # # author: likexi # description: # 定時查看ipvsadm是否存在,如果不存在則啟動ipvsadm, # 如果啟動失敗,則停止keepalived # status=$(ps aux|grep ipvsadm | grep -v grep | grep -v bash | wc -l) if [ "${status}" = "0" ]; then service ipvsadm start status2=$(ps aux|grep ipvsadm | grep -v grep | grep -v bash |wc -l) if [ "${status2}" = "0" ]; then /etc/init.d/keepalived stop fi fi 3、配置ipvsadm for Master把一下內(nèi)容保存成:lvs_server.sh,并放置在/etc/init.d目錄下 #!/bin/bash #把一下內(nèi)容保存成:lvs_server.sh #并放置在/etc/init.d目錄下 #如果想啟動LVS Server執(zhí)行:/etc/init.d/lvs_server.sh start #如果想停止LVS Server執(zhí)行:/etc/init.d/lvs_server.sh stop #如果想重啟LVS Server執(zhí)行:/etc/init.d/lvs_server.sh restart VIP=192.168.20.99 #虛擬IP,更具具體情況而變 #有幾個輸入幾個,與下面的配置對應,同時必須與KeepAlived.config配置對應 RIP1=192.168.20.101 #實際的服務器IP RIP2=192.168.20.100 #實際的服務器IP RIP2=192.168.20.102 #實際的服務器IP . /etc/rc.d/init.d/functions # 如果提示權限不夠,那么先在命令行執(zhí)行: chmod 777 /etc/rc.d/init.d/functions case "$1" in start) echo "啟動LVS服務器" #設置虛擬IP和同步參數(shù) /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up echo "1" >/proc/sys/net/ipv4/ip_forward #清空 IPVS的內(nèi)存數(shù)據(jù) /sbin/ipvsadm -C #設置LVS #開啟FTP 21 端口服務,并指向RIP1和RIP2的服務器 /sbin/ipvsadm -A -t $VIP:21 -s rr /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g #開啟WEB 80 端口服務,并指向RIP1和RIP2的服務器 /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g #運行LVS /sbin/ipvsadm -ln ;; stop) echo "關閉LVS服務器" echo "0" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down ;; restart) echo "關閉LVS服務器" echo "0" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down echo "啟動LVS服務器" #設置虛擬IP和同步參數(shù) /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up echo "1" >/proc/sys/net/ipv4/ip_forward #清空 IPVS的內(nèi)存數(shù)據(jù) /sbin/ipvsadm -C #設置LVS #開啟FTP 21 端口服務,并指向RIP1和RIP2的服務器 /sbin/ipvsadm -A -t $VIP:21 -s rr /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g #開啟WEB 80 端口服務,并指向RIP1和RIP2的服務器 /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g #運行LVS /sbin/ipvsadm -ln ;; *) echo "Usage: $0 {start|stop}" exit 1 esac /etc/init.d/lvs_server.sh使用方法 [root@RServer2 ~]# chmod 777 /etc/init.d/lvs_server.sh [root@RServer2 ~]# chmod 777 /etc/rc.d/init.d/functions [root@RServer2 ~]# /etc/init.d/lvs_server.sh start|stop|restart 到這里為止,Master配置完成。 八、Backup安裝步驟:Backup的安裝和Master的安裝基本一致,只是一些參數(shù)略有變化。 變化的參數(shù)為止如下: 1、keepalived.conf文件中 原:state MASTER #標示狀態(tài)為MASTER 備份機為BACKUP state BACKUP #標示狀態(tài)改為BACKUP 原:priority 100 #MASTER權重要高于BACKUP 比如BACKUP為99 priority 99 #MASTER權重要高于BACKUP,MASTER為100,那么BACKUP略小于,比如99 原:mcast_src_ip 192.168.20.101 #Master服務器IP,如果是備份機請?zhí)顚憘浞輽C的IP mcast_src_ip 192.168.20.100 #換成BACKUP服務器IP 九、RealServer配置步驟:RealServer只需要在root目錄下創(chuàng)建lvs_real_server.sh文件,并執(zhí)行他一遍即可,lvs_real_server.sh的文件內(nèi)容如下: #!/bin/bash #把一下內(nèi)容保存成:lvs_real_server.sh #并放置在root目錄下 #如果想啟動real Server執(zhí)行:/root/lvs_real_server.sh start #如果想停止real Server執(zhí)行:/root/lvs_real_server.sh stop CLUSTER_VIP=192.168.20.99 #虛擬IP,更具具體情況而變 . /etc/rc.d/init.d/functions # 如果提示權限不夠,那么先在命令行執(zhí)行: chmod 777 /etc/rc.d/init.d/functions case "$1" in start) /sbin/ifconfig lo:0 $CLUSTER_VIP netmask 255.255.255.255 broadcast $CLUSTER_VIP /sbin/route add -host $CLUSTER_VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "真實服務器啟動....." ;; stop) /sbin/ifconfig lo:0 down /sbin/route del $CLUSTER_VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "真實服務器停止....." ;; *) echo "Usage: $0 {start|stop}" exit 1 esac /root/lvs_real_server.sh使用方法 [root@RServer2 ~]# chmod 777 /root/lvs_real_server.sh [root@RServer2 ~]# chmod 777 /etc/rc.d/init.d/functions [root@RServer2 ~]# /root/lvs_real_server.sh start|stop|restart 十、JBoss作為LVS的WebServer:Jboss作為LVS的WebServer時需要做一些簡單的配置 對于standalone運行模式的Jboss,只需在standalone.xml配置文件添加如下內(nèi)容: <interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:192.168.20.101}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:192.168.20.99}"/> </interface> <interface name="any"> <any-address/> </interface> </interfaces> default-interface="any"> <socket-binding name="http" port="80"/> <socket-binding name="https" port="443"/> <socket-binding name="jmx-connector-registry" interface="management" port="1090"/> <socket-binding name="jmx-connector-server" interface="management" port="1091"/> <socket-binding name="jndi" port="1099"/> <socket-binding name="osgi-http" interface="management" port="8090"/> <socket-binding name="remoting" port="4447"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> </socket-binding-group> 十一、LVS群集系統(tǒng)維護命令:1、ipvsadm維護啟動:/etc/init.d/lvs_server.sh start 停止:/etc/init.d/lvs_server.sh stop 重啟:/etc/init.d/lvs_server.sh restart 2、keepAlived維護啟動:/etc/init.d/keepAlived start 停止:/etc/init.d/keepAlived stop 重啟:/etc/init.d/keepAlived restart 3、real server 維護啟動:/etc/init.d/lvs_real_server.sh start 停止:/etc/init.d/lvs_real_server.sh stop 4、Jboss維護后臺運行模式:/jboss/bin/standalone.sh & exit(退出控制臺,但是Jboss繼續(xù)運行) 前臺運行模式:/jboss/bin/standalone.sh 關閉Jboss:ps aux | grep jboss kill 對應的線程號 |
|