KubeVirt 磁盘热插拔

磁盘热插拔

磁盘热插拔需要开启 HotplugVolumes 特性门控:

[root@base-k8s-master-1 kubevirt]# kubectl edit kubevirts.kubevirt.io -n kubevirt kubevirt
...output omitted...
spec:
  certificateRotateStrategy: {}
  configuration:
    developerConfiguration:
      featureGates:
      - VMLiveUpdateFeatures
      - HonorWaitForFirstConsumer
      - Snapshot
      - HotplugVolumes
...output omitted...

目前只支持 scsi 总线磁盘热插拔,控制器为 virtio-scsi

virtio 磁盘添加需要通过 kubectl edit 添加并使用 virtctl restart 重启虚拟机。

准备磁盘

准备一个 dataVolume

apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
  name: "dv-blank"
spec:
  storage:
    storageClassName: csi-rbd-sc
    resources:
      requests:
        storage: 5Gi
  source:
    blank: {}

热添加磁盘

热添加磁盘:

[root@base-k8s-master-1 kubevirt]# virtctl addvolume my-vm --volume-name=dv-blank
Successfully submitted add volume request to VM my-vm for volume dv-blank

这里是临时添加,想要持久添加需要 --persist 参数。不加 --persist 磁盘会加到 VMI 上,加 --persist 参数磁盘会加到 VM 上。

使用 --serial 参数可以指定磁盘编号。

检查虚拟机:

[root@base-k8s-master-1 ~]# kubectl exec -it virt-launcher-my-vm-7m2nh -- /bin/bash
bash-5.1$ virsh list
Authorization not available. Check if polkit service is running or see debug message for more information.
 Id   Name            State
-------------------------------
 1    default_my-vm   running

bash-5.1$ virsh dumpxml default_my-vm
...output omitted...
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' error_policy='stop' io='native' discard='unmap'/>
      <source dev='/var/run/kubevirt/hotplug-disks/dv-blank' index='3'/>
      <backingStore/>
      <target dev='sdb' bus='scsi'/>
      <serial>1234567890</serial>
      <alias name='ua-dv-blank'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
...output omitted...
bash-5.1$
exit

[root@base-k8s-master-1 kubevirt]# virtctl ssh fedora@my-vm
Last login: Sat Mar 22 12:38:30 2025 from 10.100.239.50
[fedora@vm-dv ~]$ lsblk -d
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda     8:0    0    5G  0 disk
sdb     8:16   0    5G  0 disk
zram0 252:0    0  633M  0 disk [SWAP]
[fedora@vm-dv ~]# ls /dev/disk/by-id/
ata-QEMU_HARDDISK_QM00001        ata-QEMU_HARDDISK_QM00001-part3
ata-QEMU_HARDDISK_QM00001-part1  ata-QEMU_HARDDISK_QM00001-part4
ata-QEMU_HARDDISK_QM00001-part2  scsi-0QEMU_QEMU_HARDDISK_1234567890

热删除磁盘

[root@base-k8s-master-1 kubevirt]# virtctl removevolume my-vm --volume-name=dv-blank
Successfully submitted remove volume request to VM my-vm for volume dv-blank
[root@base-k8s-master-1 kubevirt]# virtctl ssh fedora@my-vm
Last login: Sat Mar 22 16:04:42 2025 from 10.100.239.49
[fedora@vm-dv ~]$ lsblk -d
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda     8:0    0    5G  0 disk
zram0 252:0    0  633M  0 disk [SWAP]
KubeVirt 磁盘热插拔
https://www.linuxstudynotes.com/2025/03/25/k8s/kubevirt-%e7%a3%81%e7%9b%98%e7%83%ad%e6%8f%92%e6%8b%94/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