分佈式文件存儲——fastDFS單機安裝(linux)

目錄

1、關閉防火牆:

2、配置hosts:

3、安裝gcc環境:

(1)檢查gcc環境:

(2)安裝gcc環境:

4、安裝libevent庫:

5、安裝libfastcommon:

(1)軟件下載:

(2)軟件解壓:

(3)軟件編譯:

(4)軟件安裝:

6、安裝fastDFS:

(1)軟件下載:

(2)軟件解壓:

(3)軟件編譯:

(4)軟件安裝:

(5)安裝後文件與目錄:

A、服務腳本:

B、配置文件:

C、命令工具:

7、配置fastDFS跟蹤器(tracker):

(1)獲取樣例配置文件:

(2)修改配置參數:

(3)創建數據目錄:

(4)啓動tracker後文件結構:

8、配置fastDFS存儲(storage):

(1)獲取樣例配置文件:

(2)修改配置參數:

(3)創建數據目錄:

(4)啓動storage後文件結構:

9、上傳測試:

(1)啓動跟蹤器(tracker):

(2)啓動存儲(storage):

(3)配置client文件:

A、獲取樣例配置文件:

B、修改配置參數:

(4)上傳demo文件:

(5)測試上傳文件到fastdfs:

10、安裝nginx:

11、測試修改nginx配置文件:

12、測試啓動nginx:

(1)nginx是服務:

(2)nginx不是服務:

13、測試http訪問文件:

14、在fastDFS中配置nginx模塊:

(1)下載fastdfs-nginx-module:

(2)解壓fastdfs-nginx-module:

(3)增加nginx模塊:

A、停掉nginx服務:

B、監測configure配置:

C、編譯nginx:

D、安裝nginx:

(4)查看nginx模塊:

(5)配置fastdfs-nginx-module參數文件:

A、複製配置文件:

B、修改配置文件:

(6)複製FastDFS的部分配置文件:

(7)修改nginx配置:

A、配置端口號:

B、配置location:

(8)配置nginx服務:

A、創建nginx腳本文件:

B、修改腳本文件參數:

C、腳本文件授權:

D、操作服務:

15、測試http訪問文件:

(1)啓動跟蹤器(tracker):

(2)啓動存儲(storage):

(3)啓動nginx:

A、nginx是服務:

B、nginx不是服務:

(4)測試瀏覽器http訪問文件:

16、啓動fastDFS:

(1)啓動跟蹤器(tracker):

(2)啓動存儲(storage):

(3)檢查storage與tracker是否通信:

(4)啓動nginx:

A、nginx是服務:

B、nginx不是服務:

17、停止fastDFS:

(1)關閉nginx:

A、nginx是服務:

B、nginx不是服務:

(2)關閉跟蹤器(tracker):

(3)關閉存儲(storage):

18、設置開機自啓:

(1)設置開機自啓跟蹤器(tracker):

A、加入到chkconfig列表:

B、設置服務開機自啓:

(2)設置開機自啓存儲(storage):

A、加入到chkconfig列表:

B、設置服務開機自啓:

(3)設置開機自啓nginx:

A、加入到chkconfig列表:

B、設置服務開機自啓:


1、關閉防火牆:

本次搭建關閉了防火牆,並且設置開機自動關閉防火牆,因此不需要考慮防火牆開放端口,如果生產環境不允許關閉防火牆,那麼就將需要開放的端口號在防火牆上進行開通即可。

2、配置hosts:

在開始安裝fastDFS之前先做一件事,修改hosts,將文件服務器的ip與域名映射,由於是安裝fastDFS單機,因此只需要在一臺服務器上配置hosts即可,因爲後面很多配置裏面都需要去配置服務器地址,ip變了,就只需要修改hosts即可。

使用vi命令修改/etc/hosts文件,增加IP與域名映射,一行一個:

3、安裝gcc環境:

安裝gcc環境,後面項目編譯有需要用到gcc環境。

(1)檢查gcc環境:

在服務器上通過命令檢查是否安裝gcc環境:

gcc -v

如果能顯示gcc的版本信息表示該服務器上已經安裝了gcc環境,就不需要重新安裝了,否則就執行下載安裝gcc環境的操作。

(2)安裝gcc環境:

在服務器上通過yum命令進行安裝:

yum install -y gcc gcc-c++

