FastDFS教程IV-文件服務器集群搭建

小說:法國冬青種子播種前需要處理嗎?作者:成純辛更新時間:2019-05-25字數:17834

FastDFS教程IV-文件服務器集群搭建


?1.簡介

? ? 本文主要介紹FastDFS文件服務器的集群搭建,在閱讀本文之前,您需具備FastDFS文件服務器單節點安裝,擴容,遷移等方面的知識。同時,您還需了解Keepalived,nginx方面的知識。閱讀本文您可參考如下輔助文章:
  1. ?FastDFS文件服務器單節點安裝:FastDFS教程Ⅰ-文件服務器安裝與Nginx配置
  2. ?FastDFS文件服務器擴容:FastDFS教程Ⅲ-文件服務器擴容
  3. nginx和keepalived實現nginx高可用:nginx和keepalived實現虛擬ip配置

2.搭建環境

  1. 服務器1:ip 10.63.0.154,在上面安裝FastDFS,nginx,keepalived
  2. 服務器2:ip 10.63.0.155,在上面安裝FastDFS,nginx,keepalived

? ? ? 本次采用兩臺服務器,都分別安裝完整的單節點文件服務器。安裝完成后,設置服務器1和服務器2上面的storage分別屬于group1和group2。兩個storage的tracker地址設置為兩個,具體關系如下:

? ? ?

? ? 簡要說明:

  1. 把服務器1和服務器2利用keepalived做一個虛擬ip:10.63.0.158
  2. 為了便于展示特意把tracker和storage抽象成了兩塊,其實是在一臺服務器上面。10.63.0.155的tracker指向的存儲地址為10.63.0.155的storage和10.63.0.154的storage。10.63.0.154上面的tracker指向存儲地址同理。
  3. 在服務器上面配置了nginx負載均衡,在服務器1上面的文件可通過服務器1和服務器2的ip訪問。在服務器2上面的文件同理可以訪問。
  4. 通過虛擬的ip可上傳文件到服務器1和服務器2,并可訪問。

? ? ?一個tracker跟蹤器配置多個storage的方法參考FastDFS文件服務器擴容文檔。分別在服務器1和服務器2上面配置好文件后,啟動服務,在兩臺服務器中輸入指令:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf。截圖如下:

? ? ?

? ? 文件服務器配置好后,利用keepalived做虛擬ip,具體操作請參考nginx和keepalived實現nginx高可用文檔,虛擬ip設置成功后訪問截圖如下:

? ? ?

3.結果展示

? ? 配置好文件服務器后,程序調用虛擬ip地址10.63.0.158可上傳文件,在服務器上面測試時,直接調用文件上傳命令如:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/1.png 上傳文件,在服務器1和服務器2中上傳的文件均可通過虛擬ip10.63.0.158訪問。演示界面如下:

? ?

4.分析說明

? ? ?仔細梳理整個文件上傳,存儲流程。在兩臺服務器上面搭建的這一套文件服務器并能算一個完整的文件服務器集群。在tracker指向storage的設計模式時,是采用了nginx代理分發的模式。目前一個是自身,一個是另外一臺服務器,以后再次擴展存儲服務器時,可繼續沿用。但是在keepalived做nginx高可用時,并沒有做基于tracker的負載分發,筆者也嘗試在現有服務器上面做nginx.conf文件配置,但由于本身又設置了tracker到storage的分發,keepalived到tracker的分發并未生效。所以,目前兩臺文件服務器一個虛擬ip的模式,算是主備的關系。

? ? 由于設置在服務器10.63.0.154上面的keepalived的優先值高于在10.63.0.155服務器上面的優先值,故當服務器10.63.0.154正常運作時,文件上傳只會走服務器10.63.0.154上面的tracker服務,tracker根據配置規則存儲文件到group1下面的存儲器或group2下面的存儲器。當服務器10.63.0.154出現異常時,keepalived已經不可用,文件上傳會走備用的服務器10.63.0.155上面的tracker服務存儲文件。

