服务器集群搭建(架设基于Linux(2.6内核)的服务器集群)
集群是由一组独立的计算机系统组成的松散耦合的多处理器系统,它们通过网络相互通信。集群的工作模式类似于人与人之间的协作。它的结构类似于linux透明代理服务器。这是从网络下载的图片,这是一个典型的nat结构。上图中的LVS标志是一个linux主机,负责平衡流量。虚拟服务器不处理服务请求,所有请求都由实际服务器处理。负载平衡是内核级的一个功能模块,通常不在发行版中提供。因此,我们需要重新编译内核以支持负载平衡。
集群是由一组独立的计算机系统组成的松散耦合的多处理器系统,它们通过网络相互通信。应用程序可以通过网络共享内存传输消息,实现分布式计算机。集群的工作模式类似于人与人之间的协作。
Vs-nat集群是最简单的集群。它的结构类似于linux透明代理服务器。
这是从网络下载的图片,这是一个典型的nat结构。这种结构可以用于简单的测试。上图中的LVS标志是一个linux主机,负责平衡流量。它通常被称为linux虚拟服务器。RS1 id和RS2 id是实际的服务器。虚拟服务器不处理服务请求,所有请求都由实际服务器处理。上图中的nat结构非常简单,网络结构可以根据实际情况进行修改。
LVS的配置过程
负载平衡是内核级的一个功能模块,通常不在发行版中提供。因此,我们需要重新编译内核以支持负载平衡。我们选择了最新的内核版本2.6.14。
下面是编译并使新内核正确工作的过程。
首先,从www.kernel.org下载源代码包模块
从名称可以看出,这些是一些与模块相关的工具。我们将负载平衡作为一个模块载入内核。
焦油吗?解压缩Cjzvf,然后按照自述文件中的步骤安装它。/configure?Cprefix=/
使移动
制造
进行安装
此时,安装了模块初始化工具。
安装2.6.14内核的以下过程
从www.kernel.org下载源代码包linux-2.6.14.2.tar.bz2到/usr/src/目录
焦油吗?cjxff Linux-2 . 6 . 14 . 2 . tar . bz2命令解压缩
linux-2.6.14目录是在解压缩后生成的
将此目录重命名为mv linux-2.6.14 linux
然后执行cd /usr/src/linux
这是一个图形化的内核配置工具。您可以使用此工具选择新内核
功能。我不会在这里详细解释,只要选择退出。
确保这是编译内核的命令。此命令需要很长时间才能执行,需要耐心等待:-)
制作模块这是编译内核模块的命令。用不了多久就能看到你的cpu速度
制作模块_安装当然是一个安装模块
此时,您自己的全新内核已经编译完毕
接下来,我们需要做一些工作来使新内核顺利工作
编译内核时,新内核的位置在/usr/src/linux/arch/i386/boot下,其中bzImage是您的新内核:-)
CpbImage/boot将新内核复制到系统的引导分区
然后修改grub(安装lilo没关系,方法大致相同)
vi /etc/grub.conf
添加以下内容
标题linux虚拟服务器
根(hd0,0)
内核/启动/bzImage根目录=/dev/hda1
然后保存并退出。
重新启动时会发现有一个额外的linux虚拟服务器选择
选择此项以使用您的新内核。
接下来,介绍ipvsadm
Ipvsadm是一个配置内核流量分配策略的工具。它允许我们选择使用哪种策略来转发数据包。
最简单的策略是循环赛。就像发牌一样。外部请求依次发送到实际的服务器。
它的安装太简单了,说明见自述文件:)
安装后执行以下命令:
echo 1/proc/sys/net/IP v4/IP _ forward。/ipvsadm -C。/ipvsadm?加州?Ct 192.168.88.23:80?Cs rr。/ipvsadm?Ca?CT 192 . 168 . 88 . 23:80-r 10 . 0 . 0 . 2:80-m。/ipvsadm?Ca?CT 192 . 168 . 88 . 23:80-r 10 . 0 . 0 . 3:80-m。/ipvsadm?Ca?CT 192 . 168 . 88 . 233:80-r 10 . 0 . 0 . 4:80-m
//第一句意思是让linux主机支持数据包转发
//第二句意思是清空内核的虚拟列表
//第三句意思是加入由192.168.88.23的端口80提供的虚拟服务
//-s参数指定调度方法rr是循环调度
//第四句意思是为上面的虚拟服务添加一个实际的服务器,ip 10.0.0.2和端口80
//-m参数指定nat模式
//我不需要谈论下一个:-)
以上是我在测试中使用的代码。简要说明其结构:机器用于负载平衡。它有两个网卡,一个ip是192.168.88.23,这是整个集群对以外的ip。另一个ip是10.0.0.1。这个ip
当然,功能是连接到实际的服务器。我在测试时用了三台机器作为实际的服务器,ip是10.0.0.2
10.0.0.3和10.0.0.3,它们的网关设置为10.0.0.1,它们的系统都是redhat9.0,它们都由apache提供服务。
如果每个人都有一个公共ip,只需将原始ip为192.168.88.23的网卡设置为您的公共ip。
关于iptables
我下载了iptables-1.3.4的新版本。解压缩后,按照INSTALL中的说明进行操作,然后在安装后执行。/iptables?Ct nat?CA POSTROUTING?Cs 10.0.0.0/24?Cd 0.0.0.0/0 -j SNAT?Cto 192.168.88.23 .
试验
不同的index.html排列在10.0.0.2、10.0.0.3.10.0.0.4上。红帽9的默认主页位置是
/var/www/html/。然后执行服务httpd start。浏览192.168.88.21
192.168.88.23,将出现一个index.html。在这里,我们需要注意浏览器的设置。我们需要删除临时文件并刷新它,然后才能看到另一个index.html。这是浏览器的问题,而不是错能够看到不同的主页面显示所有三个实际的服务器可以正常工作,集群可以工作。
问题
如果负责流量分发的计算机出现故障,或者实际的服务器出现问题,我该怎么办?
第一个问题中采用的方法是热备份。这也是大多数集群采用的方法。需要Heatbeat软件
第二个问题是在负载平衡机上配置保活软件。