一篇文章教会你 LVS———NAT模式和DR模式部署配置

 What  is  LVS

什么是LVS

LVS(Linux Virtual Server)是一种高性能的、基于Linux的服务器集群技术,用于实现负载均衡。LVS工作在OSI模型的第四层(传输层),即TCP/IP协议栈的传输层,因此它也被称为四层交换机。LVS通过负载均衡技术将网络请求分发到后端的一组服务器上,从而提高了系统的整体处理能力、可靠性和可扩展性。

LVS的工作模式 

  1. NAT(网络地址转换)模式:在这种模式下,LVS作为客户端和服务器之间的网关,所有的请求和响应都需要经过LVS。LVS将客户端的请求报文的目标地址(IP地址和端口)修改为后端服务器的IP地址,然后将报文发送给选中的服务器。服务器处理完请求后,将响应报文发送给LVS,LVS再将响应报文的目标地址修改为客户端的IP地址,然后将报文发送给客户端。这种模式的优点是配置简单,但LVS会成为网络瓶颈,因为所有的请求和响应都需要经过LVS。

  2. DR(直接路由)模式:在这种模式下,LVS和服务器都配置在同一个局域网内,并且LVS和服务器都配置有相同的VIP(虚拟IP地址)。客户端的请求报文直接发送给VIP,LVS根据负载均衡算法选择一台服务器,然后将请求报文的目标MAC地址修改为选中服务器的MAC地址,并将报文发送给该服务器。服务器处理完请求后,直接将响应报文发送给客户端,而不需要经过LVS。这种模式的优点是性能高,因为LVS只处理请求报文的路由,不处理响应报文,且服务器直接响应客户端,减少了网络延迟。

  3. TUN(隧道)模式:在这种模式下,LVS将请求报文封装在IP隧道中,然后发送给选中的服务器。服务器处理完请求后,将响应报文封装在IP隧道中,发送给LVS。LVS再将响应报文解封装,并发送给客户端。这种模式的优点是LVS和服务器可以跨网段部署,但会增加一定的处理开销。

 LVS的优点

  1. 高性能
    • LVS工作在传输层(TCP/IP协议栈的第四层),相比工作在更高层的负载均衡器(如HTTP负载均衡器),它可以处理更多的并发连接和更高的吞吐量。
    • LVS可以直接在内核级别处理网络流量,减少了上下文切换和用户态/内核态之间的数据复制,从而提高了处理效率。
  2. 高可用性
    • LVS支持多种负载均衡算法,如轮询(Round Robin)、最少连接(Least Connections)、源地址哈希(Source Hashing)等,可以根据实际情况选择合适的算法来优化负载均衡效果。
    • LVS支持健康检查(Health Check)机制,可以实时监控后端服务器的状态,一旦发现服务器故障,可以自动将其从负载均衡池中移除,确保服务的高可用性。
  3. 可扩展性
    • LVS可以很容易地扩展后端服务器的数量,以应对不断增长的业务需求。
    • 支持多种工作模式(NAT、DR、TUN),可以根据网络环境和需求选择合适的模式,以适应不同的应用场景。
  4. 成本低廉
    • LVS是基于开源的Linux操作系统实现的,因此不需要额外的硬件或软件许可费用。
    • 与商业负载均衡器相比,LVS具有更高的性价比,特别适合预算有限但又需要高性能负载均衡的场景。
  5. 灵活性和可定制性
    • LVS提供了丰富的配置选项和参数,可以根据实际需求进行灵活配置。
    • 支持与各种商业和开源的Web服务器、应用服务器和数据库等后端服务集成,提供了广泛的兼容性。
  6. 透明性
    • 对于客户端来说,LVS是完全透明的。客户端不需要知道后端服务器的存在和数量,只需要与LVS的虚拟IP地址通信即可。
    • 这种透明性简化了客户端的配置和管理,降低了维护成本。
  7. 强大的社区支持
    • LVS拥有庞大的用户社区和开发者社区,可以获得丰富的文档、教程、案例和解决方案等资源。
    • 社区中的专家和爱好者会不断贡献新的功能、优化和修复漏洞,推动LVS的不断发展和完善。

LVS的术语及解释 

  1. 负载均衡(Load Balancing)
    • 将网络流量分发到多个服务器上,以平衡服务器的负载,提高系统的可用性和性能。
  2. 调度算法(Scheduling Algorithm)
    • 用于确定哪个服务器接收客户端请求的算法。常见的调度算法包括轮询(Round Robin)、加权轮询(Weighted Round Robin)、源地址哈希(Source Hashing)等。
  3. 虚拟IP(Virtual IP, VIP)
    • 一个虚拟的IP地址,用于代表一组服务器。客户端将请求发送到虚拟IP,然后由负载均衡器将请求分发到实际的服务器上。
  4. 调度器(Scheduler)
    • 负责根据调度算法将客户端请求分发到实际服务器的组件。LVS支持多种调度器模式,如NAT(网络地址转换)、DR(直接路由)和TUN(隧道)等。
  5. 后端服务器(Real Server, RS)
    • 实际处理客户端请求的服务器。负载均衡器将请求转发到后端服务器上,并将响应返回给客户端。
  6. 健康检查(Health Check)
    • 负载均衡器会定期检查后端服务器的状态,以确定其是否正常工作。如果服务器不可用,负载均衡器会将其从服务器池中移除,以避免将请求发送到故障服务器上。
  7. 反向代理(Reverse Proxy)
    • LVS可以作为反向代理服务器使用,将客户端请求发送到后端服务器,并将响应返回给客户端。这样客户端无需直接与后端服务器通信,提高了安全性和灵活性。
  8. ipvsadm
    • 用户空间的命令行工具,用于管理集群服务及集群服务上的RS等。ipvsadm用来定义规则,IPVS(内核空间的netfilter INPUT HOOK之上的程序)则利用ipvsadm定义的规则工作。
  9. Director/Balancer
    • 也称为负载均衡器或分发器,负责接收客户端的请求,并根据调度算法将请求分发到后端服务器。
  10. DIP(Director IP)
    • 负载均衡器(Director)的内网IP地址,用于内部网络通信。
  11. RIP(Real Server IP)
    • 后端服务器的IP地址,实际处理客户端请求。
  12. NAT模式
    • 通过地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。
  13. DR模式
    • 通过直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此方法。控制管理的计算机接收到请求包时直接送到参与集群的节点。
  14. TUN模式
    • 在TUN模式下,LVS将请求报文封装在IP隧道中,然后发送给选中的服务器。服务器处理完请求后,将响应报文封装在IP隧道中,发送给LVS。LVS再将响应报文解封装,并发送给客户端。

It's officially started 

What  is  LVS--NAT

LVS-NAT模式,全称为Virtual Server via Network Address Translation(VS/NAT),是LVS(Linux Virtual Server)负载均衡技术中的一种重要工作模式。该模式主要通过网络地址转换(NAT)技术实现负载均衡,具体工作原理和特点如下:

工作原理

  1. 请求接收与转发
    • 客户端(Client)向LVS负载均衡器(Director Server)的虚拟IP(VIP)发送请求。
    • LVS根据预设的调度算法(如轮询、最少连接等),选择一台后端真实服务器(Real Server)来处理请求。
    • LVS将请求报文的目标地址(即VIP)修改为选中的Real Server的IP地址,并将修改后的请求报文发送给该Real Server。
  2. 请求处理与响应
    • Real Server接收到请求报文后,发现目标地址是自己的IP地址,于是处理该请求。
    • 处理完成后,Real Server将响应报文发送给LVS负载均衡器。
    • LVS在接收到Real Server的响应报文后,将报文的源地址(即Real Server的IP地址)修改为VIP,然后将修改后的响应报文发送给客户端。

特点

  1. 地址转换
    • LVS-NAT模式通过修改请求和响应报文的IP地址来实现负载均衡,即源地址和目标地址的NAT(网络地址转换)。
  2. 网络要求
    • 所有的后端Real Server和LVS负载均衡器(Director Server)必须在同一个IP网络(子网)内,因为NAT操作需要在局域网内部完成。
  3. 配置简单
    • 相比其他模式(如DR模式、TUN模式),NAT模式在配置上相对简单,不需要对Real Server进行过多的配置。
  4. 性能考虑
    • 由于所有的请求和响应都需要经过LVS负载均衡器进行地址转换,因此LVS可能会成为性能瓶颈,特别是在高并发场景下。
  5. 适用场景
    • LVS-NAT模式适用于内部网络环境,特别是当后端Real Server数量不多,且客户端与服务器之间的网络带宽不是主要瓶颈时。

应用实例

在实际应用中,LVS-NAT模式常用于构建高性能的Web服务器集群、数据库服务器集群等场景。通过LVS-NAT模式,可以将来自客户端的大量请求分散到多台Real Server上进行处理,从而提高整个系统的处理能力和可靠性。

综上所述,LVS-NAT模式是LVS负载均衡技术中的一种重要工作模式,它通过NAT技术实现负载均衡,具有配置简单、适用场景广泛等优点。然而,在高并发场景下,LVS-NAT模式可能会成为性能瓶颈,因此需要根据具体的应用场景和需求进行选择。

 

LVS-------NAT模式配置

环境配置

pubserver:eth0->192.168.88.240,eth1->192.168.99.240
client1:eth0->192.168.88.10,网关192.168.88.5
lvs1: eth0 -> 192.168.88.5;eth1->192.168.99.5
web1:eth1->192.168.99.100;网关192.168.99.5
web2:eth1->192.168.99.200;网关192.168.99.5

代码实操
# 创建4台虚拟机
 
[root@myhost ~]# vm clone client1 lvs1 web{1..2}
 
 
# 初始化虚拟机
 
[root@myhost ~]# virsh console client1  # 连接client1控制台
 
localhost login: root
 
Password: 123456
 
# 登陆之后,将以下内容粘贴到终端
 
hostnamectl set-hostname client1
 
nmcli connection modify "System eth0" con-name eth0
 
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.88.10/24 autoconnect yes ipv4.gateway 192.168.88.5
 
nmcli connection down eth0
 
nmcli connection up eth0
 
 
# 退出
 
[root@localhost ~]# exit
 
# 退出之后,按ctrl+]可回到真机
 
 
# 真机通过ssh连接client1
 
[root@myhost ~]# rm -f ~/.ssh/known_hosts 
 
[root@myhost ~]# ssh 192.168.88.10
 
 
 
# 配置第2台机器作为lvs1
 
[root@myhost ~]# virsh console lvs1
 
localhost login: root
 
Password: 123456
 
 
# 登陆之后,将以下内容复制到命令行
 
hostnamectl set-hostname lvs1
 
nmcli connection modify "System eth0" con-name eth0
 
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.88.5/24 autoconnect yes
 
nmcli connection down eth0
 
nmcli connection up eth0
 
 
rm -f /etc/sysconfig/network-scripts/ifcfg-eth1
 
nmcli connection add con-name eth1 ifname eth1 type ethernet autoconnect yes ipv4.method manual ipv4.addresses 192.168.99.5/24
 
reboot     # 重启系统,使得eth1网卡生效
 
 
# 按ctrl+]可回到真机
 
 
# 真机通过ssh连接lvs1
 
[root@myhost ~]# ssh 192.168.88.5
 
 
 
 
# 配置第3台机器作为web1
 
[root@myhost ~]# virsh console web1
 
localhost login: root
 
Password: 123456
 
 
# 登陆之后,将以下内容复制到命令行
 
hostnamectl set-hostname web1
 
nmcli connection modify "System eth0" con-name eth0
 
nmcli connection modify eth0 autoconnect no
 
rm -f /etc/sysconfig/network-scripts/ifcfg-eth1
 
nmcli connection add con-name eth1 ifname eth1 type ethernet autoconnect yes ipv4.method manual ipv4.addresses 192.168.99.100/24 ipv4.gateway 192.168.99.5
 
reboot
 
 
# 按ctrl+]可回到真机
 
 
# 真机通过ssh连接web1
 
[root@myhost ~]# ssh 192.168.99.100
 
 
# 配置第4台机器作为web2
 
[root@myhost ~]# virsh console web2
 
localhost login: root
 
Password: 123456
 
 
# 登陆之后,将以下内容复制到命令行
 
hostnamectl set-hostname web2
 
nmcli connection modify "System eth0" con-name eth0
 
nmcli connection modify eth0 autoconnect no
 
rm -f /etc/sysconfig/network-scripts/ifcfg-eth1
 
nmcli connection add con-name eth1 ifname eth1 type ethernet autoconnect yes ipv4.method manual ipv4.addresses 192.168.99.200/24 ipv4.gateway 192.168.99.5
 
reboot
 
 
# 按ctrl+]可回到真机
 
 
# 真机通过ssh连接web2
 
[root@myhost ~]# ssh 192.168.99.200

 关闭防火墙和selinux

pubserver准备管理环境
# 创建工作目录
 
[root@pubserver ~]# mkdir cluster
 
[root@pubserver ~]# cd cluster/
 
 
#创建主配置文件
 
[root@pubserver cluster]# vim ansible.cfg
 
[defaults]
 
inventory = inventory
 
