热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Fedora15上做主从、双主模型的集群

Fedora15上做双主模型的集群拓扑如下所示:---------------------|HA1|____|HA2||__________||________|HA1:IP:192.168.1.7824HA2:IP:192.168.1.15124VIP:192.168.1.110一、配置网络属性HA1:#ifconfiteth0192.168.1.7824#routeaddd

Fedora 15上做双主模型的集群 拓扑如下所示:
 
-----------     ----------
|   HA1    |____|  HA2   |
|__________|    |________| HA1:


IP:192.168.1.78/24
HA2:
IP:192.168.1.151/24
VIP:192.168.1.110
一、配置网络属性
HA1:
#ifconfit eth0 192.168.1.78/24
#route add default gw 192.168.1.1
#hostname node1.linuxidc.com
HA2:
#ifconfig eth0 192.168.1.151/24
#route add default gw 192.168.1.1
#hostname node2.linuxidc.com   二、配置主机名及两个之间不实用密码能相互通信
#vim /etc/hosts 添加如下内容
192.168.1.78 node1.linuxidc.com node1
192.168.1.151 node2.linuxidc.com node2
同样在HA2上也添加这些内容
#ping node2|node1能解析出来就OK啦 分别在两个HA上生成一对密钥,如下所示
[root@node1 ~]# ssh-keygen -t rsa  //生成公钥和密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
59:71:5d:4d:4c:6d:71:b1:ec:04:17:26:49:cb:27:a1 root@node1.linuxidc.com
The key's randomart image is:
+--[ RSA 2048]----+
|          . o*.@@|
|           oo.X B|
|          .E + * |
|         o    =  |
|        S      . |
|                 |
|                 |
|                 |
|                 |  //这个图案就是所谓的指纹信息吧,呵呵,RedHat上没有
+-----------------+
[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2    //拷贝公钥到对方机 器上
The authenticity of host 'node2 (192.168.1.151)' can't be established.
RSA key fingerprint is 77:b6:c6:09:51:f9:f4:70:c1:35:81:47:a5:19:f4:d2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node2,192.168.1.151' (RSA) to the list of known hosts.
root@node2's password:     //输入对方机器的密码
Now try logging into the machine, with "ssh 'root@node2'", and check in:   ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
在HA2上做同上的操作,我就不具体演示了!   三、配置yum源,我使用的是163做的镜像源
http://mirrors.163.com/
这上面有对应Fedora的yum源配置使用的说明,我就不做详细阐述了
如果你没有DNS解析域名,还要在/etc/hosts文件中手动添加解析奥,我的如下:
66.35.62.166   mirrors.Fedoraproject.org
213.129.242.84   mirrors.rpmfusion.org
123.58.173.106  mirrors.163.com
这些对应的域名和IP关系大家都会,就是使用ping可以解析出,不解释!   四、安装集群软件
两个节点上都要做的
#yum install corosync pacemaker -y //由于是网络镜像,会比较慢,耐心等会吧! 安装完成之后就是配置了,注意配置的时候选择的端口和地址不能跟已存在的集群冲突,所 以我就做了一下简单的设置
#export ais_port=4000
#export ais_mcast=226.94.1.1 接下来就是配置corosync了:
#cd /etc/corosync/
#cp corosync.conf.example corosync.conf
#vim !$ 把配置改成如下
# Please read the corosync.conf.5 manual page
compatibility: whitetank totem {
 version: 2
 secauth: on
 threads: 0
 interface {
  ringnumber: 0
  bindnetaddr: 192.168.1.0   //指定集群所在的网段的网络号
  mcastaddr: 226.94.1.1  //组播地址
  mcastport: 4000  //端口号
  ttl: 1
 }
} logging {
 fileline: off
 to_stderr: no
 to_logfile: yes
 to_syslog: no
 logfile: /var/log/cluster/corosync.log
 debug: off
 timestamp: on
 logger_subsys {
  subsys: AMF
  debug: off
 }
}
amf {
 mode: disabled
}
####以下是添加的内容
service {
 ver: 1    //定义pacemaker的版本,Fedora上使用版本1,而在RedHat上可以 使用0
 name: pacemaker
}
aisexec {
        user:   root
        group:  root
}
其中注释的内容为所修改的内容
配置完成之后,拷贝一个到另一个节点上
#scp -p  /etc/corosync/corosync.conf node2:/etc/corosync/ 确保没有错误的情况下,可以在HA1上启动了,启动之后还要进行一些列的检测
#/etc/init.d/corosync start 添加认证密钥
#corosync-keygen  //这个要是新机器的话,时间会长一点,要有点耐性等待!
#scp -p authkeys corosync.conf node2:/etc/corosync/
配置完成之后,现在HA1上启动corosync:
#server corosync start
Starting corosync (via systemctl):                         [  OK  ] oK,corosync 服务启动成功!
接下来就是检测集群是否正确启动并且已经可以和其他节点建立集群关系了:
查看corosync引擎是否正常启动:
[root@node1 ~]# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages
Sep 18 23:09:44 node1 smartd[786]: Opened configuration file /etc/smartd.conf
Sep 19 13:41:03 node1 smartd[801]: Opened configuration file /etc/smartd.conf
Sep 19 20:44:55 node1 smartd[680]: Opened configuration file /etc/smartd.conf
[root@node1 ~]# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/cluster/corosync.log
Sep 18 17:12:06 corosync [MAIN  ] Corosync Cluster Engine ('1.4.1'): started and ready to provide service.
Sep 18 17:12:06 corosync [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
Sep 18 17:12:06 corosync [MAIN  ] Corosync Cluster Engine exiting with status 8 at main.c:1702.
Sep 18 17:16:11 corosync [MAIN  ] Corosync Cluster Engine ('1.4.1'): started and ready to provide service. 查看初始化成员节点通知是否正常发出:
[root@node1 ~]#  grep TOTEM /var/log/cluster/corosync.log 检查启动过程中是否有错误产生:
[root@node2 ~]# grep ERROR: /var/log/cluster/corosync.log | grep -v unpack_resources 查看pacemaker是否正常启动:
[root@node1 ~]# grep pcmk_startup /var/log/cluster/corosync.log
Sep 19 13:48:48 corosync [pcmk  ] info: pcmk_startup: CRM: Initialized
Sep 19 13:48:48 corosync [pcmk  ] Logging: Initialized pcmk_startup
Sep 19 13:48:48 corosync [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295
Sep 19 13:48:48 corosync [pcmk  ] info: pcmk_startup: Service: 9
Sep 19 13:48:48 corosync [pcmk  ] info: pcmk_startup: Local hostname: node1.luo
检查完毕,接下来就可以启动另一个节点了,最好在同一个节点上启动所有的其他的集群节 点:
[root@node1 ~]# ssh node2 -- '/etc/init.d/corosync start'
Starting corosync (via systemctl):  [  OK  ]
启动成功了! 接下来就是启动pacemaker了!
[root@node1 corosync]# /etc/init.d/pacemaker  start
Starting pacemaker (via systemctl):                        [  OK  ]
ok,同样启动成功 # ps axf //查看进程
 1724 ?        R      5:59 /usr/lib/heartbeat/stonithd
 1725 ?        R      5:59 /usr/lib/heartbeat/cib
 1726 ?        S      0:00 /usr/lib/heartbeat/lrmd
 1727 ?        R      5:59 /usr/lib/heartbeat/attrd
 1728 ?        S      0:00 /usr/lib/heartbeat/pengine
 1729 ?        R      5:59 /usr/lib/heartbeat/crmd
可以看出已经有进程了 当然这个时候有个关键性的设置,就是关闭防火墙,如果你没有关闭防火墙功能,下面将会 给你带来很大的麻烦,我开始就是没有关闭防火墙,后来看日志才知道,所以你做的时候可 以把防火墙先关闭了,但是在真正应用之中,还是要开启防火墙功能
#setup 然后在里面选择Firewall configure 然后disabled就行了 接下来使用crm的内部命令进行查看
#crm_mon 或crm status
Online: [ node2.linuxidc.com node1.linuxidc.com ]可以看出,集群的节点都启动了
一切准备停当,接下来就是双主集群的配置了! 五、安装apache服务和集群文件系统-GFS2
为了方便验证,我就安装一个apache服务用于测试:
#yum install httpd -y
在HA1上的添加测试页面:
#echo "

node1.linuxidc.com

" >/var/www/html/index.html
在HA2上的添加测试页面:
#echo "

node2.linuxidc.com

" >/var/www/html/index.html
然后把两个节点上的/etc/httpd/conf/httpd.conf的配置文件,保持一下的内容是开启的, 如果有注释的,请去掉注释

    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
保证httpd服务不会随着开机自动启动
#chkconfig httpd off #crm configure property stonith-enabled=false  //关闭stonith设备
#crm configure property no-quorum-policy=ignore //关闭两节点之间的选举
#crm configure 为httpd添加资源
# crm configure primitive WebSite ocf:heartbeat:apache params cOnfigfile=/etc/httpd/conf/httpd.conf op monitor interval=1min
# crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=192.168.1.110 cidr_netmask=32 op monitor interval=30s  //添加一个虚拟IP
[root@node1 ~]# crm status
============
Last updated: Mon Sep 19 23:44:05 2011
Stack: openais
Current DC: node2.linuxidc.com - partition with quorum
Version: 1.1.5-1.fc15-01e86afaaa6d4a8c4836f68df80ababd6ca3902f
2 Nodes configured, 2 expected votes
2 Resources configured.
============ Online: [ node2.linuxidc.com node1.linuxidc.com ]  ClusterIP (ocf::heartbeat:IPaddr2): Started node1.linuxidc.com
 WebSite (ocf::heartbeat:apache): Started node2.linuxidc.com
可以看到两个资源不在同一个节点上,所以需要做一下的设置:
#crm configure colocation website-with-ip INFINITY: WebSite ClusterIP  //做一个 位置约束
然后再使用crm status 查看资源已经都流转到同一个节点上了,如下所示
Online: [ node2.linuxidc.com node1.linuxidc.com ]  ClusterIP (ocf::heartbeat:IPaddr2): Started node1.linuxidc.com
 WebSite (ocf::heartbeat:apache): Started node1.linuxidc.com
还要控制资源的启动停止顺序
#crm configure order apache-after-ip mandatory: ClusterIP WebSite  //定义ip的资 源要在apache的服务启动之前启动 指定优先的Location
#crm configure location prefer-pcmk-l WebSite 50: node1.linuxidc.com #crm configure show  //查看一下自己的配置如下
[root@node1 ~]# crm configure show
node node1.linuxidc.com
node node2.linuxidc.com
primitive ClusterIP ocf:heartbeat:IPaddr2 \
 params ip="192.168.1.110" cidr_netmask="32" \
 op monitor interval="30s"
primitive WebSite ocf:heartbeat:apache \
 params cOnfigfile="/etc/httpd/conf/httpd.conf" \
 op monitor interval="1min"
location prefer-pcmk-l WebSite 50: node1.linuxidc.com
colocation website-with-ip inf: WebSite ClusterIP
order apache-after-ip inf: ClusterIP WebSite
property $id="cib-bootstrap-options" \
 dc-version="1.1.5-1.fc15-01e86afaaa6d4a8c4836f68df80ababd6ca3902f" \
 cluster-infrastructure="openais" \
 expected-quorum-votes="2" \
 stonith-enabled="false" \
 no-quorum-policy="ignore"
rsc_defaults $id="rsc-options" \
 resource-stickiness="100"
如上图所示,资源已经启动了,所以接下来就可以往下做了!
可以在浏览其中输入http://192.168.1.110可以访问web服务了!

推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • linux 禁止指定ip访问
    linux中如何禁止指定的ip访问呢?比如被别人暴力破解,被别人使用不同的密码尝试登录:所以我想直接禁用这些ip的访问.怎么办呢?解决方案:修改配置文件etchosts.deny把 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 原理:dismiss再弹出,把dialog设为全局对象。if(dialog!null&&dialog.isShowing()&&!(Activity.)isFinishing()) ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
author-avatar
无声无无为爱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有