fdfs-命令总结

fdfs-命令总结命令

补充

/bin 存放单用户模式下还可以操作的命令.

/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本.
/usr/bin下面的都是系统预装的可执行程序,系统升级有可能会被覆盖.
/usr/local/bin目录是给用户放置自己的可执行程序.







/usr/bin/下的fdfs文件

1、fdfs_upload_file

使用“fdfs_upload_file”表示要上传文件,命令:
方法:fdfs_upload_file <config_file> <local_filename> 例如:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.txt 

在这里插入图片描述

上传过程

FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用。
Storage Server会定期的向Tracker Server发送自己的存储信息。当Tracker Server Cluster中的Tracker Server不止一个时,各个Tracker之间的关系是对等的,所以客户端上传时可以选择任意一个Tracker。
当Tracker收到客户端上传文件的请求时,会为该文件分配一个可以存储文件的group,当选定了group后就要决定给客户端分配group中的哪一个storage server。当分配好storage server后,客户端向storage发送写文件请求,storage将会为文件分配一个数据存储目录。然后为文件分配一个fileid,最后根据以上的信息生成文件名存储文件。
(1)选择tracker server

当集群中不止一个tracker server时,由于tracker之间是完全对等的关系,客户端在upload文件时可以任意选择一个trakcer。


(2)选择存储的group

当tracker接收到upload file的请求时,会为该文件分配一个可以存储该文件的group,支持如下选择group的规则: 1. Round robin,所有的group间轮询 2. Specified group,指定某一个确定的group 3. Load balance,剩余存储空间多多group优先


(3)选择storage server

当选定group后,tracker会在group内选择一个storage server给客户端,支持如下选择storage的规则: 1. Round robin,在group内的所有storage间轮询 2. First server ordered by ip,按ip排序 3. First server ordered by priority,按优先级排序(优先级在storage上配置)


(4)选择storage path

当分配好storage server后,客户端将向storage发送写文件请求,storage将会为文件分配一个数据存储目录,支持如下规则: 1. Round robin,多个存储目录间轮询 2. 剩余存储空间最多的优先


(5)生成Fileid

选定存储目录之后,storage会为文件生一个Fileid,由 storage server ip、文件创建时间、文件大小、文件crc32和一个随机数拼接而成,然后将这个二进制串进行base64编码,转换为可打印的字符串。


(6)选择两级目录

当选定存储目录之后,storage会为文件分配一个fileid,每个存储目录下有两级256*256的子目录,storage会按文件fileid进行两次hash(猜测),路由到其中一个子目录,然后将文件以fileid为文件名存储到该子目录下。


(7)生成文件名

当文件存储到某个子目录后,即认为该文件存储成功,接下来会为该文件生成一个文件名,文件名由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。


2、fdfs_download_file

使用“fdfs_download_file”可以进行文件的下载,命令:
方法:fdfs_download_file <config_file> <path> 例如:/usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/21/rBABl2IgEJ2AXTIxAAC5ERGBk_A734.png 

在这里插入图片描述

下载过程

客户端uploadfile成功后,会拿到一个storage生成的文件名,接下来客户端根据这个文件名即可访问到该文件。【Clinent可以直接进Storage读取和下载操作 需要IP地址/P端口号/卷名/文件名,如只知道卷名和文件名,就去找跟踪器,跟踪器会找到对应卷名和文件名所在的存储节点,将ip/p返回给用户…】
跟upload file一样,在downloadfile时客户端可以选择任意tracker server。tracker发送download请求给某个tracker,必须带上文件名信息,tracke从文件名中解析出文件的group、大小、创建时间等信息,然后为该请求选择一个storage用来服务读请求。
tracker发送download请求给某个tracker,必须带上文件名信息,tracke从文件名中解析出文件的group、大小、创建时间等信息,然后为该请求选择一个storage用来服务读请求。由于group内的文件同步时在后台异步进行的,所以有可能出现在读到时候,文件还没有同步到某些storage server上,为了尽量避免访问到这样的storage,tracker按照如下规则选择group内可读的storage。
1、 该文件上传到的源头storage – 源头storage只要存活着,肯定包含这个文件,源头的地址被编码在文件名中。 2、文件创建时间戳==storage被同步到的时间戳且(当前时间-文件创建时间戳) > 文件同步最大时间(如5分钟) – 文件创建后,认为经过最大同步时间后,肯定已经同步到其他storage了。 3、 文件创建时间戳 < storage被同步到的时间戳。 - 同步时间戳之前的文件确定已经同步了 4、 (当前时间-文件创建时间戳) > 同步延迟阀值(如一天)。 – 经过同步延迟阈值时间,认为文件肯定已经同步了。

