码迷,mamicode.com
首页 > 其他好文 > 详细

FastDFS源码学习(一)FastDFS介绍及源码编译安装

时间:2018-10-01 17:07:46      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:笔记   std   生产   应对   启示   log   .net   使用场景   monit   

FastDFS是淘宝的余庆主导开发的一个分布式文件系统,采用C语言开发,性能较优。在淘宝网、京东商城、支付宝和某些网盘等系统均有使用,使用场景十分广泛。

下图来源:https://blog.csdn.net/kyriehe/article/details/52431495

技术分享图片
目前这个系统的源码已在github上开源。
编译FastDFS需要下载以下源码:
FastDFS,下载地址:https://github.com/happyfish100/fastdfs
libfastcommon,下载地址:https://github.com/happyfish100/libfastcommon
本笔记(教程)采用如下环境进行编译学习,为了保证代码的一致性,建议在同等环境下进行编译学习。系统没有太大的更新,本教程均具有参考价值。
FastDFS版本:fastdfs-5.11.tar.gz
libfastcommon版本:libfastcommon-1.0.39.tar.gz
libfastcommon库编译安装
    1.解压libfastcommon,进入目录,执行./make.sh进行编译libfastcommon
    2.执行./make.sh install 进行安装libfastcommon
        安装时将头文件拷贝到/usr/include/fastcommon目录下,动态库libfastcommon.so拷贝到/usr/lib目录下。创建/usr/lib64/libfastcommon.so的软连接
        启示:我们自己也可以编写动态库,把接口预留出来(即include中的头文件)供其他开发人员使用。本项目的libfastcommon库在原作者(余庆)的fastdht系统中也有使用。本lib库是将项目中的基础模块提取出来形成的一个基础库,供系统调用使用,这个库在其他系统中也能发挥很大的作用
fastdfs编译安装
    1.解压fastdfs,进入目录,执行./make.sh进行编译fastdfs
    2.执行./make.sh install 安装fastdfs
        安装时将配置文件:client.conf.sample、tracker.conf.sample、storage_ids.conf.sample、storage.conf.sample拷贝到/etc/fdfs/目录下。
        将可执行程序文件:fdfs_trackerd、fdfs_storaged、fdfs_monitor、fdfs_test、fdfs_test1、fdfs_crc32、fdfs_upload_file、fdfs_download_file、fdfs_delete_file、fdfs_file_info、fdfs_appender_test、fdfs_appender_test1、fdfs_append_file、fdfs_upload_appender拷贝到/usr/bin目录下
重要文件解释:实际使用时将.sample去掉。
    client.conf.sample 客户端配置文件,主要配置client日志目录,tracker服务器地址
    tracker.conf.sample 配置tracker日志。
    storage.conf.sample 存储服务器配置文件,主要配置日志目录,数据存储目录,tracker服务器地址
整个系统中的重点是tracker服务器,storage需要tracker去发现。client去请求,都是要经过tracker服务器。
    该系统有以下优秀策略,将尝试在后续的代码分析中体现出来
    1.一个group内文件互为备份,即镜像服务器,上传/下载文件轮询策略,指定特定storage服务器上传/下载策略。上传后,同group的服务器互相备份数据。
    2.多个group存储策略可配置,有轮询策略,剩余空间大优先等策略。
    3.小文件合并存储功能(将多个小文件合并成一个大文件存储,主要应对小文件inode限制导致inode资源不够)
    4.后续使用中发现的其他功能。
由于本教程仅作个人学习分析,没有实际生产环境的支持,未免有失偏颇。还望同行不吝赐教。
参考资料:
http://bbs.chinaunix.net/thread-1920470-1-1.html FastDFS FAQ
https://blog.csdn.net/kyriehe/article/details/52431495 分布式存储fastDFS

FastDFS源码学习(一)FastDFS介绍及源码编译安装

标签:笔记   std   生产   应对   启示   log   .net   使用场景   monit   

原文地址:https://www.cnblogs.com/Bin-DuS/p/9734919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!