CentOS-6.8系列-FastDFS高可用集羣安裝指南

本文章也是在參考了網上好多相關文章(主要參考文章見文末)後自學整理的,如有錯誤之處煩請留言指正。

1.服務器集羣IP規劃(可自行調整)

Tracker服務器:

    192.168.152.11
    192.168.152.14 

Storage服務器:

    Group1:
    192.168.152.12
    192.168.152.13
    Group2:
    192.168.152.15
    192.168.152.16

這裏寫圖片描述

說明:FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。存儲節點存儲文件,完成文件管理的所有功能:存儲、同步和提供存取接口。

爲了支持大容量,存儲節點(服務器)採用了分組的組織方式。存儲系統由一個或多個卷組成(如上邊的Group1與Group2),卷與卷之間的文件是相互獨立的,所有卷的文件容量累加就是整個存儲系統中的文件容量(如上述示例的集羣的總容量爲Group1中的容量最小的那臺服務器的容量加上Group2中的容量最小的那臺服務器的容量(組內服務器容量取決於容量最小的那臺服務器))。一個卷可以由一臺或多臺存儲服務器組成,一個卷下的存儲服務器中的文件都是相同的,卷中的多臺存儲服務器起到了冗餘備份和負載均衡的作用。

當存儲空間不足或即將耗盡時,可以動態添加捲。只需要增加一臺或多臺服務器,並將它們配置爲一個新的卷(如Group3),這樣就擴大了存儲系統的容量。

2.安裝步驟

以下安裝步驟基於服務器及IP規劃妥當,本安裝指南以上文中規劃的IP進行安裝,操作系統爲Centos6.8。

2.1.安裝前準備工作

2.1.1.新建組和用戶

若不想使用root用戶進行操作,可新建一個組和用戶,命令如下:

groupadd fastdfsg
useradd -g fastdfsg fastdfs
passwd fastdfs

2.1.2.防火牆設置

修改防火牆配置文件,tracker服務器開放22122端口,storage服務器開放23000端口以及http訪問需要的端口(FastDFS的nginx模塊默認端口爲8888,本指南使用8888端口,可根據需求改爲80或8080等端口)

vi /etc/sysconfig/iptables

tracker服務器添加如下內容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

這裏寫圖片描述
storage服務器添加如下內容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT

這裏寫圖片描述
保存後重啓防火牆

service iptables restart

2.1.3.基礎軟件安裝

安裝一些軟件編譯、下載、解壓所需的基礎軟件,安裝wget是爲了在線下載FastDFS、Nginx等軟件(不在線下載時可自行準備好FastDFS、Nginx等安裝包,並上傳到每個服務器上,本指南使用的目錄爲/usr/local/src,注:Tracker服務器無需Nginx包,可不上傳),本指南採用在線下載解壓安裝的方式。

#基礎軟件的安裝請執行下述命令
yum install make cmake gcc gcc-c++
yum -y install perl
yum install -y wget
yum install -y unzip zip
#查看是否已安裝上述軟件使用下邊的命令
yum list installed | grep 軟件名稱

2.2.安裝FastDFS

本步驟所有服務器(192.168.152.11,192.168.152.14,192.168.152.12,192.168.152.13,192.168.152.15,92.168.152.16)上均需執行

2.2.1.安裝FastDFS的依賴包libfastcommon

按步驟依次執行下述命令

#切換至/usr/local/src目錄
cd /usr/local/src
#下載libfastcommon包並重命名
wget https://github.com/happyfish100/libfastcommon/archive/master.zip -O libfastcommon-master.zip
#解壓
unzip libfastcommon-master.zip
#切換至libfastcommon-master目錄
cd libfastcommon-master
#編譯
./make.sh
#安裝
./make.sh install

2.2.2.安裝FastDfs

按步驟依次執行下述命令

#切換至/usr/local/src目錄
cd /usr/local/src
#下載FastDfs包並重命名
wget https://github.com/happyfish100/fastdfs/archive/V5.11.zip -O fastdfs-5.11.zip
#解壓
unzip fastdfs-5.11.zip 
#切換至fastdfs-5.11目錄
cd fastdfs-5.11
#編譯
./make.sh
#安裝
./make.sh install

