(十六)企業部分之lvs

增加兩臺純淨的虛擬機server3server4,共4臺虛擬機

兩臺虛擬機最好1G內存

 

server1/server2

/etc/init.d/heartbeat stop
chkconfig heartbeat off
/etc/init.d/iptables stop


server2

ip addr add 172.25.45.100/24 dev eth0
ip addr show

wKioL1eW9pehGYzoAABIDkPU-EI037.png


ipvsadm -l

wKiom1eW9paSTBYEAAAp4hEmbgU169.png


ipvsadm -C
ipvsadm -A -t 172.25.45.100:80 -s rr
ipvsadm -a -t 172.25.45.100:80 -r 172.25.45.3:80 -g
ipvsadm -a -t 172.25.45.100:80 -r 172.25.45.4:80 -g
/etc/init.d/ipvsadm save
ipvsadm -l

wKiom1eW9rrCWqL7AABEl3dZLX4660.png

 

server3/server4

yum install -y httpd
/etc/init.d/httpd start
echo server3.example.com > /var/www/html/index.html    ##server4改爲4
ip addr add 172.25.45.100/32 dev eth0
ip addr show

wKioL1eW9tHgBOTnAABEAJLcD8A354.png


yum install -y arptables_jf
arptables -L

wKiom1eW9tOyHytXAABLDx-NFnI306.png


arptables -A IN -d 172.25.45.100 -j DROP
arptables -A OUT -s 172.25.45.100 -j mangle --mangle-ip-s 172.25.45.3##server4改爲4
/etc/init.d/arptables_jf save
arptables -L

wKioL1eW9unRd8ugAABoeYaueDA750.png


wKioL1eW9umT854TAABoe9l1ueQ359.png

 

http://172.25.45.100     ##server3server4可以切換

 

【物理機】

arp -an    ##可以看到虛擬IP在哪

wKiom1eW9wuzVSjIAACP5wDQP80199.png

 

server2

ipvsadm -l

wKiom1eW9yXDh91ZAABFrzVqRVE366.png

 

2.

server2

cd /usr/share/doc/ldirectord-3.9.5/
cp ldirectord.cf /etc/ha.d/
vim /etc/ha.d/ldirectord.c

修改2539行內容爲以下:

virtual=172.25.45.100:80

        real=172.25.45.3:80 gate

        real=172.25.45.4:80 gate

        fallback=127.0.0.1:80 gate

        service=http

        scheduler=rr

        #persistent=600

        #netmask=255.255.255.255

        protocol=tcp

        checktype=negotiate

        checkport=80

        request="index.html"

#       receive="Test Page"

#       virtualhost=www.x.y.z

 

wKiom1eW9zHxP8bYAABfVQVVwSA435.png

 

ipvsadm -l
ipvsadm -C
ipvsadm -l

wKioL1eW9z7g16YpAAAz8yVJsiU046.png

 

/etc/init.d/ldirectord start
ipvsadm -l

wKioL1eW90vRrDiiAABYG5syeH4714.png


/etc/init.d/ldirectord stop
ipvsadm -l

wKioL1eW90vATXuEAAA9h4aanLo869.png


/etc/init.d/ldirectord start
/etc/init.d/httpd start
echo server2.example.com > /var/www/html/index.html

http://172.25.45.100     ##server3server4可以切換

 

測試:

 

關閉server3server4其中一個的http服務,顯示的會是對方的首頁;若是全部關閉,則顯示server2的首頁,但只要server3\server4有一個服務存在,就會回切,就不會在server2

關閉server4http服務

網頁顯示server3.example.comwKioL1eW93ui9lA9AAA7r8Jh8II494.png


再關閉server3http服務

網頁顯示本地首頁,server2.example.comwKiom1eW93DgtpzpAAA5U3vbUDE078.png


開啓server3http服務

網頁顯示server3.example.com


開啓server4http服務


網頁在server3server4切換

wKiom1eW94WRiD5bAABFay0cUo4203.png


server2

scp ldirectord.cf 172.25.45.1:/etc/ha.d/
/etc/init.d/ldirectord stop
/etc/init.d/httpd stop
ipvsadm -l

wKiom1eW95CRTHSFAAAq2LR41g0425.png


ip addr del 172.25.45.100/24 dev eth0

 

server1

