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

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

规划设计
操作系统安装
群集组件安装
群集节点准备
2创建VIP资源
3创建Web/Apache资源
4配置约束
5群集测试


1.准备工作(重要)


群集组件和节点的准备我在另一张博客中已经介绍,可以参考 blog.csdn.net/qq_45714272…

[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:heartbeat: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://developer.aliyun.com/article/1212794?spm=a2c6h.13148508.setting.15.1ad74f0ea5ZVMi


开始用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:heartbeat: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

相关文章
|
2月前
|
存储 Web App开发 移动开发
HTML5 Web 存储详解
HTML5 Web存储提供了两种客户端数据存储机制:**Local Storage**和**Session Storage**。Local Storage用于长期存储数据,即使关闭浏览器数据也依然存在,适用于保存用户偏好设置等信息。Session Storage则在标签或窗口关闭时清除数据,适合存储临时信息。两者均提供了简单的API进行数据的存取操作,但需要注意的是,Web存储并非加密存储,不应存放敏感信息。现代浏览器普遍支持Web存储,合理利用这两种存储方式可提升Web应用的用户体验。
|
2月前
|
存储 缓存 前端开发
Web应用中的存储方式有哪些?
本文首发于微信公众号“前端徐徐”,介绍了几种常见的前端数据存储技术:Cookie、Web Storage(包括 localStorage 和 sessionStorage)、IndexedDB、Cache Storage 和 Memory Storage。每种技术的特点和使用场景不同,适用于不同的开发需求。文章详细解释了它们的使用方法、特点和应用场景,并提供了代码示例。
211 2
Web应用中的存储方式有哪些?
|
2月前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
203 4
|
3月前
|
分布式计算 Hadoop Java
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
本文是一份详细的Hadoop集群搭建指南,基于Hadoop 3.3.4版本和CentOS 8操作系统。文章内容包括虚拟机创建、网络配置、Java与Hadoop环境搭建、克隆虚拟机、SSH免密登录设置、格式化NameNode、启动Hadoop集群以及通过UI界面查看Hadoop运行状态。同时,还提供了常见问题的解决方案。
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
|
7月前
|
存储 缓存 NoSQL
Web Storage与IndexedDB存储
Web Storage(包括sessionStorage和localStorage)提供简单的键值对存储,适合会话数据存储。IndexedDB是浏览器中的NoSQL数据库,支持复杂查询和事务,适用于大量数据存储。简而言之,Web Storage适合简单需求,IndexedDB适合复杂存储和查询。示例代码展示了两者用法。
|
2月前
|
存储 移动开发 缓存
HTML5 Web 存储详解
HTML5 Web 存储包括 `localStorage` 和 `sessionStorage`,前者提供持久存储且无过期时间,后者仅在会话期间有效。两者均支持键值对形式存储数据,容量约为 5-10 MB。`localStorage` 适用于用户偏好设置、登录状态保持及离线应用缓存;`sessionStorage` 则用于临时数据如表单输入。数据以字符串形式存储,可通过 `JSON` 方法处理对象。由于数据存储于本地,不适合存放敏感信息。示例代码展示了如何使用按钮将输入框内容保存至 `localStorage` 并进行清除操作。
|
3月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
616 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
2月前
|
存储 前端开发 API
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
119 0
|
3月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
151 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
4月前
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
122 4
下一篇
DataWorks