2.3.配置

至此,FastDFS已安裝完畢,下面開始針對Tracket服務器(192.168.152.11,192.168.152.14)與Storage服務器(192.168.152.12,192.168.152.13,192.168.152.15,192.168.152.16)分別進行配置

2.3.1.Tracker服務器配置

在192.168.152.11,192.168.152.14兩臺tracker服務器上均依次執行下述命令即可

#切換至/etc/fdfs/目錄
cd /etc/fdfs/
#複製tracker.conf.sample文件並命名爲tracker.conf
cp tracker.conf.sample tracker.conf
#修改tracker.conf文件
vi tracker.conf
#修改內容如下:
disabled=false              # 啓用配置文件
port=22122                  # tracker服務器端口(默認22122)
base_path=/fastdfs/tracker  # 存儲日誌和數據的根目錄
#創建上述配置文件中配置的/fastdfs/tracker目錄
mkdir -p /fastdfs/tracker

2.3.2.Storage服務器配置

在四臺storage服務器上均依次執行下述命令即可

#切換至/etc/fdfs/目錄
cd /etc/fdfs/
#複製storage.conf.sample文件並命名爲storage.conf
cp storage.conf.sample storage.conf
#修改storage.conf文件
vi /etc/fdfs/storage.conf
# 修改的內容如下:
disabled=false                          # 啓用配置文件
port=23000                              # storage服務端口
base_path=/fastdfs/storage              # 數據和日誌文件存儲根目錄
store_path0=/fastdfs/storage                # 第一個存儲目錄
tracker_server=192.168.152.11:22122     # tracker服務器IP和端口
tracker_server=192.168.152.14:22122     # tracker服務器IP和端口
http.server_port=8888                   # http訪問文件的端口(可自行修改)
group_name=group1                   #.12和.13服務器寫成group1,.15                                          和.16服務器寫成group2
#創建上述配置文件中配置的/fastdfs/storage目錄
mkdir -p /fastdfs/storage

2.4.服務器啓動與關閉

Tracker服務器:

/etc/init.d/fdfs_trackerd start     #啓動命令
ps -ef | grep fdfs_trackerd     #查看是否啓動
/etc/init.d/fdfs_trackerd stop      #關閉命令

Storage服務器

/etc/init.d/fdfs_storaged start #啓動命令
ps -ef | grep fdfs_storaged     #查看是否啓動
/etc/init.d/fdfs_storaged stop      #關閉命令

2.5.測試Client

至此FastDFS的集羣安裝已基本完成,下面用FastDFS自帶的client進行文件上傳測試。測試成功後,接着在Storage服務器上安裝Nginx模塊。

2.5.1.client客戶端配置

FastDFS自帶client測試端,現在在兩臺Tracker服務器中任選一臺服務器,依次執行下述命令:

#切換至/etc/fdfs/目錄
cd /etc/fdfs/
#複製client.conf.sample文件並命名爲client.conf
cp client.conf.sample client.conf
#修改client.conf文件
vi client.conf
# 修改以下配置,其它保持默認
    base_path=/fastdfs/tracker
    tracker_server=192.168.152.11:22122
    tracker_server=192.168.152.14:22122

2.5.2.上傳測試

#新建一個文件,這裏建一個示例txt的文件
vi /usr/local/src/test.txt      #隨便寫點內容,如:Tracker-192.168.152.11
#執行上傳命令
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.txt
#返回如下信息表示上傳成功

記錄下返回信息,後續測試會用到
group1/M00/00/00/wKiYDFn8cjiAcwZaAAAAFx6Z3I4714.txt

2.5.3.使用fdfs_monitor查看集羣信息

#執行如下命令(在修改了/etc/fdfs/client.conf文件的服務器上執行)
/usr/bin/fdfs_monitor /etc/fdfs/client.conf

控制檯顯示如下截圖內容(集羣中tracker與storage節點信息)

這裏寫圖片描述

2.6.Storage服務器安裝Nginx模塊

