#作者:閆乾苓
文章目錄
- 2.2.4 S3 Server(兼容 Amazon S3 的接口)
- 2.2.5 Weed(命令行工具)
- 3、裸金屬單機和集群部署
- 3.1 裸金屬單機部署
- 3.1.1安裝 SeaweedFS
- 3.1.2 以Master模式啟動
2.2.4 S3 Server(兼容 Amazon S3 的接口)
功能:提供與 Amazon S3 兼容的RESTful API,方便集成現有S3生態工具。
特點:基于 Filer 實現,將 S3 操作轉換為 SeaweedFS 原生操作。
工作原理:S3 Server接收來自客戶端的S3協議請求,將其轉換為對Filer和Volume Service的操作。這樣,用戶就可以像使用S3一樣使用SeaweedFS進行對象存儲。
2.2.5 Weed(命令行工具)
功能:管理集群的核心工具,支持以下操作:
- 啟動 Master、Volume Server、Filer 等組件(如 weed master、weed volume)。
- 文件上傳/下載(如 weed upload、weed download)。
- 系統狀態監控(如 weed shell)。
工作原理:通過調用SeaweedFS的不同API,“Weed”命令行工具能夠方便地與Master Service、Volume Service以及Filer進行交互,實現對集群的各種管理功能。
3、裸金屬單機和集群部署
3.1 裸金屬單機部署
3.1.1安裝 SeaweedFS
從https://github.com/seaweedfs/seaweedfs/releases下載最新的官方版本。
-rw-r–r–. 1 root root 44870713 5月 26 10:17 linux_amd64_full.tar.gz
解壓下載的文件。你只會找到一個可執行文件,在大多數系統上是“weed”,在 Windows 上是“weed.exe”。
建議為服務創建最小權限的專用系統賬戶,以遵循最小權限原則,避免因使用 root 用戶帶來過大的安全風險。
~# useradd weed
~# passwd weed
為 seaweedfs創建相關的目錄
~# mkdir /opt/seaweedfs/{sbin,master-data} -p
將文件“weed”放到/opt/seaweedfs/sbin/下, 并設置weed賬戶的權限
~# mv weed /opt/seaweedfs/sbin
~# chown -R weed:weed /opt/seaweedfs/
使用以下命令查看下載安裝是否正常。
~# /opt/seaweedfs/sbin/weed -h
3.1.2 以Master模式啟動
啟動方法:
~# su - weed
~$ ./weed master -mdir="." -ip=xxx.xxx.xxx.xxx
參數:
-
-mdir: 指定元數據存儲目錄
-
-logdir:日志輸出目錄
-
-ip: 指定服務啟動后網絡監聽端口綁定的IP,不指定默認會綁定127.0.0.1和自動探測到的IP。
-
-volumeSizeLimitMB: 這個參數控制單個卷的最大大小限制,默認值是默認值是 30GB (30*1000 MB),
推薦值: -
小文件場景:1000-4000 MB,便于快速備份和遷移
-
大文件場景:8000-30000 MB,減少卷的數量
-
混合場景:4000-8000 MB,平衡性能和管理復雜度
-
-defaultReplication: 默認復制策略
復制策略格式為 XYZ:
X:跨數據中心的副本數
Y:同數據中心不同機架的副本數
Z:同機架不同服務器的副本數
推薦值: -
單機測試:“000”(無復制)
-
生產環境:“001”(同機架1個副本)或 “010”(不同機架1個副本)
-
高可用環境:“100”(跨數據中心1個副本)
-
-garbageThreshold: 垃圾回收閾值,控制何時觸發垃圾回收和空間回收
默認值是 0.3,表示當刪除的數據占卷總大小的 30% 時觸發垃圾回收。
推薦值: -
頻繁刪除場景:0.2-0.3,及時回收空間
-
穩定存儲場景:0.4-0.5,減少回收頻率
-
性能優先場景:0.6-0.8,最小化回收影響
-
-metricsPort: 指定prometheus 監控指標的 HTTP 端口
推薦值: -
標準部署:9327(官方默認)
-
多實例部署:9327, 9328, 9329…(避免端口沖突)
-
企業環境:根據監控系統規范設置
簡單示例:
~$ /opt/seaweedfs/sbin/weed master -mdir="/opt/seaweedfs/master-data" -ip="192.168.61.71"
完整配置示例:
~$ /opt/seaweedfs/sbin/weed master -ip="192.168.61.71" -mdir="/opt/seaweedfs/master-data" -volumeSizeLimitMB=4000 -defaultReplication="001" -metricsPort=9327
查看監聽的端口
$ ss -ntlp |grep 9333
LISTEN 0 4096 127.0.0.1:9333 0.0.0.0:* users:(("weed",pid=2183,fd=9))
LISTEN 0 4096 192.168.61.71:9333 0.0.0.0:* users:(("weed",pid=2183,fd=8))
LISTEN 0 4096 127.0.0.1:19333 0.0.0.0:* users:(("weed",pid=2183,fd=12))
LISTEN 0 4096 192.168.61.71:19333 0.0.0.0:* users:(("weed",pid=2183,fd=11))
3.1.2.1以配置文件啟動master服務
Seaweedfs也支持使用配置文件啟動,可以將啟動命令中的配置參數合并寫入模板配置文件,方便管理。(但在測試3.9.2版本時,mdir,metricsPort 兩個參數在配置文件中不生效,只在啟動命令中作為參數使用時生效,我已經提交issue并給出修復建議,已被項目維護者采納,https://github.com/seaweedfs/seaweedfs/issues/6922)
使用以下命令創建模板配置文件:
/opt/seaweedfs/sbin/weed scaffold -config=master > /home/weed/.seaweedfs/master.toml
注意:/home/weed/.seaweedfs 目錄不存在,請先創建。
會生成的master.toml模板配置文件,下面的配置文件在模板配置文件的基礎上合并加入了其他基礎配置參數:
[master]
port = 9333
ip = "192.168.61.21"
mdir = "/data/seaweedfs/master/data"
volumeSizeLimitMB = 30000
defaultReplication = "000"
metricsHttpPort = 9327[master.replication]
treat_replication_as_minimums = false [master.maintenance]
scripts = """ lock ec.encode -fullPercent=95 -quietFor=1h ec.rebuild -force ec.balance -force volume.fix.replication unlock
"""
sleep_minutes = 17 [master.volume_growth]
copy_1 = 7
copy_2 = 6
copy_3 = 3
copy_other = 1
threshold = 0.9