KVM磁盘配置:构建高效虚拟环境的基石

  • 作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  • 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  • 个人主页: 团儿.-CSDN博客

目录

前言:

正文:

一.前提:

进到/kvm_store下

[1.virt-inspector 查看虚拟磁盘文件所有信息](#1.virt-inspector 查看虚拟磁盘文件所有信息)

[2.virt-cat 查看虚拟机内部文件信息](#2.virt-cat 查看虚拟机内部文件信息)

[3.virt-edit 修改虚拟机文件](#3.virt-edit 修改虚拟机文件)

修改为:generic

[4.virt-df 统计查看虚拟机磁盘使用情况](#4.virt-df 统计查看虚拟机磁盘使用情况)

[5.virt-copy-out 复制虚拟机文件到外部](#5.virt-copy-out 复制虚拟机文件到外部)

6.virt-copy-in复制本地文件到虚拟机内部

[7.guestfish 交互式查看虚拟机内部文件](#7.guestfish 交互式查看虚拟机内部文件)

[8.guestmount 挂载虚拟机分区到外部目录,并测试](#8.guestmount 挂载虚拟机分区到外部目录,并测试)

二.虚拟磁盘

1.kvm虚拟磁盘类型

2.常见的虚拟磁盘格式

3.查看qemu-img支持的磁盘格式

4.qemu-img用法

创建raw格式磁盘文件

创建qcow2格式磁盘文件

创建qcow2格式的厚盘文件

5.创建链接克隆虚拟机磁盘文件

基于链接克隆文件创建克隆虚拟机

6.修改虚拟磁盘大小(注意:磁盘可以扩展,但谨慎压缩)

三.存储池

1.kvm存储模式

2.存储池:对存储进行统一管理、简化操作

3.存储池相关命令

列出存储池

查看某个存储池详细信息

列出存储池中卷的信息

4.创建基于目录的存储池

启动存储池

设置存储池自动启动

5.创建基于分区的存储池

6.创建基于磁盘的存储池

7.基于LVM的存储池

先建卷组kvmvg

8.基于iscsi的存储池

9.基于nfs的存储池


前言:

随着虚拟化技术的飞速发展,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

期待您的关注~

相关推荐
IT·小灰灰2 分钟前
Python——自动化发送邮件
运维·网络·后端·python·自动化
CP-DD23 分钟前
Linux 进程
linux
happy_king_zi25 分钟前
nginx代理websocket服务
运维·websocket·nginx
铁手飞鹰26 分钟前
[linux驱动开发--环境搭建] qemu-9.1+linux-kernel-6.11
linux·服务器·驱动开发
wangsir.26 分钟前
线程的同步
linux·服务器·线程·同步
2739920291 小时前
ubuntu gcc、g++升级
linux·ubuntu
blessing。。2 小时前
__attribute__ ((__packed__))
linux·c语言·arm开发
心灵彼岸-诗和远方2 小时前
DevOps赋能:优化业务价值流的实战策略与路径(下)
运维·产品经理·devops
m0_675447082 小时前
从SRE视角深度剖析DevOps构建的核心精髓
运维·devops
JioJio~z2 小时前
Linux之nfs服务器和dns服务器
linux·运维·服务器