集群学习分享:CentOS7使用pcs+nginx+nfs快速搭建web

 利用corosync、pacemaker、pcs、nfs 和 nginx 快速搭建高可用集群,本文vmware虚拟机操作系统centos7。

虚拟机节点基本信息:

主机名ip
pcsnas192.168.146.149
pcsnode01192.168.146.150
pcsnode02192.168.146.151
pcsnode03192.168.146.148

 

 

 

 

 

 

vip配置:

vip192.168.146.150

 

 

 

一.Corosync和pacemaker的了解:

Corosync是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。也就是说,corosync是Messaging Layer集群信息层软件,需要pacemaker资源管理器,才能构成一个完整的高可用集群。它也是运行于心跳层的开源软件。(是集群框架引擎程序)

Pacemaker也就是Cluster Resource Manager(简称CRM),是一个集群资源管理器。它利用群集基础构建(corosync或heartbeat)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务的最大可用性。

Pacemaker和corosync,前者用于资源的转移,后者用于心跳的检测。结合起来使用,实现对高可用架构的自动管理。心跳检测使用来检测服务器是否还在提供服务,若出现服务器异常,就认为它挂掉了,此时pacemaker将会对资源进行转移。
二.原理:

Pacemaker是提供高可用服务,其与corosync一起使用可以检测心跳。
————————————————
版权声明:本文为CSDN博主「Pika Yxy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46074899/article/details/107838372220.

2.pcsnode01-03节点安装软件

yum install corosync pacemaker pcs nginx -y

3.配置pcsnode01-03节点nginx的配置文件:

[root@pcsnode01 ~]# cat /etc/nginx/nginx.conf 
user  root;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    server {
    # 这里指定的是监听所有IP
      listen *:80 default_server;
      server_name _;
    # 指定的路径
       root /var/www/web;
    }
}

注意:不要启动 nginx,因为pcs会调动启动nginx,如果启动会导致集群无法挂上。

4.关闭全部节点防火墙

systemctl stop firewalld

开机不启动防火墙:

systemctl disable firewalld

5.全部节点关闭selinux:

vi /etc/selinux/config

SELINUX=enforcing改为disabled

6.全部节点配置主机名和hosts:

vi /etc/hosts

192.168.146.149 pcsnode01
192.168.146.150 pcsnode02
192.168.146.151 pcsnode03
192.168.146.148 pcsnas

7.pcsnode01-03节点设置hacluster

#安装软件包的时候会自动创建一个hacluster账户,这个用户用于群集间通信的身份验证,必须在节点上设置密码以启用此账户。 
echo 'hacluster' | passwd --stdin hacluster

8.配置pcsnas的nfs

1.配置NFS文件共享
注:此步骤在其中一台主机完成即可。
首先创建一个文件用于共享使用。

mkdir /var/nfs

2.然后编辑配置文件:

[root@pcsnas ~]#vi /etc/exports

/var/nfs    *(rw,sync,no_root_squash,no_subtree_check)

3.#启动服务
systemctl start nfs-server
systemctl enable nfs-server


9.利用pcs配置pcsnode01-03节点的集群:

1.在任意一个节点上验证所有的节点 使用前面设置的hacluster账户 输入之前设置的密码
[root@pcsnode01 ~]# pcs cluster auth pcsnode01 pcsnode02 pcsnode03 
Username: hacluster 
Password: 
pcsnode01: Authorized 
pcsnode02: Authorized
pcsnode03:Authorized

2.利用pcs setup 自动创建命名为cluster群集

[root@pcsnode01 ~]#pcs cluster setup --name cluster1 pcsnode01 pcsnode02 pcsnode03

3.由于没有 stonith 设备,需要设置禁用stonith设备。 
pcs property set stonith-enabled=false 

4.然后启动所有节点 
pcs cluster start --all

5.创建 VIP 的资源
pcs resource  create  vip ocf:heartbeat:IPaddr2 ip=192.168.146.250 cidr_netmask=24

6.创建nfs的资源:
pcs resource create web_file ocf:heartbeat:Filesystem device=192.168.146.148:/var/nfs directory=/var/www/web

7.创建 nginx 的资源:
pcs resource  create  web ocf:heartbeat:nginx op monitor interval=30s

创建资源关系
# 因为这些资源都需要在同一台服务器上运行,所以需要配置同一个组中。 
pcs resource group add web_cluster vip web_file web 
# 同时这里需要配置优先级,以保证nginx不会启动出错。
pcs constraint location vip prefers pcsnode01=50 pcsnode02=100 pcsnode03=150
pcs constraint location web_file prefers pcsnode01=50 pcsnode02=100 pcsnode03=150
pcs constraint location web prefers pcsnode01=50 pcsnode02=100 pcsnode03=150

8.配置好状态:

1.检查集群状态资源启动在03节点上:
[root@pcsnode03 ~]# pcs status
Cluster name: cluster1
Stack: corosync
Current DC: pcsnode02 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
Last updated: Sun Mar 21 22:13:22 2021
Last change: Sun Mar 21 20:50:45 2021 by root via cibadmin on pcsnode02

3 nodes configured
3 resource instances configured

Online: [ pcsnode01 pcsnode02 pcsnode03 ]

Full list of resources:

 Resource Group: web_cluster
     vip        (ocf::heartbeat:IPaddr2):       Started pcsnode03
     web_file   (ocf::heartbeat:Filesystem):    Started pcsnode03
     web        (ocf::heartbeat:nginx): Started pcsnode03

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

2.检查03节点的浮动vip:
[root@pcsnode03 ~]# ip addr
....
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 00:0c:29:9c:f4:f5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.146.151/24 brd 192.168.146.255 scope global noprefixroute dynamic ens33
       valid_lft 1082sec preferred_lft 1082sec
    inet 192.168.146.250/24 brd 192.168.146.255 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a5da:6027:4d97:2d06/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

3.查看挂载的nfs:
[root@pcsnode03 ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
....
192.168.146.148:/var/nfs   50G  2.3G   48G    5% /var/www/web

9.简答的测试:

1.首先测试一下 nginx 能否正常执行:
编写一个简单的测试文件:
vi /var/nfs/index.html

<h1>hello,world!!</h1>

使用浏览器访问vip查看网页是否正常 http://192.168.146.250/显示:

hello,world!!

2.查询 web 服务在那一主机,关闭那一台主机,看资源会不会转移。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值