guest os为centos:
1)进入guest,执行fdisk -l ,发现只有一块磁盘sda
2)在host上新建一块qcow2格式磁盘
qemu-img create -f qcow2 test_disk.qcow2 10G
并且编写对应的xml文件test_disk.xml:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/tony/work/vm_demo/disk/test_disk.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
<driver name='qemu' type='qcow2'/>
<source file='/home/tony/work/vm_demo/disk/test_disk.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
3) 在host上执行virsh attach-device domain test_disk.xml,执行完后在centos 执行fdisk -l
会发现多了一块磁盘vda
4)在guest上执行fdisk /dev/vda 给vda创建一个分区vda1,挂载之后就可以正常使用了
5)在host上执行virsh detach-device domain test_disk.xml会热删除该磁盘,此时分为两种情况
(1)该分区在执行detach时已经umount,此时guest host都正常
(2) 该分区在执行detach时没有umount,执行detach在guest上会出现filesystem force shutdown
这个磁盘也能删除,如果再次attach,在guest上也可以正常添加,但是guest上的设备描述符会由原来的vda
变为vdb,如果继续在没有umount时detach,再attach描述符会由vdb变为vdc
如果重启guest设备描述符变为正常
guest os为win7:
步骤同上,但是不存在挂载状态detach设备描述符异常的问题
NIC 热添加过程和磁盘完全相同也是用attach-device和detach-device,不同的是设备的xml配置文件,下面贴出示例:
<interface type='direct'>
<mac address='14:34:56:24:78:5a' />
<source dev='enp0s25' mode='bridge' />
<model type='virtio' />
<address type='pci' slot='0x12' />
</interface>
<mac address='14:34:56:24:78:5a' />
<source dev='enp0s25' mode='bridge' />
<model type='virtio' />
<address type='pci' slot='0x12' />
</interface>
attach和detach参数:
--persistent 让实时更改持久,立即生效
--config 影响下一次引导,之后一直生效
--live 影响运行的域,重新启动失效
--current 影响当前域
--config 影响下一次引导,之后一直生效
--live 影响运行的域,重新启动失效
--current 影响当前域