SeaweedFS 单节点搭建

SeaweedFS 是一款开源的、可扩展的、高性能的分布式文件系统,它由 Chris Lu 创建,设计目标是简单、快速、可靠,并特别针对云环境和现代大规模数据存储需求进行了优化,主要用于存储和管理海量的图片、日志等小文件。

[TOC]

二进制安装

单机单盘配置 - 极简版

  • 如下简化版、自定义、二进制安装,适用于:Ubuntu 18.04+、CentOS 7+、其他 Linux 发行版
#.建议禁用防火墙
/usr/sbin/iptables -F
systemctl stop firewalld.service

#.开始下载
curl -L http://iso.sqlfans.cn/linux/seaweedfs.4.04 -o /usr/bin/weed
chmod +x /usr/bin/weed

#.依次启动Master/Volume/Filer
mkdir -p /data/seaweedfs_8888/{data,logs,volume}
nohup weed master -port=9333 -mdir=/data/seaweedfs_8888/data > /data/seaweedfs_8888/logs/master.log 2>&1 &
nohup weed volume -port=10001 -dir=/data/seaweedfs_8888/volume -mserver=localhost:9333 -max=1000 > /data/seaweedfs_8888/logs/volume.log 2>&1 &
nohup weed filer -port=8888 -master=localhost:9333 > /data/seaweedfs_8888/logs/filer.log 2>&1 &

#.启动带认证的Admin服务
nohup weed admin -port=23646 -adminUser=weedadmin -adminPassword=Admin_147 -masters=localhost:9333 > /data/seaweedfs_8888/logs/admin.log 2>&1 &

#.确认端口已监听
netstat -lnpt | grep -v "127." | egrep "(:9333|:10001|:8888|:23646)"
  • 登录 Admin 控制台:http://{ip}:23646,账密:weedadmin / Admin_147
Master管理界面:http://{ip}:9333
volume管理界面:http://{ip}:10001/ui/index.html
Filer管理界面:http://{ip}:8888

单机单盘配置 - 服务版

  • 下载文件
#.建议禁用防火墙
/usr/sbin/iptables -F
systemctl stop firewalld.service

#.开始下载
curl -L http://iso.sqlfans.cn/linux/seaweedfs.4.04 -o /usr/bin/weed
chmod +x /usr/bin/weed

#.创建配置目录
mkdir -p /data/seaweedfs_9000/{data,logs,volume}

#.配置参数
WEED_BIN_FILE="/usr/bin/weed"
WEED_MASTER_OPTION="-port=9333 -mdir=/data/seaweedfs_8888/data"
WEED_VOLUME_OPTION="-port=10001 -dir=/data/seaweedfs_8888/volume -mserver=localhost:9333 -max=1000"
WEED_FILER_OPTION="-port=8888 -master=localhost:9333"
WEED_ADMIN_OPTION="-port=23646 -adminUser=weedadmin -adminPassword=Admin_147 -masters=localhost:9333"
WEED_LOG_PATH="/data/seaweedfs_8888/logs"
  • 创建4个服务的配置文件
#.Master服务配置文件
cat <<EOF > /usr/lib/systemd/system/seaweedfs-master.service
[Unit]
Description=SeaweedFS Master
After=network.target
Wants=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=$WEED_BIN_FILE master $WEED_MASTER_OPTION
StandardOutput=append:$WEED_LOG_PATH/master.log
StandardError=append:$WEED_LOG_PATH/master.log
Restart=on-failure
RestartSec=10
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target
EOF

#.Volume服务配置文件
cat <<EOF > /usr/lib/systemd/system/seaweedfs-volume.service
[Unit]
Description=SeaweedFS Volume
After=network.target
Wants=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=$WEED_BIN_FILE volume $WEED_VOLUME_OPTION
StandardOutput=append:$WEED_LOG_PATH/volume.log
StandardError=append:$WEED_LOG_PATH/volume.log
Restart=on-failure
RestartSec=10
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target
EOF

#.Filer服务配置文件
cat <<EOF > /usr/lib/systemd/system/seaweedfs-filer.service
[Unit]
Description=SeaweedFS Filer
After=network.target
Wants=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=$WEED_BIN_FILE filer $WEED_FILER_OPTION
StandardOutput=append:$WEED_LOG_PATH/filer.log
StandardError=append:$WEED_LOG_PATH/filer.log
Restart=on-failure
RestartSec=10
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target
EOF

