玩转Fastdfs

FastDFS

FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务,如相册网站、视频网站等等

特性

文件不分块存储,上传的文件和OS文件系统中的文件一一对应

支持相同内容的文件只保存一份,节约磁盘空间

下载文件支持HTTP协议,可以使用内置Web Server,也可以和其他Web Server配合使用

支持在线扩容

支持主从文件

核心架构

client业务请求方

客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用。

tracker大哥

跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。

storage小弟

存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。

group

组, 也可称为卷。 同组内服务器上的文件是完全相同的 ,同一组内的storage server之间是对等的, 文件上传、 删除等操作可以在任意一台storage server上进行 

docker下载

拉取镜像

docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

启动容器(修改ip)【自启动】

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=192.168.66.101 -e WEB_PORT=8888 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

查看容器,找到fastdfs容器的id

docker images

进入容器

docker exec -it ea5bb54e1180 bash

修改client.conf文件核对一下即可

vi /etc/fdfs/client.conf

#需要修改的内容如下 可以不一致,不用改

base_path=/home/fastdfs

#tracker服务器IP和端口

tracker_server=192.168.139.128:22122

fastdfs命令

上传

fdfs_upload_file /etc/fdfs/client.conf /opt/test1.info

会把/opt路径下的test1.info保存到设置的storage存储路径

fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index]

参数含义:

<config_file> :配置文件路径

<local_filename> :本地文件路径

[storage_ip:port] :(可选参数)

[store_path_index] :(可选参数)

下载

fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.infogroup1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.info

把这个文件下载到此目录

fdfs_download_file <config_file> <file_id> [local_filename] [<download_offset> <download_bytes>]

参数含义:

<config_file> :配置文件路径

<file_id> :文件在FastDFS中的唯一文件标识,即卷名+文件名

[local_filename] :文件下载地址

<download_offset> :(可选参数)文件下载开始时间

<download_bytes> :(可选参数)文件下载的字节数

查看文件信息

fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.info

fdfs_file_info <config_file> <file_id>

参数含义:

<config_file> :配置文件路径

<file_id> :文件在FastDFS中的唯一文件标识,即卷名+文件名

删除慎用

dfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.info

注意:

删除指令使用后,文件在该卷中的所有备份都会被删除,因为卷内的存储节点会相互同步,故慎用

fdfs_delete_file <config_file> <file_id>

参数含义:

<config_file> :配置文件路径

<file_id> :文件在FastDFS中的唯一文件标识,即卷名+文件名

fastdfs实战

查看容器id

docker images

进入容器

docker exec -it ea5bb54e1180 bash

查看图片路径

find / -name '*.jpg'

把虚拟机的文件cp到容器里面

先把文件上传到虚拟机中,再把文件cp到docker容器中(先创建好目录)

docker cp 目录名称 容器id:/usr/local

如:docker cp /usr/local/images/rentPro ea5bb54e1180:/usr/local/images/rentPro

上传文件命令/配置文件的路径/需要上传文件的路径

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /etc/fdfs/anti-steal.jpg

上传后获得路径group1/M00/00/00/wKhCZWQ8MVqAU_ErAABdreSfEnY378.jpg

删除命令/配置文件的路径/需要上传文件的路径

/usr/bin/dfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.info

访问

192.168.66.101:8888/group1/M00/00/00/wKhCZWQ8MVqAU_ErAABdreSfEnY378.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月木@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值