【虚拟化】KVM存储卷和存储池

ops/2024/10/22 18:29:39/

目录

一、存储池概念

1.1 存储池类型

1.2 功能特性

1.3 存储池创建和管理

1.4 使用案例

1.5 存储池在虚拟机迁移中的作用

1.6 管理虚拟磁盘注意事项

二、virsh中存储池存储卷命令

三、命令实例

3.1 显示池与卷的信息

3.2 创建存储池

3.3 创建存储卷


一、存储池概念


在KVM(Kernel-based Virtual Machine)虚拟化平台中,存储池(Storage Pool)是用来管理和存储虚拟机镜像及其相关数据的概念。存储池可以是物理存储设备(如硬盘、SSD)的一部分或者是由多个存储设备组成的逻辑汇集。

存储池是一个由libvirt管理的文件、目录或存储设备,提供给虚拟机使用。存储池被分为存储卷,这些存储卷保存虚拟镜像或连接到虚拟机作为附加存储。libvirt通过存储池的形式对存储进行统一管理、简化操作。

1.1 存储池类型


  • Dir类型:简单的目录存储池,直接使用操作系统的文件系统来存储镜像文件。
  • Logical类型:使用逻辑卷管理器(LVM)创建的存储池,允许更灵活的空间管理和快照功能。
  • Network类型使用网络文件系统(如NFS)作为存储池,可以在多个主机之间共享虚拟机镜像。
  • iSCSI类型利用iSCSI协议连接到远程存储设备,并将其作为存储池

1.2 功能特性


  • 虚拟机镜像管理存储池管理虚拟机的磁盘镜像文件,包括创建、删除、复制、移动虚拟机镜像等操作。
  • 快照管理:有些存储池类型(如Logical类型)支持虚拟机快照功能,可以创建和管理虚拟机的快照,方便备份和回滚操作。
  • 空间管理存储池允许对存储资源进行空间管理,可以监控使用情况并进行容量规划。
  • 性能优化:选择合适的存储池类型和配置可以优化虚拟机的性能和可靠性。

1.3 存储池创建和管理


  • 在KVM管理工具(如virt-manager、virsh)或通过命令行(使用virsh pool-create等命令)可以创建和管理存储池
  • 配置存储池的路径、类型、权限以及其他参数,根据需求选择合适的存储池类型和配置。

1.4 使用案例


  • 本地存储池:适用于单一主机环境,直接使用主机上的硬盘或SSD作为存储池
  • 共享存储池:适用于多个主机共享虚拟机镜像,可以通过网络文件系统(如NFS)或专用存储设备(如iSCSI)实现。
  • 灵活的存储管理:通过存储池可以灵活管理虚拟机的存储需求,根据虚拟化环境的需求进行扩展或调整。

1.5 存储池在虚拟机迁移中的作用


  • 当虚拟机在不同的物理主机间迁移时,存储池确保了虚拟机镜像和相关数据的一致性和可访问性。
  • 存储池不仅存储虚拟机镜像,还负责提供迁移过程中所需的数据访问能力。这包括在源主机上关闭虚拟机、传输镜像数据、在目标主机上重新打开虚拟机等操作。

1.6 管理虚拟磁盘注意事项


虚拟化项目中存储的注意事项

  1. 存储的性能几乎总是虚拟化的瓶颈
  2. 通过多个磁盘驱动以分布磁盘I/O来实现存储解决方案
  3. 驱动器的速度越快越好,考虑SSD与机械磁盘的混合使用
  4. 考虑部署集中化的SAN/NFS来实现高可用性和实时迁移

二、virsh中存储池存储卷命令


virsh # help
分组的命令:Storage Pool (help keyword 'pool'):find-storage-pool-sources-as   找到潜在存储池源find-storage-pool-sources      发现潜在存储池源pool-autostart                 自动启动某个池pool-build                     建立池pool-create-as                 从一组变量中创建一个池pool-create                    从一个 XML 文件中创建一个池pool-define-as                 在一组变量中定义池pool-define                    define an inactive persistent storage pool or modify an existing persistent one from an XML filepool-delete                    删除池pool-destroy                   销毁(删除)池pool-dumpxml                   XML 中的池信息pool-edit                      为存储池编辑 XML 配置pool-info                      存储池信息pool-list                      列出池pool-name                      将池 UUID 转换为池名称pool-refresh                   刷新池pool-start                     启动一个(以前定义的)非活跃的池pool-undefine                  取消定义一个不活跃的池pool-uuid                      把一个池名称转换为池 UUIDpool-event                     Storage Pool EventsStorage Volume (help keyword 'volume'):vol-clone                      克隆卷。vol-create-as                  从一组变量中创建卷vol-create                     从一个 XML 文件创建一个卷vol-create-from                生成卷,使用另一个卷作为输入。vol-delete                     删除卷vol-download                   将卷内容下载到文件中vol-dumpxml                    XML 中的卷信息vol-info                       存储卷信息vol-key                        为给定密钥或者路径返回卷密钥vol-list                       列出卷vol-name                       为给定密钥或者路径返回卷名vol-path                       为给定密钥或者路径返回卷路径vol-pool                       为给定密钥或者路径返回存储池vol-resize                     创新定义卷大小vol-upload                     将文件内容上传到卷中vol-wipe                       擦除卷Virsh itself (help keyword 'virsh'):cd                             更改当前目录echo                           echo 参数exit                           退出这个非交互式终端help                           打印帮助pwd                            输出当前目录quit                           退出这个非交互式终端connect                        连接(重新连接)到 hypervisor

查看存储池配置文件

查看kvm.xml中的信息:

[root@kvm ~]# cat  /etc/libvirt/storage/kvm.xml 
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:virsh pool-edit kvm
or other application using the libvirt API.
--><pool type='dir'><name>kvm</name><uuid>22c01c11-bc13-44a0-bc84-d7fccc55e20d</uuid><capacity unit='bytes'>0</capacity><allocation unit='bytes'>0</allocation><available unit='bytes'>0</available><source></source><target><path>/kvm/virtual</path></target>
</pool>

三、命令实例


3.1 显示池与卷的信息


列出池

查看池kvm池的信息

查看存储池中卷的信息

3.2 创建存储池


基于目录创建存储池(dir: Filesystem Directory),在本地创建一个测试目录,dir为存储池格式。

virsh pool-define-as dir-test dir --target /kvm/dis-test

3.3 创建存储卷


在本地目录创建一个qcow2格式的存储卷,不加--format参数默认为raw格式。

删除池kvm_iso


【KVM虚拟化】· 存储池存储卷_存储池 存储卷-CSDN博客

参考:kvm储存池 kvm创建存储池_mob6454cc6a8ab0的技术博客_51CTO博客

KVM——存储池与快照_kvm 存储池-CSDN博客


http://www.ppmy.cn/ops/106248.html

相关文章

RKNPU2项目实战【1】 ---- YOLOv5实时目标分类

目录 目标 一、python接口下实现yolov5模型在开发板上的部署 1.1 在rknntoolkit2环境下模拟实现yolov5模型在RK3588开发板上的推理测试 1.2 在rknntoolkit2环境下实现模型在RK3588开发板上的连板推理测试&#xff08;模型运行在NPU上&#xff09; 1.3 在rknntoolkitlite2环…

内存管理篇-21 虚拟内存管理:线性映射区

1.线性映射区的定义 这部分讲线性映射区的内容。一般老的嵌入式平台&#xff0c;它内存很小只有几百兆&#xff0c;都会直接把整个物理内存映射到线性映射区了&#xff0c;只有当物理内存大于1GB以上&#xff0c;线性映射区无法cover的时候就把剩下的放到高端内存。所以这个区域…

Day13_0.1基础学习MATLAB学习小技巧总结(13)——文本数据处理入门

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 素材来源“数学建模清风” 特此说明&#xff1a;本博客的内容只在于总结在…

【Java】导包

文章目录 前言一、同一目录下的文件进行导二、不在一目录下的文件进行导包三、自动导包设置总结 前言 学习导包。以及导包的注意事项。 一、同一目录下的文件进行导包 二、不在一目录下的文件进行导包 三、自动导包设置 四、自己的程序中调用Java提供的程序&#xff0c;也需要…

深度学习(九)-图像形态操作

仿射变换 仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性和平行性。平直性是指图像经过仿射变换后&#xff0c;直线仍然是直线&#xff1b;平行性是指图像在完成仿射变换后&#xff0c;平行线仍然是平行线。 平移 镜像 旋转…

【Jupyter】 Notebook 中的 IPython 魔法:12个必知实用技巧

Jupyter Notebook 作为一个强大的交互式计算环境&#xff0c;结合 IPython 的功能&#xff0c;为数据科学家和程序员提供了丰富的工具。本文将介绍12个在 Jupyter Notebook 中使用 IPython 的实用技巧 1. 清除输出&#xff1a;使用 clear_output() from IPython.display impo…

Flink 1.14.*中flatMap,filter等基本转换函数源码

这里以flatMap&#xff0c;filter为例&#xff0c;介绍Flink如果要实现这些基本转换需要实现哪些接口&#xff0c;Flink运行时调用这些实现类的入口&#xff0c;这些基本转换函数之间的类关系 一、创建基本转换函数需要实现类继承AbstractRichFunction并实现特性接口1、RichFla…

前端问答:如何获取字符串中每个单词的首字母?

在开发过程中&#xff0c;我们经常会遇到需要从一组产品名称或用户输入中提取每个单词的首字母&#xff0c;并生成一个简洁的缩写的场景。这种缩写通常用于展示产品、生成订单编号或是用于标签等场景中。今天&#xff0c;我们就来看看如何利用JavaScript轻松实现这一功能。 提取…