KVM虛擬化專題(2)KVM及Libvirt架構
阿新 • • 發佈:2019-02-09
負載 password strong image tex https 分享圖片 密碼 管理工具 kvm是內核組件,並沒有自己的用戶空間,QEMU是一個通用的開源的硬件模擬器,可以模擬多種硬件
QEMU_KVM從分支與主幹合並,QEMU成為KVM在用戶空間的管理工具,及KVM運行在內核空間負載虛擬機調用物理資源的請求處理,QEMU則在用戶空間處理用戶下達給虛擬機的各種指令
從架構上看KVM屬於宿主模型,因為Linux設計之初並內有針對虛擬化的支持,KVM是以內核模塊的形式存在的。但是隨著越來越多的虛擬化功能被加到Linux內核當中,也可以把Linux內核看作一個Hypervisor。因此KVM也可以算作是Hypervisor模型。
Libvirt
Libvirt是由Redhat開發的一套開源的軟件工具,目標是提供一個通用和穩定的軟件庫來高效、安全的管理一個節點上的虛擬機,並支持遠程操作。
Libvirt服務
啟動服務 systemctl start libvirtd
配置文件在/etc/libvirt目錄下面
QEMU_KVM從分支與主幹合並,QEMU成為KVM在用戶空間的管理工具,及KVM運行在內核空間負載虛擬機調用物理資源的請求處理,QEMU則在用戶空間處理用戶下達給虛擬機的各種指令
從架構上看KVM屬於宿主模型,因為Linux設計之初並內有針對虛擬化的支持,KVM是以內核模塊的形式存在的。但是隨著越來越多的虛擬化功能被加到Linux內核當中,也可以把Linux內核看作一個Hypervisor。因此KVM也可以算作是Hypervisor模型。
Libvirt
Libvirt是由Redhat開發的一套開源的軟件工具,目標是提供一個通用和穩定的軟件庫來高效、安全的管理一個節點上的虛擬機,並支持遠程操作。
啟動服務 systemctl start libvirtd
配置文件在/etc/libvirt目錄下面
一個庫文件,實現管理接口
一個守護進程(libvirtd)
一個命令行工具(virsh)
為了支持VMM,Libvirt采用基於驅動(Driver)架構,每種VMM需要提供一個Driver和Libvirt進行通信來操控特定的VMM
Libvirt定義了各種API
- 虛擬機快照:快照包括內存、硬盤等信息在內的完整的虛擬化狀態。
- 虛擬化管理:這一類API用於管理虛擬機,也是Libvirt裏面使用最頻繁的功能,比如,創建、銷毀、重啟、遷移虛擬機、操作系統的磁盤鏡像等。
- 事件:事件(events)是Libvirt定義的一套檢測特定情況發生的機制,用戶可以通過響應的API告訴Libvirt,想要監測什麽樣的事件,與事件發生時采取什麽樣的操作。
- 宿主機:用於獲取宿主機的各種信息,包括機器名,COU狀態等,也用於和特定的VMM建立連接。
- 網絡接口:實現網路接口的響應操作,如定義一個新的網絡接口
virsh是一個基於Libvirt的命令行工具,用於管理虛擬機的整個生命周期,包括創建、銷毀、遷移等。virsh常用參數指令: virsh shutdown --mode-agent 比--mode=acpi更加安全地關閉操作系統 virsh snapshot-creat -quiesce 在創建快照之前,將緩存地內容刷入到磁盤 virsh domfsfreee 靜默文件系統 virsh domfsthaw 恢復靜默地文件系統 virsh domfstrim 讓虛擬機trim文件系統 virsh domtime 獲取虛擬機的事件 virsh setvcpus 配置虛擬機的vCPU virsh dominfaddr --source agent 查詢虛擬機的IP地址 virsh domfsinfo 顯示虛擬機的文件系統列表 virsh set-user-password 設置虛擬機用戶的密碼
KVM虛擬化專題(2)KVM及Libvirt架構