host_key_checking = false  # 不检查主机密钥
 
 
# 创建主机清单文件及相关变量
 
[root@pubserver cluster]# vim inventory
 
[clients]
 
client1 ansible_host=192.168.88.10
 
 
[webservers]
 
web1 ansible_host=192.168.99.100
 
web2 ansible_host=192.168.99.200
 
 
[lb]
 
lvs1 ansible_host=192.168.88.5
 
 
[all:vars]   # all是ansible自带的组,表示全部主机
 
ansible_ssh_user=root
 
ansible_ssh_pass=a
 
 
# 创建文件目录,用于保存将要拷贝到远程主机的文件
 
[root@pubserver cluster]# mkdir files
 
 
# 编写yum配置文件
 
[root@pubserver cluster]# vim files/local88.repo
 
[BaseOS]
 
name = BaseOS
 
baseurl = ftp://192.168.88.240/dvd/BaseOS
 
enabled = 1
 
gpgcheck = 0
 
 
[AppStream]
 
name = AppStream
 
baseurl = ftp://192.168.88.240/dvd/AppStream
 
enabled = 1
 
gpgcheck = 0
 
 
[rpms]
 
name = rpms
 
baseurl = ftp://192.168.88.240/rpms
 
enabled = 1
 
gpgcheck = 0
 
[root@pubserver cluster]# vim files/local99.repo
 
[BaseOS]
 
name = BaseOS
 
baseurl = ftp://192.168.99.240/dvd/BaseOS
 
enabled = 1
 
gpgcheck = 0
 
 
[AppStream]
 
name = AppStream
 
baseurl = ftp://192.168.99.240/dvd/AppStream
 
enabled = 1
 
gpgcheck = 0
 
 
[rpms]
 
name = rpms
 
baseurl = ftp://192.168.99.240/rpms
 
enabled = 1
 
gpgcheck = 0
 
 
# 编写用于上传yum配置文件的playbook
 
[root@pubserver cluster]# vim 01-upload-repo.yml
 
---
 
- name: config repos.d
 
  hosts: all
 
  tasks:
 
    - name: delete repos.d  # 删除repos.d目录
 
      file:
 
        path: /etc/yum.repos.d
 
        state: absent
 
 
    - name: create repos.d  # 创建repos.d目录
 
      file:
 
        path: /etc/yum.repos.d
 
        state: directory
 
        mode: '0755'
 
 
- name: config local88      # 上传repo文件到88网段
 
  hosts: clients,lb
 
  tasks:
 
    - name: upload local88
 
      copy:
 
        src: files/local88.repo
 
        dest: /etc/yum.repos.d/
 
 
- name: config local99      # 上传repo文件到99网段
 
  hosts: webservers
 
  tasks:
 
    - name: upload local99
 
      copy:
 
        src: files/local99.repo
 
        dest: /etc/yum.repos.d/
 
        
 
[root@pubserver cluster]# ansible-playbook 01-upload-repo.yml

配置LVS----NAT

配置2台web服务器
代码实操 
# 创建首页文件,文件中包含ansible facts变量
 
[root@pubserver cluster]# vim files/index.html
 
Welcome from {{ansible_hostname}}
 
 
# 配置web服务器
 
[root@pubserver cluster]# vim 02-config-webservers.yml
 
---
 
- name: config webservers
 
  hosts: webservers
 
  tasks:
 
    - name: install nginx  # 安装nginx
 
      yum:
 
        name: nginx
 
        state: present
 
 
    - name: upload index   # 上传首页文件到web服务器
 
      template:
 
        src: files/index.html
 
        dest: /usr/share/nginx/html/index.html
 
 
    - name: start nginx    # 启动服务
 
      service:
 
        name: nginx
 
        state: started
 
        enabled: yes
 
 
[root@pubserver cluster]# ansible-playbook 02-config-webservers.yml
 
 
# 在lvs1上测试到web服务器的访问
 
[root@lvs1 ~]# curl http://192.168.99.100
 
Welcome from web1
 
[root@lvs1 ~]# curl http://192.168.99.200
 
Welcome from web2
安装LVS 
[root@pubserver cluster]# vim 04-inst-lvs.yml
 
---
 
- name: install lvs
 
  hosts: lb
 
  tasks:
 
    - name: install lvs  # 安装lvs
 
      yum:
        name: ipvsadm
        state: present
        
[root@pubserver cluster]# ansible-playbook 04-inst-lvs.yml
配置LVS 
# 为web服务器创建虚拟服务器,使用rr调度算法
 
