1. 程式人生 > >分布式存儲-FastDFS

分布式存儲-FastDFS

oar ase rep rotate b-s apple use evel libevent

FastDFS基礎:

是一款開源分布式文件系統。用純C語言實現

功能包括:文件存儲,文件同步,文件訪問(上傳,下載)

解決了大容量存儲和負載均衡的問題

服務端有兩個角色:

跟蹤器 做調度工作、啟負載均衡作用 (192.168.4.70)

存儲節點 存儲、同步和提供存取接口,對文件的數據進行管理(192.168.4.71|72)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

一、裝包

fastdfs-nginx-module_v1.16.tar.gz

FastDFS_v4.06.tar.gz

libevent-devel-1.4.13-4.el6.x86_6

libevent-doc-1.4.13-4.el6.noarch.

libevent-headers-1.4.13-4.el6.noa

nginx-1.7.10.tar.gz

1、配置主控服務器70

[root@pc70 ~]# yum -y install gcc gcc-c++

[root@pc70 ~]# yum -y install libevent

[root@pc70 ~]# yum -y install libevent-*

libevent-headers-1.4.13-4.el6.noarch

libevent-devel-1.4.13-4.el6.x86_64

libevent-doc-1.4.13-4.el6.noarch

[root@pc70 ~]# tar -zxf FastDFS_v4.06.tar.gz 解壓源碼包

[root@pc70 ~]# cd FastDFS

[root@pc70 FastDFS]# ./make.sh

[root@pc70 FastDFS]# ./make.sh install

[root@pc70 FastDFS]# ls /usr/local/bin/ 存放命令的文件

[root@pc70 FastDFS]# ls /etc/fdfs/

配置文件


二、

1、修改配置文件

[root@pc70 FastDFS]# vim /etc/fdfs/tracker.conf

22 base_path=/data/fastdfs 指定日誌文件目錄

36 store_lookup=0 輪詢

182 use_storage_id = true

186 storage_ids_filename = storage_ids.conf id號在這個文件指

[root@pc70 FastDFS]# mkdir -p /data/fastdfs


2、 創建 storage_ids.conf

[root@pc70 FastDFS]# cp conf/storage_ids.conf /etc/fdfs/

[root@pc70 FastDFS]# vim /etc/fdfs/storage_ids.conf 存儲組和ip地址

# <id> <group_name> <ip_or_hostname>

100001 group1 192.168.4.71

100002 group1 192.168.4.72


3、配置節點服務器(70、71)

安裝依賴包、FastDFS

[root@pc71 ~]# yum -y install gcc gcc-c++ libevent

[root@pc71 ~]# yum -y install libevent-*

[root@pc71 FastDFS]# ./make.sh

[root@pc71 FastDFS]# ./make.sh install

[root@pc71 FastDFS]# vim /etc/fdfs/storage.conf

group_name=group1 指定的組

37 base_path=/data/fastdfs 日誌、數據文件存放目錄

96 store_path_count=1 存儲數據路徑個數

85 sync_start_time=00:00 推送起始時間

89 sync_end_time=23:59 推送結束時間

100 store_path0=/data/fastdfs 存放數據目錄

109 tracker_server=192.168.4.70:22122 主控服務器ip和端口號

140 file_distribute_path_mode=0 數據存儲數據路徑

145 file_distribute_rotate_count=100 當第一個文件達到100然後往下一個路徑存


節點服務器72

[root@pc72 ~]# yum -y install gcc gcc-c++ libevent libevent-*

[root@pc72 ~]# mkdir -p /data/fastdfs

[root@pc72 ~]# mount /dev/vdb1 /data/fastdfs

[root@pc72 ~]# df -h

[root@pc72 ~]# tar -zxf FastDFS_v4.06.tar.gz

[root@pc72 FastDFS]# cd FastDFS

[root@pc72 FastDFS]# ./make.sh && ./make.sh install


修改配置文件

[root@pc72 FastDFS]# vim /etc/fdfs/storage.conf

group_name=group1 指定的組

37 base_path=/data/fastdfs 日誌、數據文件存放目錄

96 store_path_count=1 存儲數據路徑個數

85 sync_start_time=00:00 推送起始時間

89 sync_end_time=23:59 推送結束時間

100 store_path0=/data/fastdfs 存放數據目錄

109 tracker_server=192.168.4.70:22122 主控服務器ip和端口號

140 file_distribute_path_mode=0 數據存儲數據路徑

145 file_distribute_rotate_count=100 當第一個文件達到100然後往下一個路徑存



三、啟動服務

