1、libvirt架構概述:vim
libvirt是用來管理虛擬機或虛擬化功能的軟件集合,主要包括:libvirt API, libvirtd進程和virsh工具集三部分。bash
最初的目的是爲不一樣的hypervisor提供統一的管理接口。架構
libvirtd該後臺進程主要實現如下功能:工具
(1)遠程代理 全部remote client發送來的命令,由該進程監測執行3d
(2)本地環境初始化 libvirt服務的啓停,用戶connection的響應等代理
(3)根據環境註冊各類Driver(qemu, xen, storage…)的實現 不一樣虛擬化技術以Driver的形式實現,因爲libvirt對外提供的是統一的接口, 因此各個Driver就是實現這些接口,即將Driver註冊到libvirt中。xml
查看libvirtd服務狀態: systemctl status libvirtd
若是libvirtd服務中止運行,那麼你將不能管理虛擬機,也就是不能使用virt-manager 等工具來管理虛擬機。blog
2、kvm基礎管理:接口
1.查看命令幫助: 進程
virsh -h
2.查看kvm陪配置文件存放目錄:
ll /etc/libvirt/qemu/
3.查看虛擬狀態:
virsh list --all
4.虛擬機開機關機
virsh start testvm01 #開機
virsh shutdown testvm01 #關機
virsh destroy testvm01 強制虛擬機系統關閉 至關於拔掉電源
virsh create /etc/libvirt/qemu/testvm01.xml 經過配置文件啓動虛擬機
5.掛起虛擬機
virsh suspend testvm01
6.恢復掛起虛擬機運行
virsh resume testvm01
7.配置虛擬機實例伴隨宿主機自動啓動/取消
virsh autostart testvm01 開啓伴隨宿主機開啓自啓動
域 testvm01標記爲自動開始 上述命令將建立/etc/libvirt/qemu/autostart/目錄,裏面內容爲開機自動啓動的系統
virsh autostart --disable testvm01 取消伴隨宿主機開機自啓動
8.導出虛擬機配置
virsh dumpxml testvm02 > /etc/libvirt/qemu/testvm02_bak.xml
9.虛擬機刪除和添加
virsh undefine testvm02 刪除虛擬機
查看刪除結果,vm002的配置文件被刪除,可是磁盤文件不會被刪除
經過備份的配置文件從新定義虛擬機:
mv /etc/libvirt/qemu/testvm02_bak.xml /etc/libvirt/qemu/testvm02.xml #把備份虛擬配置文件修改回來 virsh define /etc/libvirt/qemu/testvm02.xml 定義域 testvm02
10.修改虛擬配置信息
1.直接修改配置文件
vim /etc/libvirt/qemu/testvm02.xml
2.經過命令進入配置文件修改
virsh edit testvm02
3.查看虛擬機信息
virsh edit testvm02
11.鏈接虛擬機 (進入虛擬機後按 ctrl + ] 退出虛擬機)
virsh console testvm01 進入虛擬機
ctrl+] 同時摁鍵 退出虛擬機
3、克隆虛擬機
virt-clone -o testvm02 -n testvm03 -f /kvm-vm/testvm03.qcow2 (克隆虛擬機前提是虛擬機出於關閉狀態)
啓動驗證:
4、虛擬機快照
快照實際上作的是虛擬機的XML配置文件,默認快照XML文件 在/var/lib/libvirt/qemu/snapshot/虛擬機名/下,快照只支持qcow2磁盤格式的系統。
1.建立快照
virsh snapshot-create testvm03 (沒有建立快照名字 但會輸出一段編號)
virsh snapshot-create-as testvm03 chuangjian
2.查看快照信息
virsh snapshot-list testvm03
3.查看當前快照信息
virsh snapshot-current testvm03
4.恢復到某個狀態
virsh snapshot-revert testvm03 1587981799
查看快照信息是否恢復
5.刪除快照
virsh snapshot-delete testvm03 1587981952
5、kvm虛擬機總結
1.libvirt的xml文件分爲幾個重要部分,總體結構以下:
2.查看命令幫助virsh --help,主要有如下部分管理命令:
3.經常使用命令總結: