FastDFS_V5.0分布式存储(介绍、安装与使用)

介绍  架构分析(http://blog.csdn.net/MONKEY_D_MENG/article/details/6038133)

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。
跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。

存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

上传交互
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。
下载交互
1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。

分以下步骤进行:

服务器IP:192.9.38.192/193

服务器系统信息:

一、创建数据存储目录:

mkdir /usr/local/odrive/fastdfs

mkdir /usr/local/odrive/fastdfs/tracker  #tracker目录保存运行日志

mkdir /usr/local/odrive/fastdfs/storage  #Storage目录保存运行日志及其data数据

二、安装依赖包:

yum install -y zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip

也可以手动下载以下需要的依赖包:

fastdfs-nginx-module_v1.16.tar.gz

FastDFS_v5.08.tar.gz

nginx-1.9.7.tar.gz

libfastcommon-master.zip(https://github.com/happyfish100/libfastcommon/archive/master.zip)

三、安装libfastcommon

cd libfastcommon-master/

./make.sh

./make.sh install

四、安装Fastdfs

wget http://sourceforge.net/projects/fastdfs/files/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.05/FastDFS_v5.05.tar.gz/download

解压 进入cd FastDFS

tar -zxvf FastDFS_v5.05.tar.gz

sudo ./make.sh

sudo ./make.sh install

复制(解压源代码目录)/usr/local/odrive/installsoft/FastDFS/conf/目录下的所有文年到/etc/fdfs/目录下

进入目录/usr/local/odrive/installsoft/fastdfs-nginx-module/src

sudo cp mod_fastdfs.conf /etc/fdfs/

五、配置tracker 和 storage 配置文件, 对应修改

cd /etc/fdfs/

vi storage.conf

group_name=group1

base_path=/export/fastdfs/storage

store_path0=/export/fastdfs/storage

tracker_server=192.9.38.192:22122

tracker_server=192.9.38.193:22122

http.server_port=80

i tracker.conf

base_path=/export/fastdfs/tracker

vi mod_fastdfs.conf

group_name=group1

base_path=/export/fastdfs/storage

store_path0=/export/fastdfs/storage

tracker_server=192.9.38.192:22122

tracker_server=192.9.38.193:22122

url_have_group_name = true

vi client.conf

tracker_server=192.9.38.192:22122

tracker_server=192.9.38.193:22122

六、安装nginx和fastdfs-nginx-module模块

wget http://nginx.org/download/nginx-1.8.0.tar.gz

http://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz/download

tar zxf fastdfs-nginx-module_v1.16.tar.gz && tar zxf nginx-1.8.0.tar.gz

#修改模块中对应的路径,要不然模块不能正确安装加载

cd fastdfs-nginx-module/src

vi conf   #更改如下, 去掉local,并指定lib64(64系统)

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

CORE_LIBS="$CORE_LIBS -L/usr/lib64 -lfastcommon -lfdfsclient"

修改后的示例

ngx_addon_name=ngx_http_fastdfs_module

HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"

NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

CORE_LIBS="$CORE_LIBS -L/usr/lib64 -lfastcommon -lfdfsclient"

CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE=‘256*1024‘ -DFDFS_MOD_CONF_FILENAME=‘\"/etc/fdfs/mod_fastdfs.conf\"‘"

ulimit -SHn 102400

useradd -s /sbin/nologin www

cd nginx-1.8.0

/configure --user=www --group=www --add-module=../fastdfs-nginx-module/src/ --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module

make

make install

七、配置nginx

server_name 192.9.38.192;

root /webdata/fastdfs.com;

index index.html index.htm;

location / {

if (!-e $request_filename) {

rewrite ^(.*)$ /index.html last;

}

location /group1/M00 {

root /export/fastdfs/storage/data/;

ngx_fastdfs_module;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js)$ {

#       fastcgi_cache cache_one;  #nginx.conf 开启cache才行,要不然启动报错

fastcgi_cache_valid 200 10m;

fastcgi_cache_valid 304 3m;

fastcgi_cache_valid 301 302 1h;

fastcgi_cache_valid any 1m;

fastcgi_cache_min_uses 1;

fastcgi_cache_use_stale error timeout invalid_header http_500;

fastcgi_cache_key $host$request_uri;

access_log off;

}

}

access_log off;

}

cd  /usr/local/odrive/nginx/conf

修改nginx.conf

添加如下内容

server {

listen       80;

server_name  192.9.38.192;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

root   html;

index  index.html index.htm;

}

location /group1/M00 {

root /usr/local/odrive/fastdfs/storage/data/;

ngx_fastdfs_module;

}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html

#

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

八、193 的配置一样, nginx对应的ip为193, 启动nginx和fastdfs

/etc/init.d/nginx -t

ngx_http_fastdfs_set pid=8985

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[[email protected] vhost]# /etc/init.d/nginx -s reload

ngx_http_fastdfs_set pid=8986

九、测试

在浏览器输入生成的URL:

后续补充:相关知识,及安装配置出现的问题。

时间: 2024-10-26 14:32:28

FastDFS_V5.0分布式存储(介绍、安装与使用)的相关文章

Zabbix 3.0 基础介绍 [一]

Zabbix 3.0 基础介绍 [一] zabbix 一.Zabbix介绍 zabbix 简介   Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利   zabbix是一个基于Web界面的,提供分布式系统监控以及网络监视功能的企业级的开源解决方案.   zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题

redis3.0.2 编译安装 (启动服务方式启动)

1.基础环境介绍: 操作系统:Centos 6.7 redis版本:3.0.2 2.开始安装: 1)基础安装 参考链接:http://309173854.blog.51cto.com/7370240/1710655         [[email protected] ~]#yum -y install tcl         [[email protected] ~]# wget http://download.redis.io/releases/redis-3.0.2.tar.gz     

