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命令分類函數
5、virsh 命令選項工具
1.virsh經常使用命令性能
2. virsh 命令選項 - 存儲器
3. virsh 命令選項 - 資源
4. virsh 命令選項 - 網絡
5. virsh 命令選項:用戶管理
系統會使用爲用戶和組設置的缺省值建立用戶和組。當建立用戶或組標識時,所建立賬戶將處於鎖定狀態。必須分配密碼以解鎖該標識。 例如,建立名爲 NeildeGrasseTyson 的用戶。 useradd NeildeGrasseTyson要查看使用該用戶建立的缺省值,請添加 -D 選項: useradd NeildeGrasseTyson -D要解鎖用戶賬戶,請添加密碼: passwd NeildeGrasseTyson有關這些命令的選項的更多信息,請參閱這些命令的聯機幫助頁。 密碼管理 良好的密碼管理包含必需要求用戶按期更改密碼這一需求。要配置密碼到期,請使用圖形用戶管理界面中提供的密碼選項或 chage 命令。 chage 命令容許您指定密碼壽命值(例如在密碼更改之間的天數)。 例如,對於用戶標識 NeildeGrasseTyson,要將密碼更改之間的天數指定爲 90 天,請發出如下命令: chage -M 90 NeildeGrasseTyson當最初對用戶標識進行使用時,還可強制當即更改密碼。請使用如下命令: chage -d 0 NeildeGrasseTyson有關這些命令的選項的更多信息,請參閱這些命令的聯機幫助頁。
6. virsh 命令選項:遷移
結束語
基於 Linux 的開源虛擬化技術在不停地發展。KVM 的易用性和持續發展已幫助它取代了可能更強大的 Xen 虛擬化技術,成爲開源 Linux 虛擬化的標準。不管選擇哪一種虛擬化技術,這種演變都突出了使用標準的、獨立於技術的管理命令(好比 libvirt 虛擬化 API 所提供的命令)的價值。 KVM 虛擬機在不斷的加強和完善中,開源社區和 Linux 的系統集成商也在開發各類各樣的基於 KVM 的管理工具,未來的 KVM 遷移工具會在性能,功能,可操做性和自動化程度上大大加強。 本文經過示例展現瞭如何使用基於 libvirt 的命令來簡化虛擬機的存儲分配以及在存儲中安裝它的過程,但僅觸及了 libvirt API 和基於它的免費命令所提供的許多強大管理功能的冰山一角。