kvm虚拟机磁盘管理

简介: 文章详细介绍了KVM虚拟机磁盘管理,包括磁盘格式概述、创建虚拟机时如何指定磁盘格式、以及磁盘工具的常用命令,旨在帮助用户更好地理解和操作KVM虚拟机的磁盘管理。

一.kvm虚拟机磁盘格式概述

1.raw格式

raw俗称裸格式,raw格式的优缺点:
    - 优点;
        可以顺序写磁盘,读写性能性能好。
    - 缺点:
        raw格式存在不支持快照,不方便传输等缺点。

举个例子:
    假设我们为KVM虚拟机分配了50GB的磁盘,若使用raw格式,则会立刻分配这50GB的空间,这样做的好处就是磁盘底层存储数据的磁盘扇区是连续的。
    如果我们仅使用了其中的2GB空间,但在传输时依旧要传输50GB空间。

2.qcow2格式

QCOW2(Qemu Copy On Write):
    - 优点:
        占用空间小,支持快照。
    - 缺点:
        性能相比raw差一些。

举个例子:
    假设我们为KVM虚拟机分配了50GB的磁盘,若使用qcow2格式,不会立刻分配50GB空间,而是根据需求写时复制,当空间不足时再去系统申请格式化磁盘,因此底层存储的数据扇区可能不是连续的,因此性能相比于raw格式会差一些。
    如果我们仅使用了其中的2GB空间,在传输时仅需要传输2GB的空间。


温馨提示:
    QCOW2是比QCOW性能会更好些,但是QCOW2相比QCOW会额外占用一定的空间。

3.生产环境磁盘类型选择

如果对磁盘追求快照功能那就只能选择qcow2格式了。

如果追求磁盘的性能,对快照没有太大需求,则可以考虑使用raw格式,但是在迁移的时候可以临时将raw格式转换为qcow2格式。

二.创建虚拟机时指定磁盘格式

1.指定raw格式

virt-install --virt-type kvm \
    --os-type=linux \
    --os-variant rhel7 \
    --name yinzhengjie-kvm02 \
    --memory 2048 \
    --vcpus 2 \
    --disk /opt/yinzhengjie-kvm02.raw,format=raw,size=20 \
    --cdrom /opt/CentOS-7-x86_64-DVD-2009.iso \
    --network  network=default \
    --graphics vnc,listen=0.0.0.0 \
    --noautoconsole


相关参数说明:
    --virt-type:
        指定虚拟机的类型,支持kvm,qemu,xen等虚拟机。
    --os-type:
        指定系统的类型。
    --os-variant: 
        指定系统的版本号。
    --name:
        指定虚拟机的名称,每个虚拟机的名称必须唯一。
    --memory:
        指定虚拟机的内存大小。
    --vcpus
        指定CPU的核心数。
    --disk:
        指定磁盘的路径,使用format指定磁盘的格式,使用size自定磁盘大小,默认单位为GB。
    --cdrom 
        自定ISO镜像文件连接。
    --network  
        指定网络,可以自定多块网卡设备。
    --graphics 
        指定图形化使用的协议及监听地址,如果不指定监听地址,默认监听地址为"127.0.0.1"。
    --noautoconsole
        不自动连接虚拟机的console,该参数可有可无。

2.指定qcow2格式

virt-install --virt-type kvm \
    --os-type=linux \
    --os-variant rhel7 \
    --name yinzhengjie-kvm03 \
    --memory 2048 \
    --vcpus 2 \
    --disk /opt/yinzhengjie-kvm03.qcow2,format=qcow2,size=30 \
    --cdrom /opt/CentOS-7-x86_64-DVD-2009.iso \
    --network  network=default \
    --graphics vnc,listen=0.0.0.0 \
    --noautoconsole


相关参数说明:
    --virt-type:
        指定虚拟机的类型,支持kvm,qemu,xen等虚拟机。
    --os-type:
        指定系统的类型。
    --os-variant: 
        指定系统的版本号。
    --name:
        指定虚拟机的名称,每个虚拟机的名称必须唯一。
    --memory:
        指定虚拟机的内存大小。
    --vcpus
        指定CPU的核心数。
    --disk:
        指定磁盘的路径,使用format指定磁盘的格式,使用size自定磁盘大小,默认单位为GB。
    --cdrom 
        自定ISO镜像文件连接。
    --network  
        指定网络,可以自定多块网卡设备。
    --graphics 
        指定图形化使用的协议及监听地址,如果不指定监听地址,默认监听地址为"127.0.0.1"。
    --noautoconsole
        不自动连接虚拟机的console,该参数可有可无。

三.磁盘工具常用命令

1.查看虚拟磁盘信息

