分布式存储fastdfs安装使用

本文详细介绍FastDFS的部署步骤,包括环境搭建、配置文件修改、服务启动及文件上传下载测试,确保分布式文件系统的顺利运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载地址https://github.com/happyfish100/fastdfs
https://github.com/happyfish100/fastdfs/wiki安装辅助说明文档
2.安装编译环境
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
三台主机:
172.18.224.100(tracker,client)
172.18.224.101(storage)
172.18.224.100(storage)
3.创建数据存储目录
mkdir /dfs
4.安装libfatscommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装
1
5.安装FastDFS
git clone https://github.com/happyfish100/fastdfs.git --depth 1
./make.sh && ./make.sh install #编译安装
cd fastdfs/conf
2
6.复制两个nginx访问时使用到的配置文件
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
7.
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
8.172.18.224.100编辑/etc/fdfs/tracker.conf:
base_path=/dfs/tracker ###自己定义的tracker目录
mkdir /dfs/tracker start
/etc/init.d/fdfs_trackerd start
9.172.18.224.101,172.18.224.102 编辑/etc/fdfs/storage.conf
base_path=/dfs/storage ###storage主目录
store_path0=/dfs/storage/0 ###存贮目录
tracker_server=172.18.224.100:22122
http.server_port=8080 ##与tracker文件保持一致
/etc/init.d/fdfs_storaged start ##启动storaged
3
10.查看fdfs是否安装成功:
fdfs_monitor /etc/fdfs/storage.conf4
11.编辑client端配置文件:
vim /etc/fdfs/client.conf
base_path=/dfs/client
mkdir -pv /dfs/clinet
12.上传文件:
fdfs_upload_file
5
fdfs_upload_file /etc/fdfs/client.conf /etc/fstab
查看文件信息fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBLgZVwwaiqAFIG_AAABOWqC2ow1549165
13.下载文件
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/rBLgZVwwaiqAFIG_AAABOWqC2ow1549165 /tmp/fs
14.172.18.224.101,102安装fastdfs-nginx-module
git clone https://github.com/happyfish100/fastdfs-nginx-module.git
/root/fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
15.安装nginx:
yum install pcre-devel openssl-devel ##安装依赖包
wget http://nginx.org/download/nginx-1.15.4.tar.gz ##下载nginx
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ #添加fastdfs-nginx-module模块
make && make install #编译安装
16.配置nginx:
vim /etc/fdfs/mod_fastdfs.conf

需要修改的内容如下

tracker_server=192.168.52.1:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/dfs

配置nginx.config

vim /usr/local/nginx/conf/nginx.conf

添加如下配置

server {

listen       8888;    ## 该端口为storage.conf中的http.server_port相同
server_name  localhost;
location ~/group[0-9]/ {
    ngx_fastdfs_module;
}

}
如果服务器存在多个nginx:
/usr/local/nginx/sbin/nginx -c /usr/local/src/nginx-1.15.4/conf/nginc.conf

注意,必须要保证已经从fastdfs/conf复制了http.conf与mime.types文件至/etc/fdfs/

6
17.使用curl命令验证fastdfs存储的文件是否可以通过http协议访问:
先随便上传一个文件 fdfs_upload_file /etc/fdfs/client.conf /etc/fstab

curl http://172.18.224.101:8888/group1/M00/00/00/rBLgZlwwd9OAWZztAAABOWqC2ow7681129
7
验证成功。

### 如何集成 FastDFS 和 MySQL 实现分布式文件存储方案 #### 1. 方案概述 为了实现高效的分布式文件存储,FastDFS 可用于处理大容量的文件存取操作,而 MySQL 则负责保存元数据信息。这种组合能够有效分离文件的实际存储与关联信息的管理。 #### 2. 文件上传流程设计 当客户端请求上传文件时,服务器端会接收该文件并通过 FastDFS 客户端 API 将其发送到指定的 Storage 节点上[^1]。完成上传后,返回给应用层一个唯一的文件 ID 或者 URL 地址作为标识符。接着,在应用程序内部利用此唯一标识符向数据库写入记录,包括但不限于文件名、大小、类型以及对应的业务逻辑字段等信息[^3]。 ```java // Java 示例代码展示如何调用 FastDFS 的上传接口并获取文件ID String fileId = fastDfsClient.uploadFile("/path/to/local/file"); ``` #### 3. 数据库表结构建议 针对上述需求,可以在 MySQL 中创建一张 `file_info` 表来维护这些必要的属性: | 字段名称 | 类型 | 描述 | |------------|-----------|------------------| | id | INT | 自增主键 | | file_id | VARCHAR | 存储于 FastDFS 上的文件ID | | original_name | VARCHAR | 原始文件名 | | size | BIGINT | 文件字节数 | | content_type | VARCHAR | MIME 类型 | | upload_time | TIMESTAMP | 上传时间戳 | #### 4. 查询优化策略 考虑到实际应用场景中可能存在的高并发读取情况,对于频繁访问的数据项应当考虑建立索引;同时也可以通过缓存机制进一步提升性能表现。另外,如果涉及到跨地域部署,则需评估是否有必要引入CDN加速服务以改善用户体验[^2]。 #### 5. 故障恢复措施 由于网络波动或其他不可预见因素可能导致部分节点失效,因此需要制定完善的灾难备份计划。具体来说就是定期对重要资料做异地复制,并确保所有组件之间具备良好的容错能力,比如采用多副本冗余的方式提高系统的可用性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值