如何在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_004是 not 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