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。
推薦學習:《docker影片教學》
以上是什麼是fastdfs與docker的詳細內容。更多資訊請關注PHP中文網其他相關文章!