Chinaunix首页 | 论坛 | 博客
  • 博客访问: 433721
  • 博文数量: 62
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 740
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-10 21:59
个人简介

付出,终有回报!

文章分类

全部博文(62)

文章存档

2018年(6)

2017年(24)

2016年(6)

2015年(26)

分类: 系统运维

2015-05-25 17:33:42

准备:

1、需要三台实验机,两台虚拟机装ricci,ip分别为172.25.18.11172.25.18.12;一台真机装luci(为了提供Conga配置用户界面),ip172.25.18.10

2、为了避免其他因素影响实验,关闭所有的防火墙,禁用selinux

3、 配置高可用的yum源,最好移除其他的yum源配置文件,否则会有影响
172.25.254.10是我的物理机

# Main rhel6.5 server

[base]

name=Instructor Server Repository

baseurl=

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[HighAvailability]

name=Instructor HighAvailability Repository

baseurl=/HighAvailability

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[LoadBalancer]

name=Instructor LoadBalancer Repository

baseurl=/LoadBalancer

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


[ResilientStorage]

name=Instructor ResilientStorage Repository

baseurl=/ResilientStorage

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[ScalableFileSystem]

name=Instructor ScalableFileSystem Repository

baseurl=/ScalableFileSystem

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

一、搭建HA环境


1.ip172.25.18.11172.25.18.12的两台主机上同时执行以下操作:

1)进行解析

vim /etc/hosts

172.25.18.11 new1.example.com

172.25.18.12 new.example.com

 

2)安装ricci

yum install ricci -y

rpm -qa ricci

ricci-0.16.2-69.el6.x86_64,这是我在实验中用的版本


 从红帽企业版 Linux 6.1 开始,您在任意节点中使用 ricci 推广更新的集群配置时要求输入密码。您在系统中安装 ricci 后,请使用 passwd ricci 命令为用户 ricci 将 ricci 密码设定为 root。

passwd ricci

/etc/init.d/ricci start

chkconfig ricci on

 

2.ip172.25.254.218的主机上安装luci

yum install luci -y

rpm -qa luci

luci-0.26.0-48.el6.x86_64

 

/etc/init.d/luci start

Point your web browser to (or equivalent) to access luci

根据给出的提示,在浏览器进行测试,
如果不能正常访问,则应添加本地解析
172.25.18.11 new1.example.com
172.25.18.12 new.example.com
172.25.18.10 tian.example.com

您首次访问 luci 时,网页浏览器会根据显示的自我签名 SSL 证书( luci 服务器的证书)给出具体提示。确认一个或者多个对话框后,您的网页显示器会显示 luci 登录页面。



 

3.登陆并创建集群

登陆时,使用ip172.25.254.218的主机的root用户和密码


如下图,点击Cluster Create,将ip172.25.18.11172.25.18.12的两台主机添加进集群,以上的各个选项可以根据自己的需求而选择。确定后点击Create Cluster

之后,会出现下图,等待若干分钟后,即可看到创建的集群



注意:
在「集群名称」 文本框中输入集群名称。集群名称不能超过 15 个字符
如果集群中的每个节点都有同样的 ricci 密码,您可以选择「在所有 节 点中使用相同的密 码 」 ,这样就可在您添加的节点中自动填写「密 码 」 字段。
在「 节 点名称」 栏中输入集群中节点的名称,并在「密 码 」 栏中为该节点输入 ricci 密码
如果您要在 ricci 代理中使用不同的端口,而不是默认的 11111 端口,您可以更改那个参数。
如果您不想要在创建集群时升级已经在节点中安装的集群软件软件包,请选择「使用本地安装的软 件包」 选项。如果您要升级所有集群软件软件包,请选择「下 载软 件包」 选项



集群创建成功,显示如下




此时,在两个主机中的任一个上执行clustat,或者cat /etc/cluster/cluster.conf ,都可以查看到集群的信息。

clustat

Cluster Status for lingling @ Wed May 20 09:35:24 2015

Member Status: Quorate

 

 Member Name                             ID   Status

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

 172.25.18.11                                1 Online, Local

 172.25.18.12                                2 Online

也可以使用cman_tool status查看本地集群状态信息


二、添加Fence

1、添加fence、安装软件


Manager Cluster Fence Device   Add,选择Fence设备为上图所示,添加Name后,点击Submit,即可以成功。

 
集群中的节点使用多播地址彼此沟通。因此必须将红帽高可用附加组件中的每个网络切换以及关联的联网设备配置为启用多播地址并支持 IGMP(互联网组管理协议)。
从红帽企业版 Linux 6.2 开始,集群中的节点可以使用 UDP 单播传输机制进行沟通。但建议您在集群网络中使用 IP 多播。UDP 单播是 IP 多播不可用时的备用方法。


在物理机上执行如下操作,我的是172.25.18.10。安装以下关于fence的软件包:

# rpm -qa | grep fence

fence-virtd-0.3.0-16.el7.x86_64

fence-virtd-multicast-0.3.0-16.el7.x86_64

fence-virtd-libvirt-0.3.0-16.el7.x86_64

上面那些软件安装成功后,会自动在 /etc 下生成fence_virt.conf文件。这是一个配置模板,可以仿照它编写你自己的配置文件。但是,不用这么麻烦,安装fence相关软件后,就可以使用 fence_virtd 进行快捷配置了。关于 fence_virtd ,感兴趣的话可以查看man页。

# ll /etc/fence_virt.conf

-rw-r--r--. 1 root root 272 Feb 19  2014 /etc/fence_virt.conf

2、进行文件配置

