FastDFS
传统文件系统和分布式文件系统对比
传统文件系统:
客户端直接连接文件系统,如果连接服务不可用,那就不能进行文件的上传下载。如果磁盘损坏,就会丢失所有文件。而且存储的空间十分有限,很容易达到磁盘上限。
分布式文件系统:
解决传统文件系统的单点问题,一个节点出现问题,其余节点还可以正常使用。提供数据的备份,分布式文件系统可以直连备份系统。提供库的扩容机制,无限增加文件存放容量。
FastDFS整体架构
FastDFS整体由两个部分构成,一个是客户端,一个是服务端。
客户端例如:使用java程序连接操作FastDFS,java程序就是客户端
服务端:由两个部分组成,一个是跟踪器(tracker),一个是存储节点(storage)
跟踪器(tracker):用于调度工作。记录存储节点(storage)上的状态信息。
从存储节点(storage):用于文件的存储。提供文件的备份、同步、操作(上传,下载,删除)。
FastDFS环境配置
FastDFS是安装在linux环境下的。安装的时候,有很多连续依赖,请按照以下步骤操作。
#安装c++环境
yum -y install gcc-c++
#安装libevent依赖
yum -y install libevent
libfastcommon 运行所需要的公共C语言函数库
windows环境下载FastDFS运行所需要的公共C语言函数库
注:目前最新版本的v1.0.39和最新版的FastDFS5.11不兼容,所有我们这里使用的版本是v1.0.38
通过XFTP上传到linux系统,(/home/soft)
并在当前文件夹内解压
tar -zxvf libfastcommon-1.0.38.tar.gz
#进入解压后的文件夹
cd libfastcommon-1.0.38/
#执行make脚本进行编译
./make.sh
#执行make install进行安装
./make.sh install
至此 libfastcommon 库安装完毕。
安装FastDFS
通过XFTP上传到linux系统(/home/soft)
并在当前文件夹内解压
tar -zxvf fastdfs-5.11.tar.gz
#进入解压后的文件夹
cd fastdfs-5.11/
#执行make脚本进行编译
./make.sh
#执行make install进行安装
./make.sh install
至此FastDFS安装完成
所有编译出来的文件存放在/usr/bin目录下
所有配置文件存放在/etc/fdfs目录下
#进入/home/soft/fastdfs-5.11/conf
cd /home/soft/fastdfs-5.11/conf
#拷贝两个文件到/etc/fdfs/
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
#进入/etc/fdfs
cd /etc/fdfs
#去掉/etc/fdfs/目录下FastDFS配置文件的后缀名
mv client.conf.sample client.conf
mv storage.conf.sample storage.conf
mv storage_ids.conf.sample storage_ids.conf
mv tracker.conf.sample tracker.conf
修改tracker.conf文件
vim tracker.conf
默认的文件仓库不存在,所以我们要自己修改成自己的目录
修改storage.conf文件
vim storage.conf
创建上面指定的路径的文件夹
cd /opt
mkdir fastdfs
cd fastdfs/
mkdir tracker
mkdir storage
cd storage/
mkdir files
启动FastDFS
在任意目录下执行:
fdfs_trackerd /etc/fdfs/tracker.conf
fdfs_storaged /etc/fdfs/storage.conf
#查看启动进程
ps -ef | grep fdfs
#查看storage是否已经注册到了tracker下
fdfs_monitor /etc/fdfs/storage.conf
重启或者关闭FastDFS
#重启tracker
fdfs_trackerd /etc/fdfs/tracker.conf restart
#重启storage
fdfs_storaged /etc/fdfs/storage.conf restart
#关闭tracker
fdfs_trackerd /etc/fdfs/tracker.conf stop
#关闭storage
fdfs_storaged /etc/fdfs/storage.conf stop
#或者查看启动进程
ps -ef | grep fdfs
#使用kill关闭进程
kill -9 xxxxx
不建议使用kill强制关闭fastdfs,可能会导致文件信息不同步的问题
FastDFS测试
修改client.conf配置文件
cd /etc/fdfs/
vim client.conf
#修改后:
#base_path=/opt/fastdfs/client
#tracker_server=192.168.42.136:22122 #192.168.42.136是本机ip
创建相应的文件夹
cd /opt/fastdfs/
mkdir client
#进行上传测试
fdfs_test /etc/fdfs/client.conf upload /root/muyu.jpg
#文件查看
cd /opt/fastdfs/storage/files/data/00/00/
#文件删除
#fdfs_delete_file /etc/fdfs/client.conf group1/要删除的文件路径
#删除主文件
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgqiGN3QSGAJGbcAAAQkCG6ohI525.jpg
#删除从文件
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgqiGN3QSGAJGbcAAAQkCG6ohI525_big.jpg