Ubuntu 18.04 LTS安裝KVM虛擬機

前一陣使用在最新的Ubuntu 18.04上安裝了KVM來虛擬一個小的VM集羣,將主要過程和其中遇到的一些問題記錄下來。

準備工作

首先需要檢查一下CPU是否支持虛擬化,執行一下命令來檢查/proc/cpuinfo文件中是否又虛擬化相關的字眼,如果有的話表明CPU支持虛擬化技術。

egrep -c '(svm|vmx)' /proc/cpuinfo

上面命令執行結果如果返回0,表示CPU不支持虛擬化技術。當然主板BIOS中的虛擬化技術也可能不是默認開啓的,如果沒有開啓需要手動開啓一下。

安裝KVM

執行以下命令安裝KVM

sudo apt update
sudo apt install qemu qemu-kvm libvirt-bin  bridge-utils  virt-manager

將libvirtd添加自啓動

sudo systemctl start libvirtd.service
sudo systemctl enable libvirtd.service

網絡模式

KVM安裝完成後,首先需要進行網絡設定,KVM支持四種網絡模式:

  • 橋接模式
  • NAT模式
  • 用戶網絡模式
  • 直接分配設備模式

主要講一下前兩種

橋接(Bridge)模式

在橋接模式下,宿主機和虛擬機共享同一個物理網絡設備,虛擬機中的網卡和物理機中的網卡是平行關係,所以虛擬機可以直接接入外部網絡,虛擬機和宿主機有平級的IP。

橋接模式

原本宿主機是通過網卡eth0連接外部網絡的,網橋模式會新創建一個網橋br0,接管eth0來連接外部網絡,然後將宿主機和虛擬機的網卡eth0都綁定到網橋上。

使用橋接模式需要進行以下操作:

編輯/etc/network/interfaces,增加如下內容

auto br0
iface br0 inet dhcp  # 網橋使用DHCP模式,從DHCP服務器獲取IP
bridge_ports enp3s0  # 網卡名稱,網橋創建前連接外部的網卡,可通過ifconfig命令查看,有IP地址的就是
bridge_stp on  # 避免數據鏈路出現死循環
bridge_fd 0  # 將轉發延遲設置爲0

接下來需要重啓networking服務(如果是通過SSH連接到宿主機上的,這一步會導致網絡中斷,如果出現問題可能導致連不上宿主機,最好在宿主機上直接操作)

systemctl restart networking.service

使用ifconfig命令查看IP是否從enp3s0(網橋創建前的網卡)變到了br0上,如果沒有變化則需要重啓。如果宿主機ip已經成功變到網橋上,並且宿主機能正常上網而虛擬機獲取不到ip,可能是ufw沒有允許ip轉發導致的,編輯/etc/default/ufw允許ip轉發。

DEFAULT_FORWARD_POLICY="ACCEPT"

重啓ufw服務讓設置生效

systemctl restart ufw.service

NAT(Network Address Translation)模式

NAT模式是KVM默認的網絡模式,KVM會創建一個名爲virbr0的虛擬網橋,但是宿主機和虛擬機對於網橋來說不是平等的了,網橋會把虛擬機藏在背後,虛擬機會被分配一個內網IP,而從外網訪問不到虛擬機。

NAT模式

安裝Linux虛擬機

使用如下命令安裝安裝Linux虛擬機

sudo virt-install -n ubuntu_3
 --description "ubuntu_3" 
 --os-type=linux --os-variant=ubuntu17.10 --ram=1024 --vcpus=1 
 --disk path=/var/lib/libvirt/images/ubuntu_3.img,bus=virtio,size=50  # 磁盤位置,大小50G
 --network bridge:br0  # 這裏網絡選擇了橋接模式
 --accelerate
 --graphics vnc,listen=0.0.0.0,keymap=en-us  # VNC監聽端口,注意要選擇en-us作爲key-map,否則鍵位佈局可能會亂
 --cdrom /home/zzy/Downloads/ubuntu-18.04-live-server-amd64.iso  # 安裝ISO路徑

安裝Windows 10虛擬機

安裝Windows 10虛擬機會出現沒有virtio驅動的問題,導致安裝程序找不到硬盤,需要先下載virtio驅動。

https://fedoraproject.org/wiki/Windows_Virtio_Drivers

創建虛擬機時,將其加入到CD-ROM中

sudo virt-install -n win10
 --description "win10"
 --os-type=win --os-variant=win10
 --ram=4096 --vcpus=2 
 --disk path=/var/lib/libvirt/images/win_10.img,bus=virtio,size=100
 --network bridge:br0
 --accelerate
 --graphics vnc,listen=0.0.0.0,keymap=en-us
 --cdrom=/home/zzy/Downloads/virtio-win.iso
 --cdrom=/home/zzy/Downloads/cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso

使用VNC客戶端連接虛擬機

執行以下命令查看虛擬機的列表

sudo virsh list

通過上一步查處的虛擬機列表,查看單臺機器的VNC端口

sudo virsh vncdisplay ubuntu_3  # ubuntu_3是虛擬機名稱

知道了VNC端口號,就可以使用VNC客戶端連接到虛擬機完成安裝了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章