引用:
PDF文件请到我的BLOG里下载
七月飞雪的个人BLOG
作者:七月飞雪 Email:xushli@163.net
2004年8月2日
引用:最后修改于2004-8-4,将console下的配置命令已经补充上来....请大家参考
此篇文章参考了chinaunix论坛rdd兄弟文章http://www.chinaunix.net/jh/4/325828.html(Vmware下RedHat AS2.1集群配置StepbyStep)的部分内容 , 另外参考了redhat官方网站上说明文档《Red Hat Cluster Suite Configuring and Managing a luster》 , 较之AS2.1的HA配置 , AS3.0上的配置更加人性化 , 不过较之AS2.1的配置也有了不少不一样的地方 , 这也是我没能按rdd兄弟的文章配置成功的原因 , 网络上又几乎没有关于redhat AS3.0HA配置中文资料 , 连E文的很少 , 我找来找去只找到了redhat官方网站上的配置说明
―――――――――――――――――――――――――――――――――――――――
实施系统软硬件环境
硬件:p4 2.4G , 80G , 512M DDR
宿主机系统:win2000pro sp4
虚拟机软件:Vmware GSX Server 3.1
安装Vmware GSX Server 3.1和Redhat AS3.0的基本系统
1.安装Vmware GSX Server3.1
相信大家都安装过workstation , 过程都差不多 , 这里就不多废话了 , 有一点要提醒大家注意的是 , VMware GSX Server2.5无法打开Vmware workstation4.52虚拟出来的系统 , GSX Server2.5比4.52出来的要早 , 所以 。。。。。。。
2.安装Redhat AS3.0
切记安装上xwindows桌面系统 , 设置此系统hostname为linux1,ip为10.0.0.155
3.COPY并配置另一套AS3.0系统将安装的第一套系统的文件复制到另一个文件夹 , 用编辑器打开rhel3.vmx文件修改displayName?=?"Linux1"到"Linux2"
然后修改此系统的虚拟硬件配置 , 将网卡删除如下图所示 , 进行此步的原因是因为从第一套系统COPY过来的文件如果同时运行 , 两个系统的MAC地址会发生冲突由于将网卡删除 , 所以必须删除后启动第二套系统 , 启动过程中kudzu进程会提示系统有多余的配置文件(就是已经被删除网卡的配置文件) , 选择将多余的配置文件删除 , 然后再关闭linux2系统 , 重新给linux2添一块网卡 。再启动linux2
启动linux2 , 启动过程中 , 由于重新添加了网卡 , 所以系统检测到了它 , 再重新配置网卡 , 设置linux2 IP地址为10.0.0.156,其它同linux1 。(注:这样有人可能会觉得麻烦 , 不过网卡MAC地址冲突 , 这也是没办法的事 , 谁让咱们偷懒不想再重装一套系统呢)
这时候检查以下各文件 , 修改主机名 , 网络配置文件
#vi?/etc/sysconfig/network
将HOSTNAME=linux1改为HOSTNAME=linux2
#vi?/etc/hosts
将10.0.0.155 linux1修改为10.0.0.156 linux2
(注:有些朋友可能会问 , 怎么不直接把hosts文件里把linux1,心跳地址都写进去 , 其实我现在这么做是为了让文档更清晰些 , 到下一步的时候再添加这些 , 虽然稍微麻烦点 , 但是可以避免一些朋友看不明白)
这样两套完整的AS3.0的系统就配置成功 , 进入第二阶段
二、使用Vmware虚拟出HA必需硬件设备 , 并进行配置
1.给两个系统各虚拟一个新的网卡
关掉两个系统 , 给两系统各一个增加以网桥方式工作的网卡 , 方法与第一图类似
2.创建共享磁盘
给HA系统创建共享磁盘sdb , 大小为500M(自定义),如下图所示
先打开linux1系统的设置 , 创建磁盘 , 磁盘文件名为 , share.vmdk 选中Allocate all disk space now这一选项
建议将新加磁盘的装入点设为scsi 1:0 , 如下图所示 , 这就是系统的裸设备
然后打开linux2的设置 , 同样给linux2添加共享磁盘 , 不过这次选择已经存在的磁盘 , 使用的共享磁盘就是刚才为linux1创建的那个磁盘 , 如下图所示
同样在Configuration?editor?里面修改共享磁盘的”Vitual?disk?node”为scsi?1:0
这样 , 就给两个系统各创建了一个新网卡 , 又创建了一个共享磁盘 。由于系统启动的时候会锁定磁盘 , 所以当启动linux1后共享磁盘被锁定了 , linux2就起不来了,因此必须做一下设置 , 用编辑器打开两个Vmware文件夹的rhel3.vmx文件 , 最后增加一行:
Disk.locking?=?false
这样硬件就配置好了
3.配置新添加的网卡
启动linux1系统 , 系统在启动时候会检测到新添加的网卡 , 选择配置 , 将第二块网卡的IP设置为192.168.123.1,其它默认
修改linux1系统的/etc/hosts文件 , 改后内容如下
10.0.0.155 linux1
192.168.123.1 linux1
10.0.0.156 linux2
192.168.123.2 linux2
同时启动linux2系统 , 设置方法同linux1
4.配置共享磁盘
在linux1在shell里运行
#fdisk /dev/sdb //注使用parted也可以
将添加的共享磁盘 , 分为两个区:sdb1和sdb2,各250M大小
在两台服务器上分别编辑/etc/sysconfig/rawdevices文件 , 将分区绑定到裸设备 。
#vi?/etc/sysconfig/rawdevices
加入
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2?
重启服务
#service?rawdevices?restart
启动完成后执行
#raw –qa,会显示以下内容
/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 18
格式化共享磁盘,每个块大小为4K
mkfs.ext3 -j -b 4096 /dev/sdb1
mkfs.ext3 -j -b 4096 /dev/sdb2
注明:使用-b选项将磁盘区块设置为4K , 过小的区块会导致磁盘检查的时候耗费过多的时间
然后在linux2里修改/etc/sysconfig/rawdevices同上 , 然后重新启动rawdevices服务 , raw –qa检查系统
至此 , 硬件准备工作完成
三、安装并配置基本的HA系统
在这里我们只将AS3.0自带的CLUSTER服务配置好 , 涉及到具体的http,ftp,mysql,oracle的HA服务会在下一部分介绍
安装确认系统内安装了AS3.0的HA软件包
我们在这里要用到的软件包主要有两个 , clumanager和redhat-config-cluster
请用rpm –q 命令检查系统是否安装这两个软件包,如果没有安装可以通过以下方法安装
使用ISO或光盘 , AS3.0共有八张光盘 , 我们平时常用的只有前四张 , 另外有四张扩展光盘 , 其中扩展光盘的第三张是集群软件 , 还包括了IPVS
等软件 , 从光盘上安装 , 如下图或者通过网络上下载到这两个软件包进行单独安装
rpm --Uvh clumanager-
rpm --Uvh redhat-config-cluster-
注:网络上比较多的是src软件包 , 下载下来以后得使用rpmbuild命令进行重新编译 , 然后在安装
开始基本的HA配置
在linux1系统上 , 启动xwindows,我这里是gnome,开始运行配置工具
选择左下角图标 => 系统设置 =>服务器设置 => Cluster(或者在命令行里运行#redhat-config-cluster)
出现以下画面(图里左上角乱码是因为我用的是远程XWINDOWS,设置有问题)
下一步操作 , 点菜单栏里的群集->配置
出现下图所示
在Cluster Name处可以更改你设置集群的名字 , 在这里我设置为test_cluster
然后我们开始添加集群内的成员 , 点菜单栏->新建 如下图所示
(注:此时保证列表处选中Members , 才可以出现下面内容)
将两台机器Ip都填写进去 , 如下图
在这里选中菜单栏里的cluster->shared state,可以查看裸设备设置 , 如下图
点击确定继续
然后打开菜单栏clusterdaemon properties出现以下窗口
这个窗口就是集群的配置窗口,详细的说明请查看redhat的官方文档
有一个说明的就是中间的那个滑动条,就是配置服务器探测等待15秒,我们不能设的太小,这里我们就默认使用15秒
在clumembd这个窗口里选中Enable Broadcast Heartbeating然后点确定,这时候会弹出一个窗口提示,因为我们配置的就是双节点的HA,所以不
用管它,直接点确定然后在cluster configuration选择保存后退出此窗口
在菜单栏 群集启动本地群集守护进程,稍等一会儿,就会出现以下状态
这里就显示在linux1上的cluster配置成功
然后我们就要配置linux2了,配置linux2其实很简单,将linux1系统下/etc/cluster.xml文件COPY到linux2的/etc/目录下就可以了
(注:cluster.xml是在安装完两个软件包的时候不会产生 , 它是在第一次运行redhat-config-cluster命令的时候产生的 , 和AS2.1里的cluster.conf储存内容相同 , 只不过换了格式而已 。这就是集群主要的配置文件 , 一定要确保集群上每个节点的此文件都是相同的 , 另外在redhat的官方文档上强烈警告用户:不要去手动的修改这个xml文件 , )
将此文件copy上linux2以后 , 在linux2命令行里执行
#service clumanager start
系统显示执行成功 , 再稍等一会儿 , 你就会发现在linux1上出现了变化 , 如下图
启动关闭集群服务的命令是service clumanager start | stop
(注:如果你在配置完成以后不想用图形界面监控节点运行 , 在shell里运行
#clustat –i 10 / / 状态监控 , 每10秒中刷新一次
出现如下结果
Cluster Status - test_cluster 13:57:22
Cluster Quorum Incarnation #1
Shared State: Shared Raw Device Driver v1.2
Member Status
------------------ ----------
10.0.0.155 Active <-- You are here
10.0.0.156 Active
Service Status Owner (Last) Last Transition Chk Restarts
-------------- -------- ---------------- --------------- --- --------
这样 , 一个没有包含任何服务的“裸”的集群系统就配置成功了 , 因为它没有包含任何应用 , 也没有什么意义 , 下一步我们就在上面配置一个大家最常用的http服务来测试一下
四、举例说明:配置HTTP Server的HA服务
1.给http服务增加共享磁盘
磁盘上将存储两个系统上apache共用的程序文件 , 也就是说 , 把apache的DocumnetRoot放到这个共享磁盘上 , 创建方法同创建裸设备时一样 , 请注意 , 这个共享磁盘的作用不同于上面的裸设备
2.创建共享磁盘加载点 , 配置两台机器上的http服务
启动两台机器 , 我这里新添加硬盘为sdc,我以ext3格式将其格式化 , 在每个机器的根目录下创建文件夹www,为apache的web目录 , 同时将创建的sdc1分区加载到/www目录下
#mkdir /www
#mount /dev/sdc1 /www //这一步只在linux1上进行就行
然后安装apache,这就不用多说了吧 , 指出一点是 , 两台机器上的apache安装必须完全一样 , 包括配置文件 , 安装完成后 , 修改httpd.conf , 将其根目录指向/www , 我这里是用的是AS3.0自带的apache2.0的RPM包 ,
在linux1上 , 进入/www目录 , 在此目录下保存一个index.html作测试使用
这样 , 两台机器上的http服务就完全配置完成
3.配置基于此集群的http服务
在linux1的xwindows , 启动集群配置工具(参看上) , 增加名为httpd的服务如图点菜单栏"新建"服务名为”httpd” , 检测时间间隔设置为4秒 , httpd服务的启动脚本就是apache的启动脚本 , 我这里使用的是rpm包默认安装的脚本/etc/rc.d/init.d/httpd
点"确定" , 就增加了一个服务如下图所示
如上图所示 , 选中httpd这个service,单击菜单栏的”Add Child” , 出现如下图
先给httpd服务增加共享设备Add Device , 设备点为我们创建的sdc1,加载点为/www , 格式为ext3 , 模式为”rw”读写模式,点确定 , 在给此服务添加一个IP地址 , 这个IP就是客户浏览器访问的IP , 我们设置为10.0.0.157,掩码同网络设置 , 这里设置为255.0.0.0,广播地址设置为10.0.0.255
这样就完全添加成功了 , 如下图
保存设置 , 回到集群监控状态
以上所有操作均是在linux1上进行 , 现在为保证linux1和linux2集群配置相同 , 将linux1的/etc/cluster.xml复制到linux2的/etc/cluster.xm
l,同时启动两台机器上的集群服务 , 再次查看监控状态图 , 就发现有新的服务添加了 , 点击上面的"启用"及"运行"此服务 , HTTP服务就开始运行了
这样 , 整个集群下的http服务就配置完成 , 并开始运行了
五、对配置好的服务进行简单的测试
1.基本功能的测试
在win的机器上IE里输入10.0.0.157,你就可以看到你准备在/www目录下的测试页
2.故障测试任意的关闭掉其中一台机器 , 你就会发现10.0.0.157依然可以访问 , 你用ssh工具去连接这个IP地址 , 就会发现你连接的就是现在正在运行的机器了 。
3.手动的去关闭apache服务 , 集群软件依然会将apache服务启动起来 , 也就是说:此时的服务由集群软件控制 , 而不是人为去控制了 , 除非你将clumanger服务停掉 。
六、后记
使用AS3.0的集群软件 , 配置还是相当灵活的 , 在其官方文档上 , 就举例说明了如何里用这个软件来配置Oracle、MySQL、Samba、NFS、HTTP等多种服务 , 我也正在准备去配置一下Oracle的HA服务 。由于本人水平有限 , 本文里肯定有不少错误 , 其实有的地方我也是一知半解 , 有错误的地方请大家指出 , 最近无事 , 我一直在研究集群、负载均衡这方面的东西 , 下一步就是作研究一下lvs了 , 对此感兴趣的朋友可以一起来研究研究 , Email:xushli@163.net 。
在CU里混了两年多了 , 第一次认真的写篇东西 , 真是惭啊 。。。。。。。。
转载时请保留作者的个人信息 , 谢谢[/quote]
------------------------------------------------------------------------------
此篇文章于前日写的那篇文章相对应,其实在console下redhat也提供了一组强大
的配置命令,其中最主要的就是redhat-config-cluster-cmd这个命令,此外还有
clusvcadm,clushutdown等多个命令,下面我们就对照上一篇文章用控制台下的命令将
配置重新做一边.
1、列出当前集群名字
redhat-config-cluster-cmd --cluster
2、设置当前集群名字为“test_cluster”
redhat-config-cluster-cmd --cluster --name="test_cluster"
3、显示当前裸设备状态
redhat-config-cluster-cmd –sharedstate
4、添加一个集群节点 , 名字为“10.0.0.155”
redhat-config-cluster-cmd --add_member --name=10.0.0.155
5、修改一个节点名字由member2到member3
redhat-config-cluster-cmd --member=member2 --name=member3
6、删除一个名为member3的节点
redhat-config-cluster-cmd --member=member3 --del_member
7、列出当前集群内的服务
redhat-config-cluster-cmd –services
8、添加一个名为httpd的服务
redhat-config-cluster-cmd --add_service --name=httpd
9、列出名为httpd的这个服务下的子节点
redhat-config-cluster-cmd --service=httpd
10、设置httpd服务的相关信息 , 检测时间 , 启动脚本等等
redhat-config-cluster-cmd --service=httpd
--checkinterval=15
--userscript=/etc/rc.d/init.d/httpd
11、删除名为httpd的集群服务
redhat-config-cluster-cmd --service=httpd
--del_service
12、列出httpd服务的ip地址
redhat-config-cluster-cmd --service=httpd
--service_ipaddresses
13、设置httpd的对外服务IP地址为10.0.0.157
redhat-config-cluster-cmd --service=httpd
--add_service_ipaddress
--ipaddress=10.0.0.157
14、设置对方服务ip的掩码地址及广播地址
redhat-config-cluster-cmd --service=httpd
--service_ipaddress=10.0.0.157
--netmask=255.0.0.0
--broadcast=10.0.0.255
15、删除httpd服务的10.0.0.157的这个IP地址
redhat-config-cluster-cmd --service=httpd
--service_ipaddress=10.0.0.157
--del_service_ipaddress
16、列出httpd服务的设备
redhat-config-cluster-cmd --service=httpd
--devices
17、给httpd服务添加共享磁盘sdc1
redhat-config-cluster-cmd --service=httpd
--add_device
--name=/dev/sdc1
18、设置共享磁盘的参数
redhat-config-cluster-cmd --service=httpd
--device=/dev/sdc1
--mount
--mountpoint=/www
--fstype=ext3
--options=rw
19、启用10.0.0.155节点上的httpd服务
clusvcadm -e httpd -m 10.0.0.155
20、禁用10.0.0.155节点上的httpd服务
clusvcadm -d httpd -m 10.0.0.155
21、停止10.0.0.155节点上的httpd服务
clusvcadm -s httpd -m 10.0.0.155
更多命令请在控制台执行以下命令
#man redhat-config-cluster-cmd
- 惠普暗影精灵6游戏本价格6399元起 最高可选RTX 2070
- 青菜长什么样
- 三菱M350时钟和短信得2个测试——剖析350高可靠性的根源
- 波菜长啥样
- 职高可以自考本科吗
- RedHat Linux中国地区认证培训中心
- RedHat总部五月份起终止大陆7.3版本的考试
- RedHat Linux的RHCE考认证的主要方向
- RedHat Linux操作系统软件包的管理
- Linux认证:Redhat认证考试心得之一 死记硬背篇
