lxd: github.com/lxc/lxd/lxd/migration Index | Files

package migration

import "github.com/lxc/lxd/lxd/migration"

Package migration is a generated protocol buffer package.

It is generated from these files:

lxd/migration/migrate.proto

It has these top-level messages:

IDMapType
Config
Device
Snapshot
RsyncFeatures
ZfsFeatures
MigrationHeader
MigrationControl
MigrationSync
DumpStatsEntry
RestoreStatsEntry
StatsEntry

Index

Package Files

migrate.pb.go migration_volumes.go utils.go wsproto.go

Variables

var CRIUType_name = map[int32]string{
    0:  "CRIU_RSYNC",
    1:  "PHAUL",
    2:  "NONE",
}
var CRIUType_value = map[string]int32{
    "CRIU_RSYNC": 0,
    "PHAUL":      1,
    "NONE":       2,
}
var MigrationFSType_name = map[int32]string{
    0:  "RSYNC",
    1:  "BTRFS",
    2:  "ZFS",
    3:  "RBD",
}
var MigrationFSType_value = map[string]int32{
    "RSYNC": 0,
    "BTRFS": 1,
    "ZFS":   2,
    "RBD":   3,
}

func ProgressReader Uses

func ProgressReader(op *operations.Operation, key string, description string) func(io.ReadCloser) io.ReadCloser

ProgressReader reports the read progress.

func ProgressTracker Uses

func ProgressTracker(op *operations.Operation, key string, description string) *ioprogress.ProgressTracker

ProgressTracker returns a migration I/O tracker

func ProgressWriter Uses

func ProgressWriter(op *operations.Operation, key string, description string) func(io.WriteCloser) io.WriteCloser

ProgressWriter reports the write progress.

func ProtoRecv Uses

func ProtoRecv(ws *websocket.Conn, msg proto.Message) error

ProtoRecv gets a protobuf message from a websocket

func ProtoSend Uses

func ProtoSend(ws *websocket.Conn, msg proto.Message) error

ProtoSend sends a protobuf message over a websocket

func ProtoSendControl Uses

func ProtoSendControl(ws *websocket.Conn, err error)

ProtoSendControl sends a migration control message over a websocket

type CRIUType Uses

type CRIUType int32
const (
    CRIUType_CRIU_RSYNC CRIUType = 0
    CRIUType_PHAUL      CRIUType = 1
    CRIUType_NONE       CRIUType = 2
)

func (CRIUType) Enum Uses

func (x CRIUType) Enum() *CRIUType

func (CRIUType) EnumDescriptor Uses

func (CRIUType) EnumDescriptor() ([]byte, []int)

func (CRIUType) String Uses

func (x CRIUType) String() string

func (*CRIUType) UnmarshalJSON Uses

func (x *CRIUType) UnmarshalJSON(data []byte) error

type Config Uses

type Config struct {
    Key              *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"`
    Value            *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"`
    XXX_unrecognized []byte  `json:"-"`
}

func (*Config) Descriptor Uses

func (*Config) Descriptor() ([]byte, []int)

func (*Config) GetKey Uses

func (m *Config) GetKey() string

func (*Config) GetValue Uses

func (m *Config) GetValue() string

func (*Config) ProtoMessage Uses

func (*Config) ProtoMessage()

func (*Config) Reset Uses

func (m *Config) Reset()

func (*Config) String Uses

func (m *Config) String() string

type Device Uses

