Seaweedfs安装配置使用及mount挂载

分布式文件存储SeaweedFS:数据存储的设计与实现前言 为了满足业务的需求,信也科技基于SeaweedFS搭建了分布式文件存储服务,目前已在生产环境落地,陆续接入了部分业务场景,积累了一些经验。 阅读详情
AI摘要

本文详细介绍SeaweedFS分布式存储系统的安装配置流程,包括Master、Volume服务的启动及Filer节点的应用,同时探讨了其相对于传统文件服务器的优势。

前言

seaweedfs是一个非常优秀的由 golang 开发的分布式存储开源项目。它是用来存储文件的系统,并且与使用的语言无关,使得文件储存在云端变得非常方便,很适合做图片服务器,性能很好,安装操作都很简单,并且可兼容挂载提供路径访问的方式,可以较为便捷的将nginx+nfs此类的文件服务器转换成nginx+seweedfs并提供api接口并不影响原有访问url的模式

在逻辑上Seaweedfs的几个概念:

Node 系统抽象的节点,抽象为DataCenter、Rack、DataNode
DataCenter 数据中心,对应现实中的不同机房
Rack 机架,对应现实中的机柜
Datanode 存储节点,用于管理、存储逻辑卷
Volume 逻辑卷,存储的逻辑结构,逻辑卷下存储Needle
Needle 逻辑卷中的Object,对应存储的文件
Collection 文件集,可以分布在多个逻辑卷上

首先我们下载weed

在https://github.com/chrislusf/seaweedfs/releases/我们可以看到已有版本及历史,写此文档时最新的长期支持版本为1.34,我们下载解压后可以看见一个可执行文件weed,因为是golang编译好的,我们可以直接使用它

https://github.com/chrislusf/seaweedfs/releases/download/2.82/linux_arm64.tar.gz
tar -zxf linux_amd64.tar.gz
./weed -h                # 查看帮助

在这里插入图片描述

一、启动服务

SeaweedFS服务端启动顺序:先启动master,再启动卷volume

master的作用仅仅是管理文件卷与服务器磁盘的映射,连文件的元数据也不管理,因此不需要额外的磁盘存储,性能上也是极好的

1、启动master

[root@seaweedfs-bj-zw-vm1 ~]# /root/weed master -mdir=/data/seaweedfs -port=9333 -peers=172.16.100.107:9333,172.16.100.111:9333,172.16.100.106:9333 -defaultReplication="000" -ip="172.16.100.107" -garbageThreshold=0.3 -maxCpu=0 -pulseSeconds=5 -ip.bind=0.0.0.0 -volumeSizeLimitMB=30000 >>/root/master.out &	
[root@seaweedfs-bj-zw-vm1 ~]# tree /data/                # 这个目录里其实没啥东西
 /data/
 └── seaweedfs
     ├── conf
     ├── log
     └── snapshot
[root@seaweedfs-bj-zw-vm1 ~]# netstat -tpln|grep 9333
 tcp6       0      0 :::19333                :::*                    LISTEN      770/weed            
 tcp6       0      0 :::9333                 :::*                    LISTEN      770/weed            
#这样我们一个master节点就起来,当然如果你需要高可用的时候要将另外的master节点也起来,master节点是奇数,他们之间会选举leader,剩下的成为从节点以备不时之需,我们的参数-peers就是指定所有的master节点ip及port,如果是测试只是用单机那就不用加这个参数了
参数

