在 libvirt.org/go/libvirtxml 中,Domain 结构体中的磁盘类型属性值是'file' 或'block',磁盘大小的属性值是'size'。

要设置磁盘类型和磁盘大小,可以使用以下代码示例:

import (
    "github.com/libvirt/libvirt-go"
    "github.com/libvirt/libvirt-go-xml"
)

func createDomain() error {
    conn, err := libvirt.NewConnect("qemu:///system")
    if err != nil {
        return err
    }
    defer conn.Close()

    // 创建一个Domain配置对象
    domainXML := &libvirtxml.Domain{
        Type: "kvm",
        Name: "test",
        Memory: &libvirtxml.DomainMemory{
            Value: 1024,
            Unit:  "MiB",
        },
        VCPU: &libvirtxml.DomainVCPU{
            Value: 1,
        },
        Devices: &libvirtxml.DomainDeviceList{
            Disks: []libvirtxml.DomainDisk{
                {
                    Type: "file",
                    Device: "disk",
                    Driver: &libvirtxml.DomainDiskDriver{
                        Name: "qemu",
                        Type: "qcow2",
                    },
                    Source: &libvirtxml.DomainDiskSource{
                        File: &libvirtxml.DomainDiskSourceFile{
                            File: "/path/to/disk.qcow2",
                        },
                    },
                    Target: &libvirtxml.DomainDiskTarget{
                        Dev: "vda",
                        Bus: "virtio",
                    },
                    Size: &libvirtxml.DomainDiskSize{
                        Value: 10,
                        Unit:  "GiB",
                    },
                },
            },
        },
    }

    // 使用Domain配置对象创建一个Domain
    if _, err := conn.DomainDefineXML(domainXML.String()); err != nil {
        return err
    }

    return nil
}

在上面的代码中,我们创建了一个名为'test'的虚拟机,它有一个大小为10GB的磁盘,磁盘类型为'file'。要修改磁盘类型和磁盘大小,只需修改对应的属性值即可。

Libvirt XML Domain 结构体:磁盘类型和大小设置

原文地址: https://www.cveoy.top/t/topic/fZni 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录