- 作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
- 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
- 个人主页: 团儿.-CSDN博客
目录
[1.virt-inspector 查看虚拟磁盘文件所有信息](#1.virt-inspector 查看虚拟磁盘文件所有信息)
[2.virt-cat 查看虚拟机内部文件信息](#2.virt-cat 查看虚拟机内部文件信息)
[3.virt-edit 修改虚拟机文件](#3.virt-edit 修改虚拟机文件)
[4.virt-df 统计查看虚拟机磁盘使用情况](#4.virt-df 统计查看虚拟机磁盘使用情况)
[5.virt-copy-out 复制虚拟机文件到外部](#5.virt-copy-out 复制虚拟机文件到外部)
[7.guestfish 交互式查看虚拟机内部文件](#7.guestfish 交互式查看虚拟机内部文件)
[8.guestmount 挂载虚拟机分区到外部目录,并测试](#8.guestmount 挂载虚拟机分区到外部目录,并测试)
前言:
随着虚拟化技术的飞速发展,KVM(Kernel-based Virtual Machine)作为开源虚拟化解决方案的代表,凭借其高效、灵活和可扩展的特性,在数据中心和企业环境中得到了广泛应用。在KVM架构中,磁盘配置不仅是虚拟机存储性能的关键所在,更是确保虚拟机稳定运行和数据安全的重要基石。
本文旨在为读者提供一份全面而实用的KVM磁盘配置指南。无论您是虚拟化技术的初学者,还是经验丰富的IT运维人员,都能从中找到适合自己的内容。我们将从KVM磁盘的基本概念入手,逐步深入到磁盘类型选择、分区规划、存储池与卷管理、性能调优以及故障排查等各个方面,力求覆盖KVM磁盘配置的方方面面。
通过本文的学习,您将能够:
理解KVM磁盘配置的基本原理和重要性;
掌握不同类型磁盘的优缺点,以及如何根据实际需求选择合适的磁盘;
学会如何合理规划磁盘分区,以提高存储效率和性能;
深入了解存储池与卷管理的概念,以及如何有效管理虚拟机的存储空间;
掌握KVM磁盘性能调优的技巧,以提升虚拟机的整体运行效率;
学会基本的故障排查方法,以应对可能出现的磁盘配置问题。
接下来,让我们一起探索吧!
正文:
一.前提:
yum -y install libguestfs libguestfs-tools
进到/kvm_store下
1.virt-inspector 查看虚拟磁盘文件所有信息
virt-inspector --format=qcow2 -a generic.qcow2
2.virt-cat 查看虚拟机内部文件信息
virt-cat -a generic.qcow2 /etc/hostname
3.virt-edit 修改虚拟机文件
virt-edit -a generic.qcow2 /etc/hostname
修改为:generic
4.virt-df 统计查看虚拟机磁盘使用情况
virt-df -h -a generic.qcow2
5.virt-copy-out 复制虚拟机文件到外部
virt-copy-out -d generic /etc/hostname /tmp
6.virt-copy-in复制本地文件到虚拟机内部
echo "hehehe" > /root/hehe.txt
virt-copy-in -d generic /root/hehe.txt /tmp
virt-cat -a generic.qcow2 /tmp/hehe.txt
7.guestfish 交互式查看虚拟机内部文件
guestfish --rw -i -d generic
8.guestmount 挂载虚拟机分区到外部目录,并测试
mkdir /generic_root
guestmount -a generic.qcow2 -m /dev/generic/root --rw /generic_root/
echo "haha" > /generic_root/test.txt
virt-cat -a generc.qcow2 /test.txt
二.虚拟磁盘
1.kvm虚拟磁盘类型
fixed: 定盘、厚盘,指定固定大小,占用绝对空间
dynamic:动盘、瘦盘,指定大小,但用多少占多少
Differencing:差分盘,一般用于链接克隆机,只记录和母盘差异的数据
(vmware: 厚置备 精简置备 厚置备延迟置零)
2.常见的虚拟磁盘格式
kvm: raw qcow2
vmware: vmdk
microsoft: vhd vhdx
oracle: vdi
3.查看qemu-img支持的磁盘格式
qemu-img --help | grep Supported
4.qemu-img用法
创建raw格式磁盘文件
qemu-img create t1.img 1g
创建qcow2格式磁盘文件
qemu-img create -f qcow2 test1.qcow2 1g
创建qcow2格式的厚盘文件
qemu-img create -f qcow2 test2.qcow2 1g -o preallocation=full
5.创建链接克隆虚拟机磁盘文件
qemu-img create -f qcow2 -o backing_file=generic.qcow2 generic_clone.qcow2
基于链接克隆文件创建克隆虚拟机
virt-install --import --name=generic_clone --vcpus=1 --ram=1024 --disk path=generic_clone.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=centos7.0
6.修改虚拟磁盘大小(注意:磁盘可以扩展,但谨慎压缩)
qemu-img resize generic.qcow2 +2G
有快照,需要删除快照才能扩展
三.存储池
1.kvm存储模式
文件系统:方便;存储数据需要经过宿主机的文件系统,稍慢
设备:速度快,但不易于扩展,不能做快照
2.存储池:对存储进行统一管理、简化操作
3.存储池相关命令
列出存储池
virsh pool-list --details
查看某个存储池详细信息
virsh pool-info kvm
列出存储池中卷的信息
virsh vol-list kvm
4.创建基于目录的存储池
mkdir /kvm_store1
virsh pool-define-as test dir --target "/kvm_store1/"
启动存储池
virsh pool-start test
设置存储池自动启动
virsh pool-autostart test
5.创建基于分区的存储池
fdisk /dev/sde
mkfs.ext4 /dev/sde1
mkdir /fenqu
virsh pool-define-as test1 fs --source-dev "/dev/sde1" --target "/fenqu"
6.创建基于磁盘的存储池
parted /dev/sdf
mklabel gpt
quit
cat /etc/libvirt/storage/test2.xml
<pool type='disk'>
<name>test2</name>
<source> <device path='/dev/sdf'/> <format type='gpt'/>
</source>
<target> <path>/dev</path>
</target>
</pool>
virsh pool-define test2.xml
virsh pool-start test2
virsh pool-autostart test2
7.基于LVM的存储池
先建卷组kvmvg
virsh pool-define-as kvmvg logical --source-name=kvmvg --target=/dev/kvmvg
8.基于iscsi的存储池
virsh pool-define-as --name storage01 --type iscsi --source-host 192.168.2.20 --source-dev iqn.2017-10.com.cloud.www:storage001 --target /dev/disk/by-path
virsh pool-start storage01
virsh pool-autostart storage01
9.基于nfs的存储池
virsh pool-define-as --name kvmnfs --type netfs --source-host 192.168.2.20 --source-path /nfsshare --target /nfstest
期待您的关注~