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格式,文中出現的顏色區分的地方沒有相應效果,勿怪^_^