How To Set Up A Load-Balanced MySQL Cluster - Part 5
2007-11-11 15:43:56 来源:WEB开发网6 Configure The Load Balancers
Our MySQL(和PHP搭配之最佳组合) cluster is finished now, and you could start using it now. However, we don't have a single IP address that we can use to access the cluster, which means you must configure your applications in a way that a part of it uses the MySQL(和PHP搭配之最佳组合) cluster node 1 (sql1.example.com), and the rest uses the other node (sql2.example.com). Of course, all your applications could just use one node, but what's the point then in having a cluster if you do not split up the load between the cluster nodes? Another problem is, what happens if one of the cluster nodes fails? Then the applications that use this cluster node cannot work anymore.
The solution is to have a load balancer in front of the MySQL(和PHP搭配之最佳组合) cluster which (as its name suggests) balances the load between the MySQL(和PHP搭配之最佳组合) cluster nodes. The load blanacer configures a virtual IP address that is shared between the cluster nodes, and all your applications use this virtual IP address to access the cluster. If one of the nodes fails, then your applications will still work, because the load balancer redirects the requests to the working node.
Now in this scenario the load balancer becomes the bottleneck. What happens if the load balancer fails? Therefore we will configure two load balancers (loadb1.example.com and loadb2.example.com) in an active/passive setup, which means we have one active load balancer, and the other one is a hot-standby and becomes active if the active one fails. Both load balancers use heartbeat to check if the other load balancer is still alive, and both load balancers also use ldirectord, the actual load balancer the splits up the load onto the cluster nodes. heartbeat and ldirectord are provided by the Ultra Monkey package that we will install.
It is important that loadb1.example.com and loadb2.example.com have support for IPVS (IP Virtual Server) in their kernels. IPVS implements transport-layer load balancing inside the Linux kernel.
6.1 Install Ultra Monkey
Ok, let's start: first we enable IPVS on loadb1.example.com and loadb2.example.com:
loadb1.example.com / loadb2.example.com:
modprobe ip_vs_dh
modprobe ip_vs_ftp
modprobe ip_vs
modprobe ip_vs_lblc
modprobe ip_vs_lblcr
modprobe ip_vs_lc
modprobe ip_vs_nq
modprobe ip_vs_rr
modprobe ip_vs_sed
modprobe ip_vs_sh
modprobe ip_vs_wlc
modprobe ip_vs_wrr
In order to load the IPVS kernel modules at boot time, we list the modules in /etc/modules:
loadb1.example.com / loadb2.example.com:
vi /etc/modules
ip_vs_dh |
Now we edit /etc/apt/sources.list and add the Ultra Monkey repositories (don't remove the other repositories), and then we install Ultra Monkey:
loadb1.example.com / loadb2.example.com:
vi /etc/apt/sources.list
deb http://www.ultramonkey.org/download/3/ sarge main |
apt-get update
apt-get install ultramonkey libdbi-perl libdbd-MySQL(和PHP搭配之最佳组合)-perl libMySQL(和PHP搭配之最佳组合)client14-dev
Now Ultra Monkey is being installed. If you see this warning:
¦ libsensors3 not functional ¦ |
you can ignore it.
Answer the following questions:
Do you want to automatically load IPVS rules on boot?
<-- No
Select a daemon method.
<-- none
The libdbd-MySQL(和PHP搭配之最佳组合)-perl package we've just installed does not work with MySQL(和PHP搭配之最佳组合) 5 (we use MySQL(和PHP搭配之最佳组合) 5 on our MySQL(和PHP搭配之最佳组合) cluster...), so we install the newest DBD::MySQL(和PHP搭配之最佳组合) Perl package:
loadb1.example.com / loadb2.example.com:
cd /tmp
wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-MySQL(和PHP搭配之最佳组合)-3.0002.tar.gz
tar xvfz DBD-MySQL(和PHP搭配之最佳组合)-3.0002.tar.gz
cd DBD-MySQL(和PHP搭配之最佳组合)-3.0002
perl Makefile.PL
make
make install
We must enable packet forwarding:
loadb1.example.com / loadb2.example.com:
vi /etc/sysctl.conf
# Enables packet forwarding |
- ››setpref轻松修改preferences文件
- ››TOscilloscope 仿Windows任务管理器CPU使用记录组...
- ››How to Make a Dark, Post-Apocalyptic City Illu...
- ››tomcat不支持TCP/IP6协议
- ››setTimeout()在js类中的使用方法
- ››tomcat 下的 url 大小写问题
- ››tomcat6.0.28 内存溢出PermGen Space
- ››Setting up proxy for Android Emulator
- ››Tomcat 系统架构与设计模式,第 2 部分: 设计模式...
- ››Tomcat 系统架构与设计模式,第 1 部分: 工作原理...
- ››How to (almost) create your own iPhone OS fram...
- ››TOMCAT和IIS整合
更多精彩
赞助商链接