Rhel6-集群管理(luci&&ricci)配置文档

理论基础:

User → HA →     Lb    → web → sql → 分布式filesystem ->磁盘I/O

用户   高可用 负载均衡    应用   数据库      mfs/hadoop

磁盘I/O是硬伤,前面的各个厂商基本都可以做到最好,虽然可以考虑换成固态硬盘,但是固态的价格就目前来看相对比较昂贵,实际情况下显然不现实。

红帽集群套件 RHCS

红帽集群套件管理器 RHCSM

集群配置管理工具 conga

luci  :8084<-web<-user

/\                           vip

/     \                        service(web)

ricci <--> ricci                filesystem

HA

cman 核心套件

rgmanage 集群资源管理器

lvm2-cluster lvm支持

sg3_utils 支持scsi

gfs2-utils 分布式文件系统支持

注:ricci只负责与luci连接进行集群配置

真正的集群服务为:

cman

rgmanage

modclusterd

clvmd

server33 <-> server34

\                   /

\              /

\  HA  /

share storage

当server33的网卡坏了,server33和server34都会认为对方挂掉了,双方同时接管资源,用户在访问的时候因为server33的网卡坏的,无法访问,只能访问server34,因此在用户看来,服务是没有问题的。

当server33昏迷后,此时server34接管资源,但是当server33恢复后,还占据着原来的资源,此时用户访问时就不知道该访问哪台主机了。因此需要第三方设备来解决此问题,即Fence!

Fence

/          \

/              \                       
一整套资源:

/       HA       \                     vip

server33 <-> server34            
service

\                    /                   
stroage

\               /

\           /

share storage

server33和server34连接着Fence,当有其中一方挂掉之后,虽然双方都会认为对方挂掉了,但是另一方仍然可以连接到Fence,可以通过向fence所在主机发送请求将对方主机进行断电处理,自己接管资源。当故障主机恢复后,将成为备份主机,不再是master,也不会争抢资源。

存储方式

SAN存储(iscsi):服务端共享出设备,在客户端上进行分区,格式化才能使用。即文件系统在客户端上

NAS存储(NFS):在服务端上进行分区,格式化。客户端上只需进行mount操作即可使用。

配置:

系统环境: rhel6 x86_64 iptables and selinux disabled

主机: 192.168.122.119 server19.example.com

192.168.122.25 server25.example.com

192.168.122.1 desktop36.example.com

yum仓库配置:

[rhel-source]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=ftp://192.168.122.1/pub/yum

enabled=1

gpgcheck=1

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

[HighAvailability]

name=Instructor
Server Repository

baseurl=ftp://192.168.122.1/pub/yum/HighAvailability

gpgcheck=1

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

enabled=1

[LoadBalancer]

name=Instructor
Server Repository

baseurl=ftp://192.168.122.1/pub/yum/LoadBalancer

gpgcheck=1

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

enabled=1

[ResilientStorage]

name=Instructor
Server Repository

baseurl=ftp://192.168.122.1/pub/yum/ResilientStorage

gpgcheck=1

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

enabled=1

[ScalableFileSystem]

name=Instructor
Server Repository

baseurl=ftp://192.168.122.1/pub/yum/ScalableFileSystem

gpgcheck=1

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

enabled=1

#启动luci

以下步骤在server19server25上实施:

[[email protected]
~]# yum install ricci -y

[[email protected]
~]# passwd ricci

[[email protected]
~]# chkconfig ricci on

[ro[email protected]
~]# /etc/init.d/ricci start

以下步骤在desktop36上实施:

[[email protected]
~]# yum install luci -y

[[email protected]
~]# /etc/init.d/luci start