SciPy0.11.0(or higher)安装

OpenMDao程序依赖scipy并且要求版本在0.11.0以上,安装起来费了一些劲.网上查的可以apt-get install python-scipy安装,但版本只到0.08.0(这里不禁要问源的维护人员搞毛去了,如果支持更高的,根本就不费一点事了).因此按照OpenMDao官网上给出的教程下载源程序编译安装,然后输入以下几条命令,大概就是让python知道安装了这个包吧: cd /usr/local/lib/python2.7/dist-packages sudo find scipy -

CentOS下Storm 1.0.0集群安装具体解释

本文环境例如以下: 操作系统:CentOS 6 32位 ZooKeeper版本号:3.4.8 Storm版本号:1.0.0 JDK版本号:1.8.0_77 32位 python版本号:2.6.6 集群情况:一个主控节点(Master)和两个工作节点(Slave1,Slave2) 1. 搭建Zookeeper集群 安装參考:CentOS下ZooKeeper单机模式.集群模式安装 2. 在Nimbus和worker机器上安装依赖包 Java 6 Python 2.6.6 以上的版本号是官方说已经有測

Scratch2.0入门介绍

Scratch2.0入门介绍 [教学目标] 1. 演示Scratch2.0作品,激发学习兴趣. 2. 认识Scratch2.0界面及分享平台 3. 了解创作作品的步骤 [教学课时]      15分钟 [对象]      零基础中小学生及父母 [教学重点.难点]      教学重点:Scratch2.0编辑器的下载与安装.在线注册用户 [教学方法与手段]      演示法.自主探究学习法 [教学准备] 教学课件 [教学过程] 一. 创设情境,激发兴趣 演讲者:看见电视里的动画.或者别人制作的游戏

从零开始编写自己的C#框架(6)——SubSonic3.0插件介绍(附源码)

原文:从零开始编写自己的C#框架(6)--SubSonic3.0插件介绍(附源码) 前面几章主要是概念性的东西为主,向初学者们介绍项目开始前的一些知识与内容,从本章开始将会进入实操阶段,希望跟着本系统学习的朋友认真按说明做好每一步操作(对于代码最好是直接照着文档内容在你的IDE中打一次出来,而不是使用复制粘贴),这样对你理解后面的章节会有较好的帮助,如果你对我这种书写方式有什么建议或支持,也希望在评论中留言,谢谢你的支持. SubSonic3.0简介 SubSonic是Rob Conery用c#

_00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0

笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_00024 妳那伊抹微笑_云计算之ClouderaManager以及CHD5.1.0集群部署安装文档V1.0 个性签名:世界上最遥远的距离不是天涯,也不是海角.而是我站在妳的面前.妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahou

Android 6.0 Marshmallow介绍

Android 6.0 Marshmallow介绍 Android 6.0 (M) 为用户和应用开发者提供了新功能.本文旨在介绍其中最值得关注的 API和重点介绍您应该了解并在开发应用时加以考虑的一些主要变更. 1.Android 6.0新增功能与特性 指纹身份验证: 此版本提供了一些新的 API,在受支持的设备上,用户只需扫描其指纹即可完成身份验证,这些 API 还可与 Android 密钥库系统结合使用. 要通过指纹扫描验证用户身份,请获取新 FingerprintManager 类的实例,

zabbix 3.0 监控的安装

Zabbix安装文档 zabbix进程构成 默认情况下zabbix包 含5个程序:zabbix_agentd.zabbix_get.zabbix_proxy.zabbix_sender. zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装.下面来分别介绍下他们各自的作用. 进程介绍 1.zabbix_agentd客户端守护进程,此进程收集客户端数据,例如cpu负载.内存.硬盘使用情况等 2.zabbix_getzabbix工具,单独使用的命令,通常