基於滴滴雲搭 SeaweedFS 儲存系統
簡介
SeaweedFS 是一個簡單的、高擴充套件性的分散式檔案系統,是 Fb 的 Haystack 開源版本,相對於傳統的分散式檔案系統,它在應對小物件儲存場景中具有巨大的優勢。
SeaweedFS 中每個檔案的元資訊只有 40 個位元組,大大縮減了元資訊的儲存空間。在磁碟讀取內容時也能夠在 O(1) 的複雜度內完成。
系統搭建
環境
名稱 | 描述 |
---|---|
作業系統 | CentOS Linux release 7.4.1708 |
SeaweedFS | 1.25 |
SeaweedFS 架構描述
在 SeaweedFS 在執行中分為兩種角色:Master Server 和普通 Volume Server。
- Master Server:用於管理普通 Volume Server, master會儲存叢集中 Volume Server 的狀態,並且會負責接收 Client 的請求,並將具體的 URL 地址返回給客戶端,master 之間透過 Raft 協議來保證一致性,在主節點崩潰的情況下會自動在從節點中選舉中新的 master。
- Volume Server:管理具體的儲存目錄,其工作包括寫入、查詢、刪除資料,並會進行資料的壓縮工作。
架構圖如下:
搭建框架圖
在 的單機中搭建 SeaweedFS,框架圖如下:
儲存系統由一個 master 程式和三個 volume 組成。
搭建流程
啟動 master
./weed -port=9333 master
啟動一個 master,並將其埠設定為 9333。
啟動 Volume Server
- 新建三個用於儲存資料的目錄,分別為 data1、data2、data3
-
啟動 Volume Server:
./weed volume -dir="/home/dc2-user/seaweedfs/data1" -max=5 -mserver="localhost:9333" -port=8011 & ./weed volume -dir="/home/dc2-user/seaweedfs/data2" -max=5 -mserver="localhost:9333" -port=8012 & ./weed volume -dir="/home/dc2-user/seaweedfs/data2" -max=5 -mserver="localhost:9333" -port=8013 &
上傳一個檔案
-
首先向 master 請求獲得一個 fid:
curl
-
本次實驗獲得資訊如下:
{"fid":"1,0148ac185f","url":"127.0.0.1:8012","publicUrl":"127.0.0.1:8012","count":1
-
上傳檔案
根據 master 返回的 fid 和 URL 地址,上傳檔案到 SeaweedFS 中:
curl -F file=@/home/dc2-user/rpms/test.rpm
-
上傳的 URL 根據 fid 和 URL 拼湊得到。
-
刪除檔案
根據 fid 刪除檔案:
curl -X DELETE
-
讀取檔案
需要根據儲存的 fid 來讀取檔案,fid 中逗號之前的數字為 volume id,本次實驗的 fid:7,02e42e5935可以得出volume id為7
向 master 請求,獲取特定 volume id 的 IP 地址:
curl
-
返回的資料如下:
{"volumeId":"7","locations":[{"url":"127.0.0.1:8011","publicUrl":"127.0.0.1:8011"}]}
-
可以得到 URL 為 127.0.0.1,使用者可以根據 來獲取這個檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2637586/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 滴滴基於Clickhouse構建新一代日誌儲存系統
- 基於滴滴雲搭建 Lustre
- 基於滴滴雲搭建微信小程式微信小程式
- 滴滴Ceph分散式儲存系統優化之鎖優化分散式優化
- juicefs:一個基於Redis和雲物件儲存的分散式POSIX檔案系統UIRedis物件分散式
- 如何用 Minio SDK 訪問滴滴雲物件儲存物件
- 基於滴滴雲部署 Elasticsearch + Kibana + FluentdElasticsearch
- 基於滴滴雲安裝 Docker 並上傳映象到滴滴雲 Docker 倉庫Docker
- 儲存系統
- 滴滴Ceph分散式儲存系統最佳化之鎖最佳化分散式
- 基於Raft的分散式MySQL Binlog儲存系統開源Raft分散式MySql
- 基於滴滴雲搭建 Ceph 開發環境開發環境
- 內部專家親自揭秘!滴滴物件儲存系統的演進之路物件
- 基於SOA 的儲存管理
- 儲存系統實現-構建自己的儲存系統(一)
- 基於內容定址的分散式儲存系統IPFS,你怎麼看?分散式
- 基於滴滴雲伺服器搭建 Consul 叢集伺服器
- 基於雲的MES系統軟體
- 系統 儲存過程儲存過程
- 浪潮儲存基於智慧運維技術,加速儲存自治運維
- 雲知聲: 基於 JuiceFS 的超算平臺儲存實踐UI
- 微信小程式基於騰訊雲物件儲存的圖片上傳微信小程式物件
- 儲存系統設計指南之儲存分類
- ARM體系中儲存系統
- 基於滴滴雲 DC2 搭建 VPP 應用例項
- 基於滴滴雲DC2+Nginx搭建負載均衡方案Nginx負載
- 基於滴滴雲搭建輕量文件網站生成工具 Docsify網站
- 滴滴雲GPU雲伺服器Ubuntu系統安裝Ubuntu桌面GPU伺服器Ubuntu
- 基於反熔絲FPGA、QSPI FLASH的高可靠程式儲存、啟動控制系統FPGA
- 儲存系統-cache-磁碟
- kunbernetes-基於NFS的儲存NFS
- 爬蟲資料儲存--基於MonogoDB爬蟲MonoGo
- 基於滴滴雲的網路協議棧效能分析工具使用協議
- 基於滴滴雲的棋牌遊戲服務端架構設計遊戲服務端架構
- 基於滴滴雲搭建安全穩定的 Memcached 伺服器伺服器
- 基於滴滴雲 CentOS 伺服器搭建 Nexus Maven 私庫CentOS伺服器Maven
- 基於滴滴雲虛擬機器的TensorFlow搭建與使用虛擬機
- 系統統計資訊的儲存位置