fix(filer): apply -filer.disk default to metadata log assigns (#10080)

* fix(filer): apply -filer.disk default to metadata log assigns

Metadata event log writes call operation.Assign directly and used only
FilerConf path rule DiskType. When filer.conf rules were missing or
unmatched, the master received an empty DiskType and grew volumes on the
built-in hdd layout.

Mirror resolveAssignStorageOption: wire FilerOption.DiskType into the
Filer, fall back when the matched path rule has no disk type, and return
the matched rule from resolveMetadataLogAssignDiskType to avoid duplicate
MatchStorageRule lookups.

Co-authored-by: Cursor <cursoragent@cursor.com>

* mini: fall back to -volume.disk for filer default disk type

weed server copies -volume.disk into the filer disk default when
-filer.disk is unset; weed mini did not, so metadata-log assigns sent
an empty disk type on clusters that only tag volumes (e.g. hot/warm).

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Chris Lu <chris.lu@gmail.com>
This commit is contained in:
authored and GitHub committed 2026-06-24 10:47:11 -07:00
1 parent d29e6ed98a
commit e1f89f85f2
5 files changed
+77 -2

No files matched your search

+6
View File
@@ -1305,6 +1305,12 @@ func runMini(cmd *Command, args []string) bool {
// on the default 10s waiting for background subscription streams.
miniFilerOptions.gracefulStopTimeout = 1 * time.Second
// Mirror weed server: fall back to -volume.disk so the filer's default
// disk type still tags metadata-log assigns when only -volume.disk is set.
if *miniFilerOptions.diskType == "" && *miniOptions.v.diskType != "" {
miniFilerOptions.diskType = miniOptions.v.diskType
}
// Start all services with proper dependency coordination
// This channel will be closed when all services are fully ready
fmt.Println("\n Starting SeaweedFS Mini ...")