kvm及管理工具 libvirt介紹

2021-07-24 13:32:46 字數 2397 閱讀 3196

kvm管理工具 libvirt

import:kvm 模組載入之後,檢查/dev/kvm這個檔案,它是kvm核心模組提供給使用者空間的qemu-kvm程式使用的乙個控制介面,它提供了客戶機guest作業系統執行所需要的模擬和實際的硬體裝置環境。

除了在核心空間的kvm模組之外,在使用者空間需要qemu來模擬所需要的cpu和裝置模型以及用於啟動客戶機程序,這樣才有了乙個完整的kvm執行環境。而qemu-kvm是為了針對kvm專門做了修改和優化的qemu分支。

由於許多發行版本預設支援了kvm,不需要重新編譯核心(包括kvm 模組)和使用者態程式qemu-kvm。只需要檢視核心是否支援kvm(檢視/boot/config-xx 檔案中的kvm相關配置,以及kvm和kvm_intel模組是否正確載入。(lsmod | grep kvm),然後找到qemu-kvm的命令列工具(/usr/libexec/qemu-kvm)。
在kvm環境中,整個系統的基本架構如下:

上層:userspaceprocess|usersopaceprocess |qemu-kvm

中間層:linux kernel(kvm module)

底層:hardware support

在系統的底層cpu硬體中需要有硬體輔助虛擬化技術(intel vt,amd-v)的支援,宿主機就執行在硬體之上,kvm的核心部分是作為可動態載入核心模組執行在宿主機中的,其中乙個模組是和硬體平台無關的實現虛擬化核心基礎架構的kvm模組,乙個是硬體平台相關的kvm_intel(或者kvm_amd),而kvm中的乙個客戶機是作為乙個使用者空間程序qemu-kvm執行的,他和其他的普通的使用者空間程序如gnome,firefox等一樣都是由核心來排程使其執行在物理cpu上。不過他由kvm模組控制。

libvirt 安裝

cd libvirt.git

./autogen.sh

make

make install

編譯之後,libvirtd,virsh等可執行程式被安裝在/usr/sbin/目錄下,至於libvirt.so,libvirt-qemu.so等共享庫檔案被安裝在/usr/lib64目錄下。

libvirt 配置

注意:要讓tcp,tls等連線生效,需要在啟動libvirtd時,加上–listen引數(簡寫 -l)而預設的service libvirtd start 命令在啟動libvirtd服務的時候並沒有帶上該引數。

/etc/libvirt/qemu.conf

qemu.conf 是libvirt對qemu的驅動的配置檔案,包括vnc spie等和連線它們時採用的許可權認證方式的配置,也包括記憶體大頁、selinux、cgroups等相關配置。

/etc/libvirt/qemu 目錄

qemu 目錄下存放的是用qemu驅動的domain的配置檔案 【節點 對應一台物理機,kvm 虛擬監控器執行在 node之上,監控domain。domain是執行在node上的虛擬機器】

是用virt-manager 工具建立的例項,其配置檔案預設儲存在該目錄下,networks儲存了建立例項時預設的網路配置。

libvirtd作為libvirt虛擬化管理系統中的伺服器端的守護程式,要讓某個節點能夠利用libvirt進行管理,都需要在該節點上執行libvirtd,libvirtd負責執行其他管理工具傳送給它的虛擬化管理操作指令。

libvirtd作為rhel中的乙個服務service 並配置在系統中,因此可以實用service指令對其進行操作。

service libvirtd

預設的libvirtd 在堅挺乙個本地的unix domain socket ,而沒有監聽基於網路的tcp ip socket,需要使用 -l 的命令列引數才開啟對libvirtd.conf 配置檔案中tcp ip socket 的配置。另外libvirtd守護程序的啟動或者停止,並不會直接影響正在執行的客戶機。

當然也可以使用/etc/init.d/libvirtd 的方式啟動libvirtd

該命令的命令引數

-d 、 –daemon

表示讓libvirtd 作為守護程序 daemon在後台執行。

-f 、 –config file

表示制定libvirtd的配置檔案為file,而不是預設的/etc/libvirt/libvirtd.conf

-l 、 –listen

表示開啟配置檔案中配置的tcpip連線

-p 、–pid-file file

將libvirtd程序的pid寫入到file檔案中,而不是使用預設的通常是/var/run/libvirtd.pid

-t 、 –timeout seconds

設定對libvirtd連線的超時時間為seconds秒

-v 、–verbose

執行命令輸出詳細的輸出資訊

–version

libvirtd程式的版本資訊

KVM管理工具概述

剛接觸kvm,對各種kvm的管理工具不了解,感覺比較混亂,所以整理了如下內容,僅作為知識梳理。kvm的常用管理工具主要有命令列工具virsh virt 和圖形化工具virt manager。兩者的底層都是由libvirt實現的,libvirt是linux上的虛擬化庫,僅提供kvm的管理介面,與kvm...

IT專案管理工具

一 完善的專案管理工具,需要具有如下的管理模組 1.需求管理 專案的需求變更,跟蹤,控制 2.資源管理 專案的可利用的資源 人力,物力,財力 3.計畫管理 包括成員管理和許可權分配,日程排定,工作時間管理,里程碑設定 4.進度管理 日曆,工作流,專案路線圖和gantt圖 5.測試管理 專案軟體缺陷b...

SQLCE管理工具

如果你是做dotnet開發,同時在找sqlce桌面 嵌入式資料庫的管理工具,那麼database.net。另外,既然你是做dotnet開發,又選擇了sqlce資料庫,那麼你肯定對比過sqlite資料庫,他們的對比,我在其他文章寫過 個人經驗,不是很全面,僅供參考 如果要在sqlite和sqlce中間...