Centos7.7下建立无共享存储的WEB集群(pcs+pacemaker+corosync)

简介: 本篇内容记录了Centos7.7下建立无共享存储的WEB集群的相关操作。
规划设计
操作系统安装
群集组件安装
群集节点准备
2创建VIP资源
3创建Web/Apache资源
4配置约束
5群集测试


1.准备工作(重要)


群集组件和节点的准备我在另一张博客中已经介绍,可以参考


https://blog.csdn.net/qq_45714272/article/details/106017375


[root@rs1 corosync]# crm_verify -L -V                    ## 检查配置有无错误
禁用stonish
[root@rs1 corosync]# pcs property set stonith-enabled=false


2.创建vip资源


[root@rs1 corosync]# pcs resource create VirtualIP
ocf💓IPaddr2 ip=192.168.43.100 cidr_netmask=24 op monitor
interval=30s


创建VIP资源如果不生效,只要禁用掉stonish设备即可


pcs property set stonith-enabled=false


[root@rs1 ~]# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.43.100 cidr_netmask=24 op monitor interval=30s[root@rs1 ~]# pcs status
[root@rs1 ~]# ip a
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: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:46:eb:23 brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.10/24 brd 192.168.43.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::a0b8:9a41:6d1b:7285/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
可以看出,添加的虚拟IP没有在rs1身上,我们禁用stonish设备
[root@rs1 ~]# pcs property set stonith-enabled=false
[root@rs1 ~]# ip a
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: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:46:eb:23 brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.10/24 brd 192.168.43.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet 192.168.43.100/24 brd 192.168.43.255 scope global secondary ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::a0b8:9a41:6d1b:7285/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
成功啦!


详细介绍可以看我另一篇博客


https://blog.csdn.net/qq_45714272/article/details/106007691


开始用pcs创建资源:


创建Web/Apache资源(节点都要做)
开两台虚拟机,安装以下服务,并配置。如下:
firewall-cmd --permanent --add-service=http && firewall-cmd --reload
yum install -y httpd
echo "$(hostname)" >> /var/www/html/index.html
systemctl restart httpd
systemctl enable httpd
创建Apache状态URL(节点都要做)
vim /etc/httpd/conf.d/status.conf
<location  /server-status>
        setHandler server-status
        Order deny,allow
        deny from all
        Allow from 127.0.0.1
</location>


创建Apache资源


pcs resource create Website ocf💓apache
configfile=/etc/httpd/conf/httpd.conf
statusurl=“http://localhost/server-status” \ op monitor interval=1min


删除Apache资源


pcs resource delete Website


查看状态


[root@rs1 ~]# pcs status
Cluster name: cluster1
Stack: corosync
Current DC: rs1 (version 1.1.20-5.el7-3c4c782f70) - partition with quorum
Last updated: Fri May  8 10:27:09 2020
Last change: Fri May  8 10:26:53 2020 by root via cibadmin on rs1
2 nodes configured
2 resources configured
Online: [ rs1 rs2 ]
Full list of resources:
 VIP  (ocf::heartbeat:IPaddr2): Started rs2
 Website  (ocf::heartbeat:apache):  Starting rs1
Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled


无共享存储的web群集就搭建好了,我们可以通过VIP来访问web群集,一台服务器宕机,我们可以利用pcs工具对VIP进行迁移,访问另一台服务器,实现了HA


对集群进行约束


确保资源在同一节点


1.添加约束确保资源在同一节点


[root@rs1 ~]# pcs constraint
Location Constraints:
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
[root@rs1 ~]# pcs constraint colocation add Website with VirtualIP INFINITY
[root@rs1 ~]# pcs status
Cluster name: cluster1
Stack: corosync
Current DC: rs1 (version 1.1.20-5.el7-3c4c782f70) - partition with quorum
Last updated: Fri May  8 10:51:57 2020
Last change: Fri May  8 10:51:52 2020 by root via cibadmin on rs1
2 nodes configured
2 resources configured
Online: [ rs1 rs2 ]
Full list of resources:
 VirtualIP  (ocf::heartbeat:IPaddr2): Started rs1
 Website  (ocf::heartbeat:apache):  Starting rs1
Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled


