kvm-存储池基础介绍、创建

1、基础知识

1.1、需求

为了使虚拟机获得更强大的后端存储能力,libvirt 提供了对各种各样的存储介质支持,包括本地文件系统,网络文件系统,iSCSI,LVM 等多种后端存储系统。在虚拟机中主要以存储池(pool)与存储卷(volume)的形式存在。
libvirt 中的存储管理独立于虚拟机管理。也就是存储池和存储卷的操作独立于虚拟机的操作存在,即使是没有虚拟机的场景。工作中我们可以当虚拟机需要存储资源时再进行灵活分配。

1.2、存储池

1.2.1、什么是存储池

KVM平台以存储池的形式对存储进行统一管理。它可以理解为一种映射关系,即将宿主机器上的存储空间形成可被KVM使用的逻辑存储池,以方便虚拟主机存储资源的统一管理。
宿主机的存储空间,可以是本地的、网络的等kvm支持的任意形式。

1.2.2、存储池流程图

1.2.3、存储池的配置文件位置

root@localhost:~# tree /etc/libvirt/storage/
/etc/libvirt/storage/
├── autostart
│   └── opt.xml -> /etc/libvirt/storage/opt.xml
└── opt.xml

1.2.4、存储池命令管理帮忙信息查询

root@localhost:~# virsh --help | grep pool
    allocpages                     Manipulate pages pool size
 Storage Pool (help keyword 'pool')
    find-storage-pool-sources-as   find potential storage pool sources
    find-storage-pool-sources      discover potential storage pool sources
    pool-autostart                 autostart a pool
    pool-build                     build a pool
    pool-create-as                 create a pool from a set of args
    pool-create                    create a pool from an XML file
    pool-define-as                 define a pool from a set of args
    pool-define                    define an inactive persistent storage pool or modify an existing persistent one from an XML file
    pool-delete                    delete a pool
    pool-destroy                   destroy (stop) a pool
    pool-dumpxml                   pool information in XML
    pool-edit                      edit XML configuration for a storage pool
    pool-info                      storage pool information
    pool-list                      list pools
    pool-name                      convert a pool UUID to pool name
    pool-refresh                   refresh a pool
    pool-start                     start a (previously defined) inactive pool
    pool-undefine                  undefine an inactive pool
    pool-uuid                      convert a pool name to pool UUID
    pool-event                     Storage Pool Events
    pool-capabilities              storage pool capabilities
    vol-pool                       returns the storage pool for a given volume key or path

2、存储池命令介绍

2.1、查询

存储列表:virsh pool-list
具体信息: virsh pool-info pool_name

2.2、创建存储池

常见两种创建方法,基于文件夹和文件系统,我们主要介绍基于文件夹的方式。
定义永久池+创建池:virsh pool-define-as + virsh pool-build
创建临时池+启动池:virsh pool-create-as

2.3、其它存储【创建存储池】命令

2.3.1、基于分区创建存储池

virsh pool-define-as <存储池名> fs --source-dev <分区名称> --target <挂载目录>

2.3.2、基于磁盘创建存储池

virsh pool-define-as <存储池名> disk --source-dev <磁盘名称> --source-format gpt --target <挂载目录>

2.3.3、基于lvm创建存储池

virsh pool-define-as <存储池名> logical --source-name <vg名称> --target <挂载目录>

2.3.4、基于iscsi创建存储池

virsh pool-define-as <存储池名> iscsi --source-host <存储主机ip> --source-dev <存储目标> --target <挂载目录>

2.3.5、基于nfs创建存储池

virsh pool-define-as <存储池名> netfs --source-host <nfs主机ip> --source-path <nfs共享目录> --target <挂载目录>

2.3.6、基于目录创建存储池

virsh pool-define-as <存储池名> --type dir --target <目录位置>

3、实战

3.1、创建永久存储池

3.1.1、创建目录

mkdir /kvm/images -p

3.1.2、创建目录存储池

virsh pool-define-as keep_dpool --type dir --target /kvm/images
virsh pool-build keep_dpool

3.1.3、检查效果

# virsh pool-list --persistent --all
 Name         State      Autostart
------------------------------------
 keep_dpool   inactive   no
 opt          active     yes

# tree /etc/libvirt/storage/
/etc/libvirt/storage/
├── autostart
│   └── opt.xml -> /etc/libvirt/storage/opt.xml
├── keep_dpool.xml
└── opt.xml
# pool-define-as 创建的存储池没有启动,在存储目录中有定义文件 

3.1.4、命令参数解析

virsh pool-define-as vmware_pool --type dir --target /kvm/images

注释:
vmware_pool 定义的存储池名称
--type dir 我们的类型是一个dir
--target /kvm/images 存储池的在宿主机上的目录是/kvm/images

3.2、创建临时存储池

3.2.1、创建目录

mkdir /kvm/temp_images -p

3.2.2、创建目录存储池

virsh pool-create-as temp_dpool --type dir --target /kvm/temp_images

3.2.3、检查效果

# virsh pool-list --transient --all
 Name         State    Autostart
----------------------------------
 temp_dpool   active   no
 
# tree /etc/libvirt/storage/
/etc/libvirt/storage/
├── autostart
│   └── opt.xml -> /etc/libvirt/storage/opt.xml
├── keep_dpool.xml
└── opt.xml

# 可以看到: pool-create-as创建的存储池启动成功了,在存储目录中没有定义文件

3.2.4、命令参数解析

virsh pool-create-as --name vmware_pool --type dir --target /kvm/images

注释:直接创建并启动一个存储池
vmware_pool 定义的存储池名称
--type dir 我们的类型是一个dir
--target /kvm/images 存储池的在宿主机上的目录是/kvm/images

 

posted @ 2023-05-21 16:35  小粉优化大师  阅读(785)  评论(0编辑  收藏  举报