天天看點

Fast DFS概述以及單機版環境搭建

Fast DFS概述

Fast DFS是一個開源的輕量級分布式檔案系統,它對檔案進行管理,功能包括:檔案存儲、檔案同步、檔案通路(檔案上傳、檔案下載下傳)等,解決了大容量存儲和負載均衡的問題。特别适合中小檔案(建議範圍:4KB < file size <500MB),以檔案為載體的線上服務,如相冊網站、視訊網站等等。

Fast DFS為網際網路量身定制,充分考慮了備援備份、負載均衡、線性擴容等機制,并注重高可用、高性能等名額,使用Fast DFS很容易搭建一套高性能的檔案伺服器叢集提供檔案上傳、下載下傳等服務。

FastDFS架構包括 (跟蹤器)Tracker server和(存儲節點)Storage server。用戶端請求Tracker server進行檔案上傳、下載下傳,通過Tracker server排程最終由Storage server完成檔案上傳和下載下傳。

Tracker Server作用是負載均衡和排程,通過Trackerserver在檔案上傳時可以根據一些政策找到Storageserver提供檔案上傳服務。可以将tracker稱為追蹤伺服器或排程伺服器。

Storage Server作用是檔案存儲,用戶端上傳的檔案最終存儲在Storage伺服器上,Storage server沒有實作自己的檔案系統而是利用作業系統 的檔案系統來管理檔案。可以将storage稱為存儲伺服器。

下面來看一下應該如何安裝以及配置吧

