FastDFS介绍和安装配置
分布式存储介绍
传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需求。 分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
FastDFS介绍
FastDFS是一款开源的轻量级分布式文件系统, 由淘宝开发平台部资深架构师余庆开发。它对文件进行管理,功能包括文件存储、文件同步、文件访问(文件上传、文件下载、文件删除)等,解决了大容量存储和负载均衡的问题。 FastDFS是一款类GoogleFS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等类UNIX系统。它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,GoogleFS以及FastDFS、mogileFS、HDFS、TFS等类GoogleFS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。
FastDFS系统架构
FastDFS由三部分组成:
- Tracker Server: 跟踪器。跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。
- Storage Server: 存储节点。保存文件和文件属性,直接利用OS的文件系统调用管理文件。
- Client: 客户端。作为业务请求的发起方,通过专有接口,使用TCP/IP协议与Tracker server或Storage server进行数据交互。
FastDFS架构图:
上传文件
首先Client请求Tracker Server获取到Storage Server的ip地址和端口,然后Client根据返回的IP和端口请求上传文件,Storage Server接收到请求后生产文件,并且将文件内容写入磁盘并把 file_id、路径、文件名等信息返回给Client,Client保存相关信息后上传完毕。
下载文件
Client带上文件名信息请求Tracker Server获取到Storage Server的ip和端口,然后Client根据返回的IP和端口请求下载文件,Storage Server接收到请求后返回文件给Client。
安装
旧版FastDFS(FastDFS 2.0之前版本)没有直接使用epoll实现,而是通过libevent 实现(libevent 是一个用C语言编写的、轻量级的开源高性能网络库),而新的FastDFS网络IO这部分是重新用epoll实现。所以如果是FastDFS是2.0之前的版本,需要先安装好libevent环境(新版本不需要安装)。
安装libfastcommon
libfastcommon为FastDFS操作的基础库,FastDFS没有使用标准的库,而是封装了一套和FastDFS相关的库。安装FastDFS之前需要安装libfastcommon。
libfastcommon github地址:https://github.com/happyfish100/libfastcommon
# 解压
tar -zxvf libfastcommon-1.0.7.tar.gz
# 进入源码目录
cd libfastcommon-1.0.7
# 编译
./make.sh
# 安装
sudo ./make.sh install
安装成功后,libfastcommon.so会被复制到/usr/lib64/路径下。
安装FastDFS
FastDFS github地址:https://github.com/happyfish100/fastdfs
FastDFS安装过程和libfastcommon是一样的
# 解压
tar -zxvf fastdfs-5.12.tar.gz
# 进入源码目录
cd fastdfs-5.12
# 编译
./make.sh
# 安装
sudo ./make.sh install
可执行程序会被安装到/usr/bin/路径下
安装成功后,会自动在/etc/fdfs/下生成几个配置文件
fdfs_test命令可用来测试是否安装成功
配置
进入到/etc/fdfs/路径下进行配置,首先复制一份三个配置文件
cd /etc/fdfs/
sudo cp client.conf.sample client.conf
sudo cp storage.conf.sample storage.conf
sudo cp tracker.conf.sample tracker.conf
然后在家目录下创建fastdfs目录(可以自行指定,不必放在家目录下)后,在fastdfs下创建tracker storage client三个子目录
mkdir fastdfs
cd fastdfs
mkdir tracker storage client
Tracker配置
修改配置文件tracker.conf,这里主要列出几个重要的配置项
# 跟踪器绑定的ip,为空表示绑定本机所有ip
bind_addr=
# 绑定的端口号
port=22122
# log目录,使用之前创建的tracker文件夹
base_path=/home/ifantsai/fastdfs/tracker/
Storage配置
修改配置文件storage.conf,这里主要列出几个重要的配置项
# 存储节点所属组
group_name=group1
# 存储节点绑定的ip,为空表示绑定本机所有ip
bind_addr=
# 绑定的端口号
port=23000
# log目录,使用之前创建的storage文件夹
base_path=/home/ifantsai/fastdfs/storage/
# 存储目录个数
store_path_count=1
# 存储目录,使用之前创建的storage文件夹
store_path0=/home/ifantsai/fastdfs/storage/
# 跟踪器的IP和端口 (注:不要使用:127.0.0.1)
tracker_server=192.168.43.146:22122
Client配置
修改配置文件client.conf,这里主要列出几个重要的配置项
# log目录,使用之前创建的client文件夹
base_path=/home/ifantsai/fastdfs/client/
# 跟踪器的IP和端口 (注:不要使用:127.0.0.1)
tracker_server=192.168.43.146:22122
启动测试
先启动跟踪器
fdfs_trackerd /etc/fdfs/tracker.conf
启动存储节点
fdfs_storaged /etc/fdfs/storage.conf
测试
fdfs_monitor /etc/fdfs/client.conf
执行后输出一对信息,如下图处显示ACTIVE表示存储节点已激活
上传文件
# 格式:fdfs_upload_file /etc/fdfs/client.conf 文件名
fdfs_upload_file /etc/fdfs/client.conf wallhaven-250247.jpg
返回的就是上传的文件的存储路径和经过哈希计算的文件名,group1表示是所属组,M00表示在storage.conf中配置的store_path0的值,所以该文件的完整路径为/home/ifantsai/fastdfs/storage/data/00/00/wKgrkly3NY-ANAP6AACEQjQtgEQ567.jpg
下载文件
# 格式:fdfs_download_file /etc/fdfs/client.conf 上创文件时返回的路径
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgrkly3NY-ANAP6AACEQjQtgEQ567.jpg
本文作者: Ifan Tsai (菜菜) 本文链接: https://www.caiyifan.cn/p/fe7981af.html 版权声明: 本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
相关文章
- Nginx服务配置篇·第三课:NextCloud部署安装
- anaconda+pycharm的安装与配置教程
- pycharm配置svn有什么用_SVN安装配置
- ant安装配置使用介绍及eclipse中使用
- Linux CentOS 7安装Oracle11g超完美教程[通俗易懂]
- CentOS+VMware安装与配置(一)
- fedora14虚拟机安装教程_vmware上安装ubuntu
- 1.Nginx基础介绍与安装配置实践指南
- php安装向导中判断是否安装的实现思路
- python虚拟环境安装和配置
- pycharm 社区版 安装配置django[通俗易懂]
- nginx入门:功能介绍、安装、配置、优化及监控
- mac下免费安装虚拟机和中文版Origin 2022
- 三维设计与工程制图软件CATIA中文版,CATIA软件2023安装教程下载
- 安装配置:Linux下安装tomcat8的最新图解教程
- Apache安装配置避坑指南
- Ubuntu14.04安装、配置与卸载QT5的步骤详解
- 安装实现基于Linux的嵌入式系统安装:U盘安装法(linux嵌入式u盘)
- Linux下KVM的安装与配置(linux安装kvm)
- Ubuntu 及衍生版本上安装 Kernel 4.8.6
- R语言在Linux上的安装指南(r语言linux安装)
- Linux下ADB驱动的安装与配置(linuxadb驱动)
- DNS安装配置全过程
- Linux下ZendOptimizer的安装与配置方法