注意:只需要在四臺storage服務器上安裝Nginx模塊即可,安裝Nginx的作用是fastdfs-nginx-module 可以重定向文件連接到源服務器取文件,避免客戶端由於複製延遲導致的文件無法訪問錯誤。
四臺storage服務器均需依次執行下述步驟

2.6.1.下載並配置fastdfs-nginx-module模塊

#切換到/usr/local/src目錄
cd /usr/local/src
#下載fastdfs-nginx-module包並重命名
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip -O     fastdfs-nginx-module-master.zip
#解壓
unzip fastdfs-nginx-module-master.zip
#切換至fastdfs-nginx-module-master/src目錄
cd fastdfs-nginx-module-master/src
#修改config文件
vi config#新版本的可能已無需修改CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/" 
    修改爲:
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

2.6.2.Storage節點安裝Nginx

#切換至/usr/local/src目錄
cd /usr/local/src
#安裝編譯 Nginx 所需的依賴包
yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
#下載nginx安裝包
wget http://nginx.org/download/nginx-1.13.6.tar.gz
#解壓
tar -zxvf nginx-1.13.6.tar.gz 
#切換至nginx-1.13.6目錄
cd nginx-1.13.6
#添加fastdfs-nginx-module模塊至Nginx
./configure --add-module=/usr/local/src/fastdfs-nginx-module-master/src
#編譯安裝
make && make install

2.6.3.Storage節點Nginx相關配置

#複製 fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄
cp /usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
#切換至/etc/fdfs/目錄
cd /etc/fdfs/
#修改mod_fastdfs.conf配置文件
vi mod_fastdfs.conf
修改以下配置: 
    connect_timeout=10
    base_path=/tmp
    tracker_server=192.168.152.11:22122
    tracker_server=192.168.152.14:22122
    storage_server_port=23000
    group_name=group1
    url_have_group_name = true
    store_path0=/fastdfs/storage        #.12和.13服務器寫成group1,.15和.16服務器寫成group2
#切換至/usr/local/src/fastdfs-5.11/conf目錄
cd /usr/local/src/fastdfs-5.11/conf
#複製FastDFS 的部分配置文件到/etc/fdfs 目錄
cp http.conf mime.types /etc/fdfs/
#在/fastdfs/storage 文件存儲目錄下創建軟連接,將其鏈接到實際存放數據的目錄
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
#切換至/usr/local/nginx/conf/目錄
cd /usr/local/nginx/conf/
#複製nginx.conf文件(目的是爲了備份)
cp nginx.conf nginx.conf.sample
#修改nginx.conf
vi nginx.conf
#修改使用紅色部分
user nobody;
        worker_processes 1;
        events {
            worker_connections 1024;
        }
        http {
            include mime.types;
            default_type application/octet-stream;
            sendfile on;
            keepalive_timeout 65;
            server {
                listen 8888;
                server_name localhost;
                location ~/group([0-9])/M00 {
                    ngx_fastdfs_module;
                }
                error_page 500 502 503 504 /50x.html;
                location = /50x.html {
                    root html;
                }
            }
        }
注意:1.8888 端口值是要與/etc/fdfs/storage.conf 中的 http.server_port=8888 相對應, 因爲 http.server_port 默認爲 8888,如果想改成 80,則要對應修改過來。
2.Storage 對應有多個 group 的情況下,訪問路徑帶 group 名,如/group1/M00/00/00/xxx, 對應的 Nginx 配置爲:
location ~/group([0-9])/M00 {
    ngx_fastdfs_module;
}

2.6.4.Nginx啓動

#啓動Nginx
/usr/local/nginx/sbin/nginx
#重啓命令爲
/usr/local/nginx/sbin/nginx -s reload

2.7.測試Nginx模塊

