Linux搭建FastFDFS文件管理系统搭建,部署及上传材料

昨天下午花了三四个小时在Linux centos 6 上搭建了一个分布式文件系统。纯粹是搭建来做自己的文件备份。所以把一些自己在其中遇到的一些问题给总结出来,免得更多人走错路。

FastDFS 的一些介绍(英文来自官方github):

FDFS , 开源分布式文件系统。主要的功能是:文件存储,同步,存取(上传和下载),它可以解决高容量和运载平衡的问题。FastDFS是符合了那些 图片,视频,照片分享的网站的需求。

FDFS 有分别有 tracker 和 storage 两个角色。tracker 负责安排和平衡文件的操作。storage 负责存储文件和其它对文件的操作(文件的保存,同步,提供访问文件的接口)。通过key&value文件的方式进行展现元数据。例如:width=1024,key为width 则 value为"1024"

trackerd 可以是一个或者多个的服务器。在 tracker 集群或者 storaged 集群中你可以随时随地可以添加或者移除集群而丝毫不影响在线的网站。tracker 集群变得越来越流行了。

storaged  组合文件的容量或者群组去获得高容量。storage 系统包含着一个或者多个在这些没有任何联系的容量卷。整个storage 系统的容量相当于所有容量的总和。一个文件卷可以包含一个或更多的存储类型是相同的storaged 服务器。

当整个storage 的容量爆了,你可以继续添加更多的卷去扩大内存。所以,你需要更多的服务器。...

卷名和文件名是组成身份认证的两个部分。

客户端测试的代码请参考目录:client / test

FastDFS的搭建过程:

从搭建部署到测试成功需要 9 步:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px }
span.s1 { }

#step 1. download libfastcommon source package from github and install it,

the github address:

https://github.com/happyfish100/libfastcommon.git

  下载libfastcommon 资源包

#step 2. download FastDFS source package and unpack it,

tar xzf FastDFS_v5.x.tar.gz

#for example:

tar xzf FastDFS_v5.08.tar.gz

  下载FastDFS 的资源包并解压

#step 3. enter the FastDFS dir

cd FastDFS

  进入FastDFS解压后的文件夹

#step 4. execute:

./make.sh

   安装

  

#step 5. make install

./make.sh install

  安装

#step 6. edit/modify the config file of tracker and storage

   修改 tracker.conf 和 storage.conf 两个配置文件

#step 7. run server programs

#start the tracker server:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

#in Linux, you can start fdfs_trackerd as a service:

/sbin/service fdfs_trackerd start

#start the storage server:

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

#in Linux, you can start fdfs_storaged as a service:

/sbin/service fdfs_storaged start

   其中storage 和 tracker 两个服务

#step 8. run test program

#run the client test program:

/usr/bin/fdfs_test <client_conf_filename> <operation>

/usr/bin/fdfs_test1 <client_conf_filename> <operation>

#for example, upload a file:

/usr/bin/fdfs_test conf/client.conf upload /usr/include/stdlib.h

 测试

  

#step 9. run monitor program

#run the monitor program:

/usr/bin/fdfs_monitor <client_conf_filename>

通过moniter检测项目运行情况

接下来我们进行正确的步骤:

所需软件包的github地址:

FastDFS       : https://github.com/happyfish100/fastdfs.git

libfastcommon : https://github.com/happyfish100/libfastcommon.git

所需的的环境:

Linux centos 6.5或者以上

如果系统没有gcc,那就命令行( yum install gcc )进行安装

下载:

cd /opt && mkdir fastdfs && cd fastdfs                            #在opt目录下建立文件夹 fastdfs
git clone https://github.com/happyfish100/fastdfs.git                  #下载FastDFS
git clone https://github.com/happyfish100/libfastcommon.git               #下载libfastcommon
cd /opt/fastdfs/libfastcommon                                #进入目录进行安装
./make.sh && ./make.sh install
cd /opt/fastdfs/fastdfs
./make.sh && ./make.sh install  

配置文件:

所有的配置文件都在 /usr/bin/fdfs/ 下 :

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
span.s1 { }

client.conf.sample  storage.conf.sample  storage_ids.conf.sample  tracker.conf.sample

cd /etc/fdfs
mv tracker.conf.sample  tracker.conf
mv storage.conf.sample storage.conf.samplemv client.conf.sample client.conf.sample

修改配置文件的内容如下:

storage.conf

# the base path to store data and log files
base_path=/mnt/xfsd/fastdfs/storage

# store_path#, based 0, if store_path0 not exists, it‘s value is base_path
# the paths must be exist
store_path0=/mnt/xfsd/fastdfs/storage

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=host:22122

#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=debug

# the port of the web server on this storage server
http.server_port=80

bash_path 是storage存储的数据和日志的地址

store_path0 和bash_path一样,只不过这个是优先存储的地址,如果不存在,默认是bash_path

tracker_server 是指tracker服务角色的 地址:端口。(如果tracker 和 storage 是同一个服务器的话,那么就填写服务器的ip和地址。)