[root@yinzhengjie-kvm189 ~]# qemu-img info /opt/yinzhengjie-kvm01.raw
image: /opt/yinzhengjie-kvm01.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.5G
[root@yinzhengjie-kvm189 ~]#

2.创建一块qcow2格式的虚拟硬盘

[root@yinzhengjie-kvm189 ~]# qemu-img create -f qcow2 yinzhengjie-kvm10.qcow2 2G  # 创建一个qcow2格式的磁盘。
Formatting 'yinzhengjie-kvm10.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 lazy_refcounts=off 
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img info yinzhengjie-kvm10.qcow2 
image: yinzhengjie-kvm10.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img create  yinzhengjie-kvm11 3G   # 如果不使用-f选项指定磁盘格式,默认创建raw格式。
Formatting 'yinzhengjie-kvm11', fmt=raw size=3221225472 
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img info yinzhengjie-kvm11 
image: yinzhengjie-kvm11
file format: raw
virtual size: 3.0G (3221225472 bytes)
disk size: 0
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# ll -h yinzhengjie-kvm10.qcow2  # 注意,qcow2磁盘格式并不会立刻使用2GB的空间哟~
-rw-r--r--. 1 root root 193K Apr  8 04:13 yinzhengjie-kvm10.qcow2
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# ll -h yinzhengjie-kvm11  # 注意,raw格式会立刻分配3GB的磁盘空间哟~
-rw-r--r--. 1 root root 3.0G Apr  8 04:14 yinzhengjie-kvm11
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]#

3.调整磁盘容量

[root@yinzhengjie-kvm189 ~]# qemu-img info yinzhengjie-kvm10.qcow2 
image: yinzhengjie-kvm10.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img resize yinzhengjie-kvm10.qcow2 +3G  # 扩容方式一: 在原有的基础上扩容3GB数据。
Image resized.
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img info yinzhengjie-kvm10.qcow2 
image: yinzhengjie-kvm10.qcow2
file format: qcow2
virtual size: 5.0G (5368709120 bytes)
disk size: 260K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img resize yinzhengjie-kvm10.qcow2 10G  # 扩容方式二: 直接扩容磁盘到指定大小。
Image resized.
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img info yinzhengjie-kvm10.qcow2 
image: yinzhengjie-kvm10.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 260K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@yinzhengjie-kvm189 ~]# 


温馨提示:
    - qcow2磁盘格式只能扩容不能缩容,raw磁盘格式可以扩容也可以缩容,
    - 但生产环境中无论是哪种磁盘格式都不要使用缩容,避免造成数据丢失;

4.转换磁盘格式

    1.转换虚拟机磁盘时需要先关机
