手动调整KVM镜像image的disk磁盘大小

声明

此文档只做学习交流使用,请勿用作其他商业用途
author : 朝阳_tony
E-mail : linzhaolover@163.com
Create Date: 2016-8-15 10:24:05
Last Change: 2016-8-15 11:14:17
转载请注明出处:http://blog.csdn.net/linzhaolover

摘要

在云计算Iaas层中,客户对kvm中image的需求格式各样,我可能就做一个基础的image,然后在上面再安装各类package,以适应不同的业务需求;但是,每个人对image的磁盘分区大小,又有不同的需求,这就需要从外面更改磁盘配置才行,下面就简单介绍一下,我采用的方法,方便大家学习交流

准备image

openstack 支持的image比较多,有qcow2 还有raw,我的qcow2 ,所以image后缀是qcow2

glance image-download --file old_image.qcow2  image_uuid

查看磁盘分区

# qemu-img  info old_image.qcow2 
image: old_image.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes) ##虚拟磁盘大小是20G
disk size: 1.7G   ##当前实际文件大小1.7G
cluster_size: 65536
Format specific information:
    compat: 0.10

# virt-filesystems --long -h --all -a old_image.qcow2 
Name       Type        VFS      Label  MBR  Size  Parent
/dev/sda1  filesystem  ext4     -      -    16G   -         #系统盘,也就是根目录
/dev/sda2  filesystem  unknown  -      -    1.0K  -
/dev/sda5  filesystem  swap     -      -    4.0G  -
/dev/sda1  partition   -        -      83   16G   /dev/sda  # 系统盘,一会我们扩增这个磁盘
/dev/sda2  partition   -        -      05   1.0K  /dev/sda
/dev/sda5  partition   -        -      82   4.0G  /dev/sda
/dev/sda   device      -        -      -    20G   -

创建新的空image

qemu-img create -f qcow2 newdisk.qcow2 100G
Formatting 'newdisk.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536 lazy_refcounts=off

进行磁盘扩展

注意,由于我的image磁盘只是简单分区,没有lvm分区,所以一个–expand 足矣

virt-resize --expand /dev/sda1 old_image.qcow2 newdisk.qcow
Examining old_image.qcow2 ...
**********

Summary of changes:

/dev/sda1: This partition will be resized from 16.0G to 96.0G.  The
    filesystem ext4 on /dev/sda1 will be expanded using the 'resize2fs'
    method.

    /dev/sda2: This partition will be left alone.

    **********
Setting up initial partition table on newdisk.qcow2 ...
Copying /dev/sda1 ...
 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
Copying /dev/sda2 ...
 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
Expanding /dev/sda1 using the 'resize2fs' method ...

Resize operation completed with no errors.  Before deleting the old disk,
carefully check that the resized disk boots and works correctly.

# virt-filesystems --long -h --all -a newdisk.qcow2
Name       Type        VFS      Label  MBR  Size  Parent
/dev/sda1  filesystem  ext4     -      -    96G   -       #新的系统盘大小
/dev/sda2  filesystem  unknown  -      -    1.0K  -
/dev/sda5  filesystem  swap     -      -    4.0G  -
/dev/sda1  partition   -        -      83   96G   /dev/sda # 新系统盘大小
/dev/sda2  partition   -        -      05   1.0K  /dev/sda
/dev/sda5  partition   -        -      82   4.0G  /dev/sda
/dev/sda   device      -        -      -    100G  -

压缩新的image

查看新image大小

 qemu-img info newdisk.qcow2
image: newdisk.qcow2
file format: qcow2
virtual size: 100G (107374182400 bytes)
disk size: 5.7G  # 由1.7G变成5.7G ,这有点大
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

压缩转换image

由于我的image是qcow2的格式,在输出我依然想适用qcow2,所以在-O qcow2 时候输出qcow2.

qemu-img convert -c  -O qcow2 newdisk.qcow2 compress_newdisk.qcow2

qemu-img  info compress_newdisk.qcow2 
image: compress_newdisk.qcow2
file format: qcow2
virtual size: 100G (107374182400 bytes)
disk size: 575M  # 变小了不少,这样导入glance也是很方便使用
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

* Reference : *
http://serverfault.com/questions/38456/online-resize-of-mounted-ext3-logical-volume
http://libguestfs.org/virt-resize.1.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统上,可以使用KVM(Kernel-based Virtual Machine)创建虚拟机。KVM是一种基于内核的虚拟化技术,可以在Linux系统上运行多个虚拟机。 以下是在Linux系统上使用KVM创建虚拟机的步骤: 1. 确认主机支持虚拟化。使用以下命令检查主机是否支持虚拟化: ``` grep -E 'svm|vmx' /proc/cpuinfo ``` 如果输出中包含"svm"或"vmx",则表示主机支持虚拟化。 2. 安装KVM和相关工具。使用以下命令安装KVM和相关工具: ``` sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager ``` 3. 创建虚拟网络。使用以下命令创建一个虚拟网络: ``` sudo virsh net-create network.xml ``` 其中,network.xml是一个XML配置文件,用于定义虚拟网络的配置信息。 4. 创建虚拟机。使用以下命令创建一个虚拟机: ``` sudo virt-install --name vm-name --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/vm-name.qcow2,size=20 --network network=network-name --graphics vnc,listen=0.0.0.0 --os-type linux --os-variant ubuntu20.04 --cdrom /path/to/iso-image.iso ``` 其中,vm-name是虚拟机的名称,network-name是虚拟网络的名称,/var/lib/libvirt/images/vm-name.qcow2是虚拟机的磁盘镜像文件路径,20是虚拟机磁盘大小(单位为GB),/path/to/iso-image.iso是用于安装操作系统的ISO镜像文件路径。 运行上述命令后,将会启动一个新的图形化窗口,用于安装操作系统。按照提示进行操作即可完成虚拟机的创建。 这些步骤可以让您在Linux系统上使用KVM创建虚拟机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值