FastDFS安装(mac)|文件存储方案
FastDFS安装(mac)|文件存储方案
在我们进行相关项目开发时,肯定会遇到需要进行文件保存的需求。那么这些文件(如图片)保存到哪里呢?
- 第一种方案是直接保存到本地磁盘中,即通过浏览器发一个post的请求,相关程序将文件保存到本地,这样完全可以实现。但缺点是文件和项目代码都会保存到同一台电脑上,即这台电脑(服务器)既要向客户端响应项目代码又要响应文件。
- 如果像分开就可以使用文件服务器,在这里就是FastDFS,即项目代码在一台电脑,文件在另一台电脑(也就是服务器)。从而实现分开
1 FastDFS介绍
1.1 FastDFS架构
包括Client、Tracker server和Storage server。
- 整体过程:Client也就是我们说的客户端,其请求Tracker进行文件上传、下载,Tracker再调度Storage完成文件上传和下载。
- Client: 客户端,业务请求的发起方,通过专有接口,使用TCP/IP协议与Tracker或Storage进行数据交互。FastDFS提供了upload、download、delete等接口供客户端使用。
- Tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。
- Storage server:存储服务器(存储节点或数据服务器),文件和文件属性都保存到存储服务器上。Storage server会定时的向Tracker server发消息,如果一段时间没发,Tracker server就会将其去除。直接利用OS的文件系统调用管理文件。
- Storage群中的横向可以扩容,纵向可以备份。
1.2 工作原理实例介绍
以上传文件为例:
- Client拿到需要上传的文件,这时Client会向Tracker server发一则消息即“当下需要保存文件”;
- Tracker server在接到消息后,就会从其列表中寻找可用的Storage server,并将可用的Storage server IP返回给Client;
- Client在就到相关IP后,就向这个指定IP的那台服务器发生要上传的文件;
- Storage server 收到文件会将文件保存,并为其起名,后将该名称返回给Client。
- Client收到这个名字后只需将该名称保存下来,供以后依据该名称到Storage server找寻该文件。
1.3 FastDFS上传和下载流程
1.4 FastDFS文件索引
FastDFS上传和下载流程 都涉及到文件索引(file_id)。
- 文件索引(file_id)是客户端上传文件后存储服务器返回给客户端,是以后访问该文件的索引信息。
文件索引(file_id)信息包括:组名、虚拟磁盘路径、数据两级目录、文件名等信息。
- 组名:文件上传后所在的 Storage 组名称。
- 虚拟磁盘路径:Storage 配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
- 数据两级目录:Storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
- 文件名:由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
2 FastDFS安装(mac)
笔者先尝试了使用docker安装FastDFS,但在创建storage容器时无法映射出data中的多个目录,为此也是尝试了很多方法且网上多数是在ubuntu系统进行的安装,前后花费了五六个小时,如果您有相关有效的解决的方法欢迎私信。这个方法我得出的结论是:
--network=host 参数只有在linux下生效, mac windows 都不能成功,所以导致安装fastdfs是失败的
因此笔者使用了如下的安装方法,亲测有效:
2.1 安装包
- libfastcommon:https://github.com/happyfish100/libfastcommon
- FastDFS:https://github.com/happyfish100/fastdfs
注意:上两个链接都是github上成熟的项目,进入页面后点击“Clone or download” ---> “Download ZIP”
2.2 安装libfastcommon
cd libfastcommon压缩包解压后的文件地址,一定要自行修改如(/Users/..../Desktop/libfastcommon-master)
./make.sh
sudo ./make.sh install
2.3 安装FastDFS
cd FastDFS压缩包解压后的文件地址,一定要自行修改如(/Users/..../Desktop/fastdfs-master)
./make.sh
sudo ./make.sh install
2.4 相关文件配置
(1)配置跟踪服务器tracker
- 拷贝tracker配置文件
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
先手动创建您想要存放目录,即收到创建文件夹(名称自由,但尽量不变方便后期查找): /您方便的目录/fdfs/tracker。笔者是在创建了如下目录路径是:
/var/fdfs/tracke
编辑/etc/fdfs/tracker.conf配置文件
sudo vim /etc/fdfs/tracker.conf
- 修改其中base_path的部分如下:
base_path=/您方便的目录/fastdfs/tracker
(2)配置存储服务器storage
- 拷贝storage配置文件
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
- 先手动创建您想要存放目录,即收到创建文件夹(名称自由,与上tracker保持在一个上级目录下): /您方便的目录/fdfs/storage。笔者是在创建了如下目录:
/var/fdfs/storage
- 编辑/etc/fdfs/storage.conf 配置文件
sudo vim /etc/fdfs/storage.conf
- 修改其中的base_path, store_path0, tracker_server
base_path=/您方便的目录/fdfs/storage
store_path0=/您方便的目录/fdfs/storage
tracker_server=Mac的IP地址:22122
(3)启动tracker和storage
sudo fdfs_trackerd /etc/fdfs/tracker.conf start
sudo fdfs_storaged /etc/fdfs/storage.conf start
(4)查看是否启动成功
ps aux|grep fdfs
如出现下面情况,则表明成功:
root 13211 98.0 0.0 4298076 800 ?? R 2:58下午 0:02.19 fdfs_storaged /etc/fdfs/storage.conf start
你的mac名 13256 0.0 0.0 4268192 464 s000 R+ 2:58下午 0:00.00 grep fdfs
root 13140 0.0 0.0 4297384 796 ?? S 2:58下午 0:00.00 fdfs_trackerd /etc/fdfs/tracker.conf start
2.5 client.conf配置文件修改
- 拷贝client配置文件
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
- 修改client配置文件
sudo vim /etc/fdfs/client.conf
- 修改其中的内容:
base_path=/您方便的目录/fdfs/tracker
tracker_server=您Mac的IP地址:22122
FastDFS安装(mac)|文件存储方案的更多相关文章
- Nginx|构建简单的文件服务器(mac) 续-FastDFS安装(mac)|文件存储方案
目录 Nginx|构建简单的文件服务器(mac) 1 所需安装包 2 安装fastdfs-nginx-module-master 3 安装Nginx Nginx|构建简单的文件服务器(mac) 续上文 ...
- Hadoop小文件存储方案
原文地址:https://www.cnblogs.com/ballwql/p/8944025.html HDFS总体架构 在介绍文件存储方案之前,我觉得有必要先介绍下关于HDFS存储架构方面的一些知识 ...
- mongoDB 大文件存储方案, JS 支持展示
文件存储 方式分类 传统方式 存储路径 仅存储文件路径, 本质为 字符串 优点: 节省空间 缺点: 不真实存储在数据库, 文件或者数据库发送变动需要修改数据库 存储文件本身 将文件转换成 二进制 存储 ...
- MongoDb gridfs-ngnix文件存储方案
在各类系统应用服务端开发中,我们经常会遇到文件存储的问题. 常见的磁盘文件系统,DBMS传统文件流存储.今天我们看一下基于NoSQL数据库MongoDb的存储方案.笔者环境 以CentOS ...
- MongoDb gridfs-ngnix文件存储方案 - 图片
http://www.cnblogs.com/wintersun/p/4622205.html 在各类系统应用服务端开发中,我们经常会遇到文件存储的问题. 常见的磁盘文件系统,DBMS传统文件流存储. ...
- 别再用CSV了,更高效的Python文件存储方案
CSV无可厚非的是一种良好的通用文件存储方式,几乎任何一款工具或者编程语言都能对其进行读写,但是当文件特别大的时候,CSV这种存储方式就会变得十分缓慢且低效.本文将介绍几种在Python中能够代替CS ...
- FastDFS安装配置
FastDFS FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务 ...
- FastDFS安装部署
博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽 服务器信息: Storage:192.168.247.20 Traker:192.168.247.21 一.搭建环境准备 ...
- IIs 网站应用程序与虚拟目录的区别及高级应用说明(文件分布式存储方案)
原文 IIs 网站应用程序与虚拟目录的区别及高级应用说明(文件分布式存储方案) 对于IIS网站,大伙用的比较多,就不啰嗦了. 今天和说说大伙比较少使用的"IIS应用程序”和虚拟目录的区别 ...
随机推荐
- Linux学习笔记(二)文件操作命令
文件操作命令 touch stat cat more less head tail ln touch 英文原意: change file timestamps 功能: 修改文件的时间戳 语法: tou ...
- Joomla 3.4.6 Remote Code Execution漏洞复现
0x00:简介 Joomla是一套全球有名的CMS系统. Joomla基于PHP语言加上MySQL数据库所开发出来的WEB软件系统,目前最新版本是3.9.12. Joomla可以在多种不同的平台上部署 ...
- Upload-Labs 实验操作记录
0x01 安装 下载:https://github.com/c0ny1/upload-labs 环境:简单搭建phpstudy环境即可,记得在upload-labs根目录下创建该文件夹 0x02 文件 ...
- s3cmd s3命令行工具
Amazon S3 Tools: Command Line S3 Client Software and S3 Backup 官方网站
- GitHub 热点速览 Vol.17:在?各家视频会员要不要?
作者:HelloGitHub-小鱼干 摘要:经济实用,用作上周的 GitHub 热点的横批再合适不过.先不说 GitHub Trending 上不止一个的会员共享项目,免你找好友刷脸要会员,这项目实在 ...
- 0day学习笔记(3)--修改函数返回地址
环境: devc++(编译改为32位),windows10 源码(来自书中) #include <stdio.h> #define PASSWORD "1234567" ...
- thinkPHP--关于域名指向的问题
一般项目的域名指向都是可以直接配置的,在默认的情况下.一般都是指向index.php文件.我就直接上图吧,这里是用我的公司项目名称www.xcj.com为域名. 一般的进入项目,调用默认的控制器: h ...
- Python(10)
如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a.b.c可能的组合? # 注意是三重循环 for a in range(0, 1001): for b i ...
- windows下怎么同时使用python2和3
windows命令行下,怎么能够自由的切换python2和3呢?当然不是切换目录!很多帖子告诉你,将python2目录下的python.exe文件改成python2.exe,pyhton3目录下的py ...
- 【Linux常见命令】tail命令
tail - output the last part of files tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件. tail -f filename ...