Seaweedfs 卷管理

Seaweedfs volume management

我有 2 个关于我们拥有的 Seaweedfs 集群的问题 运行。领导者使用以下命令启动:

/usr/local/bin/weed server -ip=192.168.13.154 -ip.bind=192.168.13.154 -dir=/opt/seaweedfs/volume-1,/opt/seaweedfs/volume-2,/opt/seaweedfs/volume-3 -master.dir=/opt/seaweedfs/master -master.peers=192.168.13.154:9333,192.168.13.155:9333,192.168.13.156:9333 -volume.max=30,30,30 -filer=true -s3=true -metrics.address=192.168.13.84:9091

问题一

我使用 weed scaffold -config=master 创建了一个 master.toml 文件:

[master.maintenance]
# periodically run these scripts are the same as running them from 'weed shell'
scripts = """
  ec.encode -fullPercent=95 -quietFor=1h
  ec.rebuild -force
  ec.balance -force
  volume.balance -force
"""
sleep_minutes = 17          # sleep minutes between each script execution

但是维护脚本似乎失败了,因为

shell failed to keep connected to localhost:9333: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp [::1]:19333: connect: connection refused"

这是有道理的,因为主机绑定到 ip 192.168.13.154 并且维护脚本尝试连接到本地主机。如何在 master.toml 文件中指定主 IP?

问题二

卷数量的增长速度似乎快于使用的磁盘数量space。例如,在 .154 服务器上只有 11 个空闲卷。但是看磁盘space应该还有很多。

状态:

{
  "Topology": {
    "DataCenters": [
      {
        "Free": 16,
        "Id": "DefaultDataCenter",
        "Max": 270,
        "Racks": [
          {
            "DataNodes": [
              {
                "EcShards": 0,
                "Free": 0,
                "Max": 90,
                "PublicUrl": "192.168.13.155:8080",
                "Url": "192.168.13.155:8080",
                "Volumes": 90
              },
              {
                "EcShards": 0,
                "Free": 11,
                "Max": 90,
                "PublicUrl": "192.168.13.154:8080",
                "Url": "192.168.13.154:8080",
                "Volumes": 79
              },
              {
                "EcShards": 0,
                "Free": 5,
                "Max": 90,
                "PublicUrl": "192.168.13.156:8080",
                "Url": "192.168.13.156:8080",
                "Volumes": 85
              }
            ],
            "Free": 16,
            "Id": "DefaultRack",
            "Max": 270
          }
        ]
      }
    ],
    "Free": 16,
    "Max": 270,
    "layouts": [
      ...
    ]
  },
  "Version": "30GB 1.44"
}

磁盘 (192.168.13.154):

/dev/sdb1      1007G  560G  397G  59% /opt/seaweedfs/volume-1
/dev/sdc1      1007G  542G  414G  57% /opt/seaweedfs/volume-2
/dev/sdd1      1007G  398G  559G  42% /opt/seaweedfs/volume-3

这是否与维护脚本相关 运行 不正确,或者是否有其他我理解不正确的地方?

问题 1:已添加修复程序 https://github.com/chrislusf/seaweedfs/commit/56244fb9a13c75616aa8a9232c62d1b896906e98

问题 2:可能与 master 领导变动有关。