|
分類: 內(nèi)存數(shù)據(jù)庫移動互聯(lián)網(wǎng)電子商務應用開發(fā)數(shù)據(jù)庫群集云計算J2EE技術(shù)Java基礎技術(shù)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ā)工作站模式 防火墻都關(guān)閉(因為業(yè)務機器前端有專用的防火墻,如果沒有,那么Master也可兼)
六、網(wǎng)絡結(jié)構(gòu)圖 七、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)、提示沒有g(shù)cc編譯器 解決方案:運行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.confkeepalived.conf文件如下: #Master服務器上的配置 /etc/keepalived/keepalived.confglobal_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權(quán)重要高于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 fifi3、配置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 #實際的服務器IPRIP2=192.168.20.100 #實際的服務器IPRIP2=192.168.20.102 #實際的服務器IP. /etc/rc.d/init.d/functions # 如果提示權(quán)限不夠,那么先在命令行執(zhí)行: chmod 777 /etc/rc.d/init.d/functionscase "$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 "關(guān)閉LVS服務器" echo "0" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down ;; restart) echo "關(guān)閉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 1esac/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 備份機為BACKUPstate BACKUP #標示狀態(tài)改為BACKUP 原:priority 100 #MASTER權(quán)重要高于BACKUP 比如BACKUP為99priority 99 #MASTER權(quán)重要高于BACKUP,MASTER為100,那么BACKUP略小于,比如99 原:mcast_src_ip 192.168.20.101 #Master服務器IP,如果是備份機請?zhí)顚憘浞輽C的IPmcast_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 # 如果提示權(quán)限不夠,那么先在命令行執(zhí)行: chmod 777 /etc/rc.d/init.d/functionscase "$1" instart) /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 1esac/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 關(guān)閉Jboss:ps aux | grep jboss kill 對應的線程號 |
|
|