KVM虚拟机磁盘如何在线扩容

之前分享过3种不同环境的磁盘扩容方式,有兴趣的可以去看看。《e2fsck+resize2fs实现Linux分区扩容 》、《lvm在线扩容根分区 》、《VMware下虚拟机扩展磁盘不需重启系统

我们知道KVM的磁盘格式有raw和qcow2两种;扩容方式有直接对原有磁盘扩容和新添加一块磁盘加入lvm中两种方法。

今天要分享的就是KVM环境下新添加一块格式为qcow2磁盘加入lvm中的扩容方法。

0x01  KVM虚拟机添加磁盘

1、查找虚拟机磁盘目录

要添加新磁盘,首先得找到原有磁盘的目录

$ virsh list --all    ##查看虚拟机列表

$ virsh shutdown Name    ##关闭名称为Name的虚拟机

$ virsh edit Name    ##Name为虚拟机名称

找到source file行,后面的就是磁盘的存放目录

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2' cache='none'/>

<source file='/xxx/xxx/xxx/image.qcow2'/>

<target dev='vda' bus='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

</disk>

2、创建新硬盘

创建一个名称为image_1.qcow2的5G磁盘

$ qemu-img create -f qcow2 /xxx/xxx/xxx/image_1.qcow2 50G

3、配置XML文件

virsh edit Name   ##编辑虚拟机

添加新的磁盘文件信息,原来的是vda新的就是vdb,以此类推

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2' cache='none'/>

<source file='/xxx/xxx/xxx/image.qcow2'/>

<target dev='vda' bus='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

</disk>

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2' cache='none'/>

<source file='/xxx/xxx/xxx/image_1.qcow2'/>

<target dev='vdb' bus='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>

</disk>

4、重新注册vm配置信息

$  virsh define /etc/libvirt/qemu/xxx.xml

5、启动虚拟机

$ virsh start Name    ##启动虚拟机

$ fdisk -l   ##可以看到新增的磁盘

到此,KVM环境下虚拟机新增磁盘完成,接下去通过pv,vg,lv扩容。

 

0x02  LVM方式扩容

1、查看硬盘容量,发现根分区用了将近9成。

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 47G 41G 5.8G 88% /

devtmpfs 3.9G 0 3.9G 0% /dev

tmpfs 3.9G 0 3.9G 0% /dev/shm

tmpfs 3.9G 8.4M 3.9G 1% /run

tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup

/dev/vda1 497M 120M 378M 25% /boot

tmpfs 783M 0 783M 0% /run/user/0

2、创建PV

$ pvcreate /dev/vdb    ##vdb为上面新增的磁盘

Physical volume "/dev/vdb" successfully created

3、扩充VG

##先查看vg组

$ vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 2 0 wz--n- 49.50g 3.00g

##把新增的vdb磁盘加入到vg中

$ vgextend centos /dev/vdb

Volume group "centos" successfully extended

再查看下vg组发现已经扩容

$ vgs

VG #PV #LV #SN Attr VSize VFree

centos 3 2 0 wz--n- 99.50g 52.99g

4、扩充LV

##查看下lv组的大小,没有变化

$ lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

root centos -wi-ao---- 46.31g

##扩容LV,+50G位新增硬盘大小

$ lvextend -L +50G /dev/mapper/centos-root

Size of logical volume centos/root changed from 46.31 GiB (11855 extents) to 96.31 GiB (24655 extents).

Logical volume root successfully resized

##再查看下lv,扩容成功

$ lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

root centos -wi-ao---- 96.31g

5、系统更新

##使系统重新读取大小

$ xfs_growfs /dev/mapper/centos-root

##查看硬盘大小,发现扩容成功。

$df -h

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  4   博主  0

  1. avatar Amoy厦门 0

    为什么感觉~~~你的幻灯图片看起来比我好看多了。

    • avatar yangfannie 5

      @Amoy厦门 跟图片有关吧

  2. avatar ktv培训 0

    一篇很好的文章

  3. avatar 广州网站建设 4

    很不错的