虚拟机磁盘扩容

2016-04-15  本文已影响0人  nevill

环境

KVM 虚拟主机,使用 .qcow2 作为镜像格式,比如下面这个虚拟磁盘

[root@vm-host]# qemu-img info rtzic19k.img
image: rtzic19k.img
file format: qcow2
virtual size: 128G (137438953472 bytes)
disk size: 528M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

从虚拟里面看是这样子的

[root@vm-guest]# df -h
Filesystem    Size    Used    Avail    Use%    Mounted on
/dev/vda2    128G  1.2G    127G  1%        /
devtmpfs      1.9G  0        1.9G    0%        /dev

[root@vm-guest]# fdisk -l /dev/vda
Disk /dev/vda: 137.4 GB, 137438953472 bytes, 268435456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0007acc0
Device        Boot       Start        End              Blocks            Id        System
/dev/vda1                2048       4095            1024              82      Linux swap / Solaris
/dev/vda2  *            4096       268435455   134215680   83       Linux

[root@vm-guest]$ mount
/dev/vda2 on / type xfs (rw,relatime,attr2,inode64,noquota)

我们的目标是将 /dev/vda2 的容量从 128G 调整为 256G,并且没有丢失任何数据

要注意的是,本方案只适合扩容磁盘中的最后一个分区,本例中即 /dev/vda2。

操作步骤

关闭虚拟机

[root@vm-guest]# shutdown now

对虚拟磁盘镜像文件进行扩容,注意,在宿主机上操作

[root@vm-host]# qemu-img resize rtzic19k.img +128G
Image resized.
[root@vm-host]# qemu-img info rtzic19k.img
image: rtzic19k.img
file format: qcow2
virtual size: 256G (274877906944 bytes)
disk size: 534M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

然后再次启动虚拟机,并登入,使用 fdisk 对 /dev/vda 重新分区

[root@vm-guest]# fdisk /dev/vda

Command (m for help): p

Disk /dev/vda: 274.9 GB, 274877906944 bytes, 536870912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0007acc0
Device        Boot       Start        End              Blocks            Id        System
/dev/vda1                2048       4095            1024              82      Linux swap / Solaris
/dev/vda2  *            4096       268435455   134215680   83       Linux

看到 /dev/vda 的容量已经发生变化,但是分区大小未发生变化,接下来删除 /dev/vda2 并重建分区,然后写入分区信息

Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 is deleted

Command (m for help): n
Partition type:
    p    primary (1 primary, 0 extended, 3 free)
    e    extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (4096-536870911, default 4096): 4096
Last sector, +sectors or +size{K,M,G} (4096-536870911, default 536870911): 536870911
Partition 2 of type Linux and of size 256 GiB is set

Command (m for help): p

Disk /dev/vda: 274.9 GB, 274877906944 bytes, 536870912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0007acc0
Device        Boot      Start        End              Blocks            Id        System
/dev/vda1                2048      4095            1024              82      Linux swap / Solaris
/dev/vda2                4096      536870911  268433408    83      Linux

Command (m for help): w
The partition table has been altered!

注意 /dev/vda2 的 的 End, Block 值已改变,最后执行 xfs_growfs 调整 /dev/vda2 的文件系统容量

[root@vm-guest]# xfs_growfs /dev/vda2
# 省略若干输出
data blocks changed from 33553920 to 67108352

[root@vm-guest]# df -h
Filesystem    Size    Used    Avail    Use%    Mounted on
/dev/vda2    256G  1.2G    255G   1%        /
devtmpfs      1.9G   0         1.9G    0%        /dev

调整完毕

上一篇 下一篇

猜你喜欢

热点阅读