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