[root@yinzhengjie-kvm189 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 3     yinzhengjie-kvm01              running

[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# virsh shutdown yinzhengjie-kvm01 
Domain yinzhengjie-kvm01 is being shutdown

[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     yinzhengjie-kvm01              shut off

[root@yinzhengjie-kvm189 ~]# 



    2.将raw格式转换为qcow2格式
[root@yinzhengjie-kvm189 ~]# qemu-img convert -f raw -O qcow2 -c /opt/yinzhengjie-kvm01.raw /opt/yinzhengjie-kvm01.qcow2
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# qemu-img convert -f raw -O qcow2  /opt/yinzhengjie-kvm01.raw /opt/yinzhengjie-kvm01-bak.qcow2
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# ll -h /opt/yinzhengjie-kvm01.qcow2 /opt/yinzhengjie-kvm01.raw /opt/yinzhengjie-kvm01-bak.qcow2 
-rw-r--r--. 1 root root 1.6G Apr  8 04:42 /opt/yinzhengjie-kvm01-bak.qcow2
-rw-r--r--. 1 root root 767M Apr  8 04:38 /opt/yinzhengjie-kvm01.qcow2
-rw-------. 1 root root  10G Apr  8 04:34 /opt/yinzhengjie-kvm01.raw
[root@yinzhengjie-kvm189 ~]# 


相关参数说明:
    -f:
        指定镜像的原格式。
    -O:
        指定镜像要转换的格式。
    -c:
        是否启用压缩功能,如果启用压缩功能,转换的时间会久一点。



    3.修改虚拟机的磁盘格式为qcow2格式及磁盘文件路径(如上图所示)
[root@yinzhengjie-kvm189 ~]# virsh edit yinzhengjie-kvm01 
<domain type='kvm'>
  ...
  <devices>
    ...
    <disk type='file' device='disk'>
      ...
      <driver name='qemu' type='qcow2'/>
      <source file='/opt/yinzhengjie-kvm01.qcow2'/>
      ...


     4.启动虚拟机
[root@yinzhengjie-kvm189 ~]# ll -h  /opt/yinzhengjie-kvm01.qcow2   # 启动前查看磁盘大小
-rw-r--r--. 1 root root 767M Apr  8 04:38 /opt/yinzhengjie-kvm01.qcow2
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# ll  /opt/yinzhengjie-kvm01.qcow2 
-rw-r--r--. 1 root root 803512320 Apr  8 04:38 /opt/yinzhengjie-kvm01.qcow2
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     yinzhengjie-kvm01              shut off

[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# virsh start yinzhengjie-kvm01 
Domain yinzhengjie-kvm01 started

[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 4     yinzhengjie-kvm01              running

[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# ll  /opt/yinzhengjie-kvm01.qcow2  # 启动虚拟机会产生日志,因此该文件会变大哟~
-rw-r--r--. 1 qemu qemu 806682624 Apr  8 04:50 /opt/yinzhengjie-kvm01.qcow2
[root@yinzhengjie-kvm189 ~]# 
[root@yinzhengjie-kvm189 ~]# ll -h  /opt/yinzhengjie-kvm01.qcow2   # 启动后再次查看磁盘大小
-rw-r--r--. 1 qemu qemu 770M Apr  8 04:50 /opt/yinzhengjie-kvm01.qcow2
[root@yinzhengjie-kvm189 ~]#

5.检查磁盘是否出差

[root@yinzhengjie-kvm189 ~]# qemu-img check yinzhengjie-kvm10.qcow2 
No errors were found on the image.
Image end offset: 262144
[root@yinzhengjie-kvm189 ~]#
目录
相关文章
|
1月前
|
数据库 虚拟化 Windows
虚拟机数据恢复—XenServer虚拟机磁盘文件丢失的数据恢复案例
虚拟机数据恢复环境: 某品牌服务器通过同品牌某型号的RAID卡,将4块STAT硬盘为一组RAID10阵列。上层部署XenServer虚拟化平台,虚拟机安装Windows Server系统,每台虚拟机有两个虚拟机磁盘(系统盘 + 数据盘),虚拟机作为Web服务器使用。 虚拟机故障&分析: 机房异常断电导致服务器中一台VPS(XenServer虚拟机)不可用,虚拟磁盘文件丢失。
|
2月前
|
KVM 虚拟化
kvm虚拟机快照
这篇文章主要介绍了KVM虚拟机快照的创建、管理、恢复以及删除的详细步骤,包括查看快照信息、创建快照、模拟系统破坏后基于快照恢复虚拟机、使用快照的注意事项以及如何删除快照。
59 2
|
2月前
|
KVM 虚拟化
KVM虚拟机的桥接网络
文章主要介绍了KVM虚拟机的NAT和桥接网络类型的工作原理、配置方法以及如何进行网络模式的切换。
44 3
KVM虚拟机的桥接网络
|
2月前
|
KVM 虚拟化
KVM虚拟机的克隆
这篇文章介绍了如何使用KVM虚拟机进行完整克隆和链接克隆,包括手动克隆和使用virt-clone工具克隆的方法,以及如何编写脚本来实现自动化克隆和删除虚拟机。
67 3
KVM虚拟机的克隆
|
2月前
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
113 1
KVM虚拟机的热迁移
|
1月前
|
Kubernetes Linux 容器
解决删除快照后启动虚拟机显示指定的文件不是虚拟磁盘 打不开磁盘“路径”或它所依赖的某个快照磁盘。 模块“disk”启动失败。 未能启动虚拟
解决删除快照后启动虚拟机显示指定的文件不是虚拟磁盘 打不开磁盘“路径”或它所依赖的某个快照磁盘。 模块“disk”启动失败。 未能启动虚拟
144 0
|
2月前
|
KVM 虚拟化 数据安全/隐私保护
KVM虚拟机安装实战
本文讲述了如何创建并使用VNC连接KVM虚拟机的详细教程,包括安装图解和命令行参数说明。
112 8
|
2月前
|
KVM 虚拟化
KVM虚拟机的冷迁移
这篇文章详细描述了KVM虚拟机的冷迁移过程,包括无依赖环境迁移、有链接克隆虚拟机迁移、多块磁盘迁移的案例,以及可能遇到的错误和解决方案。
92 3
|
3月前
|
KVM 虚拟化
[kvm]创建虚拟机
[kvm]创建虚拟机
|
3月前
|
机器学习/深度学习 监控 Linux
在Linux中,如何创建和管理KVM虚拟机?
在Linux中,如何创建和管理KVM虚拟机?

热门文章

最新文章

相关实验场景

更多
下一篇
无影云桌面