使用RHCS创建Linux高可用群集

基础环境准备

环境拓扑图

Linux基本服务设定

关闭iptables

#/etc/init.d/iptables stop

#chkconfig iptables off

#chkconfig list | grep iptables

关闭selinux

#setenforce 0

#vi /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELINUXTYPE=targeted

关闭NetworkManager

#/etc/init.d/NetworkManager stop

#chkconfig NetworkManager off

#chkconfig list | grep NetworkManager

双机互信

# mkdir ~/.ssh

# chmod 700 ~/.ssh

# ssh-keygen -t rsa

enter

enter

enter

# ssh-keygen -t dsa

enter

enter

enter

N1PMCSAP01执行

# cat ~/.ssh/*.pub >> ~/.ssh/authorized_keys

# ssh N1PMCSAP02 cat ~/.ssh/*.pub >> ~/.ssh/authorized_keys

yes

N1PMCSAP02的密码

# scp ~/.ssh/authorized_keys N1PMCSAP02:~/.ssh/authorized_keys

存储多路径配置

使用autoscan.sh脚本刷新IBM存储路径

查看存储底层WWID


NAME


WWID


Capcity


Path


Dataqdisk


360050763808101269800000000000003


5GB


4


Data


360050763808101269800000000000001


328GB


4

创建多路径配置文件

#vi /etc/multipath.conf

Blacklist devnode默认为^sd[a]需要修改为^sd[i]本环境Root分区为sdi,屏蔽本地硬盘

配置完毕后,重启multipathd服务

/etc/init.d/multipathd restart

使用multipath -v2命令刷新存储路径

多网卡绑定

网卡绑定拓扑图

修改vi /etc/modules.conf

创建网卡绑定配置文件

N1PMCSAP01 Bond配置

[[email protected] /]# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

# HWADDR=A0:36:9F:DA:DA:CD

TYPE=Ethernet

UUID=3ca5c4fe-44cd-4c50-b3f1-8082e1c1c94d

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

[[email protected] /]# vi /etc/sysconfig/network-scripts/ifcfg-eth3

DEVICE=eth3

# HWADDR=A0:36:9F:DA:DA:CB

TYPE=Ethernet

UUID=1d47913a-b11c-432c-b70f-479a05da2c71

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

[[email protected] /]# vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

# HWADDR=A0:36:9F:DA:DA:CC

TYPE=Ethernet

UUID=a099350a-8dfa-4d3f-b444-a08f9703cdc2

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=satic

IPADDR=10.51.66.11

NETMASK=255.255.248.0

GATEWAY=10.51.71.254

N1PMCSAP02 Bond配置

