redhat高可用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redhat高可用相关的知识,希望对你有一定的参考价值。

红帽高可用HA --> RHCS

rhcs自带高可用组建的配置

红帽自带的HA 在其镜像中默认发布了其高可用套件

HighAvailability

LoadBalancer

ResilientStorage

ScalableFileSystem

红帽的yum源默认访问的是其镜像中的server

因此想要使用高可用套件需要在其yum源上对景象中的目标作特殊表示

 

Server3作为一个图形的Conga 用户接口服务器

Server1server2作为高可用集群

ricci Conga的远程管理的一部分。

Luci Conga用户界面服务器。

yum 默认使用镜像的server

[[email protected] ~]$ cd /var/www/html/rhel6.5/

[[email protected] rhel6.5]$ ls

EFI               Packages                  RELEASE-NOTES-pa-IN.html

EULA              README                    RELEASE-NOTES-pt-BR.html

EULA_de           RELEASE-NOTES-as-IN.html  RELEASE-NOTES-ru-RU.html

EULA_en           RELEASE-NOTES-bn-IN.html  RELEASE-NOTES-si-LK.html

EULA_es           RELEASE-NOTES-de-DE.html  RELEASE-NOTES-ta-IN.html

EULA_fr           RELEASE-NOTES-en-US.html  RELEASE-NOTES-te-IN.html

EULA_it           RELEASE-NOTES-es-ES.html  RELEASE-NOTES-zh-CN.html

EULA_ja           RELEASE-NOTES-fr-FR.html  RELEASE-NOTES-zh-TW.html

EULA_ko           RELEASE-NOTES-gu-IN.html  repodata

EULA_pt           RELEASE-NOTES-hi-IN.html  ResilientStorage

EULA_zh           RELEASE-NOTES-it-IT.html  RPM-GPG-KEY-redhat-beta

GPL               RELEASE-NOTES-ja-JP.html  RPM-GPG-KEY-redhat-release

HighAvailability RELEASE-NOTES-kn-IN.html  ScalableFileSystem

images            RELEASE-NOTES-ko-KR.html  Server

isolinux          RELEASE-NOTES-ml-IN.html  TRANS.TBL

LoadBalancer      RELEASE-NOTES-mr-IN.html

media.repo        RELEASE-NOTES-or-IN.html

 

[[email protected] ~]# vim /etc/yum.repos.d/rhel-source.repo

[server]

name=Red Hat Enterprise Linux server

baseurl=http://172.25.28.250/rhel6.5

gpgcheck=0

[HighAvailability]

name=Red Hat Enterprise Linux HighAvailability

baseurl=http://172.25.28.250/rhel6.5/HighAvailability

gpgcheck=0

[LoadBalancer]

name=Red Hat Enterprise Linux LoadBalancer

baseurl=http://172.25.28.250/rhel6.5/LoadBalancer

gpgcheck=0

[ResilientStorage]

name=Red Hat Enterprise Linux ResilientStorage

baseurl=http://172.25.28.250/rhel6.5/ResilientStorage

gpgcheck=0

[ScalableFileSystem]

name=Red Hat Enterprise Linux ScalableFileSystem

baseurl=http://172.25.28.250/rhel6.5/ScalableFileSystem

gpgcheck=0

yumscp到其他高可用节点

Scp server1 server2  server3

 

Vim /etc/hosts

172.25.28.1     server1.example.com

172.25.28.2     server2.example.com

172.25.28.3     server3.example.com

172.25.28.4     server4.example.com

Scp server1,server2,server3,真机

 

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

ricci - cluster management and configuration daemon

ricci是集群的管理和配置文件的守护进程

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

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

lucirhcsweb管理工具,仅仅是配置工具,集群可以脱离

需要为集群管理工具设置密码

[[email protected] ~]# echo redhat|passwd --stdin ricci

[[email protected]~]# echo redhat|passwd --stdin ricci

Chkconfig --list  ricci

Chkconfig ricci on//一定要开机启动。

Service ricci start

