天天看點

FastDFS學習筆記(二)FastDFS安裝(單機模式)1、安裝檔案下載下傳先安裝類庫2、安裝libfastcommon-master2、安裝FastDFS3、安裝tracker4、安裝storage5、加入開機自啟動6、驗證是否正常

1、安裝檔案下載下傳

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

fastdfs-5.11.zip

libfastcommon-master.zip

FastDFS學習筆記(二)FastDFS安裝(單機模式)1、安裝檔案下載下傳先安裝類庫2、安裝libfastcommon-master2、安裝FastDFS3、安裝tracker4、安裝storage5、加入開機自啟動6、驗證是否正常
把下載下傳的檔案複制到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目錄下。

成功後檢視安裝目錄:

[[email protected] ftp]# cd /etc/fdfs/
[[email protected] 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,指令如下:

[[email protected] fastdfs_tracker]# service fdfs_trackerd start
Starting FastDFS tracker server: 
[[email protected] 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
[[email protected] 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

[[email protected] dev]# service fdfs_storaged start
Starting FastDFS storage server: 
[[email protected] 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
           

檢視服務是否啟動

[[email protected] 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 
[[email protected] dev]# 
           

服務已正常啟動。

6、驗證是否正常

[[email protected] 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 
[[email protected] 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  #這後面放的是圖檔的位置
           

成功後會傳回圖檔的路徑:

[[email protected] ~]# /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的方式被路由到其中某個子目錄下,然後将檔案資料直接作為一個本地檔案存儲到該目錄中。

繼續閱讀