天天看點

KVM之管理虛拟機

一、libvirt架構概述:

libvirt是用來管理虛拟機或虛拟化功能的軟體集合,主要包括:libvirt API,libvirtd程序和virsh工具集三部分。最初的目的是為不同的hypervisor提供統

ibvirtd該背景程序主要實作以下功能:

(1)遠端代理

所有remote client發送來的指令,由該程序監測執行

     (2)本地環境初始化

libvirt服務的啟停,使用者connection的響應等

    (3)根據環境注冊各種Driver(qemu, xen, storage…)的實作

不同虛拟化技術以Driver的形式實作,由于libvirt對外提供的是統一的接口,是以各個

Driver就是實作這些接口,即将Driver注冊到libvirt中。 

KVM之管理虛拟機

檢視libvirtd服務狀态

KVM之管理虛拟機

如果libvirtd服務停止運作,那麼你将不能管理虛拟機,也就是不能使用virt-manager等工具來管理虛拟機。 

虛拟機的所有配置是放置在一個xml檔案中,位置在/etc/libvirt/qemu/目錄中。

KVM之管理虛拟機

可以看到建立的3個虛拟機,libvirt的xml檔案分為幾個重要部分,整體結構如下: 

虛拟機整體資訊

系統資訊

硬體資源特性

突發事件處理

虛拟磁盤(單個或多個)

虛拟CD光牒(可選)

虛拟網絡(單個或者多個)

Vnc/spice配置

具體格式可以參考:http://libvirt.org/formatdomain.html

二、使用virt-manager管理虛拟機 

virt-manager應用程式是一個桌面使用者接口,用于通過libvirt管理虛拟機。它的主要目标是管理KVM,不過也可以管理Xen和LXC(Linux容器)。它提供了運作域的彙總視圖,目前性能和資源利用統計。向導可以允許建立新域,以及配置、調整域的資源配置設定和虛拟硬體。内嵌的VNC和SPICE的用戶端提供了一個全圖形控制台。 

virt-manager主要功能:

   定義和建立虛拟機

  硬體管理

  性能監視

  虛拟機的儲存和恢複、暫停和繼續、關閉和啟動

  控制台

  線上和離線遷移

1、啟用virt-manager

KVM之管理虛拟機

2、配置虛拟機啟動選項

KVM之管理虛拟機
KVM之管理虛拟機
KVM之管理虛拟機

3、添加USB裝置: 

KVM之管理虛拟機

可以添加主控端上的USB裝置到虛拟機中使用,選擇新增硬體,添加USB主機裝置選擇要連接配接的主控端上的USB裝置即可。

4、調整監視參數,預設隻監視CPU。

KVM之管理虛拟機
KVM之管理虛拟機
KVM之管理虛拟機
KVM之管理虛拟機

5、連接配接遠端的KVM主機,進行管理

KVM之管理虛拟機

建立連接配接,添加必要的參數。需要yum -y install openssh-askpass軟體包支援。

KVM之管理虛拟機

三、使用virsh來管理虛拟機 

virsh是使用libvirt management API建構的管理工具

virsh的名稱的含義是virtualization shell它有兩種工作模式: 

立即模式

KVM之管理虛拟機

互動模式

KVM之管理虛拟機

2、Virsh常用指令總結 

attach-devic:使用XML檔案中的裝置定義在應似機中源加裝置

attach-disk:在虛拟機中附加磁盤裝置

attach-interface:在虛拟機中附加新網絡接口

create:從XML配置檔案生成虛拟機并啟動虛拟機

define:為虛拟機輸出XML配置檔案

destroy:強制停止虛拟機

detach-device:從虛拟機分離裝置,使同樣的XML描述作為指令attach-device

detach-disk:從虛拟機廢了磁盤裝置

detach-interface:從虛拟機分離網絡接口

demblkstat:顯示正在運作的虛拟機的塊裝置統計

domid:顯示虛拟機ID

domifstat:顯示正在運作的虛拟機的網絡接口統計

dominfo:顯示虛拟機資訊

domname:顯示虛拟機名稱

domstate:顯示虛拟機狀态

domuuid:顯示虛拟機的UUID

dumpxml:輸出虛拟機XML配置檔案

help:列印基本幫助資訊

list:列出所有虛拟機

migrate:将虛拟機遷移到另一台主機上

nodeinfo:有關管理程式的輸出資訊

quit:退出這個互動終端

reboot:重新開機虛拟機

restore:恢複以前儲存在檔案中的虛拟機

resume:恢複暫停的虛拟機