-cpuprofile         String Cpu profile输出文件
-defaultReplication     String 如果没有指定默认备份类型。默认”000”
-garbageThreshold    String 清空和回收空间的阈值(默认”0.3”)
-ip             String Master 服务器ip地址(默认”localhost”)
-ip.bind          String 需要绑定的ip地址(默认”0.0.0.0”)
-maxCpu          Int   最大cpu数量。0表示所有可用的cpu
-mdir            String 存储元数据的数据目录(默认”/tmp”)
-memprofile        String 内存配置文件输出文件
-peers          String 代表服务器集群,逗号分隔所有主节点ip:端口,示例127.0.0.1:9093,127.0.0.1:9094
-port            Int   http监听端口(默认9333)
-pulseSeconds       Int 心跳检测的时间间隔单位为秒(默认5)
-secure.secret      String 加密json web token方法
-volumePreallocate    无   为volumes预先分配磁盘空间
-volumeSizeLimitMB    Uint Master停止指向过量的volumes写的限定(默认30000)
-whiteList         String 逗号分隔具有写权限的Ip地址。如果是空的,没有限制。即白名单

defaultReplication说明
000 不备份, 只有一份数据
001 在相同的rackj里备份一份数据
010 在相同数据中心内不同的rack间备份一份数据
100 在不同的数据中心备份一份数据
200 在两个不同的数据中心各复制2次
110 在不同的rack备份一份数据, 在不同的数据中心备份一次
如果数据备份类型是 xyz形式  各自的意义
x   在别的数据中心备份的份数
y   不相同数据中心不同的racks备份的份数
z   在别的服务器相同的rack的备份份数

2、挂载卷volume

volume很明显就是存储数据的真实节点了,它保留了文件的元数据及文件,通过卷的模式将磁盘分割,每个卷都有一个索引文件,每个元数据只有40字节,读取时间O(1),效率极高,速度极快

首先我们先将底层磁盘挂载上,我是2个1T的磁盘(测试可不挂载)

  [root@seaweedfs-bj-zw-vm5 ~]# mkdir -p /data/seaweedfs/volume{1..2}
  [root@seaweedfs-bj-zw-vm5 ~]# mount /dev/vdb /data/seaweedfs/volume1
  [root@seaweedfs-bj-zw-vm5 ~]# mount /dev/vdc /data/seaweedfs/volume2
  [root@seaweedfs-bj-zw-vm5 ~]# df -h
   文件系统        容量  已用  可用 已用% 挂载点
   /dev/vda1        40G  2.3G   38G    6% /
   devtmpfs        1.9G     0  1.9G    0% /dev
   tmpfs           1.9G   12K  1.9G    1% /dev/shm
   tmpfs           1.9G   17M  1.9G    1% /run
   tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
   tmpfs           379M     0  379M    0% /run/user/0
   /dev/vdb        1.0T  369G  656G   36% /data/seaweedfs/volume1
   /dev/vdc        1.0T  185G  840G   18% /data/seaweedfs/volume2
/root/weed volume -dir=/data/seaweedfs/volume1 -mserver=172.16.100.107:9333,172.16.100.111:9333,172.16.100.106:9333 -ip="172.16.100.136" -max=100 -dataCenter=zw -rack=openstack-bj-zw-bgp5 -idleTimeout=30 -images.fix.orientation=true -ip.bind=0.0.0.0 -maxCpu=0 -port=8081 -read.redirect=true >>/root/volume1.out &
/root/weed volume -dir=/data/seaweedfs/volume2 -mserver=172.16.100.107:9333,172.16.100.111:9333,172.16.100.106:9333 -ip="172.16.100.136" -max=100 -dataCenter=zw -rack=openstack-bj-zw-bgp5 -idleTimeout=30 -images.fix.orientation=true -ip.bind=0.0.0.0 -maxCpu=0 -port=8082 -read.redirect=true >>/root/volume2.out &
参数:

