本文介紹了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)的字眼,如果有的話表明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模式
- 用戶網(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)卡名稱,網(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ī)。
安裝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 # 磁盤位置,大小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)致安裝程序找不到硬盤,需要先下載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/cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso
--cdrom=/home/zzy/Downloads/virtio-win.iso
使用VNC客戶端連接虛擬機(jī)
執(zhí)行以下命令查看虛擬機(jī)的列表
通過(guò)上一步查處的虛擬機(jī)列表,查看單臺(tái)機(jī)器的VNC端口
sudo virsh vncdisplay ubuntu_3 # ubuntu_3是虛擬機(jī)名稱
知道了VNC端口號(hào),就可以使用VNC客戶端連接到虛擬機(jī)完成安裝了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。