Deprecate root disk for disk caching (#14527)

This PR modifies #14513 to issue a deprecation
warning rather than reject settings on startup.
This commit is contained in:
Poorna 2022-03-10 18:42:44 -08:00 committed by GitHub
parent 91d419ee6c
commit 75b925c326
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 12 deletions

View File

@ -31,6 +31,7 @@ import (
objectlock "github.com/minio/minio/internal/bucket/object/lock"
"github.com/minio/minio/internal/color"
"github.com/minio/minio/internal/config/cache"
"github.com/minio/minio/internal/disk"
"github.com/minio/minio/internal/hash"
xhttp "github.com/minio/minio/internal/http"
"github.com/minio/minio/internal/logger"
@ -594,12 +595,23 @@ func newCache(config cache.Config) ([]*diskCache, bool, error) {
if err != nil {
return nil, false, err
}
var warningMsg string
for i, dir := range config.Drives {
// skip diskCache creation for cache drives missing a format.json
if formats[i] == nil {
caches = append(caches, nil)
continue
}
if !globalIsCICD && len(warningMsg) == 0 {
rootDsk, err := disk.IsRootDisk(dir, "/")
if err != nil {
warningMsg = fmt.Sprintf("Invalid cache dir %s err : %s", dir, err.Error())
}
if rootDsk {
warningMsg = fmt.Sprintf("cache dir cannot be part of root disk: %s", dir)
}
}
if err := checkAtimeSupport(dir); err != nil {
return nil, false, fmt.Errorf("Atime support required for disk caching, atime check failed with %w", err)
}
@ -610,6 +622,9 @@ func newCache(config cache.Config) ([]*diskCache, bool, error) {
}
caches = append(caches, cache)
}
if warningMsg != "" {
logger.Info(color.Yellow(fmt.Sprintf("WARNING: Usage of root disk for disk caching is deprecated: %s", warningMsg)))
}
return caches, migrating, nil
}

View File

@ -20,12 +20,10 @@ package cache
import (
"encoding/json"
"errors"
"os"
"path/filepath"
"strings"
"github.com/minio/minio/internal/config"
"github.com/minio/minio/internal/disk"
"github.com/minio/pkg/ellipses"
)
@ -117,20 +115,10 @@ func parseCacheDrives(drives string) ([]string, error) {
endpoints = append(endpoints, d)
}
}
isCICD := os.Getenv("MINIO_CI_CD") != "" || os.Getenv("CI") != ""
for _, d := range endpoints {
if !filepath.IsAbs(d) {
return nil, config.ErrInvalidCacheDrivesValue(nil).Msg("cache dir should be absolute path: %s", d)
}
if !isCICD {
rootDsk, err := disk.IsRootDisk(d, "/")
if err != nil {
return nil, config.ErrInvalidCacheDrivesValue(nil).Msg("Invalid cache dir %s err : %s", d, err.Error())
}
if rootDsk {
return nil, config.ErrInvalidCacheDrivesValue(nil).Msg("cache dir cannot be part of root disk: %s", d)
}
}
}
return endpoints, nil
}