From 3300874cb5ac4e117a41582378672c362f005791 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 16 Feb 2026 16:58:15 -0800 Subject: [PATCH] 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 --- weed/cluster/maintenance/maintenance_config.go | 14 ++++++++++++++ weed/command/scaffold/example.go | 12 +++++++++++- weed/command/scaffold/master.toml | 12 +----------- weed/server/master_server.go | 2 ++ 4 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 weed/cluster/maintenance/maintenance_config.go diff --git a/weed/cluster/maintenance/maintenance_config.go b/weed/cluster/maintenance/maintenance_config.go new file mode 100644 index 000000000..1fc725b5b --- /dev/null +++ b/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 +` diff --git a/weed/command/scaffold/example.go b/weed/command/scaffold/example.go index 26d0a306c..7dfc5032c 100644 --- a/weed/command/scaffold/example.go +++ b/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 diff --git a/weed/command/scaffold/master.toml b/weed/command/scaffold/master.toml index 711359b11..2a24cdea7 100644 --- a/weed/command/scaffold/master.toml +++ b/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 diff --git a/weed/server/master_server.go b/weed/server/master_server.go index d80605de8..a95f4bcb6 100644 --- a/weed/server/master_server.go +++ b/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