创建fence_virt.conf配置文件,-c  指定进入Configuration mode。配置时尽量保持默认值,按回车键就可;如果需要修改,则在冒号后输入修改值


# fence_virtd  -c    

Module search path [/usr/lib64/fence-virt]:

 

Available backends:

    libvirt 0.1

Available listeners:

    multicast 1.2

 

Listener modules are responsible for accepting requests

from fencing clients.

 

Listener module [multicast]:

 

The multicast listener module is designed for use environments

where the guests and hosts may communicate over a network using

multicast.

 

The multicast address is the address that a client will use to

send fencing requests to fence_virtd.

 

Multicast IP Address [225.0.0.12]:

 

Using ipv4 as family.

 

Multicast IP Port [1229]:

 

Setting a preferred interface causes fence_virtd to listen only

on that interface.  Normally, it listens on all interfaces.

In environments where the virtual machines are using the host

machine as a gateway, this *must* be set (typically to virbr0).

Set to 'none' for no interface.

 

Interface [virbr0]: br0

 我的真机使用br0桥接与虚拟机通信

The key file is the shared key information which is used to

authenticate fencing requests.  The contents of this file must

be distributed to each physical host and virtual machine within

a cluster.

 

Key File [/etc/cluster/fence_xvm.key]:

 

Backend modules are responsible for routing requests to

the appropriate hypervisor or management layer.

 

Backend module [libvirt]:

 

Configuration complete.

 

=== Begin Configuration ===

backends {

libvirt {

uri = "qemu:///system";

}

 

}

 

listeners {

multicast {

port = "1229";

family = "ipv4";

interface = "br0";

address = "225.0.0.12";

key_file = "/etc/cluster/fence_xvm.key";

}

 

}

 

fence_virtd {

module_path = "/usr/lib64/fence-virt";

backend = "libvirt";

listener = "multicast";

}

 

=== End Configuration ===

Replace /etc/fence_virt.conf with the above [y/N]? y



3、生成key文件
在上一步中,key_file = "/etc/cluster/fence_xvm.key",但是系统中并没有这个文件,因此手动创建

# mkdir /etc/cluster

# touch /etc/cluster/fence_xvm.key

# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1

1+0 records in

1+0 records out

128 bytes (128 B) copied, 0.000184309 s, 694 kB/s

# scp /etc/cluster/fence_xvm.key root@172.25.18.11:/etc/cluster

# scp /etc/cluster/fence_xvm.key root@172.25.18.12:/etc/cluster

# /etc/init.d/fence_virtd start

4、对各节点的fence进行设置

对两个节点分别执行以下操作

点击Node,选择一个节点打开,并点击Add Fence Method,如下图,输入name,此处的name名字随意取。






接着点击Add Fence Device(instance),如上图,选择Fence Device,添加Domain

注意:Domain应该是虚拟机的名称或是UUID,因为要与Virtual Machine Manager相关联


添加创建成功后,即可在/etc/cluster/cluster.conf看到相关信息。




执行clustat也会有如下的显示



5、测试

172.25.18.12节点上, fence_node172.25.18.11节点切掉
# fence_node 172.25.18.11
# clustat

 Member Name                             ID   Status
 ------ ----                             ---- ------
  172.25.18.11                           1 Offline 
  172.25.18.12                           2 Online, Local

172.25.18.11节点被切掉,此时我们查看172.25.18.11主机应该会进入重启状态,证明fence机制正常工作
节点172.25.18.11重新启动后,会自动被加入到集群中。再次查看状态,如下:

# clustat  
Member Status: Quorate

 Member Name                             ID   Status
 ------ ----                             ---- ------
  172.25.18.11                            1 Online
  172.25.18.12                             2 Online, Local


也可以在172.25.18.11节点上进行同样的测试,加深对fence机制的理解,在此,就不多做演示。

三、添加服务

HA 服务是一组在统一实体中配置的集群资源,可为客户端提供指定的服务。HA 服务在集群配置文件/etc/cluster/cluster.conf(在每个集群节点中)中以资源树的形式出现。在集群配置文件中,每个
资源树都使用一个 XML 代表,它指定每个资源及其属性,以及在资源树中与其他资源的关系(上级、下级和平级关系)。

在资源树的上/下级关系中采用以下规则:
        上级资源在下级资源之前启动。
        在停止上级资源前必须停止全部下级资源。
        对于正常工作的资源,其下级资源必须全部正常工作。

本实验中,为集群添加HTTPD服务,因此,要确保httpd已被安装。具体过程如下:

Manager Cluster   Failover Domains    Add

Name随意取,下面的三个选项根据需要进行选择。Priority,数字越小则优先级越高,越早启动或者停止该资源类型




如下,显示的是资源树



Manager Cluster Resource add
选择添加一个IP Address,172.25.18.100,为添加的虚拟IP。向外提供服务时,就是以这个虚拟IP进行的,用户无法看到内部节点的真实信息。



再按上述方法,添加一个Scripts资源。指定以脚本方式启动httpd服务




之前说过,HA是以资源组的方式向外提供服务的,因而,此处把上述添加的IP address 和Scripts添加进资源组。
Manager Cluster 
--> Service Group --> add

注意:先添加IP,再添夹httpd服务




添加成功后,用clustat查看,如下:




虽然服务已经添加了,但没有运行,在Service Group中启动服务,在172.25.18.11上进行如下的测试:




使用命令clusvcadm,将apache服务组转移到172.25.18.12节点上。关于clusvcadm的使用,可以--help。




在172.25.18.12节点上查看,apache服务在其上运行





后续,会跟大家简单的分享下如何添加存储



阅读(5692) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~