【虚拟化】libvirt、KVM、存储池、存储卷

参考:
1.虚拟机磁盘与qemu-img、存储池、存储卷 - 作者:IDYS • 元帅

1. libvirt

1.1 定义

是目前使用最为广泛的 KVM - 虚拟机管理工具

1.2 组成:

  1. API库
  2. 守护程序(libvirtd)
  3. 命令行工具(virsh

1.3 主要支持功能

  1. 虚拟机管理:包括不同的领域生命周期操作。如:启动、停止、暂停、保存、恢复和迁移。支持多种设备类型的热插拔,比如:磁盘、网卡、内存和CPU。
  2. 远程机器支持:只要机器上运行了libvirt daemon,包括远程机器,所有的libvirt功能就都可以访问和使用。支持多种网络远程传输,使用最简单的SSH。
  3. 存储管理:任何运行了libvirt daemon的主机都可以用来管理不同类型的存储:创建不同格式的文件镜像(qcow2、vmdk、raw等)、挂接NFS共享、列出现有的LVM卷组、创建新的LVM卷组和逻辑卷、对未处理过的磁盘设备分区、挂接iSCSI共享等。
  4. 网络接口管理:任何运行了libvirt daemon的主机都可以用来管理物理和逻辑的网络接口。
  5. 虚拟NAT和基于路由的网络:任何运行了libvirt daemon的主机都可以用来管理和创建虚拟网络。

1.4 virsh使用

针对虚拟机的操作

virsh list --all #查看创建的所有虚拟机
virsh start VM_Name  # 启动名称为 VM_Name 的虚拟机
virsh suspend VM_Name	#挂起虚拟机
virsh shutdown VM_Name	#关闭虚拟机
virsh destroy VM_Name	# 强制关闭虚拟机
virsh reboot VM_Name	#重启虚拟机
virsh reset VM_Name	#强制重启虚拟机

2. KVM

关于KVM -

2.1KVM存储模式

  • 基于文件系统的存储
  • 基于设备的存储
  • 通过 存储池 来简化 存储 的管理

2.2虚拟磁盘类型

  • 固定:Fixed
    在配置时,指定磁盘大小
    不管在虚拟磁盘上实际存储多少数据,都将占用相同大小主机磁盘空间

  • 动态:增长到最大容量,但是只根据需求使用更多的空间

  • 差异
    因为创建是差异磁盘,所以只保存变更的数据
    例如:将操作系统安装在复盘,然后创建差异化磁盘来执行进一步配置

2.3 KVM支持的磁盘类型

  • raw
  • cow
  • qcow
  • qcow2
  • vmdk
  • vhd \ vhdx
  • vdi

4. 存储池

  • libvirt 可以 以 存储池 的形式对存储进行统一管理、简化操作
  • 存储池 和 卷 不是必需的
  • 支持以下存储池
dir - Filesystem Directory
disk  - Physical Disk Device
fs - Pre-Formatted Block Device
gluster - Gluster Filesystem
iscsi - iSCSI Target
logical
mpath
netfs
rbd
scsi
sheepdog

4.1 配置文件

/etc/libvirt/storage/	#存储 存储池 的配置文件~们

4.2 基于目录的存储池

  1. 准备目录:设置目录权限

针对存储池的操作

virsh pool-list pool_name
virsh pool-info pool_name
virsh pool-autostart pool_name
virsh pool-build	#建立池
virsh pool-create-as	#从一组变量中创建一个池
virsh pool-create	#从一个 XML 文件中创建一个池
virsh pool-define-as	#在一组变量中定义池
virsh pool-delete pool_name
virsh pool-destroy pool_name
virsh pool-refresh pool_name
virsh pool-edit	pool_name	#编辑存储池XML配置

5.存储卷

存储池被分割为存储卷(storage volume

存储卷组成

  1. 文件
  2. 块设备(如物理分区、LVM逻辑卷)

存储卷操作

  1. 创建
  2. 克隆
  3. 删除
  4. 移动
  5. 修改大小
virsh vol-list pool_name	#列举存储池中的存储卷
virsh vol-clone
virsh vol-create-as pool_name vol_name 2G --format qcow2 	#在存储池中创建存储卷
virsh vol-create
virsh delete
virsh vol-download
virsh vol-dumpxml	#XML 中的卷信息
virsh vol-info vol_name	#存储卷信息
virsh vol-list	#列出卷
virsh vol-name	#为给定密钥或者路径返回卷名
virsh vol-path
virsh vol-pool
virsh vol-resize	#重新定义卷大小
virsh vol-upload	#将文件内容上传到卷中
virsh vol-wipe	#擦除卷

猜你喜欢

转载自blog.csdn.net/Sanayeah/article/details/126739359