KVM 虚拟化学习之虚拟磁盘管理 qemu-img

  • 一、虚拟磁盘简述
    • 1.1 虚拟存储性能的解决方案
    • 1.2 虚拟磁盘存储方案
  • 二、qemu-img 命令 -- 虚拟磁盘管理
    • 2.1 qemu-img 概述
    • 2.2 qemu-img 功能
      • 示例:
        • 2.2.1 创建一个镜像 create
        • 2.2.2 查看虚拟磁盘信息 - info
        • 2.2.3 检查磁盘镜像完整性(一致性) -- check
        • 2.2.4 调整磁盘镜像容量 -- resize
    • 2.3 磁盘镜像快照管理 -- snapshot
      • 2.3.1 快照/检查点简述
      • 2.3.2 示例 快照回滚操作:

一、虚拟磁盘简述

1.1 虚拟存储性能的解决方案

  • 问题 :磁盘的I/O 性能一直是虚拟化存储性能的瓶颈。
  • 通过分布式的磁盘I/O 进一步提升存储性能,即多磁盘驱动
  • 通过集中式存储解决方案实现高可用和实时迁移,即SAN/NFS。

1.2 虚拟磁盘存储方案

  • 固定配额存储,即分配多少,占用实际物理磁盘多少。就是在配置时,指定的容量,也会占用配置时指定的大小的主机磁盘容量。
  • 动态扩容方案,即预先指定磁盘大小,随之应用程序、文件等逐渐增大,但增大到最大容量。
  • 差异性存储方案,即只存储变更的数据。

二、qemu-img 命令 – 虚拟磁盘管理

2.1 qemu-img 概述

qemu-img - QEMU disk image utility
qemu-img 是QEMU 磁盘镜像工具。

qemu-img allows you to create, convert and modify images offline. It can handle all image formats supported by QEMU.

qemu-img 允许你在离线(即虚拟机关机状态)下创建、转换和修改镜像文件。它可以处理所有QEMU支持的镜像格式的磁盘镜像。

Warning: Never use qemu-img to modify images in use by a running virtual machine or any other process; this may destroy the image. Also, be aware that querying an image that is being modified by another process may encounter inconsistent state.

注意:切勿使用 qemu-img 修改正在运行的虚拟机或被其他进程使用的镜像,这会摧毁磁盘镜像。另外,请注意,查询一个被其他进程修改的镜像状态可能会不一致。

2.2 qemu-img 功能

操作 功能 使用
creat 创建一个镜像 create [-f fmt] filename [size] 例:create -f qcow2 centos-7.qcow2 10G
check 检查完整性(仅支持"qcow2", "qed" ,"vdi"格式一致性检查) check [-f fmt] filename 例: qemu-img check -f qcow2 /kvm/centos-7.qcow2
convert 镜像格式转换
info 查看镜像信息 info [-f fmt] [–output=ofmt] [–backing-chain] filename
resize 调整镜像大小 resize filename [+/ -]size
rebase 在现有镜像基础上创建新镜像 rebase [-f fmt] [-t cache] [-T src_cache] [-p] [-u] -b backing_file [-F backing_fmt] filename
snapshot 磁盘镜像快照 snapshot [-l , -a snapshot , -c snapshot , -d snapshot ] filename
commit 提交更改 commit [-f fmt] [-t cache] filename

示例:

2.2.1 创建一个镜像 create

[root@localhost kvm]# qemu-img create -f qcow2 -o ? # qcow2 选项
Supported options:
size             Virtual disk size  # 虚拟磁盘大小
compat           Compatibility level (0.10 or 1.1)
backing_file     File name of a base image #指定基础镜像文件
backing_fmt      Image format of the base image  #设置后端镜像基础镜像格式
encryption       Encrypt the image  # 设置镜像加密
cluster_size     qcow2 cluster size # 设置镜像簇大小,512~2M,默认64KB
preallocation    Preallocation mode (allowed values: off, metadata, falloc, full) #设置镜像文件空间预分配模式
lazy_refcounts   Postpone refcount updates
#创建一个格式为 qcow2 大小10G的虚拟磁盘
[root@localhost ~]# qemu-img create -f qcow2 img2.qcow2 10G
Formatting 'img2.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off#查看刚创建的虚拟磁盘详细信息
[root@localhost ~]# qemu-img info --output=human img2.qcow2
image: img2.qcow2
file format: qcow2  #文件格式
virtual size: 10G (10737418240 bytes) # 虚拟磁盘大小
disk size: 196K   #实际占用大小
cluster_size: 65536  #簇默认64KB
Format specific information:compat: 1.1lazy refcounts: false

2.2.2 查看虚拟磁盘信息 - info

2.2.3 检查磁盘镜像完整性(一致性) – check

[root@localhost ~]# qemu-img check img2.qcow2 #img2.qcow2 的完整性
No errors were found on the image.  #检查结果没有错误
Image end offset: 262144

2.2.4 调整磁盘镜像容量 – resize

注意:

  • 调整虚拟磁盘容量之前,请做好重要数据备份。---- 数据无价
  • 扩容后,需要在客户端使用磁盘管理工具fdisk 、partprobe 工具初始化该分区(建立新分区、格式化并挂载使用)。
  • 缩容,注意在保证虚拟机有足够的空间下进行,否则会发生数据丢失。
  • qcow2 格式的磁盘镜像不支持缩容操作

2.3 磁盘镜像快照管理 – snapshot

