`
lantian_123
  • 浏览: 1365344 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【libvirt】虚拟机卸载磁盘,重启仍然存在的问题

 
阅读更多

此文来自于我在libvirt mail-list 中提的一个问题:

 

 写道
hi,all

I use Java api `domain.attachDeviceFlags(xml, 0);` to add a disk for domain. the xml file like this:

<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/dev/sp1353486595267/v1353488096262'/>
<target dev='vdb' bus='virtio'/>
</disk>

then I use command `virsh detach-disk $domain vdb` to remove the disk.

what I said above have no any errors.but the problem is when I restart this vm ,the disk still exist,because I see it from the command `virsh dumpxml $domain` ,how to remove the disk from this domain persistently.

thanks in advance.

>zhijun

 随后Eric Blake给我做了详细的回答:

 

 写道
Use the flags argument. By passing '0' (aka VIR_DOMAIN_AFFECT_CURRENT
in the C API counterpart), you are explicitly requesting that only the
current configuration be modified (for a running domain, that means you
are doing a one-time hotplug, but not to remember it for the next boot
).
If you want to simultaneously hotplug _and_ affect the next boot, you
need to instead pass whatever the Java binding is for the underlying
flags VIR_DOMAIN_AFFECT_LIVE|VIR_DOMAIN_AFFECT_CONFIG of the C API
(sorry, I don't know the Java binding well enough to know what that
binding is).

 

三个参数的区别:

VIR_DOMAIN_AFFECT_CURRENT: specifies that the device allocation is made based on current domain state.for a running domain, that means you are doing a one-time hotplug, but not to remember it for the next boot.     ·virsh detach-disk ·只在当前状态下有效,重启后又会attach上disk

VIR_DOMAIN_AFFECT_LIVE: specifies that the device shall be allocated to the active domain instance only and is not added to the persisted domain configuration(并不会持久到xml文件中)

VIR_DOMAIN_AFFECT_CONFIG: specifies that the device shall be allocated to the persisted domain configuration only  (虚拟机在关机状态下,disk会持久化到配置文件中,如果是开机的状态,disk并不会写到配置文件中,相当于 VIR_DOMAIN_AFFECT_LIVE)

 

卸载卷时需要加上参数(pesistent)

 

virsh detach-disk vdx --persistent
 

 

 

 非常感谢他的回答。

参考:http://libvirt.org/html/libvirt-libvirt.html#virDomainAttachDeviceFlags

分享到:
评论

相关推荐

    PHP简单管理Libvirt虚拟机

    1. **启动虚拟机**:通过调用Libvirt API,可以启动指定的虚拟机实例,使得开发者无需深入理解底层命令行工具即可完成启动操作。 2. **关闭虚拟机**:同样利用Libvirt接口,能够安全地关闭正在运行的虚拟机,确保...

    terraform-libvirt-demo:使用Terraform将libvirt虚拟机部署为代码

    1. `main.tf`:这是Terraform的主配置文件,它定义了libvirt provider、虚拟机实例、网络配置、磁盘等资源。例如,我们可能需要指定libvirt连接的URI、虚拟机的CPU数量、内存大小、操作系统镜像以及网络设置等。 2....

    ansible-libvirt-vm-IaC:部署为代码libvirt虚拟机的Ansible角色

    3. **Libvirt模块**:Ansible中的一些模块如`libvirt_domain`、`libvirt_volume`和`libvirt_network`可能被用到,它们分别用于创建虚拟机实例、管理虚拟磁盘和配置网络。 4. **模板文件**:可能包含用Jinja2模板...

    使用libvirt管理kvm虚拟机.txt

    ### 使用libvirt管理KVM虚拟机 #### 一、引言 随着云计算和虚拟化技术的发展,越来越多的企业和个人用户选择使用虚拟化技术来提高资源利用率并简化管理流程。其中,KVM(Kernel-based Virtual Machine)作为Linux...

    virt-manager:通过libvirt管理虚拟机的桌面工具

    还提供了几种命令行工具: virt-install :创建新的libvirt虚拟机virt-clone :复制现有的libvirt虚拟机virt-xml :编辑现有的libvirt虚拟机/操作libvirt XML 有关依赖项信息和安装说明,请参阅文件。 如果您只想...

    Libvirt创建虚拟机的xml中部分参数解析--Domain vcpu numa

    本篇文章将深入探讨Libvirt创建虚拟机时XML配置文件中的"Domain vcpu"和"numa"参数,帮助读者理解如何通过这些参数优化虚拟机性能。 首先,我们来解释"vcpu"(Virtual CPUs)参数。vCPU是虚拟机的逻辑处理器,它们...

    libvirt_vmcfg:用于libvirt虚拟机配置的XML构建器

    libvirt_vmcfg libvirt_vmcfg是用于生成XML VM规范以供libvirt使用的库。 它处于Alpha状态,但欢迎拉取请求。 由于我还有其他优先事项,目前的文档记录很差。 有时间时,我将创建更好的文档。 例子 域生成器 from...

    libvirt_exporter:适用于libvirt的Prometheus指标导出器

    不幸的是,我们在Kumina仍然需要此导出器与不支持此API调用的libvirt的较早版本兼容。 正在导出以下指标/标签: libvirt_domain_block_stats_read_bytes_total{domain="...",uuid="...",source_file="...",targ

    Libvirt 介绍

    3. **Cinder**:尽管 Cinder 直接与后端存储系统交互,但 Libvirt 参与了卷的挂载和卸载,以及在虚拟机内部使用 Cinder 卷。 4. **Ironic**:对于物理机管理,Ironic 也可能会使用 Libvirt 的部分功能,特别是在...

    Python库 | libvirt_vmcfg-0.0.3-py2.py3-none-any.whl

    4. **存储管理**:挂载、卸载虚拟磁盘,或者调整磁盘大小。 5. **设备管理**:添加、移除虚拟设备,如网卡、显卡、硬盘等。 6. **迁移操作**:支持在不同的libvirt主机之间迁移虚拟机。 在实际开发中,`libvirt_...

    libvirt-1.3.5.tar.gz

    在libvirt中,虚拟机的磁盘可以存储在本地文件系统、块设备、网络存储(如NFS、iSCSI)或者云存储上。libvirt提供了一套完整的API来创建、删除、迁移和管理这些存储池和卷。 7. **安全特性** libvirt支持多种...

    Libvirt虚拟化技术介绍.pdf

    Libvirt虚拟化技术是当前使用最广泛的对KVM虚拟机进行管理的工具和应用程序接口。Libvirt支持多种虚拟化方案,既支持包括KVM、QEMU、Xen、VMware、VirtualBox等在内的平台虚拟化方案,又支持OpenVZ、LXC等Linux容器...

    libvirt-java0.4.7

    `Domain`类提供了丰富的接口,如启动、暂停、停止、重启虚拟机,以及查询虚拟机状态、配置和性能数据。 3. **网络和存储管理**:libvirt-java支持虚拟网络和存储设备的管理。`Network`和`StoragePool`类分别用于...

    linux 中 卸载virbr0 虚拟网卡的方法

    2. **卸载libvirt**:通过`yum remove libvirt`命令直接卸载libvirt。这种方法更为直接,但需要注意,卸载libvirt可能会对其他依赖该服务的应用造成影响。 3. **再次检查状态**:再次使用`ifconfig -a`确认virbr0...

    qemu-2.11.0增加获取vm根目录磁盘使用率qga接口

    在QEMU 2.11.0中新增的获取磁盘使用率的接口,使得管理员无需在虚拟机内部运行命令就能了解根目录的存储使用情况,从而更好地管理资源分配和预防存储空间不足的问题。 实现这个功能可能涉及以下步骤: 1. **QGA...

    Foundations of Libvirt Development.pdf

    本文档是关于libvirt开发的资料,主要内容涉及使用Python搭建和维护虚拟机环境。libvirt是一个开源API库,它提供了对虚拟化技术如KVM, Xen和QEMU等进行管理的接口。在IT行业中,libvirt库被广泛用于开发和管理虚拟化...

    Virtlyst:使用 libvirt 管理虚拟机的 Web 界面

    使用 libvirt 管理虚拟机的 Web 界面 不要让您的虚拟化管理使用比主要虚拟化需求更多的资源。 非常适合简单性是虚拟化使用关键的小型部署 内存占用低,使用大约 5 MiB 的 RAM CPU使用率低 使用模板轻松定制外观和...

    virt-backup:备份由libvirt管理的kvm guest虚拟机

    虚拟备份 使用BlockCommit功能对由libvirt管理的KVM guest虚拟机进行外部备份。 主要目标是为Proxmox VE备份系统(无vma系统)做一个适度的替代方案,以自动备份磁盘(使用可选压缩)并轻松还原磁盘。 来宾是按组...

    KVM服务器添加虚拟机

    本文详细介绍了如何在KVM服务器上安装并配置Kali Linux虚拟机的过程,包括创建磁盘映像、安装虚拟机、常见问题解决方法以及配置网络访问等内容。通过遵循上述步骤,用户可以成功地在其KVM服务器上运行并管理Kali ...

Global site tag (gtag.js) - Google Analytics