在VMware上搭建ha集群

集群学习笔记

集群是由一组在同一个网段下的计算机组成,运行着同样的操作系统,由统一的管理计算机进行配置和管理。所以,首先第一步按照我们的需求,在VMWARE下配制出3台计算机,一台负责管理,另外两台跑集群(同一个网段)。计算机名需要FQDN,并且集群和管理计算机使用同一个域名。

 

 

1.1集群架构

这是红帽官方给出的集群架构,每台集群里的计算机配置2个网卡,分别连接外网的交换机和内网的交换机,存储部分由统一的光纤交换机接入存储设备。我使用的VMware虚拟机,所以模拟此存储架构采用iscsi。而外网和内网也统一使用VMware自带的虚拟交换机,并采用NAT方式,外网测试直接由宿主系统(windows xp)访问进行测试,内网管理则由另一台管理计算机来实现。

此图表示的是集群的工作模式,其中node1和node2共同跑的是service1 ,node3和node4跑的是service2,各个node由fencing device来进行管理,我们也将模拟此设备。

 

 

1.2iscsi的配置与使用

Iscsi我的理解是一种提供远程调用磁盘的服务,来完成无盘工作站以及达到类似上图光纤交换机存储架构的效果。在RHEL5中由tgtd来提供服务,安装包为scsi-target-utils-版本号.rpm。

A.启动tgtd服务 :service tgtd start  

B.设置开机自启动tgtd服务 chkconfig  tgtd on 

C.服务启动后,    可以查看监听端口: # netstat -tunlp |grep tgtd tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 2295/tgtd tcp 0 0 :::3260 :::* LISTEN 2295/tgtd 可以看到,默认target server使用的服务端口是tcp 3260。

D.建立target device   利用tgtadm命令来设置

设置一个iqn(iscsi qualified name)命名规范如下表:

新增target device 命令如下: #tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2010-9.com.clustertest:iscsi-cluster

E.查看 target device

#tgtadm --lld iscsi --op show --mode target

 

F将磁盘(或者raid 或者逻辑卷)添加到 target device中去

#tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1

 

G 定义ACL

#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.10.101

 

到这里因为以上命令的配置结果,重新开机后便会消失,而且现版本的target server,Redhat尚未修改成System V服务,如果需要系统重新启动后上述配置仍然有效,只能将以上配置写入/etc/rc.local,让系统每次开机都自动执行一次: 

 

tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2010-9.com.clustertest:iscsi-cluster

tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1

tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.10.101

 

 

 

 

 

(客户端配置)

H 安装客户端工具

yum install iscsi-initiator-utils.i386 -y ##安装iscsi客户端
#chkconfig iscsi on &&/etc/iscsi start  ##启服务
#iscsiadm --mode discovery --type sendtargets --portal 192.168.10.1 ##发现存储
#iscsiadm --mode node --targetname iqn.2010-9.com.clustertest:iscsi-cluster --portal 192.168.10.1 --login  ##连接存储

 

 

下面我们来做实验


以及截图:

 

 

 

 

下面是客户端的连接实验。安装好客户端后:

 

 

我们可以看到多了一块sdb。。

试验成功。将命令写入到rc.local中

 

 

重启服务器和客户端

服务端,测试成功。

 

 

 

2.1  配置集群

 

先来看看红帽的官方文档

 

RHEL中有两个工具可以用来配置红帽集群:Conga和system-config-cluster,在网上普遍认为system-config-cluster要比conga更好用,conga的反应速度实在是不敢恭维,,尤其是机器配置不是特别高的情况下。。下面都来了解下两种工具的使用情况。

2.1.1

The primary components in Conga are luci and ricci, which are separately installable. luci is a server

that runs on one computer and communicates with multiple clusters and computers via ricciricci is

an agent that runs on each computer (either a cluster member or a standalone computer) managed by

Conga.

 

首先是conga,conga由两部分组成,luci和ricci,luci是跑在集群管理机器上的服务,而Ricci则是跑在各集群节点上的服务,集群的管理和配置由这两个服务进行通信,这有点像iscsi的tgtd服务和iscsi-inivator服务之间的关系

 

在管理机器上安装luci  ,yum源配置为Cluster文件夹就行  

在集群节点上安装ricci,yum源不仅是Cluster文件夹还必须有Server文件夹。。(包的依赖性关系),安装完后一定记得要chkconfig on和启动服务

 

 

