1.1
LVS 群集应用基础
群集的称呼来自于英文单词“Cluster”,表示一群、一串的意思,用在服务器领域则表
示大量服务器的集合体,以区分于单个服务器。本节将对群集的结构、工作模式、LVS 虚拟
应用,以及 NFS 共享存储介绍及使用。
1.1.1 群集技术概述
根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有
千秋。然而从整体上来看,需要先了解一些关于群集的共性特征,才能在构建和维护群集的
工作中做到心中有数,避免操作上的盲目性。
1.群集的类型
无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访
问入口。根据群集所针对的目标差异,可分为以下三种类型。
?
负载均衡群集(Load Balance Cluster):以提高应用系统的响应能力、尽可能处
理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能。例如,“DNS
轮询”“应用层交换”“反向代理”等都可用作负载均衡群集。LB 的负载分配依赖
于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解
整个系统的负载压力。
?
高可用群集(High Availability Cluster):以提高应用系统的可靠性、尽可能地
减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。例如,
“故障切换”“双机热备”“多机热备”等都属于高可用群集技术。HA 的工作方式包
括双工和主从两种模式。双工即所有节点同时在线;主从则只有主节点在线,但当
出现故障时从节点能自动切换为主节点。
?
高性能运算群集(High Performance Computer Cluster):以提高应用系统的 CPU
运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性
能运算(HPC)能力。例如,“云计算”“网格计算”也可视为高性能运算的一种。
高性能运算群集的高性能依赖于“分布式运算”“并行计算”,通过专用硬件和软件
将多个服务器的 CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备
的计算能力。
1.1.2 LVS 虚拟服务器
Linux Virtual Server 是针对 Linux 内核开发的一个负载均衡项目,由我国的章文嵩
博士在 1998 年 5 月创建,官方站点位于 http://www.linuxvirtualserver.org/。LVS 实际
上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了一种
高效的解决方法。
LVS 现在已成为 Linux 内核的一部分,默认编译为 ip_vs 模块,必要时能够自动调用。
在 CentOS 7 系统中,以下操作可以手动加载 ip_vs 模块,并查看当前系统中 ip_vs 模块的
版本信息。
?
2.使用 ipvsadm 管理工具
ipvsadm 是在负载调度器上使用的 LVS 群集管理工具,通过调用 ip_vs 模块来添加、删
除 服 务器 节 点 ,以 及 查 看 群集 的 运 行状 态 。 在 CentOS 7 系 统 中 , 需 要 手动 安装
ipvsadm.x86_64 0:1.27-7.el7 软件包。
?
(1)创建虚拟服务器
若群集的 VIP 地址为 192.168.149.10,针对 TCP 80 端口提供负载分流服务,使用的调
度算法为轮询,则对应的 ipvsadm 命令操作如下所示。对于负载均衡调度器来说,VIP 必须
是本机实际已启用的 IP 地址。
?
?
(2)添加服务器节点
为虚拟服务器 192.168.149.10?添加四个服务器节点,IP 地址依次为 192.168.10.11~13,
对应的 ipvsadm 命令操作如下所示。若希望使用保持连接,还应添加“-p 60”选项,其中
60 为保持时间(单位为 s)。
?
?
(5)保存负载分配策略
使用导出/导入工具 ipvsadm-save/ipvsadm-restore 可以保存、恢复 LVS 策略。当然也
可以快速清除、重建负载分配策略。
?
(2)设置共享目录
NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)。在 exports 文件
中设置共享资源时,记录格式为“目录位置
客户机地址(权限选项)”。例如,若要将文件
夹/opt/wwwroot 共享给 192.168.7.0/24 网段使用,允许读写操作,具体配置如下所示。
?(3)启动 NFS 服务程序
?
(1)安装 rpcbind 软件包,并启动 rpcbind 服务。
若要正常访问 NFS 共享资源,客户机中也需要安装 rpcbind 软件包,并启动 rpcbind
系统服务。另外,为了使用 showmount 查询工具,建议将 nfs-utils 软件包也一并装上。
[root@localhost ~]# yum -y install rpcbind nfs-utils
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl start rpcbind
?
如果已经安装了 nfs-utils 软件包,则客户机也可以使用 showmount 查看 NFS 服务器端
共享了哪些目录,查询格式为“showmount -e 服务器地址”。
[root@localhost ~]# showmount -e 192.168.110.13
?
(2)手动挂载 NFS 共享目录。
以 root 用户身份执行 mount 操作,将 NFS 服务器共享的/opt/wwwroot 目录挂载到本地
目录/var/www/html。
[root@localhost ~]# mount 192.168.110.13:/opt/wwwroot /var/www/html
[root@localhost ~]# tail -l /etc/mtab
[root@localhost ~]# vim /var/www/html/index.html
?
(3)fstab 自动挂载设置。
修改/etc/fstab 配置文件,加入 NFS 共享目录的挂载设置。注意将文件系统类型设为
nfs,挂载参数建议添加_netdev(设备需要网络)。若添加 soft、intr 参数可以实现软挂载,
允许在网络中断时放弃挂载。这样,客户机就可以在每次开机后自动挂载 NFS 共享资源了。
[root@localhost ~]# vim /etc/fstab
?
?