搭建Haproxy + Keepalived +NFS集群

一、实验环境:

需要6台服务器:默认vnet8网卡

192.168.7.10 还原新系统,开机;ha1

192.168.7.11还原新系统,开机;ha2

192.168.7.12 还原新系统,添加新网卡VMnet1,开机; web1,

192.168.7.13 还原新系统,添加新网卡VMnet1,开机; web2

192.168.7.14还原新系统,添加新网卡VMnet1,开机; web3

192.168.7.15还原新系统,添加两块SCSI的100G硬盘,开机;nfs

二、ha1\ha2\web1\web2\web3\nfs 时间同步:

以ha1为例:

[root@ha1 ~]# vim /etc/chrony.conf
#pool 2.rocky.pool.ntp.org iburst
pool ntp.aliyun.com iburst
[root@ha1 ~]# systemctl enable --now chronyd
[root@ha1 ~]# chronyc sources -v (有IP证明时间同步成功)
[root@ha1 ~]# date
[root@ha1 ~]# clock -w

三、web1\web2\web3编辑ens192网卡:

以web1为例:
[root@web1~]# cd /etc/NetworkManager/system-connections
[root@web1 system-connections]# ls
[root@web1 system-connections]# cp ens160.nmconnection ens192.nmconnection
[root@web1 system-connections]# vim ens192.nmconnection

3.1 web1\web2\web3都需要修改网卡信息

四、web1\web2\web3重启电脑使其生效

五、关机并做快照,快照名称:实验环境初始化完成;后开机

六、ha1安装haproxy,备份haproxy配置文件