測試前確保所有Storage服務器上的FastDFS及Nginx已啓動,啓動完成後,在瀏覽器地址欄中輸入如下地址:
http://[storageIP]:8888/group1/M00/00/00/wKiYDFn8cjiAcwZaAAAAFx6Z3I4714.txt
其中storageIP可以爲四臺storage服務器中的任何一臺的ip,group1/M00/00/00/wKiYDFn8cjiAcwZaAAAAFx6Z3I4714.txt爲前文用FastDFS自帶的Client測試上傳的文件返回的地址。
正常情況下會返回下圖內容
這裏寫圖片描述
可以繼續嘗試更換ip(Storage服務器的ip)、或輪流關閉Tracker服務器、或關閉Storage服務器進行測試。但根據上文測試返回的連接,可以確定text.txt文件存儲的實際地方爲group1中的兩臺服務器,因此在做停機測試時要保證group1中的兩臺Storage服務器(即192.168.152.12,192.168.152.13)至少有一臺在正常運行。

2.8.設置FastDFS及storage節點Nginx開機啓動

設置開機啓動採用修改/etc/rc.d/rc.local文件的方式

vi /etc/rc.d/rc.local
    #Tracker服務器上添加如下內容
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

這裏寫圖片描述

#Storage服務器上添加如下內容
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx

這裏寫圖片描述

2.9.Tracker節點安裝keepalived實現高可用

分別在Tracker節點192.168.152.11及192.168.152.14上安裝nginx及keepalived,實現fastdfs的負載均衡及高可用

2.9.1.Tracker節點Nginx相關

2.9.1.1.Tracker節點安裝Nginx

#切換至/usr/local/src目錄
cd /usr/local/src
#安裝編譯 Nginx 所需的依賴包
yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
#下載nginx安裝包
wget http://nginx.org/download/nginx-1.13.6.tar.gz
#解壓
tar -zxvf nginx-1.13.6.tar.gz 
#切換至nginx-1.13.6目錄
cd nginx-1.13.6
#配置
./configure
#編譯安裝
make && make install

2.9.1.2.Tracker節點Nginx相關配置

