部署KVM虚拟化平台

一:概述案例

在生产环境中,有时会出现部分Linux服务器利用率不高的情况,为了充分利用这些Linux服务器,可以部署KVM,在物理机上运行多个业务系统

比如:

在运行nginx的服务器上部署KVM,然后在虚拟机上运行Tomcat

二:知识点介绍

2.1 KVM虚拟化架构

  • KVM模块直接整合在linux内核当中,可以直接调用硬件,是原生架构
    在这里插入图片描述

2.2 KVM的组成

  • KVM Driver
    • 虚拟机创建
    • 分配内存
    • CPU寄存器读写
    • CPU运行
  • QEMU(经过简化与修改)
    • 模拟PC硬件和用户的控件组件
    • 提供I/O设备模型及访问外设的途径

2.3 KVM简介

​ 广义的KVM实际上包含两部分,一部分是基于LINUX内核支持的KVM内核模块,另一部分就是经过简化和修改的Qemu。
​ KVM内核模块模拟处理器和内存以支持虚拟机的运行,Qemu主要处理1/0以及为用户提供一个用户空间工具来进行虚拟机的管理。两者相互结合,相辅相成,构成了一个完整的虚拟化平台。
​ 请注意: Qemu 本身并不是KVM的一部分,Qemu 是一套完整的虚拟化解决方案,是纯软件实现虚拟化,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟出来的,所以Qemu的性能比较低。

2.4 KVM运行时的三种模式

  • 客户模式:

    可以简单理解成客户机在操作系统运行中的模式,客户模式又分为内核模式和用户模式。

  • 用户模式:

    为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O, Qemu运行在这个模式之下。

  • 内核模式:

    模拟CPU以及内存,实现客户模式的切换,处理客户模式的退出。KVM内核模块运行在这个模式下。
    在这里插入图片描述

2.5 KVM工作原理

​ 用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。

KVM Driver为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAUNCH指令进入客户模式,装载Guest OS并运行。

Guest OS运行过程中如果发生中断或者影子缺页等异常,将暂停Guest OS的运行并保存当前上下文退出到内核模式来处理这些异常。

内核模式处理这些异常时如果不需要I/0则处理完成后重新进入客户模式。如果需要I/O 则进入到用户模式,由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式
在这里插入图片描述

三:案例环境

使用一台物理服务器,安装centos7,在安装好的宿主机内安装虚拟机(安装KVM———安装linux——虚拟机————使用KVM命令管理虚拟机)

四:案例实施

4.1 安装KVM

  • YUM安装KVM及其所需的辅助工具
  • 查看CPU是否支持虚拟化
  • 检查KVM模块是否安装

配置宿主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装centos系统时记得软件选择gnome桌面+开发工具,/分区尽量大一点

安装完成后关闭防火墙 关闭核心防护 配置yum 本地源

网卡优化,dns优化 yum本地

[root@gsy iso]# systemctl stop firewalld.service 
您在 /var/spool/mail/root 中有邮件
[root@gsy iso]# setenforce 0
ot@gsy iso]# vim /etc/selinux/config 
 7 SELINUX=disabled
[root@gsy ~]# vim /etc/ssh/sshd_config 
UseDNS no
[root@gsy ~]# systemctl restart sshd

yum groupinstall -y “GNOME Desktop” ####安装 GNOME 桌面环境 如果装了图形界面不需要装了

注意: 在使用 yum 安装完桌面后执行 ln -sf /lib/systemd/system/graphical.target
/etc/systemd/system/default.target 命 令 , 将 系 统 的 默 认 运 行 target 更 改 为
graphical.targe。 重启后系统将进入图形化界面。 若不执行上述命令更改系统的默认运行
target, 重启时可能报错

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

[root@localhost network-scripts]# yum -y install qemu-kvm \		###KVM 模块
qemu-kvm-tools \		####KVM 调试工具,可不安装
virt-install \		####构建虚拟机的命令行工具
qemu-img \			 ####qemu 组件,创建磁盘、 启动虚拟机等
bridge-utils \		  ####网络支持工具
libvirt \			 ####虚拟机管理工具
virt-manager		####图形界面管理虚拟机

yum -y install qemu-kvm
qemu-kvm-tools
virt-install
qemu-img
bridge-utils
libvirt
virt-manager

重启服务器

init 6

查看是否安装虚拟化

[root@localhost ~]# cat /proc/cpuinfo | grep vmx

查看是否安装KVM模块

[root@localhost ~]# lsmod | grep kvm
kvm_intel             170086  0 
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm
[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd

4.2 KVM网络模式

设置KVM网络

宿主服务器安装完成 KVM, 首先要设定网络, 在 libvirt 中运行 KVM 网络有两种方法:
NAT 和 Bridge, 默认是 NAT。
关于两种模式的说明:
●用户模式, 即 NAT 方式, 这种方式是默认网络, 数据包由 NAT 方式通过主机的接口进行
传送, 可以访问外网, 但是无法从外部访问虚拟机网络。

●桥接模式, 这种模式允许虚拟机像一台独立的主机一样拥有网络, 外部的机器可以直接
访问到虚拟机内部, 但需要网卡支持, 一般有线网卡都支持。
这里以 Bridge(桥接) 为例。

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6dc3deb1-47cf-41f1-88a7-cff6d087a5ec
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

桥接网卡内的IP地址要设置为nat网卡的网段

[root@localhost ~]# vim /etc/sysconfig/network-scripts/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.247.136
NETMASK=255.255.255.0
GATEWAY=192.168.247.2
DNS1=8.8.8.8
DNS2=114.114.114.114

重启网卡

[root@localhost ~]# systemctl restart network  
[root@localhost ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.46  netmask 255.255.255.0  broadcast 192.168.100.255

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0


virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

4.3 管理KVM

[root@localhost dev]# hostnamectl set-hostname gsy
[root@localhost dev]# su
[root@gsy dev]# virt-manager 		//打开虚拟系统管理器
[root@gsy dev]# mkdir -p /data_kvm
[root@gsy dev]# mkdir -p /data_kvm/iso		###上传镜像centos 7.6的镜像
root@gsy network-scripts]# mount.cifs //192.168.254.10/jingxiangwenjian /mnt
Password for root@//192.168.254.10/jingxiangwenjian:  
[root@gsy network-scripts]# cd /mnt
[root@gsy mnt]# ls
CentOS-7-x86_64-DVD-1708.iso                  cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso
CentOS-7-x86_64-DVD-1810.iso                  cn_windows_server_2016_x64_dvd_9718765.iso
cn_windows_10_enterprise_x64_dvd_6846957.iso  Red Hat Enterprise 6.5 x86_64.iso
[root@gsy mnt]# cp CentOS-7-x86_64-DVD-1708.iso /data_kvm/iso/
[root@gsy dev]# mkdir -p /data_kvm/store		####虚拟机存储

切换到虚拟系统管理器

4.3.1 添加存储池

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3.2 添加存储卷

在这里插入图片描述

4.3.3 创建虚拟机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

接下来就会到centos的安装界面,正常安装即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值