设为首页 收藏本站
查看: 1172|回复: 0

[经验分享] FastDFS 安装配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-3 13:05:45 | 显示全部楼层 |阅读模式
1、背景
       公司购买了一套语音分析系统,每天有30G的电话录话需要转换成为文本,然后在语音系统自定义的格式中打上标签,以提供给WEB前端搜索与回放。打标签后的数据约是原始录音的10倍大小,也就是每个月大概有 30G x 10倍 x 30天 = 9T 的数据需要存放,计划最长保留一年的历史数据,总共约 9T x 12个月 = 108T 。
        在这里,需要考虑到的问题是

        A、容量,108T是理想数值,还需要计算做Raid损耗 + 文件系统损耗 + 文件碎片空间损耗等等,所以至少需要再预多 30% 的空间松动,即 108T x 1.3 = 140.4T。按当前6T一块盘计算,总共需要24块,共144T。以后要求保留更长时间,如何扩容?

        B、灾备,硬件会出现故障,数据全压在一台机器上可行不?对于服务器一般正常使用故障率还是比较低的,但还是有可能存在,当出现故障时就是大故障,机器里的数据无法使用,报修需要时间长时一个月,短时三个工作日,所以需要考虑是否系统能接受的故障时长。这里要求支持灾备,需要至少多一份拷贝,也就是 288T,两台服务器。

        C、IOPS,如此大容量数据,检索范围之广,速度将是个问题,更需要考虑IOPS问题。(关于IOPS的计算百度上已经有很多介绍。)
        D、价格,专业存储确实是在各方面支持很到位,但这也需要在价格上体现它的价值,对于每次的采购都是一笔不菲的数字。我在该项目上的经费只有25W,计划8台高性能机器(语音分析属于密集型运算),在各个方面的花费都需要细细推敲。

        因此,我们需要选择一套合适的方案来支持以上的能力,因此引申出使用FastDFS的计划。


2、关于FastDFS
        FastDFS是一个由阿里巴巴开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。
        可以帮我解决以上问题:

        A、容量,只要新加低配置机器,能挂载上硬盘,它能横向无限扩展。

        B、灾备,FastDFS本身有分组的概念,把机器分为同组时,数据自动同步,无需人工干预。

        C、IOPS,加机器加硬盘,IOPS也相当于横向无限扩展,而且互不干扰。

        D、价格,系统非常轻量,对机器要求不高,一般8核8G内存就可以跑得很溜了,主要还是硬盘的花费多一点点。


3、系统结构定型
         QQ截图20170103130529.png
4、官网与下载


    • 介绍:http://www.oschina.net/p/fastdfs
    • 下载点1:https://sourceforge.net/projects/fastdfs/files/
    • 下载点2:https://github.com/happyfish100/fastdfs/releases