4、安裝libevent庫:

FastDFS依賴libevent庫,在服務器上通過yum命令進行安裝:

yum -y install libevent

5、安裝libfastcommon:

libfastcommon是從FastDFS和FastDHT中提取出來的公共C函數庫,基礎環境,安裝即可。

(1)軟件下載:

軟件下載地址:

https://github.com/happyfish100/libfastcommon/releases

注意:最好選擇releases中最新版本。本地下載1.0.43。

(2)軟件解壓:

將下載的libfastcommon軟件壓縮包上傳到服務器指定文件夾中,然後進行解壓。

(3)軟件編譯:

進入到libfastcommon解壓後的文件夾中,然後執行編譯命令:

./make.sh

(4)軟件安裝:

進入到libfastcommon解壓後的文件夾中,然後執行安裝命令:

./make.sh install

6、安裝fastDFS:

(1)軟件下載:

軟件下載地址:

https://github.com/happyfish100/fastdfs/releases

注意:最好選擇releases中最新版本。本地下載6.0.6。

(2)軟件解壓:

將下載的fastdfs軟件壓縮包上傳到服務器指定文件夾中,然後進行解壓。

(3)軟件編譯:

進入到fastdfs解壓後的文件夾中,然後執行編譯命令:

./make.sh

(4)軟件安裝:

進入到fastdfs解壓後的文件夾中,然後執行安裝命令:

./make.sh install

(5)安裝後文件與目錄:

A、服務腳本:

服務腳本路徑:

/etc/init.d/fdfs_storaged

/etc/init.d/fdfs_tracker

B、配置文件:

配置文件路徑:

/etc/fdfs/client.conf.sample

/etc/fdfs/storage.conf.sample

/etc/fdfs/tracker.conf.sample

C、命令工具:

命令工具在 /usr/bin/文件夾中:

fdfs_appender_test

fdfs_appender_test1

fdfs_append_file

fdfs_crc32

fdfs_delete_file

fdfs_download_file

fdfs_file_info

fdfs_monitor

fdfs_storaged

fdfs_test

fdfs_test1

fdfs_trackerd

fdfs_upload_appender

fdfs_upload_file

stop.sh

restart.sh

7、配置fastDFS跟蹤器(tracker):

當該服務器上fastDFS有tracker服務角色的時候才需要配置,如果只是單純的storage服務角色那麼就不需要配置tracker的配置文件了。

(1)獲取樣例配置文件:

進入/etc/fdfs,複製FastDFS跟蹤器樣例配置文件 tracker.conf.sample,並重命名爲tracker.conf。命令如下:

cp tracker.conf.sample tracker.conf

(2)修改配置參數:

使用vi命令編輯tracker.conf,主要修改以下參數:

#提供服務的端口

port=22122

#Tracker數據和日誌目錄地址

base_path=/data/soft/fastdfs/tracker

#HTTP服務端口

http.server_port=8080

(3)創建數據目錄:

創建tracker.conf中配置tracker數據和日誌目錄路徑:

mkdir -p /data/soft/fastdfs/tracker

(4)啓動tracker後文件結構:

Tracker服務啓動成功後,會在base_path下創建data、logs兩個目錄。文件data爲數據,文件logs爲日誌。

8、配置fastDFS存儲(storage):

當該服務器上fastDFS有storage服務角色的時候才需要配置,如果只是單純的tracker服務角色那麼就不需要配置storage的配置文件了。

(1)獲取樣例配置文件:

進入/etc/fdfs 目錄,複製FastDFS存儲器樣例配置文件 storage.conf.sample,並重命名爲storage.conf。命令如下:

cp storage.conf.sample storage.conf

(2)修改配置參數:

使用vi命令編輯storage.conf,主要修改以下參數:

#指定此storage server所在 組(卷)

group_name=group1

# storage server服務端口

port=23000

# Storage數據和日誌目錄地址

base_path=/data/soft/fastdfs/storage

#存放文件時storage server支持多個路徑。配置存放文件的基路徑數目,通常只配一個目錄。

store_path_count=1

#逐一配置store_path_count個路徑,索引號基於 0。如果不配置 store_path0,那它就和base_path對應的路徑一樣。

store_path0=/data/soft/fastdfs/store_file