type Device struct {
    Name             *string   `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
    Config           []*Config `protobuf:"bytes,2,rep,name=config" json:"config,omitempty"`
    XXX_unrecognized []byte    `json:"-"`
}

func (*Device) Descriptor Uses

func (*Device) Descriptor() ([]byte, []int)

func (*Device) GetConfig Uses

func (m *Device) GetConfig() []*Config

func (*Device) GetName Uses

func (m *Device) GetName() string

func (*Device) ProtoMessage Uses

func (*Device) ProtoMessage()

func (*Device) Reset Uses

func (m *Device) Reset()

func (*Device) String Uses

func (m *Device) String() string

type DumpStatsEntry Uses

type DumpStatsEntry struct {
    FreezingTime       *uint32 `protobuf:"varint,1,req,name=freezing_time,json=freezingTime" json:"freezing_time,omitempty"`
    FrozenTime         *uint32 `protobuf:"varint,2,req,name=frozen_time,json=frozenTime" json:"frozen_time,omitempty"`
    MemdumpTime        *uint32 `protobuf:"varint,3,req,name=memdump_time,json=memdumpTime" json:"memdump_time,omitempty"`
    MemwriteTime       *uint32 `protobuf:"varint,4,req,name=memwrite_time,json=memwriteTime" json:"memwrite_time,omitempty"`
    PagesScanned       *uint64 `protobuf:"varint,5,req,name=pages_scanned,json=pagesScanned" json:"pages_scanned,omitempty"`
    PagesSkippedParent *uint64 `protobuf:"varint,6,req,name=pages_skipped_parent,json=pagesSkippedParent" json:"pages_skipped_parent,omitempty"`
    PagesWritten       *uint64 `protobuf:"varint,7,req,name=pages_written,json=pagesWritten" json:"pages_written,omitempty"`
    IrmapResolve       *uint32 `protobuf:"varint,8,opt,name=irmap_resolve,json=irmapResolve" json:"irmap_resolve,omitempty"`
    PagesLazy          *uint64 `protobuf:"varint,9,req,name=pages_lazy,json=pagesLazy" json:"pages_lazy,omitempty"`
    PagePipes          *uint64 `protobuf:"varint,10,opt,name=page_pipes,json=pagePipes" json:"page_pipes,omitempty"`
    PagePipeBufs       *uint64 `protobuf:"varint,11,opt,name=page_pipe_bufs,json=pagePipeBufs" json:"page_pipe_bufs,omitempty"`
    XXX_unrecognized   []byte  `json:"-"`
}

This one contains statistics about dump/restore process

func (*DumpStatsEntry) Descriptor Uses

func (*DumpStatsEntry) Descriptor() ([]byte, []int)

func (*DumpStatsEntry) GetFreezingTime Uses

func (m *DumpStatsEntry) GetFreezingTime() uint32

func (*DumpStatsEntry) GetFrozenTime Uses

func (m *DumpStatsEntry) GetFrozenTime() uint32

func (*DumpStatsEntry) GetIrmapResolve Uses

func (m *DumpStatsEntry) GetIrmapResolve() uint32

func (*DumpStatsEntry) GetMemdumpTime Uses

func (m *DumpStatsEntry) GetMemdumpTime() uint32

func (*DumpStatsEntry) GetMemwriteTime Uses

func (m *DumpStatsEntry) GetMemwriteTime() uint32

func (*DumpStatsEntry) GetPagePipeBufs Uses

func (m *DumpStatsEntry) GetPagePipeBufs() uint64

func (*DumpStatsEntry) GetPagePipes Uses

func (m *DumpStatsEntry) GetPagePipes() uint64

func (*DumpStatsEntry) GetPagesLazy Uses

func (m *DumpStatsEntry) GetPagesLazy() uint64

func (*DumpStatsEntry) GetPagesScanned Uses

func (m *DumpStatsEntry) GetPagesScanned() uint64

func (*DumpStatsEntry) GetPagesSkippedParent Uses

func (m *DumpStatsEntry) GetPagesSkippedParent() uint64

func (*DumpStatsEntry) GetPagesWritten Uses

func (m *DumpStatsEntry) GetPagesWritten() uint64

func (*DumpStatsEntry) ProtoMessage Uses

func (*DumpStatsEntry) ProtoMessage()

func (*DumpStatsEntry) Reset Uses

func (m *DumpStatsEntry) Reset()

func (*DumpStatsEntry) String Uses

func (m *DumpStatsEntry) String() string

type IDMapType Uses

type IDMapType struct {
    Isuid            *bool  `protobuf:"varint,1,req,name=isuid" json:"isuid,omitempty"`
    Isgid            *bool  `protobuf:"varint,2,req,name=isgid" json:"isgid,omitempty"`
    Hostid           *int32 `protobuf:"varint,3,req,name=hostid" json:"hostid,omitempty"`
    Nsid             *int32 `protobuf:"varint,4,req,name=nsid" json:"nsid,omitempty"`
    Maprange         *int32 `protobuf:"varint,5,req,name=maprange" json:"maprange,omitempty"`
    XXX_unrecognized []byte `json:"-"`
}

func (*IDMapType) Descriptor Uses

func (*IDMapType) Descriptor() ([]byte, []int)

func (*IDMapType) GetHostid Uses

func (m *IDMapType) GetHostid() int32

func (*IDMapType) GetIsgid Uses

func (m *IDMapType) GetIsgid() bool

func (*IDMapType) GetIsuid Uses

func (m *IDMapType) GetIsuid() bool

func (*IDMapType) GetMaprange Uses

func (m *IDMapType) GetMaprange() int32

func (*IDMapType) GetNsid Uses

func (m *IDMapType) GetNsid() int32

func (*IDMapType) ProtoMessage Uses

func (*IDMapType) ProtoMessage()

func (*IDMapType) Reset Uses

func (m *IDMapType) Reset()

func (*IDMapType) String Uses

func (m *IDMapType) String() string

type MigrationControl Uses

type MigrationControl struct {
    Success *bool `protobuf:"varint,1,req,name=success" json:"success,omitempty"`
    // optional failure message if sending a failure
    Message          *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
    XXX_unrecognized []byte  `json:"-"`
}

func (*MigrationControl) Descriptor Uses

func (*MigrationControl) Descriptor() ([]byte, []int)

func (*MigrationControl) GetMessage Uses

func (m *MigrationControl) GetMessage() string

func (*MigrationControl) GetSuccess Uses

func (m *MigrationControl) GetSuccess() bool

func (*MigrationControl) ProtoMessage Uses

func (*MigrationControl) ProtoMessage()

func (*MigrationControl) Reset Uses

func (m *MigrationControl) Reset()

func (*MigrationControl) String Uses

func (m *MigrationControl) String() string

type MigrationFSType Uses

type MigrationFSType int32
const (
    MigrationFSType_RSYNC MigrationFSType = 0
    MigrationFSType_BTRFS MigrationFSType = 1
    MigrationFSType_ZFS   MigrationFSType = 2
    MigrationFSType_RBD   MigrationFSType = 3
)

func (MigrationFSType) Enum Uses

func (x MigrationFSType) Enum() *MigrationFSType

func (MigrationFSType) EnumDescriptor Uses

func (MigrationFSType) EnumDescriptor() ([]byte, []int)

func (MigrationFSType) String Uses

func (x MigrationFSType) String() string

func (*MigrationFSType) UnmarshalJSON Uses

func (x *MigrationFSType) UnmarshalJSON(data []byte) error

type MigrationHeader Uses

type MigrationHeader struct {
    Fs               *MigrationFSType `protobuf:"varint,1,req,name=fs,enum=migration.MigrationFSType" json:"fs,omitempty"`
    Criu             *CRIUType        `protobuf:"varint,2,opt,name=criu,enum=migration.CRIUType" json:"criu,omitempty"`
    Idmap            []*IDMapType     `protobuf:"bytes,3,rep,name=idmap" json:"idmap,omitempty"`
    SnapshotNames    []string         `protobuf:"bytes,4,rep,name=snapshotNames" json:"snapshotNames,omitempty"`
    Snapshots        []*Snapshot      `protobuf:"bytes,5,rep,name=snapshots" json:"snapshots,omitempty"`
    Predump          *bool            `protobuf:"varint,7,opt,name=predump" json:"predump,omitempty"`
    RsyncFeatures    *RsyncFeatures   `protobuf:"bytes,8,opt,name=rsyncFeatures" json:"rsyncFeatures,omitempty"`
    Refresh          *bool            `protobuf:"varint,9,opt,name=refresh" json:"refresh,omitempty"`
    ZfsFeatures      *ZfsFeatures     `protobuf:"bytes,10,opt,name=zfsFeatures" json:"zfsFeatures,omitempty"`
    XXX_unrecognized []byte           `json:"-"`
}

func TypesToHeader Uses

func TypesToHeader(types ...Type) MigrationHeader

TypesToHeader converts one or more Types to a MigrationHeader. It uses the first type argument supplied to indicate the preferred migration method and sets the MigrationHeader's Fs type to that. If the preferred type is ZFS then it will also set the header's optional ZfsFeatures. If the fallback Rsync type is present in any of the types even if it is not preferred, then its optional features are added to the header's RsyncFeatures, allowing for fallback negotiation to take place on the farside.

func (*MigrationHeader) Descriptor Uses

func (*MigrationHeader) Descriptor() ([]byte, []int)

func (*MigrationHeader) GetCriu Uses

func (m *MigrationHeader) GetCriu() CRIUType

func (*MigrationHeader) GetFs Uses

func (m *MigrationHeader) GetFs() MigrationFSType

func (*MigrationHeader) GetIdmap Uses

func (m *MigrationHeader) GetIdmap() []*IDMapType

func (*MigrationHeader) GetPredump Uses

func (m *MigrationHeader) GetPredump() bool

func (*MigrationHeader) GetRefresh Uses

func (m *MigrationHeader) GetRefresh() bool

func (*MigrationHeader) GetRsyncFeatures Uses

func (m *MigrationHeader) GetRsyncFeatures() *RsyncFeatures

func (*MigrationHeader) GetRsyncFeaturesSlice Uses

func (m *MigrationHeader) GetRsyncFeaturesSlice() []string

GetRsyncFeaturesSlice returns a slice of strings representing the supported RSYNC features

func (*MigrationHeader) GetSnapshotNames Uses

func (m *MigrationHeader) GetSnapshotNames() []string

func (*MigrationHeader) GetSnapshots Uses

func (m *MigrationHeader) GetSnapshots() []*Snapshot

func (*MigrationHeader) GetZfsFeatures Uses

func (m *MigrationHeader) GetZfsFeatures() *ZfsFeatures

func (*MigrationHeader) GetZfsFeaturesSlice Uses

func (m *MigrationHeader) GetZfsFeaturesSlice() []string

GetZfsFeaturesSlice returns a slice of strings representing the supported ZFS features

func (*MigrationHeader) ProtoMessage Uses

func (*MigrationHeader) ProtoMessage()

func (*MigrationHeader) Reset Uses

func (m *MigrationHeader) Reset()

func (*MigrationHeader) String Uses

func (m *MigrationHeader) String() string

type MigrationSync Uses

type MigrationSync struct {
    FinalPreDump     *bool  `protobuf:"varint,1,req,name=finalPreDump" json:"finalPreDump,omitempty"`
    XXX_unrecognized []byte `json:"-"`
}

func (*MigrationSync) Descriptor Uses

func (*MigrationSync) Descriptor() ([]byte, []int)

func (*MigrationSync) GetFinalPreDump Uses

func (m *MigrationSync) GetFinalPreDump() bool

func (*MigrationSync) ProtoMessage Uses

func (*MigrationSync) ProtoMessage()

func (*MigrationSync) Reset Uses

func (m *MigrationSync) Reset()

func (*MigrationSync) String Uses

func (m *MigrationSync) String() string

type RestoreStatsEntry Uses

type RestoreStatsEntry struct {
    PagesCompared    *uint64 `protobuf:"varint,1,req,name=pages_compared,json=pagesCompared" json:"pages_compared,omitempty"`
    PagesSkippedCow  *uint64 `protobuf:"varint,2,req,name=pages_skipped_cow,json=pagesSkippedCow" json:"pages_skipped_cow,omitempty"`
    ForkingTime      *uint32 `protobuf:"varint,3,req,name=forking_time,json=forkingTime" json:"forking_time,omitempty"`
    RestoreTime      *uint32 `protobuf:"varint,4,req,name=restore_time,json=restoreTime" json:"restore_time,omitempty"`
    PagesRestored    *uint64 `protobuf:"varint,5,opt,name=pages_restored,json=pagesRestored" json:"pages_restored,omitempty"`
    XXX_unrecognized []byte  `json:"-"`
}

func (*RestoreStatsEntry) Descriptor Uses

func (*RestoreStatsEntry) Descriptor() ([]byte, []int)

func (*RestoreStatsEntry) GetForkingTime Uses

func (m *RestoreStatsEntry) GetForkingTime() uint32

func (*RestoreStatsEntry) GetPagesCompared Uses

func (m *RestoreStatsEntry) GetPagesCompared() uint64

func (*RestoreStatsEntry) GetPagesRestored Uses

func (m *RestoreStatsEntry) GetPagesRestored() uint64

func (*RestoreStatsEntry) GetPagesSkippedCow Uses

func (m *RestoreStatsEntry) GetPagesSkippedCow() uint64

func (*RestoreStatsEntry) GetRestoreTime Uses

func (m *RestoreStatsEntry) GetRestoreTime() uint32

func (*RestoreStatsEntry) ProtoMessage Uses

func (*RestoreStatsEntry) ProtoMessage()

func (*RestoreStatsEntry) Reset Uses

func (m *RestoreStatsEntry) Reset()

func (*RestoreStatsEntry) String Uses

func (m *RestoreStatsEntry) String() string

type RsyncFeatures Uses

type RsyncFeatures struct {
    Xattrs           *bool  `protobuf:"varint,1,opt,name=xattrs" json:"xattrs,omitempty"`
    Delete           *bool  `protobuf:"varint,2,opt,name=delete" json:"delete,omitempty"`
    Compress         *bool  `protobuf:"varint,3,opt,name=compress" json:"compress,omitempty"`
    Bidirectional    *bool  `protobuf:"varint,4,opt,name=bidirectional" json:"bidirectional,omitempty"`
    XXX_unrecognized []byte `json:"-"`
}

func (*RsyncFeatures) Descriptor Uses

func (*RsyncFeatures) Descriptor() ([]byte, []int)

func (*RsyncFeatures) GetBidirectional Uses

func (m *RsyncFeatures) GetBidirectional() bool

func (*RsyncFeatures) GetCompress Uses

func (m *RsyncFeatures) GetCompress() bool

func (*RsyncFeatures) GetDelete Uses

func (m *RsyncFeatures) GetDelete() bool

func (*RsyncFeatures) GetXattrs Uses

func (m *RsyncFeatures) GetXattrs() bool

func (*RsyncFeatures) ProtoMessage Uses

func (*RsyncFeatures) ProtoMessage()

func (*RsyncFeatures) Reset Uses

func (m *RsyncFeatures) Reset()

func (*RsyncFeatures) String Uses

func (m *RsyncFeatures) String() string

type Snapshot Uses

type Snapshot struct {
    Name             *string   `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
    LocalConfig      []*Config `protobuf:"bytes,2,rep,name=localConfig" json:"localConfig,omitempty"`
    Profiles         []string  `protobuf:"bytes,3,rep,name=profiles" json:"profiles,omitempty"`
    Ephemeral        *bool     `protobuf:"varint,4,req,name=ephemeral" json:"ephemeral,omitempty"`
    LocalDevices     []*Device `protobuf:"bytes,5,rep,name=localDevices" json:"localDevices,omitempty"`
    Architecture     *int32    `protobuf:"varint,6,req,name=architecture" json:"architecture,omitempty"`
    Stateful         *bool     `protobuf:"varint,7,req,name=stateful" json:"stateful,omitempty"`
    CreationDate     *int64    `protobuf:"varint,8,opt,name=creation_date,json=creationDate" json:"creation_date,omitempty"`
    LastUsedDate     *int64    `protobuf:"varint,9,opt,name=last_used_date,json=lastUsedDate" json:"last_used_date,omitempty"`
    XXX_unrecognized []byte    `json:"-"`
}