[root@ha1 ~]# dnf -y install haproxy		安装haproxy
[root@ha1 ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak  备份haproxy的配置文件
[root@ha1 ~]#

七、编辑haproxy配置文件

[root@ha1 ~]# vim /etc/haproxy/haproxy.cfg	编辑haproxy的配置文件
68     bind *:80					绑定80端口
72 #    use_backend static          if url_static		后台使用静态的注释掉
 85 backend app											后台应用程序
 86     balance     roundrobin							算法是轮询
 87     server  app1 192.168.7.12:80 check			后台所有的web服务器的IP
 88     server  app2 192.168.7.13:80 check
 89     server  app3 192.168.7.14:80 check

八、将
haproxy的配置文件远程复制到192.168.7.11的配置文件目录下

[root@ha1 ~]# scp /etc/haproxy/haproxy.cfg 192.168.7.11:/etc/haproxy/haproxy.cfg将haproxy的配置文件远程复制到192.168.7.11的配置文件目录下(scp远程复制)

九、创建
haproxy
的服务配置文件

[root@ha1 ~]#  vi /etc/firewalld/services/haproxy.xml 创建haproxy的服务配置文件(用来声明:haproxy做负载均衡的)

十、将本地系统上的
/etc/firewalld/services/haproxy.xml文件复制到IP地址为192.168.7.11的远程主机的/etc/firewalld/services/目录下

[root@ha1 ~]# scp /etc/firewalld/services/haproxy.xml 192.168.7.11:/etc/firewalld/services/	     #将本地系统上的/etc/firewalld/services/haproxy.xml文件复制到IP地址为192.168.7.11的远程主机的/etc/firewalld/services/目录下

十一、ha1、ha2安装keepalived,做调度器的高可用

[root@ha1 ~]# dnf -y install keepalived			安装keepalived,做调度器的高可用
[root@ha2 ~]# dnf -y install keepalived			安装keepalived,做调度器的高可用

十二、备份
keepalived的配置文件

[root@ha1 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak 备份keepalived的配置文件
[root@ha1 ~]# (如果配置文件写错了,想恢复的命令:cp /etc/keepalived/keepalived.conf.bak /etc/keepalived/keepalived.conf)

十三、编辑
keepalived的配置文件

[root@ha1 ~]# vim /etc/keepalived/keepalived.conf	编辑keepalived的配置文件
! Configuration File for keepalived
vrrp_script chk_haproxy {							定义检查chk_haproxy的脚本
  script "killall -0 haproxy" # check the haproxy process	script "killall -0 haproxy"检查haproxy的进程
  interval 2 # every 2 seconds		interval 2间隔2秒,如果没有问题添加权重2
  weight 2 # add 2 points if OK	
}

vrrp_instance VI_1 {
    state MASTER					状态时主
    interface ens160				网卡接口ens160
    virtual_router_id 51			
    priority 100					优先级100
    advert_int 1	
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {				虚拟IP是192.168.7.199
        192.168.7.199
    }
    track_script {					跟踪的脚本
    chk_haproxy						chk_haproxy
  }
}

十四、将
keepalived的配置文件远程复制到192.168.7.11目录下

[root@ha1 ~]# scp /etc/keepalived/keepalived.conf 192.168.7.11:/etc/keepalived/keepalived.conf		将keepalived的配置文件远程复制到192.168.7.11目录下

十五、ha2编辑
haproxy
的配置文件

[root@ha2 ~]# vim /etc/keepalived/keepalived.conf 			   编辑haproxy的配置文件
9     state BACKUP					状态是备份

12     priority 90					优先级是90

十六、ha1\ha2启动keep alived设置keepalived开机启动,查看ha1\ha2IP地址

[root@ha1 ~]# systemctl start keepalived		启动keepalived
[root@ha1 ~]# 
[root@ha1 ~]# systemctl enable keepalived		设置keepalived开机启动
Created symlink /etc/systemd/system/multi-user.target.wants/keepalived.service → /usr/lib/systemd/system/keepalived.service.
[root@ha1 ~]# 
[root@ha1 ~]# ip addr							查看IP地址				
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:13:3f:d0 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.7.10/24 brd 192.168.7.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 192.168.7.199/32 scope global ens160  	看这个
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe13:3fd0/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@ha2 ~]# systemctl enable --now haproxy	启动haproxy,并设置开机启动	
Created symlink /etc/systemd/system/multi-user.target.wants/haproxy.service → /usr/lib/systemd/system/haproxy.service.
[root@ha2 ~]# 
[root@ha2 ~]# systemctl start keepalived		启动keepalived
[root@ha2 ~]# 
[root@ha2 ~]# systemctl enable keepalived		设置keepalived开机启动
Created symlink /etc/systemd/system/multi-user.target.wants/keepalived.service → /usr/lib/systemd/system/keepalived.service.
[root@ha2 ~]# 
[root@ha2 ~]# ip addr							查看IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:d0:de:95 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.7.11/24 brd 192.168.7.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed0:de95/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

十七、真实机持续Ping 192.168.7.199

十八、ha1模拟发生故障,关机

十九、重新开启ha1虚拟机

二十、web1\web2\web3安装nginx

[root@web1\web2\web3] dnf -y install nginx 安装
nginx
[root@web1 ~]# systemctl enable --now nginx		启动nginx,并设置nginx开机启动

二十一、web1\web2\web3创建网站的测试页面

[root@web1 ~]# echo "1111111111" > /usr/share/nginx/html/index.html			创建网站的测试页面
[root@web2 ~]# echo "2222222222222" > /usr/share/nginx/html/index.html			创建网站的测试页面
[root@web3 ~]#
[root@web3 ~]# echo "3333333333333" > /usr/share/nginx/html/index.html			创建网站的测试页面

二十二、本机浏览器测试:

二十三、nfs下对sdb1、sdc1硬盘进行分区

二十四、nfs下创建物理卷、卷组vg1、逻辑卷lv1

[root@nfs ~]# pvcreate /dev/sdb1 /dev/sdc1		创建物理卷
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.
[root@nfs ~]# 
[root@nfs ~]# vgcreate vg1 /dev/sdb1 /dev/sdc1	创建卷组vg1
  Volume group "vg1" successfully created
[root@nfs ~]# 
[root@nfs ~]# lvcreate -l 100%free -n lv1 vg1	创建逻辑卷lv1
  Logical volume "lv1" created.

二十五、nfs下格式化逻辑卷
lv1

[root@nfs ~]# mkfs.xfs /dev/vg1/lv1				格式化逻辑卷lv1
meta-data=/dev/vg1/lv1           isize=512    agcount=4, agsize=13106688 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=52426752, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=25599, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

二十六、创建
nfs
目录、编辑开机挂在配置文件

[root@nfs ~]# mkdir /nfs						创建nfs目录
[root@nfs ~]# 
[root@nfs ~]# vim /etc/fstab 					编辑开机挂载配置文件
/dev/vg1/lv1           /nfs                     xfs     defaults        0 0   #最后一行添加
[root@nfs ~]# systemctl daemon-reload			重新加载系统进程
[root@nfs ~]# 
[root@nfs ~]# mount -a							重新加载挂载项
[root@nfs ~]# 
[root@nfs ~]# df -hT							查看磁盘容量
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs               tmpfs     1.8G     0  1.8G   0% /dev/shm
tmpfs               tmpfs     726M  9.1M  717M   2% /run
/dev/mapper/rl-root xfs        96G  3.8G   92G   4% /
/dev/sda1           xfs       436M  253M  184M  59% /boot
tmpfs               tmpfs     363M  4.0K  363M   1% /run/user/0
/dev/mapper/vg1-lv1 xfs       200G  1.5G  199G   1% /nfs		看这个

二十七、安装nfs、启动nfs并设置nfs开机启动

[root@nfs ~]# dnf -y install nfs-utils			安装nfs
[root@nfs ~]# systemctl enable --now nfs-server	启动nfs并设置nfs开机启动
[root@nfs ~]# vim /etc/NetworkManager/system-connection/ens160-nmconnectio 编辑ens160网卡的配置文件

二十八、进入nfs网卡配置文件

二十九、关机修改为VMnet1的网卡,后开机

三十、nfs下编辑exports配置文件、将nfs发布出去

[root@nfs ~]# vim /etc/exports 			编辑exports 配置文件
/nfs 192.168.10.0/24(rw,no_root_squash)                         将nfs目录共享给192.168.10网段,可写可读,以匿名用户执行
[root@nfs ~]# exportfs -avr  将nfs发布出去
exporting 192.168.10.0/24:/nfs
[root@nfs ~]# 
[root@nfs ~]# showmount -e			查看nfs的挂载项
Export list for nfs:
/nfs 192.168.10.0/24

三十一、进入nfs的目录下,创建一个测试页面

[root@nfs ~]# cd /nfs/				进入nfs的目录下
[root@nfs nfs]# echo "<h1>NFS Server</h1>" > index.html		创建一个测试页面

三十二、web1\web2\web3安装nfs

dnf -y install nfs-utils			安装nfs
 showmount -e 192.168.10.15		#(web1\web2\web3)分别创建一个192.168.10.15的挂载项
Export list for 192.168.10.15:
/nfs 192.168.10.0/24

三十三、web1\web2\web3编辑
fstab
配置文件

vim /etc/fstab					编辑fstab配置文件
192.168.10.15:/nfs      /usr/share/nginx/html        nfs     defaults        0 0
#将192.168.10.15的nfs目录,挂载到nginx的网站目录下  文件系统nfs 默认参数  不备份,不检查磁盘

#web1-web3下都需要操作
[root@web1 ~]# systemctl daemon-reload			重新加载系统进程
[root@web1 ~]#
[root@web1 ~]# mount -a							重新加载挂载项
[root@web1 ~]#
[root@web1 ~]# df -hT							查看磁盘容量
Filesystem                   Type      Size  Used Avail Use% Mounted on
devtmpfs                     devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs                        tmpfs     1.8G     0  1.8G   0% /dev/shm
tmpfs                        tmpfs     726M  9.1M  717M   2% /run
/dev/mapper/rl_server10-root xfs        96G  3.9G   92G   5% /
/dev/sda1                    xfs       436M  297M  140M  69% /boot
tmpfs                        tmpfs     363M  4.0K  363M   1% /run/user/0
192.168.10.15:/nfs           nfs4      200G  1.5G  199G   1% /usr/share/nginx/html

三十四、真实机上测试

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