首页 > 其他分享 >【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令

【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令

时间:2023-04-03 16:01:12浏览次数:44  
标签:文件 存储 FastDFS 常用命令 服务器 分布式文件系统 fdfs 上传 客户端


上一篇我们介绍了FastDFS服务端的tracker追踪服务器和storage存储服务器,本篇来介绍一下客户端的启动,以及外部客户端如何与FastDFS服务端进行连接。



和之前一样,服务端部署在三台服务器上:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_delete_file


其中192.168.195.129是tracker追踪服务器,192.168.195.130和192.168.195.131是storage存储服务器。


回顾一下之前的客户端与FastDFS之间的交互图:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_delete_file_02


客户端其实与FastDFS服务端交互,就是与追踪服务器交互,追踪服务器会根据情况返回可用的存储服务器的信息,此时客户端才与存储服务器进行交互。



下面我们在192.168.195.129上配置一个客户端,先打开之前的fdfs的配置文件:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_download_file_03


其中client.conf.sample就是客户端配置文件的模板文件,无论我们使用c、java还是php作为编写客户端的语言,我们都需要配置该文件。这里我们复制该模板文件并修改名称为"client.conf":


cp client.conf.sample client.conf


并进行以下配置:

# 连接超时时间,默认30秒
connect_timeout=30

# 网络超时时间,默认60秒
network_timeout=60

# 存放日志的根目录
base_path=/tmp

# 客户端对应的追踪服务器的ip地址:端口,如果有多个就写多个
tracker_server=192.168.195.129:22122

#日志级别:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info

# 是否使用连接池
use_connection_pool = false

# connections whose the idle time exceeds this time will be closed
# unit: second
# default value is 3600
# since V4.05
connection_pool_max_idle_time = 3600

# if load FastDFS parameters from tracker server
# since V4.05
# default value is false
load_fdfs_parameters_from_tracker=false

# if use storage ID instead of IP address
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# default value is false
# since V4.05
use_storage_id = false

# specify storage ids filename, can use relative or absolute path
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V4.05
storage_ids_filename = storage_ids.conf

#HTTP settings
http.tracker_server_port=80

#use "#include" directive to include HTTP other settiongs
##include http.conf

主要就是配置了日志文件根目录和追踪服务器的地址。



然后我们就可以测试文件的上传和下载。安装好FastDFS会给我们提供很多命令,我们输入"fdfs_"按下Tab键,会看到所有的命令提示:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_file_info_04


下面我们来介绍一下比较常用的客户端命令的意义和使用。



(1)fdfs_upload_file

这里的“fdfs_upload_file”就是上传文件的一个命令,我们输入该命令,不输入任何参数,会给我们提示该命令的用法:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_upload_file_05


“fdfs_upload_file”命令后面首先跟着的是客户端配置文件的路径,然后是要上传的本地文件,按下回车的话会默认上传到配置文件配置的追踪服务器返回给客户端的存储服务器:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_download_file_06


可以看到,这里我们上传了一个测试文件,里面写了一句“HelloWorld”,此时按下回车,FastDFS会给我们返回一个文件的路径,该路径就是刚刚上传的文件在存储服务器中的路径。


因为我们打开一台存储服务器(192.168.195.130)的存储路径:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_file_info_07


可以看到里面有256个文件夹,而每个子目录下还有256个目录(打开00文件夹):


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_upload_file_08


这是在之前的存储服务器的配置文件中配置的:


subdir_count_per_path=256


然后我们去00/00下去看一下,刚好我们的文件就被上传在该存储服务器上:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_file_info_09


FastDFS会将上传的文件名进行修改,一个是放置上传的文件重名,以保证文件名的唯一性,另一个是该文件名中是讲过一定算法生成的信息戳,该信息戳中包含了许多信息,例如该文件原存储节点的ip是什么,group中的哪一个server。我们cat查看一下文件内容:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_upload_file_10


确实是我们之前上传的内容有HelloWorld的文件。



(2)fdfs_download_file

使用"fdfs_download_file"可以进行文件的下载,也是跟上客户端的配置文件以及要下载的文件的路径(该路径是上传的时候存储服务器返回给我们的):


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_download_file_11


可以看到,文件被下载到当前目录下了。下载的机制图如下:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fastdfs_12


步骤1,存储服务器在定时的向追踪服务器上传存储状态。


步骤2,客户端设置追踪服务器的地址,并向追踪服务器发送下载的连接请求。


步骤3,追踪服务器进行一个调度,来查询当前可用的存储。


步骤4,追踪服务器向客户端返回一个可用的存储服务器组的ip和端口。


步骤5,客户端获取到存储服务器组的ip和端口后,向存储服务器传输想要下载的文件的组名、路径、文件名信息。


步骤6,存储服务器接收到文件下载的请求后,会根据文件的组名、路径、文件名信息进行查找。


步骤7,存储服务器在对应路径下找到目标文件后,将目标文件信息返回给客户端。



(3)fdfs_file_info

使用“fdfs_file_info”可以查看到文件的详细存储信息,也是跟上客户端的配置文件以及储服务器返回给我们的文件的路径:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_download_file_13


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



(4)fdfs_delete_file

使用“fdfs_file_info”可以查看到文件的详细存储信息,也是跟上客户端的配置文件以及储服务器返回给我们的文件的路径:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_download_file_14


