KVM——存储池与快照

目录

KVM存储池的重要概念和功能

KVM存储池的管理方式

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

制作存储池 

存储池相关管理命令 

KVM快照

KVM快照的概念和作用

注意事项


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

 

KVM存储池的重要概念和功能

 

  1. 存储池类型

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

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

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

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

 

KVM存储池的管理方式

 

创建方式

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

操作一致性

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

 

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快照

 

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

 

KVM快照的概念和作用

  1. 定义

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

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

 

注意事项

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

 

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

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

[root@kvm-server ~]# virsh list --all
 Id   名称   状态
-------------------
 -    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 --all
 Id   名称   状态
-------------------
 -    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   shutoff
 vm2-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   shutoff
 vm2-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已经删除。

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZDICT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值