2.3.1 快照/检查点简述

  • 磁盘快照:

    • 对数据进行快照,用于虚拟机备份场景
  • 内存快照 – 只能对运行的虚拟机进行拍照
    • 对虚拟机的内存/设备信息进行拍照
    • 适用于快速的恢复、迁移场景
    • 通过 virsh save (qemu migrate to file)实现
    # 内存拍照
    [root@localhost ~]# virsh save CentOS-7  --file save.file
    Domain CentOS-7 saved to save.file# 恢复内存快照
    [root@localhost ~]# virsh restore save.file
    Domain restored from save.file
  • 检查点快照
    • 同时保存磁盘快照和内存快照
    • 保存虚拟机的某个时间点,因此,可以将虚拟机恢复到该时间点状态
    • 能够保持数据的一致性
snapshot subcommand:
'snapshot' is the name of the snapshot to create, apply or delete'-a' applies a snapshot (revert disk to saved state) # 回滚到指定快照'-c' creates a snapshot   # 创建一个快照'-d' deletes a snapshot   #删除一个快照'-l' lists all snapshots in the given image  # 列出给出镜像的所有快照

2.3.2 示例 快照回滚操作:

  1. 创建磁盘快照
  2. 删除数据
  3. 快照回滚,检查数据
[root@localhost ~]# virsh shutdown CentOS-7  # 关闭虚拟机
Domain CentOS-7 is being shutdown
[root@localhost ~]# virsh list --all  #查看虚拟机状态Id    Name                           State
-----------------------------------------------------     CentOS-7                       shut off
[root@localhost ~]# qemu-img snapshot -a s1  /kvm/centos-7.qcow2 #磁盘快照回滚

注意坑: 进行磁盘快照回滚时需要在虚拟机关闭的状态下进行回滚,否则会破坏磁盘快照。qemu-img 的磁盘快照只支持通过qemu-img 创建的原生qcow2 格式磁盘快照,不支持转换后的qcow2。

KVM 虚拟化学习之虚拟磁盘管理 qemu-img相关推荐

  1. kvm虚拟化学习笔记(十一)之kvm虚拟机扩展磁盘空间

    kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致.原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用. raw磁盘格式扩展思路如下 (1) 新添加一块raw格式的磁盘加入到 ...

  2. kvm虚拟化学习笔记(十)之kvm虚拟机快照备份

    KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装 http://koumm.blog ...

  3. kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记

    本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6. ...

  4. kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移

    1.源KVM虚拟主机node1 (1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中. [root@node1 ~]# virsh list ...

  5. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    1. 上传ISO文件,这里采用OEL5.8x64 iso 2. 开始安装OEL5.8 # virt-install --name=oeltest02 --ram 512 --vcpus=1 --dis ...

  6. KVM之Nova通过libvirt管理QEMU/KVM虚机

    学习 KVM 的系列文章:  (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接 ...

  7. 老广: KVM虚拟化学习笔记

    大纲: 一.部署安装kvm虚拟机 二.virsh常见命令解释 三.KVM虚拟机克隆 四.KVM快照 五.让GuestOS支持 console 六.添加网卡 七.磁盘扩容 八.动态迁移 前言: 虚拟化的 ...

  8. CentOS7.1 KVM虚拟化之经常使用管理虚拟机命令(3)

    一.查看虚拟机列表及状态 [root@kvm01 ~]# virsh list --allId Name State ----------------------------------------- ...

  9. 字符模式下构建、使用KVM虚拟化平台

    字符模式下构建.使用KVM虚拟化平台 环境准备: KVM虚拟化服务器(真机或高配虚拟机(内存>4G) 操作系统:CentOS 6.5   ==> 关闭 iptables 防火墙.关闭SEL ...

最新文章

  1. php中strtotime(date,js模仿php中strtotime()与date()函数实现方法
  2. AI设计师“鹿班”核心技术公开:如何1秒设计8000张海报?
  3. Linux系统下安装卸载jdk
  4. PAT_B_1080_C++(25分)
  5. 酱油和gbt酱油哪个好_酱油可不是越贵越好?看清瓶身上的5个字,教你1分钟买到好酱油...
  6. 自营型电商和平台型电商的行业秘密是什么?
  7. Oracle“钱夹”的使用
  8. 如何判断JavaScript数据具体类型
  9. 爬虫实战(自用)requests模块、聚焦爬虫(数据解析)、selenium模块
  10. android7.x Launcher3源码解析(2)---框架结构
  11. 44、建筑的外墙保温与装饰工程的防火检查
  12. 2022-Arch安装(详细)
  13. 线性代数行列式计算之元素拆分与凑项法
  14. 为什么青少年一定要学Python?
  15. 从关山口到五道口(2019年清华计算机考研全程回顾+经验+总结)
  16. Linux常用命令——modprobe命令
  17. ISO/IEC 14443协议浅谈:TYPE A与TYPE B
  18. 怎么清洁计算机主机内部,机箱怎么防尘 机箱清灰步骤【教程】
  19. 某网站提供的香港空间,美国空间,国内空间测速结果
  20. RTP协议封装H264/H265/AAC

热门文章

  1. java-net-php-python-javv学生信息管理系统计算机毕业设计程序
  2. AirPods开启运动蓝牙耳机之旅,好用的运动蓝牙耳机
  3. Code128条形码——全球通用的高密度条形码
  4. sql数据库基础之数据库介绍
  5. 用wordcloud生成中国地图
  6. 金山文档这样玩,效率「狂飙」
  7. pnpm,nrm,nvm
  8. C盘怎么老是很快就满了?
  9. java 自动检查更新去掉勾,小熊纯净版Win10旗舰版如何关闭java自动更新功能
  10. Python实现邮箱合法性校验(中软国际机试)