参数            类型       说明-cpuprofile       string     Cpu profile输出文件
-dataCenter       string     当前volume服务的数据中心名称
-dir           string     存储数据文件的目录dir[,dir]…(默认”/tmp”)
-idleTimeout       Int       连接空闲时间秒数(默认30)
-images.fix.orientation (true/false) 上传时调整jpg方向
-index          string     选择内存~性能平衡模式[memory|leveldb|boltdb|btree]。(默认”memory”)
-ip            string     Ip地址或服务器名称
-ip.bind         string     需要绑定的ip地址(默认”0.0.0.0”)
-max           string     Volumes的最大值,count[,count]…(默认”7”)
-maxCpu          Int       最大cpu数量。0表示所有可用的cpu
-memprofile       string     内存配置文件输出文件
-mserver         string     用逗号分隔的master服务器列表(默认”localhost:9333”)
-port           Int       http监听端口号(默认8080)
-port.public       Int       端口对外开放
-publicUrl       string     公开访问地址
-pulseSeconds       Int      心跳之间的秒数,必须小于或等于master 服务器设置(默认5)
-rack           string     当前volume服务器的rack 名称
-read.redirect      (true/false)   重新定向转移或非本地 volumes
-whiteList       string    逗号分隔具有写权限的Ip地址。如果是空的,没有限制。

