1. 程式人生 > >CentOS 7 安裝配置分散式檔案系統 FastDFS 5.11

CentOS 7 安裝配置分散式檔案系統 FastDFS 5.11

            CentOS 7  安裝配置分散式檔案系統  FastDFS 5.11


前言

    FastDFS是現在比較流行的分散式檔案系統,很多網際網路公司比較青睞於它,我們公司由之前的ZIMG現在轉FastDFS,下面來講講簡單的安裝配置過程。

    安裝包請自行百度,謝謝。

一、下載 

    1.下載對應的最新版本是5.11,直接在餘大的GitHub上下載就可以了: https://github.com/happyfish100/fastdfs/releases
       
        2. 同時FastDFS 5.1.1同以前版本相比將公共的一些函式等單獨封裝成了libfastcommon包,所以在安裝FastDFS之前我們還必須安裝libfastcommon,在餘大的GitHub首頁可以看到: 
       
        3. 進入目錄:
        cd /home/mayanfu/fastdfs/
       
        下載得到兩個檔案:
        fastdfs-5.11.tar.gz
        libfastcommon-1.0.36.tar.gz
       
二、解壓安裝

   
        1. 安裝 libfastcommon
                tar -xzvf libfastcommon-1.0.36.tar.gz
                cd libfastcommon-1.0.36
               
                執行./make.sh命令進行編譯,沒有error資訊的話就說明編譯成功了,
                最後再執行./make.sh install進行安裝.
               
                libfastcommon.so 預設安裝到了/usr/lib64/libfastcommon.so,但是FastDFS主程式設定的lib目錄是/usr/local/lib,所以此處需要重新設定軟連結
               
                ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
                ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so                  --(ln: 無法建立符號連結"/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
       
        2. 安裝FastDFS
               
                tar -xzvf fastdfs-5.11.tar.gz
                cd fastdfs-5.11
               
                依次執行./make.sh和./make.sh install
               
                安裝到了/etc/fdfs中
               
                cd /etc/fdfs
                安裝成功後就會生成如上的3個.sample檔案(示例配置檔案),我們再分別拷貝出3個後面用的正式的配置檔案:
                cp client.conf.sample client.conf
                cp storage.conf.sample storage.conf
                cp tracker.conf.sample tracker.conf
       
        至此FastDFS已經安裝完畢,接下來的工作就是依次配置Tracker和Storage了。
       
        3. 安裝前置條件
                安裝需要GCC 和 perl 可能需要提前安裝
               
                yum -y install gcc-c++
                yum -y install perl
               
                如果沒有裝解壓工具unzip可以通過以下yum命令進行安裝後再解壓:
                yum -y install unzip zip
               
三、配置 Tracker

        1. 在配置Tracker之前,首先需要建立Tracker伺服器的檔案路徑,即用於儲存Tracker的資料檔案和日誌檔案等,我這裡選擇在/home目錄下建立一個fastdfs_tracker目錄用於存放Tracker伺服器的相關檔案:
                mkdir /home/fastdfs_tracker             
               
        2. 編輯上一步準備好的/etc/fdfs目錄下的tracker.conf配置檔案,開啟檔案後依次做以下修改:
                vi /etc/fdfs/tracker.conf
               
                disabled=false #啟用配置檔案(預設啟用)
                port= 22122 
#設定tracker的埠號,通常採用22122這個預設埠
                base_path=/home/fastdfs_tracker #設定tracker的資料檔案和日誌目錄
                http.server_port=6666 #設定http埠號,預設為8080
               
        3. 配置完成後就可以啟動Tracker伺服器了,但首先依然要為啟動指令碼建立軟引用,因為fdfs_trackerd等命令在/usr/local/bin中並沒有,而是在/usr/bin路徑下:
                ln -s /usr/bin/fdfs_trackerd /usr/local/bin
                ln -s /usr/bin/stop.sh /usr/local/bin
                ln -s /usr/bin/restart.sh /usr/local/bin
               
        4. 最後通過命令啟動Tracker伺服器:
                service fdfs_trackerd start
               
                如果啟動命令執行成功,那麼同時在剛才建立的tracker檔案目錄/home/fastdfs_tracker中就可以看到啟動後新生成的data和logs目錄,
               
                tracker服務的埠也應當被正常監聽,最後再通過netstat命令檢視一下埠監聽情況:
                netstat -unltp|grep fdfs
                可以看到tracker服務執行的22122埠正常被監聽:
               
        5.      確認tracker正常啟動後可以將tracker設定為開機啟動,開啟/etc/rc.d/rc.local並在其中加入以下配置:
                vi /etc/rc.d/rc.local
               
                service fdfs_trackerd start
               
                檢視埠:ss -ntl
               
四、配置Storage
        1.步驟基本與配置Tracker一致,首先是建立Storage伺服器的檔案目錄,需要注意的是同Tracker相比我多建了一個目錄,因為Storage還需要一個檔案儲存路徑,用於存放接收的檔案:
                mkdir /home/fastdfs_storage
                mkdir /home/fastdfs_storage_data
               
        2. 接下來修改/etc/fdfs目錄下的storage.conf配置檔案,開啟檔案後依次做以下修改:
                vi  /etc/fdfs/storage.conf
               
                disabled=false #啟用配置檔案(預設啟用)
                group_name=group1 #組名,根據實際情況修改
                port= 23000 #設定storage的埠號,預設是23000,同一個組的storage埠號必須一致
                base_path=/home/fastdfs_storage #設定storage資料檔案和日誌目錄
                store_path_count=1 #儲存路徑個數,需要和store_path個數匹配
                store_path0=/home/fastdfs_storage_data #實際檔案儲存路徑
                tracker_server=192.168.111.11:22122 #tracker 伺服器的 IP地址和埠號,如果是單機搭建,IP不要寫127.0.0.1,否則啟動不成功(此處的ip是我的CentOS虛擬機器ip)
                http.server_port=8888 #設定 http 埠號
               
        3. 配置完成後同樣要為Storage伺服器的啟動指令碼設定軟引用:

                ln -s /usr/bin/fdfs_storaged /usr/local/bin
               
        4. 接下來就可以啟動Storage服務了:

                service fdfs_storaged start
               
                如果啟動成功,/home/fastdfs_storage中就可以看到啟動後新生成的data和logs目錄,埠23000也應被正常監聽,還有一點就是檔案儲存路徑下會生成多級儲存目錄,那麼接下來看看是否啟動成功了: 
               
                netstat -unltp|grep fdfs
                檢視埠:ss -ntl 
                有22122埠  和23000埠說明成功了
               
        5. 至此storage伺服器就已經配置完成,確定了storage伺服器啟動成功後,還有一項工作就是看看storage伺服器是否已經登記到 tracker伺服器(也可以理解為tracker與storage是否整合成功),執行以下命令:
                 /usr/bin/fdfs_monitor /etc/fdfs/storage.conf     
               
                看到192.168.111.11 ACTIVE 字樣即可說明storage伺服器已經成功登記到了tracker伺服器, 同理別忘了新增開機啟動,開啟/etc/rc.d/rc.local並將如下配置追加到檔案中:
                service fdfs_storaged  start
               
五、安裝nginx        storage伺服器的nginx

        4.0.5版本開始移除了自帶的HTTP支援(因為之前自帶的HTTP服務較為簡單,無法提供負載均衡等高效能服務),所以餘大提供了nginx上使用FastDFS的模組fastdfs-nginx-module,下載地址如下:https://github.com/happyfish100/fastdfs-nginx-module,這樣做最大的好處就是提供了HTTP服務並且解決了group中storage伺服器的同步延遲問題,
       
        yum -y install  pcre-devel pcre  zlib zlib-devel  openssl openssl-devel
        依次裝好這些依賴之後就可以開始安裝nginx了。

       
        1. 下載fastdfs-nginx-module 得到fastdfs-nginx-module-master.zip
                cd /home/mayanfu/fastdfs/ 
               
                http://nginx.org/en/download.html 下載nginx 穩定版本nginx-1.12.2.tar.gz
               
        2.      解壓安裝
                tar -zxvf nginx-1.12.2.tar.gz
                unzip fastdfs-nginx-module-master.zip
               
                cd nginx-1.12.2
               
                ./configure --prefix=/usr/local/nginx --add-module=/home/mayanfu/fastdfs/fastdfs-nginx-module-master/src
                make
                make install
                安裝完成後,我們在我們指定的目錄/usr/local/nginx中就可以看到nginx的安裝目錄了:

        3. 接下來要修改一下nginx的配置檔案,進入conf目錄並開啟nginx.conf檔案加入以下配置:
                cd /usr/local/nginx
                vi nginx.conf
               
                listen       9999;

                location ~/group1/M00 {
                        root /home/fastdfs_storage_data/data;
                        ngx_fastdfs_module;
                }
               
        4. 然後進入FastDFS的安裝目錄/home/mayanfu/fastdfs/fastdfs-5.11目錄下的conf目錄,將http.conf和mime.types拷貝到/etc/fdfs目錄下:

                cp -r /home/mayanfu/fastdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/
                cp -r /home/mayanfu/fastdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/
               
        接下來還需要把fastdfs-nginx-module安裝目錄中src目錄下的mod_fastdfs.conf也拷貝到/etc/fdfs目錄下:

                cp -r /home/mayanfu/fastdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/                
        5. 編輯剛拷貝的這個mod_fastdfs.conf檔案了,開啟mod_fastdfs.conf並按順序依次編譯以下內容:
                base_path=/home/fastdfs_storage #儲存日誌目錄
                tracker_server=10.100.1.99:22122 #tracker伺服器的IP地址以及埠號
                storage_server_port=23000 #storage伺服器的埠號                 url_have_group_name = true #檔案 url 中是否有 group 名                 group_name=group1                 store_path0=/home/fastdfs_storage_data # 儲存路徑
                group_count = 3 #設定組的個數,事實上這次只使用了group1 ----------- 此處改為1,只用group1                                 // 此處不需要設定,全部去除                 設定了group_count = 3,接下來就需要在檔案尾部追加這3個group setting:
               
                [group1]
                group_name=group1
                storage_server_port=23000
                store_path_count=1
                store_path0=/home/fastdfs_storage_data

                [group2]
                group_name=group2
                storage_server_port=23000
                store_path_count=1
                store_path0=/home/fastdfs_storage_data

                [group3]
                group_name=group3
                storage_server_port=23000
                store_path_count=1
                store_path0=/home/fastdfs_storage_data
               
               
        6. 接下來還需要建立 M00 至儲存目錄的符號連線:

                ln  -s  /opt/fastdfs_storage_data/data  /opt/fastdfs_storage_data/data/M00    (貌似有問題)             // 改為下面             ln -s /home/fastdfs_storage_data/data /home/fastdfs_storage_data/M00 ln -s /usr/local/fastdfs/fastdfs_storage_data/data /usr/local/fastdfs/fastdfs_storage_data/data/M00

        linux下面關閉防火牆:
                1) 重啟後生效 
                        開啟: chkconfig iptables on 
                        關閉: chkconfig iptables off 
                2) 即時生效,重啟後失效 
                        開啟: service iptables start 
                        關閉: service iptables stop 
                       
                       
        7.      最後啟動nginx:
                /usr/local/nginx/sbin/nginx     
               
                通過瀏覽器也可以看到nginx的主頁: http://10.100.1.99:9999/
                storage伺服器的nginx就已經安裝完畢,接下來看一下tracker伺服器的nginx安裝。
               
