Gluster常见故障处理和HOWTO资源

Gluster常见故障处理方法,根据官方Troubleshooting文档汇编而成,供大家解决Gluster问题参考,同时罗列了一些GlusterFS进阶话题HOWTO资源。欢迎各位同学补充,共同研究Gluster原理并分享应用经验。

Q1:Gluster需要占用哪些端口?

Gluster管理服务使用24007端口,Infiniband管理使用24008端口,每个brick进程占用一个端口。比如4个brick,使用24009-24012端口。Gluster内置NFS服务使用34865-34867端口。此外,portmapper使用111端口,同时打开TCP和UDP端口。


Q2:创建Gluster资源池出问题?

首先,检查nslookup是否可以正确解析DNS和IP。其次,确认没有使用/etc/hosts直接定义主机名。虽然理论上没有问题,但集群规模一大很多管理员就会犯低级错误,浪费大量时间。再者,验证Gluster服务所需的24007端口是否可以连接(比如telnet)?Gluster其他命令是否可以成功执行?如果不能,Gluster服务很有可能没有启动。


Q3:如何检查Gluster服务是否运行?

可以使用如下命令检查Gluster服务状态:

(1) service glusterd status

(2) systemctl status glusterd.service

(3) /etc/init.d/glusterd status


Q4:无法在server端挂载(mount)Gluster卷?

检查gluster卷信息,使用gluster volume info确认volume处于启动状态。运行命令“showmount -e “,确认可以输出volume相关信息。


Q5:无法在client端挂载(mount)Gluster卷?

检查网络连接是否正常,确认glusterd服务在所有节点上正常运行,确认所挂载volume处于启动状态。

 

Q6:升级Gluster后,客户端无法连接?

如果使用原生客户端访问,确认Gluster客户端和服务端软件版本一致。通常情况下,客户端需要重新挂载卷。

 

Q7: 运行“glusterpeer probe“,不同节点输出结果可能不一致?

这个通常不是问题。每个节点输出显示其他节点信息,并不包括当前节点;不管在何处运行命令,节点的UUID在所有节点上都是相同和唯一的;输出状态通常显示“Peer in Cluster (Connected)“,这个值应该和/var/lib/glusterd/glusterd.info匹配。

 

Q8:数据传输过程中意外杀掉gluster服务进程

所有数据都不会丢失。Glusterd进程仅用于集群管理,比如集群节点扩展、创建新卷和修改旧卷,以及卷的启停和客户端mount时信息获取。杀掉gluster服务进程,仅仅是一些集群管理操作无法进行,并不会造成数据丢失或不可访问。

 

Q9:意外卸载gluster?

如果Gluster配置信息没有删除,重新安装相同版本gluster软件,然后重启服务即可。Gluster配置信息被删除,但数据仍保留的话,可以通过创建新卷,正确迁移数据,可以恢复gluster卷和数据。友情提示:配置信息要同步备份,执行删除、卸载等操作一定要谨慎。

 

Q10:无法通过NFS挂载卷?

这里使用Gluster内置NFS服务,确认系统内核NFS服务没有运行。再者,确认rpcbind或portmap服务处于正常运行中。内置NFS服务目前不支持NFS v4,对于新Linux发行版默认使用v4进行连接,mount时指定选项vers=3。

mount -t nfs -o vers=3 server2:/myglustervolume/gluster/mount/point

 

Q11:双节点复制卷,一个节点发生故障并完成修复,数据如何同步?

复制卷会自动进行数据同步和修复,这个在同步访问数据时触发,也可以手动触发。3.3以后版本,系统会启动一个服务自动进行自修复,无需人工干预,及时保持数据副本同步。

 

Q12:Gluster日志在系统什么位置?

新旧版本日志都位于/var/log/glusterfs

 

Q13:如何轮转(rotate)Gluster日志?

使用gluster命令操作:gluster volume logrotate myglustervolume

 

 Q14:Gluster配置文件在系统什么位置?

3.3以上版本位于/var/lib/glusterd,老版本位于/etc/glusterd/。

 

Q15:数据库运行在gluster卷上出现很多奇怪的错误和不一致性?

Gluster目前不支持类似数据库的结构化数据存储,尤其是大量事务处理和并发连接。建议不要使用Gluster运行数据库系统,但Gluster作为数据库备份是一个很不错的选择。

 

Q16:Gluster系统异常,重启服务后问题依旧。

很有可能是某些服务进程处于僵死状态,使用ps -ax | grep glu命令查看。如果发出shutdown命令后,一些进程仍然处于运行状态,使用killall -9gluster{,d,fs,fsd}杀掉进程,或者硬重启系统。

 

Q17:需要在每个节点都运行Gluster命令吗?

这个根据命令而定。一些命令只需要在Gluster集群中任意一个节点执行一次即可,比如“gluster volume create”,而例如“gluster peerstatus ”命令可以在每个节点独立多次执行。


Q18:如何快速检查所有节点状态?

Gluster工具可以指定选项 --remote-host在远程节点上执行命令,比如gluster --remote-host=server2 peer status。如果配置了CTDB,可以使用“onnode”在指定节点上执行命令。另外,还可以通过ssh-keygen和ssh-copy-id配置SSH无密码远程登录和执行命令。


Q19:Gluster导致网络、内核、文件系统等出现问题?

可能。但是,绝大多数情况下,Gluster或者软件都不会导致网络或存储等基础资源出现问题。如果发现由Gluster引起的问题,可以提交Bug和patch,并可以社区和邮件列表中讨论,以帮助改善Gluster系统。


Q20:为什么会发生传输端点(transportendpoint)没有连接?

在Gluster日志中看到这种错误消息很正常,表明Gluster由于一些原因无法通信。通常情况下,这是由于集群中某些存储或网络资源饱和引起的,如果这类错误消息大量重复报告,就需要解决问题。使用相关技术手段可以解决大部分的问题,另外有些情况可能由以下原因引起。

1、需要升级RAID/NIC驱动或fireware;

2、第三方备份系统在相同时间运行;

3、周期更新locate数据库包含了brick和网络文件系统;

4、过多rsync作业工作在gluster brick或mount点。

 

HOWTO资源列表

1、GlusterFS on ZFS: http://www.gluster.org/community/documentation/index.php/GlusterOnZFS

2、CTDB Howto: http://www.gluster.org/community/documentation/index.php/CTDB

3、HA and Load Balancing with NFS and SMB: http://download.gluster.org/pub/gluster/glusterfs/doc/HA%20and%20Load%20Balancing%20for%20NFS%20and%20SMB.html

4、GlusterFS Cinder: http://www.gluster.org/community/documentation/index.php/GlusterFS_Cinder

5、Linux Kernel Tuning: http://www.gluster.org/community/documentation/index.php/Linux_Kernel_Tuning

6、Network Configuration Techniques: http://www.gluster.org/community/documentation/index.php/Network_Bonding

7、Using the Gluster Test Framework:http://www.gluster.org/community/documentation/index.php/Using_the_Gluster_Test_Framework

8、Gluster 3.4: Brick Restoration - Replace Crashed Server:http://gluster.org/community/documentation/index.php/Gluster_3.4:_Brick_Restoration_-_Replace_Crashed_Server


你可能感兴趣的:(数据存储)