启动成功系统会给出一个网址,访问此网址(例如上图网址为http://desktop36.example.com:8084),访问时注意在desktop36的/etc/hosts中写上解析.

下载证书,并以desktop36的root身份登录,会显示homebase页面

注:luci登录时可以使用luci所在电脑上的本机用户登录,但是只有root用户才可以管理集群

#创建集群

选择Manage Clusters

选择Create

按照如下图配置创建集群

注:集群名称小于15个字符

选择Download Packages有两层含义:

1.当节点上没有安装集群软件包的时候,会自动安装相关软件包

2.当节点上已经安装了集群软件包的时候,会自动检查更新并安装

创建成功后出现类似如下页面:

#配置Fence设备

以下步骤在desktop36上实施:

[[email protected] ~]# yum list fence*

[[email protected] ~]# yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y

[[email protected] ~]# fence_virtd -c

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

Available
backends:

libvirt 0.1

Available
listeners:

multicast 1.1

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 the default network

interface.
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
[none]: virbr0

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 [checkpoint]: libvirt

The
libvirt backend module is designed for single desktops or

servers.
Do not use in environments where virtual machines

may
be migrated between hosts.

Libvirt
URI [qemu:///system]:

Configuration
complete.

===
Begin Configuration ===

backends
{

libvirt
{

uri
= "qemu:///system";

}

}

listeners
{

multicast
{

interface
= "virbr0";

port
= "1229";

family
= "ipv4";

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

注:以上设置除“Interface”处填写虚拟机通信接口和Backend
module填写libvirt外,其他选项均可回车保持默认。

[[email protected]
~]# mkdir /etc/cluster

[[email protected]
~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1

[[email protected]
~]# scp /etc/cluster/fence_xvm.key [email protected]:/etc/cluster/

[[email protected]
~]# scp /etc/cluster/fence_xvm.key [email protected]:/etc/cluster/

[[email protected]
~]# /etc/init.d/fence_virtd start

[[email protected]
~]# netstat -anuple | grep fence

udp
0 0 0.0.0.0:1229 0.0.0.0:*
0 823705 6320/fence_virtd

注:可查看到1229端口说明fence_virtd启动成功.

测试:

server19domainvm1,server25domainvm2

在server19上执行
fence_xvm
-H vm2,若server25重启说明配置成功

在server25上执行
fence_xvm
-H vm1,若server19重启说明配置成功

选择Fence
Devices

选择add

按照下列图片进行配置

选择Nodes

按照下列图片对每一个node进行配置

选择Add
Fence Method

选择Add
Fence Instance

注:此处所填写的Domain与Virtual
Machine Manager中此虚拟机的名称一致.

测试:

在server19上执行
echo
c > /proc/sysrq-trigger,若server19重启说明配置成功

在server25上执行
echo
c > /proc/sysrq-trigger,若server25重启说明配置成功

#在集群中添加集群服务(apache为例)

以下步骤在server19server25上实施:

[[email protected]
~]# yum install httpd -y

[[email protected]
~]# echo `hostname` > /var/www/html/index.html

注:无需手动将apache启动起来,将由集群来管理服务.

选择Failover
Domains

选择add

按如下图配置

注意:Priority值越低优先级越高,所以以上配置说明192.168.122.119为主节点

选择Resources

选择add

按如下图配置添加IP
Address和Script

注:此IP必须是无人使用的.

选择Service Groups

选择add

按如下图配置

选择Add Resouce添加刚才所设置的IP Address和Script并点击Submit

访问192.168.122.147若正常则说明配置成功.

测试:

可通过执行
watch
clustat查看当前集群服务由哪个node接管着(假设刚开始由server19接管)

1.将server19上的httpd服务关闭,查看集群服务是否会由server25接管.

2.在server25上执行ifconfig
eth0 down模拟网线断掉,看server25是否被执行断电操作,并且集群服务由server19接管

3.在server19上执行echo
c >
/proc/sysrq-trigger模拟内核崩溃,看server19是否被执行断电操作,集群服务被server25接管,且当server19重启后服务自动切换回server19上.

#配置共享存储

以下步骤在desktop36上实施:

先划分出一个分区,类型为Linux
LVM.

[[email protected]
Desktop]# pvcreate /dev/sdb8

[[email protected]
Desktop]# vgcreate vg_rhelserver6 /dev/sdb8

[[email protected]
Desktop]# lvcreate -L 3G -n koendemo vg_rhelserver6

[[email protected]
Desktop]# yum search all iscsi

[[email protected]
Desktop]# yum install scsi-target-utils.x86_64 -y

[[email protected]
Desktop]# vim /etc/tgt/targets.conf

<target
iqn.2013-07.com.example:server.target1>

backing-store
/dev/vg_rhelserver6/koendemo

initiator-address 192.168.122.119

initiator-address 192.168.122.25

</target>

[[email protected]
Desktop]# /etc/init.d/tgtd start

通过执行tgtadm
--lld iscsi --op show --mode target能查看到次设备说明配置成功

以下步骤在server19server25上实施:

[[email protected]
~]# yum install iscsi-initiator-utils.x86_64 -y

[[email protected]
~]# iscsiadm -m discovery -t st -p 192.168.122.1

[[email protected]
~]# iscsiadm -m node -l

执行fdisk
-l可查看到此设备说明成功.

[[email protected]
~]# lvmconf --enable-cluster

[[email protected]
~]# /etc/init.d/clvmd restart

以下步骤在server19server25上实施:

[[email protected]
~]# fdisk -cu /dev/sdb

将此设备划分分区,一般只划分一个分区,类型为Linux
LVM,若划分多个分区为保险期间要注意备份分区表.

[[email protected]
~]# pvcreate /dev/sdb1

[[email protected]
~]# vgcreate -c y koenvg /dev/sdb1

执行vgdisplay查看koenvg的Clustered参数是否为yes.

[[email protected]
~]# lvcreate -L 1G -n koenlv koenvg

[[email protected]
~]# mkfs.gfs2 -p lock_dlm -t koen_007:gfs2 -j 3 /dev/koenvg/koenlv

-p
定义为 DLM
锁方式,如果不加此参数,当在两个系统中同时挂载此分区时就会像
EXT3 格式一
样,两个系统的信息不能同步

-t
koen_007 DLM 锁所在的表名字,就是你的集群的名字gfs
分区的卷标

-j
GFS 分区中最多支持多少个节点同时挂载,这个可以在使用中动态调整
,通常设定值为节点数+1

mount
-t gfs /dev/koenvg/koenlv /var/www/html (自动挂载可以写入/etc/fstab,
或添加为集群资源,由集群加载)
其他集群节点相同操作,只是不要执行格式化

访问https://desktop36.example.com:8084

选择Service Groups

将集群服务先关闭(Disable)

选择Resources

选择add

按如下图配置

选择Service Groups

选择Add
Resouce添加刚才所设置的GFS2并点击Submit

将集群服务启动.

测试:集群服务启动后,当服务在哪个节点上运行时,GFS2设备就挂载在哪个节点的/var/www/html目录下.

:当集群服务出现故障,无法启动(可用clusvcadm
-d apache
模拟),gfs2文件系统无法挂载时,如何恢复gfs2文件系统中的数据

以下步骤在任意一个节点上实施:

[[email protected]
~]# dd if=/dev/koenvg/koenlv of=gfs2.img

[[email protected]
~]# yum install gfs2-utils.x86_64 -y

[[email protected]
~]# mount -o loop,lockproto=lock_nolock gfs2.img /mnt/

这样即可查看gfs2文件系统中的数据并对其进行备份

注:建议将dd截得的块(即此处的gfs2.img)scp到非集群节点上进行挂载.

:gfs2的拉伸

以下步骤在任意一个节点上实施:

[[email protected]
~]# lvextend -L +1000M /dev/koenvg/koenlv

[[email protected]
~]# gfs2_grow /dev/koenvg/koenlv

:当要添加节点到集群中时,如何给gfs2文件系统添加日志数目.

以下步骤在当前gfs2文件系统所挂节点上实施:

[[email protected]
~]# gfs2_jadd
-j 2 /dev/koenvg/koenlv

Filesystem:
/var/www/html

Old
Journals 3

New
Journals 5

注:出现类似如上输出说明添加成功.

[[email protected]
~]# gfs2_tool journals /dev/koenvg/koenlv
(可通过此条命令查看日志数,日志数有几个,说明可以有几个节点同时挂载此gfs2文件系统)

:如何将此集群服务彻底关闭

访问https://desktop36.example.com:8084

选择Service
Groups

将集群服务先关闭(Disable)

选择Nodes

将所有节点选中,点击Leave
Cluster

以下步骤在server19server25上实施:

[[email protected]
~]# /etc/init.d/cman stop

[[email protected]
~]# chkconfig cman off

[[email protected]
~]# /etc/init.d/rgmanager stop

[[email protected]
~]# chkconfig rgmanager off

[[email protected]
~]# /etc/init.d/modclusterd stop

[[email protected]
~]# chkconfig modclusterd off

[[email protected]
~]# /etc/init.d/ricci stop

[[email protected]
~]# chkconfig ricci off

[[email protected]
~]# /etc/init.d/iscsi stop

[[email protected]
~]# chkconfig iscsi off

[[email protected]
~]# /etc/init.d/iscsid stop

[[email protected]
~]# chkconfig iscsid off

以下步骤在desktop36上实施:

[[email protected]
~]# /etc/init.d/fence_virtd stop

[[email protected]
~]# chkconfig fence_virtd off

[[email protected]
~]# /etc/init.d/luci stop

[[email protected]
~]# chkconfig luci off

时间: 2024-08-08 17:23:57

Rhel6-集群管理(luci&&ricci)配置文档的相关文章

redis.conf 配置文档详解

redis 配置文档详解. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411

Hadoop集群安装配置文档

Hadoop集群安装配置文档 日期 内容 修订人 2015.6.3 文档初始化 易新             目录 1 文档概要... 5 1.1软件版本... 5 1.2机器配置... 5 2 虚拟机配置... 5 2.1新建虚拟机... 5 2.2虚拟网络配置... 8 3 CentOS安装及配置... 9 3.1系统安装... 9 3.2系统配置... 10 3.2.1防火墙配置... 10 3.2.2 SElinux配置... 10 3.2.3 IP配置... 11 3.2.4安装vim

搞懂分布式技术5:Zookeeper的配置与集群管理实战

搞懂分布式技术5:Zookeeper的配置与集群管理实战 4.1 配置文件 ZooKeeper安装好之后,在安装目录的conf文件夹下可以找到一个名为"zoo_sample.cfg"的文件,是ZooKeeper配置文件的模板. ZooKeeper启动时,会默认加载"conf/zoo.cfg"作为配置文件,所以需要将"zoo_sample.cfg"复制一份,命名为"zoo.cfg",然后根据需要设定里面的配置项. 配置项很简单,

集群管理之Heartbeat与DRBD

环境需求:rhel6以上,iptablss与selinx disabled, 新虚拟机(未进行其他集群操作的)server1与server2为两节点 Instructor为服务机(M端). 集群管理之Heartbeat Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能.heartbeat最核心的包括两个部分,心跳监测部分和资源接管

RHCS的CMAN分布式集群管理

------------------------------------------------------------这里可以忽略:(突然想到的小命令)小知识点:# cat /etc/sysconfig/i18n LANG="zh_CN.UTF-8"# LANG=zh_CN.UTF-8# yum grouplist# yum list # LANG=en# yum grouplist # yum provides */pxelinux.0 #yum -y install cmatri

mysql集群管理维护日记

管理节点启动:#首次运行.备份或者config.ini配置变化时加--initial[[email protected] mysql-cluster]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial查看启动后的端口情况: [[email protected] mysql-cluster]#  netstat -lntpu 管理节点检验 [[email protected] /]# /usr

一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种

[转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储

elk6.2集群搭建,cerebro集群管理

环境准备: 两台centos 7.3 x86_64 这里软件版本是2018 .3月的,如以后最新版本请去官网下载 规划: cm-elk-01: IP:192.168.10.63 安装: elasticsearch kibana:前端展示 cm-elk-02: IP:192.168.10.64 安装: elasticsearch cerebro:查看集群状态 搭建前准备: 1. 两台服务器需要修改最大文件数65536  vim /etc/security/limits.conf   最后添加   

kafka集群精华之-----安装配置、扩容、监控

kafka集群细节支出折磨我死去活来,查看众多文档进度缓慢,内容重复,所以站在大佬的肩膀上 整理文档记录它. kafka说明: 一个Topic可以认为是一类消息,每个topic将被分成多个partition(区),,此外kafka还可以配置partitions需要备份的个数(replicas).有多少个partitions就意味着有多少个"leader",kafka会将"leader"均衡的分散在每个实例上,来确保整体的性能稳定. kafka是通过zookeeper