virsh命令添加kvm虚拟机共享磁盘

在使用kvm虚拟机的时候,有时候部署一些应用如Oracle RAC、corosync等高可用的时候,往往会用到共享硬盘。比如本人在部署corosync+mysql高可用的时候就遇到了一些小问题(像我们这种折腾达人,肯定不会用nfs做共享存储),因此记录一下。

环境:

  • 宿主机当然是linux,否则也用不到kvm
  • 没有图形界面,否则直接virt-manager也很快。。

操作过程

新建一块虚拟盘

root@qujun:~# qemu-img -f raw shared.img 10G
要用raw格式,理论上来说应该qcow2也可以

编写xml文件

root@qujun:~# vim share-disk.xml

    <disk type='file' device='disk'> 
        //由于我们用的文件,disk的type是file,device字段则指我们想让这个盘在虚拟机中映射为什么设备。
      <driver name='qemu' type='raw' cache='none'/>
            // 驱动是指明我们底层是哪种虚拟化,同时指定磁盘为raw格式、cache为none
      <source file='shared.img'/>
            // 磁盘的映射源,有file、block、network、volume等值
      <target dev='vdb' bus='virtio'/>
            // 映射给虚拟机的盘符、使用的驱动,
      <shareable/>
            // 标记此硬盘将于多个虚拟机间共享。
    </disk>

<span style="color:red"> 上面比较重要的是cache要标记为none、有shareable标记,在最开始的时候我用的qcow2硬盘,并用writeback的cache导致一堆问题。
</span>

准备完之后,使用virsh命令挂载就可以了。
root@qujun:~# virsh attach-device --config Guest1 share-disk.xml

<span style="color:red">由于virtio是热添加驱动,这时候如果你系统支持硬盘热添加,就可以在系统中fdisk -l看到一块vdb的新硬盘啦,我们就可以像真实环境一样来部署高可用系统了~</span>

参考链接:
1、Redhat virsh命令操作手册
2、virsh xml 详解

转载于:https://blog.51cto.com/qujunorz/2059095

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值