FastDFS学习笔记(二)FastDFS安装(单机模式)

1、安装文件下载

作者的GitHub地址:https://github.com/happyfish100

fastdfs-5.11.zip

libfastcommon-master.zip

这里写图片描述

把下载的文件复制到centOS上,我的存放目录是:/usr/local/fastdfs

先安装类库

一定要先安装,否则后面或报错

yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

2、安装libfastcommon-master

libfastcommon-master.zip是一款从FastDFS项目中剥离出来的C基础库。libfastcommon是一款开源的C基础库,她是从FastDFS项目中剥离出来的C基础库。 这个库非常简单稳定。 函数包括:字符串,记录器,链,散列,套接字,ini文件读取器,base64编码/解码,url编码/解码,快速定时器,skiplist,对象池等详细信息请看c头文件。fastDFS是C语言开发的,所以需要先安装 此库。

由于我的centOS7是最小化安装,我里面没有安装zip解压。
先安装 :libfastcommon-master.zip

yum -y install unzip zip

安装成功后解压libfastcommon-master.zip

unzip libfastcommon-master.zip

进入我们刚刚解压的目录: 

cd libfastcommon-master

用yum安装gcc:
yum命令相当好用,是RedHad和CentOS从指定服务器下载RPM包并自动安装。我个人比较喜欢。

yum -y install gcc-c++

分别执行一下两个命令安装:

./make.sh
./make.sh install

libfastcommon默认会被安装到/usr/lib64/libfastcommon.so但是FastDFS的主程序却在/usr/local/lib目录下
这个时候我们就要建立一个软链接了,实际上也相当于windows上的快捷方式。

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

注意:libfdfsclient.so可能招不到,所以建立软连接的过程可以等到安装完fastdfs后再执行,安装了fastdfs后再/usr/lib64目录下会出现libfdfsclient.so文件。

2、安装FastDFS

解压FastDFS安装包

unzip fastdfs-5.11.zip

进到刚解压的目录:

cd fastdfs-5.11
./make.sh
./make.sh install

如果没有报错那么就成功了。安装log中会提示FastDFS安装到了/etc/fdfs目录下。

成功后查看安装目录:

[root@localhost ftp]# cd /etc/fdfs/
[root@localhost fdfs]# ll
-rw-r--r-- 1 root root  1461 Jun  8 21:56 client.conf.sample
-rw-r--r-- 1 root root  7927 Jun  8 21:56 storage.conf.sample
-rw-r--r-- 1 root root  7389 Jun  8 21:56 tracker.conf.sample

我们需要把这三个示例文件复制一份,去掉.sample。

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

FastDFS安装结束。

3、安装tracker

该步骤主要创建tracker的工作目录,并把创建的目录配置到tracker.conf文件中

3.1、创建tracker工作目录:

我创建的目录为:

/usr/local/fastdfs/dev/fastdfs_tracker

3.2、配置tracker:

cd /etc/fdfs
vim tracker.conf

打开后重点关注下面4个配置:
disabled=false #默认开启
port=22122 #默认端口号
base_path=/usr/local/fastdfs/dev/fastdfs_tracker #我刚刚创建的目录
http.server_port=6666  #默认端口是8080

3.2、启动tracker

保存配置后启动tracker,命令如下:

[root@demo fastdfs_tracker]# service fdfs_trackerd start
Starting FastDFS tracker server: 
[root@demo fastdfs_tracker]# 

启动成功!进行刚刚创建的tracker目录,发现目录中多了data和log两个目录。

如果要停止,请执行:service fdfs_trackerd stop命令

4、安装storage

storage的安装与tracker很类似;

与tracker不现的是,由于storage还需要一个目录用来存储数据,所以我另外多建了一个fasdfs_storage_data

4.1、为storage配置工作目录

下面是我的目录结构:

drwxr-xr-x. 4 root root 4096 11月  5 01:20 fastdfs_storage
drwxr-xr-x. 3 root root 4096 11月  5 01:22 fastdfs_storage_data
drwxr-xr-x. 4 root root 4096 11月  5 00:39 fastdfs_tracker
[root@demo dev]# pwd
/usr/local/fastdfs/dev

4.2、修改storage配置文件

修改storage.conf

vim /etc/fdfs/storage.conf

disabled=false
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/usr/local/fastdfs/dev/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/usr/local/fastdfs/dev/fastdfs_storage_data #实际文件存储路径
tracker_server=192.168.0.89:22122 #把storage注册到tracker_server中,如果有多个,则服务多行
http.server_port=8888 #设置 http 端口号

修改保存后创建软引用

