Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AlignedBlock

func AlignedBlock(BlockSize int) []byte

    AlignedBlock - pass through to directio implementation.

    func DisableDirectIO

    func DisableDirectIO(f *os.File) error

      DisableDirectIO - disables directio mode.

      func Fdatasync

      func Fdatasync(f *os.File) error

        Fdatasync - fdatasync() is similar to fsync(), but does not flush modified metadata unless that metadata is needed in order to allow a subsequent data retrieval to be correctly handled. For example, changes to st_atime or st_mtime (respectively, time of last access and time of last modification; see inode(7)) do not require flushing because they are not necessary for a subsequent data read to be handled correctly. On the other hand, a change to the file size (st_size, as made by say ftruncate(2)), would require a metadata flush.

        The aim of fdatasync() is to reduce disk activity for applications that do not require all metadata to be synchronized with the disk.

        func GetHealthInfo

        func GetHealthInfo(ctx context.Context, drive, fsPath string) (Latency, Throughput, error)

          GetHealthInfo about the drive

          func IsRootDisk

          func IsRootDisk(diskPath string, rootDisk string) (bool, error)

            IsRootDisk returns if diskPath belongs to root-disk, i.e the disk mounted at "/"

            func OpenFileDirectIO

            func OpenFileDirectIO(filePath string, flag int, perm os.FileMode) (*os.File, error)

              OpenFileDirectIO - bypass kernel cache.

              func SameDisk

              func SameDisk(disk1, disk2 string) (bool, error)

                SameDisk reports whether di1 and di2 describe the same disk.

                Types

                type Info

                type Info struct {
                	Total  uint64
                	Free   uint64
                	Used   uint64
                	Files  uint64
                	Ffree  uint64
                	FSType string
                }

                  Info stat fs struct is container which holds following values Total - total size of the volume / disk Free - free size of the volume / disk Files - total inodes available Ffree - free inodes available FSType - file system type

                  func GetInfo

                  func GetInfo(path string) (info Info, err error)

                    GetInfo returns total and free bytes available in a directory, e.g. `/`.

                    type Latency

                    type Latency struct {
                    	Avg          float64 `json:"avg_secs,omitempty"`
                    	Percentile50 float64 `json:"percentile50_secs,omitempty"`
                    	Percentile90 float64 `json:"percentile90_secs,omitempty"`
                    	Percentile99 float64 `json:"percentile99_secs,omitempty"`
                    	Min          float64 `json:"min_secs,omitempty"`
                    	Max          float64 `json:"max_secs,omitempty"`
                    }

                      Latency holds latency information for write operations to the drive

                      type Throughput

                      type Throughput struct {
                      	Avg          float64 `json:"avg_bytes_per_sec,omitempty"`
                      	Percentile50 float64 `json:"percentile50_bytes_per_sec,omitempty"`
                      	Percentile90 float64 `json:"percentile90_bytes_per_sec,omitempty"`
                      	Percentile99 float64 `json:"percentile99_bytes_per_sec,omitempty"`
                      	Min          float64 `json:"min_bytes_per_sec,omitempty"`
                      	Max          float64 `json:"max_bytes_per_sec,omitempty"`
                      }

                        Throughput holds throughput information for write operations to the drive