此时文件就会在相应的存储服务器中被删除:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_file_info_15



(5)fdfs_upload_appender/fdfs_append_file

使用“fdfs_upload_appender”表示要上传一个可以追加内容的文件,后面跟上客户端的配置文件以及我们要上传的文件的路径:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_delete_file_16


上面我们创建了两个文件,分别存储一个单词,首先将第一个文件作为可追加文件上传到了存储服务器。


我们看一下上传后的文件属性,可以看到被存储在192.168.195.130服务器上:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_delete_file_17


我们去192.168.195.130存储服务器中看一下,发现上传成功:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fastdfs_18


然后使用“fdfs_append_file”表示可以将内容追加到目标文件尾部,后面跟上客户端的配置文件以及要追加的目标文件在存储服务器的路径,以及要追加内容的本地文件路径:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_file_info_19


然后我们到存储服务器中观察,发现文件还是一个,但是文件内容被成功追加:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_download_file_20



(6)fdfs_monitor

使用“fdfs_monitor”会显示当前所有可连接的Tracker Server状态以及相关的存储组信息,后面跟上客户端的配置文件即可:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_file_info_21


Group 1下一有个存储服务器130,可以看到相关的存储大小、创建时间等信息:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_upload_file_22


Group 2下一有个存储服务器131:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fastdfs_23


其中的Active就是代表该存储服务器是存活的、可用的。



我们再观察一下“fdfs_monitor”的参数提示:


【FastDFS分布式文件系统】5.FastDFS客户端的配置、启动和常用命令_fdfs_upload_file_24


其中的delete就是可以将某些有问题的服务剔除掉,例如删除Group1组中的130服务,语句如下:


fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.195.130


在删除时,我们要确保该服务已经被停止,不然的话会报服务忙的异常。



下一篇我们来讲解如何使用java客户端连接FastDFS。

 

标签:文件,存储,FastDFS,常用命令,服务器,分布式文件系统,fdfs,上传,客户端
From: https://blog.51cto.com/u_16012040/6166631

相关文章

  • 【FastDFS分布式文件系统】6.FastDFS客户端启动与Java连接
    上一篇我们讲解了如何配置和启动FastDFS客户端,以及客户端上传下载的一些常用命令。那么,在许多需要进行分布式文件上传与下载的系统中,就不能像执行Linux命令一样去上传和下载文件,它们需要使用开发系统的语言去操作客户端使用其命令与服务端进行交互,此时FastDFS......
  • Docker - 常用命令参考
    目录Docker命令关系图常用命令脑图docker命令大全参考Docker命令关系图常用命令脑图docker命令大全参考$docker--help用法:......
  • Linux 常用命令(备忘)
    grep相关命令grep-h-BG|sort-rn|head-n3递归查询最大的三个文件(夹)-BG:以GB为单位输出大小-r:将结果反向输出(降序)-n:只以字符串的数组进行排序-n:以行的形式输出......
  • 防火墙常用命令
    安装Firewall命令:yuminstallfirewalldfirewalld-configFirewall开启常见端口命令:firewall-cmd–zone=public–add-port=80/tcp–permanentfirewall-cmd–zone=public–add-port=443/tcp–permanentfirewall-cmd–zone=public–add-port=22/tcp–permanentfirewa......
  • Linux常用命令
    Linux文件常用操作命令一、Linux文件和目录简单操作1.1查看文件 ls查看当前目录下的文件 如: -a显示所有文件及目录(ls内定将文件名或目录名称开头为“.”的视为隐藏档,不会列出) -l除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 -r将文件......
  • Sftp 常用命令
    1.sftpuser@ip用sftp登录到sftp服务器,在linux的shell中执行上面的命令后linuxshell会提示用户输入密码,我们就输入password吧。这样就成功建立了sftp连接。2.help建立连接后,linuxshell中的$编程了sftp>,这也对。现在执行以下help,可以看看sftp支持哪些命令。3.pw......
  • linux运维常用命令
    #一、常规操作##1、创建文件夹mkdir文件夹名称##2、创建文件或编辑文件在目标文件夹中执行vi文件名.后缀#i (进入可编辑模式) # ESC (按Esc按键,退出编辑模式) # :q (未作任何编辑,直接退出) # :q! (强制退出) # :wq......
  • docker 常用命令总结
    attach#当前shell下attach连接指定运行镜像build#通过Dockerfile定制镜像commmit#提交当前容器为新的镜像cp#从容器中拷贝指定文件或者目录到宿主机中create#创建一个新的容器,同run,但不启动容器diff......
  • homebrew:常用命令(Homebrew 4.0.10-119)
    一,brew常用的命令1,查看brew下载文件的缓存目录liuhongdi@liuhongdideMacBook-ProHomebrew%brew--cache/Users/liuhongdi/Library/Caches/Homebrew2,查看brew的安装目录liuhongdi@liuhongdideMacBook-ProHomebrew%brew--prefix/usr/local也可以:liuhongd......
  • Linux:常用命令有哪些?
    查看文件查看文件属性:file 文件名查看内容全部内容:cat-n(可选,显示行号)文件名分页查看:less文件名文件尾部:tail文件名头部:head文件名新建文件夹mkdir......