yum install -y httpd
vim /etc/ha.d/haresources

將最後一行修改爲以下:

server1.example.com IPaddr::172.25.45.100/24/eth0 httpd ldirectord

 

scp haresources 172.25.45.2:/etc/ha.d/
/etc/init.d/heartbeat start
 tail -f /var/log/messages    ##無報錯將server2的heartbeat服務打開
ip addr show    ##有虛擬IP

wKiom1eW-IuCa0wfAABFEEskE_M943.png


netstat -antlpe    ##httpd端口打開

wKioL1eW-JXT-YgcAAAXeYj5xQI190.png


ipvsadm -l    ##規則出現

wKioL1eW-J7wbtscAABE-VqJfRM745.png

 

網頁上server3server4可以切換

 

測試:

server1

/etc/init.d/heartbeat stop

虛擬IP會切換到server2

/etc/init.d/heartbeat start

虛擬IP會切回到server1

 

關閉server3http服務,網頁顯示server4.example.com

再關閉server4http服務,網頁顯示本地首頁,server1.example.com

開啓server3http服務,網頁顯示server3.example.com

開啓server4http服務,網頁在server3server4切換


後端調度

健康檢查

 

所需軟件包:keepalived-1.2.20.tar.gz libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm

 

server1

/etc/init.d/heartbeat stop
tar zxf keepalived-1.2.20.tar.gz
cd keepalived-1.2.20/
./configure --prefix=/usr/local/keepalived

需要解決的依賴性:openssl-devel libnl-devel

rpm -ivh libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm
yum install -y net-snmp-devel
yum install -y libiptcdata.x86_64

make & make install
scp -r /usr/local/keepalived/ [email protected]:/usr/local/


server1/server2

ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
ln -s /usr/local/keepalived/bin/genhash /bin/


server1

cd /etc/keepalived/
vim keepalived.conf

修改內容爲以下;

! Configuration File for keepalived

 

global_defs {

   notification_email {

        root@localhost

   }

   notification_email_from [email protected]

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

   vrrp_skip_check_adv_addr

   vrrp_strict

}

 

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        172.25.45.100

    }

}

 

virtual_server 172.25.45.100 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