func (*Snapshot) Descriptor Uses

func (*Snapshot) Descriptor() ([]byte, []int)

func (*Snapshot) GetArchitecture Uses

func (m *Snapshot) GetArchitecture() int32

func (*Snapshot) GetCreationDate Uses

func (m *Snapshot) GetCreationDate() int64

func (*Snapshot) GetEphemeral Uses

func (m *Snapshot) GetEphemeral() bool

func (*Snapshot) GetLastUsedDate Uses

func (m *Snapshot) GetLastUsedDate() int64

func (*Snapshot) GetLocalConfig Uses

func (m *Snapshot) GetLocalConfig() []*Config

func (*Snapshot) GetLocalDevices Uses

func (m *Snapshot) GetLocalDevices() []*Device

func (*Snapshot) GetName Uses

func (m *Snapshot) GetName() string

func (*Snapshot) GetProfiles Uses

func (m *Snapshot) GetProfiles() []string

func (*Snapshot) GetStateful Uses

func (m *Snapshot) GetStateful() bool

func (*Snapshot) ProtoMessage Uses

func (*Snapshot) ProtoMessage()

func (*Snapshot) Reset Uses

func (m *Snapshot) Reset()

func (*Snapshot) String Uses

func (m *Snapshot) String() string

type StatsEntry Uses

