在利用KVM的虚拟桌面应用中,有时候需要在虚拟桌面起来后还能够动态的挂载或卸载数据盘,以达到类似热插盘U盘或移动硬盘的效果,当然管理上需要做处理。如果纯粹中技术上来讲,大概是下面的几步:
1. 创建数据盘:
创建数据盘可以用qemu-img命令,但是缺点是创建完以后还需要在虚拟机里面做磁盘初始化(在磁盘管理里)和格式化。相比较而言,用libguestfs带的 virt-make-fs就好很多,一条命令完成磁盘创建和初始化的功能,挂到虚拟机里面马上就可以使用。
sudo virt-make-fs -F qcow2 -t ntfs -s 100G /home/.../workroom/test/temp test100G.img
2. 定义数据盘配置文件:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/.../workroom/test/test500G.img'/>
<target dev='hdf' bus='virtio' type='virtio'/>
</disk>
另存为 test-device-attach.xml
3. 启动虚拟机,假设虚拟机的domain名是 DomainAttachDisk;
4. 运行virsh命令完成挂载
sudo attach-device DomainAttachDisk /home/.../workroom/test/test-attach.xml
测试下来从挂载命令到操作系统识别大概30秒-60秒之间
5. 卸载命令:
sudo detach-device DomainAttachDisk /home/.../workroom/test/test-attach.xml
如果用应用程序把这些过程管理起来,那么就能做到动态的数据盘挂载和卸载功能。
分享到:
相关推荐
Libvirt命令大全,中文说明。
libvirt(virsh命令总结).docx
Libvirt Qemu KVM 教程大全
Openstack Libvirt 介绍 Openstack Libvirt 介绍 Openstack Libvirt 介绍
libvirt
libvirt-client-0.10.2-62.el6.x86_64.rpm libvirt-client-0.10.2-62.el6.x86_64.rpm
libvirt java绑定包 提供java API
虚拟化环境qemu 与libvirt的解析
libvirt-java0.4.7
libvirt源码,用于安装,0.9.11
libvirt开发基础资料(Foundations of Libvirt Development) 完整版
libvirt C语言应用开发指南。2020年9月版本,与2012年版本相比多了到2020-04-07的4个提交。
libvirt application development guide, python,libvirt应用开发指南python版
libvirt编译安装
libvirt-snmp 虚拟化网络管理接口工具,解包后编译,安装方法可以看http://blog.csdn.net/gg296231363/article/details/6927759
Libvirt 网络管理 Bridge模式及NAT模式的简单介绍
libvirt自用模板,为了便于理解在//后写了部分注释。可能会出现乱码,保存前删除掉就好。 libvirt配置我也不是很了解,这个只作为基础理解和使用。
libvirt-0.9.7,一个很老的版本,希望有人用到。 Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术。这些API在云计算的解决方案中广泛使用
Libvirt虚拟化技术介绍.pdf
内核级虚拟化技术KVM(Kernel-based Virtual Machine)和管理工具libvirt 对kvm&libvirt的一个介绍ppt 课程作业所用