fastdfs是一個開源的分散式檔案系統,功能包括檔案儲存、檔案同步、檔案存取等,解決了大容量儲存和負載均衡的問題;docker是一個開源的應用容器引擎,可以打包應用以及依賴包到一個可移植的映象中。
本教學操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。
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 分為多個組,每個組之間儲存的檔案是不同的。每 個組內部可以有多個成員,組成員內部儲存的內容是一樣的,組成員的地位是一致的,沒有 主從的概念。
上傳檔案流程
使用者端上傳檔案後儲存伺服器將檔案 ID 返回給使用者端,此檔案 ID 用於以後存取該文 件的索引資訊。檔案索引資訊包括:組名,虛擬磁碟路徑,資料兩級目錄,檔名。
檔名
group1/M00/00/00/wKi9hVz-GUKABj4gAAOTipWhnKM434.jpg
組名:檔案上傳後所在的 storage 組名稱,在檔案上傳成功後有 storage 伺服器返回, 需要使用者端自行儲存。
虛擬磁碟路徑:storage 設定的虛擬路徑,與磁碟選項 store_path*對應。如果設定了 store_path0 則是 M00,如果設定了 store_path1 則是 M01,以此類推。
資料兩級目錄:storage 伺服器在每個虛擬磁碟路徑下建立的兩級目錄,用於儲存資料 檔案。
檔名:與檔案上傳時不同。是由儲存伺服器根據特定資訊生成,檔名包含:源儲存 伺服器 IP 地址、檔案建立時間戳、檔案大小、亂數和檔案拓展名等資訊。
簡易FastDFS
4.1. 獲取映象
可以利用已有的FastDFS Docker映象來執行FastDFS。
獲取映象可以通過下載
docker image pull delron/fastdfs
也可是直接使用已有的映象備份檔案
docker load -i 檔案路徑/fastdfs_docker.tar
載入好映象後,就可以開啟執行FastDFS的tracker和storage了。
4.2. 執行tracker
執行如下命令開啟tracker 服務
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
我們將fastDFS tracker執行目錄對映到本機的 /var/fdfs/tracker目錄中。
執行如下命令檢視tracker是否執行起來
docker container ls
如果想停止tracker服務,可以執行如下命令
docker container stop tracker
停止後,重新執行tracker,可以執行如下命令
docker container start tracker
4.3. 執行storage
執行如下命令開啟storage服務
docker run -dti --network=host --name storage -e TRACKER_SERVER=10.211.55.5:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
TRACKER_SERVER=本機的ip地址:22122, 本機ip地址不要使用127.0.0.1
我們將fastDFS storage執行目錄對映到本機的/var/fdfs/storage目錄中
執行如下命令檢視storage是否執行起來
docker container ls
如果想停止storage服務,可以執行如下命令
docker container stop storage
停止後,重新執行storage,可以執行如下命令
docker container start storage
注意:如果無法重新執行,可以刪除/var/fdfs/storage/data目錄下的fdfs_storaged.pid 檔案,然後重新執行storage。
推薦學習:《》
以上就是什麼是fastdfs與docker的詳細內容,更多請關注TW511.COM其它相關文章!