大数据最全【群集】——keepalived+LVS-DR,2024年最新2024最新大厂大数据开发面经

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

echo “- - -” >> /sys/class/scsi_host/host1/scan
echo “- - -” >> /sys/class/scsi_host/host2/scan


        到目前的配置,web1和web2可以ping通全网,而公网和私网则不能相互ping通。GFS1和GFS2每台服务器上都有一块sdb磁盘。


### 2、Keepalived


        搭建Keepalived实现Lvs的双机热备。本次使用yum方式安装keepalived和ipvsadm管理工具。LVS1和LVS2都需要那种,这里以LVS1为例。



[root@lvs1 ~]# yum -y install keepalived ipvsadm
[root@lvs1 ~]# systemctl enable keepalived


#### 2.1、配置主调度器



[root@lvs1 ~]# cd /etc/keepalived/
[root@lvs1 keepalived]# cp keepalived.conf keepalived.conf.back
[root@lvs1 keepalived]# vim keepalived.conf
! Configuration File for keepalived

global_defs {
…省略部分内容
  router_id LVS1 //主调度器名称
}
 
vrrp_instance VI_1 {
  state MASTER //主调度器的热备状态
  interface ens33 //修改接口网卡
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
      auth_type PASS
      auth_pass 1111
  }
  virtual_ipaddress {
      200.0.0.100 //配置漂移地址
  }
}  
[root@lvs1 keepalived]# systemctl start keepalived
[root@lvs1 keepalived]# ip addr show dev ens33 //查看漂移地址
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 00:0c:29:16:da:97 brd ff:ff:ff:ff:ff:ff
  inet 200.0.0.1/24 brd 200.0.0.255 scope global ens33
      valid_lft forever preferred_lft forever
  inet 200.0.0.100/32 scope global ens33 //此时漂移地址在主调度器上
      valid_lft forever preferred_lft forever
  inet6 fe80::c3cf:e745:3647:394a/64 scope link
      valid_lft forever preferred_lft forever


#### 2.2、配置备份调度器



[root@lvs2 ~]# cd /etc/keepalived/
[root@lvs2 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@lvs2 keepalived]# vim keepalived.conf
! Configuration File for keepalived

global_defs {
…省略部分内容
  router_id LVS2 //备份调度器名称
}  

vrrp_instance VI_1 {
  state BACKUP //备份调度器的热备状态
  interface ens33 //修改接口网卡
  virtual_router_id 51
  priority 99 //修改优先级别
  advert_int 1
  authentication {
      auth_type PASS
      auth_pass 1111
  }
  virtual_ipaddress {
      200.0.0.100 //配置漂移地址
  }
}  
[root@lvs2 keepalived]# systemctl start keepalived
[root@lvs2 keepalived]# ip addr show dev ens33 //查看漂移地址
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 00:0c:29:55:f7:8d brd ff:ff:ff:ff:ff:ff
  inet 200.0.0.2/24 brd 200.0.0.255 scope global ens33
      valid_lft forever preferred_lft forever
  inet6 fe80::15ae:efbc:5794:874b/64 scope link
      valid_lft forever preferred_lft forever


        备份服务器仍处于备份状态,因此备份服务器不会为ens33接口添加VIP地址。当主服务器失效时,VIP地址才会过来,达到了双机热备的功能。


### 3、LVS-DR


#### 3.1、负载均衡


        两台LVS都需要配置选项3.1中的内容(关闭ICMP重定向,配置策略)。


#### 3.1.1、关闭icmp重定向



[root@lvs1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@lvs1 ~]# sysctl -p


#### 3.1.2、配置负载分配策略



[root@lvs1 ~]# ipvsadm -C //清除原有策略
[root@lvs1 ~]# ipvsadm -A -t 200.0.0.100:80 -s rr
[root@lvs1 ~]# ipvsadm -a -t 200.0.0.100:80 -r 200.0.0.3 -g -w 1
[root@lvs1 ~]# ipvsadm -a -t 200.0.0.100:80 -r 200.0.0.4 -g -w 1
[root@lvs1 ~]# ipvsadm-save //保存策略
-A -t lvs1:http -s rr
-a -t lvs1:http -r 200.0.0.3:http -g -w 1
-a -t lvs1:http -r 200.0.0.4:http -g -w 1
[root@lvs1 ~]# systemctl enable ipvsadm


