FastDFS服务双硬盘加验证配置
一、FastDFS扩容的方法介绍
FastDFS扩容有大概两种方式:
第一种方法比较简单快速,增加storage的group组即可;
就是增加一组storage服务组,在其中的配置文件出,修改group_name,修改tracker_server为已有的tracker且必须全部都要写上,不然可能tracker_server之间的信息状态会不同步。
第二种是在已有组中增加硬盘的方法,此方法在之前的文章中有介绍,其中稍微有一些缺陷:
在此重新介绍下双硬盘的storage的配置:双硬盘是在已有的storage组里每台机器添加容量相同的硬盘,并挂载到其中的盘符下。如下图,磁盘挂载到/home1目录下面。然后在其中创建目录。
如果不考虑使用nginx取文件,则到此就可以结束了,但是有时候会通过使用nginx取查看文件,所以,,需要修改nginx的配置文件,nginx.conf 、mod_fastdfs.conf,使nginx能够支持对不同的group组和存储路径(如M00、M01)的文件的查看
第三种:在华为云购买的云主机和云硬盘的话,还有一种扩容方式是直接扩容磁盘大小。
华为云购买的数据盘,挂载到服务器之后,不进行分区直接使用mkfs -t ext4 /dev/vdX进行格式化,然后挂载到云主机的某个目录下。
扩容时,在云主机卸载磁盘,然后云平台卸载磁盘,然后在云平台进行扩容磁盘操作(要花钱的哦哈哈。。),之后云平台挂载到云主机,找到华为云帮助文档,查看到需要在云主机中执行命令e2fsck -f /dev/vdX(检查系统文件的正确性)和resize2fs /dev/vdX (扩展文件系统的大小)
二、FastDFS扩容操作步骤
由于已有的磁盘存储已经到80%,所以,FastDFS必须扩容。综合考虑增加组的话既增加硬盘又增加主机、已有的组的存储数据只有读取而且读取的频率不会太高,现有业务产生的系统IO也不太高,所以综合下决定采用在已有的storage组中添加磁盘的方式进行扩容。
由于公司业务修改之后需要使用NGINX从storage中获取图片的,所以,需要配置nginx以支持从nginx中获取FastDFS中的文件内容
1、修改FastDFS的storage配置文件
修改storage.conf
此处修改了storage.conf的配置之后,需要重启storage服务,在重启其中一个的时候,会产生报错,重启了同组的另一个storage服务之后,报错就会消失。
报错内容如下图:
报错原因:两台storage的store_path_count 必须一致,不然存在M01的数据同步不到另外一台storage上。
这个连接中有解释:https://blog.csdn.net/vichou_fa/article/details/78774368
2、修改mod_fastdfs.conf配置文件
首先nginx服务得能支持mod_fastdfs模块,安装方法自行百度吧。
修改 mod_fastdfs.conf ,需要修改下图中的几处。
修改以上两处,和storage的地方相同,建议每一个组都采用这种方式;
修改此两处,特别注意group_name/storage_path_count/store_path的配置,一定要正确,如果有两个path,就写两个,有几个组就写几个组。(此处现实生产中的配置中有一些不一样的地方,在文章结尾处写这个问题)
3、修改storage服务器中的nginx的配置文件
修改nginx配置文件/usr/local/nginx/conf/nginx.conf
在此处有location ,我觉得可以将M00和M01这个东西给去掉,然后在最前端的nginx中做不同组的不同的转发后端,这地方写配置文件的话,就不需要写那么多group了,只需要写此NGINX所在storage的group组即可。
注意,此处有M00和M01 ,需要在storage的数据目录做软链接,支持这种操作,命令如下:
ln -s /home/fastdfs/storage/data/ /home/fastdfs/storage/data/M00 ln -s /home1/fastdfs/storage/data/ /home/fastdfs/storage/data/M01
4、由于nginx的话,可能会被遍历目录,所以采用token限制访问,token是程序那边返回的,且设定限定有效时间,需要在配置文件中放开。
配置如下:
有一个timg.jpg的图片,需要注意,写对,理论上这个图片可以是任意图片,但是路径一定要对。
注意开启http.anti_steal.check_token=true,注意写对secret_key这个。
###后续补充为什么nginx的mod_fastdfs.conf配置文件在集群中有不一样的配置。
集群配置如上,因为在这个扩容的过程中不牵涉到tracker ,故没有在此图中画出。
1、其中负载均衡后的nginx,是业务层根据域名做的域名请求转发。不同的group组转发到相应的FastDFS-nginx组上
2、FastDFS-nginx中有nginx和storage两个服务,其中storage服务的配置文件正常的配置双硬盘的方法;nginx的nginx.conf的配置文件也需要按照上面nginx的配置添加配置内容如下:
location ~/group([0-9])/M01 {
ngx_fastdfs_module;
}
nginx.conf配置文件修改好之后,修改mod_fastdfs.conf配置的时候,在group1组的只需要在末尾那些配置group组的配置文件的地方填写group1的配置即可,group2组只需要填写group1的配置,不需要每个storage的mod_fastdfs.conf的末尾的配置完全一样。这样就会造成不同组的mod_fastdfs.conf最后不一致。但是官方给的方案是要一致。可能是考虑到负载均衡或者是单独的对一个fastdfs的nginx请求的时候,不管是请求那个组都请求一个nginx ,那样的话,会造成请求不到的情况。如果区分好了请求group1只给group1的storage服务器中的nginx。那样就不会出错。
- 点赞
- 收藏
- 关注作者
评论(0)