当前位置: 首页 > article >正文

【虚拟化】KVM常用命令操作(virsh磁盘管理)

目录

一、KVM概述

1.1 KVM工具栈

1.2 libvirt架构概述

1.3 KVM磁盘格式介绍

1.4 KVM磁盘操作常见语法

1.5 qemu-img命令简介

1.6 libguestfs安装

二、虚拟机磁盘管理

2.1 查看虚拟机磁盘

2.2 创建虚拟机磁盘

2.3 扩容磁盘容量

2.4 查看虚拟机存储状态

2.5 快照

2.6 虚拟磁盘格式转化


一、KVM概述


1.1 KVM工具栈


上图所示主要描述了kvm的主要工具栈,从大的类别可以分为libvirt和qemu这两大类,其中libvirt中分virtual machine manager 和 virsh。virtual machine manager中的virt-manager是基于图形界面的管理,其他都是可以在命令行直接使用命令来管理虚拟机。

virsh是基于终端命令行管理。两者都是通过libvirt连接至libvirtd进行管理,对于qemu来说,它管理虚拟机上直接调用kvm内核中模块的API进行管理;

1.2 libvirt架构概述


libvirt是用来管理虚拟机或虚拟化功能的软件集合,主要包括:libvirt API,libvirtd进程和virsh工具集三部分。最初的目的是为不同的hypervisor提供统一的管理接口。

libvirtd该后台进程主要实现以下功能:

(1)远程代理所有remote client发送来的命令,由该进程监测执行;

(2)本地环境初始化libvirt服务的启停,用户connection的响应等;

(3)根据环境注册各种Driver(qemu, xen, storage…)的实现

查看libvirtd服务状态

 systemctl status libvirtd

如果libvirtd服务停止运行,那么你将不能管理虚拟机,也就是不能使用virt-manager等工具来管理虚拟机。

查看配置文件

虚拟机的所有配置是放置在一个xml文件中,位置在/etc/libvirt/qemu/目录中

[root@kvm ~]# ll /etc/libvirt/qemu
total 12
drwxr-xr-x. 2 root root   25 Aug  7 10:08 autostart
drwx------. 3 root root   42 Apr 28  2021 networks
-rw-------. 1 root root 3826 Aug  3 20:03 study01.xml
-rw-------. 1 root root 4737 Aug  7 10:08 study02.xml

1.3 KVM磁盘格式介绍


  • raw:⽼牌格式,指定多⼤空间就创建多⼤空间,直接占⽤指定⼤⼩的空间(分50G占⽤ 50G),性能上来说的话还是不错的,不⽀持快照功能。
  • cow:曾经qemu的写时拷⻉的镜像格式,⽬前由于历史遗留原因不⽀持窗⼝模式。从某种意义上来说是个弃子,还没得它成熟就胎死腹中,后来被qcow格式所取代。
  • qcow:⼀代的qemu的cow格式,刚刚出现的时候有⽐较好的特性,但其性能和raw格式对⽐还是有很⼤的差距,⽬前已经被新版本的qcow2取代。
  • qcow2:是openstack默认也是⽐较推荐的格式,⽂件⽐较⼩⽽且做快照也⽐较⼩,空间是动态增⻓,是⽬前⽐较主流的⼀种虚拟化镜像格式,经过优化,⽬前qcow2的性能上接近raw裸格式的性能。

常用镜像类型

特点/类型

raw

qcow2

KVM 默认

IO效率

较高

占用空间

压缩

不支持

支持

后端盘复用

不支持

支持

快照

不支持

支持

1.4 KVM磁盘操作常见语法


# 磁盘基本信息
virsh domblklist --details 虚拟磁盘名称
 
# 磁盘容量调整
qemu-img resize 虚拟磁盘名称 +5G

# 挂载磁盘
virsh attach-disk <虚拟机名称> --source <新磁盘名> --target <磁盘类型名> --persistent
注意:
磁盘类型名一般是 sda~ 或者 vda~,这里的 vda 不一定是磁盘内部的信息,而是kvm管理的名称
 
# 卸载磁盘
virsh detach-disk <虚拟机名称> <磁盘类型名>

1.5 qemu-img命令简介


qemu-img是一个功能强大磁盘镜像管理工具,qemu-img --help 包括以下功能:

  • check:检查完整性
  • create:创建镜像
  • commit:提交更改
  • compare:比较
  • convert:转换
  • info:获取信息
  • map:映射
  • snapshot:快照管理
  • rebase:在已有的的基础上创建新的镜像
  • resize:调整大小
  • amend:修订镜像格式选项

1.6 libguestfs安装


libguestfs是一组使用于硬件虚拟化中旨在用于访问及修改磁盘映像的C语言库和配套工具。此工具可查看并编辑由libvirt所管理的虚拟机及其内部文件、为虚拟机撰写脚本、创建虚拟机等。

libguestfs几乎可访问任意类型的文件系统,包括:所有已知类型的Linux文件系统(ext2/3/4、XFS、btrfs等等)、任意类型的Windows 文件系统(VFAT及NTFS)、任意类型的macOS及BSD文件系统、LVM2卷宗管理、MBR及GPT磁盘分区、未格式化的硬盘、qcow2、VirtualBox VDI、VMWare VMDK、Hyper-V VHD/VHDX、文件、本地设备、CD/DVD ISO、SD卡或通过FTP、HTTP、SSH、iSCSI、NBD、GlusterFS、Ceph、Sheepdog等程序远程管理。

yum -y install libguestfs-tools-c
yum -y install libguestfs-tools

二、虚拟机磁盘管理


2.1 查看虚拟机磁盘

virsh list --all
virsh domblklist centos7.0
qemu-img info /kvm/virtual/centos7.qcow2

2.2 创建虚拟机磁盘

创建一块大小为10G的qcow2格式的虚拟磁盘:

qemu-img create -f qcow2 /kvm/virtual/centos7-test01.qcow2 10G

2.3 扩容磁盘容量

qcow2格式的磁盘只能加不能减,raw格式的盘可以减。我们给"centos7.0"虚拟机增加 10G 也就是总共40G的存储。

磁盘扩容

qemu-img resize /kvm/virtual/centos7.qcow2 +10G

如下图可以看到扩容成功

扩容完成操作参考:

【Linux】Wmware Esxi磁盘扩容_esxi 磁盘扩容-CSDN博客

2.4 查看虚拟机存储状态

 virt-df -h centos7.0

2.5 快照

# 给centos7.qcow2创建名为 centos7-snap-qcow2 快照
qemu-img snapshot -c centos7-snap-qcow2 /kvm/virtual/centos7.qcow2

# 查看快照
qemu-img snapshot -l /kvm/virtual/centos7.qcow2

# 删除
qemu-img snapshot -d centos7-snap-qcow2 /kvm/virtual/centos7.qcow2

2.6 虚拟磁盘格式转化

convert [-c] [-p] [-q] [-n] [-f fmt] [-t cache] [-T src_cache] [-O output_fmt] [-o options] [-s snapshot_name] [-S sparse_size] filename [filename2 [...]] output_filename

将fmt格式的filename镜像文件根据options选项转换为格式为output_fmt的名为output_filename的镜像文件。它支持不同格式的镜像文件之间的转换,比如可以用VMware用的vmdk格式文件转换为qcow2文件,这对从其他虚拟化方案转移到KVM上的用户非常有用。一般来说,输入文件格式fmt由qemu-img工具自动检测到,而输出文件格式output_fmt根据自己需要来指定,默认会被转换为与raw文件格式(且默认使用稀疏文件的方式存储以节省存储空间)。

示例如下 :

# -f指定将raw格式,转化为-O,qcow2格式, 后面跟着两个要转化的文件
qemu-img convert -f raw -O qcow2 study01.img study01.qcow2  

# 将VMware的vmdk格式镜像转换为KVM可以使用的qcow2镜像
qemu-img convert my-vmware.vmdk my-kvm.img

# 将一个raw镜像文件转化为qcow2格式的镜像。
qemu-img convert -O qcow2 rhel6u3.img rhel6u3-a.img

study02.qcow2 虚拟机磁盘格式为:qcow2

格式转换完成


第 21 章 使用离线工具进行客户机虚拟机磁盘访问 | Red Hat Product Documentation


http://www.kler.cn/a/291212.html

相关文章:

  • Ubuntu网络连接问题(笔记本更换wifi后,虚拟机连不上网络)
  • MT6706BL 同步整流 规格书
  • 『SQLite』解释执行(Explain)
  • 推动多语言语音科技迈向新高度:INTERSPEECH 2025 ML-SUPERB 2.0 挑战赛
  • xxl-job回调执行器,发生NPE空指针异常
  • Nature Electronics——近传感器计算:50 nm异构集成技术的革命
  • RocketMQ安装与使用
  • Java中的重载感悟
  • IOS 23 实现通用WebView控制器(WKWebView)
  • HarmonyOS开发实战( Beta5版)使用reuseId标记不同组件提升复用性能实践
  • priority_queue和reverse_iterator的底层实现
  • MySQL数据备份的版本控制:策略、实践与自动化
  • 机器学习引领未来:赋能精准高效的图像识别技术革新
  • 基于JavaWeb开发的JavaSpringboot+Vue实现前后端分离房屋租赁系统
  • 合并区间【leetcode】
  • 【软件逆向】第39课,软件逆向安全工程师之动态补丁,每天5分钟学习逆向吧!
  • C语言 | Leetcode C语言题解之第388题文件的最长绝对路径
  • windows中命令行界面连接虚拟机(CentOS9)
  • Unix与Linux的关系
  • 公采/企业采购中心数据档案自动刻录归档管理平台
  • 博物馆实景复刻如何实现?需要哪些技术?
  • 基于人工智能的语音识别系统
  • 【Python机器学习】卷积神经网络(CNN)的工具包
  • 小学生护眼台灯什么牌子好?五款性价比高的学生护眼台灯推荐
  • 【unity实战】利用Root Motion+Blend Tree+Input System+Cinemachine制作一个简单的角色控制器
  • Hive时间窗口函数保姆级教程(最全解析、应用和优化)(持续更新)