( 參考部落格:https://blog.csdn.net/qq_34301871/article/details/80060235)

1、下載下傳運作環境需要的安裝包(這個是我個人使用的環境包)

下載下傳位址:

**

https://github.com/lxg19970202/FastDFS-/tree/lxg19970202-fastdfs

**

Fast DFS概述以及單機版環境搭建

2、首先下載下傳 所需全部工具運作指令

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

下載下傳完成,安裝 rz 指令-------->進行上傳檔案

yum install lrzsz -y

/home目錄下建立一個目錄将下載下傳的安裝包通過rz指令上傳到自己建立的目錄

cd /home
mkdir lxg
ls
cd lxg
rz
           
Fast DFS概述以及單機版環境搭建

3.安裝libfastcommon

解壓剛才上傳的libfastcommon

cd libfastcommon-master

  unzip libfastcommon-master.zip
           

然後進入解壓完成的檔案目錄進行編譯安裝

./make.sh

Fast DFS概述以及單機版環境搭建

./make.sh install

Fast DFS概述以及單機版環境搭建

4.安裝Fast DFS

傳回上一級去解壓fastdfs

cd  ..
 unzip fastdfs-5.11.zip
           

解壓完成進入fastdfs5.11目錄并進行編譯安裝

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

安裝成功之後切換到 /etc/fdfs下

cd /etc/fdfs/
 ll
           
Fast DFS概述以及單機版環境搭建

使用指令将這三個執行個體檔案複制一份,且去掉sample

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

5、安裝Tracker Server

建立tracker工作目錄以用來存儲tracker的data和log

使用

cd

指令切換目錄

使用

mkdir

指令建立檔案夾

Fast DFS概述以及單機版環境搭建

檔案夾的最終目錄是:/usr/lxg_workspace/dev/fastdfs/fasstdfs_tracker

建立完畢之後進入 /etc/fdfs/配置tracker的conf檔案

vi  /etc/fdfs/tracker.conf
           

insert

鍵進行插入

以下是暫時需要配置的内容

1.disabled=false #預設開啟 
2.port=22122 #預設端口号 
3.base_path=/usr/lxg_workspace/dev/fastdfs/fastdfs_tracker #剛剛建立的目錄 
4.http.server_port=6666 #預設端口是8080
           

再次點選insert切換模式

Esc退出

wq儲存

測試啟動tracker

service fdfs_trackerd start

如果不能成功啟動,可以通systemctl指令

systemctl start fdfs_trackerd

設定服務開機啟動

加執行權限
        chmod +x /etc/rc.d/rc.local
        開始修改rc.local
        vi /etc/rc.d/rc.local
        添加開啟指令
        service fdfs_trackerd start
           
Fast DFS概述以及單機版環境搭建

啟動成功之後的界面:

Fast DFS概述以及單機版環境搭建

啟動之後可以檢視一下服務端口:

Fast DFS概述以及單機版環境搭建

同時進入咱們建立的fastdfs_tracker目錄後也會看到自動生成data和log兩個目錄

Fast DFS概述以及單機版環境搭建

6、安裝Storage Server

咱們前面建立 fastdfs_tracker 目錄的同時已經建立了工作目錄 fastdfs_storage 以及存儲資料的目錄 fastdfs_storage_data,直接去配置就可以了

vi /etc/fdfs/storage.conf
           

設定以下内容:

1.disabled=false 
2.group_name=group1 #組名,根據實際情況修改 
3.port=23000  #設定storage的端口号,預設是23000,同一組的storage端口号必須一緻 
4.base_path=/usr/lxg/dev/fastdfs/fastdfs_storage  #設定storage資料檔案和日志目錄 
5.store_path_count=1 #存儲路徑個數,需要和store_path個數比對 
6.base_path0=/usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data #實際檔案存儲路徑 
7.tracker_server=192.168.150.132:22122 #虛拟機的ip位址 
8.http.server_port=8888 #設定 http 端口号
           

儲存之後 建立軟引用

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

啟動storage

service  fdfs_storaged  start
           

設定開機自動啟動

加執行權限
chmod +x /etc/rc.d/rc.local
開始修改rc.local
 vi /etc/rc.d/rc.local
添加開啟指令
service  fdfs_storaged  start
           

檢視服務端口:

netstat -unltp |  grep fdfs
           
Fast DFS概述以及單機版環境搭建

最後我們再确認一下,storage是否注冊到了tracker中去。

/usr/bin/fdfs_monitor     /etc/fdfs/storage.conf
           
Fast DFS概述以及單機版環境搭建

接下來去修改配置檔案

vi   /etc/fdfs/client.conf
           

修改以下配置:

base_path=/usr/lxg_workspace/dev/fastdfs/fastdfs_tracker #tracker伺服器檔案路徑
tracker_server=192.168.150.167:22122 #tracker伺服器IP位址和端口号
http.tracker_server_port=6666 # tracker 伺服器的 http端口号,必須和tracker對應
           

修改完之後,咱們可以上傳圖檔測試一下啦

使用指令:rz 上傳圖檔 (我的是上傳到了root下面)

rz
    /usr/bin/fdfs_upload_file   /etc/fdfs/client.conf   /root/1.png  #你上傳的圖檔路徑(linux上的)
           
Fast DFS概述以及單機版環境搭建

去剛才上傳的路徑檢視是否上傳成功~~~

cd /usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data/data
ls
cd 00
ls
cd 00
ls
           
Fast DFS概述以及單機版環境搭建

data下有256個1級目錄,每級目錄下又有256個2級子目錄,總共65536個檔案,新寫的檔案會以hash的方式被路由到其中某個子目錄下,然後将檔案資料直接作為一個本地檔案存儲到該目錄中。

然後我們HTTP通路檔案

輸入192.168.150.167:8888/group1/M00/00/00/wKiW10ptyyAbBTGAADALhN48uw668.png

現在無法通路,早在4.05的時候,就remove embed HTTP support了

Version 4.05 2012-12-30

  • client/fdfs_upload_file.c can specify storage ip port and store path index
  • add connection pool
  • client load storage ids config
  • common/ini_file_reader.c does NOT call chdir
  • keep the mtime of file same
  • use g_current_time instead of call time function
  • remove embed HTTP support
Fast DFS概述以及單機版環境搭建

7、Nginx的安裝及配置

我們可以了解到Nginx是一個http伺服器。是一個使用c語言開發的高性能的http伺服器及反向代理伺服器。Nginx是一款高性能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬并發連結,并且cpu、記憶體等資源消耗卻非常低,運作非常穩定。

應用場景

1、 http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜态伺服器。

2、 虛拟主機。可以實作在一台伺服器虛拟出多個網站。例如個人網站使用的虛拟主機。

基于端口的,不同的端口

基于域名的,不同域名

3、 反向代理,負載均衡。當網站的通路量達到一定程度後,單台伺服器不能滿足使用者的請求時,需要用多台伺服器叢集可以使用nginx做反向代理。并且多台伺服器可以平均分擔負載,不會因為某台伺服器負載高當機而某台伺服器閑置的情況。

(1)配置storage nginx

切換到上傳的壓縮包的檔案夾

cd /home/lxg
           

解壓nginx,和fastdfs-nginx-module:

tar -zxvf nginx-1.12.0.tar.gz
unzip fastdfs-nginx-module-master.zip
           

然後進入nginx安裝目錄,添加fastdfs-nginx-module:

./configure --prefix=/usr/local/nginx  --conf-path=/usr/local/nginx/conf/nginx.conf  --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-master/src  --with-stream
           

我這裡安裝的時候報了一個錯:

Fast DFS概述以及單機版環境搭建

解決方案:

檢查檔案夾路徑是否和安裝以及擷取的一緻,如果一緻的話,重新開機電腦,然後删除已經解壓的檔案,重新解壓縮,重新添加。一般兩方的檔案夾的路徑不一緻,前面的是nginx的安裝目錄。後面的是fastdfs-nginx-module-master目錄

Fast DFS概述以及單機版環境搭建

make

:執行

make遇到的錯誤

Fast DFS概述以及單機版環境搭建

編輯

vi fastdfs-nginx-module-1.20/src/config

打開之後:

改變的檔案内容

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

"

解決完這個問題繼續安裝又會報錯

Fast DFS概述以及單機版環境搭建

解決方案:

切換到上傳環境包的那個路徑:

cd /home/lxg/

在這個裡面運作:

./configure --prefix=/usr/bin/nginx-1.12.0 --conf-path=/usr/bin/nginx-1.12.0/conf/nginx.conf --add- module=/usr/local/src/fastdfs/fastdfs-nginx-module-master/src --with-stream

例如:在解壓的nginx目錄下運作:

./configure --prefix=/usr/bin/nginx-1.12.0 --conf-path=/usr/bin/nginx-1.12.0/conf/nginx.conf --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-master/src --with-stream

Fast DFS概述以及單機版環境搭建

然後

make
 make  install
           

成功後界面:

Fast DFS概述以及單機版環境搭建

現在開始配置nginx.conf

cd /usr/local/nginx

—nginx預設的安裝目錄

ll                     
    cd   conf                         
           
Fast DFS概述以及單機版環境搭建

vi nginx.conf

--編輯

修改端口号,

修改連接配接的伺服器名稱,我這裡是虛拟機本機的ip

添加一個 :

location /group1/M00 {
        root /usr/lxg/dev/fastdfs/fastdfs_storage_data/data;
        ngx_fastdfs_module;
    }      
           
Fast DFS概述以及單機版環境搭建

然後進入FastDFS安裝時的解壓過的目錄,将http.conf和mime.types拷貝到/etc/fdfs目錄下:

先建立好存放的檔案夾:

cd /usr/lxg_workspace/

mkdir  ftp
   cd ftp
   mkdir /fastdfs-5.11
           

将之前上傳解壓的包複制到此目錄下

cp -r /home/lxg/fastdfs-5.11  /usr/lxg_workspace/ftp/fastdfs-5.11
           

進到剛剛複制過去的目錄,将http.conf和mime.types拷貝到/etc/fdfs目錄下:

cd   /usr/lxg_workspace/ftp/fastdfs-5.11/
   ll
           
Fast DFS概述以及單機版環境搭建
cd conf
              cp http.conf /etc/fdfs/
              cp mime.types /etc/fdfs/      
           

另外還需要把fastdfs-nginx-module安裝目錄中src目錄下的mod_fastdfs.conf也拷貝到/etc/fdfs目錄下:

cp /usr/lxg_workspace/fastdfs-nginx-module-master/src/mod_fastdfs.conf    /etc/fdfs/
           
Fast DFS概述以及單機版環境搭建

剛剛拷貝過去的mod_fastdfs.conf檔案進行修改:

vi  /etc/fdfs/mod_fastdfs.conf
           

base_path=/usr/lxg_workspace/dev/fastdfs/fastdfs_storage #儲存日志目錄

tracker_server=192.168.150.132:22122 #tracker伺服器的IP位址以及端口号

storage_server_port=23000 #storage伺服器的端口号

url_have_group_name = true #檔案 url 中是否有 group 名

store_path0=/usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data #存儲路徑

group_count = 3 #設定組的個數,事實上這次隻使用了group1

往下同時設定組名等資訊:需要幾個組就設定幾個

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data

store_path1=/usr/muyou/dev/fastdfs/fastdfs_storage_data

Fast DFS概述以及單機版環境搭建

建立M00至storage存儲目錄的符号連接配接:

ln -s /usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data/data/ /usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data/data/M00

接下來嘗試啟動nginx:

/usr/local/nginx_storage/sbin/nginx
           

成功啟動:

Fast DFS概述以及單機版環境搭建

。。重新進入浏覽器嘗試下:

http://192.168.218.25:8888/

成功界面如下:

(2)配置tracker nginx

還是進入剛剛解壓的nginx解壓包,然後重新運作此指令,将nginx再次編譯安裝到另一個檔案夾nginx2

./configure --prefix=/usr/local/nginx2  --conf-path=/usr/local/nginx2/conf/nginx.conf  --add-module=/usr/lxg_workspace/fastdfs-nginx-module-master/src







make
make install
           

接下來還是修改nginx.conf,端口号可以不改,用80的。需将upstream指向tracker的nginx位址

vi /usr/local/nginx_tracker/conf/nginx.conf

 upstream fdfs_group1 {
        server 127.0.0.1:8888;
    }
    server {
        listen       8889;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /group1/M00 {
            proxy_pass http://fdfs_group1;
        }
           

啟動nginx:

/usr/local/nginx_tracker/sbin/nginx

成功界面如下:

Fast DFS概述以及單機版環境搭建

注意這兩個界面的端口号是不一緻的!!!

再次使用浏覽器登陸嘗試

http://192.168.218.25:8888/group1/M00/00/00/wKjaGV0q03KAWMw6AADALhN48uw532.png

效果如下:

Fast DFS概述以及單機版環境搭建

咱們的單機Fast DFS配置就算基本搭建成功啦!!!