六、 tracker nginx       

        1. 再裝一個nginx,目錄命名為nginx2,安裝路徑依舊放在/usr/local下,由於和之前一樣,此處就不再做詳細解釋:       
       
           mkdir /usr/local/nginx2
           
           cd nginx-1.12.2                //原始碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。 // 解釋說明: https://blog.csdn.net/yangzaiqiu1986814/article/details/50740024                 ./configure --prefix=/usr/local/nginx2 --add-module=/home/mayanfu/fastdfs/fastdfs-nginx-module-master/src
                make
                make install
               
        2. 接下來依然是修改nginx2的配置檔案,進入conf目錄並開啟nginx.conf檔案加入以下配置,storage的nginx修改listen埠,即預設的9980埠,並將upstream指向tracker的nginx地址:                               // 此處server為tracker中的nginx地址                 upstream fdfs_group1 {                         server 127.0.0.1:9999;                                    }
                // 此處監聽埠預設9980,不可和其他埠衝突                 server {                         listen 9980;                         server_name localhost;

                        #charset koi8-r;

                        #access_log logs/host.access.log main;

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

                        ……
                       
                }       
               
        3. 接下來啟動nginx2:

                /usr/local/nginx2/sbin/nginx
               
                此時訪問nginx2的主頁 http://10.100.1.99:9980
               