在浏览器中访问图形化的canga的用户接口服务器。

https : // IP :8084  https://hostname:8084


 技术分享

技术分享

技术分享

创建高可用集群,然后配置

技术分享

所有的配置文件都在/etc/cluster中,

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

[[email protected] cluster]# ls

cluster.conf  cman-notify.d

[[email protected] cluster]# cat cluster.conf

<?xml version="1.0"?>

<cluster config_version="1" name="ginkgo_HA">

       <clusternodes>

              <clusternode name="server1.example.com" nodeid="1"/>

              <clusternode name="server2.example.com" nodeid="2"/>

       </clusternodes>

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

       <fencedevices/>

       <rm/>

</cluster>

查看集群节点状态使用clustat

[[email protected] cluster]# clustat

Cluster Status for ginkgo_HA @ Mon Feb 13 15:39:42 2017

Member Status: Quorate

 

 Member Name                               ID   Status

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

 server1.example.com                           1 Online, Local

 server2.example.com                           2 Online

 

--------------------------adder slider------------------------------------------

luci添加防火墙许可:

iptables -I INPUT -m state --state NEW -p tcp -s 192.168.1.0/24 -d

192.168.1.0/24 --dport 16851 -j ACCEPT

ricci添加防火墙许可

iptables -I INPUT -m state --state NEW -p tcp -s 192.168.1.0/24 -d

192.168.1.0/24 --dport 11111 -j ACCEPT

--------------------------------continue---------------------------------

HA中的fence

Fence类似一个网络电源,可以用来控制关闭各高可用节点

使用fence必须在真机中安装以下套件:

[[email protected] ~]# rpm -qa|grep fence

libxshmfence-1.2-1.el7.x86_64

fence-virtd-multicast-0.3.2-2.el7.x86_64

fence-virtd-libvirt-0.3.2-2.el7.x86_64

fence-virtd-0.3.2-2.el7.x86_64

fence-virtd-serial-0.3.2-2.el7.x86_64

安装

fence-virtd-multicast-0.3.2-2.el7.x86_64

fence-virtd-0.3.2-2.el7.x86_64

fence-virtd-libvirt-0.3.2-2.el7.x86_64

Systemctl start fence_virtd

技术分享

在浏览器中添加fence device,添加名称

由于选用的fence设备为fence -virt,此种fence是通过虚拟管理器来进行管理的,所以必须通过宿主机的virt-manger来进行管理。

然后在真机中执行:

fence_virtd -c

fence_virtd - Fencing host for virtual machines

在本地/etc/cluster下生成一个key文件,如果没有,自动建立。

通过

dd if=/dev/urandom of=/etc/fence_xvm.key bs=128 count=1向密钥文件传输随机数,然后将这个key文件发送给各个节点。

使用virsh list查看当前正在运行的虚拟机,通过virsh list --uuid查看正在运行虚拟机UUID ,然后在节点中将节点添加进fence

技术分享

技术分享

使用fence_node servre#.example.com

终止节点

真机通过fence_virtd管理虚拟机。

如果停止失败,检测真机的服务是否开启,然后重起。

-------------------1.14配置故障切换域和全局集群资源-----------------------------

故障切换域:failover Domains

故障切换域的特征:

无限制 允许您为在子集指定首选成员子集,但分配给这个域名的集群服务可在任意可用成员中运行。

限制 允许您限制可运行具体集群服务的成员。如果在限制故障切换域中没有可用成员,则无法启动集

群服务(手动或者使用集群软件均不可行)

无序 当将一个集群服务分配给一个无序故障切换域时,则可从可用故障切换域成员中随机选择运行集

群服务的成员,没有优先顺序。

有序的 可让您在故障切换域的成员间指定顺序。该列表顶端的成员是首选成员,接下来是列表中的第

二个成员,依此类推。

故障恢复 允许您指定在故障切换域中的服务是否应该恢复到节点失败前最初运行的节点。配置这个特

性在作为有序故障切换域一部分节点重复失败的环境中很有帮助。在那种情况下,如果某个节点是故障