#tracker服務器開放8888端口
vi /etc/sysconfig/iptables
#添加如下端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
#重啓網卡 
service network restart
#切換至/usr/local/nginx/conf/目錄
cd /usr/local/nginx/conf/
#複製nginx.conf文件(目的是爲了備份)
cp nginx.conf nginx.conf.sample
#修改nginx.conf
vi 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;

    #設置 group1 的服務器
    upstream fdfs_group1 {
         server 192.168.152.12:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.152.13:8888 weight=1 max_fails=2 fail_timeout=30s;
    }

    #設置 group2 的服務器
    upstream fdfs_group2 {
         server 192.168.152.15:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.152.16: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;


       #設置 group 的負載均衡參數
        location /group1/M00 {
            proxy_pass http://fdfs_group1;
        }

        location /group2/M00 {
            proxy_pass http://fdfs_group2;
        }
        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
       #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}
上述配置仍然監聽爲8888端口
啓動nginx
/usr/local/nginx/sbin/nginx

2.9.2.Tracker節點keepalived相關

2.9.2.1.Tracker節點keepalived安裝

2.9.2.1.1.方法一:yum方式安裝

#使用yum方式安裝keepalived(自動安裝依賴)
yum install -y keepalived ipvsadm

2.9.2.1.2.方法二:本地安裝

#安裝依賴
yum install -y libnl lm_sensors-libs net-snmp-libs ipvsadm
#切換至/usr/local/src目錄
cd /usr/local/src
#下載keepalived
wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
#解壓
tar -zxvf keepalived-1.2.13.tar.gz
#配置
./configure --prefix=/usr/local/keepalived/
#編譯安裝
make && make install
#添加keepalived至service
#拷貝可執行文件,沒有這一步將會在執行service keepalived start的時候報錯:   keepalived: command not found
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#需要在/etc目錄下創建keepalived目錄
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# 創建入口腳本文件,可以接收start| stop | status | restart
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#拷貝系統配置文件
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#經過了如上的處理就可以通過以下方式來操作keepalived
service keepalived start | stop | restart | status

2.9.2.2.Tracker節點keepalived配置

#防火牆添加arrp組播規則,或關閉防火牆 
vi /etc/sysconfig/iptables 
-A INPUT -p vrrp -d 224.0.0.18/32 -j ACCEPT
#切換至/etc/keepalived/目錄
#注意:採用本地安裝時配置文件路徑爲/usr/local/keepalived/etc/keepalived
cd /etc/keepalived/
#複製keepalived.conf文件
cp keepalived.conf keepalived.conf.sample
#修改keepalived配置文件
vi /etc/keepalived/keepalived.conf
192.168.152.11Tracker節點配置文件如下(注意紅色部分):
global_defs {
           router_id nginx_01  #標識本節點的名稱,通常爲hostname
        }

        ## keepalived會定時執行腳本並對腳本執行的結果進行分析,動態調整vrrp_instance的優先級。
        ##如果腳本執行結果爲0,並且weight配置的值大於0,則優先級相應的增加。如果腳本執行結果非0,
        ##並且weight配置的值小於 0,則優先級相應的減少。其他情況,維持原本配置的優先級,即配置文件中priority對應的值。
        vrrp_script chk_nginx {
               script "/etc/keepalived/nginx_check.sh"#注意路徑(本地安裝時的路徑差別)
               interval 2  #每2秒檢測一次nginx的運行狀態
               weight -20  #失敗一次,將自己的優先級-20
        }

        vrrp_instance VI_1 {
            state BACKUP                  # 狀態,主節點爲MASTER,備份節點爲BACKUP(搶佔模式可設置一個爲MSTER)
            interface eth1              # 綁定VIP的網絡接口,通過ifconfig查看自己的網絡接口
            virtual_router_id 51          # 虛擬路由的ID號,兩個節點設置必須一樣,可選IP最後一段使用,相同的VRID爲一個組,他將決定多播的MAC地址
            mcast_src_ip 192.168.152.11    # 本機IP地址
            priority 100                  # 節點優先級,值範圍0~254,MASTER要比BACKUP高
            advert_int 1                  # 組播信息發送時間間隔,兩個節點必須設置一樣,默認爲1秒
            nopreempt
            # 設置驗證信息,兩個節點必須一致
            authentication {
                auth_type PASS
                auth_pass 1111
            }
            # 虛擬IP,兩個節點設置必須一樣。可以設置多個,一行寫一個
            virtual_ipaddress {
                192.168.152.20
            }

            track_script {
               chk_nginx  # nginx存活狀態檢測腳本
            }
        }
192.168.152.14racker節點配置文件如下:
global_defs {
           router_id nginx_02
        }

        vrrp_script chk_nginx {
            script "/etc/keepalived/nginx_check.sh"
            interval 2
            weight -20
        }

        vrrp_instance VI_1 {
            state BACKUP
            interface eth2
            virtual_router_id 51
            mcast_src_ip 192.168.152.14
            priority 90
            advert_int 1
            nopreempt
            authentication {
                auth_type PASS
                auth_pass 1111
            }
            virtual_ipaddress {
                192.168.152.20
            }

            track_script {
               chk_nginx
            }
        }
注意:上述配置爲keepalived的非搶佔模式的配置
非搶佔模式的配置與搶佔模式的配置的區別爲:
1.在vrrp_instance塊下兩個節點各增加了nopreempt指令,表示不爭搶vip
2.節點的state都爲BACKUP(搶佔模式有一個設置爲MASTER)(兩個keepalived   節點都啓動後,默認都是BACKUP狀態,雙方在發送組播信息後,會根據優先級來  選舉一個MASTER出來。由於兩者都配置了nopreempt,所以MASTER從故障中恢    復後,不會搶佔vip。這樣會避免VIP切換可能造成的服務延遲。)
#創建nginx服務檢測腳本
#分別在主備服務器/etc/keepalived目錄下創建nginx_check.sh腳本,併爲其添加執行權限chmod +x /etc/keepalived/nginx_check.sh。用於keepalived定時檢測nginx的服務狀態,如果nginx停止了,會嘗試重新啓動nginx,如果啓動失敗,會將keepalived進程殺死,將vip漂移到備份機器上。
cd /etc/keepalived
vi nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
    /opt/nginx/sbin/nginx #嘗試重新啓動nginx
    sleep 2  #睡眠2秒
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
        killall keepalived #啓動失敗,將keepalived服務殺死。將vip漂移到其它備份節點
    fi
Fi

2.9.2.3.Tracker節點啓動keepalived

#啓動keepalived
service keepalived start
注意:本地安裝的啓動方式如下示例
/usr/local/keepalived/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf
#檢查是否啓動
ps -ef | grep keepalived
#查看vip綁定情況
ip addr

這裏寫圖片描述

2.9.3.設置tracker節點keepalived與nginx開機啓動

設置開機啓動採用修改/etc/rc.d/rc.local文件的方式
vi /etc/rc.d/rc.local
#Tracker服務器上添加如下內容
/usr/local/nginx/sbin/nginx
service keepalived start

2.9.4.Keepalived測試

Keepalived測試可結合ip addr命令在關閉或開啓tracker節點的情況下查看vip的綁定情況,及用vip即192.168.152.20訪問應用,進行文件的上傳下載操作,完成綜合測試。

3.擴展

3.1.Storage同組內節點擴容

在不添加組的情況下進行FastDFS的擴容,可增加磁盤,配置中添加store_path[x]參數即可,
注意:同組內的所有機器都要擴容
參考下述步驟

3.1.1.同一組內所有Storage節點掛載磁盤

3.1.2.FastDFS及Nginx相關配置文件修改

#修改tracker.conf(Tracker節點)配置文件
vi /etc/fdfs/tracker.conf
將 store_path=0 修改爲 store_path=2
從輪詢的方式改爲存儲負載均衡的方式(即選擇剩餘空間最大的目錄存放文件)
#修改storage.conf(Storage節點)配置文件
vi /etc/fdfs/storage.conf
將 store_path_count=1 改爲 store_path_count=2
增加store_path1=/fdfs/storage1
#修改mod_fastdfs.conf(Storage節點)配置文件
將store_path_count=1 改爲 store_path_count=2
在 store_path0=/fastdfs/storage 下面增加一行store_path1=/fastdfs2/storage
同一節點上分配多個組的話,在該配置文件最下邊依據規律做相應的修改
#建立軟連接
ln -s /fastdfs2/storage/data/ /fastdfs2/storage/data/M01
#修改nginx.conf(Storage節點)配置文件
將location ~/group([0-9])/M00 {
            ngx_fastdfs_module;
        }
修改爲location ~/group([0-9])/M0[0-1] {
            ngx_fastdfs_module;
        }
#重啓tracker、storage、nginx
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx -s reload
注意:若http的形式無法訪問的話執行下述命令嘗試
Killall nginx
/usr/local/nginx/sbin/nginx

注意:原文寫的時候爲word格式,文中出現的顏色區分的地方沒有相應效果,勿怪^_^

主要參考文章
FastDFS集羣部署 - 孟凡柱的專欄 - 博客園
分佈式文件管理系統_FastDFS集羣 - 啥也不懂的新同學 - 博客園
FastDFS 配置文件詳解(修訂版1) - 分佈式文件系統(FastDFS)-ChinaUnix.net
FastDFS+Nginx(單點部署)事例 - 孟凡柱的專欄 - 博客園
FastDFS單臺服務器一個tracker多個storage - CSDN博客
nginx配置location [=|~|~*|^~] /uri/ { … }用法 - CSDN博客
CentOS 6.3(64) —> fastdfs_v4.07 / 實現多服務器 - shking的個人頁面
FastDFS增加存儲路徑配置 - CSDN博客
nginx系列(二十)nginx的緩存清理模塊ngx_cache_purge - 貓頭哥(樸海林)_QQ:85977328 - ITeye博客
FastDFS的配置、部署與API使用解讀(1)Get Started with FastDFS - 麥克船長的技術筆記 - CSDN博客

Linux 高可用(HA)集羣之keepalived詳解-Share your knowledge …-51CTO博客
keepalived工作原理和配置說明 - 爲程序員服務
Keepalived安裝與配置 - CSDN博客
Keepalived+Nginx實現高可用(HA) - CSDN博客
Linx下Keepalived做成服務 - 下士聞道 - 博客園
Keepalived系列一:安裝Keepalived - 艾森豪威邇 - 博客園

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