3、fdfs_file_info

使用fdfs_file_info可以查看到而文件的详细存储信息
这时FastDFS会给我们返回该文件的存储服务器节点id、存储服务器的ip地址、文件上传的时间、文件大小以及crc32的校验信息(保证数据的正确,就不得不采用检错的手段)。

命令:


方法:fdfs_file_info <config_file> <path> 例如: /usr/bin/fdfs_file_info /etc/fdfs/client.conf group1/M00/00/1F/rBABtGIfljmACwDjAAC5ERGBk_A347.png 
4、fdfs_delete_file

使用fdfs_delete_file可以删除文件,命令:
方法:fdfs_delete_file <config_file> <path> 例如: /usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/1F/rBABtGIfljmACwDjAAC5ERGBk_A347.png 
5、 fdfs_upload_appender/fdfs_append_file

使用”fdfs_upload_appender”表示要上传一个可以追加内容的文件,后面跟上客户端的配置文件以及要上传的文件的路径:
# echo "upload_appende 2022-3-3" >a.txt # echo "upload_appender2 2022-3-3" >b.txt #/usr/bin/fdfs_upload_appender /etc/fdfs/client.conf a.txt # cat rBABl2IgHTaENYMrAAAAADBEg7A330.txt upload_appender 2022-3-3 // 追加内容 # /usr/bin/fdfs_append_file /etc/fdfs/client.conf group1/M09/00/21/rBABl2IgHTaENYMrAAAAADBEg7A330.txt b.txt # cat rBABl2IgHTaENYMrAAAAADBEg7A330.txt upload_appender 2022-3-3 upload_appender2 2022-3-3 

在这里插入图片描述

步骤:

首先将第一个文件作为可追加文件上传到了存储服务器。
然后使用“fdfs_append_file”表示可以将内容追加到目标文件尾部,后面跟上客户端的配置文件以及要追加的目标文件在存储服务器的路径,以及要追加内容的本地文件路径
到存储服务器中观察,发现文件还是一个,但是文件内容被成功追加

6、fdfs_monitor查看确认storage是否自动注册到tracker中

在storage容器或者tracker容器中运行
fdfs_monitor /etc/fdfs/storage.conf
//删除storage节点 usr/bin/fdfs_monitor /etc/fdfs/storage.conf delete group3 172.16.1.180 //增加Storage节点(通过配置,自动加入)。 //节点的状态 # FDFS_STORAGE_STATUSINIT :初始化,尚未得到同步已有数据的源服务器 # FDFS_STORAGE_STATUSWAIT_SYNC :等待同步,已得到同步已有数据的源服务器 # FDFS_STORAGE_STATUSSYNCING :同步中 # FDFS_STORAGE_STATUSDELETED :已删除,该服务器从本组中摘除 # FDFS_STORAGE_STATUSOFFLINE :离线 # FDFS_STORAGE_STATUSONLINE :在线,尚不能提供服务 # FDFS_STORAGE_STATUSACTIVE :在线,可以提供服务 # group_name:所属组名 # ip_addr:ip地址 # version: # sync_src_ip_addr:向该storage server同步已有数据文件的源服务器 # sync_until_timestamp:同步已有数据文件的截至时间(UNIX时间戳) # total storage: 总存储量 # free storage # upload priority: 上传优先级 # store_path_count: 路径数量 # subdir_count_per_path: 每级文件夹数量 # storage_port # storage_http_port # current_write_path: 当前写入路径 # source storage id: 源存储id # if_trunk_server :是否使用trunk # connection.alloc_count # connection.current_count # connection.max_count: 最大并发连接数 # total_upload_count:上传文件次数 # success_upload_count:成功上传文件次数 # total_append_count:追加文件次数 # success_append_count:成功追加文件次数 # total_modify_count:总修改次数 # success_modify_count :成功修改数 # total_truncate_count :总截断计次数 # success_truncate_count:成功截断次数 # total_set_meta_count:更改meta data次数 # success_set_meta_count:成功更改meta data次数 # total_delete_count:删除文件次数 # success_delete_count:成功删除文件次数 # total_download_count:下载文件次数 # success_download_count:成功下载文件次数 # total_get_meta_count:获取meta data次数 # success_get_meta_count:成功获取meta data次数 # total_create_link_count:创建链接次数 # success_create_link_count:成功创建链接次数 # total_delete_link_count :删除链接次数 # success_delete_link_count :成功删除链接次数 # total_upload_bytes :上传字节总数 # success_upload_bytes :成功上传字节总数 # total_append_bytes :追加 # success_append_bytes # total_modify_bytes # success_modify_bytes # stotal_download_bytes # success_download_bytes # total_sync_in_bytes :同步字节数 # success_sync_in_bytes # total_sync_out_bytes # success_sync_out_bytes # total_file_open_count # success_file_open_count # total_file_read_count # success_file_read_count # total_file_write_count: 文件写入次数 # success_file_write_count:文件成功写入凑数 # last_heart_beat_time:最近一次storage向tracker发送心跳的时间 # last_source_update:最近一次源头更新时间(更新操作来自客户端) # last_sync_update:最近一次同步更新时间(更新操作来自其他storage server的同步) # last_synced_timestamp: 最近一次同步时间戳 