七、客戶端配置
       
        1.最後一步就是需要修改/etc/fdfs目錄下的client.conf檔案,開啟該檔案並加入以下配置:

                vi /etc/fdfs/client.conf                                 base_path=/home/fastdfs_tracker #日誌存放路徑                 tracker_server=10.100.1.99:22122  #tracker 伺服器 IP 地址和埠號
                http.tracker_server_port=6666  # tracker 伺服器的 http 埠號,必須和tracker的設定對應起來
               
        2. 至此關於fastdfs就已經全部配置完畢了,再一次進行測試看看是否能正常上傳檔案並通過http訪問檔案。

        HTTP測試

                再給/opt/mayanfu/目錄下上傳一張 圖: 
               
                通過客戶端命令測試上傳:                  /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/mayanfu/0ec49f5ef18747b6a1ffc820ffc14964_th.jpg                 返回:group1/M00/00/00/CmQBY1p4ITyAXIvWAABzmXfpT5Y058.jpg
               
                開啟瀏覽器輸入ip地址+檔名看看是否能正常訪問該圖片:  http://10.100.1.99:9999/group1/M00/00/00/CmQBY1p4ITyAXIvWAABzmXfpT5Y058.jpg
               
                一切正常~ 至此關於FastDFS在CentOS 7下的部署測試就已經全部完成了。

        3.      注意:如果重啟linux 系統 reboot  上面很多服務 不能 自動重啟:

                所以使用指令碼讓他開機自動重啟;

        #!/bin/bash
        #
        service fdfs_trackerd start
        service fdfs_storaged start
        /usr/local/nginx/sbin/nginx
        /usr/local/nginx2/sbin/nginx