Linux LVS构架负载均衡Linux集群系统(一)
选用的LVS实际上是一种 操作上基于IP层的负载均衡调度技术,它在操作核心层上,将来自IP层的TCP/UDP请求均衡地转移到不同的服务器,从而将一组服务 器构成一个高性能、高可用的虚拟服务器。使用三台机器就可以用LVS实现最简单的集群,如图1所示。
图1显示一台名为Director的机器在集群前端做负载分配工作;后端两台机器称之为 Real Server,专门负责处理Director分配来的外界请求。该集群的核心是前端的Director机器,LVS就是安装在这台机器上,它必须安装 Linux。Real Server则要根据其选用的负载分配方式而定,通常Real Server上的设置比较少。接下来介绍Director机器上LVS的安装过程。
图1 LVS实现集群系统结构简图
安装
LVS的安装主要是在Director机器上进行,Real Server只需针对不同的转发方式做简单的设定即可。特别是对LVS的NAT方式,Real Server惟一要做的就是设一下缺省的网关。所以构架集群的第一步从安装Director机器开始。
首先要在Director机器上安装一个Linux操作系统。虽然早期的一些Red Hat版本,如6.2、7.2、8.0等自带Red Hat自己的集群软件,或者是在内核中已经支持LVS,但是为了更清楚地了解LVS的机制,笔者还是选择自行将LVS编入Linux内核的方式进行安 装,Linux版本采用Red Hat 9.0。
如果用户对Red Hat的安装比较了解,可以选择定制安装,并只安装必要的软件包。安装中请选择GRUB做为启动引导管理软件。因为GRUB在系统引导方面的功能远比 LILO强大,在编译Linux内核时可以体会它的方便之处。
LVS是在Linux内核中实现的,所以要对原有的Linux内核打上支持LVS的内核补 丁,然后重新编译内核。支持LVS的内核补丁可以从LVS的官方网站http://www.linuxvirtualserver.org下载,下载时请 注意使用的Linux核心版本,必须下载和使用的Linux内核版本相一致的LVS内核补丁才行。对于Red Hat 9.0,其Linux内核版本是2.4.20,所以对应内核补丁应该是http://www.linuxvirtualserver.org /software/kernel-2.4/linux-2.4.20-ipvs-1.0.9.patch.gz。笔者经过多次实验,使用Red Hat 9.0自带的Linux源代码无法成功编译LVS的相关模组。由于时间关系笔者没有仔细研究,而是另外从kernel.org上下载了一个tar包格式的 2.4.20内核来进行安装,顺利完成所有编译。下面是整个内核的编译过程:
1.删除Red Hat自带的Linux源代码
2.下载2.4.20内核
3.解压到当前目录/usr/src
4.建立链接文件
5.打上LVS的内核补丁
在打补丁时,注意命令执行后的信息,不能有任何错误信息,否则核心或模组很可能无法成功编 译。
6.打上修正ARP问题的内核补丁
这一步在Director机器上可以不做,但是在使用LVS/TUN和LVS/DR方式的 Real Server上必须做。
7.为新核心命名
打开/usr/src/linux/Makefile。注意,在开始部分有一个变量 EXTRAVERSION可以自行定义。修改这个变量,比如改成“EXTRAVERSION=-LVS”后,编译出的核心版本号就会显示成2.4.20- LVS。这样给出有含义的名称将有助于管理多个Linux核心。
8.检查源代码
这一步是为确保源代码目录下没有不正确的.o文件及文件的互相依赖。因为是新下载的内核,所 以在第一次编译时,这一步实际可以省略。
9.配置核心选项
命令执行后会进入一个图形化的配置界面,可以通过这个友好的图形界面对内核进行定制。此过程 中,要注意对硬件驱动的选择。Linux支持丰富的硬件,但对于服务器而言,用不到的硬件驱动都可以删除。另外,像Multimedia devices、Sound、Bluetooth support、Amateur Radio support等项也可以删除。
注意,以下几项配置对LVS非常重要,请确保作出正确的选择:
(1)Code maturity level options项
对此项只有以下一个子选项,请选中为*,即编译到内核中去。
(2)Networking options项
对此项的选择可以参考以下的配置,如果不清楚含义可以查看帮助:
(3)Networking options项中的IP: Virtual Server Configuration项
如果打好了LVS的内核补丁,就会出现此选项。进入Virtual Server Configuration选项,有以下子选项:
以上所有项建议全部选择。
(4)Networking options项中的IP: Netfilter Configuration项
对于2.4版本以上的Linux Kernel来说,iptables是取代早期ipfwadm和ipchains的更好选择,所以除非有特殊情况需要用到对ipchains和 ipfwadm的支持,否则就不要选它。本文在LVS/NAT方式中,使用的就是iptables,故这里不选择对ipchains和ipfwadm的支 持:
- 最新评论