软硬件环境需求
硬件:
1, 两台配置相同的服务器,每个服务器最少配置两个网卡和一个光纤HBA卡(或者ISCSI
卡)
2, 光纤交换机一台(可以用DS4000或者DS400内自带的光纤Hub代替),以太网交换机
一台
3, DS4000系列存储一台,DS300,DS400 也可 此例中的配置为
Blade HS20 8843 *2
Blade Fibre daughter card *2 Blade Qlogic Fibre Switch *1
Bladecenter Cisco Ethernet Swtich *2 DS4500 +EXP500 *1 软件:
1,Redhat advance server3 2,Redhat HA solution for AS3
IP资源:此例中的资源为: 服务器1: Name: node1
heartbeat: 173.1.1.1
Public: 192.168.0.98 服务器2: Name: node2
heartbeat: 173.1.1.2
Public: 192.168.0.99 群集名:RHHA
群集web服务器ip:192.168.0.100
安装步骤:
操作系统安装和配置:
1, 请参照不同服务器的安装指南来安装操作系统,除基本的package外需要安装以下的
package:
a, Kernel development tools b, Kernel Source Code c, Xwindow
2,安装IBM的网卡驱动和HBA卡驱动,并修改网络方面的设置。请参照IP资源部分
a, 通过 /etc/sysconfig/network-scripts/ifcfg-eth* 来修改网卡ip。 b, 修改 /etc/sysconfig/network 来更改服务器名
3, 修改node1的 /etc/hosts文件改后内容如下 192.168.0.99 node2 173.1.1.2 node2 192.168.0.98 node1 173.1.1.1 node1
同时修改 node2的/etc/hosts的内容,方法和内容和node1一样
配置完成后请在node1 和node2 中互相ping对方的服务器名来确保ip设置正确 共享盘的配置:
1, 逻辑盘的映射。请参照SAN或者ISCSI的配置文档. 此例中:
a, 用DS4000 storage manager创建一个HostGroup(RHHA),然后定义两个Host,
并分别把blade中光纤子卡的port number加入各自的Host。
b, 在DS4500中创建两个逻辑盘,并在mapping view中分配给上面创建的
HostGroup。
2, 操作系统共享盘的设置:
a, 在DS4500中映射好逻辑盘后,重新启动node1 和node2,操作系统会发现两个新的磁盘, 此例中为:/dev/sda 和/dev/sdb b,在node1的shell里运行
#fdisk /dev/sdb //注:分区,使用parted也可以
将添加的共享磁盘分为:sda1和sdb1
c,然后在两台服务器上分别编辑/etc/sysconfig/rawdevices文件,将分区绑定到裸设
备:
#vi /etc/sysconfig/rawdevices 加入以下两行 /dev/raw/raw1 /dev/sda1 /dev/raw/raw2 /dev/sdb1
d,重启服务 #service rawdevices restart
启动完成后执行#raw –qa,会显示以下内容 /dev/raw/raw1: bound to major 8, minor 17 /dev/raw/raw2: bound to major 8, minor 18 e,格式化共享磁盘,每个块大小为4K
mkfs.ext3 -j -b 4096 /dev/sda1 mkfs.ext3 -j -b 4096 /dev/sdb1
f, 在node2中执行以上步骤c-e。至此硬件准备工作完成。
安装并配置基本的HA系统
在这里我们只将AS3.0自带的CLUSTER服务配置好,涉及到具体的http,ftp,mysql,oracle的HA服务会在下一部分介绍 1.安装确认系统内安装了AS3.0的HA软件包 我们在这里要用到的软件包主要有两
个,clumanager和redhat-config-cluster 请用rpm –q 命令检查系统是否安装这两个软件包 2.如果没有安装可以通过以下方法安装 1, 使用ISO或光盘,AS3.0共有十一张光盘,我们平时常用的只有前四张,另外
三张为缘代码光盘,最后有四张扩展光盘,其中扩展光盘的第三张是集群软件,还包括了IPVS等软件。 2, 从文件安装,如下图:
此图中,除了安装 两个基本的软件包外,还安装了一些语言的支持包。
3.开始基本的HA配置 在node1系统上,启动xwindows,这里是gnome,开始运行配置工具 选择左下角图标 => 系统设置 =>服务器设置 => Cluster (或者在命令行里运行#redhat-config-cluster)
下一步操作,点菜单栏里的群集(cluster)->配置 (Configure),出现下图:
在Cluster Name处可以更改你设置集群的名字,在这里我设置为RHha 然后我们开始添加集群内的成员,点菜单栏->新建(Add) 如下图所示 (注:此时保证列表处选中Members,才可以出现下面内容)
将两台机器Ip都填写进去,如下图
在这里选中菜单栏里的cluster->shared state,可以查看裸设备设置,如下图
点击确定继续
然后打开菜单栏clusterdaemon properties出现以下窗口
这个窗口就是集群的配置窗口,详细的说明请查看redhat的官方文档 有一个说明的就是中间的那个滑动条,就是配置服务器探测等待15秒,我们不能设的太小,这里我们就默认使用15秒
在clumembd这个窗口里选中Enable Broadcast Heartbeating然后点确定,这时候会弹出一个窗口提示
因为我们配置的就是双节点的HA,所以不用管它,直接点确定 然后在cluster configuration选择保存后退出此窗口
在菜单栏 群集启动本地群集守护进程,稍等一会儿,就会出现以下状态
这里就显示在node1上的cluster配置成功
然后我们就要配置linux2了,配置linux2其实很简单,将node1系统下/etc/cluster.xml文件COPY到node2的/etc/目录下就可以了
(注:cluster.xml是在安装完两个软件包的时候不会产生,它是在第一次运行redhat-config-cluster命令的时候产生的,和AS2.1里的cluster.conf储存内容相同,只不过换了格式。这就是集群主要的配置文件,一定要确保集群上每个节点的此文件都是相同的,另外在redhat的官方文档上强烈警告用户:不要去手动的修改这个xml文件) 将此文件copy上node2以后,在node2命令行里执行 #service clumanager start
系统显示执行成功,再稍等一会儿,你就会发现在linux1上出现了变化,如下图
启动关闭集群服务的命令是service clumanager start | stop
( 注:如果你在配置完成以后不想用图形界面监控节点运行,在shell里运行 #clustat –i 10 / / 状态监控,每10秒中刷新一次
出现如下结果
这样,一个没有包含任何服务的“裸”的集群系统就配置成功了,因为它没有包含任何应用,也没有什么意义,现在举例配置一个常用的HTTP Server。 举例说明:
配置HTTP Server的HA服务
1.给http服务增加共享磁盘 磁盘上将存储两个系统上apache共用的程序文件,也就是说,把apache的DocumnetRoot放到这个共享磁盘上,创建方法同创建裸设备时一样,请注意,这个共享磁盘的作用不同于上面的裸设备
2.创建共享磁盘加载点,配置两台机器上的http服务 启动两台机器,我这里用以前建好的共享硬盘sdb,我以ext3格式将其格式化,在每个机器的根目录下创建文件夹www,为apache的web目录,同时将创建的sdb1分区加载到/www目录下
#mkdir /www
#mount /dev/sdc1 /www //这一步只在linux1上进行就行
然后安装apache,这就不用多说了吧,指出一点是,两台机器上的apache安装必须完全一样,包括配置文件,安装完成后,修改httpd.conf,将其根目录指向/www,我这里是用的是AS3.0自带的apache2.0的RPM包,
在node1上,进入/www目录,在此目录下保存一个index.html作测试使用 这样,两台机器上的http服务就完全配置完成
3.配置基于此集群的http服务 在node1的xwindows,启动集群配置工具(参看上),增加名为httpd的服务如图
点菜单栏"New"服务名为”httpd”,检测时间间隔设置为4秒,httpd服务的启动脚本就是apache的启动脚本,我这里使用的是rpm包默认安装的脚本/etc/rc.d/init.d/httpd
点"确定",就增加了一个服务,然后点击Add Child,出现下图
先给httpd服务增加共享设备Add Device,设备点为我们创建的sdb1,加载点为/www,格式为ext3,模式为”rw”读写模式
点确定,在给此服务添加一个IP地址,这个IP就是客户浏览器访问的IP,我们设置为192.168.0.100,掩码同网络设置,这里设置为255.255.255.0,广播地址设置为192.168.0.255
这样就完全添加成功了, 保存设置,回到集群监控状态
以上所有操作均是在node1上进行,现在为保证node1和node2集群配置相同,将node1的/etc/cluster.xml复制到node2的/etc/cluster.xml,同时启动两台机器上的集群服务,再次查看监控状态图,就发现有新的服务添加了,点击上面的"启用"及"运行"此服务,HTTP服务就开始运行了
这样,整个集群下的http服务就配置完成,并开始运行了
因篇幅问题不能全部显示,请点此查看更多更全内容