Browse Source

filer: add default log purging to master maintenance scripts (#8359)

* filer: add default log purging to master maintenance scripts

* filer: fix default maintenance scripts to include full set of tasks

* filer: refactor maintenance scripts to avoid duplication
pull/8360/head
Chris Lu 3 days ago
committed by GitHub
parent
commit
3300874cb5
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 14
      weed/cluster/maintenance/maintenance_config.go
  2. 12
      weed/command/scaffold/example.go
  3. 12
      weed/command/scaffold/master.toml
  4. 2
      weed/server/master_server.go

14
weed/cluster/maintenance/maintenance_config.go

@ -0,0 +1,14 @@
package maintenance
const DefaultMasterMaintenanceScripts = `
lock
ec.encode -fullPercent=95 -quietFor=1h
ec.rebuild -apply
ec.balance -apply
fs.log.purge -daysAgo=7
volume.deleteEmpty -quietFor=24h -apply
volume.balance -apply
volume.fix.replication -apply
s3.clean.uploads -timeAgo=24h
unlock
`

12
weed/command/scaffold/example.go

@ -1,6 +1,15 @@
package scaffold
import _ "embed"
import (
_ "embed"
"strings"
"github.com/seaweedfs/seaweedfs/weed/cluster/maintenance"
)
func init() {
Master = strings.ReplaceAll(masterTemplate, "{{DEFAULT_MAINTENANCE_SCRIPTS}}", maintenance.DefaultMasterMaintenanceScripts)
}
//go:embed filer.toml
var Filer string
@ -15,6 +24,7 @@ var Replication string
var Security string
//go:embed master.toml
var masterTemplate string
var Master string
//go:embed shell.toml

12
weed/command/scaffold/master.toml

@ -6,17 +6,7 @@
[master.maintenance]
# periodically run these scripts are the same as running them from 'weed shell'
scripts = """
lock
ec.encode -fullPercent=95 -quietFor=1h
ec.rebuild -apply
ec.balance -apply
volume.deleteEmpty -quietFor=24h -apply
volume.balance -apply
volume.fix.replication -apply
s3.clean.uploads -timeAgo=24h
unlock
"""
scripts = """{{DEFAULT_MAINTENANCE_SCRIPTS}}"""
sleep_minutes = 17 # sleep minutes between each script execution

2
weed/server/master_server.go

@ -13,6 +13,7 @@ import (
"sync"
"time"
"github.com/seaweedfs/seaweedfs/weed/cluster/maintenance"
"github.com/seaweedfs/seaweedfs/weed/stats"
"github.com/seaweedfs/seaweedfs/weed/telemetry"
@ -312,6 +313,7 @@ func (ms *MasterServer) proxyToLeader(f http.HandlerFunc) http.HandlerFunc {
func (ms *MasterServer) startAdminScripts() {
v := util.GetViper()
v.SetDefault("master.maintenance.scripts", maintenance.DefaultMasterMaintenanceScripts)
adminScripts := v.GetString("master.maintenance.scripts")
if adminScripts == "" {
return

Loading…
Cancel
Save