KVM — 使用 libvirt 工具棧創建管理虛擬機實例

KVM — 使用 libvirt 工具棧創建管理虛擬機實例

應用準備

啓用硬件虛擬化支持功能,對於不同宿主機,啓用方式略有不同

如果虛擬機的宿主機爲Windows,假如使用VMware中的虛擬機作爲宿主機,需要在VMware選項中的”處理器”選項中啓用”虛擬化 Intel VT-x/EPT 或 AMD-V/RVI(V) ” 選項。

如果虛擬機的宿主機爲Linux,需要在BIOS處啓動 Intel VT-x/EPT 或 AMD-V/RVI(V) 虛擬化技術

驗證系統已經支持KVM並加載該模塊,使宿主機成爲hyperViso

  • 搜索cpu信息中是否有以下字段
grep -E -i "(svm|vmx|lm)" /proc/cpuinfo
  • 查看kvm模塊信息
modinfo kvm
  • 加載kvm模塊並查看結果
modprobe kvm

lsmod | grep kvm
kvm_intel             170181  0 
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm
  • 查看kvm字符設備是否存在
ls -l /dev/kvm
crw-------. 1 root root 10, 232 Jul 27 03:58 /dev/kvm

KVM 的三個組件

  1. kvm.ko :模塊

  2. qemu-kvm :用於實現虛擬化的輔助管理用戶空間的工具程序,能夠模擬 I/O 設備

  3. libvirt :虛擬化工具包

使用 libvirt 工具棧

  • 安裝程序包,啓動服務並查看UDP端口
yum install -y libvirt libvirt-daemon-kvm virt-manager

rpm -ql libvirt-daemon

systemctl start libvirtd.service

ss -unlp
UNCONN     0      0      *%virbr0:67    *:*     users:(("dnsmasq",pid=1808,fd=3))
  • 查看自動創建的網橋設備
ifconfig -a
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:8f:27:65  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:8f:27:65  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 查看自動生成的 nat 表的POSTROUTING 鏈上的 MASQUERADE 規則
iptables -t nat -vnL
Chain POSTROUTING (policy ACCEPT 6 packets, 426 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
    0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
    0     0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24
  • 查看虛擬機管理命令 virsh
[root@localhost ~]# which virsh
/usr/bin/virsh
[root@localhost ~]# rpm -qf /usr/bin/virsh
libvirt-client-2.0.0-10.el7_3.9.x86_64

創建網橋

  • 使用 virsh 的 iface-bridge 子命令創建一個名爲 “br0” 的網卡接口,物理網卡 ens33 從此會成爲虛擬交換機
virsh iface-bridge ens33 br0
Created bridge br0 with attached device ens33

注意:ens33 物理接口會成爲虛擬交換機,br0 虛擬接口會代替 ens33 成爲新的宿主機的網卡接口

上面一條命令執行完成後,兩個接口發生角色轉換,需要重啓network服務,重啓服務會報錯,再一次重啓network服務即可

ifconfig 
#結果
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.50.18  netmask 255.255.0.0  broadcast 172.16.255.255
        inet6 fe80::20c:29ff:fe99:ea72  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:99:ea:72  txqueuelen 1000  (Ethernet)
        RX packets 6866  bytes 936170 (914.2 KiB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 68  bytes 9383 (9.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:99:ea:72  txqueuelen 1000  (Ethernet)
        RX packets 173822  bytes 158449094 (151.1 MiB)
        RX errors 0  dropped 169  overruns 0  frame 0
        TX packets 57053  bytes 4357222 (4.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

啓動virt-manager圖形界面並安裝配置虛擬機

  • 啓動virt-manager圖形界面,在圖形界面中操作安裝配置虛擬機
virt-manager &
  • 如果使用CentOS的minimal(最小化)系統,需要安裝以下程序包,也可以安裝圖形界面的幾個包組
yum install -y xorg-x11-font-utils.x86_64 xorg-x11-server-utils.x86_64 xorg-x11-utils.x86_64 xorg-x11-xauth.x86_64 xorg-x11-xinit.x86_64 xorg-x11-font-utils.x86_64 xorg-x11-drv-ati.x86_64 dejavu-lgc-sans-fonts

在虛擬機硬件配置選項中,將 “Display VNC” 一項中的 “VNC Server” 中的 “Type” 修改爲 “VNC Server” 。

發佈了56 篇原創文章 · 獲贊 33 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章