搭建FastDFS分布式文件系统
一、为什么选择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
再次尝试上传;成功