| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> CL236配置IP故障转移--CTDB -> 正文阅读 |
|
[系统运维]CL236配置IP故障转移--CTDB |
CL236配置IP故障转移–CTDB
文章目录
高可用集群NAS(此小节摘自刘爱贵教授文章)诸如Glusterfs、Lustre、Ceph等集群文件系统,提供了统一命名空间、高性能、高可用、高扩展的非结构化数据解决方案。出于性能方面考虑,集群文件系统都设计了私有协议的客户端,通常是基于VFS或FUSE接口实现的与POSIX标准兼容的接口,但往往仅提供Linux/Unix系统客户端软件。对于Linux/Unix系统来说,只需要安装集群文件系统客户端内核模块或软件即可;而对于Windows/Mac等系统而言,因为没有客户端软件可用,就没法访问集群文件系统了。另外,一些特殊场合下,用户不希望在Linux/Unix/Windows/Mac系统上安装客户端软件,而是希望通过标准协议访问集群文件系统。因此,我们需要以集群文件系统为底层基础核心,构建使用标准协议访问的存储服务,目前主要就是使用NFS/CIFS标准协议的NAS。传统NAS系统具有单点性能瓶颈、扩展性差、应用规模和高负载支持有限等不足,无法满足大数据应用需求。集群NAS是一种横向扩展(Scale-out)存储架构,它协同多个节点(即通常所称的NAS机头)提供高性能、高可用或高负载均衡的NAS(NFS/CIFS)服务,具有容量和性能线性扩展的优势。 这里我们基于CTDB实现高可用集群NAS。CTDB是一种轻量级的集群数据库实现,基于它可以实现很多应用集群,目前CTDB支持Samba, NFS, HTTPD, VSFTPD, ISCSI, WINBIND应用,集群共享数据存储支持GPFS,GFS(2),Glusterfs, Luster, OCFS(2)。CTDB本身不是HA解决方案,但与集群文件系统相结合,它可以提供一种简便高效的HA集群解决方案。集群配置两组IP,Private IP用于heartbeat和集群内部通信,Public IP用于提供外部服务访问。Public IP动态在所有集群节点上分配,当有节点发生故障,CTDB将调度其他可用节点接管其原先分配的Public IP,故障节点恢复后,漂移的Public IP会重新被接管。这个过程对客户端是透明的,保证应用不会中断,也就是我们这里所说的高可用HA。 CTDBcluster trivial database 针对客户端nfs、samba挂载时,实现IP failover,比如:挂载时指定的主机宕机了,实现自动切换。 glusterfs自身已经实现,所以不需要CTDB,CTDB是为了解决NFS和Samba的高可用问题。 **注意:**CTDB,要求所有节点的的主机名必须能解析 IP Failover原理类似于双网卡的bond、应用的负载IP。 1)通过ctdb实现vip访问卷 2)vip访问卷的方式:不适合分布式,只适用于复制式 3)在分布式环境中测试,同时创建多个文件时,由于glusterfs volume中故障节点的目录未删除,依然会往故障节点分布数据,然而节点已经故障无法写入,这时会报错,数据丢失。 配置ctdb1. 装包
2. 新建一个复制卷作用:配置一个100M左右的小型复制卷,在卷内会生成一个0字节的锁文件,对虚拟IP进行锁定
3. 修改脚本在这个volume启动之前,关闭之后,需要分别执行以下两个脚本: /var/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh /var/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh 需要在所有节点作以下更改:
#默认,这个脚本,会在所有volume启动之前执行,这里指定只有ctdb这个volume启动的之前才执行 脚本执行的操作: 1)先挂载META这个变量指定的volume到本地的/gluster/lock(默认)目录 2)再在/etc/fstab写自动挂载条目 3)最后设置开机自启ctdb
4. 启动volume
5. 确认挂载启动之后,在所有相关节点,确认上面start脚本所执行的动作已完成
注意: 1.必须所有相关节点都已经挂载,才可实现ip failover 2.如果没有挂载,在有问题节点检查上面的配置,然后先stop volume,再start volume 6. 配置虚拟IP在所有使用NFS服务的节点创建/etc/ctdb/nodes文件,并在里面添加这些节点的IP到这个文件
在所有需要做IP failover的NFS节点,创建/etc/ctdb/public_addresses这个文件,并在里面添加虚拟IP到这个文件,并指定这个IP附加到哪个网卡
7. 配置SambaCTDB会管理samba服务,所以需要提前配置samba的配置文档,亦无需启动samba,此操作需要配置在所有节点中配置(若是先启动了ctdb,则创建密码的操作只需要在一个节点上执行,因为ctdb将此更改传播到所有节点),配置过程如下:
8. 配置glusterfs
9. 配置ctdb(需要时)在/etc/sysconfig/ctdb增加如下配置:
若需要开通NFS服务,设置CTDB_MANAGES_NFS=yes即可 10. 启动ctdb服务在所有节点启动ctdb服务 # systemctl start ctdb 客户端访问注意:这时应该用虚拟IP挂载 NFS:# mount -t nfs 192.168.1.20:/vol1 /mnt/vol1 Samba:# yum install -y samba-client cifs-utils # smbclient -L 192.168.1.20 -U samba # mount -t cifs -o username=samba,password=redhat //192.168.1.20/gluster-vol1 /mnt/vol1 查看ctdb状态可以使用命令查看CTDB集群的状态: # ctdb status # ctdb ip # ctdb ping -n all 课本练习
1. 在servera和serverb上安装所需的软件,并在这些机器上的防火墙上打开此设置所需的任何端口。
2. 停止ctdbmeta卷,然后在servera和serverb上设置相关的启动和停止触发,以便为CTDB使用ctdbmeta卷。还为两个节点上的Samba启用集群。
3. 启动ctdbmeta卷,然后配置CTDB以使用servera和serverb系统进行IP故障转移,使用172.25.250.15/24作为浮动IP地址。
4. 确保使用Samba导出custdata卷。记住为smbuser用户设置一个redhat Samba密码。将smbuser的samba密码设置为redhat。因为ctdb将此更改传播到所有节点,所以此步骤只需要在单个主机上执行。
5. 在您的workstation系统上,使用Samba通过浮动IP地址在/mnt/custdata上持久地挂载custdata卷。
6. 模拟故障。通过在/mnt/custdata中创建一些文件来测试你的IP故障转移,关闭当前分配了浮动IP的主机,然后在/mnt/custdata中创建更多的文件。不要忘记启动你关闭电源的机器。
7. 查看日志。
8. 脚本评分[root@workstation ~]# lab ctdb grade 总结
以上就是【金鱼哥】的分享。希望能对看到此文章的小伙伴有所帮助。 如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注?????? 【金鱼哥】??????,我将会给你带来巨大的【收获与惊喜】💕💕! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:14:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |