diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-08-05 05:35:00 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-04 17:35:00 -0700 |
| commit | 4d08393b7ca8b1a34ed65532955de76cf8843ec2 (patch) | |
| tree | b764fe5f4b927d9b9cf1b83a2f19c87a91d81c8e /weed/command | |
| parent | 28a1f42962a3c22fa341d62e52ed014ae17c508f (diff) | |
| download | seaweedfs-4d08393b7ca8b1a34ed65532955de76cf8843ec2.tar.xz seaweedfs-4d08393b7ca8b1a34ed65532955de76cf8843ec2.zip | |
filer prefer volume server in same data center (#3405)
* initial prefer same data center
https://github.com/seaweedfs/seaweedfs/issues/3404
* GetDataCenter
* prefer same data center for ReplicationSource
* GetDataCenterId
* remove glog
Diffstat (limited to 'weed/command')
| -rw-r--r-- | weed/command/filer.go | 4 | ||||
| -rw-r--r-- | weed/command/filer_meta_backup.go | 4 | ||||
| -rw-r--r-- | weed/command/filer_remote_gateway.go | 4 | ||||
| -rw-r--r-- | weed/command/filer_remote_sync.go | 4 | ||||
| -rw-r--r-- | weed/command/s3.go | 3 | ||||
| -rw-r--r-- | weed/command/server.go | 1 |
6 files changed, 20 insertions, 0 deletions
diff --git a/weed/command/filer.go b/weed/command/filer.go index 7418a189b..888dc2d03 100644 --- a/weed/command/filer.go +++ b/weed/command/filer.go @@ -93,6 +93,7 @@ func init() { filerS3Options.port = cmdFiler.Flag.Int("s3.port", 8333, "s3 server http listen port") filerS3Options.portGrpc = cmdFiler.Flag.Int("s3.port.grpc", 0, "s3 server grpc listen port") filerS3Options.domainName = cmdFiler.Flag.String("s3.domainName", "", "suffix of the host name in comma separated list, {bucket}.{domainName}") + filerS3Options.dataCenter = cmdFiler.Flag.String("s3.dataCenter", "", "prefer to read and write to volumes in this data center") filerS3Options.tlsPrivateKey = cmdFiler.Flag.String("s3.key.file", "", "path to the TLS private key file") filerS3Options.tlsCertificate = cmdFiler.Flag.String("s3.cert.file", "", "path to the TLS certificate file") filerS3Options.config = cmdFiler.Flag.String("s3.config", "", "path to the config file") @@ -167,6 +168,9 @@ func runFiler(cmd *Command, args []string) bool { filerS3Options.filer = &filerAddress filerS3Options.bindIp = f.bindIp filerS3Options.localFilerSocket = f.localSocket + if *f.dataCenter != "" && *filerS3Options.dataCenter == "" { + filerS3Options.dataCenter = f.dataCenter + } go func() { time.Sleep(startDelay * time.Second) filerS3Options.startS3Server() diff --git a/weed/command/filer_meta_backup.go b/weed/command/filer_meta_backup.go index 05ad5ec2f..e0f23ee27 100644 --- a/weed/command/filer_meta_backup.go +++ b/weed/command/filer_meta_backup.go @@ -234,3 +234,7 @@ func (metaBackup *FilerMetaBackupOptions) WithFilerClient(streamingMode bool, fn func (metaBackup *FilerMetaBackupOptions) AdjustedUrl(location *filer_pb.Location) string { return location.Url } + +func (metaBackup *FilerMetaBackupOptions) GetDataCenter() string { + return "" +} diff --git a/weed/command/filer_remote_gateway.go b/weed/command/filer_remote_gateway.go index 8d9421d8e..6446d28d0 100644 --- a/weed/command/filer_remote_gateway.go +++ b/weed/command/filer_remote_gateway.go @@ -43,6 +43,10 @@ func (option *RemoteGatewayOptions) AdjustedUrl(location *filer_pb.Location) str return location.Url } +func (option *RemoteGatewayOptions) GetDataCenter() string { + return "" +} + var ( remoteGatewayOptions RemoteGatewayOptions ) diff --git a/weed/command/filer_remote_sync.go b/weed/command/filer_remote_sync.go index e7f6f971b..84d2f0e91 100644 --- a/weed/command/filer_remote_sync.go +++ b/weed/command/filer_remote_sync.go @@ -33,6 +33,10 @@ func (option *RemoteSyncOptions) AdjustedUrl(location *filer_pb.Location) string return location.Url } +func (option *RemoteSyncOptions) GetDataCenter() string { + return "" +} + var ( remoteSyncOptions RemoteSyncOptions ) diff --git a/weed/command/s3.go b/weed/command/s3.go index 8e88bfc2c..4bcb9527b 100644 --- a/weed/command/s3.go +++ b/weed/command/s3.go @@ -39,6 +39,7 @@ type S3Options struct { allowDeleteBucketNotEmpty *bool auditLogConfig *string localFilerSocket *string + dataCenter *string } func init() { @@ -48,6 +49,7 @@ func init() { s3StandaloneOptions.port = cmdS3.Flag.Int("port", 8333, "s3 server http listen port") s3StandaloneOptions.portGrpc = cmdS3.Flag.Int("port.grpc", 0, "s3 server grpc listen port") s3StandaloneOptions.domainName = cmdS3.Flag.String("domainName", "", "suffix of the host name in comma separated list, {bucket}.{domainName}") + s3StandaloneOptions.dataCenter = cmdS3.Flag.String("dataCenter", "", "prefer to read and write to volumes in this data center") s3StandaloneOptions.config = cmdS3.Flag.String("config", "", "path to the config file") s3StandaloneOptions.auditLogConfig = cmdS3.Flag.String("auditLogConfig", "", "path to the audit log config file") s3StandaloneOptions.tlsPrivateKey = cmdS3.Flag.String("key.file", "", "path to the TLS private key file") @@ -193,6 +195,7 @@ func (s3opt *S3Options) startS3Server() bool { AllowEmptyFolder: *s3opt.allowEmptyFolder, AllowDeleteBucketNotEmpty: *s3opt.allowDeleteBucketNotEmpty, LocalFilerSocket: s3opt.localFilerSocket, + DataCenter: *s3opt.dataCenter, }) if s3ApiServer_err != nil { glog.Fatalf("S3 API Server startup error: %v", s3ApiServer_err) diff --git a/weed/command/server.go b/weed/command/server.go index f7cfa4805..d4c7fb64e 100644 --- a/weed/command/server.go +++ b/weed/command/server.go @@ -221,6 +221,7 @@ func runServer(cmd *Command, args []string) bool { filerOptions.rack = serverRack mqBrokerOptions.dataCenter = serverDataCenter mqBrokerOptions.rack = serverRack + s3Options.dataCenter = serverDataCenter filerOptions.disableHttp = serverDisableHttp masterOptions.disableHttp = serverDisableHttp |
