KVM之初體驗——使用libvirt的virsh管理kvm

1、KVM虛擬機的管理工具node

準確來講,KVM 僅僅是 Linux 內核的一個模塊。管理和建立完整的 KVM 虛擬機,須要更多的輔助工具。python

QEMU-KVM:在 Linux 系統中,首先咱們能夠用 modprobe 系統工具去加載 KVM 模塊,若是用 RPM 安裝 KVM 軟件包,系統會在啓動時自動加載模塊。加載了模塊後,才能進一步經過其餘工具建立虛擬機。但僅有 KVM 模塊是遠遠不夠的,由於用戶沒法直接控制內核模塊去作事情,還必須有一個用戶空間的工具。關於用戶空間的工具,KVM 的開發者選擇了已經成型的開源虛擬化軟件 QEMU。QEMU 是一個強大的虛擬化軟件,它能夠虛擬不一樣的 CPU 構架。好比說在 x86 的 CPU 上虛擬一個 Power 的 CPU,並利用它編譯出可運行在 Power 上的程序。KVM 使用了 QEMU 的基於 x86 的部分,並稍加改造,造成可控制 KVM 內核模塊的用戶空間工具 QEMU-KVM。因此 Linux 發行版中分爲 kernel 部分的 KVM 內核模塊和 QEMU-KVM 工具。這就是 KVM 和 QEMU 的關係。shell

Libvirt、virsh、virt-manager:儘管 QEMU-KVM 工具能夠建立和管理 KVM 虛擬機,RedHat 爲 KVM 開發了更多的輔助工具,好比 libvirt、libguestfs 等。緣由是 QEMU 工具效率不高,不易於使用。Libvirt 是一套提供了多種語言接口的 API,爲各類虛擬化工具提供一套方便、可靠的編程接口,不只支持 KVM,並且支持 Xen 等其餘虛擬機。使用 libvirt,你只須要經過 libvirt 提供的函數鏈接到 KVM 或 Xen 宿主機,即可以用一樣的命令控制不一樣的虛擬機了。Libvirt 不只提供了 API,還自帶一套基於文本的管理虛擬機的命令—— virsh,你能夠經過使用 virsh 命令來使用 libvirt 的所有功能。但最終用戶更渴望的是圖形用戶界面,這就是 virt-manager。他是一套用 python 編寫的虛擬機管理圖形界面,用戶能夠經過它直觀地操做不一樣的虛擬機。Virt-manager 就是利用 libvirt 的 API 實現的。編程

2、libvirt簡介網絡

    libvirt是Linux上的虛擬化庫,是長期穩定的C語言API,支持KVM/QEMU、Xen、LXC等主流虛擬化方案。連接:http://libvirt.org/
virsh是libvirt對應的shell命令。dom


3、virsh基礎經常使用操做ide

1.查看虛擬機磁盤列表(包括光驅):
#virsh domblklist
rhel6
#rhel6表明虛擬機名稱
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/p_w_picpaths/Clinet
hdc        /FTP/gnome-uplookinng/rhel6u4.iso
Target    設備名(磁盤名):
命名規範例如:   vda      vd表明:虛擬磁盤     a   第一塊   hdc(一般固定爲cdrom的設備名)
2.添加/刪除硬盤(能夠在線添加/刪除):
#qemu-img create -f qcow2 -o preallocation=metadata /var/lib/libvirt/p_w_picpaths/rhel.qcow2 15G
#virsh attach-disk rhel6 /var/lib/libvirt/p_w_picpaths/rhel6.vdb vdb --persistent
#virsh detach-disk node002 /var/lib/libvirt/p_w_picpaths/rhel.qcow2 --persistent
命令語法:
attach-disk 添加磁盤的參數
rhel6          虛擬機的名稱
/var/lib/libvirt/p_w_picpaths/rhel6.vdb   磁盤文件的路徑和名稱   
vdb             磁盤文件的設備名稱
--persistent   永久添加磁盤,不加該參數表明非永久添加,虛擬機重啓後磁盤消失.
3.添加/刪除網卡(離線添加):
#virsh attach-interface node --type bridge --source br0 --persistent
#virsh detach-interface node --type bridge  --mac 52:54:00:e5:82:c1 --persistent
#刪除網卡必須帶mac地址
4.鏡像操做
  
添加鏡像:
#virsh attach-disk rhel6 /FTP/rhel6u4.iso  hdc --type cdrom --persistent
更換鏡像:
#virsh change-media rhel6 hdc /FTP/rhel-server-6.5-x86_64-dvd.iso


4、virsh命令分類函數

wKioL1amPJ_C2yZRAAAm0r_Ki5Q018.png

    能夠建立、刪除、運行、中止和管理你的虛擬機從命令行,使用一個叫作virsh工具。Virsh高級Linux管理員,尤爲有用腳本或自動化管理他們的虛擬機。

5、virsh 命令選項工具

1.virsh經常使用命令性能



wKioL1amPWfhTyq8AABj99uvrw4195.png

2. virsh 命令選項 - 存儲器


wKioL1amRDCxpJcsAAB6lIDF_uk941.png


3. virsh 命令選項 - 資源



wKioL1amPcigCf-4AABV5unkK3Q281.png

4. virsh 命令選項 - 網絡



wKiom1amPdGDupAyAABWmymVHGk290.png

5. virsh 命令選項:用戶管理


wKioL1amPl3SefMpAABDW_1o4ek480.png

系統會使用爲用戶和組設置的缺省值建立用戶和組。當建立用戶或組標識時,所建立賬戶將處於鎖定狀態。必須分配密碼以解鎖該標識。
例如,建立名爲 NeildeGrasseTyson 的用戶。
useradd NeildeGrasseTyson要查看使用該用戶建立的缺省值,請添加 -D 選項:
useradd NeildeGrasseTyson -D要解鎖用戶賬戶,請添加密碼:
passwd NeildeGrasseTyson有關這些命令的選項的更多信息,請參閱這些命令的聯機幫助頁。
密碼管理
良好的密碼管理包含必需要求用戶按期更改密碼這一需求。要配置密碼到期,請使用圖形用戶管理界面中提供的密碼選項或 chage 命令。
chage 命令容許您指定密碼壽命值(例如在密碼更改之間的天數)。
例如,對於用戶標識 NeildeGrasseTyson,要將密碼更改之間的天數指定爲 90 天,請發出如下命令:
chage -M 90 NeildeGrasseTyson當最初對用戶標識進行使用時,還可強制當即更改密碼。請使用如下命令:
chage -d 0 NeildeGrasseTyson有關這些命令的選項的更多信息,請參閱這些命令的聯機幫助頁。


6. virsh 命令選項:遷移



wKioL1amPpXzyOW4AABDx5lAs9M391.png

結束語

  基於 Linux 的開源虛擬化技術在不停地發展。KVM 的易用性和持續發展已幫助它取代了可能更強大的 Xen 虛擬化技術,成爲開源 Linux 虛擬化的標準。不管選擇哪一種虛擬化技術,這種演變都突出了使用標準的、獨立於技術的管理命令(好比 libvirt 虛擬化 API 所提供的命令)的價值。     KVM 虛擬機在不斷的加強和完善中,開源社區和 Linux 的系統集成商也在開發各類各樣的基於 KVM 的管理工具,未來的 KVM 遷移工具會在性能,功能,可操做性和自動化程度上大大加強。  本文經過示例展現瞭如何使用基於 libvirt 的命令來簡化虛擬機的存儲分配以及在存儲中安裝它的過程,但僅觸及了 libvirt API 和基於它的免費命令所提供的許多強大管理功能的冰山一角。  

相關文章
相關標籤/搜索