华为云计算 云知识 FastDFS是什么
FastDFS是什么

简介

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和 负载均衡 的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

配置流程

本文选用华为鲲鹏云服务ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920。

1.选择操作环境

本文选用华为鲲鹏云服务ECS KC1实例做测试

2.配置编译环境

1)安装FastDFS依赖环境。

yum install  gcc-c++ -y

yum install pcre pcre-devel openssl ssl-devel perl-devel -y

2)安装FastDFS依赖包libfastcommon。

cd /usr/local/src

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz

tar -zxvf V1.0.38.tar.gz

cd libfastcommon-1.0.38/

./make.sh

./make.sh install

3)安装FastDFS。

cd /usr/local/src

wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz

tar -zxvf V5.11.tar.gz

cd fastdfs-5.11/

./make.sh

./make.sh install

4)将配置文件复制到系统为fdfs预设的目录。

cd /usr/local/src/fastdfs-5.11/conf

cp mime.types http.conf /etc/fdfs/

5)     查看安装FastDFS过程中产生的可执行文件。

ls -la /usr/bin/fdfs*

显示类似如下内容表示安装成功。

-rwxr-xr-x 1 root root  381896 Jul  9 14:45 /usr/bin/fdfs_appender_test

-rwxr-xr-x 1 root root  381680 Jul  9 14:45 /usr/bin/fdfs_appender_test1

-rwxr-xr-x 1 root root  372592 Jul  9 14:45 /usr/bin/fdfs_append_file

-rwxr-xr-x 1 root root  372392 Jul  9 14:45 /usr/bin/fdfs_crc32

-rwxr-xr-x 1 root root  372624 Jul  9 14:45 /usr/bin/fdfs_delete_file

-rwxr-xr-x 1 root root  373360 Jul  9 14:45 /usr/bin/fdfs_download_file

-rwxr-xr-x 1 root root  372976 Jul  9 14:45 /usr/bin/fdfs_file_info

-rwxr-xr-x 1 root root  382640 Jul  9 14:45 /usr/bin/fdfs_monitor

-rwxr-xr-x 1 root root 1138424 Jul  9 14:45 /usr/bin/fdfs_storaged

-rwxr-xr-x 1 root root  387728 Jul  9 14:45 /usr/bin/fdfs_test

-rwxr-xr-x 1 root root  386984 Jul  9 14:45 /usr/bin/fdfs_test1

-rwxr-xr-x 1 root root  520352 Jul  9 14:45 /usr/bin/fdfs_trackerd

-rwxr-xr-x 1 root root  373584 Jul  9 14:45 /usr/bin/fdfs_upload_appender

-rwxr-xr-x 1 root root  374616 Jul  9 14:45 /usr/bin/fdfs_upload_file

6)配置FastDFS。

分别对tracker,storage,client进行配置。

a.创建目录。

mkdir /home/fastdfs/tracker -p

mkdir /home/fastdfs/storage -p

cd /etc/fdfs/

b.配置tracker。

cp tracker.conf.sample tracker.conf

vi tracker.conf

将内容修改为“base_path=/home/fastdfs/tracker”和“thread_stack_size = 128KB”,如下面加粗部分所示:

# the base path to store data and log files

base_path=/home/fastdfs/tracker

......

# thread stack size, should >= 64KB

# default value is 64KB

thread_stack_size = 128KB

c. 启动tracker。

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

d. 配置storage。

cd /etc/fdfs/

cp storage.conf.sample storage.conf

vi storage.conf

将内容修改为“base_path=/home/fastdfs/storage”、“store_path0=/home/fastdfs/storage”和“tracker_server=XX.XX.XX.XX:22122”。

“tracker_server”中的“XX.XX.XX.XX”为本机的虚拟IP地址,可以通过ifconfig命令查询获取。

修改后的内容,如下面加粗部分所示,其中“192.168.1.206”为示例,应根据实际虚拟IP地址填写。

# the base path to store data and log files

base_path=/home/fastdfs/storage

...

# store_path#, based 0, if store_path0 not exists, it's value is base_path

# the paths must be exist

store_path0=/home/fastdfs/storage

#store_path1=/home/yuqing/fastdfs2

.....

# tracker_server can ocur more than once, and tracker_server format is

#  "host:port", host can be hostname or ip address

tracker_server=192.168.1.206:22122

e.  启动storage。

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

f. 查看storage启动日志。

vi /home/fastdfs/storage/logs/storaged.log

查看最后几行,显示类似如下所示,表示启动成功。

[2019-07-09 17:03:51] INFO - file: tracker_client_thread.c, line: 310, successfully connect to tracker server 192.168.1.206:2

2122, as a tracker client, my ip is 192.168.1.206

