KVM虚拟机如何进行磁盘扩容


由信创开放社区提供 通用 2024-11-11 47

KVM虚拟机如何进行磁盘扩容

系统版本

适用系统:V10(SP1)、V10(SP2)

适用架构:X86、AARCH、MIPS64el

其他版本和架构可作参考。

问题描述

给kvm虚拟机扩容(原来kylin10.0-1.qcow2只有100G,现在增加100G,总容量200G)。

问题分析

给虚拟机扩容时需要将其关机。

解决方案

  1. 关闭虚拟机前先用fdisk -l看下虚拟机容量。

    # fdisk -l
    

    image2021-10-12_9-26-46

  2. 关闭物理机,在物理机上查看需要扩容的虚拟机硬盘容量信息。

    # qemu-img info /var/lib/libvirt/images/kylin10.0-1.qcow2
    

    image2021-10-12_9-26-52

  3. 给虚拟硬盘扩容

    # qemu-img resize /var/lib/libvirt/images/kylin10.0-1.qcow2 +100G
    

    image2021-10-12_9-27-0

  4. 再次查看当前虚拟机硬盘容量有没有增加

image2021-10-12_9-27-6

  1. 开启虚拟机,进入虚拟机,用fdisk –l查看容量有没有增加

image2021-10-12_9-27-14

出现以上报错,可以通过重新写入解决。

# fdisk /dev/vda

image2021-10-12_9-27-21

  1. 用lsblk 查看分区情况,关键是找出需要扩容的分区(本文以vda3作为示例)

    # lsblk
    

    image2021-10-12_9-27-29

  2. 安装growpart命令

a.

# yum install cloud-utils-growpart -y

b. 执行growpart命令对需要扩容的分区进行容量扩展操作。

# growpart /dev/vda 3

但是出现了以下错误:

image2021-10-12_9-27-36

解决该错误:

①查看服务器当前的语言类型:

# echo $LANG

image2021-10-12_9-27-42

②定义全局变量,语言修改为英文并再次查看语言类型:

# export LANG=en_US.UTF-8

# echo $LANG

image2021-10-12_9-27-52

③重新使用growpart命令对分区扩容:

# growpart /dev/vda 3

image2021-10-12_9-27-59

④lsblk再次查看有没有给vda3扩容成功:

# lsblk

image2021-10-12_9-28-11

  1. vda3总分区扩容成功后,再给其下的某个分区扩容(用df -h查看其分区下某个分区的全路径,例如/dev/mapper/klas-root

image2021-10-12_9-29-17

# pvresize /dev/vda3

#  pvdisplay  

#  vgdisplay

#  lvextend -L +100G /dev/mapper/klas-root

image2021-10-25_12-46-55image2021-10-12_9-29-25

此时用lsblk查看klas-root这个分区发现容量已经增加,但用df -h查看并没增加,此时用xfs_growfs /dev/mapper/klas-root刷新下即可。

# lsblk

# df -h

# xfs_growfs /dev/mapper/klas-root

image2021-10-12_9-29-45

image2021-10-12_9-29-39

如果提示如下报错,则使用分区“/”方式刷新:

image2021-10-25_12-51-41

使用分区“/”方式刷新:

# xfs_growfs /

image2021-10-25_12-51-57

添加我为好友,拉您入交流群!

请使用微信扫一扫!