virsh回車進入交互式界面:
version
pwd
hostname 顯示本節點主機名
nodeinfo 顯示節點信息
list --all 顯示所有雲主機
7種狀態:
running 運行中
idel 空閑,未運行
paused 暫停狀態
shutdown 關閉
crashed 虛擬機崩潰
dying 垂死狀態,但是又沒有完全關閉或崩潰
shutdown <domain>
destroy <domain> 強制關閉虛擬機(相當於直接撥電源)
start <domain> 啟動虛擬機
edit <domain> 編輯該虛擬機的xml文件
dommemstat <domain> 獲取domain的內存狀態
suspend <domain> 掛起一個正在運行的虛擬機,該虛擬機仍占資源;
resume <domain> 從掛起狀態恢復一下虛擬機
vcpuinfo <domain> 顯示一些虛擬機的vcpu的信息
vncdisplay <domain> 顯示vnc監聽地址和端口
快照相關:
snapshot-create <domain> xmlfile 給domain創建一個snapshot,詳細內容保存在xmlfile中
snapshot-current <domain> 顯示一個domain的當前的snapshot
snapshot-list <domain> 顯示一個domain的所有的snapshot
snapshot-revert <domain> snapshot 恢復一個domian到以前的snapshot
snapshot-delete <domain> snapshot --children 刪除一個domain的snapshot
如何用libvirt遠程管理虛擬機?
要用libvirt連接到超級管理程序,我們需要一個URI,這個URI配合virsh和virt-viewer命令使用,后面可以跟一些可選項,virt-viewer可以調用一些鏈接參數,例如:virsh -c qemu:///system 當鏈接到遠程機器時,可以定義幾種使用的協議:ssh,tcp,tls。當鏈接到遠程機器時,需要使用遠程主機的用戶和主機名進行鏈接,如果沒有定義鏈接用戶,則會使用本機環境的$USER的用戶進行鏈接,當連接到qemu hypervisor時,接受兩種鏈接類型:system可以有所有的訪問權限,session有限制的訪問。例如:
使用full access鏈接至本機的qemu hypervisor,前面的-c 是為了執行后面的list命令(--connect)
virsh -c qemu:///system list
使用full access鏈接至遠程主機的qemu hypervisor,每次都要輸入ssh密碼,改成ssh無密碼登陸就不需要輸入密碼了,直接顯示結果。
virsh -c qemu+ssh://tux@mercur/system 直接進入交互virsh模式
virsh -c qemu+ssh://10.1.1.8/system list 直接顯示list后的結果
其余連接格式如下:
qemu:///session (local access to per-user instance)
qemu+unix:///session (local access to per-user instance)
qemu:///system (local access to system instance)
qemu+unix:///system (local access to system instance)
qemu://example.com/system (remote access, TLS/x509)
qemu+tcp://example.com/system (remote access, SASl/Kerberos)
qemu+ssh:///system (remote access, SSH tunnelled)
使用libvirt創建kvm虛擬機:
1、制作虛擬機鏡像
qemu-img create -f qcow2 test.qcow2 10G //格式,名字,大小
2、下載並復制iso鏡像到指定目錄(在第3步中創建xml文件中指定)
3、創建安裝配置文件,demo.xml如下,可以根據自己需求更改
1 <domain type='kvm'> 2 <name>test_ubuntu</name> //虛擬機名稱 3 <memory>1048576</memory> //最大內存,單位k 4 <currentMemory>1048576</currentMemory> //可用內存,單位k 5 <vcpu>8</vcpu> //虛擬cpu個數 6 <os> 7 <type arch='x86_64' machine='pc'>hvm</type> 8 <boot dev='cdrom'/> //光盤啟動 9 </os> 10 <features> 11 <acpi/> 12 <apic/> 13 <pae/> 14 </features> 15 <clock offset='localtime'/> 16 <on_poweroff>destroy</on_poweroff> 17 <on_reboot>restart</on_reboot> 18 <on_crash>destroy</on_crash> 19 <devices> 20 <emulator>/usr/libexec/qemu-kvm</emulator> 21 <disk type='file' device='disk'> 22 <driver name='qemu' type='qcow2'/> 23 <source file='/var/lib/libvirt/images/test.qcow2'/> //目的鏡像路徑 24 <target dev='hda' bus='ide'/> 25 </disk> 26 <disk type='file' device='cdrom'> 27 <source file='/var/lib/libvirt/images/ubuntu.iso'/> //光盤鏡像路徑 28 <target dev='hdb' bus='ide'/> 29 </disk> 30 <interface type='bridge'> //虛擬機網絡連接方式 31 <source bridge='kvmbr0'/> //當前主機網橋的名稱 32 <mac address="00:16:3e:5d:aa:a8"/> //為虛擬機分配mac地址,務必唯一,否則dhcp獲得同樣ip,引起沖突 33 </interface> 34 <input type='mouse' bus='ps2'/> 35 <graphics type='vnc' port='-1' autoport='yes' listen = '0.0.0.0' keymap='en-us'/>//vnc方式登錄,端口號自動分配,自動加1,可以通過virsh vncdisplay來查詢 36 </devices> 37 </domain>
virsh define demo.xml //創建虛擬機
virsh start test_ubuntu //啟動虛擬機
virsh vncdisplay test_ubuntu ////查看虛擬機的vnc端口, 然后就可以通過vnc登錄來完成虛擬機的安裝