本文章也是在參考了網上好多相關文章(主要參考文章見文末)後自學整理的,如有錯誤之處煩請留言指正。
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 - 艾森豪威邇 - 博客園