aboutsummaryrefslogtreecommitdiff
path: root/weed/command/server.go
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2025-10-31 18:29:16 -0700
committerGitHub <noreply@github.com>2025-10-31 18:29:16 -0700
commitf096b067fd2171919810d6e9536e9068b899f7db (patch)
treee0ef0f0da07faa130cd4e230d37e143986041097 /weed/command/server.go
parent5ab49e29712a8ef9fed723c64b668d7e58675566 (diff)
downloadseaweedfs-f096b067fd2171919810d6e9536e9068b899f7db.tar.xz
seaweedfs-f096b067fd2171919810d6e9536e9068b899f7db.zip
weed master add peers=none option for faster startup (#7419)
* weed master -peers=none * single master mode only when peers is none * refactoring * revert duplicated code * revert * Update weed/command/master.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * preventing "none" passed to other components if master is not started --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Diffstat (limited to 'weed/command/server.go')
-rw-r--r--weed/command/server.go18
1 files changed, 13 insertions, 5 deletions
diff --git a/weed/command/server.go b/weed/command/server.go
index f2e2e1b58..8c99d04fd 100644
--- a/weed/command/server.go
+++ b/weed/command/server.go
@@ -232,10 +232,17 @@ func runServer(cmd *Command, args []string) bool {
*isStartingFiler = true
}
+ var actualPeersForComponents string
if *isStartingMasterServer {
+ // If we are starting a master, validate and complete the peer list
_, peerList := checkPeers(*serverIp, *masterOptions.port, *masterOptions.portGrpc, *masterOptions.peers)
- peers := strings.Join(pb.ToAddressStrings(peerList), ",")
- masterOptions.peers = &peers
+ actualPeersForComponents = strings.Join(pb.ToAddressStrings(peerList), ",")
+ } else if *masterOptions.peers != "" {
+ if isSingleMasterMode(*masterOptions.peers) {
+ glog.Fatalf("'-master.peers=none' is only valid when starting a master server, but master is not starting.")
+ }
+ // If not starting a master, just use the provided peers
+ actualPeersForComponents = *masterOptions.peers
}
if *serverBindIp == "" {
@@ -249,7 +256,8 @@ func runServer(cmd *Command, args []string) bool {
// ip address
masterOptions.ip = serverIp
masterOptions.ipBind = serverBindIp
- filerOptions.masters = pb.ServerAddresses(*masterOptions.peers).ToServiceDiscovery()
+ // Use actualPeersForComponents for volume/filer, not masterOptions.peers which might be "none"
+ filerOptions.masters = pb.ServerAddresses(actualPeersForComponents).ToServiceDiscovery()
filerOptions.ip = serverIp
filerOptions.bindIp = serverBindIp
if *s3Options.bindIp == "" {
@@ -259,11 +267,11 @@ func runServer(cmd *Command, args []string) bool {
sftpOptions.bindIp = serverBindIp
}
iamOptions.ip = serverBindIp
- iamOptions.masters = masterOptions.peers
+ iamOptions.masters = &actualPeersForComponents
webdavOptions.ipBind = serverBindIp
serverOptions.v.ip = serverIp
serverOptions.v.bindIp = serverBindIp
- serverOptions.v.masters = pb.ServerAddresses(*masterOptions.peers).ToAddresses()
+ serverOptions.v.masters = pb.ServerAddresses(actualPeersForComponents).ToAddresses()
serverOptions.v.idleConnectionTimeout = serverTimeout
serverOptions.v.dataCenter = serverDataCenter
serverOptions.v.rack = serverRack