type StatsEntry struct {
    Dump             *DumpStatsEntry    `protobuf:"bytes,1,opt,name=dump" json:"dump,omitempty"`
    Restore          *RestoreStatsEntry `protobuf:"bytes,2,opt,name=restore" json:"restore,omitempty"`
    XXX_unrecognized []byte             `json:"-"`
}

func (*StatsEntry) Descriptor Uses

func (*StatsEntry) Descriptor() ([]byte, []int)

func (*StatsEntry) GetDump Uses

func (m *StatsEntry) GetDump() *DumpStatsEntry

func (*StatsEntry) GetRestore Uses

func (m *StatsEntry) GetRestore() *RestoreStatsEntry

func (*StatsEntry) ProtoMessage Uses

func (*StatsEntry) ProtoMessage()

func (*StatsEntry) Reset Uses

func (m *StatsEntry) Reset()

func (*StatsEntry) String Uses

func (m *StatsEntry) String() string

type Type Uses

type Type struct {
    FSType   MigrationFSType // Transport mode selected.
    Features []string        // Feature hints for selected FSType transport mode.
}

Type represents the migration transport type. It indicates the method by which the migration can take place and what optional features are available.

func MatchTypes Uses

func MatchTypes(offer MigrationHeader, fallbackType MigrationFSType, ourTypes []Type) ([]Type, error)