[root@lvs1 ~]# ipvsadm -A -t 192.168.88.5:80 -s rr
 
# 查看配置
 
[root@lvs1 ~]# ipvsadm -Ln  # L是列出,n是使用数字,而不是名字
 
 
# 向虚拟服务器中添加RIP
 
[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.100 -w 1 -m
 
[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.200 -w 2 -m
 
# 查看配置
 
[root@lvs1 ~]# ipvsadm -Ln
 
 
# 验证
 
[root@client1 ~]# for i in {1..6}
 
> do
 
> curl http://192.168.88.5
 
> done
 
Welcome from web2
 
Welcome from web1
 
Welcome from web2
 
Welcome from web1
 
Welcome from web2
 
Welcome from web1
 
 
# 删除配置。(如果配置有错,用以下命令删除重配置)
 
[root@lvs1 ~]# ipvsadm -D -t 192.168.88.5:80
 
 
 
# 修改调度模式为加权轮询
 
[root@lvs1 ~]# ipvsadm -E -t 192.168.88.5:80 -s wrr
验证配置 
# 验证配置
 
[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.5; done
 
Welcome from web2
 
Welcome from web2
 
Welcome from web1
 
Welcome from web2
 
Welcome from web2
 
Welcome from web1

What  is  LVS--DR 

LVS(Linux Virtual Server)是一种广泛使用的开源负载均衡软件,它基于Linux内核实现,能够高效地分发网络请求到后端服务器。LVS支持多种负载均衡模式,其中DR(Direct Routing)模式是其中一种重要且常用的模式。

LVS-DR模式概述

LVS-DR模式,即直接路由模式,是一种通过二层网络(数据链路层)直接转发数据包到后端真实服务器的负载均衡技术。在这种模式下,客户端的请求直接路由到后端真实服务器,而不是先经过负载均衡服务器。这种模式可以减少负载均衡服务器的负载,提高系统的整体性能。

工作原理

  1. 请求接收
    • 客户端发送请求到Director Server(负载均衡器),请求的数据报文(源IP是CIP,目标IP是VIP)到达内核空间。
    • Director Server和Real Server(真实服务器)在同一个网络中,数据通过二层数据链路层来传输。
  2. 请求转发
    • 内核空间判断数据包的目标IP是本机VIP时,IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务。
    • 如果是集群服务,IPVS重新封装数据包,修改源MAC地址为Director Server的MAC地址,修改目标MAC地址为Real Server的MAC地址,但源IP地址与目标IP地址保持不变,然后将数据包发送给Real Server。
  3. 请求处理
    • Real Server接收到请求后,处理请求并生成响应报文。
    • 响应报文通过Real Server的物理网卡直接发送给客户端,不经过Director Server。

特点与优势

  • 减少负载:由于响应报文直接由Real Server发送给客户端,不经过Director Server,因此减轻了Director Server的负载。
  • 高性能:由于减少了数据包的转发次数,提高了系统的整体性能。
  • 配置简单:相对于其他模式,DR模式的配置较为简单。

注意事项

  • 网络要求:Director Server和Real Server必须在同一个物理网络中,且它们的IP地址需要在同一网段内。
  • ARP问题:由于所有服务器都配置有相同的VIP地址,可能会导致ARP通信的紊乱。因此,需要设置内核参数(如arp_ignore和arp_announce)来避免ARP冲突。
  • 网关设置:Real Server的网关不能指向Director Server的IP地址,以确保响应报文不会经过Director Server。

部署步骤

部署LVS-DR模式通常包括以下几个步骤:

  1. 环境准备:确保所有服务器(Director Server和Real Server)的网络环境配置正确,且在同一物理网络中。
  2. 安装和配置LVS:在Director Server上安装并配置LVS软件,加载IPVS内核模块。
  3. 配置VIP地址:在Director Server和Real Server上配置相同的VIP地址。
  4. 设置内核参数:修改内核参数以避免ARP冲突。
  5. 配置负载均衡策略:在Director Server上配置负载均衡策略,如轮询(RR)、最少连接(LC)等。
  6. 测试与调优:进行负载测试,根据测试结果调整负载均衡策略和服务器配置。

综上所述,LVS-DR模式是一种高效、简单的负载均衡技术,适用于需要高性能和可扩展性的应用场景。

 


 

 LVS------DR配置

 配置 LVS调度器(192.168.100.21)
 配置虚拟IP地址(VIP)
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ll
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# vi ifcfg-ens33:0
 
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.255

[root@localhost network-scripts]# ifup ens33:0
[root@localhost network-scripts]# ip addr                ####查看 lo:0 接口上设的IP是否出现
配置负载分配策略 
[root@localhost /]# ipvsadm -v
[root@localhost ~]# modprobe ip_vs
[root@localhost ~]# cat /proc/net/ip_vs
[root@localhost ~]# yum -y install ipvsadm
[root@localhost ~]# ipvsadm -A -t 192.168.100.100:80 -s rr                #### 可以 ipvsadm -ln 查看下
[root@localhost ~]# ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.22:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.23:80 -g -w 1
[root@localhost ~]# ipvsadm-save > /opt/ipvsadm  

[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.100.100:80 rr
  -> 192.168.100.22:80            Route   1      0          0         
  -> 192.168.100.23:80            Route   1      0          0 
配置 NFS共享存储(192.168.100.24) 
rpm -q nfs-utils    ###如果没装,yum -y install nfs-utils
rpm -q rpcbind      ###如果没装,yum -y install rpcbind

[root@localhost ~]# mkdir /opt/51xue /opt/52xue
[root@localhost ~]# echo 'i am superman 51xue' > /opt/51xue/index.html
[root@localhost ~]# echo 'you are pig 52xue' > /opt/52xue/index.html
[root@localhost ~]# vi /etc/exports                          #####添加下面二行(共享出去)
/opt/51xit 192.168.100.0/24 (rw,sync)           
/opt/52xit 192.168.100.0/24 (rw,sync)

[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/opt/52xue 192.168.100.0/24
/opt/51xue 192.168.100.0/24
配置 节点服务器(192.168.100.22) 
配置虚拟IP地址 
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0

DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.255
ONBOOT=yes

[root@localhost network-scripts]# ifup lo:0
[root@localhost network-scripts]# ip addr                   ####我是最小化安装
看看 lo:0 接口上设的IP是否出现

[root@localhost network-scripts]# vi /etc/rc.local 
/sbin/route add -host 192.168.100.100 dev lo:0                 ####在末尾添加

[root@localhost network-scripts]# route add -host 192.168.100.100 dev lo:0
( -bash: route: command not found     #### 出现这个报错就 yum -y install net-tools 安装这个工具)
 调整/proc响应参数
[root@localhost network-scripts]# vi /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

[root@localhost network-scripts]# sysctl -p                    ####查看是否生效
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
安装httpd 挂载测试页
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mount 192.168.100.24:/opt/51xue /var/www/html/
[root@localhost ~]# df -Th                       ####查看挂载情况
[root@localhost ~]# vi /etc/fstab 
192.168.100.24:/opt/51xue /var/www/html nfs defaults,_netdev 0 0        ###开机自动挂载,注意格式对齐
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl enable nfs

[root@localhost ~]# showmount -e 192.168.100.24        ####如果还没发布,请到存储服务器发布下,exportfs -rv(如果报错就是配置出错了)
Export list for 192.168.100.24:
/opt/52xue 192.168.100.0/24
/opt/51xue 192.168.100.0/24
配置 节点服务器(192.168.100.23) 
配置虚拟IP地址
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0

DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
ONBOOT=yes

[root@localhost network-scripts]# ifup lo:0
[root@localhost network-scripts]# ip addr              ####我是最小化安装
看看 lo:0 接口上设的IP是否出现

[root@localhost network-scripts]# vi /etc/rc.local 
/sbin/route add -host 192.168.100.100 dev lo:0                ####在末尾添加

[root@localhost network-scripts]# route add -host 192.168.100.100 dev lo:0
( -bash: route: command not found     #### 出现这个报错就 yum -y install net-tools 安装这个工具)
调整/proc响应参数 
[root@localhost network-scripts]# vi /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

[root@localhost network-scripts]# sysctl -p                 ####查看是否生效

   ...............
安装httpd 挂载测试页 
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mount 192.168.100.24:/opt/52xue /var/www/html/
[root@localhost ~]# df -Th                       ####查看挂载情况
[root@localhost ~]# vi /etc/fstab 
192.168.100.24:/opt/52xue /var/www/html nfs defaults,_netdev 0 0        ###开机自动挂载,注意格式对齐
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl enable nfs

[root@localhost ~]# showmount -e 192.168.100.24     
Export list for 192.168.100.24:
/opt/52xue 192.168.100.0/24
/opt/51xue 192.168.100.0/24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值