du -sh /data/seaweedfs/volume1/*

30G /data/seaweedfs/volume1/23.dat
4.9M /data/seaweedfs/volume1/23.idx
30G /data/seaweedfs/volume1/29.dat
5.5M /data/seaweedfs/volume1/29.idx
30G /data/seaweedfs/volume1/33.dat
5.5M /data/seaweedfs/volume1/33.idx
30G /data/seaweedfs/volume1/34.dat
5.5M /data/seaweedfs/volume1/34.idx
30G /data/seaweedfs/volume1/35.dat
5.5M /data/seaweedfs/volume1/35.idx
30G /data/seaweedfs/volume1/36.dat
4.8M /data/seaweedfs/volume1/36.idx
30G /data/seaweedfs/volume1/41.dat
4.9M /data/seaweedfs/volume1/41.idx
30G /data/seaweedfs/volume1/42.dat
4.9M /data/seaweedfs/volume1/42.idx
30G /data/seaweedfs/volume1/43.dat
3.0M /data/seaweedfs/volume1/43.idx
30G /data/seaweedfs/volume1/50.dat
3.5M /data/seaweedfs/volume1/50.idx
30G /data/seaweedfs/volume1/51.dat
3.5M /data/seaweedfs/volume1/51.idx
30G /data/seaweedfs/volume1/53.dat
3.5M /data/seaweedfs/volume1/53.idx
8.1G /data/seaweedfs/volume1/58.dat
2.0M /data/seaweedfs/volume1/58.idx
7.9G /data/seaweedfs/volume1/62.dat
2.0M /data/seaweedfs/volume1/62.idx
我们可以看错,每个索引文件最大5M,数据文件30G,磁盘被分割成了很多的卷(idx+dat)

访问:

http://IP:9333
在这里插入图片描述

测试

现在的模式是master+ volume这种标准模式

[root@seaweedfs-bj-zw-vm5 ~]# curl http://172.16.100.107:9333/dir/assign
{"fid":"3,57f4e1898d66","url":"172.16.100.136:8082","publicUrl":"172.16. 100.136:8082","count":1}
[root@seaweedfs-bj-zw-vm5 ~]# curl -F file=@/root/9ee6c1c5d88b0468af1a3280865a6b7a.png http://172.16.100.136:8082/3,57f4e1898d66
[root@seaweedfs-bj-zw-vm5 ~]# wget 172.16.100.136:8082/3,57f4e1898d66
[root@seaweedfs-bj-zw-vm5 ~]# ls                # 新下载下来的资源会被命名为fid
3,57f4e1898d66
[root@seaweedfs-bj-zw-vm5 ~]# curl -X DELETE 172.16.100.136:8082/3,57f4e1898d66
我们可以看出流程是,找master节点申请ip:port及fid,自己拼接ip:port/fid,然后post上传,此时该资源到服务器上了,我们可以对ip:port/fid进行get等请求
这里面有2点比较麻烦

1.    要先申请,再拼接,再上传
2.    要记录返回的ip:port/fid才能对该资源进行以后的操作,也就是3个信息
相对应的解决方式也是有的
1.    curl -F file=@/root/9ee6c1c5d88b0468af1a3280865a6b7a.png http://172.16.100.107:9333/submit这样会直接上传(申请fid+上传)
2.    wget 172.16.100.107:9333/3,57f4e1898d66我们就直接访问master节点ip:port/fid,这样也是可以操作资源的,因为内部默认是开启了内部代理功能,我们只需要记录fid就可以了

Seaweedfs基本操作命令: https://blog.youkuaiyun.com/ichen820/article/details/122083745

它的缺点主要还是来源于规模带来的一些问题

1.不是接口形式,所以项目需要直接操作磁盘,本身只支持get请求,其他请求需要代码来协助完成
2.权限问题,因为项目必须能操作磁盘,那么该目录的权限需要管理以及相关的安全问题
3.容量问题,随着时间的推移,我们的大磁盘需要扩容,可是每次扩容前我们需要备份(以防万一),而这个磁盘已经几个T了,备份时间过长
4.高可用问题,nfs的底层磁盘应该是某台机器组成的raid,那么这台机器挂了怎么办,当然有人说有备机,但是nfs挂载自动切换还有有点慢
5.所有需要落盘操作的机器都必须要挂载nfs,nfs的挂载连接数,磁盘io及网络开销随着挂载机器增多也在增大
6.Nfs是文件存储,随着文件的增多,文件的索引层级也会越来越深影响速度
7.逼格不够,哈哈哈哈

解决方式

我们自然是使用本次的seaweedfs作为图片服务器了,这样就可以对应解决我们上述的问题

1.默认提供restful api,不需要代码层级再度实现
2.有了接口走的是http协议,只需要网络通就可以,不需要到处挂载文件系统了
3.容量不足了我们加机器、加磁盘进集群即可
4.本身实现了多种备份方式,可根据实际情况来选择
5.本质还是对象存储,索引文件5M,操作速度极快

引出的问题

1.现有阶段的代码都是以url/文件路径,这种模式进行操作的,而seaweedfs是url/fid,改动量太大,不好实现
2.因为是restful api,所以大家都能直接delete,很危险……

解决方式

1.使用filer功能
2.对内网提供不同的域名,对外域名在Nginx上只允许get请求

filer节点

filer节点是可以在任何地方执行的,它再次打开了一个http服务,并且也对外提供restful api,只是我们可以使用url/文件路径的模式进行访问了(之前的url/fid依然生效),filer节点提供的http服务可以如同一个文件系统一样被挂载,在挂载点,我们可以直观的看见目录层级(也是对象),及操作各个文件

[root@seaweedfs-bj-zw-vm1 ~]# /root/weed filer -master=172.16.100.111:9333,172.16.100.107:9333,172.16.100.106:9333 -ip=172.16.100.107 -defaultReplicaPlacement='000' -disableDirListing >>/root/filer.out &
[root@seaweedfs-bj-zw-vm1 ~]# /root/weed mount -filer=172.16.100.107:8888 -dir=/mnt >>/dev/null &
[root@seaweedfs-bj-zw-vm1 ~]# netstat -tpln|grep 8888
tcp        0      0 172.16.100.107:8888     0.0.0.0:*               LISTEN      771/weed
tcp6       0      0 :::18888                :::*                    LISTEN      771/weed
[root@seaweedfs-bj-zw-vm1 ~]# df -h|grep mnt
SeaweedFS                  1.3T  1.2T   48G   97% /mnt

访问的流程其实还是,以路径模式操作—根据路径获取fid—以fid模式操作----seaweedfs,也就是路径跟fid之间filer节点帮你做了一次转换
在这里插入图片描述

在默认情况下这种对应关系是存放在内存当中,实际情况下,我们需要安装一个记录关系的服务,以下是官方推荐的服务及其功能,我们果断使用了熟悉的redis,redis的记录也很简单,就是最简单的string的kv对应关系,key是路径,value是fid(转义过的),当然其他存储的关系大概也能想来,数据库类的自然就是有一个表(这个表的sql在配置文件里都有),然后就是两个记录的字段即可

在这里插入图片描述

[root@seaweedfs-bj-zw-vm1 ~]# mkdir -p /etc/seaweedfs
[root@seaweedfs-bj-zw-vm1 ~]# cd /etc/seaweedfs
[root@seaweedfs-bj-zw-vm1 seaweedfs]# /root/weed scaffold filer -output=" filer.toml "
[root@seaweedfs-bj-zw-vm1 ~]# vim /etc/seaweedfs/filer.toml        # 把redis的信息填好,如果使用其他后端,将其enabled改成true并填写相关信息即可
[redis]
enabled = true
address  = "xxx:6379"
password = ""
db = 0

我们重启filer服务后再次挂载,此时对应关系就会存在redis里了,个人已经放入1.T数据,大概1.5亿个key,在性能上完全没问题

后期我们不论是使用restful api,还是在mount的目录直接进行操作,还是在redis的库里直接操作,这三者操作都是一致的。例如我们在redis上删除了某个路径的key,那么这个文件就会直接消失,因此保存关系的后端也要维护好哦,当然,如果redis挂了,那么filer功能就会崩溃,只能直接使用url/fid的模式

配置运行Filer并挂载到本地目录

master执行

1.启动filer节点

yum install -y fuse
/root/weed filer -master=10.191.72.112:9333 -ip=10.191.72.112 -port=8888 -defaultReplicaPl
acement=000 &>>/data/seaweedfs/status/filer.log &

参数           类型     说明
collection         String 所有数据将存储在这个集合中
dataCenter        String 首选在此数据中心写入volumes
defaultReplicaPlacement String 如果没有指定默认复制类型(默认“000”)
dirListLimit        Int    限制子目录列表大小
disableDirListing      无   关闭目录清单
ip            String Filter服务器http监听ip地址
master          String 用逗号分隔的master服务器(默认“localhost:9333”)
maxMB         Int 分割文件大于限制(默认32)
port           Int    Filer服务器htp监听端口(默认8888)
port.grpc        Int    Filer grpc服务器监听端口,默认为 http的端口+10000
port.public        Int    对外开放的端口
redirectOnRead     无     在文件GET请求期间是代理还是重定向到volumes服务器
secure.secret      String 加密Json Web令牌(JWT)的密钥

mount挂载客户端执行

yum install -y fuse
/root/weed mount -filer=10.191.72.112:8888 -dir=/seaweedfs/mount/ &>>/seaweedfs/status
/mount.log &
参数:

-filer filer节点
-dir 客户端挂载地址

SeaweedFS命令集:
benchmark 
backup  
compact 
filer
fix
server 
master 
filer 
s3 
upload 
download 
shell 
version 
volume
export
mount
SeaweedFS 集群部署方案与 CSI 插件使用 SeaweedFS 是一个快速分布式存储系统,用于处理大量小文件、对象、文件和数据湖。它具有 O(1) 磁盘寻道时间,支持云分层存储。Filer 支持云盘、跨数据中心主备复制、Kubernetes、POSIX FUSE 挂载、S3 API、S3 Gateway、Hadoop、WebDAV、加密和纠删码。 阅读详情

相关推荐

seaweedfs使用说明

基本概念 master 存储映射关系,文件和fid的映射关系 weed master Node 系统抽象的结点,抽象为datacenter、rack、datanode datacenter 数据中心,包含多个rack,类似一个机房 rack :属于一个datacenter,类似机房中的一个机架 datanode : 存储节点,存储多个volume,类似机架中的一个机器 weed volume v...

qq_43638113的博客 1476

对象存储之SeaweedFS简介及与MinIO的对比

SeaweedFS是一个分布式可扩展的对象存储系统。 SeaweedFS的主要组件说明如下: master service【主服务】和Volume service【卷服务】一起提供分布式对象存储服务,支持用户配置数据的复制和冗余策略。 可选的Filer service【过滤器】和S3 service【S3服务】是对象存储之上的附加层,可以根据需要进行部署

penriver的博客 1万+

SeaweedFS高可用集群部署实战

本文详细介绍了SeaweedFS高可用集群的部署实战指南,包括环境准备、主从架构配置、高级组件部署以及性能调优等关键步骤。通过实际案例展示了SeaweedFS在电商等高并发场景下的稳定表现,帮助开发者快速构建PB级分布式文件存储系统。

weixin_42567752的博客 275

SeaweedFS 分布式存储

SeaweedFS 是一种多功能且高效的存储系统,旨在满足现代系统管理员管理 blob、对象、文件和数据仓库存储需求的需求。无论数据集的大小如何,其架构都能保证快速访问时间,磁盘寻道时间为常数时间 (O(1))。这使其成为速度和效率至关重要的环境的绝佳选择。:Blob 存储是基础,包括主服务器、卷服务器和云层,可实现无限可扩展性。: 以 Blob 存储为基础,通过添加文件服务器来管理类似文件系统的操作。:使用与 S3 兼容的服务器扩展了文件存储,使其与现有 S3 工作流集成变得轻而易举。

Johnny's Lab 4019

seaweedfs分布式文件系统

seaweed占不支持smb服务,只能用fuse的方式mount到本地文件系统weed master 默认端口:9333,支持浏览器访问weed volume 默认端口:8080weed filer 默认端口:8888启动三个服务,或者weed server -filer一起性启动三个服务。

daoer_sofu的专栏 618

别再踩坑了!Docker挂载软链接的正确姿势:一个真实案例引发的思考

本文深入探讨了Docker挂载软链接的正确方法,通过一个真实的生产事故案例,揭示了软链接在容器环境中的常见陷阱。文章详细解析了软链接的工作原理,对比了不同挂载方式的差异,并提供了四层保障的可靠挂载方案,帮助开发者避免类似问题,确保生产环境的稳定性。

weixin_33704234的博客 248

SeaWeedFS安装部署,介绍master模式和filer模式

Seaweedfs是一个简单,高扩展性的分布式文件系统,它的两个目标分别是:存储数十亿级的文件,快速响应文件。大文件以分片的形式存储在内部的卷服务器内,内附filer模式采取以目录的形式访问和上传文件,其机架的机制更是备份与扩容的利器。

qq_42412606的博客 7699

seaweedfs-1-介绍

SeaweedFS 通过轻量级架构和分层设计,在大规模非结构化数据存储中实现了高性价比和灵活性,其发展历程始终围绕 “高效、可扩展、易集成” 的目标。无论是中小企业的海量数据存储,还是企业级的云原生与 AI 场景,SeaweedFS 都能提供适配的存储解决方案。

xuebo1129927648的博客 663

SeaweedFS CSI与Mount工作原理解析

Kubernetes CSI(Container Storage Interface)是一套标准化的存储插件接口,用于将第三方存储系统集成到 Kubernetes 中。

hxt的博客 490

SeaweedFS是一个简单且高度可扩展的分布式文件系统,可以快速存储和提供数十亿个文件! SeaweedFS通过O(1)磁盘搜索,透明云集成以及支持POSIX,S3 API,AES256加密,用于热存储的擦除编码,FUSE挂载,Hadoop兼容,WebDAV的可选Filer,实现了对象存储。-Golang开发

SeaweedFS支持SeaweedFS SeaweedFS是一个独立的Apache许可的开源项目,由于这些出色的支持者的支持,其正在进行的开发成为可能。 如果您想要SeaweedFS支持SeaweedFS SeaweedFS是一个独立的Apache许可的开源项目,由于这些出色的支持者的支持,其正在进行的开发是完全可能的。 如果您想使SeaweedFS更加强大,请考虑加入Patreon上的赞助商。 我和其他支持者将非常感谢您的支持! 通过Patreon赞助SeaweedFS。下载不同平台上的Binary在Slack上使用SeaweedFS在Twitter上使用SeaweedFS SeaweedFS Mailin

从零开始:用这些公开数据集搞定电力AI项目(含鸟巢、绝缘子、负荷预测等33个实战资源)

本文系统梳理了电力AI领域33个精选公开数据集,涵盖目标检测、负荷预测等关键场景,如鸟巢检测、绝缘子缺陷识别等。通过实战案例解析数据预处理、模型选型及性能优化策略,帮助工程师快速构建端到端解决方案,解决电力AI项目中的数据获取与处理难题。

weixin_42522552的博客 217

SeaweedFS部署

seaweedFS

Fairy的博客 2133

MSPM0G3507电赛控制板设计:电机驱动与多传感器融合

微控制器是嵌入式控制系统的核心处理单元,其性能与外设集成度直接决定实时控制能力。基于Arm Cortex-M0+内核的MCU凭借低功耗、高性价比和丰富模拟资源,成为大学生电子设计竞赛等工程实践场景的主流选择。本文围绕MSPM0G3507展开,深入解析双路电机驱动(TB6612FNG)、多源传感采集(MPU6050+ADC电压监测)及抗干扰硬件架构等关键技术,强调电源隔离、信号完整性与鲁棒性设计对72小时封闭竞赛环境的关键支撑作用。典型应用涵盖巡线小车运动控制、姿态解算与蓝牙/Zigbee协同通信,为控制类赛

weixin_42588672的博客 543

seaweedfs挂载异常:传输端点尚未连接 Transport endpoint is not connected

df -h | grep 8888报错这个是的典型错误weed mount。

qq_38636133的博客 90

VLA-JEPA:具身智能中潜空间世界模型的工程落地实践

世界模型是具身智能实现环境理解与因果推演的核心基础,其本质是在状态空间中建模‘动作→结果’的动力学规律。传统基于像素或文本的世界模型因高维、非平稳、弱语义等缺陷,在真实机器人场景中鲁棒性差、部署成本高。JEPA(联合嵌入预测架构)通过构建物理约束的潜空间,将视觉-语言-动作(VLA)信号统一编码为低维、可微、可解释的状态表征,显著提升模型对抖动、遮挡、光照突变等干扰的适应能力,并支持实时闭环控制。该范式已在UR5e、Franka等多构型机械臂及Jetson边缘平台完成实测验证,成为VLA系统从实验室走向产线

weixin_34357928的博客 336

自动化测试-自愈技术

随着人工智能的发展,作为一名软件测试工程师,相信大家都会思考如何把这一前沿技术引入到我们的自动化测试当中,想一万遍不如做一遍。,传递当前页面状态,获取之前成功的定位器路径,比较它们,并生成修复的定位器列表。如果修复成功,我们可以使用 Healenium Idea 插件更新我们的自动化测试代码:插件使用修复定位器寻找修复和更新测试代码。的旧定位器去定位按钮的时候,脚本就会报错,提示 “NoSuchElement”的错误异常。现在,我们假设开发人员变更了应用程序的UI界面,改变了这个按钮的id属性,从。

qq_58223744的博客 2661

使用rclone挂载alist到本地磁盘

如果后面挂载出现failed to mount FUSE fs: fusermount: exec: "fusermount3": executable file not found in $PATH错误。#这里我将alist的两个盘挂载到我的 /home/remote下,&在后台持续挂载。这里看到配置是成功的,显示我alist连接了是有两个盘的(阿里和天翼的)#alist是你刚刚远程配置的名称。

weixin_46487184的博客 2143

adb 通信协议分析以及实现 (三) (Adb 网络通信部分解析)

这篇文章说下adb 和adb 服务进程之间通信的socket 协议。  adb 服务进程启动之后,会监视本地的5037 端口,使用的是TCP 协议,所以adb 发送的命令其实就是往本地的5037 端口发送数据,做过网络编程的都知道,本机可以用127.0.0.1 ip地址。 有了ip 地址和端口号socket 通信就没问题 1)  命令发送方式      

inforecovvery的博客 2870

SeaweedFS FUSE 卷服务器故障切换测试全解析:从 Docker Swarm 故障报告到自动化混沌测试

本文围绕仓库中的 [test/fuse_failover](https://link.gitcode.com/i/e388a6c4bd9142040073822be8e76027) 集成测试套件展开,剖析 SeaweedFS 如何在**卷服务器(volume server)宕机、重启或中途消失**时,保证 FUSE 挂载点上的读写不中断。通过 `001` 复制策略,每个 chunk 在集群中保留两

gitblog_00019的博客 403

期末求生指南:手把手教你用浏览器开发者工具绕过百一测评切屏检测

本文详细介绍了如何利用浏览器开发者工具绕过百一测评的切屏检测功能。通过分析JavaScript事件监听机制,定位关键检测代码,并提供实时调试和本地覆盖两种修改方法,帮助学生在遵守规则的前提下更灵活地应对在线考试。文章还包含风险控制和替代方案等实用建议。

weixin_28698059的博客 551

vLLM 显存泄漏与 OOM 深度排查:从日志到火焰图

系统性地排查 vLLM 运行中的显存泄漏和 OOM 问题,包括 CUDA 内存快照、PyTorch 内存分析器、火焰图工具。

kaixin110a的博客 187

SeaweedFS与MinIO选型实战:从存储模型到运维节奏的深度对比

对象存储是现代云原生架构的核心组件,其底层设计直接影响性能、扩展性与运维成本。理解存储引擎的元数据模型(如Volume ID vs Bucket树)、空间管理机制(主动卸载 vs 防御式阈值)和权限抽象层级(路径白名单 vs IAM策略树),是构建高可用系统的前提。SeaweedFS以轻量解耦和确定性行为见长,适合对延迟敏感、路径结构可控的场景;MinIO则依托S3兼容性提供生态一致性,但伴随元数据税与单体运维复杂度。当面临‘seaweedfs bucket not available’或‘minio st

weixin_30421809的博客 428

COMSOL有限元仿真深度指南:连接薄结构与实体结构(I)

COMSOL有限元仿真深度指南:如何在结构力学仿真中连接薄结构与实体结构?

忘了面孔的Batou 1万+

别再踩坑了!Docker挂载软链接的正确姿势:一个真实案例带你搞懂inode与挂载时机

本文通过一个真实的生产案例,深入解析Docker挂载软链接时遇到的典型问题及其解决方案。详细介绍了Linux inode与Docker挂载的交互原理,并提供了四种正确挂载软链接的实践方法,帮助开发者避免常见陷阱,确保容器存储的稳定性和可靠性。

weixin_27966471的博客 214

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

DLSS Swapper:不换游戏本体,直接升降级 DLSS 版本

DLSS Swapper 是一款 Windows 工具,直接替换游戏安装目录里的 DLSS、FSR、XeSS dll 文件,让你在官方补丁之前把版本升到更新或回退到旧版。它不能给不支持 DLSS 的游戏添加 DLSS,也不保证替换后帧数更高、拖影更少、不崩溃——⚠️ 换错版本可能导致游戏无法启动,需要靠内置备份还原。 ## 安装与首次扫描:五步看到游戏的 DLSS 版本 1. 以管理员身份可用

gitblog_00087的博客 339

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: Seaweedfs基本操作命令
下一篇: SeaWeedFS文件存储服务器搭建
IChen.
博客等级 码龄7年 2019粉丝 1017原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值