master: add configurable volume growth toml setting

This commit is contained in:
Chris Lu 2020-02-03 18:15:16 -08:00
parent 382ff218d3
commit dc786a63ac
2 changed files with 19 additions and 4 deletions

View file

@ -369,6 +369,8 @@ type = "memory" # Choose [memory|etcd] type for storing the file id sequence
sequencer_etcd_urls = "http://127.0.0.1:2379" sequencer_etcd_urls = "http://127.0.0.1:2379"
# configurations for tiered cloud storage
# old volumes are transparently moved to cloud for cost efficiency
[storage.backend] [storage.backend]
[storage.backend.s3.default] [storage.backend.s3.default]
enabled = false enabled = false
@ -377,5 +379,12 @@ sequencer_etcd_urls = "http://127.0.0.1:2379"
region = "us-east-2" region = "us-east-2"
bucket = "your_bucket_name" # an existing bucket bucket = "your_bucket_name" # an existing bucket
# create this number of logical volumes if no more writable volumes
[master.volume_growth]
count_1 = 7 # create 1 x 7 = 7 actual volumes
count_2 = 6 # create 2 x 6 = 12 actual volumes
count_3 = 3 # create 3 x 3 = 9 actual volumes
count_other = 1 # create n x 1 = n actual volumes
` `
) )

View file

@ -7,6 +7,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/storage/needle" "github.com/chrislusf/seaweedfs/weed/storage/needle"
"github.com/chrislusf/seaweedfs/weed/storage/super_block" "github.com/chrislusf/seaweedfs/weed/storage/super_block"
"github.com/chrislusf/seaweedfs/weed/util"
"google.golang.org/grpc" "google.golang.org/grpc"
@ -48,15 +49,20 @@ func NewDefaultVolumeGrowth() *VolumeGrowth {
// one replication type may need rp.GetCopyCount() actual volumes // one replication type may need rp.GetCopyCount() actual volumes
// given copyCount, how many logical volumes to create // given copyCount, how many logical volumes to create
func (vg *VolumeGrowth) findVolumeCount(copyCount int) (count int) { func (vg *VolumeGrowth) findVolumeCount(copyCount int) (count int) {
v := util.GetViper()
v.SetDefault("master.volume_growth.copy_1", 7)
v.SetDefault("master.volume_growth.copy_2", 6)
v.SetDefault("master.volume_growth.copy_3", 3)
v.SetDefault("master.volume_growth.copy_other", 1)
switch copyCount { switch copyCount {
case 1: case 1:
count = 7 count = v.GetInt("master.volume_growth.copy_1")
case 2: case 2:
count = 6 count = v.GetInt("master.volume_growth.copy_2")
case 3: case 3:
count = 3 count = v.GetInt("master.volume_growth.copy_3")
default: default:
count = 1 count = v.GetInt("master.volume_growth.copy_other")
} }
return return
} }