安装完成后打开firefox,在url栏输入https://server1.cluster.com:8084进入下面这个界面,有一种情况无法进入就是证书的识别,可以自己添加信任的证书来跳过此步骤。

选择cluster标签,Create New Cluster菜单如上图,添加集群名字和节点名,如果节点未开启ricci的话,SSL测试会报错的。

 

点击submit确认,

集群创建界面

 

出问题了,上图。Google都不知道问题出在哪里,有人提出把share storage 前面的勾去掉,然后继续,结果成功了。。估计是红帽的bug

集群创建完成后出现上图界面,有四个待选页面,general ,fence, mulicast, quorum partition

General                -----                显示集群名称、集群配置的版本号、高级集群属性。
Fence                  -----                提供配置 Fence daemon 属性参数的接口。
Multicast         ----                提供配置多播配置属性的接口,这些属性包括:让集群选择默认多播
地址与手工指定多播地址
Quorum Partition ----        提供配置集群仲裁分区属性的接口

 

Fence 列表内容:

   
Multicast 列表内容:


   
仲裁分区列表内容:
  


点击 Clusters 栏中的 cluster list ,然后点击集群名称 cluster-001,在左边栏里显示 cluster-001 的配置栏,点击配置功能下节点名称:rs-01.cqh.com 显示节点名称:rs-01.cqh.com的状态:


点击节点:rs-02.cqh.com 显示其状态信息


状态信息显示,当前的状态为 cluster member ,闭幕式显示 cman、rgmanager 当前正在运行 ,并在集群启动时自动启用,如果这两个程序没有运行可以手工在节点上运行启动。
下面开始创建集群的步骤,这里创建的流程步骤如下:Failover domain → cluster resource→ service → Fence device 。

创建 failover domain,点击顶端的 cluster ,在Cluster list 中点击集群:cluster-001,在左下端的 cluster-001 栏中点击 Failover domain | Add a Failover domain ,显示新增 Failover domain 编辑页面:

参数解析:
Failover domain name :Failover domain 名称,建议使用一个易记有代表性的的词语。
Prioritized :在 Failover domain 中启用域中成员优先级设置
Restrict Failover to this domain’s member :在 Failover domain 中启用服务故障切换限制在这个域中的成员。
Do not fail back services in this domain :在这个域中不使用故障回复服务
在Failover domain member 区域勾选 member 处的复选项框,将节点加入 Failover domain,在 priority 处设置成员的优先级别,优先级1的优先级别最高。
点击 submit  按钮提交确定,新增 Failover domain 成功。

 

 

创建 resource
在左下端的 cluster-001 栏中点击 Resource | Add a Resource ,显示新增资源页面,在选择资源类型下拉框中选择一个资源类型,这里根据实际情况,选择 IP Address、Scripts\File Systerm


选择IP地址

  IP资源创建成功


然后创建 File System resource

 

创建 scripts resource


  

 

 

 

 

 

 

创建 service
在左下端的 cluster-001 栏中点击 Service | Add a Service ,显示新增服务编辑页面,在 service name 处输入服务的名称,启用 automatically start this serivce 选项,在Failover domain 中选择Failover domain ,Recovery policy 处选择 Relocate ,分别将IP Address、Scripts、File system 资源添加进服务里面。

 

 

 

 

 

 

 

 

 

 

 
添加 Fence Device
在左下端的 cluster-001 栏中点击 Shared Fence Device | Add a Fence Device 显示新增 Fence Device 页面,在 Select a shared fence device 下拉框选择一下Fence Device


这里由于是使用 vmware workstation 进行,所以选择 Virtual machine Fencing


   

 

 

 

 

应用 Fence Device


   
   
点击Update main fence properties
 

 

 

测试fencing

 

我晚启动了node1结果集群的状态为

 

 

 

 

可以看到web service跑在node2上面,重启node2

服务被迁移到node1上面了,实验成功!

 

 

PS:由于本人第一次尝试的时候找了好多资料,官方的,个人的才勉强做成功,所以这是为了做笔记第二次重新搭载,有些地方借用了一些资料的原文和内容,如果您在本文看到有些地方和您写过的或者读过的地方类似请见谅!

 

 

你可能感兴趣的:(linux,集群,职场,休闲,实验)