#### 3.2、配置主调度器


        通过配置文件添加两台web节点。



[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 { //在vrrp配置模块下面添加节点
…省略部分内容
  virtual_ipaddress {
      200.0.0.100
  }
}
…省略部分内容
virtual_server 200.0.0.100 80 { //以下内容需要修改添加节点信息
  delay_loop 15
  lb_algo rr
  lb_kind DR
  protocol TCP
   
  real_server 200.0.0.3 80 {
      weight 1
      TCP_CHECK {
          connect_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 4
      }  
  }
  real_server 200.0.0.4 80 {
      weight 1
      TCP_CHECK {
          connect_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 4
      }
  }
}
[root@lvs1 ~]# systemctl restart keepalived


#### 3.3、配置备份调度器


        相同的方法配置完主调度器后,接着配置备份调度器。



[root@lvs2 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 { //在vrrp配置模块下面添加节点
…省略部分内容
  virtual_ipaddress {
      200.0.0.100
  }
}
…省略部分内容
virtual_server 200.0.0.100 80 { //以下内容需要修改添加节点信息
  delay_loop 15
  lb_algo rr
  lb_kind DR
  protocol TCP
   
  real_server 200.0.0.3 80 {
      weight 1
      TCP_CHECK {
          connect_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 4
      }  
  }
  real_server 200.0.0.4 80 {
      weight 1
      TCP_CHECK {
          connect_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 4
      }
  }
}
[root@lvs2 ~]# systemctl restart keepalived


### 4、GFS


#### 4.1、web端


        GFS的配置如下表所示,两台服务器实现复制卷,复制卷的名称为share。


        在两个web服务器将share复制卷挂载到web服务器的/var/www/html下。




| IP | 主机名 | 挂载盘 | 挂载目录 |
| --- | --- | --- | --- |
| 192.168.1.1 | gfs1 | /dev/sdb(20G) | /b3 |
| 192.168.1.2 | gfs2 | /dev/sdb(20G) | /b3 |


#### 4.1.1、web配置VIP


        每个web服务器上都需要配置漂移地址(VIP)。



[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@web1 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=200.0.0.100
NETMASK=255.255.255.255
ONBOOT=yes
[root@web1 network-scripts]# ifup lo:0
[root@web1 network-scripts]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
      inet 200.0.0.100 netmask 255.255.255.255
      loop txqueuelen 1 (Local Loopback)

[root@web1 network-scripts]# vim /etc/rc.local
…省略部分内容
/sbin/route add -host 200.0.0.100 dev lo:0 //添加一条路由
[root@web1 network-scripts]# route add -host 200.0.0.100 dev lo:0


#### 4.1.2、关闭部分arp应答



[root@web1 ~]# vim /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@web1 ~]# sysctl -p


#### 4.1.3、配置httpd



[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo “111” > /var/www/html/index.html
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# systemctl enable httpd


#### 4.2、配置GFS端


        两台GFS服务器都需要配置,以下gfs1和gfs2配置相同,我以gfs1为例,gfs2相反配置即可。



[root@gfs1 ~]# vim /etc/hosts //GFS本地节点解析
192.168.1.1 node1
192.168.1.2 node2
[root@gfs1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
[root@gfs1 ~]# systemctl start glusterd
[root@gfs1 ~]# systemctl enable glusterd
[root@gfs1 ~]# gluster peer probe node1 //本身在gfs1上操作,所以node1也可以不执行
peer probe: success. Probe on localhost not needed
[root@gfs1 ~]# gluster peer probe node2
peer probe: success.
[root@gfs1 ~]# gluster peer status //查看GFS群集状态
Number of Peers: 1

Hostname: node2
Uuid: 16bc8386-0168-4c21-8ed3-e762f1bd8c77
State: Peer in Cluster (Connected)


#### 4.2.1、创建复制卷


        使用fdisk命令创建一个20G的磁盘空间为sdb1并格式化。两台GFS服务器创建成复制卷,卷名为share。



[root@gfs1 ~]# fdisk /dev/sdb
n→p→回车→回车→回车→w保存退出
[root@gfs1 ~]# mkfs.xfs /dev/sdb1
[root@gfs1 ~]# gluster volume create share replica 2 node1:/b1 node2:/b1 force
volume create: share: success: please start the volume to access data
[root@gfs1 ~]# gluster volume start share
volume start: share: success


#### 4.2.2、web挂载复制卷


web1配置如下:



[root@web1 ~]# yum -y install glusterfs glusterfs-fuse
[root@web1 ~]# vim /etc/hosts
192.168.1.1 node1
192.168.1.2 node2
[root@web1 ~]# mount -t glusterfs node1:share /var/www/html/
[root@web1 ~]# df -h
文件系统             容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root   17G 3.8G   14G   23% /
devtmpfs             473M     0 473M   0% /dev
tmpfs               489M 144K 489M   1% /dev/shm
tmpfs               489M 7.1M 482M   2% /run
tmpfs               489M     0 489M   0% /sys/fs/cgroup
/dev/sda1           1014M 173M 842M   18% /boot
tmpfs                 98M   12K   98M   1% /run/user/0
/dev/sr0             53M   53M     0 100% /media
node1:share           17G 3.8G   14G   23% /var/www/html


web2配置如下:



[root@web2 ~]# yum -y install glusterfs glusterfs-fuse
[root@web2 ~]# vim /etc/hosts
192.168.1.1 node1
192.168.1.2 node2
[root@web2 ~]# mount -t glusterfs node1:share /var/www/html/
[root@web2 ~]# df -hT
文件系统           类型           容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root xfs             17G 3.9G   14G   23% /
devtmpfs           devtmpfs       473M     0 473M   0% /dev
tmpfs               tmpfs           489M 144K 489M   1% /dev/shm
tmpfs               tmpfs           489M 7.1M 482M   2% /run
tmpfs               tmpfs           489M     0 489M   0% /sys/fs/cgroup
/dev/sda1           xfs           1014M 173M 842M   18% /boot
tmpfs               tmpfs           98M   12K   98M   1% /run/user/0
/dev/sr0           iso9660         53M   53M     0 100% /media
node1:share         fuse.glusterfs   17G 3.8G   14G   23% /var/www/html


        到目前为止,复制卷就已经创建完了。下一步需要测试了,在挂载盘中创建文件,查看网页内容。


#### 4.2.3、测试


        在上面挂了盘以后,之前的内容就已经消失了,所以还得从新创建一个新的网页内容。在web1上创建一个内容,内容会同步到web2上,客户端查看的内容就会是后面创建的内容。



[root@web1 ~]# echo “666” > /var/www/html/index.html
…web2查看网页内容
[root@web2 ~]# cat /var/www/html/index.html
666


![](https://img-blog.csdnimg.cn/654ffc16b61d4ff9a6387980229a0869.png)



### 5、zabbix


        无监控不运维,最后搭建Zabbix服务器分别监控LVS服务器和web服务器的性能。


#### 5.1、安装


#### 5.1.1、创建zabbix源


        挂盘后将文件复制到创建的目录中,yum仓库目录指向zabbix。



[root@zabbix ~]# mkdir /zabbix
[root@zabbix ~]# cp /media/* /zabbix
[root@zabbix ~]# cd /zabbix
[root@zabbix zabbix]# createrepo .
[root@zabbix ~]# rm -rf /etc/yum.repos.d/*
[root@zabbix ~]# vim /etc/yum.repos.d/a.repo
[a]
name=a
baseurl=file:///zabbix
gpgcheck=0


#### 5.1.2、安装MariaDB



[root@zabbix ~]# yum -y install mariadb-server mariadb
[root@zabbix ~]# systemctl start mariadb
[root@zabbix ~]# systemctl enable mariadb
[root@zabbix ~]# mysqladmin -u root password “123”


#### 5.1.3、安装Zabbix



[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
[root@zabbix ~]# mysql -u root -p
Enter password: //输入密码
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by “456”;
Query OK, 0 rows affected (0.00 sec)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by “456”;
Query OK, 0 rows affected (0.00 sec)

[外链图片转存中…(img-6gGqHXdz-1715040502761)]
[外链图片转存中…(img-MRhHFlGf-1715040502762)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值