了解KVM: Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。
实验准备:开启Linux系统(CentOS7),开启CUP虚拟化功能
一,部署KVM平台
1.虚拟机开启CPU虚拟化服务
注:真实机进入BIOS开启CPU虚拟化功能
2.搭建yum,安装KVM
rm -f /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
安装KVM(可以直接复制)
yum -y install qemu-kvm
yum -y install qemu-kvm-tools
yum -y install virt-install
yum -y install qemu-img
yum -y install bridge-utils
yum -y install libvirt
yum -y install virt-manager
3.查看kvm模块是否安装
[root@localhost ~]# lsmod | grep kvm
kvm_amd 64937 0
kvm 554609 1 kvm_amd
irqbypass 13503 1 kvm
4. 设定kvm网络,kvm支持两种网络设置方式:nat和bridge(桥接),默认是nat
- 用户模式(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。
- 桥接模式(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。
注:更改网卡信息,前面!的代表需要更改,其他无需更改,br0网卡需要将UUID=c05680db-61c6-4975-b262-045ab09593c1删除!!!
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
!BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c05680db-61c6-4975-b262-045ab09593c1
DEVICE=ens33
!ONBOOT=yes
!BRIDGE=br0
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-br0
[root@localhost network-scripts]# vim ifcfg-br0
!TYPE=Bridge
!BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
!NAME=br0
!DEVICE=br0
!ONBOOT=yes
!IPADDR=192.168.1.1
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ec48:d714:7ea0:dfe7 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f1:3c:af txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 17 bytes 2582 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:f1:3c:af txqueuelen 1000 (Ethernet)
RX packets 73 bytes 4563 (4.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 17 bytes 2600 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 324 bytes 28180 (27.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 324 bytes 28180 (27.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
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:7b:21:ed 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
5.创建两个准备存储池的目录(store存储虚拟机 iso存放镜像),挂载镜像磁盘,制作镜像文件
[root@localhost ~]# mkdir -p /date_kvm/store
[root@localhost ~]# mkdir -p /date_kvm/iso
[root@localhost ~]# cp /dev/cdrom /data_kvm/iso/centos.iso
6.开启libvirt服务,提供相关的支持
[root@localhost ~]# systemctl start libvirtd
7.运行kvm平台,创建存储池和镜像存储池
[root@localhost ~]# virt-manager
双击GEMU/KVM
点击存储,点击加号+
创建存储池,输入名称
指定刚刚创建的存储虚拟机的目录
继续点击加号,创建镜像存放位置
输入名称,前进
指定刚刚创建的存放镜像目录
进入kvm_store创建磁盘,输入名称,分配大小
右击QEMU/KVM新建
选择本地安装
使用刚刚创建的本地系统盘,下一步就可以了
内存,磁盘大小根据个人情况就可以直接下一步,下一步安装就可以了
注:安装系统,在这里就不演示了,不知道的同学可以看我主页有一章零基础安装Linux系统