• KVM虚机添加磁盘


    KVM虚拟机添加磁盘两种方法:
    1、添加虚拟磁盘文件
    2、添加物理磁盘
    需求
    1、/kvm/kvms目录是我们KVM磁盘镜像集中管理的位置,我们需要在/kvm/kvms下给ceph1虚拟机创建名为ceph1-vdb.qcow2的磁盘文件,大小为80G,作为ceph1的vdb磁盘
    2、将物理主机的物理磁盘/dev/nvme6n1作为ceph1的/dev/sda磁盘。如下

    一、添加虚拟磁盘文件给KVM虚拟机

    #创建虚拟磁盘文件
    qemu-img create -f qcow2 /kvm/kvms/ceph1-vdb.qcow2 80G
    #此处的虚拟磁盘文件位置在/kvm/kvms/下
    
    • 1
    • 2
    • 3
    [root@xa-radb-02 kvms]# qemu-img create -f qcow2 /kvm/kvms/ceph1-vdb.qcow2 80G
    [root@xa-radb-02 kvms]# ll /kvm/kvms/ceph1-vdb.qcow2 
    -rw-r--r-- 1 qemu qemu 20856963072 122 11:12 /kvm/kvms/ceph1-vdb.qcow2
    
    • 1
    • 2
    • 3

    使用virsh edit加载磁盘,添加完需要重启

    # virsh edit ceph1
    <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' cache='none'/>
          <source file='/kvm/kvms/ceph1-vdb.qcow2'/>
          <target dev='vdb' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
        </disk>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' cache='none'/>
          <source file='/kvm/kvms/ceph1-vdc.qcow2'/>
          <target dev='vdc' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0'/>
        </disk>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    保存并退出(重启服务器生效


    virsh attach-disk添加(需要重启服务器,current执行完命令直接生效)

    [root@xa-radb-02 kvms]# virsh attach-disk --help
      命令名称
        attach-disk - 附加磁盘设备
    
      概览
        attach-disk <domain> <source> <target> [--targetbus <字符串>] [--driver <字符串>] [--subdriver <字符串>] [--iothread <字符串>] [--cache <字符串>] [--io <字符串>] [--type <字符串>] [--mode <字符串>] [--sourcetype <字符串>] [--serial <字符串>] [--wwn <字符串>] [--alias <字符串>] [--rawio] [--address <字符串>] [--multifunction] [--print-xml] [--persistent] [--config] [--live] [--current]
    
      说明
        附加新磁盘设备.
    
      选项
        [--domain] <字符串>  域名,id 或 uuid
        [--source] <字符串>  磁盘设备源
        [--target] <字符串>  磁盘设备目标
        --targetbus <字符串>  target bus of disk device
        --driver <字符串>  磁盘设备驱动
        --subdriver <字符串>  磁盘设备副驱动
        --iothread <字符串>  IOThread to be used by supported device
        --cache <字符串>  磁盘设备的缓存模式
        --io <字符串>  io policy of disk device
        --type <字符串>  目标设备类型
        --mode <字符串>  设备读写模式
        --sourcetype <字符串>  源类型  (block|file)
        --serial <字符串>  磁盘设备序列号
        --wwn <字符串>  磁盘设备的 wwn
        --alias <字符串>  custom alias name of disk device
        --rawio          需要 rawio 容量
        --address <字符串>  磁盘设备地址
        --multifunction  在指定地址中使用多功能 pci
        --print-xml      输出 XML 文档而不是附加该磁盘
        --persistent     让实时更改持久
        --config         影响下一次引导
        --live           影响运行的域
        --current        影响当前域
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    # 创建qcow2格式磁盘
    # qemu-img create -f qcow2 /kvm/kvms/ceph3-vdd.qcow2 100G
    
    #运行完命令直接生效,但是destroy关机再start后磁盘就没了(正常reboot重启磁盘还在。已测试过),推荐使用config
    [root@xa-radb-02 kvms]# virsh attach-disk ceph3 /kvm/kvms/ceph3-vdd.qcow2 vdd --subdriver=qcow2 --current  
    #需要重启
    [root@xa-radb-02 kvms]# virsh attach-disk ceph3 /kvm/kvms/ceph3-vdd.qcow2 vdd --subdriver=qcow2 --config
    成功附加磁盘
    #为了确保生效,保存xml文件(不加此步骤重启后也会生效)
    [root@xa-radb-02 kvms]# virsh dumpxml ceph3 > /etc/libvirt/qemu/ceph3.xml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    二、添加物理磁盘到KVM虚拟机

    直接使用virsh edit工具来添加,添加完需要重启虚拟机

    物理磁盘的disk类型为block,driver类型为raw,source是物理磁盘的盘符uuid,address按如下写,如果新增物理盘不知道unit写多少,可以删除address行让其自动生成

    # virsh edit server
    <disk type='file' device='cdrom'>
          <driver name='qemu' type='raw'/>
          <target dev='sda' bus='sata'/>
          <readonly/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
        <disk type='block' device='disk'>
          <driver name='qemu' type='raw' cache='none' io='native'/>
          <source dev='/dev/nvme6n1'/>
          <target dev='vdd' bus='sata'/>
          <address type='drive' controller='0' bus='0' target='0' unit='3'/>
        </disk>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    添加的物理磁盘默认盘符从sda开始
    在这里插入图片描述在这里插入图片描述

    保存并退出

    验证

    重启虚拟机验证是否添加成功
    virsh shutdown ceph1
    virsh start ceph1
    
    • 1
    • 2
    • 3

    列出server中的磁盘,我们能够明显看到多出了下面几个磁盘设备,暂时还没有分区
    在这里插入图片描述

    贴一张server没有添加磁盘前的图好作对比

    在这里插入图片描述
    我们试着分别给/dev/sda和/dev/vdc磁盘设备创建分区
    可以顺利创建分区,如下两图。

    给/dev/sda创建大小为10G的主分区

    在这里插入图片描述
    给/dev/vdc创建大小为10G的主分区

    在这里插入图片描述
    成功!
    创建分区后我们再列出磁盘,可以看到如下的结果。到此我们给KVM成功添加了磁盘。

    在这里插入图片描述

    三、删除磁盘

    3.1查看目前的磁盘信息

    [root@xa-radb-03 ~]# virsh domblklist ceph1
     Target   Source
    ---------------------------------
     vda      /kvm/kvms/ceph1.qcow2
     vdb      /kvm2/ceph1-vdb.qcow2
     vdc      /kvm2/ceph1-vdc.qcow2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.2删除磁盘

    [root@xa-radb-02 kvms]#  virsh detach-disk ceph1 /kvm2/ceph1-vdc.qcow2
    成功分离磁盘
    
    • 1
    • 2

    [root@xa-radb-02 kvms]#  virsh edit centos7.9
    删除对应disk然后重启虚拟机
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    【树莓派不吃灰】命令篇⑨ 记录学习文件系统
    描述符——接口描述符
    c#中webservice的调用
    游游现在有a个 y ,b个 o ,c个 u ,他想用这些字母拼成一个字符串。
    git-secret:在 Git 存储库中加密和存储密钥(下)
    将使用回调函数作为参数的函数改造为返回 Promise 的一个具体例子
    电商爬虫API快速入门指南
    ArrayList 和 LinkedList 之间应该怎么选择
    MongoDB基础学习
    在启智平台上安装anconda(启智平台中新建调试任务,选的基础镜像中有conda的,就无需安装)
  • 原文地址:https://blog.csdn.net/weixin_46031767/article/details/128144787