Corosync高可用集群的实现

实验目的: 实现web服务的高可用html

实验环境: 虚拟机软件为VMware6.0版. 虚拟系统为32位Redhat5.4 企业版.node

实验拓补图:web

2011-09-15 21-42-13

说明:  新建两台虚拟机网卡使用NAT模式. VIP192.168.145.254为提供web服务的IP地址.配置时为root用户.浏览器

配置步骤:ssh

Node1:ide

1.配置静态IP3d

#vi /etc/sysconfig/network-scripts/ifcfg-eth0日志

将'”BOOTPROTO=”后该为”static”.htm

并添加以下内容:blog

IPADDR=192.168.145.11
NETMASK=255.255.255.0

2.配置主机名

#vi /etc/sysconfig/network

将”HOSTNAME=”后该为”node1.a.org”.

#hostname node1.a.org

#uname –n 

确认显示出如下内容:

p_w_picpath

Node2:

1.配置静态IP

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

将'”BOOTPROTO=”后该为”static”.

并添加以下内容:

IPADDR=192.168.145.12
NETMASK=255.255.255.0

2.配置主机名

#vi /etc/sysconfig/network

将”HOSTNAME=”后该为”node2.a.org”.

#hostname node2.a.org

#uname –n

确认显示出如下内容:

p_w_picpath

Node1:

3.编辑hosts文件

#vi /etc/hosts

添加如下内容

192.168.0.5        node1.a.org node1
192.168.0.6        node2.a.org node2

4.配置ssh公钥认证链接,即ssh链接不须要输入密码

#ssh-keygen -t rsa

#ssh-copy-id –i /root/.ssh/id_rsa.pub 'root@node2'     [注:此命令后需输入Node2上root用户密码]

#ssh node2  'ifconfig'                 

[注:若是不用输入密码便可显示Node2的IP地址表示配置成功]

5.复制hosts文件到Node2

#scp /etc/hosts root@node2:/etc

6.安装所需软件

#yum install –y httpd

#chkconfig httpd off     //关闭httpd服务开机启动

#echo “Node1” > /var/www/html/index.html     //写入网页文件

安装corosync和pacemaker,首先下载所须要以下软件包至本地某专用目录(这里为/root/corosync)

cluster-glue
cluster-glue-libs
heartbeat
openaislib
resource-agents
corosync
heartbeat-libs
pacemaker
corosynclib
libesmtp
pacemaker-libs

#cd /root/corosync

#yum localinstall –y –nogpgcheck ./*

7.编辑配置文件

#cd /etc/corosync

#cp corosync.conf.example corosync.conf

将”totem { ”下”interface { ”中”bindnetaddr:”后改成”192.168.145.0”

添加以下内容:

service {
     ver:   0                   

     name:  pacemaker 
aisexec {                      //定义运行是使用哪一个用户的身份,貌似不写也行
     user: root
     group: root
  }

8.创建日志目录

#mkdir  /var/log/cluster

9.生成authkey文件

#corosync-keygen         //新安装的系统执行此命令时等待时间可能会稍长

#scp -p authkey corosync.conf node2:/etc/corosync    //复制配置文件到Node2

#ssh node2 'mkdir -v /var/log/cluster'

Node2

3.配置ssh

配置ssh公钥认证链接,即ssh链接不须要输入密码

#ssh-keygen -t rsa

#ssh-copy-id –i /root/.ssh/id_rsa.pub 'root@node1' [注:此命令后需输入Node1上root用户密码]

#ssh node1 'ifconfig'

[注:若是不用输入密码便可显示Node1的IP地址表示配置成功]

4.安装所需软件

#yum install –y httpd

#chkconfig httpd off //关闭httpd服务开机启动

#echo “Node2” > /var/www/html/index.html //写入网页文件

安装corosync和pacemaker     [同Node1配置]

#cd /root/corosync

#yum localinstall –y –nogpgcheck ./*

5.同步时间

#hwclock –s

#ssh node1 'hwclock -s'

6.启动服务

#service corosync start

#ssh node1 ‘ service corosync start’

7.定义资源

#crm configure primitive WebIP ocf:heartbeat:IPaddr params ip=192.168.145.254

#crm configure primitive WebServer lsb:httpd

#crm configure group Web WebIP WebServer   

//默认该集群会将资源运行在不一样节点上,定义组资源可将资源运行在一个节点上
[注: 由于是两节点高可用服务所以需执行如下命令定义全局属性]

#crm configure property stonith-enabled=false               //禁用STONITH

#crm configure property no-quorum-policy=ignore       //禁用quorum

8.启动服务

#service corosync start

#ssh node1 'service corosync start'

#crm  status          //查看集群信息

可能会显示以下信息

p_w_picpath

稍等一下该集群就可彻底正常启动了

#watch -n 1 'crm status'   //若是感受刷新crm status很纠结,可以使用此命令

若是看到以下内容表示该集群已可正常使用

p_w_picpath

Current DC: node1.a.org  

显示的为被选为DC的节点

Resource Group: Web
    WebIP    (ocf::heartbeat:IPaddr):        Started node2.a.org
    WebServer  (lsb:httpd):    Started node2.a.org
显示的为哪些资源运行在哪一个节点上

--------------------------------------------------------------------------------

*注:若是发现httpd服务没法正常启动,请先停掉集群服务,命令以下

#service corosync stop

#ssh node1 ‘service corosync stop’

以后再两个节点上启动httpd服务,以后再中止httpd服务.

最后启动集群服务

--------------------------------------------------------------------------------

好了如今验证一下集群的功能

1.在本机的浏览器中输入192.168.145.254

会显示以下内容:

p_w_picpath

2.这里资源运行在Node2上

因此在Node1上执行以下命令

#ssh node2 ‘service corosync stop’

#crm status

Resource Group: Web
WebIP (ocf::heartbeat:IPaddr): Started node1.a.org
WebServer (lsb:httpd): Started node1.a.org

这时会发现资源已经转到Node1上运行

3.刷新本机浏览器会发现显示内容已变为:

p_w_picpath

相关文章
相关标签/搜索