Ubuntu 18.04 LTS安裝KVM虛擬機(jī)

前一陣使用在最新的Ubuntu 18.04上安裝了KVM來(lái)虛擬一個(gè)小的VM集群,將主要過(guò)程和其中遇到的一些問(wèn)題記錄下來(lái)。

準(zhǔn)備工作

首先需要檢查一下CPU是否支持虛擬化,執(zhí)行一下命令來(lái)檢查/proc/cpuinfo文件中是否又虛擬化相關(guān)的字眼,如果有的話(huà)表明CPU支持虛擬化技術(shù)。

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

上面命令執(zhí)行結(jié)果如果返回0,表示CPU不支持虛擬化技術(shù)。當(dāng)然主板BIOS中的虛擬化技術(shù)也可能不是默認(rèn)開(kāi)啟的,如果沒(méi)有開(kāi)啟需要手動(dòng)開(kāi)啟一下。

安裝KVM

執(zhí)行以下命令安裝KVM

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

將libvirtd添加自啟動(dòng)

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

網(wǎng)絡(luò)模式

KVM安裝完成后,首先需要進(jìn)行網(wǎng)絡(luò)設(shè)定,KVM支持四種網(wǎng)絡(luò)模式:

  • 橋接模式
  • NAT模式
  • 用戶(hù)網(wǎng)絡(luò)模式
  • 直接分配設(shè)備模式

主要講一下前兩種

橋接(Bridge)模式

在橋接模式下,宿主機(jī)和虛擬機(jī)共享同一個(gè)物理網(wǎng)絡(luò)設(shè)備,虛擬機(jī)中的網(wǎng)卡和物理機(jī)中的網(wǎng)卡是平行關(guān)系,所以虛擬機(jī)可以直接接入外部網(wǎng)絡(luò),虛擬機(jī)和宿主機(jī)有平級(jí)的IP。

橋接模式

原本宿主機(jī)是通過(guò)網(wǎng)卡eth0連接外部網(wǎng)絡(luò)的,網(wǎng)橋模式會(huì)新創(chuàng)建一個(gè)網(wǎng)橋br0,接管eth0來(lái)連接外部網(wǎng)絡(luò),然后將宿主機(jī)和虛擬機(jī)的網(wǎng)卡eth0都綁定到網(wǎng)橋上。

使用橋接模式需要進(jìn)行以下操作:

編輯/etc/network/interfaces,增加如下內(nèi)容

auto br0
iface br0 inet dhcp  # 網(wǎng)橋使用DHCP模式,從DHCP服務(wù)器獲取IP
bridge_ports enp3s0  # 網(wǎng)卡名稱(chēng),網(wǎng)橋創(chuàng)建前連接外部的網(wǎng)卡,可通過(guò)ifconfig命令查看,有IP地址的就是
bridge_stp on  # 避免數(shù)據(jù)鏈路出現(xiàn)死循環(huán)
bridge_fd 0  # 將轉(zhuǎn)發(fā)延遲設(shè)置為0

接下來(lái)需要重啟networking服務(wù)(如果是通過(guò)SSH連接到宿主機(jī)上的,這一步會(huì)導(dǎo)致網(wǎng)絡(luò)中斷,如果出現(xiàn)問(wèn)題可能導(dǎo)致連不上宿主機(jī),最好在宿主機(jī)上直接操作)

systemctl restart networking.service

使用ifconfig命令查看IP是否從enp3s0(網(wǎng)橋創(chuàng)建前的網(wǎng)卡)變到了br0上,如果沒(méi)有變化則需要重啟。如果宿主機(jī)ip已經(jīng)成功變到網(wǎng)橋上,并且宿主機(jī)能正常上網(wǎng)而虛擬機(jī)獲取不到ip,可能是ufw沒(méi)有允許ip轉(zhuǎn)發(fā)導(dǎo)致的,編輯/etc/default/ufw允許ip轉(zhuǎn)發(fā)。

DEFAULT_FORWARD_POLICY="ACCEPT"

重啟ufw服務(wù)讓設(shè)置生效

systemctl restart ufw.service

NAT(Network Address Translation)模式

NAT模式是KVM默認(rèn)的網(wǎng)絡(luò)模式,KVM會(huì)創(chuàng)建一個(gè)名為virbr0的虛擬網(wǎng)橋,但是宿主機(jī)和虛擬機(jī)對(duì)于網(wǎng)橋來(lái)說(shuō)不是平等的了,網(wǎng)橋會(huì)把虛擬機(jī)藏在背后,虛擬機(jī)會(huì)被分配一個(gè)內(nèi)網(wǎng)IP,而從外網(wǎng)訪問(wèn)不到虛擬機(jī)。

NAT模式

安裝Linux虛擬機(jī)

使用如下命令安裝安裝Linux虛擬機(jī)

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  # 磁盤(pán)位置,大小50G
 --network bridge:br0  # 這里網(wǎng)絡(luò)選擇了橋接模式
 --accelerate
 --graphics vnc,listen=0.0.0.0,keymap=en-us  # VNC監(jiān)聽(tīng)端口,注意要選擇en-us作為key-map,否則鍵位布局可能會(huì)亂
 --cdrom /home/zzy/Downloads/ubuntu-18.04-live-server-amd64.iso  # 安裝ISO路徑

安裝Windows 10虛擬機(jī)

安裝Windows 10虛擬機(jī)會(huì)出現(xiàn)沒(méi)有virtio驅(qū)動(dòng)的問(wèn)題,導(dǎo)致安裝程序找不到硬盤(pán),需要先下載virtio驅(qū)動(dòng)。

https://fedoraproject.org/wiki/Windows_Virtio_Drivers

創(chuàng)建虛擬機(jī)時(shí),將其加入到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客戶(hù)端連接虛擬機(jī)

執(zhí)行以下命令查看虛擬機(jī)的列表

sudo virsh list

通過(guò)上一步查處的虛擬機(jī)列表,查看單臺(tái)機(jī)器的VNC端口

sudo virsh vncdisplay ubuntu_3  # ubuntu_3是虛擬機(jī)名稱(chēng)

知道了VNC端口號(hào),就可以使用VNC客戶(hù)端連接到虛擬機(jī)完成安裝了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容