KVM的常用操作

COOLOPS發表於2020-05-26

KVM安裝

一、網路卡橋接

1、在原網路卡上註釋掉IP配置,新增一下內容

BRIDGE=br0

2、配置橋接網路卡地址

vim ifcfg-br0

DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=none
IPADDR="10.0.0.121"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.2"
DNS1="223.5.5.5"

二、安裝KVM

1、檢視CPU是否支援虛擬化

cat /proc/cpuinfo | grep --color vmx

2、安裝KVM,設定開機自啟

yum install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python -y
systemctl start libvirtd
systemctl enable libvirtd
# 檢視
systemctl is-enabled libvirtd
lsmod | grep kvm

3、安裝VNCserver,便於遠端控制

(1)、安裝
yum -y install tigervnc tigervnc-server tigervnc-server-module

(2)、配置VNC服務
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service> /lib/systemd/system/vncserver@:1.service

vim /lib/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)  
After=syslog.target network.target  
[Service]  
Type=forking  
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'  
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"  
PIDFile=/root/.vnc/%H%i.pid  
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'  
[Install]  
WantedBy=multi-user.target

(3)、設定VNC密碼
vncpasswd    P@ssW0rd

(4)、過載配置,啟動服務
systemctl daemon-reload
systemctl start vncserver@:1.service && systemctl enable vncserver@:1.service

# 檢視
systemctl is-enabled vncserver@:1.service

# 如果啟動報錯            rm -rf /tmp/.X11-unix/*            然後再啟動

三、在KVM上安裝系統

1、安裝windows

virt-install --name=win2008  --ram 512 --vcpus=1 --disk path=/var/lib/libvirt/images/win2008.img,size=30 --accelerate --cdrom /var/lib/libvirt/images/zh-\ Hans_windows_server_2008_datacenter_enterprise_standard_x86_dvd_x14-26742.iso --vnc --vncport=5917 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole

# 說明:
name:虛擬機器名
ram:記憶體大小
vcpus:cpu核心數
disk path:虛擬機器安裝路徑
cdrom:光碟映象
vnc:指定vnc
vncport:指定vnc埠
vnclisten:監聽地址
bridge:橋接模式

windows下用tightVNC viewer  遠端連線10.0.0.121:5917  進行圖形化安裝

2、安裝Linux

virt-install --name=centos7-1  --ram 1024 --vcpus=1 --disk path=/data/centos7-1.img,size=15 --accelerate --cdrom /data/CentOS-7-x86_64-DVD-1708\(1\).iso --vnc --vncport=5917 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole

四、虛擬機器擴容

(1)、直接擴容

virsh shutdown test01.qcow2        //先關機
qemu-img info test01.qcow2
qemu-img resize test01.qcow2 +200G

(2)、線上擴容

# 檢視現有磁碟
virsh domblklist centos7-1
# 建立一塊qcow2虛擬磁碟
qemu-img create -f qcow2 /data/centos7-1.img 1G
# 線上新增這臺qcow2虛擬磁碟
virsh attach-disk centos7-1 /data/centos7-1.img vdb --cache=none --subdriver=qcow2

五、配置更改

(1)、更改記憶體

# 1. 檢視虛擬機器當前記憶體
[root@sh-kvm-1 ~]# virsh dominfo kvm-1 | grep memory
Max memory:     4194304 KiB
Used memory:    4194304 KiB

# 2、動態設定記憶體為512MB,記憶體減少
virsh setmem kvm-1 524288
# 注意單位必須是KB

# 3、檢視記憶體變化
# virsh dominfo kvm-1 | grep memory
Max memory: 14194304 KiB
Used memory: 524288 kiB

# 4、記憶體增加
virsh shutdown kvm-1
virsh edit kvm-1  # 直接更改memory
virsh create /etc/libvirt/demu/kvm-1/xml
# 之後操作1,2,3步驟增加記憶體

(2)、更改CPU

virsh shutdown kvm-1
virsh edit kvm-1
#  <vcpu>2</vcpu>  # 4 > 2
virsh create /etc/libvirt/demu/kvm-1/xml

六、KVM基本操作

(1)、檢視虛擬機器

# 檢視執行的虛擬機器
virsh list
# 檢視所有虛擬機器
virsh list --all

(2)、啟動虛擬機器

# 啟動虛擬機器
virsh start kvm-1
# 設定開機自啟動
virsh autostart kvm-1
# 取消開機自啟動
virsh autostart --disable kvm-1

(3)、連線虛擬機器

# 連線
virsh console kvm-1
# 推出
ctrl+]

(4)、關閉虛擬機器

virsh shutdown kvm-1

(5)、刪除虛擬機器

# 第一步,停掉虛擬機器
virsh shutdown kvm-1
# 第二步
virsh destroy kvm-1
# 第三步
virsh undefine kvm-1
# 第四步
rm /dev/vg_shkvm1/kvm-1  # 不建議刪除硬碟

(6)、快照管理

virsh snapshot-create 虛擬機器            //建立快照
virsh snapshot-list --domain  虛擬機器                //快照資訊
virsh snapshot-revert 虛擬機器 快照名        //恢復快照
virsh snapshot-delete --domain newframe --snapshotname 1520411749    刪除快照