设为首页 收藏本站
查看: 1002|回复: 0

[经验分享] centos6 RHCS高可用

[复制链接]

尚未签到

发表于 2019-2-16 13:29:37 | 显示全部楼层 |阅读模式
一: 基础讲解
1  RHCS 最对支持16个节点
2  基础条件
[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.1 node1.example.com  node1
10.10.10.2 node2.example.com  node2
10.10.10.3 node3.example.com  node3
10.10.10.4 node4.example.com  node4
防火墙关闭,selinux关闭NetworkManager
service NetworkManager stop
chkconfig NetworkManager off
二: 工具conga讲解及安装
1 组成
Congaricciluci组成
2 luci讲解
Luci装在非节点主机上
3 luci安装
Yum  -y install luci
service luci startchkconfig  luci on



登出,授权的账号登陆

4 所有节点操作(ricci
yum -y install ricci    11111tcp
Id  ricci   (查询账户)
echo redhat | passwd  --stdin ricci
service  ricci startchkconfig ricci on
netstat -anptu | grep 11111
5 登陆luci创建集群(有权限用户)



6 节点加入群集失败,查看cman服务
各个节点都应该有的配置文件/etc/cluster/cluster.conf,如果没有拷贝其他服务器上的
/etc/init.d/cman start

7 集群信息查看与通讯问题

群集节点相互通讯问题


8 其他问题
各个节点cman 必须设置开机启动
可以通过watchps  查看yum 装的包
Watch -n 1 ps  aux | grep yum
9 添加节点



三:CCS命令行配置集群(同luci功能相同)
1 节点装ricci
2 使用查询
Ccs  -h                     查看帮助
ccs -h node1.example.com --lsnodes    查看节点信息,输入ricci密码
3 增加节点
yum -y install cman rgmanager lvm2-cluster sg3_utils gfs2-utils  ricci  ccs
或者直接yum -y groupinstall "高可用性管理" "网络存储服务器"
echo 密码 | passwd  --stdin ricci
在新节点上执行
ccs  -h node1.example.com(其中一个节点) --addnode node3.example.com(新节点)
ccs -h node1.example.com(上面相同节点名称) --setcman
查看其他节点/etc/cluster/cluster.conf 文件变化
cat [root@node1 ~]# cat /etc/cluster/cluster.conf







                             标红的两处是否有变化



是否加入节点,将有加入的拷入其他所有节点
重启cman服务,前端页面查看(也可以手动启动别的节点启动的服务)
ccs -h node1.example.com --sync --activate  startall     同步配置文件并起服务(验证有问题)
四:fencing-vmx套件搭建(集群)
1:集群部署

搭建平台不同,选的不同,下面主要以KVM讲解fence-vmx红帽的

将节点加入fencing设备







所有节点都做
2: 物理机部署
yum -y install fence-virtd fence-virtd-libvirt fence-virtd-multicast
配置fence设备
Key生成方式
mkdir /etc/cluster  
dd if=/dev/urandom  of=/etc/cluster/fence_xvm.key bs=1K count=4
将刚才的key拷到其他节点
for i in {0,1,2}; do scp /etc/cluster/fence_xvm.key 172.25.254.16$i:/etc/cluster/; done

fence_virtd -c
功能模块   (默认即可)
多播方式监听请求(默认)
端口(默认)
监听网络  (私有的,相互之间通讯的)接口
共享key  (用来验证用户密码)       需要生成(以生成则此处直接回车)
Backend module [libvirt]            (默认即可)如果此处不是libvirt,就改一下

Y  就可以了
完成后启动服务,开机启动
systemctl restart fence_virtd
systemctl restart fence_virtd
节点上停其它节点命令测试

Fence_node   节点
或者直接down网卡
宿主机防火墙一定要配好

以下为配置时的状态:
[root@localhost ~]# 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       如果网卡接口没问题可以不改

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
五:资源与资源组搭建(http
1: 资源创建

虚拟VIP 以提供服务



添加apache资源





配置存储 (服务端与客户端多路径)节点都做
在任意一个节点上分区,格式化一块磁盘partprobe识别一下
格式化
mount /dev/mapper/mpathap1 /var/www/html/            格式化完成挂载在/var/www/html目录下

上面的VIP
ip addr add dev  eth0  172.25.254.199/24
启动httpd服务,如果报错  chcon -R -t httpd_sys_content_t /var/www/html/再次启动
service httpd start
访问测试 --------------------------------

service httpd stop
umount /var/www/html/
ip addr del dev eth0 172.25.254.199/24

其他节点也要测试,不用在分区了,直接partprobe,后面一样

集群做高可用
挂载(增加文件系统)


2: 故障切换域



优先级1--99 数字越小,优先级越高
3: 资源组(关联应用)



增加的资源就是上面定义的ip   apache   文件系统(挂载)


提交,
提交有可能失败 查看每个虚拟机上的磁盘是否都能识别已经分好的区
3:查看clustat   -i   1一秒刷新一次

4: 测试
资源故障 (主机不重启)  
任意节点 killall -9 httpd
其他节点看效果  clustat          -i             1   一秒钟一次

心跳故障(主机重启)   测试的网络一定要和主机的网络通讯
  
5:集群命令
clusvcadm    -h       查看命令帮助
clusvcadm    -d    service:name(集群名字)     停止集群服务
Clusvcadm   -e  资源组名字        启动集群,在那个设备上操作,代表服务跑在该节点
clusvcadm   -r   service:name   -m   rheld5(节点)      -r指切换  -m指定成员   
clustat status   可以查询集群名字

Service Name                       Owner (Last)                       State         
------- ----                       ----- ------                       -----         
service:name                       (rhel5f)                           disabled  
6: 集群配置修改
先停掉,在改操作
clusvcadm    -d    service:name(集群名字)
Luci上改,更新,再启动
如果启动失败,查/var/log/cluster/rgmanager日志
查看/etc/cluster/cluster.conf    文件,更改版本号和错误的位置
Cman_tool    -r  version    将文件同步给其他节点
再次启动服务  Clusvcadm   -e  资源组名字

六:资源与资源池(samba
1 资源搭建




所有节点创建文件夹(共享目录)
共享存储分区,multipath -r重读,  partprobe  以识别该分区,格式化,挂载,修改selinux上下文(man  samba_selinux

所有节点统一装samba包,统一配置文件,partprobe
测试能否挂载,完成之后要卸载。









2 故障转移域




3定义资源组




查看   smbclient -L //10.10.10.200
七:双节点
1: 预期票值
Cman_tool status
预期票值改为1
2: 配置文件多出一行
grep cman /etc/cluster/cluster.conf
             双节点
八: 高级资源管理
1 子资源
父子与平级关系,服务启动顺序
平级的启动顺序可以看  
vim /usr/share/cluster/service.sh    查看,里面没有的根据定义启动

2 父子关系实验(基于NFS
创建故障转移域



配置NFS共享存储
分区,格式化,挂载测试

别的节点partprobe 识别分区,multipath -r ,创建相同目录/nfs_data,挂载测试,完成后卸载
资源创建







网络通讯问题(注意)
完成用网路ip挂载测试
3: 非关键资源实验


节点观察跑服务的节点多出一个IP
测试删掉上面的非关键资源,观察日志
ip addr del dev eth1 10.10.10.100/24
Tail /var/log/cluster/rgmanager.log
Clustat  status
clustat status
Cluster Status for tempcluster @ Tue Feb 21 16:35:34 2017
Member Status: Quorate

Member Name                                 ID   Status
------ ----                                 ---- ------
rheld5                                          1 Online, rgmanager
rhel5f                                          2 Online, Local, rgmanager
rhel47                                          3 Online, rgmanager

Service Name                       Owner (Last)                       State         
------- ----                       ----- ------                       -----         
service:name                rhel5f                             started    [P]
service:nfs_service                rheld5                             started      
service:sambaservice               rhel47                             started     

clusvcadm -c service:name  恢复非关键资源命令
4 关键资源实验

测试,删掉IP
查看日志,在查看设备,设备会恢复

九:仲裁机制
1:仲裁基础讲解
预期票值(所有节点总票制)/2 + 1     仲裁
Expected votes: 3     预期票值(节点票值之和)
Total votes: 3        总票值(当前活动的)
Node  votes 1       当前节点票值(可以改值)
Quorum: 2          仲裁票值   
2: 查看票值的几种方法
Cman_tool   status  查看
ccs_tool lsnode(查看票值)
查看配置文件    (默认值为1时,配置文件不显示)
3: 更改票值

如果查看其他节点没有同步票值,将已有改动文件同步其他节点
直接拷贝
每次修改版本一定会变
[root@node3 ~]# cat /etc/cluster/cluster.conf











如果最后还不行,需重启设备,然后查看cman服务状态


十:第三方仲裁机制
1:仲裁磁盘
防止双节点私网导致fencing循环
2: 仲裁磁盘讲解
仲裁磁盘(两边写入是否成功)
Ping的形式,做探测
仲裁磁盘应用,(双节点,多节点时。群集最后一个正常也能通讯,)
仲裁磁盘设置票值一般为节点数-1     ,或者更大
总裁磁盘配置(节点票数必须为1,需要10M,一定要都能读写,不能使用LVM
3: 配置仲裁磁盘
登陆双节点之一的设备。划分共享分区110M,不能是LVM
partprobe /dev/mapper/mpatha
multipath -r  ,格式化为仲裁磁盘mkqdisk -c /dev/mapper/mpathap5 -l myqdisk
-c  指定设备,-l   设置标签      仲裁磁盘节点最多16
Mkqdisk   -L /dev/mapper/mpathap5 查看一下

另一个节点
partprobe /dev/mapper/mpatha
multipath -r                                            最多16个节点

普通用户登陆


Ping -c  1  -W 1 IP   W代表一秒不通,返回超时


两个条件都得满足

提交失败,,看日志
[root@rhel5f ~]# tail /var/log/cluster/qdiskd.log
Feb 22 18:51:24 qdiskd Quorum disk timings are too slow for configured token timeout
Feb 22 18:51:24 qdiskd  * Totem Token timeout: 10000ms
Feb 22 18:51:24 qdiskd  * Min. Master recovery time: 63000ms
Feb 22 18:51:24 qdiskd Please set token timeout to at least 66000ms
Feb 22 18:51:24 qdiskd Configuration failed
Feb 22 18:51:27 qdiskd Quorum disk timings are too slow for configured token timeout
Feb 22 18:51:27 qdiskd  * Totem Token timeout: 10000ms
Feb 22 18:51:27 qdiskd  * Min. Master recovery time: 63000ms
Feb 22 18:51:27 qdiskd Please set token timeout to at least 66000ms
Feb 22 18:51:27 qdiskd Configuration failed
Qdisk总时间为存储的1.3被,cman的时间应该为qdisk1.7
Cman默认与qdisk通讯10
Man cman  搜索token
修改配置文件vim /etc/cluster/cluster.conf


               cman下添加该行,此处数值为qdisk1.7
重启系统
文件系统多出两行,

      
      
               

测试一:    其中一个节点做防火墙测试其效果
Iptables -t filter -A INPUT -s 上文所提到网关地址 -j DROP
查看日志和虚拟机状态
测试二:节点不能对仲裁磁盘读写入(多节点时,测试到只剩下一个节点)
直接down 网卡测试
看日志,服务器状态



十一: 电源fencing设备
1fencing之远程控制卡
远程控制卡(基于内部的,基于设备硬件{HP(iL0) IBM(rsall),dell(drac)}卡等)

提供iL0卡的账户密码,使其关机,BA关机
硬件需要配置IP用户密码等(IPMI(只能平台管理接口)
2: fencing网络电源交换机
NPS(基于外部的 san switch     network switch

3: 软件(基于红帽fencing-vmx
十二:集群LVM
1: Clvm  HA-lvm讲解
Clvm多节点可同时访问,所有节点可同时访问存储(gfs2
HA-lvm   不能同时访问,同一时间只能一个
(取决文件系统)
2: 配置HA_lvm
HA  所有节点启动clvmd服务,把lvm模式改成集群环境工作,
所有节点   配置HA-LVM
Rpm  -q lvm2-cluster
lvmconf --enable-cluster      LVM工作在群集模式
Service clvmd  start ;chkconfig clvmd  on

其中一个节点话分区,partprobe  ,multipath  -r  
其他节点partprobe  ,multipath  -r      两边一定都要认出磁盘
关注lvs  是否为群集模式LV
一个节点上创建lv    /dev/firstvg/httplv
格式化ext4
所有节点挂载测试
防止所有人同时挂载,将其设置为不激活状态
Lvchange    -an   /dev/firstvg/httplv








启动时lvm默认激活,需要手动改,其他和上面一样配置资源一样
如果没切换到集群模式,可以通过vgcreatelvcreate  -cy  创建集群的卷组
3: Clvm(gfs2文件系统)
基于gfs2  NFS的集群共享
制作共享集群LVM的逻辑卷
Rpm -qf `which  mount.gfs2`
Rpm -qf `which  mkfs.gfs2`
所有节点Yum -y install gfs2-utils
查看群集名cman_tool   status
cluster Name:即群集名

mkfs.gfs2   -t 群集名:所表的名字(随意)   -j  指定日志个数(根据节点数指定)-J  指定日志大小
日志单节点个数默认128M
Nkfs.gfs2 -t   集群名:锁表明  -j  3  -J 128M /dev/mapper/nfsvg-nfslv
可以加-p  指定所协议,默认的lock_dlm
所有节点挂载测试,可同时挂载,卸载
文件系统





设置IP地址
定义资源组(其中有父子关系)
Gfs2_tool  journals   /挂载点(或者磁盘路径)  查看日志空间个数  此处不能多加/
Gfs2_jadd   增加日志空间个数  -j  个数(代表加的数量)  设备
已经使用了gfs2的挂载空间上去增加
Gfs2_jadd   -j   1   /dev/myvg/mylv

gfs2的在线lv扩展
Lvextend  -l  80 /dev/myvg/mylv
Gfs2_grow -Tv   /dev/myvg/mylv     -T测试  v详细信息
先测试,在扩增
4: gfs2磁盘配额
分区,partprobe,所有节点
单个节点创建lv(集群形式)
格式化gfs2 文件系统
挂载  mount  XXXX     /net
Mount -o  remount.acl  /net

Setfacl    XXXX  /net
Chmod 700   /net

Mount -o remount,quota=on  /net
Quotacheck  -ug   /mnt      创建用户和组的配额
Repquota   -a   /mnt   查询   
Setquota   -u   user1  快的软限制(单位默认K)  块的硬限制  inode软限制  inode硬限制   目录
Setquota  -u user1 102400 204800  0  0 /net
切换用户测试

Vim /etc/fstab
Xxxx   xxxx  xxxx   defaults,acl,quota=on   0   0
Chkconfig  gfs2 on   设置开机启动,让其可以读取/etc/fstab
/etc/fstab启动较早,所以后面需要让gfs2 重新读取、/etc/fstab

Chattr   +j   目录                 gfs2加日志功能




十三:日志
群集日志/var/log/cluster/rgmanager.log
Fencing日志/var/log/cluster/fenced.log
仲裁磁盘日志/var/log/cluster/qdiskd.log









运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673220-1-1.html 上篇帖子: CentOS7启动故障修复实验 下篇帖子: centos 配置vlan端口
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表