如何在KVM中管理存储池

KVM平台以存储池的形式对存储进行统一管理,所谓存储池可以理解为本地目录、通过远端磁盘阵列(iSCSI、NFS)分配过来磁盘或目录,当然也支持各类分布式文件系统。

    

通过virsh中pool命令能够查看、创建、激活、注册、删除存储池。

下面通过一些实例演示如何管理存储池:

一、查看当前存储池列表

[root@monitor log]# virsh pool-list --all
 Name                 State      Autostart
-------------------------------------------
 08-standard          inactive   yes       
 12-standard          inactive   yes       
 android-x86-4.4      inactive   yes

   查看某一存储池的具体信息(以XML形式存在)

[root@monitor log]# virsh  pool-dumpxml 08-standard
<pool type='dir'>
  <name>08-standard</name>
  <uuid>7e833c26-ee26-4ab3-85c6-a1184d790969</uuid>
  <capacity unit='bytes'>0</capacity>
  <allocation unit='bytes'>0</allocation>
  <available unit='bytes'>0</available>
  <source>
  </source>
  <target>
    <path>/data/zgytest/hk/windows/08-standard</path>
  </target>
</pool>

查看具体信息,结果类似于解析上面的XML:

[root@monitor log]# virsh pool-info 08-standard
Name:           08-standard
UUID:           7e833c26-ee26-4ab3-85c6-a1184d790969
State:          inactive
Persistent:     yes
Autostart:      yes

  二、创建一个新的存储池

这里仿照上面的XML文件,编写一个命为poolB的XML文档,内容如下[位于/home/poolB]:

[root@kvm02 home]# cat poolB  
  
<pool type='dir'>  
  <name>poolB</name>  
  <source>  
  </source>  
  <target>  
    <path>/home/img</path>  
    <permissions>  
      <mode>0700</mode>  
      <owner>-1</owner>  
      <group>-1</group>  
    </permissions>  
  </target>  
</pool>  

调用pool-create命令,加载上面的XML文件:

virsh # pool-create /home/poolB  
从 poolB 中创建池 /home/poolB   
  
virsh # pool-list  
名称                 状态       自动开始    
-----------------------------------------  
default              活动       yes         
poolB                活动       no 

查看创建的poolB状态:

virsh # pool-info poolB  
名称:          poolB  
UUID:           1e03e100-1f12-f004-1ee2-ae739eda746c  
状态:          running  
Persistent:     no  
自动启动:      no  
容量:          451.83 GB  
分配:          100.22 GB  
可用:          351.61 GB  
  
virsh # pool-dumpxml poolB  
<pool type='dir'>  
  <name>poolB</name>  
  <uuid>1e03e100-1f12-f004-1ee2-ae739eda746c</uuid>  
  <capacity>485150105600</capacity>  
  <allocation>107614916608</allocation>  
  <available>377535188992</available>  
  <source>  
  </source>  
  <target>  
    <path>/home/img</path>  
    <permissions>  
      <mode>0700</mode>  
      <owner>-1</owner>  
      <group>-1</group>  
    </permissions>  
  </target>  
</pool>  

   三、KVM存储池管理目录

  KVM创建的存储池可以理解为一种映射关系,即将某一块挂接至宿主机器上的存储空间形成可被KVM使用的逻辑存储池,以方便虚拟主机的管理。

  默认KVM将这些存储池的配置文件存放于/etc/libvirt/storage

四、删除一个存储池

删除poolB的命令如下:

virsh # pool-destroy poolB  
销毁池 poolB  
  
virsh # pool-list  
名称                 状态       自动开始    
-----------------------------------------  
default              活动       yes         
  
virsh #   

存储池报错:

Requested operation is not valid: storage pool is not active

此错误发生在iSCSI存储问题时。确保:

1.tgtd服务在服务器上运行并存储。

2.如果在添加新节点时发生错误,则ssh访问该节点并执行:

[root@free ~]# virsh  pool-list --all
Name               Status Auto start
-----------------------------------------
File                 active yes       
iSCSI-UGLY_004       not active yes

如果你看到iSCSI-UGLY_004not active yes,尝试删除存储并再次添加一个新节点:

root@free ~]# virsh pool-undefine iSCSI-UGLY_004
 iSCSI-UGLY_004 has been deleted

参考:

 http://blog.csdn.net/my2005lb/article/details/8635661

https://doc.ispsystem.com/index.php/VMmanager_Troubleshooting

原文地址:https://www.cnblogs.com/zhongguiyao/p/8304052.html