# FastDFS存儲文件時,採用了兩級目錄。這裏配置存放文件的目錄個數。如果本參數只爲 N(如:256),那麼storage server在初次運行時,會在store_path下自動創建 N * N 個存放文件的子目錄。

subdir_count_per_path=256

# tracker_server的列表,會主動連接 tracker_server,有多個tracker server時,每個tracker server寫一行,建議寫hosts中配的域名

tracker_server=file.lsy.com:22122

#訪問端口

http.server_port=8888

(3)創建數據目錄:

創建storage.conf中配置storage數據和日誌目錄路徑:

mkdir -p /data/soft/fastdfs/storage

創建storage.conf中配置store_path0目錄路徑:

mkdir -p /data/soft/fastdfs/store_file

(4)啓動storage後文件結構:

同 tracker、storage 啓動成功後,在storage的base_path下創建了data、logs目錄,記錄着storage 服務的信息。在storage的store_path0目錄下,創建了N*N個子目錄。

9、上傳測試:

(1)啓動跟蹤器(tracker):

可以用這種方式啓動:

/etc/init.d/fdfs_trackerd start

也可以用這種方式啓動:(推薦使用)

service fdfs_trackerd start

(2)啓動存儲(storage):

可以用這種方式啓動

/etc/init.d/fdfs_storaged start

也可以用這種方式:(推薦使用)

service fdfs_storaged start

(3)配置client文件:

A、獲取樣例配置文件:

進入/etc/fdfs,複製FastDFS跟蹤器樣例配置文件 client.conf.sample,並重命名爲client.conf。命令如下:

cp client.conf.sample client.conf

B、修改配置參數:

使用vi命令編輯client.conf,主要修改以下參數:

# Client的數據和日誌目錄

base_path=/data/soft/fastdfs/client

# Tracker端口

tracker_server=file.lsy.com:22122

(4)上傳demo文件:

從本地windows上尋找一個測試上傳的圖片,然後將圖片上傳到服務器中client.conf配置文件中配置的client數據存儲目錄參數base_path的路徑下。

(5)測試上傳文件到fastdfs:

在linux服務器中執行命令上傳lsy_test.jpg圖片到fastDFS:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf lsy_test.jpg

上傳成功後返回文件ID號:

group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg

返回的文件ID由group、存儲目錄、兩級子目錄、fileid、文件後綴名(由客戶端指定,主要用於區分文件類型)拼接而成。

10、安裝nginx:

安裝Nginx作爲服務器以支持Http方式訪問文件,這樣就可以通過http訪問fastDFS進行下載文件。同時,後面安裝FastDFS的Nginx模塊也需要Nginx環境。

注意:Nginx只需要安裝到StorageServer所在的服務器即可,用於訪問文件。

11、測試修改nginx配置文件:

想通過nginx的http方式訪問文件,那麼就需要對nginx的配置文件進行簡單的配置,進入到nignx安裝文件夾的/conf中,修改配置文件nginx.conf:

添加如下行,將/group1/M00 映射到/data/soft/fastdfs/store_file/data(也就是storage配置文件中store_path0參數的值再加上data目錄)

location /group1/M00 {

    alias /data/soft/fastdfs/store_file/data;

}

12、測試啓動nginx:

(1)nginx是服務:

如果nginx已經配置成服務了,那麼就用服務啓動:

service nginx start

(2)nginx不是服務:

如果nginx沒有配置成服務,那麼就進入到nginx安裝文件中,執行sbin下nginx命令:

./nginx

13、測試http訪問文件:

剛剛測試上傳到fastDFS中圖片返回的文件ID號爲:

group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg

該文件實際存儲在fastDFS的storage配置的/data/soft/fastdfs/store_file/data/00/00中對應的文件名,並且nginx中配置了group1/M00轉發到/data/soft/fastdfs/store_file/data,因此可以通過http的方式訪問到剛剛上傳的圖片,在windows瀏覽器中輸入:http://192.168.0.141:80/group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg,其中IP和端口號就是nginx訪問地址,加上fastDFS中文件ID號即可,就能訪問到剛剛上傳的圖片了。

14、在fastDFS中配置nginx模塊:

FastDFS通過Tracker服務器,將文件放在Storage服務器存儲, 但是同組存儲服務器之間需要進行文件複製, 有同步延遲的問題。假設Tracker服務器將文件上傳到了192.168.51.128,上傳成功後文件 ID已經返回給客戶端。此時FastDFS存儲集羣機制會將這個文件同步到同組存儲192.168.51.129,在文件還沒有複製完成的情況下,客戶端如果用這個文件ID在 192.168.51.129 上取文件,就會出現文件無法訪問的錯誤。而fastdfs-nginx-module可以重定向文件鏈接到源服務器取文件,避免客戶端由於複製延遲導致的文件無法訪問錯誤。

與上邊測試修改nginx配置文件,然後通過nginx的http訪問文件的原理是一樣,只不過測試用的nginx是直接訪問文件,我們最好是安裝fastdfs-nginx-module後,讓nginx通過fastdfs-nginx-module模塊進行重定向文件鏈接到源服務器取文件。

綜上所述,在fastDFS集羣中storage角色的節點上一定要安裝fastdfs-nginx-module模塊,本次安裝爲單機,爲了演示安裝步驟也就安裝該模塊了。

(1)下載fastdfs-nginx-module:

軟件下載地址:

https://github.com/happyfish100/fastdfs-nginx-module/releases

注意:最好選擇releases中最新版本。本地下載1.22。

(2)解壓fastdfs-nginx-module:

將下載的fastdfs-nginx-module軟件壓縮包上傳到服務器指定文件夾中,然後進行解壓。

(3)增加nginx模塊:

上面已經安裝過nginx了,是默認安裝的,沒有添加fastdfs-nginx-module模塊,因此要重新安裝nginx。

A、停掉nginx服務:

如果nginx已經配置成服務了,那麼就關閉服務即可:

service nginx stop

如果nginx沒有配置成服務,那麼將上面安裝的nginx進程停掉。可以通過ps -ef | grep nginx找到進程ID,然後killl -9 進程ID殺死進程即可。

B、監測configure配置:

進入到nginx解壓後的文件中,執行configure命令,並通過prefix參數設置nginx安裝路徑,通過add-module參數設置增加模塊:

./configure --prefix=/data/soft/nginx/nginx1 --add-module=/data/soft/fastdfs_nginx_module/fastdfs-nginx-module-1.22/src

說明:prefix值爲nginx安裝路徑,add-module值爲fastdfs-nginx-module解壓的路徑加上src文件夾。

C、編譯nginx:

進入到nginx解壓後的文件中,執行make命令:

make

D、安裝nginx:

進入到nginx解壓後的文件中,執行make install命令:

make install

(4)查看nginx模塊:

進入到nginx安裝路徑下sbin中,通過命令查看nginx模塊:

./nginx -V

有如下模塊配置信息表示fastdfs-nginx-module模塊增加成功:

(5)配置fastdfs-nginx-module參數文件:

A、複製配置文件:

進入到fastdfs-nginx-module解壓文件夾內src中,複製mod_fastdfs.conf文件到/etc/fdfs目錄:

cp mod_fastdfs.conf /etc/fdfs/

B、修改配置文件:

進入到/etc/fdfs文件夾中,修改配置文件mod_fastdfs.conf,主要修改一下參數:

#連接超時時間

connect_timeout=10

# Tracker Server

tracker_server=file.lsy.com:22122

# StorageServer端口

storage_server_port=23000

#Storage所屬group的組名

group_name=group1

#如果文件ID的uri中包含/group**,則要設置爲true

url_have_group_name = true

# Storage配置的store_path0路徑,與storage.conf中的一致

store_path0=/data/soft/fastdfs/store_file

(6)複製FastDFS的部分配置文件:

進入到fastDFS源碼解壓文件內conf中,複製anti-steal.jpg、http.conf、mime.types三個文件到/etc/fdfs中:

cp anti-steal.jpg http.conf mime.types /etc/fdfs/

(7)修改nginx配置:

進入到nginx安裝文件夾的conf中,修改配置文件nginx.conf,主要修改以下參數:

A、配置端口號:

nginx端口號要與該服務器上所在的storage的配置文件/etc/fdfs/storage.conf中的參數http.server_port的端口號一致。

B、配置location:

在server中增加location配置

location ~/group([0-9])/M00 {

    ngx_fastdfs_module;

}

(8)配置nginx服務:

默認安裝好的nginx只能通過找到安裝路徑下的sbin/nginx進行啓動,非常不方便,因此要將nginx設置成服務,這樣就能通過service nginx start/stop/status等方便進行操作了。