[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

# HWADDR=A0:36:9F:DA:DA:D1

TYPE=Ethernet

UUID=8e0abf44-360a-4187-ab65-42859d789f57

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth3

DEVICE=eth3

# HWADDR=A0:36:9F:DA:DA:B1

TYPE=Ethernet

UUID=d300f10b-0474-4229-b3a3-50d95e6056c8

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

# HWADDR=A0:36:9F:DA:DA:D0

TYPE=Ethernet

UUID=2288f4e1-6743-4faa-abfb-e83ec4f9443c

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=10.51.66.12

NETMASK=255.255.248.0

GATEWAY=10.51.71.254

主机Host配置

在N1PMCSAP01和N1PMCSAP02中配置hosts文件

#Vi /etc/hosts

RHEL本地源配置

more /etc/yum.repos.d/rhel-source.repo

[rhel_6_iso]

name=local iso

baseurl=file:///media

gpgcheck=1

gpgkey=file:///media/RPM-GPG-KEY-redhat-release

[HighAvailability]

name=HighAvailability

baseurl=file:///media/HighAvailability

gpgcheck=1

gpgkey=file:///media/RPM-GPG-KEY-redhat-release

[LoadBalancer]

name=LoadBalancer

baseurl=file:///media/LoadBalancer

gpgcheck=1

gpgkey=file:///media/RPM-GPG-KEY-redhat-release

[ResilientStorage]

name=ResilientStorage

baseurl=file:///media/ResilientStorage

gpgcheck=1

gpgkey=file:///media/RPM-GPG-KEY-redhat-release

[ScalableFilesystem]

name=ScalableFileSystem

baseurl=file:///media/ScalableFileSystem

gpgcheck=1

gpgkey=file:///media/RPM-GPG-KEY-redhat-release

文件系统格式化

[[email protected] /]# pvdisplay

connect() failed on local socket: No such file or directory

Internal cluster locking initialisation failed.

WARNING: Falling back to local file-based locking.

Volume Groups with the clustered attribute will be inaccessible.

--- Physical volume ---

PV Name /dev/sdi2

VG Name VolGroup

PV Size 556.44 GiB / not usable 3.00 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 142448

Free PE 0

Allocated PE 142448

PV UUID 0fSZ8Q-Ay1W-ef2n-9ve2-RxzM-t3GV-u4rrQ2

--- Physical volume ---

PV Name /dev/mapper/data

VG Name vg_data

PV Size 328.40 GiB / not usable 1.60 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 84070

Free PE 0

Allocated PE 84070

PV UUID kJvd3t-t7V5-MULX-7Kj6-OI2f-vn3r-QXN8tr

[[email protected] /]# vgdisplay

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 4

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 3

Open LV 3

Max PV 0

Cur PV 1

Act PV 1

VG Size 556.44 GiB

PE Size 4.00 MiB

Total PE 142448

Alloc PE / Size 142448 / 556.44 GiB

Free PE / Size 0 / 0

VG UUID 6q2td7-AxWX-4K4K-8vy6-ngRs-IIdP-peMpCU

--- Volume group ---

VG Name vg_data

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 3

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 1

Open LV 1

Max PV 0

Cur PV 1

Act PV 1

VG Size 328.40 GiB

PE Size 4.00 MiB

Total PE 84070

Alloc PE / Size 84070 / 328.40 GiB

Free PE / Size 0 / 0

VG UUID GfMy0O-QcmQ-pkt4-zf1i-yKpu-6c2i-JUoSM2

[[email protected] /]# lvdisplay

--- Logical volume ---

LV Path /dev/vg_data/lv_data

LV Name lv_data

VG Name vg_data

LV UUID 1AMJnu-8UnC-mmGb-7s7N-P0Wg-eeOj-pXrHV6

LV Write Access read/write

LV Creation host, time N1PMCSAP01, 2017-05-26 11:23:04 -0400

LV Status available

# open 1

LV Size 328.40 GiB

Current LE 84070

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:5

RHCS软件组件安装

# yum -y install cman ricci rgmanager luci

修改ricci用户名密码

#passwd ricci

ricc password:redhat

RHCS群集设定

LUCI图形化界面

使用浏览器登录https://10.51.56.11:8084/

用户名root,密码redhat(默认密码未修改)

群集创建

点击左上角Manage Cluster创建群集


Node Name


NODE ID


Votes


Ricci user


Ricci password


HOSTNAME


N1PMCSAP01-PRIV


1


1


ricci


redhat


N1PMCSAP01-PRIV


N1PMCSAP02-PRIV


2


1


ricci


redhat


N1PMCSAP02-PRIV

Fence Device配置

由于群集只有2节点,可能产生脑裂情况,所以在主机出现故障的时候,需要使用Fence机制仲裁哪台主机脱离群集,而Fence最佳实践就是采用主板集成的IMM端口,IBM称为IMM模块,HPE则为ILO,DELL为IDRAC,其目的是强制服务器重新POST开机,从而达到释放资源的目的,图中左上角RJ45网口为IMM端口

N1PMCSAP01 Fence设备设定参数,用户名:USERID,密码:PASSW0RD

N1PMCSAP02 Fence设备设定参数,用户名:USERID,密码:PASSW0RD

Failover Domain配置

群集资源配置

一般来说某个应用程序都应该包含其依赖的资源,例如IP地址、存储介质、服务脚本(应用程序)

群集资源配置中需要配置好各种资源的属性参数,图中10.51.66.1为IP资源,定义了群集应用程序的IP地址

Lv_data为群集磁盘资源,定义了磁盘的挂载点,及物理块设备的位置

McsCluster则为应用程序启动脚本,定义了启动脚本的位置

Service Groups配置

Service Group可定义一个或一组应用,包含该应用所需要的所有资源,以及启动优先等级,管理员可在这个界面手动切换服务运行的主机,及恢复策略

其他高级设定

为了防止群集加入时来回Fence,这里配置了Post Join Delay为3秒

查看群集配置文件

最后可通过命令查看群集所有的配置

#cat /etc/cluster/cluster.conf

[[email protected] ~]# vi /etc/cluster/cluster.conf

<fence>

<method name="N1PMCSAP01_Method">

<device name="N1PMCSAP01_FD"/>

</method>

</fence>

</clusternode>

<clusternode name="N1PMCSAP02-PRIV" nodeid="2">

<fence>

<method name="N1PMCSAP02_Method">

<device name="N1PMCSAP02_FD"/>

</method>

</fence>

</clusternode>

</clusternodes>

<cman expected_votes="1" two_node="1"/>

<rm>

<failoverdomains>

<failoverdomain name="N1PMCSAP-FD" nofailback="1" ordered="1">

<failoverdomainnode name="N1PMCSAP01-PRIV" priority="1"/>

<failoverdomainnode name="N1PMCSAP02-PRIV" priority="2"/>

</failoverdomain>

</failoverdomains>

<resources>

<ip address="10.51.66.1" sleeptime="10"/>

<fs device="/dev/vg_data/lv_data" force_unmount="1" fsid="25430" mountpoint="/u01" name="lv_data" self_fence="1"/>

<script file="/home/mcs/cluster/McsCluster" name="McsCluster"/>

</resources>

<service domain="N1PMCSAP-FD" name="APP" recovery="disable">

<fs ref="lv_data">

<ip ref="10.51.66.1"/>

</fs>

<script ref="McsCluster"/>

</service>

</rm>

<fencedevices>

<fencedevice agent="fence_imm" ipaddr="10.51.188.177" login="USERID" name="N1PMCSAP01_FD" passwd="PASSW0RD"/>

<fencedevice agent="fence_imm" ipaddr="10.51.188.178" login="USERID" name="N1PMCSAP02_FD" passwd="PASSW0RD"/>

</fencedevices>

</cluster>

该配置文件在N1PMCSAP01和N1PMCSAP02两台主机中是保持一致的

RHCS群集使用方法

查看群集状态

使用Clustat命令查看运行状态

[[email protected] /]# clustat -l

Cluster Status for N1PMCSAP @ Fri May 26 14:13:25 2017

Member Status: Quorate

Member Name ID Status

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

N1PMCSAP01-PRIV 1 Online, Local, rgmanager

N1PMCSAP02-PRIV 2 Online, rgmanager

Service Information

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

Service Name : service:APP

Current State : started (112)

Flags : none (0)

Owner : N1PMCSAP01-PRIV

Last Owner : N1PMCSAP01-PRIV

Last Transition : Fri May 26 13:55:45 2017

Current State为服务正在运行状态

Owner为正在运行服务的节点

手动切换群集

[[email protected] /]# clusvcadm -r APP(Service Group Name) -m N1PMCSAP02(Host Member)

#手动从节点1切换至节点2

[[email protected] /]# clusvcadm -d APP(Service Group Name)

#手动停止APP服务

[[email protected] /]# clusvcadm -e APP(Service Group Name)

#手动启用APP服务

[[email protected] /]# clusvcadm -M APP(Service Group Name) -m N1PMCSAP02(Host Member)

#将Owner优先级设定为N1PMCSAP02优先

自动切换群集

当服务器硬件出现故障时,心跳网络不可达对方时,RHCS群集会自动重启故障服务器,将资源切换至状态完好的另一台服务器,当硬件修复完毕后,管理员可选择是否将服务回切

注意:

不要同时拔出两台服务器的心跳网络,会造成脑裂

时间: 2024-11-05 15:49:42

使用RHCS创建Linux高可用群集的相关文章

LINUX 高可用群集之 ~Corosync~

Corosync:它属于OpenAIS(开放式应用接口规范)中的一个项目corosync一版本中本身不具 备投票功能,到了corosync 2.0之后引入了votequorum子系统也具备了投票功能了,如果我们用的是1版本的,又需要用到票数做决策时那该如何是好呢:当然,在红帽上把 cman + corosync结合起来用,但是早期cman跟pacemaker没法结合起来,如果想用pacemaker又想用投票功能的话,那就把cman当成 corosync的插件来用,把cman当成corodync的

linux高可用群集(一)

群: 高可用(HA)集群: 解决架构中的单点故障. 有Heartbeat,rhcs 负载均衡集群: 解决架构中压力过大的问题. 高性能集群: Hadoop 需要了解的一些HA集群的概念: 主节点:在HA集群中,优先成为活动节点并且提供服务 备用节点:在HA集群中,如果主节点出现故障,该节点会自动平滑地取代主节点成为活动节点提供服务 活动节点: 在HA集群中,当前获得了资源并且正在提供服务的节点 资源: 为了能够为客户提供服务而启动一些系统服务或者程序,常见的资源: 浮动IP,各种服务(httpd

45.Keepalived高可用群集

Keepalived高可用群集 Keepalived采用VRRP热备份协议,以软件的方式实现linux服务器的多机热备功能,当一方故障时,自动切换备份服务器进行工作. Keepalived部署环境:一台主调度服务器,一台从调度服务器,多台节点服务器 Keepalived部署步骤: v 安装支持组件 #yum -y install kernel-devel openssl-devel popt-devel  ipvsadm v 源码安装keepalived工具 #tar xzvf keepaliv

CentOS7.4—构建最新版haproxy高可用群集

CentOS7.4-构建haproxy高可用群集 目录第一部分 实验环境第二部分 搭建配置web服务器第三部分 安装配置haproxy服务器第四部分 测试验证第五部分 haproxy配置相关详细解释 第一部分 实验环境 一台harpoxy调度服务器IP地址:192.168.80.10需要软件:haproxy-1.7.10.tar 两台Web服务器(基于nginx)IP地址:192.168.80.20(web01)IP地址:192.168.80.30(web02)需要软件:nginx-1.13.9

LVS + Keepalived 高可用群集 【DR模式】

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后就会重新加入群集中. Keepalived 采用 VRRP (虚拟路由冗余协议)热备份协议,和HSRP一样,只不过 HSRP 是思科私有的协议,VRRP 可以跑在很多设备上!VRRP 是以软件的方式实现 Linux 服务器的多机热备功能. VRRP 工作原

HaProxy+Keepalived+Mycat高可用群集配置

概述 本章节主要介绍配置HaProxy+Keepalived高可用群集,Mycat的配置就不在这里做介绍,可以参考我前面写的几篇关于Mycat的文章. 部署图: 配置  HaProxy安装 181和179两台服务器安装haproxy的步骤一致 --创建haproxy用户 useradd haproxy --解压完后进入haproxy目录 cd haproxy-1.4.25/ --编译安装 make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=x86

linux高可用集群heartbeat实现http的高可用

linux高可用集群的种类很多,比如常见的heartbeat,corosync,rhcs,keepalived,这些集群软件的出现为我们的业务生产环境提供了高可用的保证,本文将简单介绍一下用heartbeat的v2版本来处理一个简单的http高可用集群的搭建. 在实现http高可用集群之前,首先至少需要2台主机,并且需要做3点基本的准备工作: 1.设置节点名称,并且集群中的所有节点都能通过节点名称去解析集群中的所有主机.为了集群服务的高可用性,这里选择使用/etc/hosts,而且要保证unam

高可用群集HA介绍与LVS+keepalived高可用群集

一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅仅为LVS提供方案,Keepaliced支持故障自动切换(Failover),支持节点健康状态检查(Health Checking),官方网站http://www.keepalived.org/ Keepalived采用VRRP的热备份协议实现Linux服务器的多机热备功能,VRRP,虚拟路由冗余协

构建LVS+Keepalived高可用群集

防伪码:不必向我诉说春天,我的心里并没有秋寒 第六章 构建LVS+Keepalived高可用群集 前言:keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换和健康检查,官方网站:http://www.keepalived.org.类似于我们以前学习过的HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务.我们今天学习的双机热备是就是利用了