赞
踩
KVM虚拟机,一般扩充硬盘的方法是通过virt-manager,添加新的虚拟硬盘。那么有没有直接挂栽host宿主机上的物理硬盘分区的方法呢? 这里做了一些实验。
1.首先打开现有虚拟机的配置文档,位置在 /etc/libvirt/qemu/vm-names.xml 可以看到,虚拟机自带的 两个disk 都是 type='file', device 分别是 disk、cdrom 。
我们要做的就是添加一个disk ,type=‘block’ 块设备。 这个要在 virsh 环境下编辑才可以
- virsh #进入virsh环境,下面的命令是在 virsh# 提示符之下执行的
- edit vm-name #如果你有多个文字编辑工具,会让你选择用哪一种来编辑
- #找到类似下面的语段,添加内容如下
- <disk type='block' device='disk'>
- <driver name='qemu' type='raw' cache='none'/> #这里的type=‘raw’表示是初始状态,未格式化
- <source dev='/dev/disk/by-uuid/de06200b-7f00-4d34-a8a3-de669a59bda9'/>
- <target dev='vdc' bus='virtio'/> # vdc vda之类的命名不影响显示结果
- </disk>
-
- #添加上面的语段后,保存退出,然后启动vm-name
- start vm-name
2. 挂栽新添加的分区
利用 fdisk -l 命令,查看是否出现了新添加的分区
如上图所示,我们设定的name是vdc,但是显示的是vda,系统自动命名的。
如果是已经格式化过的磁盘分区,且是ext4格式的,则可以直接mount到你想要的地方即可,不用重新格式化就能直接用。可以看一下我的实验:
可以看到,我将 /dev/vda 直接mount到 mnt这个文件夹了,df -Th 命令,可以看到系统挂栽的磁盘分区的格式和容量。
我在mnt下新建了 test.txt文档,并写入了一些数字。
同时还登录宿主机查看了一下这个文档,里面的数字和虚拟机编辑后的不一致,还保留了之前的内容。 在宿主机中将该分区卸载,重新挂栽后,再查看test.txt 文档,则内容就变成了和虚拟机中一样了。
若要每次虚拟机开机直接mount到指定目录,请参考我的其他博客内容:
3.几点注意事项
A 采用上述方法为虚拟机添加物理硬盘后,需要保持物理硬盘在线才能正常启动虚拟机。如果 移除了物理硬盘,需要采用上述方法,将对应的disk 删除。否则会出现错误提醒。
B保持物理硬盘正常即可,host可以不用挂该物理硬盘到自己的文件系统就可以使用。也就是说,只需要vm直接以 UUID配置到上述文档中,不需要host先挂栽,然后vm再挂栽。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。