diff options
| author | a <a@tuxpa.in> | 2022-03-28 16:50:28 +0000 |
|---|---|---|
| committer | a <a@tuxpa.in> | 2022-03-28 16:50:28 +0000 |
| commit | bc603e534f5e2e7412a5554add9b76943534b180 (patch) | |
| tree | 37e35aa115341b04aa208bdf0e187539e583ebe9 /weed/command | |
| parent | beb406bbbb5e67fc66a02d264c670a8fe11785b7 (diff) | |
| parent | 93615b2a49b6510e6108a784b54be7d16719d730 (diff) | |
| download | seaweedfs-bc603e534f5e2e7412a5554add9b76943534b180.tar.xz seaweedfs-bc603e534f5e2e7412a5554add9b76943534b180.zip | |
diff
Diffstat (limited to 'weed/command')
| -rw-r--r-- | weed/command/benchmark.go | 2 | ||||
| -rw-r--r-- | weed/command/filer.go | 7 | ||||
| -rw-r--r-- | weed/command/iam.go | 2 | ||||
| -rw-r--r-- | weed/command/master.go | 11 | ||||
| -rw-r--r-- | weed/command/master_follower.go | 15 | ||||
| -rw-r--r-- | weed/command/server.go | 2 |
6 files changed, 23 insertions, 16 deletions
diff --git a/weed/command/benchmark.go b/weed/command/benchmark.go index af5919adf..7091463cc 100644 --- a/weed/command/benchmark.go +++ b/weed/command/benchmark.go @@ -129,7 +129,7 @@ func runBenchmark(cmd *Command, args []string) bool { defer pprof.StopCPUProfile() } - b.masterClient = wdclient.NewMasterClient(b.grpcDialOption, "client", "", "", pb.ServerAddresses(*b.masters).ToAddresses()) + b.masterClient = wdclient.NewMasterClient(b.grpcDialOption, "client", "", "", pb.ServerAddresses(*b.masters).ToAddressMap()) go b.masterClient.KeepConnectedToMaster() b.masterClient.WaitUntilConnected() diff --git a/weed/command/filer.go b/weed/command/filer.go index 36190335b..0a768944b 100644 --- a/weed/command/filer.go +++ b/weed/command/filer.go @@ -13,7 +13,7 @@ import ( "github.com/chrislusf/seaweedfs/weed/pb" "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/server" + weed_server "github.com/chrislusf/seaweedfs/weed/server" stats_collect "github.com/chrislusf/seaweedfs/weed/stats" "github.com/chrislusf/seaweedfs/weed/util" ) @@ -29,7 +29,7 @@ var ( ) type FilerOptions struct { - masters []pb.ServerAddress + masters map[string]pb.ServerAddress mastersString *string ip *string bindIp *string @@ -103,6 +103,7 @@ func init() { // start iam on filer filerStartIam = cmdFiler.Flag.Bool("iam", false, "whether to start IAM service") + filerIamOptions.ip = cmdFiler.Flag.String("iam.ip", *f.ip, "iam server http listen ip address") filerIamOptions.port = cmdFiler.Flag.Int("iam.port", 8111, "iam server http listen port") } @@ -170,7 +171,7 @@ func runFiler(cmd *Command, args []string) bool { }() } - f.masters = pb.ServerAddresses(*f.mastersString).ToAddresses() + f.masters = pb.ServerAddresses(*f.mastersString).ToAddressMap() f.startFiler() diff --git a/weed/command/iam.go b/weed/command/iam.go index 88b17b1a2..968d23095 100644 --- a/weed/command/iam.go +++ b/weed/command/iam.go @@ -67,7 +67,7 @@ func (iamopt *IamOptions) startIamServer() bool { } } - masters := pb.ServerAddresses(*iamopt.masters).ToAddresses() + masters := pb.ServerAddresses(*iamopt.masters).ToAddressMap() router := mux.NewRouter().SkipClean(true) _, iamApiServer_err := iamapi.NewIamApiServer(router, &iamapi.IamServerOption{ Masters: masters, diff --git a/weed/command/master.go b/weed/command/master.go index a9109bdb8..e56ee19fe 100644 --- a/weed/command/master.go +++ b/weed/command/master.go @@ -127,13 +127,18 @@ func startMaster(masterOption MasterOptions, masterWhiteList []string) { *masterOption.portGrpc = 10000 + *masterOption.port } if *masterOption.ipBind == "" { - *masterOption.ipBind = "localhost" + *masterOption.ipBind = *masterOption.ip } myMasterAddress, peers := checkPeers(*masterOption.ip, *masterOption.port, *masterOption.portGrpc, *masterOption.peers) + masterPeers := make(map[string]pb.ServerAddress) + for _, peer := range peers { + masterPeers[peer.String()] = peer + } + r := mux.NewRouter() - ms := weed_server.NewMasterServer(r, masterOption.toMasterOption(masterWhiteList), peers) + ms := weed_server.NewMasterServer(r, masterOption.toMasterOption(masterWhiteList), masterPeers) listeningAddress := util.JoinHostPort(*masterOption.ipBind, *masterOption.port) glog.V(0).Infof("Start Seaweed Master %s at %s", util.Version(), listeningAddress) masterListener, masterLocalListner, e := util.NewIpAndLocalListeners(*masterOption.ipBind, *masterOption.port, 0) @@ -144,7 +149,7 @@ func startMaster(masterOption MasterOptions, masterWhiteList []string) { // start raftServer raftServerOption := &weed_server.RaftServerOption{ GrpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.master"), - Peers: peers, + Peers: masterPeers, ServerAddr: myMasterAddress, DataDir: util.ResolvePath(*masterOption.metaFolder), Topo: ms.Topo, diff --git a/weed/command/master_follower.go b/weed/command/master_follower.go index 502ce3cd3..ec7d2758f 100644 --- a/weed/command/master_follower.go +++ b/weed/command/master_follower.go @@ -3,17 +3,18 @@ package command import ( "context" "fmt" + "net/http" + "time" + "github.com/aws/aws-sdk-go/aws" "github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/pb" "github.com/chrislusf/seaweedfs/weed/pb/master_pb" "github.com/chrislusf/seaweedfs/weed/security" - "github.com/chrislusf/seaweedfs/weed/server" + weed_server "github.com/chrislusf/seaweedfs/weed/server" "github.com/chrislusf/seaweedfs/weed/util" "github.com/gorilla/mux" "google.golang.org/grpc/reflection" - "net/http" - "time" ) var ( @@ -45,13 +46,13 @@ var cmdMasterFollower = &Command{ Short: "start a master follower", Long: `start a master follower to provide volume=>location mapping service - The master follower does not participate in master election. + The master follower does not participate in master election. It just follow the existing masters, and listen for any volume location changes. In most cases, the master follower is not needed. In big data centers with thousands of volume servers. In theory, the master may have trouble to keep up with the write requests and read requests. - The master follower can relieve the master from from read requests, which only needs to + The master follower can relieve the master from from read requests, which only needs to lookup a fileId or volumeId. The master follower currently can handle fileId lookup requests: @@ -82,7 +83,7 @@ func runMasterFollower(cmd *Command, args []string) bool { func startMasterFollower(masterOptions MasterOptions) { // collect settings from main masters - masters := pb.ServerAddresses(*mf.peers).ToAddresses() + masters := pb.ServerAddresses(*mf.peers).ToAddressMap() var err error grpcDialOption := security.LoadClientTLS(util.GetViper(), "grpc.master") @@ -112,7 +113,7 @@ func startMasterFollower(masterOptions MasterOptions) { option.IsFollower = true if *masterOptions.ipBind == "" { - *masterOptions.ipBind = "localhost" + *masterOptions.ipBind = *masterOptions.ip } r := mux.NewRouter() diff --git a/weed/command/server.go b/weed/command/server.go index a1b495c5f..0cc60fd30 100644 --- a/weed/command/server.go +++ b/weed/command/server.go @@ -191,7 +191,7 @@ func runServer(cmd *Command, args []string) bool { // ip address masterOptions.ip = serverIp masterOptions.ipBind = serverBindIp - filerOptions.masters = pb.ServerAddresses(*masterOptions.peers).ToAddresses() + filerOptions.masters = pb.ServerAddresses(*masterOptions.peers).ToAddressMap() filerOptions.ip = serverIp filerOptions.bindIp = serverBindIp s3Options.bindIp = serverBindIp |
