diff --git a/weed/command/filer.go b/weed/command/filer.go index c18925006..b52b01149 100644 --- a/weed/command/filer.go +++ b/weed/command/filer.go @@ -103,6 +103,11 @@ func (fo *FilerOptions) startFiler() { defaultLevelDbDirectory = *fo.defaultLevelDbDirectory + "/filerldb2" } + var peers []string + if *fo.peers != "" { + peers = strings.Split(*fo.peers, ",") + } + fs, nfs_err := weed_server.NewFilerServer(defaultMux, publicVolumeMux, &weed_server.FilerOption{ Masters: strings.Split(*fo.masters, ","), Collection: *fo.collection, @@ -116,7 +121,7 @@ func (fo *FilerOptions) startFiler() { Host: *fo.ip, Port: uint32(*fo.port), Cipher: *fo.cipher, - Filers: strings.Split(*fo.peers, ","), + Filers: peers, }) if nfs_err != nil { glog.Fatalf("Filer startup error: %v", nfs_err) diff --git a/weed/server/filer_server.go b/weed/server/filer_server.go index 30c8a0a7c..c6ab6ef0f 100644 --- a/weed/server/filer_server.go +++ b/weed/server/filer_server.go @@ -89,19 +89,9 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption) }) fs.filer.Cipher = option.Cipher - // set peers - if strings.HasPrefix(fs.filer.GetStore().GetName(), "leveldb") && len(option.Filers) > 0 { - glog.Fatal("filers using separate leveldb stores should not configure peers!") - } - if len(option.Filers) == 0 { - option.Filers = append(option.Filers, fmt.Sprintf("%s:%d", option.Host, option.Port)) - } - fs.metaAggregator = filer2.NewMetaAggregator(option.Filers, fs.grpcDialOption) - maybeStartMetrics(fs, option) go fs.filer.KeepConnectedToMaster() - fs.metaAggregator.StartLoopSubscribe(time.Now().UnixNano()) v := util.GetViper() if !util.LoadConfiguration("filer", false) { @@ -111,6 +101,7 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption) if os.IsNotExist(err) { os.MkdirAll(option.DefaultLevelDbDir, 0755) } + glog.V(0).Infof("default to create filer store dir in %s", option.DefaultLevelDbDir) } util.LoadConfiguration("notification", false) @@ -130,6 +121,16 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption) readonlyMux.HandleFunc("/", fs.readonlyFilerHandler) } + // set peers + if strings.HasPrefix(fs.filer.GetStore().GetName(), "leveldb") && len(option.Filers) > 0 { + glog.Fatalf("filers using separate leveldb stores should not configure %d peers %+v", len(option.Filers), option.Filers) + } + if len(option.Filers) == 0 { + option.Filers = append(option.Filers, fmt.Sprintf("%s:%d", option.Host, option.Port)) + } + fs.metaAggregator = filer2.NewMetaAggregator(option.Filers, fs.grpcDialOption) + fs.metaAggregator.StartLoopSubscribe(time.Now().UnixNano()) + fs.filer.LoadBuckets() grace.OnInterrupt(func() {