#.Admin服务配置文件
cat <<EOF > /usr/lib/systemd/system/seaweedfs-admin.service
[Unit]
Description=SeaweedFS Admin
After=network.target
Wants=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=$WEED_BIN_FILE admin $WEED_ADMIN_OPTION
StandardOutput=append:$WEED_LOG_PATH/admin.log
StandardError=append:$WEED_LOG_PATH/admin.log
Restart=on-failure
RestartSec=10
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target
EOF
  • 启用并启动服务
#.重新加载systemd配置
systemctl daemon-reload

#.设置开机自启
systemctl enable seaweedfs-master
systemctl enable seaweedfs-volume
systemctl enable seaweedfs-filer
systemctl enable seaweedfs-admin

#.立即启动服务
systemctl start seaweedfs-master
systemctl start seaweedfs-volume
systemctl start seaweedfs-filer
systemctl start seaweedfs-admin

#.确认端口已监听
netstat -lnpt | grep -v "127." | egrep "(:9333|:10001|:8888|:23646)"
  • 登录 Admin 控制台:http://{ip}:23646,账密:weedadmin / Admin_147
#.其他管理界面
Master管理界面:http://{ip}:9333
volume管理界面:http://{ip}:10001/ui/index.html
Filer管理界面:http://{ip}:8888

单机多盘配置

  • 如下简化版、自定义、二进制安装,适用于:Ubuntu 18.04+、CentOS 7+、其他 Linux 发行版

注:示例 admin 控制台端口为 23646,2块磁盘挂载目录为 /data/data1、/data/data2

#.建议禁用防火墙
/usr/sbin/iptables -F
systemctl stop firewalld.service

#.开始下载
curl -L http://iso.sqlfans.cn/linux/seaweedfs.4.04 -o /usr/bin/weed
chmod +x /usr/bin/weed

#.挂载数据目录,确保这些路径位于不同的物理磁盘上
mkdir -p /data/{data1,data2}
mkdir -p /data/seaweedfs_8888/{data,logs}

#.依次启动Master/Volume/Filer,注意volume服务 -dir 及 -max 参数
nohup weed master -port=9333 -mdir=/data/seaweedfs_8888/data > /data/seaweedfs_8888/logs/master.log 2>&1 &
nohup weed volume -port=10001 -dir=/data/data1,/data/data2 -max=0,0 -mserver=localhost:9333 -max=1000 > /data/seaweedfs_8888/logs/volume.log 2>&1 &
nohup weed filer -port=8888 -master=localhost:9333 > /data/seaweedfs_8888/logs/filer.log 2>&1 &

#.启动带认证的Admin服务
nohup weed admin -port=23646 -adminUser=weedadmin -adminPassword=Admin_147 -masters=localhost:9333 > /data/seaweedfs_8888/logs/admin.log 2>&1 &

#.确认端口已监听
netstat -lnpt | grep -v "127." | egrep "(:9333|:10001|:8888|:23646)"

docker 安装

  • 使用 Docker 启动 SeaweedFS 非常方便,其二进制包仅107MB(MinIO为320MB)。先启动包含 Master、Volume 和 S3 网关的完整服务,再启动一个独立的 weed admin 容器,专门负责提供带密码保护的管理界面。
#.先启动核心存储服务
docker run -idt --name seaweedfs_core -p 9333:9333 -p 8080:8080 -p 8888:8888 -p 8333:8333 chrislusf/seaweedfs server -s3 -filer

#.再启动带认证的Admin服务
docker run -idt --name seaweedfs_admin -p 23646:23646 --link seaweedfs_core:master chrislusf/seaweedfs admin -masters=master:9333 -adminUser=weedadmin -adminPassword=Admin_147

如何彻底卸载 seaweedfs

  • 针对二进制安装的 seaweedfs 服务,以下是卸载步骤:
ps -ef | grep -v grep | grep weed | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1
rm -rf /data/seaweedfs_8888
netstat -lnpt | grep -v "127." | egrep "(:9333|:10001|:8888|:23646)"
Copyright © www.sqlfans.cn 2021 - 2026 All Right Reserved更新时间: 2026-02-18 17:44:52

results matching ""

    No results matching ""