1. 程式人生 > >FastDFS--動態擴容

FastDFS--動態擴容

當用戶量越來越大,則叢集中某個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

  安裝 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的配置比較麻煩,需要手動新增組,因此要注意以上要注意的地方不要漏掉了。