save:将虛拟機目前的狀态儲存到某個檔案中

setmaxmem:為管理程式設定記憶體上限

setmem:為虛拟機設定配置設定的記憶體

setvcpus:修改虛拟機配置設定的虛拟cpu個數

shutdown:關閉虛拟機

suspend:暫停虛拟機

undefine:删除與虛拟機關聯的所有檔案

vcpuinfo:顯示虛拟機的虛拟cpu資訊

vcpupin:控制虛拟機的虛拟cpu親和性

version:顯示virsh版本

3、KVM基本功能管理: 

1) 檢視KVM的配置檔案存放目錄 

KVM之管理虛拟機

2)檢視虛拟機狀态 

KVM之管理虛拟機

3) 虛拟機關機與開機

KVM之管理虛拟機

4)強制虛拟機系統關閉電源 

KVM之管理虛拟機

5)通過配置檔案啟動虛拟機系統執行個體 

KVM之管理虛拟機

6) 挂起虛拟機 

KVM之管理虛拟機

7) 恢複虛拟機 

KVM之管理虛拟機

8) 配置虛拟機執行個體伴随主控端自動啟動和取消自動啟動 

KVM之管理虛拟機

上述指令會在/etc/libvirt/qemu/autostart/目錄下,建立檔案。

KVM之管理虛拟機

相反取消之後/etc/libvirt/qemu/autostart/中檔案也會消失

KVM之管理虛拟機

9) 導出虛拟機配置

KVM之管理虛拟機

10) 虛拟機的删除與添加 

KVM之管理虛拟機

通過備份的配置檔案重新定義虛拟機:

KVM之管理虛拟機

11) 修改虛拟機配置資訊 

KVM之管理虛拟機

或者使用virsh修改:

KVM之管理虛拟機

12) 檢視虛拟機資訊 

KVM之管理虛拟機

13)連接配接虛拟機 

KVM之管理虛拟機

如果是CentOS7想要連接配接成功,需要在虛拟機裡運作以下指令

KVM之管理虛拟機

如果是CentOS6的系統,需要做以下修改:

1、添加ttyS0的許可,允許root登陸 

KVM之管理虛拟機

2、編輯/etc/grub.conf檔案,在核心啟動參數後面加上console=ttyS0 

KVM之管理虛拟機

3編輯/etc/inittab檔案,最後一行加入内容 S0: 12345: respawn:/sbin/agetty 

KVM之管理虛拟機

最後重新開機,reboot。

如果想要推出連接配接,ctrl  +  ]

四、安裝yum  install  -y  libguestfs  libguestfs-tools軟體工具,就可以直接讀取qcow2格式的磁盤檔案。

以下的這些操作最好要在虛拟機關機狀态下做,否則會出錯。

1、virtcat指令類似于cat指令。

KVM之管理虛拟機

vrit-edit指令用于編輯檔案,用法與vim基本一緻,例如把主機名改成

KVM之管理虛拟機

再檢視發現主機名已經更改。

KVM之管理虛拟機

3、virt-df指令用于檢視虛拟機磁盤資訊 

KVM之管理虛拟機

4、virt-copy-out:這個指令可以把虛拟機裡的檔案複制出來, 文法如下:

virt-copy-out -d domname file|dir [file|dir ...] localdir

virt-copy-out -a disk.img file|dir [file|dir ...] localdir 

KVM之管理虛拟機

将test.txt檔案拷貝到centos7-1的/tmp目錄下。

檢視test.txt檔案内容。

KVM之管理虛拟機

guestfish指令文法如下:

guestfish [--ro|--rw] -i -a /path/to/disk.img

guestfish [--ro|--rw] -i -d name-of-libvirt-domain  

KVM之管理虛拟機

KVM虛拟機克隆

1) 檢視虛拟機狀态 

KVM之管理虛拟機

1) 從centos7-1克隆到centos7-3

KVM之管理虛拟機
KVM之管理虛拟機

KVM虛拟機快照 

快照實際上做的是虛拟機的XML配置檔案,預設快照XML檔案在/var/lib/libvirt/qemu/snapshot/虛拟機名/下,快照隻支援qcow2磁盤格式的系統。 

1) 對虛拟機centos7-1做快照 

KVM之管理虛拟機

2) 檢視快照資訊 

KVM之管理虛拟機

3)檢視目前快照資訊 

KVM之管理虛拟機

4) 恢複虛拟機狀态到1533498196

KVM之管理虛拟機

5) 删除快照 

KVM之管理虛拟機

繼續閱讀