當用戶量越來越大,則集群中某個group總會到達其極限,這時就得擴展集群的容量了。
FastDFS的擴容分為對group縱向擴容和橫向擴容
縱向擴容 指在同一個group組中增加服務器,實現數據冗余,數據備份。同一個group中最大容量取決於最小的storage的存儲容量。因此如果還想繼續使用此group,則需要對此group對應的所有服務器掛載同樣容量的磁盤,指定store_path1……,但這樣做的話成本相當的高,不推薦。
橫向擴容是通過集群實現,指新增一個group,增加整個FastDFS的存儲空間。fastDFS的存儲空間指的是所有group加起來的存儲容量。
下面就橫向擴容來做介紹
在 高可用高性能分布式文件系統FastDFS進階keepalived+nginx對多tracker進行高可用熱備 中已經講了如何配置集群的2個tracker和4個storage,分group1和group2,下面增加一組group3,也由2台服務器組成 group3:36、37。
安裝storage
按照 高可用高性能分布式文件系統FastDFS進階keepalived+nginx對多tracker進行高可用熱備 分別布署storage存儲節點。
安裝 nginx和fastdfs-nginx-module 到 storage存儲節36、37。
將/etc/fdfs/storage.conf里面的 group_name=group3 其它內容與其它storage存儲節一樣。
然后開啟這兩個storage,並加入開機啟動:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
chkconfig fdfs_storaged on
查看集群狀態,會顯示整體內容:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
安裝配置nginx
/opt/nginx/conf/nginx.conf 文件內容與其它結點一樣。
但修改/etc/fdfs/mod_fastdfs.conf
base_path=/data/fastdfs/storage tracker_server=192.168.80.30:22122 tracker_server=192.168.80.31:22122 storage_server_port=23000 group_name=group3 # 第一組storage的組名 url_have_group_name=true store_path0=/data/fastdfs/storage group_count=2 [group1] group_name=group1 storage_server_port=23000 store_path_count=1 store_path0=/data/fastdfs/storage [group2] group_name=group2 storage_server_port=23000 store_path_count=1 store_path0=/data/fastdfs/storage [group3] group_name=group3 storage_server_port=23000 store_path_count=1 store_path0=/data/fastdfs/storage
注意:
將存儲結點32到37的/etc/fdfs/mod_fastdfs.conf里面都加上
[group3] group_name=group3 storage_server_port=23000 store_path_count=1 store_path0=/data/fastdfs/storage
啟動Nginx,並加和自啟動
shell> /opt/nginx/sbin/nginx
上傳測試文件到group3上。
瀏覽器訪問測試時上傳的文件,應該都能正常訪問。
http://192.168.80.36:8888/group3/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg
http://192.168.80.37:8888/group3/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg
配置Nginx,設置tracker負載均衡以及緩存
vi /opt/nginx/conf/nginx.conf
添加以下內容
#設置 group3 的服務器 upstream fdfs_group3 { server 192.168.80.36:8888 weight=1 max_fails=2 fail_timeout=30s; server 192.168.80.37:8888 weight=1 max_fails=2 fail_timeout=30s; }
和
location /group3/M00 { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache; proxy_cache_valid 200 304 12h; proxy_cache_key $uri$is_args$args; proxy_pass http://fdfs_group3; expires 30d; }
再重啟nginx就行了。
從上面來看,給集群增加group,storage的安裝配置很簡單,主要是 nginx和fastdfs-nginx-module的配置比較麻煩,需要手動添加組,因此要注意以上要注意的地方不要漏掉了。