#   persistence_timeout 50

    protocol TCP

 

    real_server 172.25.45.3 80 {

        weight 1

        TCP_CHECK {

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

    real_server 172.25.45.4 80 {

        weight 1

        TCP_CHECK {

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

}

 

scp keepalived.conf 172.25.45.2:/etc/keepalived/


server2

cd /etc/keepalived/
vim keepalived.conf

將第7行的sverver1.example.com改爲server2.example.com

將第16行的MASTER改爲BACKUP

將第45行的100改爲50

 

server1

/etc/init.d/keepalived start
tail -f /var/log/messages

 

server2

/etc/init.d/keepalived start

 

server1

ip addr show

wKiom1eW-ODBgsbSAABDFiS1DB8275.png

 

ipvsadm -l

wKiom1eW-PWzKc8nAABG7oWXMVM539.png

 

網頁在server3server4切換

/etc/init.d/keepalived stop    ##虛擬IP會切換到server2上,網頁依然在server3和server4切換

wKiom1eW-Wni1fT8AABF6Carn3Q903.png

 

關閉server3http服務,網頁顯示server4.example.com

再關閉server4http服務,網頁顯示本地首頁,server1.example.com

開啓server3http服務,網頁顯示server3.example.com

開啓server4http服務,網頁在server3server4切換

 

server1

arp -a

wKioL1eW-XahVEiBAAA-b6M0Kk8267.png

 

server3/server4

yum install -y vsftpd
/etc/init.d/vsftpd start

cd /var/ftp/
touch server3    ##server4主機touch server4
vim /etc/sysconfig/arptables

添加以下內容:

[0:0] -A IN -d 172.25.45.101 -j DROP

[0:0] -A OUT -s 172.25.45.101 -j mangle --mangle-ip-s 172.25.45.3##server4172.25.45.4

wKiom1eW-YazctSxAABBzFseEW0614.png

 

ip addr add 172.25.45.101/32 dev eth0
/etc/init.d/arptables_jf restart
arptables -nL

wKioL1eW-ZGAaS6nAACEh2BQjak459.png

 

server1

vim  keepalived.conf

virtual_ipaddress下面添加一個虛擬IP172.25.45.101

在最後添加以下內容:

virtual_server 172.25.45.101 21 {

    delay_loop 6

    lb_algo wlc

    lb_kind DR

    persistence_timeout 60

    protocol TCP

 

    real_server 172.25.45.3 21 {

        weight 1

        TCP_CHECK {

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

    real_server 172.25.45.4 21 {

        weight 1

        TCP_CHECK {

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

}

 

server2

vim  keepalived.conf

virtual_ipaddress下面添加一個虛擬IP172.25.45.101

virtual_server 172.25.45.100 80 修改爲以下:

virtual_server 172.25.45.101 21 {

    delay_loop 6

    lb_algo wlc

    lb_kind DR

    persistence_timeout 60

    protocol TCP

 

    real_server 172.25.45.3 21 {

        weight 1

        TCP_CHECK {

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

    real_server 172.25.45.4 21 {

        weight 1

        TCP_CHECK {

                connect_timeout 3

                nb_get_retry 3

                delay_before_retry 3

            }

        }

}

 

server1/server2

/etc/init.d/keepalived reload
ipvsadm -l

wKioL1eW-gaRDZ9kAABjja4pFe4640.png


wKioL1eW-gaSKbvdAABJAKIPKDw120.png

 

server3

lftp 172.25.45.101

wKiom1eW-gfB-3YuAAAjbhcOxPE129.png

 

server2

lftp 172.25.45.101

wKioL1eW-geQnTlyAAAkzAewvmY326.png

 


##fullnat模式##

需要編譯內核

所需軟件包:kernel-2.6.32-220.23.1.el6.src.rpm  asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm slang-devel-2.2.1-1.el6.x86_64.rpm

 

uname -r

wKioL1eZ8QyAiqHXAAAMVCajqOM884.png 


cd rpmbuild/SPECS/
rpmbuild -bp kernel.spec

缺少依賴性

wKiom1eZ8BiAhTJNAACpeJbtG4s168.png

 

##所需解決的依賴性##

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
cd
yum install asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm slang-devel-2.2.1-1.el6.x86_64.rpm -y

rpmbuild -bp kerbel.spec
##這裏會很久,可以通過再開一個窗口,進行rngd -r /dev/urando(此命令可在過程中找到)可以快速結束(沒有rngd命令可以安裝 rng-tools)


cd /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/
tar zxf Lvs-fullnat-synproxy.tar.gz
cd lvs-fullnat-synproxy/
cp lvs-2.6.32-220.23.1.el6.patch /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64
cd ..
cd linux-2.6.32-220.23.1.el6.x86_64/
yum install -y patch
patch -p1 < lvs-2.6.32-220.23.1.el6.patch 
vim Makefile


在第四行 EXTRAVERSION 的後面加上 -220.23.1.el6        ##內核的版本號

 

cd configs/
diff kernel-2.6.32-x86_64.config ../.config

wKioL1eZ8HOBqnoKAAAoZOjnYjM052.png

 

增加一個20G的虛擬硬盤,CPU改爲4

fdisk -cu /dev/vdb
pvcreate /dev/vdb1
vgextend VolGroup /dev/vdb1
lvextend -L +20G /dev/VolGroup/lv_root 
lvextend -l +5119 /dev/VolGroup/lv_root 
resize2fs  /dev/VolGroup/lv_root
df -h

cd /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64
make -j4
make modules_install
make install
cd /boot/grub/
vim grub.conf

將第10行的default的值改爲0

wKioL1eZ8JHwitAuAADPW4mxI8E163.png


可以看到2.6.32-220.23.1.el6的內核在上面,默認啓動這個

reboot


uname -r

wKiom1eZ8UHDBNu9AAALoJ2EL7o570.png

 

cd rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/lvs-fullnat-synproxy/
cp lvs-tools.tar.gz  ~
cd
tar zxf lvs-tools.tar.gz
cd tools/keepalived/
yum install openssl-devel popt-devel -y
./configure --with-kernel-dir="/lib/modules/`uname -r`/build"
make
make install
which keepalived

wKiom1eZ8NuDeiW0AAAR_NQm6Vs859.png

 

cd ..
cd ipvsadm/
yum install -y ipvsadm
make
make install
ipvsadm --help
ipvsadm -l

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章