aboutsummaryrefslogtreecommitdiff
path: root/weed/command
diff options
context:
space:
mode:
authorKonstantin Lebedev <9497591+kmlebedev@users.noreply.github.com>2022-08-05 05:35:00 +0500
committerGitHub <noreply@github.com>2022-08-04 17:35:00 -0700
commit4d08393b7ca8b1a34ed65532955de76cf8843ec2 (patch)
treeb764fe5f4b927d9b9cf1b83a2f19c87a91d81c8e /weed/command
parent28a1f42962a3c22fa341d62e52ed014ae17c508f (diff)
downloadseaweedfs-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.go4
-rw-r--r--weed/command/filer_meta_backup.go4
-rw-r--r--weed/command/filer_remote_gateway.go4
-rw-r--r--weed/command/filer_remote_sync.go4
-rw-r--r--weed/command/s3.go3
-rw-r--r--weed/command/server.go1
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