如何给KVM虚拟机挂载独立磁盘并自动挂载 – 21运维
通知: .-欢迎从事运维的朋友加QQ群:717973157

如何给KVM虚拟机挂载独立磁盘并自动挂载

KVM 21运维 1745浏览 0评论

相信很多朋友玩kvm的时候,都会发现自己建立的虚拟主机磁盘不够用,一般都会用到两种方式去扩:
1,原始盘进行扩容,但扩容操作存在风险。
2,单独创建一块独立磁盘,进行独立挂载,安全高效。
这里我们第一个方式就不考虑了,使用上也没问题,现在直接考虑第二种。

一,创建磁盘并关联
首先,我们以虚拟机gitlabjenkins做演示。

[[email protected] data]# virsh  list  --all
 Id    Name                           State
----------------------------------------------------
 1     gitlabjenkins                  running

从KVM宿主机上创建磁盘:

qemu-img create -f raw /data/gjdisk2.img 1700G

关联具体kvm实例:

virsh attach-disk gitlabjenkins /data/gjdisk2.img vdd --cache none

这样,关联完成,登录kvm虚拟机可以通过fdisk进行查看了。查看关联情况:

Disk /dev/vdd: 1718.0 GB, 1717986918400 bytes
16 heads, 63 sectors/track, 3328812 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf2c918de

二,对挂载的磁盘分区、格式化、挂载
这个操作就很简单了,就是针对已经关联的磁盘进行分区、格式化、挂载。具体这里不写了,可以参考《linux如何挂载添加新磁盘》。

 

三,新添加的磁盘实现宿主机重启后自动挂载

这里有一个问题,我们按照第二步分区、格式化、挂载并写入分区表以后,kvm实例重启挂载没问题,但如果宿主机重启以后,那么新添加的磁盘是不会自动挂载的。原因是重启过程中,磁盘添加到kvm虚拟机实例过程会失败,宿主机无法将磁盘添加到一个没有启动的kvm实例中。
临时解决办法:kvm实例启动以后,执行磁盘添加命令。kvm实例单独mount -a即可。
根本办法:
1,添加磁盘qemu-img create -f raw /data/gjdisk2.img 1700G
2,编辑kvm实例配置文件xml,比如vr edit domain在最后disk标签下添加:
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’raw’ cache=’none’/>
<source file=’/data/gjdisk2.img’/>
<target dev=’vdd’ bus=’ide’/>
<address type=’drive’ controller=’0′ bus=’0′ target=’0′ unit=’1’/>
</disk>
3,重启kvm实例进去使用fdisk进行分区、格式化、挂载并修改分区表。  
这样每次不管是宿主机重启还是kvm实例重启,都会挂载单独的磁盘。

 

如上是常规添加的办法,还有一种办法是操作源磁盘,通过virt-resize拉升分区,缺点是1,文件比较大的情况下耽误时间比较久。2,kvm需要关机,不适合临时磁盘添加情况。

说明:
1,如果之前有单独添加了磁盘并已经挂载到了实例中的,一样的办法,也是要edit实例配置文件,这里需要注意的是source file路径。另外启动后磁盘的分区名字会发生变化,注意修改分区表即可。
2,这里添加的img格式的磁盘,不利于直接进行snapshot快照的创建、恢复操作,需要进行qcow2格式转换。如果有需要可以进行img转qcow2操作或者直接创建对应格式。

转载请注明:21运维 » 如何给KVM虚拟机挂载独立磁盘并自动挂载

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址