MatchTypes attempts to find matching migration transport types between an offered type sent from a remote source and the types supported by a local storage pool. If matches are found then one or more Types are returned containing the method and the matching optional features present in both. The function also takes a fallback type which is used as an additional offer type preference in case the preferred remote type is not compatible with the local type available. It is expected that both sides of the migration will support the fallback type for the volume's content type that is being migrated.

type VolumeSourceArgs Uses

type VolumeSourceArgs struct {
    Name          string
    Snapshots     []string
    MigrationType Type
    TrackProgress bool
    MultiSync     bool
    FinalSync     bool
    Data          interface{} // Optional store to persist storage driver state between MultiSync phases.
}

VolumeSourceArgs represents the arguments needed to setup a volume migration source.

type VolumeTargetArgs Uses

type VolumeTargetArgs struct {
    Name          string
    Description   string
    Config        map[string]string
    Snapshots     []string
    MigrationType Type
    TrackProgress bool
    Refresh       bool
    Live          bool
}

VolumeTargetArgs represents the arguments needed to setup a volume migration sink.

type ZfsFeatures Uses

type ZfsFeatures struct {
    Compress         *bool  `protobuf:"varint,1,opt,name=compress" json:"compress,omitempty"`
    XXX_unrecognized []byte `json:"-"`
}

func (*ZfsFeatures) Descriptor Uses

func (*ZfsFeatures) Descriptor() ([]byte, []int)

func (*ZfsFeatures) GetCompress Uses

func (m *ZfsFeatures) GetCompress() bool

func (*ZfsFeatures) ProtoMessage Uses

func (*ZfsFeatures) ProtoMessage()

func (*ZfsFeatures) Reset Uses

func (m *ZfsFeatures) Reset()

func (*ZfsFeatures) String Uses

func (m *ZfsFeatures) String() string

Package migration imports 10 packages (graph) and is imported by 33 packages. Updated 2020-02-27. Refresh now. Tools for package owners.