? ?文件服務器集群搭建目前需要四臺服務器,在上面主備模式基礎上,在加上兩臺服務器可做集群處理。集群關系圖如下:

? ? 額外增加兩臺服務器,專門做keepalived與nginx的負載高可用,通過nginx管理后面兩臺服務器的tracker服務,做代理轉發??赏瓿晌募掌骷捍罱?。其中,在兩臺新服務器的nginx.conf配置文件如下:

#user  nobody;  
worker_processes  1;  
  
#error_log  logs/error.log;  
#error_log  logs/error.log  notice;  
#error_log  logs/error.log  info;  
  
#pid        logs/nginx.pid;  
  
  
events {  
    worker_connections  1024;  
}  
  
  
http {  
    include       mime.types;  
    default_type  application/octet-stream;  
  
    #log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "  
    #                  "$status $body_bytes_sent "$http_referer" "  
    #                  ""$http_user_agent" "$http_x_forwarded_for"";  
  
    #access_log  logs/access.log  main;  
  
    sendfile        on;  
    #tcp_nopush     on;  
  
    #keepalive_timeout  0;  
    keepalive_timeout  65;  
  
    #gzip  on;  
      
    upstream fastdfs_tracker {  
       server 10.63.0.154:8888 weight=1 max_fails=2 fail_timeout=30s;  
       server 10.63.0.155:8888 weight=1 max_fails=2 fail_timeout=30s;  
    }  
  
    server {  
        listen       8888;  
        server_name  localhost;  
  
        #charset koi8-r;  
  
        #access_log  logs/host.access.log  main;  
  
        location /fastdfs {  
           root html;  
           index index.html index.htm;  
           proxy_pass http://fastdfs_tracker/;  
           proxy_set_header Host $http_host;  
           proxy_set_header Cookie $http_cookie;  
           proxy_set_header X-Real-IP $remote_addr;  
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
           proxy_set_header X-Forwarded-Proto $scheme;  
           client_max_body_size 300m;  
        }  
  
        #error_page  404              /404.html;  
  
        # redirect server error pages to the static page /50x.html  
        #  
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
}  
View Code

? ?在實際使用中,通常是把tracker服務和storage服務安裝在不同的服務器上,參考CSDN一位大牛的明細設計方案如下:

? ?設計介紹文檔地址:手把手教你搭建FastDFS集群(下)? ?,該博主一共發布了上中下三篇文章,明確詳細的介紹了文件服務器的搭建過程,經過測試可用,可謂是業界良心。在整個方案中,沒有涉及到文件服務器遷移模塊的知識,沒有采用storage_id.conf的id配置模式,不便遷移。

當前文章:http://www.hfcxdn.com/news2018112389513/

發布時間:2019-05-25 03:04:42

3公分紫薇樹多少錢一顆,急需! 南方能種植荷花嗎? 直徑5公分金絲柳多少錢一棵? 藤本月季夏季能栽活嗎? 玫瑰屬于常綠灌木嗎? 【圖解】立體綠化的營造方式--陽臺綠化 求購低價格,高質量的水臘,你選對地方了嗎? 香樟樹種子多少錢一斤? 美國四季青草坪種子哪家強? 漆樹什么時候播種最好?

日本櫻花有幾種顏色? 北方紫藤花能室外自然過冬嗎? 紫藤什么季節適合種植? 紫藤最佳移植時間是什么時候? 春鵑苗批發去哪里?  檸檬馬鞭草發芽溫度是多少度? 9月可以播種大花飛燕草嗎? 菖蒲籽多少錢一公斤? 欒樹浸種水的溫度多少度為宜? 紫蘇種子能發芽嗎? 3.5公分青竹什么價格?

編輯:秉伯通

我要說兩句: (0人參與)

發布
捕鱼达人之深海狩猎