kvm存储池和存储卷

1、kvm储存模式vim

        KVM的存储选项有多种,包括虚拟磁盘文件、基于文件系统的存储和基于设备的存储。后端

        

 

 

         1.虚拟磁盘文件bash

               当系统建立KVM虚拟机的时候,默认使用虚拟磁盘文件做为后端存储。安装后,虚拟机 认为在使用真实的磁盘,但实际上看到的是用于模拟硬盘的虚拟磁盘文件。服务器

               这一额外的文件 系统层会下降系统速度。 固然,基于磁盘镜像的虚拟磁盘并不是全无益处,磁盘文件系统能够很轻松地用于其它的 KVM虚拟化宿主机。网络

               可是若是您但愿优化KVM虚拟化性能,最好考虑其它的存储方式。svg

          2.基于文件系统的KVM存储性能

               在安装KVM宿主机时,可选文件系统为dir(directory)或fs(formatted block storage) 做为初始KVM存储格式。默认选项为dir,用户指定本地文件系统中的一个目录用于建立磁盘 镜像文件。 fs选项能够容许用户指定某个格式化文件系统的名称,把它做为专用的磁盘镜像文件存 储。优化

    两种KVM存储选项之间最主要的区别在于:fs文件系统不须要挂载到某个特定的分区。 两种选项所指定的文件系统,均可以是本地文件系统或位于SAN上某个物理宿主机上的 网络文件系统。后者具有必定的优点,由于SAN能够很轻易地实现多个主机同时访问,而本 地磁盘或文件系统则没法实现。ui

    还有一种基于文件的磁盘存储方式是netfs,用户能够指定一个网络文件系统的名称, 如Samba.用这种方式做为KVM存储很方便,由于这样很容易访问到位于其它服务器上的文件 系统,同时用户也能够经过多台宿主机访问磁盘文件。3d

    全部的这些基于文件的KVM存储方式都有一个缺点:文件系统固有缺陷。由于虚拟机的 磁盘文件不能直接读取或写入KVM存储设备,而是写入宿主机OS之上的文件系统。

     这也就意 味着在访问和写入文件时中间增长了额外一层,这一般会下降性能。因此,若是您但愿寻找 KVM虚拟化性能最优方案,最好考虑基于设备的存储。

         3.基于设备的KVM存储

              另一种KVM存储的方式就是使用基于设备的方式。共支持四种不一样的物理存储:磁 盘、iSCSI、SCSI和lvm逻辑盘。磁盘方式指直接读写硬盘设备。iSCSI和SCSI方式可选,取 决于用户采起SCSI或iSCSI地址把磁盘设备链接。

   这种KVM存储方式的优点在于,磁盘的名称 是固定的,而不须要取决于宿主机OS搜索到磁盘设备的顺序。

   这种链接磁盘的方式也有缺点:灵活性不足。虚拟磁盘的大小很难改变,并且基于设备 的KVM存储不支持快照。 若是要优化KVM存储的灵活性,可使用LVM(Logical Volume Manager)。

          LVM的优点在 于可使用快照,而快照并非KVM虚拟化自带的功能。

          LVM能够把全部存储放到一个卷组里,从而轻松建立一个逻辑卷。该卷组是物理磁盘设 备的一个抽象,因此若是超出可用磁盘空间最大值,还能够向卷组中添加新的设备,从而极 大简化了增长存储空间的过程,增长的空间在逻辑卷中直接可使用。

         使用LVM使得磁盘空 间分配更加灵活,并且增长和删除存储也更为容易。

         最后,LVM不管是在单宿主机或多宿主机环境中均可以很好工做。在多宿主机环境中, 您能够在SAN上建立逻辑卷。

         若是使用Cluster LVM,能够很容易的配置成多个主机同时访问 某个逻辑卷。

2、存储池管理

          基本概念

          显示池与卷的信息

          基于目录的存储池

          基于磁盘的存储池

          基于分区的存储池

          基于LVM的存储池

         基于iSCSI的存储池

         基于NFS的存储池

     1) 存储池的基本概念 存储池是一个由libvirt管理的文件、目录或存储设备,提供给虚拟机使用。

          存储池被 分为存储卷,这些存储卷保存虚拟镜像或链接到虚拟机做为附加存储。libvirt经过存储池 的形式对存储进行统一管理、简化操做。

         对于虚拟机操做来讲,存储池和卷并非必需的。 支持如下类型存储池:

          

 

 

  3、virsh中和存储池相关的命令:

pool-autostart 自动启动某个池
pool-build 创建池
pool-create-as 从一组变量中建立一个池
pool-create 从一个 XML 文件中建立一个池
pool-define-as 在一组变量中定义池
pool-define 在一个XML文件中定义(但不启动)一个池或修改已有池
pool-delete 删除池
pool-destroy 销毁(删除)池
pool-dumpxml 将池信息保存到XML文档中
pool-edit 为存储池编辑 XML 配置
pool-info 查看存储池信息
pool-list 列出池
pool-name 将池 UUID 转换为池名称
pool-refresh 刷新池
pool-start 启动一个(之前定义的)非活跃的池
pool-undefine 取消定义一个不活跃的池
pool-uuid 把一个池名称转换为池 UUID

4、virsh中的和存储卷相关命令

vol-clone 克隆卷。
vol-create-as 从一组变量中建立卷
vol-create 从一个 XML 文件建立一个卷
vol-create-from 生成卷,使用另外一个卷做为输入。
vol-delete 删除卷
vol-download 将卷内容下载到文件中
vol-dumpxml 保存卷信息到XML文档中
vol-info 查看存储卷信息
vol-key 根据卷名或路径返回卷的key
vol-list 列出卷
vol-name 根据给定卷key或者路径返回卷名
vol-path 根据卷名或key返回卷路径
vol-pool 为给定密钥或者路径返回存储池
vol-resize 从新定义卷大小
vol-upload 将文件内容上传到卷中
vol-wipe 擦除卷

5、存储卷命令

        1.查看系统中的存储池

pool-list  --details  /或者 --all

  

 

      2.查看vm存储池的信息

pool-info vm

  

 

      3.查看vm存储池中的卷信息

vol-list vm

  

 

     4.建立基于目录的存储池 dir:Filesystem Directory

        1.经过virsh建立

pool-define-as test1 dir --target '/kvm-vm/dirpool/'    建立储存池
pool-build  test1  构建池 test1
pool-start test1   池 test1 已启动
pool-autostart  test1 池 test1 标记为自动启动

  

 

     5.建立基于分区的存储池 fs:Pre-Formatted Block Device

        Libvirtd会自动挂载mount分区

         1.查看硬盘

lsblk

  

 

        2.作物理卷和卷组

pvcreate /dev/sdb
vgcreate  vgpool /dev/sdb
pvdisplay
vgs

  

 

        

 

    2.建立

pool-define-as  vgpool logical --source-name vgpool --target  /dev/vgpool      定义池 vgpool
pool-start vgpool       池 vgpool 已启动
pool-autostart  vgpool 池 vgpool 标记为自动启动

  

   6.基于LVM的存储池要求使用所有磁盘分区

      1.  安装主键

 yum -y install rpcbind nfs-utils  客户端和主端都要作

  2.启动程序

主:
systemctl start rpcbind   主服务器只须要启动这一个
systemctl enable rpcbind
从:
systemctl start rpcbind
systemctl enable rpcbind

systemctl start nfs-server.service
systemctl enable nfs-server.service

  链接nfs时要么关闭防火墙 链接端口  要么去nfs配置文件固定端口(nfs初始状态端口随机的)

    3.建立lvm

 pvcreate  /dev/sdb
vgcreate  nfsvg /dev/sdb
vgdisplay nfsvg
lvcreate  -n  nfslv1 -l 5119 nfsvg
lvs
mkfs.xfs /dev/nfsvg/nfslv1

  

   4.挂载lvm

mkdir /mnt/nfs
mount /dev/nfsvg/nfslv1  /mnt/nfs/   挂载位置
 vim /etc/fstab    设置开机自启动

 

        

 

   添加权限

          vim /etc/exports  

        

   重启 rpcbind、nfs-server.service 服务

  查看是否生效

exportfs -av
showmount -e 192.174.1.11   远程验证
mount -t nfs 192.174.1.11:/mnt/nfs /mnt/  远程挂载上验证

  

 

   5.建立储存池

pool-define-as  nfspool netfs --source-host 192.174.1.11 --source-path /mnt/nfs --target /kvm-vm/nspool/     定义池
pool-build nfspool  构建池
pool-start nfspool  启动池
pool-autostart  nfspool  设置自启动池

  

 

 

 

 6、存储卷管理

       1.储存池概念

         存储池被分割为存储卷(Storage Volume)

         存储卷

                文件

                块设备(如物理分区、LVM逻辑卷等)

                Libvirt管理的其余类型存储的抽象

         

 

         2.存储卷管理

            建立

            克隆

            删除

           移动

           修改大小

7、建立储存卷

         1.查看存储池VM中的卷

vol-list vm

   2.建立一个qcow2格式的卷

vol-create-as vgpool vspool.qcow2 8G --format qcow2

  3.创建基于LVM的卷

vol-create-as  vgpool vgvm1 8G
相关文章
相关标签/搜索