切换域中的首选节点,在可能在首选节点和其它节点间重复切换和恢复某个服务,从而不会对性能产生

严重影响。

用来管理集群的高可用节点和启动优先级以及是否重新取回服务。

技术分享

重新修改点update

配置全局集群资源:Resources

首先添加一个IP ,将来通过此IP 访问个主机所添加的服务,IPping不通,但要和所属节点IP 在同一个网段。

技术分享

技术分享

再启用脚本,可以使用服务自带的脚本,也可以使用自己编写的脚本

技术分享

在集群中添加集群服务。

服务组:Service Group

技术分享

分别是

服务名称:自定义

是否自动启动此服务:是

Run Exclusive:是否仅运行一个服务(在一个集群中,可以同时运行多个服务的高可用,如果选择此项,则只能运行一个服务。)yes

Failover Domain :失效域如果一个节点失效,按那个策略执行,和之前的配置Failover Domain 同时使用。

恢复策略:Recovery Policy 选择重新定位,relocate

恢复策略:

选择「重 选项表示在重新定位该服务前系统应尝试重启失败的服务。选择「重新定位」选项表示系统应在不同节点中重启该服务。选择「禁用」 选项表示如果任意组件失败,系统就应禁用该资源组。选择「重 -禁用」选项表示该服务失败的位置尝试重启该服务,但如果重启失败,则将禁用服务而不是移动到集群的另一台主机中

 

 

选择完成后再添加资源,将之前的资源加入服务组中,然后即可使用

技术分享

选择add resource

依次为集群服务添加服务。

再两个节点安装apache服务,添加主页

在浏览器上搜索:

资源IP (定义在Resources

即可

技术分享

如果服务没有启动,在节点上执行clusvcadm -e Apache

再节点上测试。

停掉网卡接口,

[email protected] ~]# ip link set down eth0

在另外一台节点服务器中执行clustat可以发现server2的重新启动和服务的相关变化。

echo c >/proc/sysrq-trigger服务的测试命令

可以是内核崩溃,停止服务,可以在节点和clustat上发现server的重起。

此时资源组管理器rgmangement会通知真机上的fence_virtd来对节点的fence进行断电和重起。

技术分享

 

技术分享

 

存储共享iscsi

在管理服务器上分配一块共享硬盘

 

安装iscsi服务器软件

[[email protected] ~]# yum -y install  scsi-*

scsi-target-utils-1.0.24-10.el6.x86_64 already installed

[[email protected] ~]# ll /etc/tgt/targets.conf

共享硬盘:

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

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

 39    backing-store /dev/vdb

 40    initiator-address 172.25.28.1

 41    initiator-address 172.25.28.2 //允许访问的IP 主机。

 42 </target>

 

161 #   initiator-address 192.168.100.1

162 #   initiator-address 192.168.200.5

使用命令:

tgt-admin -s

 

在客户端安装

[[email protected] ~]# yums iscsi-*

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

启用发现共享硬盘

172.25.28.3:3260,1 iqn.2013-02.com.example:server.target1

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

挂载。

Fdisk -l

Fdisk -cu /dev/sda

分成一个8e的分区。

---------------------------  本地文件系统----------------------------------------------

共享磁盘:

首先查看clvm的状态

/etc/init.d/clvm status

[[email protected] ~]# service clvmd status

clvmd (pid 1289) is running...

Clustered Volume Groups: clustervg

Active clustered Logical Volumes: clusterlv

两个节点都要检查,如果没有在运行状态,那么,需要使用lvconf --enable-cluster启动,然后再充起服务。

/etc/lvm/lvm.conf中有关于集群的锁

  # change metadata.

locking_type = 3 //个数和集群数量有关

创建lvm

pvcreate /dev/sda1

pvs 两台节点上都要查看

vgcreate clustervg /dev/sda1

vgs 两台节点上都要查看

lvcreate -L 4G -n culsterlv clustervg

lvs   两台节点上都要查看

在一个结点上对clusterlv进行格式化