5、安装


    • 依赖包,libevent
           yum -y install libevent
    • 解包
           tar zxvf FastDFS_v5.03.tar.gz

    • 编译与安装(自带脚本没有提供修改安装路径的功能)
           cd FastDFS
           sh make.sh
           sh make.sh install
    • 设置为服务
           cp $源码包/init.d/* /etc/init.d/
           chkconfig add fdfs_trackerd
           chkconfig add fdfs_storaged
    • 启动
           service fdfs_trackerd start  ##在调度服务器,启动调度服务
           service fdfs_storaged start  ##在存储服务器,启动存储服务



6、常用文件说明
/etc/fdfsclient.conf客户端配置
http.conf支持HTTP协议的配置,
mime.typesHTTP对文件类型处理方式声明
mod_fastdfs.confnginx扩展配置
storage.conf存储程序的配置,重要
tracker.conf调度程序的配置,重要
/usr/local/bin/
fdfs_trackerd
调度程序
fdfs_storaged存储程序
fdfs_upload_file客户端程序——上传文件
fdfs_delete_file客户端程序——删除文件
fdfs_download_file客户端程序——下载文件
fdfs_file_info客户端程序——查看文件信息
fdfs_monitor维护程序

7、常用配置
    A、存储部分(storage.conf)
        ## 存储服务相关
        group_name = group1     ## 设置该存储的分组名,相同名字自动认为同一组,用于数据同步
        port = 23000                       ## 监听端口,默认23000
        work_threads=10               ## 工作进程数
        log_level=info                    ##日志等级
        run_by_group=fdfs            ##运行的用户组
        run_by_user=fdfs                ##运行的用户

        ##网络相关
        connect_timeout=30        ##连接超时时间,单位秒
        network_timeout=60         ##静止连接超时时间,单位秒
        heart_beat_interval=30    ##存储之间的心跳探测频率,单位秒
        stat_report_interval=60     ##向管理服务汇报的频率,单位秒
        max_connections=1024   ##最大连接数
        buff_size = 1024KB              ##缓存空间
        allow_hosts=192.16.100.[1-255]        ##同意访问的IP地址,默认为 *

        ##文件相关
        sync_wait_msec=50             ##文件同步频率,单位毫秒
        sync_interval=0                     ##文件同步频率,0为无时间间隔
        sync_start_time=00:00          ##文件可同步时间范围——开始时间
        sync_end_time=23:59          ##文件可同步时间范围——结束时间
        base_path=/data/fastdfs    ##存放存储服务索引数据与日志的目录
        store_path_count=4             ##本机用于存储的分区数,这里有4个分区,就有对应的store_path
        store_path0=/data1/            ##存放数据的目录,store_path0是必需的,其它按需增加
        store_path1=/data2/
        store_path2=/data3/
        store_path3=/data4/
        tracker_server=192.16.100.6:22122    ##调度服务地址
        tracker_server=192.16.100.7:22122    ##多个调度服务则一行行往下加

     B、调度服务(tracker.conf)
        port=22122               ##服务端口,默认22122
        base_path=/data/fastdfs            ##存放调度服务数据与日志的目录
        store_lookup=2        ##上传文件时选择存储组的方式,0轮询;1指定;2容量均衡
        store_group=           ##当store_lookup选择1时,该参数必需指定存储组
        store_server=0          ##上传文件时选择组内服务器的方式,0轮询;1IP排序首位;2权重排序首位
        store_path=2            ##上传文件的路径选择,0轮询;1无该值;2容量均衡
        download_server=0                    ##选择下载服务器的方式,0轮询;1最后上传文件的服务器
        reserved_storage_space=10%   ##为每组预留一定量的空间,超过该容量值时不再上传文件

        allow_hosts=192.16.100.[1-255]        ##同意访问的IP地址,默认为 *
        check_active_interval=120              ##检查存储存活的频率,单位秒
        storage_ip_changed_auto_adjust=true        ##当存储服务的IP变化时是否自动调整
        storage_sync_file_max_delay=86400          ##存储服务之间的文件同步最大延迟时间
        storage_sync_file_max_time=300                ##存储服务之间同步文件的最大时间
                                                       ##以上两个参数仅供调度服务参考,不影响存储服务之间的同步

        use_trunk_file=false    ##是否使用trunk文件来合并多个小文件,默认关闭,
                                             ##有大量小文件可以打开,像个盒子装着多个内容,
                                             ##可解决节点太多的问题,下载时一定要用客户端处理后下载,
                                             ##包括nginx也需要添加模块才能解析出来。

8、相关工具
        A、上传工具

           fdfs_upload_file <config_filename> <local_filename> [storage_ip:port] [store_path_index]
                <config_filename>:指定客户端配置文件,必填项
                <local_filename>:本地要上传的文件路径,可相对路径也可以是完整路径,必填项
                [storage_ip:port]:指定存储IP和端口,选填项
                [store_path_index]:指定存储路径,选填项
            执行成功后返回存储的完整路径,在FastDFS内部称为文件id。

            eg:

            ]#/usr/local/bin/fdfs_upload_file   /etc/fdfs/client.conf   /tmp/install.log
            group3/M00/00/00/AAA-Bx-OSjU119.log

        B、文件查看工具

            fdfs_file_info <config_file> <remote file id>
                <config_file>:指定客户端配置文件,必填项
                <remote file id>:指定要查看的文件ID,即上传时返回的完整路径
            执行成功后返回文件信息,包括存储服务器IP、ID、文件创建时间、大小、校验码。


            eg:

            ]# /usr/local/fdfs/bin/fdfs_file_info /etc/fdfs/client.conf group3/M00/00/00/AAA-Bx-OSjU119.log
            source storage id: 0
            source ip address: 192.168.100.10
            file create timestamp: 2016-12-30 14:48:59
            file size: 15879
            file crc32: 529418805 (0x1F8E4A35)

        C、下载工具

            fdfs_download_file <config_file> <remote file id> [local filename] [<download_offset> <download_bytes>]
                <config_file>:指定客户端配置文件,必填项
                <remote file id>:指定要查看的文件ID,即上传时返回的完整路径,必填项
                [local filename]:本地保存路径,选填项
                <download_offset>:下载文件的位移量,用于断点续传,与bytes成对出现,选填项
                <download_bytes>:文件的下载量,用于断点续传,与offset成对出现,选填项
             执行成功后无任何返回


         D、删除工具

                fdfs_delete_file <config_file> <file id>
                    <config_file>:指定客户端配置文件,必填项
                    <file id>:指定要查看的文件ID,即上传时返回的完整路径,必填项
                执行成功后无任何返回


         E、维护工具

                fdfs_monitor <config_file> [-h <tracker_server>] [list|delete|set_trunk_server <group_name> [storage_id]]
                    <config_file>:指定客户端配置文件,必填项
                    -h <tracker_server>:指定调度服务器IP,仅IP不包括端口,选填项
                    list:列出系统结构,包括空间、分组信息和存储服务状态、信息等

                    delete:可操作删除指定存储

                    set_trunk_server:指定调度服务器的 leader




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-323319-1-1.html 上篇帖子: FastDFS+Nginx 集成并实现断点续传(一) 下篇帖子: fastDFS 集群添加group及存储
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表