1. 程式人生 > >FastDFS分布式存儲服務器安裝

FastDFS分布式存儲服務器安裝

amp 文件上傳和下載 china 內部 互聯網 col 文件上傳 listen .sh

分布式片服FastDFS

1. FastDFS

FastDFS 是用 c 語言編寫的一款開源的分布式文件系統。FastDFS 為互聯網量身定制, 充分考慮了冗余備份、負載均衡、線性擴容等機制,並註重高可用、高性能等指標,使用 FastDFS 很容易搭建一套高性能的文件服務器集群提供文件上傳、下載等服務。

FastDFS 架構包括 Tracker server 和 Storage server。客戶端請求 Tracker server 進行文 件上傳、下載,通過 Tracker server 調度最終由 Storage server 完成文件上傳和下載。

Tracker server 作用是負載均衡和調度,通過 Tracker server 在文件上傳時可以根據一些 策略找到 Storage server 提供文件上傳服務。可以將 tracker 稱為追蹤服務器或調度服務 器。

Storage server 作用是文件存儲,客戶端上傳的文件最終存儲在 Storage 服務器上, Storageserver 沒有實現自己的文件系統而是利用操作系統 的文件系統來管理文件。可以將 storage 稱為存儲服務器。

服務端兩個角色:

Tracker:管理集群,tracker 也可以實現集群。每個 tracker 節點地位平等。收集 Storage 集群的狀態。

Storage:實際保存文件 Storage 分為多個組,每個組之間保存的文件是不同的。每 個組內部可以有多個成員,組成員內部保存的內容是一樣的,組成員的地位是一致的,沒有 主從的概念。

2文件上傳流

客戶端上傳文件後存儲服務器將文件 ID 返回給客戶端,此文件 ID 用於以後訪問該文 件的索引信息。文件索引信息包括:組名,虛擬磁盤路徑,數據兩級目錄,文件名。

組名:文件上傳後所在的 storage 組名稱,在文件上傳成功後有 storage 服務器返回, 需要客戶端自行保存。

虛擬磁盤路徑:storage 配置的虛擬路徑,與磁盤選項 store_path*對應。如果配置了 store_path0 則是 M00,如果配置了 store_path1 則是 M01,以此類推。

數據兩級目錄:storage 服務器在每個虛擬磁盤路徑下創建的兩級目錄,用於存儲數據 文件。

文件名:與文件上傳時不同。是由存儲服務器根據特定信息生成,文件名包含:源存儲 服務器 IP 地址、文件創建時間戳、文件大小、隨機數和文件拓展名等信息。

3. 文件下載流程

技術分享圖片

4. FastDFS架構

技術分享圖片

5 FastDFS安裝

5.1 安裝fastdfs依賴包

1. 解壓縮libfastcommon-master.zip

2. 進入到libfastcommon-master的目錄中

3. 執行 ./make.sh

4. 執行 sudo ./make.sh install

5.2 安裝fastdfs

1. 解壓縮fastdfs-master.zip
2. 進入到 fastdfs-master目錄中
3. 執行 ./make.sh
4. 執行 sudo ./make.sh install

5.3 配置跟蹤服務tracker

1. sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

2. 在/home/python/目錄中創建目 fastdfs/tracker

mkdir –p /home/python/fastdfs/tracker

3. 編輯/etc/fdfs/tracker.conf配置修改文件

sudo vim /etc/fdfs/tracker.conf

base_path=/home/python/fastdfs/tracker

5.4 配置存儲服務storage

1. sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

2. 在/home/python/fastdfs/ 目錄中創建目錄 storage

mkdir –p /home/python/fastdfs/storage

3. 編輯/etc/fdfs/storage.conf配置文件 sudo vim /etc/fdfs/storage.conf

修改內容:

base_path=/home/python/fastdfs/storage

store_path0=/home/python/fastdfs/storage

tracker_server=自己ubuntu虛擬機的ip地址:22122

5.5 啟動tracker 和 storage

sudo service fdfs_trackerd start

sudo service fdfs_storaged start

5.6 測試是否安裝成功

1. sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

2. 編輯/etc/fdfs/client.con修改f配置文件內容

sudo vim /etc/fdfs/client.conf

base_path=/home/python/fastdfs/tracker

tracker_server=自己ubuntu虛擬機的ip地址:22122

3. 上傳文件測試:

fdfs_upload_file /etc/fdfs/client.conf 要上傳的圖片文件

https://my.oschina.net/u/2484581/blog/1942124

如果返回類似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg的文件id則說明文件上傳成功

5.7 安裝nginxfastdfs-nginx-module

獲取文件的時候就要借助nginx服務器

1. 解壓縮 nginx-1.8.1.tar.gz

2. 解壓縮 fastdfs-nginx-module-master.zip

3. 進入nginx-1.8.1目錄中

4. 執行

sudo ./configure --prefix=/usr/local/nginx/ --add-module=fastdfs-nginx-module-master解壓後的目錄的絕對路徑/src

sudo ./make

sudo ./make install
5. sudo cp /home/python/桌面/fastdfs-nginx-module-master/src

mod_fastdfs.conf  /etc/fdfs/mod_fastdfs.conf
6. sudo vim /etc/fdfs/mod_fastdfs.conf

修改內容:

connect_timeout=10

tracker_server=自己ubuntu虛擬機的ip地址:22122

url_have_group_name=true

store_path0=/home/python/fastdfs/storage

  

7. sudo cp 解壓縮的fastdfs-master目錄中的http.conf /etc/fdfs/http.conf
8. sudo cp 解壓縮的fastdfs-master目錄中的mime.types /etc/fdfs/mime.types
9.sudo vim /usr/local/nginx/conf/nginx.conf

在http部分中添加配置信息如下:

server {

            listen       8888;

            server_name  localhost;

            location ~/group[0-9]/ {

                ngx_fastdfs_module;

            }

            error_page   500 502 503 504  /50x.html;

            location = /50x.html {

            root   html;

            }

        }
10. 啟動nginx

sudo /usr/local/nginx/sbin/nginx

6. 使用python客戶端上傳測試

1. workon django_py3

2. 進入fdfs_client-py-master.zip所在目錄

3. pip install fdfs_client-py-master.zip

4.

>>> from fdfs_client.client import Fdfs_client

>>> client = Fdfs_client(/etc/fdfs/client.conf)

>>> ret = client.upload_by_filename(test)

>>> ret

{Group name:group1,Status:Upload successed., Remote file_id:group1/M00/00/00/

wKjzh0_xaR63RExnAAAaDqbNk5E1398.py,Uploaded size:6.0KB,Local file name:test
, Storage IP:192.168.243.133}

FastDFS分布式存儲服務器安裝