kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致。原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用。
raw磁盘格式扩展思路如下
(1) 新添加一块raw格式的磁盘加入到KVM虚拟机,然后通过虚拟机系统lvm逻辑卷管理方式进行管理,扩展磁盘空间。
(2) 直接通过dd命令扩展现有虚拟机磁盘大小,扩展之后,原磁盘大小增大,进入虚拟机系统后,直接通过fdisk分区新添加的空间,然后将该分区并入lvm逻辑卷中,扩大磁盘空间。
qcow2磁盘格式扩展思路如下
(1) 可以采用raw磁盘格式磁盘的扩展方式一致的方式进行。
(2) qcow2格式磁盘,直接通过qemu-img 直接扩展qcow2磁盘, 新添加一块raw格式的磁盘加入到KVM虚拟机,然后通过虚拟机系统lvm逻辑卷管理方式进行管理,扩展磁盘空间。
下面将开始通过qcow2格式添加磁盘。
方式一:添加一块qcow2磁盘加入虚拟机
1. 查看现在虚拟机磁盘信息
(1) 磁盘大小与格式信息
查看虚拟机磁盘格式
1
|
[root@node1 kvm]
# virsh edit CentOS6.5-01
|
查看磁盘格式信息
开启虚拟机CentOS6.5-01
进入虚拟机,查看磁盘容量
(2) 添加一块qcow2磁盘
# qemu-img create -f qcow2 CentOS6.5-01_add.qcow2 2G
(3) 添加一块qcow2磁盘信息加入配置文件
在配置文件中加入如下内容:
1
|
[root@node1 kvm]
# virsh edit CentOS6.5-01
|
1
2
3
4
5
6
|
<disk
type
=
'file'
device=
'disk'
>
<driver name=
'qemu'
type
=
'qcow2'
cache=
'none'
/>
<
source
file
=
'/data/kvm/CentOS6.5-01_add.qcow2'
/>
<target dev=
'vdb'
bus=
'virtio'
/>
#保存自动生成<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
<
/disk
>
|
(4) 启动虚拟机并配置磁盘
# virsh start CentOS6.5-01
# virsh console CentOS6.5-01
2. 配置LVM扩展磁盘
(1) 分区
(2) 扩展lvm逻辑卷。
1
2
3
4
5
6
|
# pvcreate /dev/vdb1
# vgextend vg /dev/vdb1
# vgs
# lvextend -l +100%FREE /dev/vg/vg-root
# resize2fs /dev/vg/vg-root
# df -h
|
方式二:直接扩展qcow2磁盘
接上文恢复测试环境。
(1) 关闭虚拟机。
(2) 删除配置文件中第二块磁盘信息
(3) 通过kvm虚拟化学习笔记(十)之kvm虚拟机快照备份中创建的快照恢复虚拟机。
1. 直接扩展qcow2磁盘
(1) 查看磁盘
1
|
[root@node1 kvm]
# virsh edit CentOS6.5-01
|
1
2
3
4
5
6
7
8
|
<devices>
<emulator>
/usr/libexec/qemu-kvm
<
/emulator
>
<disk
type
=
'file'
device=
'disk'
>
<driver name=
'qemu'
type
=
'qcow2'
cache=
'none'
/>
<
source
file
=
'/data/kvm/CentOS6.5-01.qcow2'
/>
<target dev=
'vda'
bus=
'virtio'
/>
<address
type
=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x05'
function
=
'0x0'
/>
<
/disk
>
|
(2) 直接扩展qcow2磁盘
# qemu-img resize CentOS6.5-01.qcow2 +2G
经过前后对比,磁盘大小已由7G扩展到9G,已扩展,qcow2磁盘格式必须采用此方式进行扩展,不要使用dd方式,dd方式适用于raw格式。
2. 进入系统开始扩展磁盘
(1) 查看分区大小
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
|
[root@CentOS6 ~]
# fdisk -l
Disk
/dev/vda
: 9663 MB, 9663676416 bytes
16 heads, 63 sectors
/track
, 18724 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x0004628f
Device Boot Start End Blocks Id System
/dev/vda1
* 3 409 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2
409 1449 524288 82 Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/vda3
1449 14564 6609920 83 Linux
Partition 3 does not end on cylinder boundary.
Disk
/dev/vdb
: 2147 MB, 2147483648 bytes
16 heads, 63 sectors
/track
, 4161 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0xe4d732ad
Device Boot Start End Blocks Id System
/dev/vdb1
1 4161 2097112+ 8e Linux LVM
[root@CentOS6 ~]
#
|
(2) 开始分区
1
2
|
[root@CentOS6 ~]
# fdisk /dev/vda
过程如下,将扩展的空间分成一个区。
|
(3) 开始创建物理卷,加入卷组,扩展逻辑卷。
1
2
3
4
5
6
|
# pvcreate /dev/vda4
# vgextend vg /dev/vda4
# vgs
# lvextend -l +100%FREE /dev/vg/vg-root
# resize2fs /dev/vg/vg-root
# df -h
|
到此kvm虚拟机扩展磁盘空间成功,当虚拟机磁盘格式换成qcow2后,确实有很多需要注意的地方,qcow2格式支持动态扩展与快照功能,虽然性比raw稍差,但确实很实用。
本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/1984137,如需转载请自行联系原作者