记录一次FastDFS服务在增加新组之后报错的解决过程

举报
郁唯xiaolin 发表于 2019/03/01 20:53:04 2019/03/01
【摘要】 解决FastDFS扩容过程中出现的小问题。

    首先要先交代一下现在使用的FastDFS结构模式:总共有若干组,每组storage的其中一个主机挂载两块数据盘。现在的要求是添加一个storage组,新增的组中主机只有一块数据盘,还有,获取文件是用了NGINX的取文件的功能,而且加上了token设定超时的功能,以上为背景。

    本来题主以为,只需要修改一下fdfs_storage.conf这个配置文件,还有nginx相关的配置:http.conf 、mod_fastdfs.conf。修改过后,按照设想,配置文件应该是如下:

storage.conf配置见下:

图片.png

http.conf配置见下:

图片.png

mod_fastdfs.conf配置见下:

图片.png



配置完之后,修改storage服务器中的NGINX服务器配置,然后在前端负载均衡中引入此group组的负载功能。然后开开信心的测试了。结果出现499或者502的报错。WF。于是就开始排查配置文件:先从tracker开始,没有异常,再storage日志,也没有异常,正常的clean task,然后查看storage中的nginx的日志的时候发现了以下报错,开始不明白的这是什么鬼,我手段服务那边,也没有写错啊?为什么这个地方非要引用这个home1呢?我这个地方设置的只有home啊?

图片.png

[root@fdfs-g5-0001 logs]# tailf /usr/local/nginx/logs/error.log
2019/03/01 20:07:02 [notice] 20278#0: signal process started
ngx_http_fastdfs_set pid=16791
ngx_http_fastdfs_process_init pid=20279
[2019-03-01 20:07:02] ERROR - file: ../storage/trunk_mgr/trunk_shared.c, line: 116, "/home1/fastdfs/storage" can't be accessed, errno: 2, error info: No such file or directory
2019/03/01 20:07:02 [alert] 16791#0: worker process 20279 exited with fatal code 2 and cannot be respawned
2019/03/01 20:07:03 [notice] 20280#0: signal process started
ngx_http_fastdfs_set pid=16791
ngx_http_fastdfs_process_init pid=20281
[2019-03-01 20:07:03] ERROR - file: ../storage/trunk_mgr/trunk_shared.c, line: 116, "/home1/fastdfs/storage" can't be accessed, errno: 2, error info: No such file or directory
2019/03/01 20:07:03 [alert] 16791#0: worker process 20281 exited with fatal code 2 and cannot be respawned


于是,查看了很多的可能存在问题的地方比如:storage的sync目录,以及tracker的data目录,以及mod_fastdfs.conf中/tmp目录,可是什么都没有发现。

还是先看报错吧。

提示一个路径找不到。那好吧,找不到就创建。不过这个地方一直很郁闷,为什么会出现这个问题。NGINX中配置的时候,是出现了已经存在的机器的NGINX的配置,可是不生效啊。。怎么会在这儿出现这个问题呢?待解决的问题。

既然提示路径找不到,就创建这个路径吧。创建过后,就没有问题了。


我觉得问题可能出现以下几个方面:

1、可能我有一些配置文件没有看到,或者有一些同步的文件没有注意到,

2、也可能是我从老机器中copy过来NGINX的时候,将一些隐藏的东西也copy过来了。然后就出现今天这种情况了。


不过我觉得第二种的可能性大,但是那也要找到为甚会出现这样啊???



先说解决的方式吧:

  1. 就是创建没有存在的目录,如果提示文件找不到,就把相应的文件放到相应的目录中。

  2. 配置fastdfs和NGINX的时候,千万不要图省事儿从老机器中copy,除非你完全知道这么修改。这个费劲的排查程度还不如自己手动配置的速度快呢

因为今天的文件服务器还是需要扩容的,所以,再进行扩容之前,充分的进行了一次测试,测试结果是这样的:

之前的文件服务器配置的时候还是按照正常的配置,storage的配置文件正常配置就行了。这里没有任何的问题。出现问的地方在于一个跟NGINX有关的模块配置文件mod_fastdfs.conf,具体出错原因如下:

    1、配置mod_fastdfs.conf的时候,新增的fastdfs_storage是第几组就在此配置文件中协商几组配置文件,第一组在mod_fastdfs.conf末尾的地方写group_count=1 即可,此时配置后面的关于group的配置文件时只需要写第一组,当到第五组的时候应该写上group_count=5,后面配置文件最好将此五组配置都应该写上,要不然可能报错。

    2、测试了一下,拿第五组来说,如果前四组都是两个storage_path路径,那第五组只配置一块硬盘,此时配置mod_fastdfs.conf的时候,可以在其中的store_path_count=1写成只有一个path,但是创建目录的时候,比如讲上面四组中有的那两个路径,都应在第五组的创建。要不然,NGINX就会报错罢工。不知道为什么会有这样的原因。

    3、并且测试了一下,好像如果第五组直接写group_count = 1是不可以的。,必须从group1 -group4都写到配置文件里。但是group4组的mod_fastdfs.conf 就不需要将第五组写进去。

图片.png


PS:之前红色的地方有些说错了,现在看来是我对此软件的配置文件理解有误。




【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。