实验目的: 实现web服务的高可用
实验环境: 虚拟机软件为VMware6.0版. 虚拟系统为32位Redhat5.4 企业版.
实验拓补图:
说明: 新建两台虚拟机网卡使用NAT模式. VIP192.168.145.254为提供web服务的IP地址.配置时为root用户.
配置步骤:
Node1:
1.配置静态IP
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
将'”BOOTPROTO=”后该为”static”.
并添加如下内容:
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
确认显示出以下内容:
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
确认显示出以下内容:
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 //查看集群信息
可能会显示如下信息
稍等一下该集群就可完全正常启动了
#watch -n 1 'crm status' //如果感觉刷新crm status很纠结,可使用此命令
如果看到如下内容表示该集群已可正常使用
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
会显示如下内容:
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.刷新本机浏览器会发现显示内容已变为: