KVM——存储池与快照

ops/2024/10/22 14:24:49/

目录

KVM%E5%AD%98%E5%82%A8%E6%B1%A0%E7%9A%84%E9%87%8D%E8%A6%81%E6%A6%82%E5%BF%B5%E5%92%8C%E5%8A%9F%E8%83%BD-toc" style="margin-left:40px;">KVM存储池的重要概念和功能

KVM%E5%AD%98%E5%82%A8%E6%B1%A0%E7%9A%84%E7%AE%A1%E7%90%86%E6%96%B9%E5%BC%8F-toc" style="margin-left:80px;">KVM存储池的管理方式

KVM%E5%AD%98%E5%82%A8%E6%B1%A0%E5%9C%A8%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%BF%81%E7%A7%BB%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8-toc" style="margin-left:80px;">KVM存储池在虚拟机迁移中的作用

制作存储池 

存储池相关管理命令 

KVM%E5%BF%AB%E7%85%A7-toc" style="margin-left:40px;">KVM快照

KVM%E5%BF%AB%E7%85%A7%E7%9A%84%E6%A6%82%E5%BF%B5%E5%92%8C%E4%BD%9C%E7%94%A8-toc" style="margin-left:80px;">KVM快照的概念和作用

注意事项


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

 

KVM%E5%AD%98%E5%82%A8%E6%B1%A0%E7%9A%84%E9%87%8D%E8%A6%81%E6%A6%82%E5%BF%B5%E5%92%8C%E5%8A%9F%E8%83%BD" style="background-color:transparent;">KVM存储池的重要概念和功能

 

  1. 存储池类型

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

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

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

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

 

KVM%E5%AD%98%E5%82%A8%E6%B1%A0%E7%9A%84%E7%AE%A1%E7%90%86%E6%96%B9%E5%BC%8F" style="background-color:transparent;">KVM存储池的管理方式

 

创建方式

  • 目录存储池:直接使用主机文件系统中的目录来存储虚拟机镜像和相关数据。
  • 逻辑卷管理器(LVM)存储池:使用LVM来管理逻辑卷,提供了更灵活的空间管理和快照功能。

操作一致性

  • 无论使用哪种存储池,一旦虚拟机存储卷创建完成,后续的虚拟机管理操作(如启动、关闭、迁移)与使用传统的存储方式没有任何区别。

 

KVM%E5%AD%98%E5%82%A8%E6%B1%A0%E5%9C%A8%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%BF%81%E7%A7%BB%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8" style="background-color:transparent;">KVM存储池在虚拟机迁移中的作用

 

虚拟机迁移需求

  • 存储池对于虚拟机迁移至关重要。当虚拟机在不同的物理主机间迁移时,存储池确保了虚拟机镜像和相关数据的一致性和可访问性。

迁移过程中的角色

  • 存储池不仅存储虚拟机镜像,还负责提供迁移过程中所需的数据访问能力。这包括在源主机上关闭虚拟机、传输镜像数据、在目标主机上重新打开虚拟机等操作。

 

制作存储池 

 

查看初始存储池

[root@kvm-server ~]# virsh pool-list --all名称      状态   自动开始
----------------------------default   活动   是opt       活动   是

定义存储池与其目录

virsh pool-define-as <存储池名称> --type <存储池类型> --target <目标路径>

这里使用的前面创建好的/test目录拿来这里使用 

[root@kvm-server ~]# virsh pool-define-as cunchuku --type dir --target /test
定义池 cunchuku

创建已定义的存储池

[root@kvm-server ~]# virsh pool-build cunchuku
构建池 cunchuku

查看已定义的存储池存储池不激活无法使用。

[root@kvm-server ~]# virsh pool-list --all名称        状态     自动开始
--------------------------------cunchuku    不活跃   否default     活动     是opt         活动     是

激活并自动启动已定义的存储池

[root@kvm-server ~]# virsh pool-start cunchuku
池 cunchuku 已启动
[root@kvm-server ~]# virsh pool-autostart cunchuku
池 cunchuku 标记为自动启动
[root@kvm-server ~]# virsh pool-list --all名称        状态   自动开始
------------------------------cunchuku    活动   是default     活动   是opt         活动   是

 创建一个新的虚拟机磁盘镜像测试

[root@kvm-server ~]# virsh vol-create-as cunchuku vm1.img 2G --format qcow2
卷 vm1.img 创建了
[root@kvm-server ~]# ll /test/
总用量 196
-rw------- 1 root root 196640  8月  7 01:00 vm1.img

 

存储池相关管理命令 

1. 在存储池中删除虚拟机存储卷

[root@kvm-server ~]# virsh vol-delete --pool cunchuku vm1.img
卷 vm1.img 被删除

2. 取消激活存储池

[root@kvm-server ~]# virsh pool-destroy cunchuku
销毁池 cunchuku

3. 删除存储池定义的目录/test

[root@kvm-server ~]# virsh pool-delete cunchuku
池 cunchuku 被删除[root@kvm-server ~]# ll /test
ls: 无法访问 '/test': 没有那个文件或目录

4. 取消定义存储池

[root@kvm-server ~]# virsh pool-undefine cunchuku
池 cunchuku 已经被取消定义[root@kvm-server ~]# virsh pool-list --all名称      状态   自动开始
----------------------------default   活动   是opt       活动   是

KVM%E5%BF%AB%E7%85%A7" style="background-color:transparent;">KVM快照

 

KVM(Kernel-based Virtual Machine)虚拟化环境中,快照(Snapshot)是一种非常有用的功能,它允许管理员在虚拟机运行时保存其当前状态的副本,以便日后需要时可以恢复到该状态。

 

KVM%E5%BF%AB%E7%85%A7%E7%9A%84%E6%A6%82%E5%BF%B5%E5%92%8C%E4%BD%9C%E7%94%A8">KVM快照的概念和作用

  1. 定义

    • 快照是虚拟机当前状态的可写副本。它捕获了虚拟机的内存、磁盘和设备状态,使得管理员可以在以后的任何时间点恢复虚拟机到该状态。
  2. 作用

    • 备份和恢复快照可以用作备份,允许在重大配置更改前捕获虚拟机的完整状态。如果更改后出现问题,可以快速恢复到之前的状态。
    • 测试和开发:在测试和开发过程中,快照使得可以轻松地进行实验和回滚,而无需担心影响生产环境。
    • 临时调试:对于故障排除或软件调试,可以在不影响生产环境的情况下快速创建虚拟机状态的副本。

 

注意事项

  • 性能影响:创建和使用快照可能会对虚拟机的性能产生一定影响,特别是在磁盘写入和读取方面。
  • 存储空间快照占用额外的存储空间,尤其是在快照链变长时可能会占用大量空间。

 

建议给虚拟机关机打快照,会较快

先在开机状态下,随便创建几个文件用于测试

[root@kvm-server ~]# virsh list --allId   名称   状态
--------------------    vm10   关闭[root@kvm-server ~]# virsh start vm10
域 'vm10' 已启动[root@kvm-server ~]# virsh console vm10
连接到域 'vm10'
转义字符是 ^] (Ctrl + ])localhost login: root
Password: 
Last failed login: Wed Aug  7 01:27:03 CST 2024 on ttyS0
There was 1 failed login attempt since the last successful login.
Last login: Tue Aug  6 23:52:35 on ttyS0
[root@localhost ~]# cd /
[root@localhost /]# mkdir tty
[root@localhost /]# touch ceshi.txt
[root@localhost /]#  init 0   #关机
[root@kvm-server ~]# virsh list --allId   名称   状态
--------------------    vm10   关闭

创建快照

[root@kvm-server ~]# virsh snapshot-create-as vm10 vm2-snap3
已生成域快照 vm2-snap3

再次登录vm10的虚拟机进行删除操作

[root@kvm-server ~]# virsh start vm10
域 'vm10' 已启动[root@kvm-server ~]# virsh console vm10
连接到域 'vm10'
转义字符是 ^] (Ctrl + ])localhost login: root
Password: 
Last login: Wed Aug  7 01:32:11 on ttyS0
[root@localhost ~]# rm -rf /tty
[root@localhost ~]# rm -rf /var/local
[root@localhost ~]# init 0

 再次打快照

[root@kvm-server ~]# virsh snapshot-create-as vm10 vm2-snap4
已生成域快照 vm2-snap4

查看该虚拟机的快照

[root@kvm-server ~]# virsh snapshot-list vm10名称        生成时间                    状态
--------------------------------------------------vm2-snap3   2024-08-07 01:32:57 +0800   shutoffvm2-snap4   2024-08-07 01:37:10 +0800   shutoff

恢复到快照vm2.snap3

[root@kvm-server ~]# virsh snapshot-revert vm10 vm2-snap3
域快照 vm2-snap3 恢复

再启动虚拟机,验证数据恢复

[root@kvm-server ~]# virsh start vm10
域 'vm10' 已启动[root@kvm-server ~]# virsh console vm10
连接到域 'vm10'
转义字符是 ^] (Ctrl + ])localhost login: root 
Password: 
Last login: Wed Aug  7 01:32:11 on ttyS0
[root@localhost ~]# ll / |grep tty
drwxr-xr-x.   2 root root    6 Aug  7 01:27 tty
[root@localhost ~]# ll /var |grep local
drwxr-xr-x.  2 root root    6 May 16  2022 local

按 ctrl + ] 不关机退出。

恢复到vm2-snap4快照

[root@kvm-server ~]# virsh snapshot-revert vm10 vm2-snap4
域快照 vm2-snap4 恢复

再次登录,会发现虚拟机自动关机了。

删除快照

[root@kvm-server ~]# virsh snapshot-list vm10名称        生成时间                    状态
--------------------------------------------------vm2-snap3   2024-08-07 01:32:57 +0800   shutoffvm2-snap4   2024-08-07 01:37:10 +0800   shutoff# 删除vm2-snap3这个快照
[root@kvm-server ~]# virsh snapshot-delete vm10 --snapshotname vm2-snap3
已删除域快照 vm2-snap3 [root@kvm-server ~]# virsh snapshot-list vm10名称        生成时间                    状态
--------------------------------------------------vm2-snap4   2024-08-07 01:37:10 +0800   shutoff

不指定 --snapshotname 参数,那么这个命令将会删除指定虚拟机的当前活动快照(即当前状态的快照)。 

可以看到vm2-snap3已经删除。


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

相关文章

浪潮云服务器(Inspur)硬件监控指标解读

随着企业业务的快速发展&#xff0c;服务器的稳定运行变得愈发重要。浪潮云服务器以其高性能和稳定性&#xff0c;在数据中心中扮演着关键角色。为了确保服务器的稳定运行&#xff0c;监控易作为一款专业的IT基础设施监控软件&#xff0c;为浪潮云服务器提供了全面的硬件监控解…

【力扣】4.寻找两个正序数组的中位数

题目描述 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,3], nums2 [2] 输出&#xff1a;2.0…

HCIP第四节

一。OSPF认证 1.手工认证&#xff1a;直连邻居间&#xff0c;进行身份的核实&#xff0c;同时双方交互的数据进行加密保护 配置方法&#xff1a;ospf authentication-mode md5 1 cipher 123456(接口内配置) 注释&#xff1a;双方接口都配置才能进行保持邻居的关系&#xff0…

spring扩展点ApplicationListener 订阅发布

当我们登录的时候&#xff0c;有时需要发送短信&#xff0c;赠送积分等&#xff0c;为了保证代码单一原则以及开闭原则&#xff0c;可以使用ApplicationListener 代码如下 1&#xff1a;创建事件 public class UserEvent extends ApplicationEvent {String userName;public…

什么是LIMS实验室管理系统,具有哪些功能特点

LIMS实验室管理系统&#xff0c;即实验室信息管理系统&#xff08;Laboratory Information Management System&#xff09;&#xff0c;是一种利用信息化技术管理和优化实验室工作流程的系统。该系统基于计算机硬件和数据库技术&#xff0c;集成了样品管理、资源管理、事务管理…

在Python中以下划线(_)开头的变量名

在Python中&#xff0c;以下划线&#xff08;_&#xff09;开头的变量名具有一些特定的含义和用法&#xff0c;这些用法涉及到命名约定、变量作用域、以及系统定义的特殊变量。下面我将详细阐述这些特点&#xff0c;但请注意&#xff0c;由于篇幅限制&#xff0c;直接达到2000字…

vue3响应式:Ref和Reactive区别及使用方法

在Vue3中&#xff0c;Ref和Reactive是两个实现响应式编程的关键的API。 1、区别 Ref&#xff1a;用于创建一个响应式的基本数据类型&#xff0c;比如数字、字符串等。它将普通的数据变成响应式数据&#xff0c;可以监听数据的变化。使用Ref时&#xff0c;我们可以通过.value来…

TOMCAT远程代码执行

首先下载一个apache-tomcat8.5.39 进入bin目录找到setclasspath.bat 进入文件进行编辑 修改为自己java所在的路径 在bin目录下打开cmd运行startup.bat 然后在文件管理器中搜索cgi-bin 然后在里面创建bat文件存在内容 然后在网页中打开