3.1 先啟主控主機,後啟存儲節點

[root@pc70 FastDFS]# cp init.d/fdfs_trackerd /etc/init.d/ 創建啟動腳本

[root@pc70 FastDFS]# chmod +x /etc/init.d/fdfs_trackerd

[root@pc70 FastDFS]# chkconfig --add fdfs_trackerd 添加系統命令

[root@pc70 FastDFS]# service fdfs_trackerd start 啟動服務

[root@pc70 /]# netstat -pantu | grep :22122 查看端口號

tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 3243/fdfs_trackerd

tcp 0 0 192.168.4.70:22122 192.168.4.71:53060 ESTABLISHED 3243/fdfs_trackerd

tcp 0 0 192.168.4.70:22122 192.168.4.72:40489 ESTABLISHED 3243/fdfs_trackerd


【節點服務器 71】

[root@pc71 FastDFS]# cp init.d/fdfs_storaged /etc/init.d/

[root@pc71 FastDFS]# chmod +x /etc/init.d/fdfs_storaged

[root@pc71 FastDFS]# /etc/init.d/fdfs_storaged start 生成文件

[root@pc71 FastDFS]# netstat -pantu | grep :23000

tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 3198/fdfs_storaged

tcp 0 0 192.168.4.71:49208 192.168.4.72:23000 ESTABLISHED 3198/fdfs_storaged

tcp 0 0 192.168.4.71:23000 192.168.4.72:60515

【節點服務器 72】

[root@pc72 FastDFS]# cp init.d/fdfs_storaged /etc/init.d/

[root@pc72 FastDFS]# chmod +x /etc/init.d/fdfs_storaged

[root@pc72 FastDFS]# /etc/init.d/fdfs_storaged start

[root@pc72 FastDFS]# netstat -pantu | grep 23000

tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 4364/fdfs_storaged

tcp 0 0 192.168.4.72:60515 192.168.4.71:23000 ESTABLISHED 4364/fdfs_storaged

tcp 0 0 192.168.4.72:23000 192.168.4.71:49208 ESTABLISHED 4364/fdfs_storaged


四、客戶端訪問 主控服務器 驗證配置

1、提供訪問命令:上傳文件的命令,下載文件的命令

[root@room1pc33 桌面]# mkdir /root/bin

[root@pc70 /]# scp /usr/local/bin/fdfs_test 192.168.4.254:/root/bin/ 測試的命令

[root@pc70 /]# scp /usr/local/bin/fdfs_upload_file 192.168.4.254:/root/bin/

[root@pc70 /]# scp /usr/local/bin/fdfs_download_file 192.168.4.254:/root/bin/

[root@pc70 /]# scp /usr/local/bin/fdfs_delete_file 192.168.4.254:/root/bin/

fdfs_test 測試

fdfs_upload_file 上傳

fdfs_download_file 下載

fdfs_delete_file 刪除

[root@room1pc33 桌面]# ls /root/bin/

fdfs_delete_file fdfs_download_file fdfs_test fdfs_upload_file


2、連接主控節點主機的配置文件 client.conf

[root@room1pc33 桌面]# mkdir /etc/fdfs

[root@pc70 ~]# scp /etc/fdfs/client.conf 192.168.4.254:/etc/fdfs/

[root@room1pc33 桌面]# vim /etc/fdfs/client.conf

10 base_path=/data/fastdfs

14 tracker_server=192.168.4.70:22122

[root@room1pc33 桌面]# mkdir -p /data/fastdfs


3、上傳文件

#fdfs_test /etc/fdfs/client.conf upload install.log

[root@room1pc33 桌面]# head -3 /etc/passwd > /root/user.txt

[root@room1pc33 桌面]# fdfs_test /etc/fdfs/client.conf upload /root/user.txt


顯示放在72主機上的名字

group_name=group1, ip_addr=192.168.4.72, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt

file timestamp=2018-01-16 06:31:02

file size=105

file crc32=3908252234

file url:

http://192.168.4.70:8080/group1/M00/00/00/wKgESFpdK6aATl9

在節點服務器上查看

[root@pc72 00]# cat /data/fastdfs/data/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin


[root@pc71 FastDFS]# cat /data/fastdfs/data/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin


上傳圖片

[root@room1pc33 桌面]# fdfs_upload_file /etc/fdfs/client.conf /root/tedu.jpg

group1/M00/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg

查看

[root@pc71 FastDFS]#ls /data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg

/data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg


[root@pc72 FastDFS]#ls /data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg

/data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg


分布式存儲-FastDFS