mirror of
https://github.com/minio/minio.git
synced 2025-11-07 12:52:58 -05:00
handle fresh setup with mixed drives (#10273)
fresh drive setups when one of the drive is a root drive, we should ignore such a root drive and not proceed to format. This PR handles this properly by marking the disks which are root disk and they are taken offline.
This commit is contained in:
@@ -45,7 +45,6 @@ import (
|
||||
"github.com/minio/minio/pkg/disk"
|
||||
"github.com/minio/minio/pkg/env"
|
||||
xioutil "github.com/minio/minio/pkg/ioutil"
|
||||
"github.com/minio/minio/pkg/mountinfo"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -97,7 +96,7 @@ type xlStorage struct {
|
||||
|
||||
globalSync bool
|
||||
|
||||
diskMount bool // indicates if the path is an actual mount.
|
||||
rootDisk bool
|
||||
|
||||
diskID string
|
||||
|
||||
@@ -240,6 +239,11 @@ func newXLStorage(path string, hostname string) (*xlStorage, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
rootDisk, err := disk.IsRootDisk(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
p := &xlStorage{
|
||||
diskPath: path,
|
||||
hostname: hostname,
|
||||
@@ -250,13 +254,13 @@ func newXLStorage(path string, hostname string) (*xlStorage, error) {
|
||||
},
|
||||
},
|
||||
globalSync: env.Get(config.EnvFSOSync, config.EnableOff) == config.EnableOn,
|
||||
diskMount: mountinfo.IsLikelyMountPoint(path),
|
||||
// Allow disk usage crawler to run with up to 2 concurrent
|
||||
// I/O ops, if and when activeIOCount reaches this
|
||||
// value disk usage routine suspends the crawler
|
||||
// and waits until activeIOCount reaches below this threshold.
|
||||
maxActiveIOCount: 3,
|
||||
ctx: GlobalContext,
|
||||
rootDisk: rootDisk,
|
||||
}
|
||||
|
||||
// Success.
|
||||
@@ -412,16 +416,11 @@ func (s *xlStorage) DiskInfo() (info DiskInfo, err error) {
|
||||
return info, err
|
||||
}
|
||||
|
||||
rootDisk, err := disk.IsRootDisk(s.diskPath)
|
||||
if err != nil {
|
||||
return info, err
|
||||
}
|
||||
|
||||
info = DiskInfo{
|
||||
Total: di.Total,
|
||||
Free: di.Free,
|
||||
Used: di.Total - di.Free,
|
||||
RootDisk: rootDisk,
|
||||
RootDisk: s.rootDisk,
|
||||
MountPath: s.diskPath,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user