文章目錄
安裝KVM工具包
Ubuntu 18.04:
https://ubuntu.com/server/docs/virtualization-libvirt
# apt install qemu-kvm virt-manager libvirt-daemon-system
# kvm-ok #驗證是否支持kvm
INFO: /dev/kvm exists
KVM acceleration can be used
CentOS .X:
# yum install qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install
# systemctl start libvirtd
# systemctl enable libvirtd
# ifconfig virbr0 #驗證是否生成NAT網卡virbr0
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:89:c5:75 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
# grep "192.168.122.1" /etc/libvirt/ -R
/etc/libvirt/qemu/networks/autostart/default.xml: <ipaddress='192.168.122.1'
netmask='255.255.255.0'>
/etc/libvirt/qemu/networks/default.xml: <ip address='192.168.122.1'
netmask='255.255.255.0'>
創建br0橋接網卡:
創建bridge網絡虛擬機:
橋接網絡可以讓運行在宿主機上的虛擬機使用和宿主機同網段IP,並且可以從外部直接訪問到虛擬機,目前企業中大部分場景都使用橋接網絡。
Ubuntu 18.04創建橋接網卡:
# cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
bridges:
br0:
dhcp4: no
dhcp6: no
addresses: [172.18.0.20/16]
gateway4: 172.18.0.1
nameservers:
addresses: [223.6.6.6]
interfaces:
- eth0
Centos 7.X創建橋接網卡
[root@s1 src]服務器遠程連接不上
# pwd
/etc/sysconfig/network-scripts
# vim ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114
# vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
BRIDGE=br0
# systemctl restart network
上傳鏡像並安裝虛擬機:
[root@CentOS7 ~]#ll /usr/local/src/
total 4481024
-rw-r--r-- 1 qemu qemu 4588568576 Feb 4 16:26 CentOS-7-x86_64-DVD-1810.iso
#創建系統磁盤:
# qemu-img create -f qcow2 /var/lib/libvirt/images/centos7-bridge.qcow2 10G
Formatting '/var/lib/libvirt/images/centos7-bridge.qcow2', fmt=qcow2 size=10737418240
cluster_size=65536 lazy_refcounts=off refcount_bits=16
#命令行創建基於橋接的虛擬網絡的虛擬主機
# virt-install --virt-type kvm --name centos7-bridge --ram 1024 --vcpus 2 --cdrom=/usr/local/src/CentOS-7-x86_64-DVD-1810.iso --disk path=/var/lib/libvirt/images/centos7-bridge.qcow2 --network bridge=bro --graphics vnc,listen=0.0.0.0 --noautoconsole
#打開虛擬機器,同時設置相應內核參數,磁盤分區等
# virt-manager
#查看本地虛擬主機列表
# virsh list
Id Name State
----------------------------------------------------
10 centos7-bridge running
You have new mail in /var/spool/mail/root
設置內核參數
基於虛擬管理界面中設置網卡爲br0橋接網卡
打開虛擬機查看橋接網絡是否分配
安裝centos常用基礎命令包
# yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \
pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools \
lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel \
bc systemd-devel bash-completion traceroute -y
創建NAT網絡虛擬機:
創建一臺虛擬機,並使用默認的NAT網絡,可以使虛擬機連接外網。
#ll /usr/local/src/CentOS-7-x86_64-DVD-1810.iso #提前上傳安裝鏡像
-rw-r--r-- 1 qemu qemu 4588568576 Feb 6 12:43 /usr/local/src/CentOS-7-x86_64-DVD-1810.iso
#qemu-img create -f qcow2 /var/lib/libvirt/images/centos.qcow2 10G #創建qcow2格式磁盤
Formatting '/var/lib/libvirt/images/centos.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
# 創建2V1U默認網絡虛擬機
#virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 --cdrom=/usr/local/src/CentOS-7-x86_64-DVD-1810.iso --disk path=/var/lib/libvirt/images/centos.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
Starting install...
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
#virt-manager
設置內核參數
查看網絡分配
安裝net-tools命令,並查看本機的當前IP地址是多少,目前自動獲取到的IP地址是NAT分配的192.168.122.x地址
段,此ip地址可以從出外網訪問但是無法從外網主從訪問到此虛擬機上的相關服務。
kvm-動態遷移
設置主機間域名解析
#cat /etc/hosts
192.168.146.127 kvm-host2
192.168.146.107 kvm-host1
#添加目標主機
報錯
安裝程序包
yum install -y openssh-askpass
主機間實時遷移