一、为什么选择fastDFS

1 FastDFS是用c语言编写的一款开源的分布式文件系统。
2 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,
3 使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

fastDFS架构

FastDFS架构包括 Tracker server和Storage server。
客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。
Tracker server作用是负载均衡和调度,
通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。
可以将tracker称为追踪服务器或调度服务器。
Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,
torage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。
可以将storage称为存储服务器。

安装

1.在opt目录创建fastdfs文件

2.安装libfastcommon 获取libfastcommon安装包 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz 报错了,找不到wget命令 安装wget命令 yum -y install wget 继续报错,无法找到镜像 测试是否是网络问题 抓包正常,网络没有问题;尝试更新yum 又开始报错 ###问题原因 出现这个错误是因为使用的 CentOS 7 仓库已经被归档,当前的镜像地址无法找到所需的文件。CentOS 7 的官方支持已经结束,部分仓库已被移至归档库。这导致了你的 yum 命令无法找到所需的元数据文件。CentOS 7 的官方仓库在 2024 年 6 月 30 日之后已经停止维护。因此,使用最新的 CentOS 7 官方仓库可能会遇到问题。 尝试解决: 进入/etc/yum.repos.d目录下找到 CentOS-Base.repo 执行 cp CentOS-Base.repo CentOS-Base.repo.backup 修改 CentOS-Base.repo 为 [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ #baseurl=http://vault.centos.org/7.9.2009/x86_64/os/ baseurl=http://vault.centos.org/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#$baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

wq保存,再执行 sudo yum clean all sudo yum makecache 等待加载成功; 然后继续执行 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 然后执行 cat CentOS-Base.repo发现镜像已改为了阿里云的 再此尝试导入wget命令 好的成功了 继续安装libfastcommon wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz 安装成功 解压安装包 tar -zxvf V1.0.38.tar.gz 进入目录:cd libfastcommon-1.0.38 执行编译:./make.sh 报错 安装gcc和make yum -y install gcc make 继续执行编译 ./make.sh 安装:./make.sh install

二、接下来就是安装FastDFS

wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz 解压:tar -zxvf fastdfs-5.11.tar.gz 进入目录:cd fastdfs-5.11 执行编译:./make.sh 安装:./make.sh install 查看可执行命令:ls -la /usr/bin/fdfs*

三、配置Tracker服务

进入/etc/fdfs目录,有三个.sample后缀的文件(自动生成的fdfs模板配置文件),通过cp命令拷贝tracker.conf.sample,删除.sample后缀作为正式文件 打开tracker.config,去到对应的目录创建好对应的文件夹。 tracker存储data和log的跟路径,必须提前创建好 启动tracker(支持start|stop|restart) /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start 查看端口情况: netstat -apn|grep fdfs ##四、配置Storage服务 进入/etc/fdfs目录,有cp命令拷贝storage.conf.sample,删除.sample后缀作为正式文件 启动storage(支持start|stop|restart) /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start 查看端口 通过monitor来查看storage是否成功绑定 /usr/bin/fdfs_monitor /etc/fdfs/storage.conf 报错,根据报错内容分析,尝试开启22122, 23000端口 还是报错;根据报错内容发现storage.conf 配置的tracker_server有问题,应该配置成本服务器的ip 将tracker和storage重启: /etc/init.d/fdfs_trackerd start /etc/init.d/fdfs_storaged start 查看端口监控 重启成功,再次尝试通过monitor来查看storage是否成功绑定;成功 ##五、上传测试 修改Client.conf base_path=/home/fastdfs 测试命令: /usr/bin/fdfs_test client.conf upload fastdfstest.png 报错; 根据报错提示,尝试解决, 1.修改tracker.conf store_group和storage.conf 保持一致; 2.修改storage.conf的tracker_server 地址和服务器ip地址保持一致; 3.pkill -9 fdfs 4.重启服务 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf /usr/bin/fdfs_storaged /etc/fdfs/storage.conf 再次尝试上传;成功