mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-11-27 20:59:42 +08:00
Solaris disk support (#5638)
This commit is contained in:
parent
579ebbdf60
commit
d8bde9b96e
17
weed/stats/disk_common.go
Normal file
17
weed/stats/disk_common.go
Normal file
@ -0,0 +1,17 @@
|
||||
package stats
|
||||
|
||||
import "github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
|
||||
|
||||
func calculateDiskRemaining(disk *volume_server_pb.DiskStatus) {
|
||||
disk.Used = disk.All - disk.Free
|
||||
|
||||
if disk.All > 0 {
|
||||
disk.PercentFree = float32((float64(disk.Free) / float64(disk.All)) * 100)
|
||||
disk.PercentUsed = float32((float64(disk.Used) / float64(disk.All)) * 100)
|
||||
} else {
|
||||
disk.PercentFree = 0
|
||||
disk.PercentUsed = 0
|
||||
}
|
||||
|
||||
return
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
//go:build netbsd || plan9 || solaris
|
||||
// +build netbsd plan9 solaris
|
||||
//go:build netbsd || plan9
|
||||
// +build netbsd plan9
|
||||
|
||||
package stats
|
||||
|
||||
|
@ -15,10 +15,10 @@ func fillInDiskStatus(disk *volume_server_pb.DiskStatus) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
disk.All = fs.F_blocks * uint64(fs.F_bsize)
|
||||
disk.Free = fs.F_bfree * uint64(fs.F_bsize)
|
||||
disk.Used = disk.All - disk.Free
|
||||
disk.PercentFree = float32((float64(disk.Free) / float64(disk.All)) * 100)
|
||||
disk.PercentUsed = float32((float64(disk.Used) / float64(disk.All)) * 100)
|
||||
calculateDiskRemaining(disk)
|
||||
|
||||
return
|
||||
}
|
||||
|
24
weed/stats/disk_solaris.go
Normal file
24
weed/stats/disk_solaris.go
Normal file
@ -0,0 +1,24 @@
|
||||
//go:build solaris
|
||||
// +build solaris
|
||||
|
||||
package stats
|
||||
|
||||
import (
|
||||
"golang.org/x/sys/unix"
|
||||
|
||||
"github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
|
||||
)
|
||||
|
||||
func fillInDiskStatus(disk *volume_server_pb.DiskStatus) {
|
||||
var stat unix.Statvfs_t
|
||||
err := unix.Statvfs(disk.Dir, &stat)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
disk.All = stat.Blocks * uint64(stat.Bsize)
|
||||
disk.Free = stat.Bfree * uint64(stat.Bsize)
|
||||
calculateDiskRemaining(disk)
|
||||
|
||||
return
|
||||
}
|
@ -39,9 +39,7 @@ func fillInDiskStatus(disk *volume_server_pb.DiskStatus) {
|
||||
|
||||
return
|
||||
}
|
||||
disk.Used = disk.All - disk.Free
|
||||
disk.PercentFree = float32((float64(disk.Free) / float64(disk.All)) * 100)
|
||||
disk.PercentUsed = float32((float64(disk.Used) / float64(disk.All)) * 100)
|
||||
calculateDiskRemaining(disk)
|
||||
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user