一、实验环境:
需要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
三十四、真实机上测试
