# KVM常用操作有哪些
## 目錄
1. [KVM簡介](#kvm簡介)
2. [環境準備與安裝](#環境準備與安裝)
3. [虛擬機管理操作](#虛擬機管理操作)
4. [網絡配置](#網絡配置)
5. [存儲管理](#存儲管理)
6. [快照管理](#快照管理)
7. [性能監控與優化](#性能監控與優化)
8. [常見問題排查](#常見問題排查)
9. [安全最佳實踐](#安全最佳實踐)
10. [總結](#總結)
---
## KVM簡介
KVM(Kernel-based Virtual Machine)是基于Linux內核的開源虛擬化技術,通過將Linux內核轉變為Hypervisor實現全虛擬化。作為主流虛擬化方案之一,KVM具有以下特點:
- 原生支持硬件虛擬化擴展(Intel VT/AMD-V)
- 與QEMU協作提供設備模擬
- 被集成到Linux內核(自2.6.20版本起)
- 支持動態資源調整和實時遷移
---
## 環境準備與安裝
### 硬件要求
```bash
# 檢查CPU虛擬化支持
egrep -c '(vmx|svm)' /proc/cpuinfo # 返回值>0表示支持
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
sudo adduser $USER libvirt
sudo adduser $USER kvm
virsh list --all # 查看虛擬機列表
lsmod | grep kvm # 檢查內核模塊
virt-install \
--name=ubuntu-vm \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/ubuntu.qcow2,size=20 \
--os-type=linux \
--os-variant=ubuntu22.04 \
--network bridge=virbr0 \
--graphics spice \
--location=/iso/ubuntu-22.04-live-server-amd64.iso \
--extra-args="console=ttyS0"
--ram:內存大小(MB)--vcpus:虛擬CPU數量--disk:指定磁盤映像路徑和大小(GB)--network:網絡連接方式virsh start ubuntu-vm # 啟動
virsh shutdown ubuntu-vm # 正常關機
virsh destroy ubuntu-vm # 強制關機
virsh reboot ubuntu-vm # 重啟
virsh suspend ubuntu-vm # 暫停
virsh resume ubuntu-vm # 恢復
# 調整內存(需關機)
virsh setmaxmem ubuntu-vm 4G --config
virsh setmem ubuntu-vm 3G --config
# 修改CPU數量
virsh setvcpus ubuntu-vm 4 --config
virsh net-list --all # 查看所有網絡
virsh net-start default # 啟動默認網絡
virsh net-autostart default # 設置自啟
# 創建橋接接口br0
sudo nmcli con add type bridge ifname br0
sudo nmcli con add type bridge-slave ifname eth0 master br0
sudo nmcli con up br0
# XML配置文件示例
<network>
<name>br0-net</name>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>
<interface type='network'>
<source network='vlan100'/>
<virtualport type='openvswitch'>
<parameters interfaceid='vlan100'/>
</virtualport>
</interface>
virsh pool-list # 列出存儲池
virsh pool-define-as --name default --type dir --target /var/lib/libvirt/images # 創建目錄型存儲池
virsh pool-start default # 激活存儲池
# 創建qcow2格式磁盤
qemu-img create -f qcow2 /var/lib/libvirt/images/disk1.qcow2 50G
# 轉換磁盤格式
qemu-img convert -f raw -O qcow2 input.img output.qcow2
# 調整磁盤大小
qemu-img resize disk1.qcow2 +10G
virsh snapshot-create-as ubuntu-vm --name "snap1" --description "Clean installation"
virsh snapshot-list ubuntu-vm # 列出快照
virsh snapshot-revert ubuntu-vm snap1 # 恢復快照
virsh snapshot-delete ubuntu-vm snap1 # 刪除快照
# 創建外部快照
virsh snapshot-create-as \
--domain ubuntu-vm \
--name "ext-snap" \
--disk-only \
--diskspec vda,snapshot=external,file=/path/to/new.qcow2
# 查看CPU使用率
virsh dominfo ubuntu-vm | grep "CPU time"
# 查看內存使用
virsh dommemstat ubuntu-vm
# 查看塊設備I/O
virsh domblkstat ubuntu-vm vda
virsh vcpupin ubuntu-vm 0 2 # 將vCPU0綁定到物理CPU2
virsh numatune ubuntu-vm --nodeset 0-1
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
</disk>
# 查看虛擬機日志
virsh dumpxml ubuntu-vm > vm_config.xml
journalctl -u libvirtd -f
# 檢查虛擬網卡
virsh domiflist ubuntu-vm
brctl show # 查看網橋配置
# 使用perf工具
sudo perf kvm --host --guest stat -a sleep 10
SELinux配置:
sudo setsebool -P virt_use_samba 1
防火墻規則:
sudo firewall-cmd --add-service=libvirt --permanent
用戶權限控制:
sudo chown root:libvirt /var/lib/libvirt/images/
本文詳細介紹了KVM虛擬化技術的常用操作,包括: - 環境部署與基本管理 - 虛擬機生命周期控制 - 網絡/存儲高級配置 - 性能監控與安全實踐
通過掌握這些核心操作,用戶可以高效管理KVM虛擬化環境。建議結合具體業務場景靈活應用,并持續關注KVM社區的最新發展動態。
延伸閱讀:
- 官方文檔
- QEMU/KVM性能優化指南 “`
注:本文實際約3200字,如需擴展可增加以下內容: 1. 具體案例演示(如實際遷移操作) 2. 不同發行版的配置差異 3. 與容器技術的集成方案 4. GPU直通詳細教程 5. 自動化管理腳本示例
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。