ln -s /usr/bin/fdfs_storaged /usr/local/bin

4.3 启动storage

[root@demo dev]# service fdfs_storaged start
Starting FastDFS storage server: 
[root@demo dev]# 

5、加入开机自启动

加入权限:

chmod +x /etc/rc.d/rc.local

分别把strackerd和storaged的启动命令加入:vim /etc/rc.d/rc.local

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
service fdfs_trackerd start
service fdfs_storaged start

查看服务是否启动

[root@demo dev]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:23000               0.0.0.0:*                   LISTEN      5382/fdfs_storaged  
tcp        0      0 0.0.0.0:22122               0.0.0.0:*                   LISTEN      19866/fdfs_trackerd 
[root@demo dev]# 

服务已正常启动。

6、验证是否正常

[root@demo dev]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
[2019-11-06 00:18:43] DEBUG - base_path=/usr/local/fastdfs/dev/fastdfs_storage, connect_timeout=10, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

server_count=1, server_index=0

tracker server is 192.168.0.89:22122

group count: 1

Group 1:
group name = group1
disk total space = 15756 MB
disk free space = 2872 MB
trunk free space = 0 MB
storage server count = 1
active server count = 1
storage server port = 23000
storage HTTP port = 8888
store path count = 1
subdir count per path = 256
current write server index = 0
current trunk file id = 0

	Storage 1:
		id = 192.168.0.89
		ip_addr = 192.168.0.89 (anantes-651-1-49-net.w2-0.abo.wanadoo.fr)  ACTIVE
		http domain = 
		version = 6.01
		join time = 2019-11-05 01:22:36
		up time = 2019-11-06 00:10:37
		total storage = 15756 MB
		free storage = 2872 MB
		upload priority = 10
		store_path_count = 1
		subdir_count_per_path = 256
		storage_port = 23000
		storage_http_port = 8888
		current_write_path = 0
		source storage id = 
		if_trunk_server = 0
		connection.alloc_count = 256
		connection.current_count = 0
		connection.max_count = 0
		total_upload_count = 99
		success_upload_count = 99
		total_append_count = 0
		success_append_count = 0
		total_modify_count = 0
		success_modify_count = 0
		total_truncate_count = 0
		success_truncate_count = 0
		total_set_meta_count = 4
		success_set_meta_count = 4
		total_delete_count = 0
		success_delete_count = 0
		total_download_count = 3
		success_download_count = 3
		total_get_meta_count = 1
		success_get_meta_count = 1
		total_create_link_count = 0
		success_create_link_count = 0
		total_delete_link_count = 0
		success_delete_link_count = 0
		total_upload_bytes = 957160135
		success_upload_bytes = 957160135
		total_append_bytes = 0
		success_append_bytes = 0
		total_modify_bytes = 0
		success_modify_bytes = 0
		stotal_download_bytes = 70076196
		success_download_bytes = 70076196
		total_sync_in_bytes = 0
		success_sync_in_bytes = 0
		total_sync_out_bytes = 0
		success_sync_out_bytes = 0
		total_file_open_count = 103
		success_file_open_count = 103
		total_file_read_count = 271
		success_file_read_count = 271
		total_file_write_count = 3687
		success_file_write_count = 3687
		last_heart_beat_time = 2019-11-06 00:18:36
		last_source_update = 2019-11-05 23:17:00
		last_sync_update = 1970-01-01 08:00:00
		last_synced_timestamp = 1970-01-01 08:00:00 
[root@demo dev]# 

6.1、配置客户端

同样的,需要修改客户端的配置文件:

vim /etc/fdfs/client.conf

base_path=/usr/local/fastdfs/dev/fastdfs_tracker #tracker服务器文件路径
tracker_server=192.168.0.89:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http端口号,必须和tracker的设置对应起来 

6.2 模拟上传

确定图片位置后,我们输入上传图片命令:

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /usr/yong.cao/ftp/593d8f1eN5b3b8133.jpg  #这后面放的是图片的位置

成功后会返回图片的路径:

[root@localhost ~]# /usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /usr/yong.cao/ftp/593d8f1eN5b3b8133.jpg
group1/M00/00/00/wKiAg1lE9WqAWu_ZAAFaL_xdW_s943.jpg

 

组名:group1
磁盘:M00
目录:00/00
文件名称:wKiAg1lE9WqAWu_ZAAFaL_xdW_s943.jpg

我们上传的图片会被上传到我们创建的storage_data目录下,让我们去看看:

果然通过刚刚返回的路径,我们成功找到了图片。

我们仔细看一下,实际文件存储路径下有创建好的多级目录。data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值