log_level 是输出日志的级别设计

http.server_port 是http服务的接受端口

tracker.conf

# the tracker server port
port=22122

# the base path to store data and log files
base_path=/mnt/xfsd/fastdfs/tracker/

# HTTP port on this tracker server
http.server_port=80

修改后可以启动服务了

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf  (start | restart | stop)
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf  (start | restart | stop)

检查服务:

/usr/bin/fdfs_moniter /etc/fdfs/storaged.conf 

开启端口(我用的是iptables,简单便捷就可以配置了,可以去网上看下怎么安装iptables):

最后,进行测试:

fdfs_delete_file              # 删除文件
fdfs_upload_file               #上传文件
fdfs_test                         # 测试文件
fdfs_download_file                    #下载文件

拿fdfs_test来测试:

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /目标文件路径 

成功后会有以下信息:

时间: 2024-10-29 10:46:34

Linux搭建FastFDFS文件管理系统搭建,部署及上传材料的相关文章

nexus搭建maven私服及私服jar包上传和下载

nexus搭建maven私服及私服jar包上传和下载 标签: nexus管理maven库snapshot 2017-06-28 13:02 844人阅读 评论(0) 收藏 举报 分类: Maven(1) 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.nexus搭建maven私服及相关介绍 1.下载nexus-2.12.0-01-bundle.zip(版本随意) 2.以管理员身份运行cmd,cd进入解压文件的bin目录,执行nexus.bat install 若未以管理员身份运行则安装

Python远程登录Linux操作系统,执行命令、创建目录、上传及下载文件

主要是创建文件: #! /bin/bash # -*- coding: utf-8 -*- import paramiko import os ssh = paramiko.SSHClient() key = paramiko.AutoAddPolicy() ssh.set_missing_host_key_policy(key) pkey = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa') paramiko.util.log

Linux下定时任务实现mysql自动备份并上传远程ftp

Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_datacd /homemkdir mysql_data2.创建备份脚本文件:/home/mysql_data/mysql_databak.shcd /homecd  mysql_datatouch mysql_databak.shvim  mysql_databak.sh #!/bin/sh DUMP=/usr/bin/mysqldump#mysqldump备份文件执行路径 OUT_

利用nodejs监控文件变化并使用sftp上传到服务器

很久没写博客了,因为最近在用react+express做一个自己的工具型网站(其实就是夺宝岛抢拍器) 然后因为经常要改动,而且又要放到服务器上进行测试.总是要webpack,然后手动把文件上传上去,不胜其烦,索性搜索了下,直接写个能检测文件变化并自动进行上传的脚本好了. 首先,我们使用npm 安装两个别人封装好的模块. npm install ssh2-sftp-client npm install gaze 第一个模块的作用是sftp上传文件, 第二个模块的作用就是监听文件变化了.当然,你也可

ajaxfileupload.js插件结合一般处理文件实现Ajax无刷新上传

先上几张图更直观展示一下要实现的功能.本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2.0实现数据读取.这个功能在实际工作种经经常使用到,希望能给须要做这方面的人有些帮助. 一.功能页面布局及介绍 1.上传页面布局及input file上传功能 2.上传页面文件正在上传效果 3.上传完毕效果,多文件展示区 二.功能代码实现及资源引用 1.js资源文件引用 html页面js引用.须要引

asp.net 文件批量选取,批量上传,带进度条,uploadify3.2 TOP

http://www.16aspx.com/Article/3444 asp.net 文件批量选取,批量上传,带进度条,uploadify3.2 TOP,布布扣,bubuko.com

Springmvc+uploadify实现文件带进度条批量上传

网上看了很多关于文件上传的帖子,众口不一,感觉有点乱,最近正好公司的项目里用到JQuery的uploadify控件做文件上传,所以整理下头绪,搞篇文档出来,供亲们分享. Uploadify控件的主要优势是可以实现批量文件上传,并且提供了onSelect(选中文件).onUploadSuccess(上传成功回调函数)等多个事件监听函数,可以操控上传的整个流程. 对uploadify有个简单的了解后,废话不多说,开始吧... (由于这次项目中用到的是ssm框架,所以就以springmvc的后台处理为

linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。

首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要安装工具包:   yum -y install lrzsz ok   操作方式是,在当前目录下 执行: rz    就会出现一个windows的弹框,选择你要上传到linux服务器上的文件点击确认就可以. 常用参数 -b 以二进制方式,默认为文本方式.(Binary (tell it like it

Linux使用sz、rz命令下载、上传文件

1.安装服务 yum -y install lrzsz 2.上传命令:rz 使用rz命令,会调用系统的资源管理器,选择文件进行上传即可.上传的文件默认保存linux当前所在目录 3.下载命令:sz 根据实验只支持下载文件,如果一个scripts里面有多个脚本文件,那么使用sz scripts会提示错误,使用sz scripts/*虽然能够成功,但是这个命令只会下载文件,不会下载目录 所以使用的时候建议使用tar -cvf 打包再下载到windows 记忆方法:rz(接收)和sz(发送)两个命令是