virsh常見命令筆記


【基本命令】

virsh start

啟動

shutdown

關閉

destroy

強制斷電

suspend

掛起

resume

恢復

undefine

刪除

dominfo

查看配置信息

domiflist

查看網卡配置信息

domblklist

查看虛機的磁盤位置

edit

修改配置文件

dumpxml

查看虛機當前配置

autostart

物理機開機后自啟動(配置后會在此目錄生成配置文件/etc/libvirt/qemu/autostart/*.xml

autostart --disable

取消自動啟動

   

【相關參數】

參數名稱

使用時機

何時生效

config

任何時候

下一次start虛擬機時生效

live

只有在虛擬機活動時可用

立即生效,但是虛擬機下一次start時,會失效

current

任何時候

當虛擬機處於shutoff時,同–config
當虛擬機處於running時,同–live

   

【增加網卡】

數據包傳輸基本路徑:

虛擬機 --> QEMU虛擬機網卡 --> 虛擬化層 --> 內核網橋 --> 物理網卡

   

KVM默認情況下是由QEMULinux的用戶空間模擬出來的並提供給虛擬機的。

   

全虛擬化:即客戶機操作系統完全不需要修改就能運行於虛擬機中,客戶機看不到真正的硬件設備,與設備的交互全是由純軟件虛擬的

半虛擬化:通過對客戶機操作系統進行修改,使其意識到自己運行在虛擬機中。因此,全虛擬化和半虛擬化網卡的區別在於客戶機是否需要修改才能運行在宿主機中

   

半虛擬化使用virtio技術virtio驅動因為改造了虛擬機的操作系統,讓虛擬機可以直接和虛擬化層通信,從而大大提高了虛擬機性能。

   

[root@kvm-server ~]# virsh domiflist vm-node1 #查找虛擬機網卡的MAC地址

Interface Type Source Model MAC

-------------------------------------------------------

vnet0 bridge br0 virtio 52:54:00:40:75:05

   

   

[root@kvm-server ~]# virsh attach-interface vm-node1 --type bridge --source br0 --model virtio

#臨時增加網卡的方法,關機后再開機新增網卡配置丟失

Interface attached successfully

   

   

[root@kvm-server ~]# virsh domiflist vm-node1

Interface Type Source Model MAC

-------------------------------------------------------

vnet0 bridge br0 virtio 52:54:00:40:75:05

vnet1 bridge br0 virtio 52:54:00:5b:6c:cc

   

   

[root@kvm-server ~]# virsh edit vm-node1

#永久生效方法一:修改配置文件增加如下內容

#永久生效方法二:使用virt-manager管理工具進行操作

   

<interface type='bridge'>

<mac address='52:54:00:11:90:7c'/>

<source bridge='br0'/>

<target dev='vnet1'/>

<model type='virtio'/>

<alias name='net1'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>

</interface>

   

   

[root@kvm-server ~]# virsh detach-interface vm-node1 --type bridge --mac 52:54:00:84:23:3d --current

#根據MAC地址刪除網卡,即時生效,如果需要最終生效也要使用virsh edit 來修改配置文件

Interface detached successfully

   

   

[root@kvm-server ~]# virsh domiflist vm-node1

Interface Type Source Model MAC

-------------------------------------------------------

vnet0 bridge br0 virtio 52:54:00:40:75:05

   

【增加磁盤】

KVM虛擬機的磁盤鏡像從存儲方式上看,可以分為兩種方式,第一種方式為存儲於文件系統上,第二種方式為直接使用裸設備。

存於文件系統上的鏡像有很多格式,如rawcloopcowqcowqcow2vmdlkvdi等,經常使用的是rawqcow2

裸設備的使用方式可以是直接使用裸盤,也可以是用LVM的方式。

   

raw:是簡單的二進制鏡像文件,一次性會把分配的磁盤空間占用。raw支持稀疏文件特性,稀疏文件特性就是文件系統會把分配的空字節文件記錄在元數據中,而不會實際占用磁盤空間。

   

qcow2:第二代的QEMU寫時復制格式,支持很多特性,如快照、在不支持稀疏特性的文件系統上也支持精簡方式、AES加密、zlib壓縮、后備方式。

   

[root@kvm-server ~]# qemu-img create -f raw /Data/vm-node1-10G.raw 10G #創建raw格式並且大小為10G的磁盤

Formatting '/Data/vm-node1-10G.raw', fmt=raw size=10737418240

   

[root@kvm-server ~]# qemu-img info /Data/vm-node1-10G.raw

image: /Data/vm-node1-10G.raw

file format: raw

virtual size: 10G (10737418240 bytes)

disk size: 0

   

[root@kvm-server ~]# virsh attach-disk vm-node1 /Data/vm-node1-10G.raw vdb --cache none #臨時生效,關機再開機后失效

Disk attached successfully

   

[root@kvm-server ~]# virsh edit vm-node1 #使用edit命令,把找到的內容加到vda磁盤后面即可

<disk type='file' device='disk'>

<driver name='qemu' type='raw' cache='none'/>

<source file='/Data/vm-node1-10G.raw'/>

<backingStore/>

<target dev='vdb' bus='virtio'/>

<alias name='virtio-disk1'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>

</disk>

   

磁盤鏡像格式的轉換方法:

[root@kvm-server ~]# qemu-img convert -p -f raw -O qcow2 test.raw test.qcow2                             

#參數-p顯示進度,-f是指原有的鏡像格式,-O是輸出的鏡像格式,然后是輸入文件和輸出文件

(100.00/100%)

   

【虛擬機克隆】

virt-clone

--original kvm

--name cloned_kvm

--file /home/data/clone_kvm.qcow

需要注意的是,克隆結束之后,網卡配置信息也被克隆了,需要登陸到console里面修改網卡配置信息。

virsh start sunhao-3 --console

   

【修改虛擬機配置】

# 修改配置

<domain type='kvm'>

<name>node-192.168.5.90-test</name>

<uuid>de4fe850-2fa7-49be-b785-77642bc95713</uuid>

<memory unit='KiB'>8192000</memory>

<currentMemory unit='KiB'>4194304</currentMemory>

<vcpu placement='auto' current="1">16</vcpu>

   

# 動態修改VCPUVCPU只能熱增加,不能減少

# 查看當前邏輯CPU數量

# 動態增加到4

virsh setvcpus node-test 4 --live

   

# 動態修改內存(增減都可以)

   

# 查看當前內存大小

# virsh qemu-monitor-command node-test --hmp --cmd info balloon

balloon: actual=4096

   

# 設置當前內存為8G

# virsh qemu-monitor-command node-test --hmp --cmd balloon 8190

關於內存:

memory: 客戶機最大使用的物理機內存上限。物理機器在boot使用的最大內存。

currentMemory: 如果設置的話,一旦機器被boot起來之后,相應模塊被加載了,客戶機就會調整它的內存到這個值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM