ຊັບພະຍາກອນທີ່ໃຊ້
ໃນທີ່ນີ້ຜູ້ຂຽນຈະໃຊ້ CentOS 6.4 ທັງໝົດ 5 ເຄື່ອງ (VM) ໂດຍຕັ້ງຊື່ຕາມ Diagram ດັ່ງນີ້
Virtual IP : 192.168.0.215 lvs1 : 192.168.0.216 lvs2 : 192.168.0.217 rs1 : 192.168.0.218 rs2 : 192.168.0.219 rs3 : 192.168.0.220
ຂັ້ນຕອນທີ່ 1 ຕິດຕັ້ງ Load Balancer
yum install piranha ipvsadm -y
ກໍານົດ Firewall ໃຫ້ allow port ຕາມນີ້
Piranha: 3636
HTTP: 80
Hearbeat: 539
ເປີດການນໍາໃຊ້ Piranha
service piranha-gui start
ຫຼັງຈາກ restart ຫຼື reboot ໃຫ້ service ເຫຼົ່ານີ້ເປີດຂຶ້ນອັດຕະໂນມັດ
chkconfig piranha-gui on chkconfig pulse on
ກໍານົດ password ສໍາລັບ Login ເຂົ້າສ່ວນຈັດການຂອງ piranha
piranha-passwd
ເປີດໃຫ້ forward packet ຜ່ານເຄື່ອງ Load Balance ໄດ້ ເຊິ່ງສາມາດກໍານົດໄດ້ 2 ວິທີ
echo 1 > /proc/sys/net/ipv4/ip_forward
ແກ້ໄຂໄຟລ /etc/sysctl.conf ໂດຍການກໍານົດໃຫ້ net.ipv4.ip_forward = 1
ຫຼັງຈາກນັ້ນ ໃຊ້ຄໍາສັ່ງ
sysctl -p
ຂັ້ນຕອນການຕັ້ງຄ່າ Load Balancer ໃນ Piranha
User : piranha Password : ***** (จากคำสั่ง piranha-passwd)
Round-Robin Scheduling
ກະຈາຍຄໍາຮ້ອງຮຽນໄປຕາມລໍາດັບຂອງ server ທີ່ມີຢູ່ ການໃຊ້ algorith
m ນີ້ ທຸກ server ຈະມີຄວາມສໍາຄັນເທົ່າກັນໝົດ ບໍ່ກ່ຽວຂ້ອງກັບຄວາມສາມາດຂອງ server ຫຼື ຄວາມສາມາດຂອງ b
andwidth ຫຼື load ແຕ່ຢ່າງໃດ ຮູບແບບການກະຈາຍຄໍາຮ້ອງແບບ Round-Robin ນີ້ຈະຄືກັນກັບ round-robin ແບບ DNS ແຕ່ຈະມີລາຍລະອຽດຫຼາຍກວ່າເນື່ອງຈາກຮູບແບບ
ໂຄງຂ່າຍຂອງລະບົບ network ແລະ ຮູບແບບການກະຈາຍຄໍາຮ້ອງແບບ Round-Robin ນີ້ ຈະບໍ່ໄດ້ຮັບຜົນກະທົບຈາກຄວາມບໍ່ສົມດູນຈາກຄໍາຮ້ອງຂອງ DNS cache query
Weighted Round-Robin Scheduling
ການກະຈາຍຄໍາຮ້ອງຂໍຈະເໝືອນກັບ round-robin ແຕ່ຈະຊັບຊ້ອນກວ່າ ບ່ອນວ່າເຮົາສາມາດກໍານົດນໍ້າໜັກການສົ່ງຄໍາຮ້ອງໄປທີ່ server ໄດ້ໃນແບບ dynamic (ບໍ່ fix) ເຊັ່ນເຄື່ອງ server
ແຕ່ລະເຄື່ອງເຮົາມີ performance ທີ່ຈະຮັບ request ບໍ່ເທົ່າກັນກັນ ກໍສາມາດກໍານົດ weight ໄດ້ ເັຮດໃຫ້ request ທີ່ເຂົ້າມາ ກະຈາຍໄປທີ່ server ໄດ້ເໝາະສົມທີ່ສຸດ
ການກະຈາຍຄໍາຮ້ອງແບບ Weighted Round-Robin Scheduling ຈະເຫັນຜົນ ຫາກເຄື່ອງ server ແຕ່ລະຕົວ ມີປະສິດທິພາບທີ່ແຕກຕ່າງກັນຫຼາຍ ຫຼາຍກວ່າ server ທີ່ມີປະສິດທິພາບເທົ່າໆກັນ
Least-Connection (ແບບເຊື່ອມຕໍ່ໜ້ອຍທີ່ສຸດ)
ຮູບແບບການກະຈາຍຄໍາຮ້ອງ ຈະສົ່ງໄປເຄື່ອງ server ທີ່ມີຄໍາຮ້ອງທີ່ຍັງເຮັດວຽກຢູ່ໜ້ອຍສຸດ (fewer active connection) ເນື່ອງຈາກລະບົບຈະກວດສອບການເຊື່ອມຕໍ່ກັບ server ແບບ realtive ຜ່ານທາງຕາຕະລາງ IPVS
ຮູບແບບ Least-Connection ເປັນຮູບແບບການກະຈາຍຄໍາຮ້ອງແບບ dynamic ຊະນິດໜຶ່ງ ແລະ ເໝາະສົມສໍາລັບລັກສະນະຄໍາຮ້ອງທີ່ມີການຮຽກໃຊ້ເຊິ່ງມີຄວາມແຕກຕ່າງກັນຫຼາຍເຊັ່ນ
ມີຄໍາຮ້ອງມາຫຼາຍໆ ຢູ່ໆກໍເຫຼືອໜ້ອຍເປັນຕົ້ນ ໂດຍຮູບແບບການກະຈາຍຕົວລັກສະນະນີ້ ເໝາະສໍາລັບກຸ່ມຂອງ server ທີ່ມີປະສິດທິພາບເທົ່າໆກັນ
Weighted Least-Connections (Default)
ຮູບແບບຈະຄືກັບ Least-Connection ແຕ່ວ່າເຮົາຈະກໍານົດທິດທາງການກະຈາຍ load ໄປທີ່ server ໄດ້ສະເພາະເຈາະຈົງໃນແຕ່ລະ server ໃນຮູບແບບ weight ຫຼື factor
ເຮັດໃຫ້ການກະຈາຍ load ມີປະສິດທິພາບຫຼາຍຂຶ້ນ ເໝາະສໍາລັບເຄື່ອງ server ທີ່ມາ pool ກັນ ມີປະສິດທິພາບທີ່ຕ່າງກັນ
ເຊິ່ງການ config piranha ທັງໝົດຈະເກັບຄ່າໄວ້ທີ່ໄຟລ
/etc/sysconfig/ha/lvs.cf
ເຊິ່ງເຮົາສາມາດນໍາ config ໄປໃຊ້ກັບເຄື່ອງ lvs2 ທີ່ເຮັດວຽກເປັນ passive ໄດ້
scp /etc/sysconfig/ha/lvs.cf 192.168.0.217:/etc/sysconfig/ha/
ຫຼັງຈາກແກ້ຄ່າ config ໃນ piranha ທຸກຄັ້ງເຮົາຕ້ອງ restart pulse ເຊິ່ງເປັນຕົວຈັດການ piranha
restart ທັງ 2 ເຄື່ອງ (LVS1,LVS2) ດ້ວຍຄໍາສັ່ງ
service pulse restart
ໃນສ່ວນຂອງ web server
ຕິດຕັ້ງ arptables_jf ໃຫ້ກັບ rs1 , rs2 , rs3
yum install arptables_jf -y
ເຄື່ອງ #rs1:
arptables -A IN -d 192.168.0.215 -j DROP arptables -A OUT -d 192.168.0.215 -j mangle –mangle-ip-s 192.168.0.218
ເຄື່ອງ #rs2:
arptables -A IN -d 192.168.0.215 -j DROP arptables -A OUT -d 192.168.0.215 -j mangle –mangle-ip-s 192.168.0.219
ເຄື່ອງ #rs3:
arptables -A IN -d 192.168.0.215 -j DROP arptables -A OUT -d 192.168.0.215 -j mangle –mangle-ip-s 192.168.0.220
ບັນທຶກ config ແລະໃຫ້ auto start ທຸກຄັ້ງທີ່ມີການເປີດເຄື່ອງ
service arptables_jf save chkconfig arptables_jf on
ຫຼັງຂຈາກນັ້ນ add virtual ip address ທັງ 3 ເຄື່ອງ
ip addr add 192.168.0.215 dev eth0
ເປີດໄຟລ /etc/rc.local ແລະ ເພີ່ມຄໍາສັ່ງໄວ້ດ້ານລຸ່ມຂອງໄຟລ ເພື່ອໃຫ້ເປີດເຄື່ອງທຸກຄັ້ງຈະ add virtual ip ໃຫ້ອັດຕະໂນມັດ
/sbin/ip addr add 192.168.0.215 dev eth0
ຫຼັງຈາກນີ້ທົດລອງໃຫ້ Client ເຊື່ອມຕໍ່ມາທີ່ 192.168.0.215
LVS1
ເບິ່ງການ Routing ໄດ້ດ້ວຍຄໍາສັ່ງ
ipvsadm -L
-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.215:80 wlc -> 192.168.0.218:2525 Route 1 3 1 -> 192.168.0.219:2525 Route 1 2 0 -> 192.168.0.220:2525 Route 1 1 0
ຂໍ້ມູນເພີ່ມເຕີມ
Direct Routing
Load Balancer Add-On via Direct Routing
Load Balancer Add-On Scheduling Overview