[2019-07-09 17:04:21] INFO - file: tracker_client_thread.c, line: 1263, tracker server 192.168.1.206:22122, set tracker leade

r: 192.168.1.206:22122

g.配置client。

cd /etc/fdfs/

cp client.conf.sample client.conf

vi  client.conf

将内容修改为“base_path=/home/fastdfs/tracker”和“tracker_server=XX.XX.XX.XX:22122”。

“tracker_server”中的“XX.XX.XX.XX”为本机的虚拟IP地址,可以通过ifconfig命令查询获取。

修改后的内容,如下面加粗部分所示,其中“192.168.1.206”为示例,应根据实际虚拟IP地址填写。

# the base path to store log files

base_path=/home/fastdfs/tracker

......

# tracker_server can ocur more than once, and tracker_server format is

#  "host:port", host can be hostname or ip address

tracker_server=192.168.1.206:22122

7) 安装和配置fastdfs-nginx-module。

a.  安装fastdfs-nginx-module。

cd /usr/local/src

wget  https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz

tar -zxvf V1.20.tar.gz

b.配置fastdfs-nginx-module的“config”文件。

cd /usr/local/src/fastdfs-nginx-module-1.20/src/

vi config

按照如下加粗所示,修改“ngx_module_incs”和“CORE_INCS”。

ngx_addon_name=ngx_http_fastdfs_module

 

if test -n "${ngx_module_link}"; then

    ngx_module_type=HTTP

    ngx_module_name=$ngx_addon_name

    ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

    ngx_module_libs="-lfastcommon -lfdfsclient"

    ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"

    ngx_module_deps=

    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='/etc/fdfs/mod_fast

dfs.conf'"

    . auto/module

else

    HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"

    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"

    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

    CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient"

    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='/etc/fdfs/mod_fast

dfs.conf'"

fi

c. 配置fastdfs-nginx-module的“mod_fastdfs.conf”文件。

cp /usr/local/src/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/

vi /etc/fdfs/mod_fastdfs.conf

将内容修改为“base_path=/home/fastdfs”、“tracker_server=XX.XX.XX.XX:22122”、“url_have_group_name = true”和“store_path0=/home/fastdfs/storage”。

“tracker_server”中的“XX.XX.XX.XX”为本机的虚拟IP地址,可以通过ifconfig命令查询获取。

修改后的内容,如下面加粗部分所示,其中“192.168.1.206”为示例,应根据实际虚拟IP地址填写。

# the base path to store log files

base_path=/home/fastdfs

......

# FastDFS tracker_server can ocur more than once, and tracker_server format is

#  "host:port", host can be hostname or ip address

# valid only when load_fdfs_parameters_from_tracker is true

tracker_server=192.168.1.206:22122

......

# if the url / uri including the group name

# set to false when uri like /M00/00/00/xxx

# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx

# default value is false

url_have_group_name = true

.......

# store_path#, based 0, if store_path0 not exists, it's value is base_path

# the paths must be exist

# must same as storage.conf

store_path0=/home/fastdfs/storage

8) 安装和配置Nginx。

a.安装Nginx。

cd /usr/local/src/

wget http://nginx.org/download/nginx-1.15.2.tar.gz

tar -zxvf nginx-1.15.2.tar.gz

cd nginx-1.15.2

./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module-1.20/src/

make &&make install

b. 配置Nginx。

cd /usr/local/nginx/conf/

vi nginx.conf

server {

listen80;

server_name  localhost;

 

#charset koi8-r;

 

#access_log  logs/host.access.log  main;

location ~/M00{

root   /home/fastdfs/storage/data;

ngx_fastdfs_module;

}

 

location / {

root   html;

index  index.html index.htm;

}

3. 测试已完成编译的软件

1) 启动nginx

cd /usr/local/nginx/sbin/

./nginx

2)测试。

a.生成测试文件。

cd /usr/local/src

touch a.txt

vi a.txt

插入如下内容并保存。

kungpeng test fastdfs ok!

b.生成文件链接。

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf a.txt

回显信息如下:

[root@ecs-001 src]# /usr/bin/fdfs_upload_file  /etc/fdfs/client.conf a.txt

group1/M00/00/00/wKgBzl0khdiAWJcGAAAAGmbRVtQ604.txt

记录返回的信息为“group1/FAST/00/00/wKgBzl0khdiAWJcGAAAAGmbRVtQ604.txt”。

c.放通 云服务器 安全组中入口规则里的80端口,在浏览器中输入“http://[ECS IP]:80/group1/M00/00/00/wKgBzl0khdiAWJcGAAAAGmbRVtQ604.txt”可以看到返回的“a.txt”相关信息。

上一篇:江苏域名企业备案管局政策 下一篇:容器技术的优点