是否存在禁用SeaweedFS Filer自动复制与节点发现的配置项?
问题:禁用SeaweedFS Filer的复制与节点发现行为
我的SeaweedFS Filer实例通过NAT连接到SeaweedFS Master实例,这导致它尝试进行自我复制。我只需要单个Filer,高可用由集群和存储层处理,请问有没有办法完全禁用Filer的复制与节点发现行为?
相关日志:
W1228 23:12:39.414593 filer_server.go:145 skipping default store dir in ./filerldb2 I1228 23:12:39.417785 filer.go:164 create filer.store.id to -171668174 I1228 23:12:39.417926 configuration.go:28 configured filer store to mysql I1228 23:12:39.419270 masterclient.go:210 master 10.5.3.3:9333 redirected to leader 10.5.3.3:9333 .I1228 23:12:39.595872 master_client.go:20 the cluster has 1 filer I1228 23:12:39.596035 filer_server.go:172 10.5.3.3:8888 bootstrap from peers [node_type:"filer" address:"10.5.3.3:8888" is_add:true created_at_ns:1703805159421028874] I1228 23:12:39.596167 filer.go:122 10.5.3.3:8888 aggregate from peers [10.5.3.3:8888] I1228 23:12:39.598485 meta_aggregator.go:92 loopSubscribeToOneFiler read 10.5.3.3:8888 start from 2023-12-28 23:11:39.596026164 +0000 UTC 1703805099596026164 I1228 23:12:39.599431 filer.go:282 Start Seaweed Filer 30GB 3.59 27b34f379 at 10.5.3.3:8888 I1228 23:12:39.599442 meta_aggregator.go:103 subscribing remote 10.5.3.3:8888 meta change: connecting to peer filer 10.5.3.3:8888: rpc error: code = Unavailable desc = write tcp 172.17.0.5:58760->10.5.3.3:18888: write: broken pipe I1228 23:12:41.332971 meta_aggregator.go:92 loopSubscribeToOneFiler read 10.5.3.3:8888 start from 2023-12-28 23:11:39.596026164 +0000 UTC 1703805099596026164 I1228 23:12:41.334287 meta_aggregator.go:189 subscribing remote 10.5.3.3:8888 meta change: 2023-12-28 23:11:39.596026164 +0000 UTC, clientId:1043354529 I1228 23:12:41.335386 filer_grpc_server_sub_meta.go:296 + local listener filer:10.5.3.3:8888@172.17.0.1:35482 clientId -1043354529 clientEpoch 1 I1228 23:12:41.335426 filer_grpc_server_sub_meta.go:117 + filer:10.5.3.3:8888@172.17.0.1:35482 local subscribe / from 2023-12-28 23:11:39.596026164 +0000 UTC clientId:-1043354529 I1228 23:12:41.335448 filer_grpc_server_sub_meta.go:130 read on disk filer:10.5.3.3:8888@172.17.0.1:35482 local subscribe / from 2023-12-28 23:11:39.596026164 +0000 UTC I1228 23:12:41.335887 filer_grpc_server_sub_meta.go:149 read in memory filer:10.5.3.3:8888@172.17.0.1:35482 local subscribe / from 2023-12-28 23:11:39.596026164 +0000 UTC
解决方案
从日志可以看出,Filer在尝试订阅自身的元数据变更,这是NAT环境下它从Master获取到的peer节点就是自己,触发了默认的元数据聚合逻辑。要完全禁用Filer的复制与节点发现,用以下两种方式之一即可:
1. 命令行参数启动
启动Filer时添加-filer.group=single参数,该参数会让Filer以单实例模式运行,自动禁用集群发现和元数据同步逻辑:
weed filer -master=10.5.3.3:9333 -filer.group=single [你的其他启动参数]
2. 配置文件设置
如果使用filer.toml配置文件,添加以下配置项:
[filer.group] name = "single"
额外优化(可选)
若仍存在NAT导致的地址混淆问题,可以指定Filer对外暴露的IP和端口,避免自我连接出错:
weed filer -master=10.5.3.3:9333 -filer.group=single -ip=10.5.3.3 -grpc.ip=10.5.3.3 [你的其他启动参数]
其中-ip是HTTP服务的对外地址,-grpc.ip是GRPC服务的对外地址,设置为Filer在集群内的可达IP即可。
配置完成后,Filer将不再尝试发现其他peer节点,也不会进行元数据复制,完全以单实例模式运行,高可用可由存储层和集群处理。
内容的提问来源于stack exchange,提问作者Jay Williams
相关产品推荐
相关产品推荐

