參考連接
Ubuntu 18.04 LTS安裝KVM虛擬機
如何在 Ubuntu 18.04 服務器上安裝和配置 KVM
KVM平常管理和克隆
KVM詳解html
首先須要檢查一下CPU是否支持虛擬化,執行一下命令來檢查/proc/cpuinfo文件中是否又虛擬化相關的字眼,若是有的話代表CPU支持虛擬化技術。linux
egrep -c '(svm|vmx)' /proc/cpuinfo
上面命令執行結果若是返回0,表示CPU不支持虛擬化技術。固然主板BIOS中的虛擬化技術也可能不是默認開啓的,若是沒有開啓須要手動開啓一下。ubuntu
#執行如下命令安裝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支持四種網絡模式:segmentfault
原理:
在橋接模式下,宿主機和虛擬機共享同一個物理網絡設備,虛擬機中的網卡和物理機中的網卡是平行關係,因此虛擬機能夠直接接入外部網絡,虛擬機和宿主機有平級的IP。服務器
本來宿主機是經過網卡eth0鏈接外部網絡的,網橋模式會新建立一個網橋br0,接管eth0來鏈接外部網絡,而後將宿主機和虛擬機的網卡eth0都綁定到網橋上。網絡
編輯/etc/network/interfaces,增長以下內ide
auto br0 iface br0 inet dhcp # 網橋使用DHCP模式,從DHCP服務器獲取IP bridge_ports enp3s0 # 網卡名稱,網橋建立前鏈接外部的網卡,可經過ifconfig命令查看,有IP地址的就是 bridge_stp on # 避免數據鏈路出現死循環 bridge_fd 0 # 將轉發延遲設置爲0
接下來須要重啓networking服務(若是是經過SSH鏈接到宿主機上的,這一步會致使網絡中斷,若是出現問題可能致使連不上宿主機,最好在宿主機上直接操做)ui
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
在作修改以前,我本地的ubuntu服務器已經添加靜態IP,配置以下.net
cat /etc/netplan/50-cloud-init.yaml # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp5s0: dhcp4: false addresses: [192.168.40.20/24] gateway4: 192.168.40.1 nameservers: addresses: - 223.5.5.5 - 114.114.114.114 - 192.168.40.1 enp6s0: dhcp4: true nameservers: addresses: - 223.5.5.5 - 223.6.6.6 version: 2
參考參考文章2的描述,將enp5s0橋接到br0網橋,修改後的配置文件以下,我本地有兩個物理網卡,這裏將enp5s0用來做橋接,enp6s0保留命令行
cat /etc/netplan/50-cloud-init.yaml # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp5s0: dhcp4: false enp6s0: dhcp4: true nameservers: addresses: - 223.5.5.5 - 223.6.6.6 bridges: kvmbr0: interfaces: [enp5s0] dhcp4: no addresses: [192.168.40.20/24] gateway4: 192.168.40.1 nameservers: addresses: [192.168.40.1,223.5.5.5,223.6.6.6,114.114.114.114] version: 2
本文主要介使用kvm命令行來建立虛擬機的流程
linuxtechi@kvm-ubuntu18-04:~$ sudo virt-install -n DB-Server --description "Test VM for Database" --os-type=Linux --os-variant=rhel7 --ram=1096 --vcpus=1 --disk path=/var/lib/libvirt/images/dbserver.img,bus=virtio,size=10 --network bridge:br0 --graphics none --location /home/linuxtechi/rhel-server-7.3-x86_64-dvd.iso --extra-args console=ttyS0
或
#不建立虛擬磁盤,一次性建立KVM虛擬機(默認爲qcow2磁盤格式,網絡爲橋接模式,在此前最好安裝virt-manager): virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 2048 \ -vcpus=1 -s 20 -c /vm/iso/CentOS-7-x86_64-DVD-1511.iso --hvm \ --os-type=linux -f /vm/CentOS-7-x86_64-tmp.img --graphics vnc,listen=0.0.0.0 \ --noautoconsole