2.IP飘逸


[root@rs1 ~]# ip a
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: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:46:eb:23 brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.10/24 brd 192.168.43.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::a0b8:9a41:6d1b:7285/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@rs1 conf.d]# pcs cluster standby rs1
[root@rs2 ~]# ip a
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: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:01:55:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.20/24 brd 192.168.43.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet 192.168.43.100/24 brd 192.168.43.255 scope global secondary ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::a0b8:9a41:6d1b:7285/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::1777:3e7e:f136:6cf/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@rs1 ~]# pcs status
Cluster name: cluster1
Stack: corosync
Current DC: rs1 (version 1.1.20-5.el7-3c4c782f70) - partition with quorum
Last updated: Sat May  9 02:08:53 2020
Last change: Sat May  9 02:08:47 2020 by root via cibadmin on rs1
2 nodes configured
1 resource configured
Node rs1: standby
Online: [ rs2 ]
Full list of resources:
 VirtualIP  (ocf::heartbeat:IPaddr2): Started rs2
Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled


恢复:


[root@rs1 ~]#  pcs cluster  unstandby rs1
[root@rs1 ~]# pcs status
Cluster name: cluster1
Stack: corosync
Current DC: rs1 (version 1.1.20-5.el7-3c4c782f70) - partition with quorum
Last updated: Sat May  9 02:11:31 2020
Last change: Sat May  9 02:11:23 2020 by root via cibadmin on rs1
2 nodes configured
1 resource configured
Online: [ rs1 rs2 ]
Full list of resources:
 VirtualIP  (ocf::heartbeat:IPaddr2): Started rs2
Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled


3.先后顺序


[root@rs1 conf.d]# pcs constraint order VirtualIP then Website
Adding VirtualIP Website (kind: Mandatory) (Options: first-action=start then-action=start)
[root@rs1 conf.d]# pcs constraint
Location Constraints:
Ordering Constraints:
  start VirtualIP then start Website (kind:Mandatory)
Colocation Constraints:
Ticket Constraints:


4.优先级


[root@rs1 conf.d]# pcs constraint location Website prefers rs1=50
[root@rs1 conf.d]# pcs constraint location Website prefers rs2=100


5.指定


配置排列约束,让vip与web 资源运行在一起,分数为100
[root@node1 ~]# pcs constraint colocation add vip with web 150
[root@rs1 conf.d]# pcs constraint colocation add VirtualIP with Website 100


相关文章
|
4月前
|
安全 算法 Linux
CentOS7下部署长亭科技雷池Web应用防火墙(WAF)开源社区版
CentOS7下部署长亭科技雷池Web应用防火墙(WAF)开源社区版
446 0
|
7月前
|
Kubernetes Linux Docker
百度搜索:蓝易云【CentOS7系统规划搭建 kubernetes 集群详细教程。】
现在,你已经成功规划和搭建了一个基于CentOS 7的Kubernetes集群。你可以使用kubectl命令管理和部署应用程序到集群中。根据需求,你还可以配置和调优集群的各项参数和插件,以满足特定的应用需求。
174 0
|
4月前
|
消息中间件 Kafka Linux
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
70 0
|
4月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
95 7
|
9天前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
23天前
|
存储 分布式计算 资源调度
centos 部署Hadoop-3.0-高性能集群(二)
centos 部署Hadoop-3.0-高性能集群(二)
13 0
centos 部署Hadoop-3.0-高性能集群(二)
|
23天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
18 0
|
1月前
|
Kubernetes 应用服务中间件 网络安全
CentOS7上二进制部署Kubernetes高可用集群(v1.18版本)
CentOS7上二进制部署Kubernetes高可用集群(v1.18版本)
133 0
|
3月前
|
Java Linux 开发工具
Centos7搭建minio分布式集群
Centos7搭建minio分布式集群
|
7月前
|
Java 应用服务中间件 网络安全
手动部署Java Web环境(CentOS 7)
本篇教程介绍如何手动在ECS实例上部署Java web项目,适用于刚开始使用阿里云进行建站的个人用户。
手动部署Java Web环境(CentOS 7)