A、創建nginx腳本文件:

將nginx默認的腳本文件上傳到/etc/init.d/文件夾中,默認腳本文件存儲在對應文件中,或者從網上進行復制也可以,網址:

https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/

B、修改腳本文件參數:

通過vi命令修改/etc/init.d/nginx腳本文件,主要修改以下參數:

#修改成nginx執行程序的路徑。

nginx=”/usr/local/nginx/sbin/nginx”

#修改成nginx.conf文件的路徑。

NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”

C、腳本文件授權:

給/etc/init.d/nginx腳本文件授權:

chmod 777 /etc/init.d/nginx

D、操作服務:

啓動nginx服務:

執行命令:

service nginx start

關閉nginx服務:

執行命令:

service nginx stop

查看nginx服務狀態:

執行命令:

service nginx status

15、測試http訪問文件:

(1)啓動跟蹤器(tracker):

可以用這種方式啓動:

/etc/init.d/fdfs_trackerd start

也可以用這種方式啓動:(推薦使用)

service fdfs_trackerd start

(2)啓動存儲(storage):

可以用這種方式啓動

/etc/init.d/fdfs_storaged start

也可以用這種方式:(推薦使用)

service fdfs_storaged start

(3)啓動nginx:

A、nginx是服務:

如果nginx已經配置成服務了,那麼就用服務啓動:

service nginx start

B、nginx不是服務:

如果nginx沒有配置成服務,那麼就進入到nginx安裝文件中,執行sbin下nginx命令:

./nginx

啓動nginx後打印如下信息表示配置成功:

(4)測試瀏覽器http訪問文件:

剛剛測試上傳到fastDFS中圖片返回的文件ID號爲:

group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg

因此可以通過http的方式訪問到剛剛上傳的圖片,在windows瀏覽器中輸入:http://192.168.0.141:8888/group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg,其中IP和端口號就是nginx訪問地址,加上fastDFS中文件ID號即可,就能訪問到剛剛上傳的圖片了。

16、啓動fastDFS:

(1)啓動跟蹤器(tracker):

可以用這種方式啓動:

/etc/init.d/fdfs_trackerd start

也可以用這種方式啓動:(推薦使用)

service fdfs_trackerd start

(2)啓動存儲(storage):

可以用這種方式啓動

/etc/init.d/fdfs_storaged start

也可以用這種方式:(推薦使用)

service fdfs_storaged start

(3)檢查storage與tracker是否通信:

啓動tracker和storage後,通過命令檢查storage是否與tracker進行了正確通信:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

(4)啓動nginx:

A、nginx是服務:

如果nginx已經配置成服務了,那麼就用服務啓動:

service nginx start

B、nginx不是服務:

如果nginx沒有配置成服務,那麼就進入到nginx安裝文件中,執行sbin下nginx命令:

./nginx

17、停止fastDFS:

(1)關閉nginx:

A、nginx是服務:

如果nginx已經配置成服務了,那麼直接通過服務關閉即可:

service nginx stop

B、nginx不是服務:

如果nginx沒有配置成服務,那麼可以通過ps -ef | grep nginx找到nginx的進程ID,然後通過kill -9 進程ID殺死該進程即可。

(2)關閉跟蹤器(tracker):

執行命令:

service fdfs_trackerd stop

(3)關閉存儲(storage):

執行命令:

service fdfs_storaged stop

18、設置開機自啓:

(1)設置開機自啓跟蹤器(tracker):

A、加入到chkconfig列表:

執行命令:

chkconfig --add /etc/init.d/fdfs_trackerd

B、設置服務開機自啓:

執行命令:

chkconfig fdfs_trackerd on

(2)設置開機自啓存儲(storage):

A、加入到chkconfig列表:

執行命令:

chkconfig --add /etc/init.d/fdfs_storaged

B、設置服務開機自啓:

執行命令:

chkconfig fdfs_storaged on

(3)設置開機自啓nginx:

設置nginx開機自啓,首先需要將nginx配置成服務,如果nginx沒有配置成服務那麼就不能夠設置開機自啓,nginx配置成服務的步驟見對應的nginx彙總整理。

A、加入到chkconfig列表:

執行命令:

chkconfig --add /etc/init.d/nginx

B、設置服務開機自啓:

執行命令:

chkconfig nginx on

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章