搭建FastDFS集群
先插一张图(学习的时候找的)http://blog.csdn.net/u012453843/article/details/68957209?>
软件下载地址:主要是fastdfs、libfastcommon
https://github.com/happyfish100/
讲一讲服务器功能:
1、Storage+Nginx,Storage是Fastdfs(fastdfs分为Tracker和Storage)的其中一个模块,主要是用于存放文件;Nginx添加fastdfs的专用Nginx模块,用于文件的Url访问。在同一个组的Storage互为备份,不同的组用于横向扩展容量。
2、Tracker+Nginx,Tracker是Fastdfs(fastdfs分为Tracker和Storage)的其中一个模块,主要是用于资源的调度,当用户使用客户端上传的时候,Tracker作为负载均衡,返回一个调度的Storage给客服端,然后客服端将文件上传到Storage。Nginx添加缓存模块作为负载均衡和缓存服务器。
3、Nginx集群多层负载均衡,作用的对外接口访问。
除Nginx集群多层负载均衡的2台外都要操作(Tracker和Storage同为Fasfdfs软件,只是最后我们启动的服务不同)(共六台):
安装gcc,使用的命令:yum install -y make cmake gcc gcc-c++
安装zip命令:yum install -y zip unzip
解压libfastcommon-master.zip。使用命令:unzip libfastcommon-master.zip
安装vim,之所以安装vim是因为安装vim会自动帮我们安装perl,以后编辑配置文件也方便。yum install -y vim-enhanced
使用 make.sh 和make.sh install 安装ibfastcommon-master。
添加软连接:(新版的改了很多,这是原博主的,没有验证是不是可以不要,有两个连接或者文件时存在的)
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
使用 make.sh 和make.sh install 安装fastdfs。
安装完成后的配置文件目录是:/etc/fdfs/
将配置文件的模板复制一份作为配置文件
Tracker的配置文件基本不用改,具体的配置项说明可以看看,主要是看他配置的目录根据需求来改,如果不存在最好是先建好(没有测试是不是会自动建立)。
Storage的配置文件也是基本不用改,具体的配置项说明可以看看,主要是看他配置的目录根据需求来改,如果不存在最好是先建好(没有测试是不是会自动建立),然后添加你的Tracker服务器,有几台加几台。然后就是不同存储组之间组名要不一样,同一存储组之间组名要一样。
Tracker开放22122端口
firewall-cmd --zone=public --add-port=22122/tcp --permanent
systemctl restart firewalld.service
Storage开放23000端口
firewall-cmd --zone=public --add-port=23000/tcp --permanent
systemctl restart firewalld.service
程序的目录是:/etc/init.d/
Tracker的启动:/etc/init.d/fdfs_trackerd start
Storage的启动:/etc/init.d/fdfs_storaged start
启动后可以分别到你配置的目录下的logs目录查看相关的日志。
查看集群信息:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
可以使用命令cd /usr/bin/ && ls | grep fdfs来查看fdfs所有的命令。
上传测试:Fastdfs配置文件目录是:/etc/fdfs/,程序的目录是:/etc/init.d/
在他的目录下还有一个工具可以用,就是client,同样的复制配置文件模板,同样基本不用改,具体的配置项说明可以看看,主要是看他配置的目录根据需求来改,如果不存在最好是先建好(没有测试是不是会自动建立),然后添加你的Tracker服务器,有几台加几台。
使用的命令:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/3.jpg
按回车执行上传命令后,会返回一个串:
group1/M00/00/00/wKicB1jjiFmAOUdkAAHk-VzqZ6w720.jpg,其中group1表示这张图片被保存在了哪个组当中,M00代表磁盘目录,如果电脑只有一个磁盘那就只有M00, 如果有多个磁盘,那就M01、M02...等等。00/00代表磁盘上的两级目录,每级目录下是从00到FF共256个文件夹,两级就是256*256个。wKicB1jjiFmAOUdkAAHk-VzqZ6w720.jpg表示被存储到storage上的3.jpg被重命名的名字,这样做的目的是为了防止图片名字重复。
可以去同一存储组的目录下查看是不是同步了,路径是你配置文件中的目录加上/00/00/。
对于Nginx的缓存服务器和上层的负载均衡就不在这里讲了。