设为首页 收藏本站
查看: 851|回复: 0

[经验分享] CentOS 7下搭建高可用集群

[复制链接]

尚未签到

发表于 2014-12-23 11:47:53 | 显示全部楼层 |阅读模式
wKioL1Q17gOBKebXAAHGkw7ZGFI130.jpg
本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为192.168.122.169 。
一、安装集群软件必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件
二、配置防火墙1、禁止防火墙和selinux
  • # systemctl disable firewalld
  • # systemctl stop firewalld
修改/etc/sysconfig/selinux确保SELINUX=disabled,然后执行setenforce 0或者reboot服务器以生效
2、设置防火墙规则
  • # firewall-cmd --permanent --add-service=high-availability
  • # firewall-cmd --add-service=high-availability
三、各节点之间主机名互相解析分别修改2台主机名分别为node1和node2,在centos 7中直接修改/etc/hostname加入本机主机名和主机表,然后重启网络服务即可。
  • #vi /etc/hostname
  • node1
  • #systemctl restart network.service
  • #hostname
  • node1
配置2台主机的主机表,在/etc/hosts中加入
  • 192.168.122.168 node1
  • 192.168.122.169 node2
四、各节点之间时间同步在node1和node2分别进行时间同步,可以使用ntp实现。
  • [iyunv@node1 ~]# ntpdate 172.16.0.1 //172.16.0.1 为时间服务器
五、各节点之间配置ssh的无密码密钥访问。下面的操作需要在各个节点上操作。
  • # ssh-keygen -t rsa -P ‘’   #这个生成一个密码为空的公钥和一个密钥,把公钥复制到对方节点上即可
  • # ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2 #对方主机名用登录用户名
两台主机都要互相可以通信,所以两台主机都得互相生成密钥和复制公钥,相互的节点上的hosts文件是都要解析对方的主机名, 192.168.122.168 node1 192.168.122.169 node2
  • # ssh node2 ‘date’;date #测试一下是否已经互信
六、通过pacemaker来管理高可用集群1、创建集群用户为了有利于各节点之间通信和配置集群,在每个节点上创建一个hacluster的用户,各个节点上的密码必须是同一个。
  • # passwd hacluster
  • Changing password for user hacluster.
  • New password:
  • Retype new password:
  • passwd: all authentication tokens updated successfully.
2、设置pcsd开机自启动
  • # systemctl start pcsd.service
  • # systemctl enable pcsd.service
3、集群各节点之间进行认证
  • # pcs cluster auth node1 node2Username: hacluster Password: node1: Authorized node2: Authorized
4、创建并启动集群
  • [iyunv@z1 ~]# pcs cluster setup --start --name my_cluster node1 node2
  • node1: Succeeded
  • node1: Starting Cluster...
  • node2: Succeeded
  • node2: Starting Cluster...
5、设置集群自启动
  • # pcs cluster enable –all
6、查看集群状态信息
  • [iyunv@z1 ~]# pcs cluster status
7、设置fence设备这个可以参考
corosync默认启用了stonith,而当前集群并没有相应的stonith设备,因此此默 认配置目前尚不可用,这可以通过如下命令验证:
  • #crm_verify -L -V
可以通过如下面命令禁用stonith:
  • #pcs property set stonith-enabled=false(默认是true)
8、配置存储高可用集群既可以使用本地磁盘来构建纯软件的镜像型集群系统,也可以使用专门的共享磁盘装置来构建大规模的共享磁盘型集群系统,充分满足客户的不同需求。
共享磁盘主要有iscsi或DBRD。本文并没有使用共享磁盘。
9、配置浮点IP不管集群服务在哪运行,我们要一个固定的地址来提供服务。在这里我选择192.168.122.101作为浮动IP,给它取一个好记的名字 ClusterIP 并且告诉集群 每30秒检查它一次。
  • # pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.122.170 cidr_netmask=24 op monitor interval=30s
  • # pcs update VIP op monitor interval=15s
10、配置apache服务在node1和node2上安装httpd ,确认httpd开机被禁用
  • # systemctl status httpd.service;
配置httpd监控页面(貌似不配置也可以通过systemd监控),分别在node1和node2上执行
  • # cat > /etc/httpd/conf.d/status.conf << EOF
  • SetHandler server-status
  • Order deny,allow
  • Deny from all
  • Allow from localhost
  • EOF
首先我们为Apache创建一个主页。在centos上面默认的Apache docroot是/var/www/html,所以我们在这个目录下面建立一个主页。
node1节点修改如下:
  • [iyunv@node1 ~]# cat <<-END >/var/www/html/index.html
  • Hello node1
  • END
node2节点修改如下:
  • [iyunv@node2 ~]# cat <<-END >/var/www/html/index.html
  • Hello node2
  • END
下面语句是将httpd作为资源添加到集群中:
  • #pcs resource create WEB apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status"
11、创建group将VIP和WEB resource捆绑到这个group中,使之作为一个整体在集群中切换。(此配置为可选)
  • # pcs resource group add MyGroup VIP
  • # pcs resource group add MyGroup WEB
12、配置服务启动顺序以避免出现资源冲突,语法:(pcs resource group add的时候也可以根据加的顺序依次启动,此配置为可选)
  • # pcs constraint order [action] then [action]
  • # pcs constraint order start VIP then start WEB
13、指定优先的 Location (此配置为可选)Pacemaker 并不要求你机器的硬件配置是相同的,可能某些机器比另外的机器配置要好。这种状况下我们会希望设置:当某个节点可用时,资源就要跑在上面之类的规则。为了达到这个效果我们创建location约束。同样的,我们给他取一个描述性的名字(prefer-node1),指明我们想在上面跑WEB 这个服务,多想在上面跑(我们现在指定分值为50,但是在双节点的集群状态下,任何大于0的值都可以达到想要的效果),以及目标节点的名字:
  • # pcs constraint location WEB prefers node1=50
  • # pcs constraint location WEB prefers node2=45
这里指定分值越大,代表越想在对应的节点上运行。
14、资源粘性(此配置为可选)一些环境中会要求尽量避免资源在节点之间迁移。迁移资源通常意味着一段时间内无法提供服务,某些复杂的服务,比如Oracle数据库,这个时间可能会很长。
为了达到这个效果,Pacemaker 有一个叫做“资源粘性值”的概念,它能够控制一个服务(资源)有多想呆在它正在运行的节点上。
Pacemaker为了达到最优分布各个资源的目的,默认设置这个值为0。我们可以为每个资源定义不同的粘性值,但一般来说,更改默认粘性值就够了。资源粘性表示资源是否倾向于留在当前节点,如果为正整数,表示倾向,负数则会离开,-inf表示负无穷,inf表示正无穷。
  • # pcs resource defaults resource-stickiness=100
常用命令汇总:查看集群状态:#pcs status
查看集群当前配置:#pcs config
开机后集群自启动:#pcs cluster enable –all
启动集群:#pcs cluster start –all
查看集群资源状态:#pcs resource show
验证集群配置情况:#crm_verify -L -V
测试资源配置:#pcs resource debug-start resource
设置节点为备用状态:#pcs cluster standby node1


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38499-1-1.html 上篇帖子: 在CentOS上配置基于主机的入侵检测系统(IDS) 下篇帖子: 朝鲜红星Linux新版曝光:苹果范儿
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表