mkfs.ext4 /dev/clustervg/custerlv

此时可以对lvm进行挂载但是,挂载内容不能及时同步

挂载后在其中写入共享内容index.html以便于访问。

使用集群管理器管理

添加资源

技术分享

然后在service group中添加该资源,要保证该资源在IP之后,服务之前。

使用clustvcadm -d Apache 停掉一台节点的服务后,访问结果不受限制。

clusvcadm -e Apache 启动资源中的服务。

clusvcadm -r Apache -m server#.example.com将一个节点的服务转移到另外一个节点

此时,使用ip addr查看发现组IP已经发生转移。

lvm扩容:

lvextend -L +4G /dev/clustervg/clusterlv

resize2fs  /dev/clustervg/clusterlv

 --------------------------------------全局数据/集群文件系统--------------------------------------------

首先,将服务停掉

clusvcadm -d Apache

将本地文件系统从服务管理中移出,在资源中移除文件系统资源

然后将lvm格式化为gfs2文件系统

mkfs.gfs2 -j 3 -p lock_dlm -t ginkgo_HA:mygfs2 /dev/clustervg/clusterlv

 

mkfs.gfs2 -p LockProtoName -t LockTableName -j NumberJournals BlockDevice

 

LockProtoName

指定要使用的锁定协议名称,集群的锁定协议为 lock_dlm

LockTableName

这个参数是用来指定集群配置中的 GFS2 文件系统。它有两部分,用冒号隔开(没有空格)如下

:ClusterName:FSName

ClusterName,用来创建 GFS2 文件系统的集群名称。

FSName,文件系统名称,长度可在 1-16 个字符之间。该名称必须与集群中所有 lock_dlm 文件

系统以及每个本地节点中的所有文件系统(lock_dlm lock_nolock)不同。

Number

指定由 mkfs.gfs2 命令生成的日志数目。每个要挂载文件系统的节点都需要一个日志。对于GFS2

文件系统来说,以后可以添加更多的日志而不会增大文件系统, 3.7 “在文件系统中添加

日志” 所述。

BlockDevice

指定逻辑卷或者物理卷。

-p LockprotoName 指定要使用的锁定协议名称,可识别的锁定协议包括:lock_dlm — 标准锁定模式,用于集群的文件系统。lock_nolock — GFS2 作为本地文件系统作用时使用

(只有一个节点)

-t LocktableName 在您使用 lock_dlm 协议时用来指定锁定表格字段的唯一识别程序

挂载

-j Number 指定由 mkfs.gfs2 命令生成的日志数目。挂载文件系统的每个节点都需要一个日志。如果没有指定该选项,则会生成一个日志。对于GFS2 文件系统,您可以后添加

附加日志而不会增大文件系统。

在另一个节点挂载

此时在挂载点写入数据是同步数据。

gfs2磁盘工具

gfs2_tool -help

gfs2_tool sb [device] all

自动挂载:

两个节点写入

vim /etc/fstab

UUID=e7279a9d-c724-0719-b379-954b3719807b /var/www/html/ gfs2 _netdev   0       0

mount -a 检查挂载

写入测试页。

启动服务

clusvcadm -e Apache

可以访问到网页

使用

gfs2_tool -help

使用gfs2_tool sb /dev/clustervg/clusterlv all

查看所有信息。

gfs2_tool journals /dev/***

查看日志信息。

添加日志数量

gfs2_jadd -j 3 /dev/***

-j 增加多少条日志。

lvm扩容

物理扩容同本地文件系统

文件系统扩容是:

gfs2_grow /dev/****

 

 

 

 

 

 

 


以上是关于redhat高可用的主要内容,如果未能解决你的问题,请参考以下文章

redhat7.2 nginx+keepalived 配置高可用性集群

keepalived实现nginx负载均衡机高可用

gitlab高可用架构部署文档

MySQL 高可用之 keepalived+Mysql 双主双活。

Linux Nginx+keepalived负载+高可用

0656-6.2.0-如何配置Haproxy高可用