7. 启动命令

service fdfs_storaged restart service fdfs_trackerd restart docker容器启动服务: fdfs_storaged /etc/fdfs/storage.conf start fdfs_trackerd /etc/fdfs/tracker.conf start /usr/local/nginx/sbin/nginx -s reload curl -i 127.0.0.1:8888 //查看nginx 版本 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177105.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午8:18
下一篇 2026年3月26日 下午8:18


相关推荐

  • 智能小车资料源码大全下载_清翔智能小车资料

    智能小车资料源码大全下载_清翔智能小车资料今天给大家分享一下智能小车的资料,包括制作流程、原理图设计和源码等,不下于60辆智能小车的制作经验。其中历届智能小车的开发资料就有90个文件了。分享的智能小车类型包括:Bluetooth控制两轮小车;智能小车配套程序,循迹、红外避障综合程序资料大全;智能车系统解决方案;STM32两轮自平衡小车资料;STM32两轮自平衡小车系统毕设;自平衡小车控制(stc12+mpu6050程序);寻迹实验小车…

    2022年10月17日
    4
  • templete_表达式树

    templete_表达式树include include include include include 这个问题是我独自想清楚的 当然也是看了别人的思想 其实只要自己动脑筋 其实许多问题都是可以解决的 下一步需要解决的就是大于 10 位数的 四则运算 这个运算只能解决一位数的四则运算还是比较不方便的 一会就得自己学着解决大数问题的四则运算 usingnamespa

    2026年3月17日
    1
  • PEST分析顺丰服务需求_快递行业宏观环境PEST分析[通俗易懂]

    PEST分析顺丰服务需求_快递行业宏观环境PEST分析[通俗易懂]精品welcome宏观环境PEST分析PEST分析又称大环境分析,是研究宏观环境的有效工具。通过Pest分析法,公司能够剖析出自身所处的外部大环境究竟对自己的发展是有利还是有害,以及据此作出战略规划,趋利避害。其中每一个字母各代表一个因素,分别为:P(political—政治)、E(economic—经济)、S(social—社会)、T(technological—技术),接下来将通过pest分析…

    2022年6月11日
    48
  • potplayer快捷键大全「建议收藏」

    potplayer快捷键大全「建议收藏」Shift+↑    声音->播放音量控制->主音量+Alt+↑     字幕->字幕风格->上移Ctrl+Alt+↑     声音->系统音量->波形音量+Ctrl+Alt+Shift+↑…

    2022年5月22日
    278
  • Docker 1.3 公布

    Docker 1.3 公布

    2022年2月6日
    43
  • c盘替换文件需要权限_windows安装命令

    c盘替换文件需要权限_windows安装命令大家都知道08权限的系统权限设置很严格,且在2003系统中常用到的溢出工具都失效。面对限制IP连接的情况我们及时拿到system权限有账号也上不去这种情况下只能弄shift后门或者放大镜了。但08权限在system权限也操作不了系统文件夹。先查通过whoami查看下登录帐号权限。通过下图我们看到是普通权限我用的到时MS12042这个大家都会用单独讲sysret.ex…

    2025年12月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号