配置kvm

KVM

概念

基于内核的虚拟机 Kernel-based Virtual Machine(KVM)是一种内建于 Linux中的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。

虚拟化技术

在这里插入图片描述

虚拟化特性

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

KVM架构及原理

KVM 基本上有两个组件构成:

  1. kvm 驱动 现在已经是Linux内核的一个模块了,它的作用主要是负责虚拟机的创建,虚拟内存的分配 虚拟CPU寄存器的读写和虚拟cpu的运行

  2. 另一个组件是 Qemu QEMU是一个通用的开源机器模拟器和虚拟器,其主要的功能是用于模拟虚拟机的用户空间组件,提供io 设备模型,访问外设的途径

Kvm 模块让Linux 主机成为一个虚拟机监视/管理器(VMM),并且在原有的Linux 两种执行模式的基础上,新增加了客户模式,客户模式拥有自己的用户模式和内核模式,在虚拟机运行时,

三种运行模式:

内核模式: 实现客户模式的切换,处理因为IO或者其他指令引起的客户模式退出(VM_EXIT) kvm 工作在 这 个模式下,

用户模式:代表用户在IO模式下,执行QEMU 指令;

客户模式:执行非IO的客户代码,虚拟机运行在这种模式下

在kvm的模型中,每一个guest os 都是作为一个标准的Linux进程,都可以使用Linux进程管理管理命令!

这里假如Qemu 通过ioctl 发出KVM_CREAT_VM指令,创建一个VM后,qemu需要发送一个命令给VM,如KVM_CREAT_VCPU,这些命令当然也是通过ioctl发送的,用户程序中用ioctl通过发送KVM_CREAT_VM 指令后得到的返回值就是fd(KVM_VM),fd是创建的指向特定虚拟机实例的文件描述符,之后利用这个fd发送命令给VM进行访问控制。KVM 解析这些命令kvm_vm_ioctl

KVM工作原理

Kvm 工作原理的基本阐释:

用户模式的qume利用libkvm 通过ioctl进入内核模式,kvm 模块为虚拟机创建虚拟内存,虚拟cpu后执行VMLUACH指令进入客户模式。加载guest os并执行。如果guest os 发生外部中断,或者影子页表缺页之类的情况,会暂停guest os的执行,退出客户模式出行异常处理,之后重新进入客户模式,执行客户代码,如果发生iO事件或者信号队列中有信号到达,就会进入用户模式处理。

工作流程

在这里插入图片描述

配置

环境

在这里插入图片描述

主机名修改,挂载


hostnamectl set-hostname kvm 
su

vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0

mount -a 
df -hT

设置dns反向解析

vim /etc/ssh/sshd_config
#115行;取消DNS注释,改为NO
UseDNS no

制作本地YUM仓库


cd /etc/yum.repos.d/
mkdir repos.bak
mv CentOS-* repos.bak

vim kvm.repo
[kvm]
name=kvm
baseurl=file:///mnt
gpgcheck=0
enabled=1

yum clean all && yum repolist
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

安装模块
yum groupinstall -y "GNOME Desktop"
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

#—————命令解释——————
# 有桌面环境 可以不需要装
yum groupinstall -y "GNOME Desktop"

# KVM 模块
yum -y install qemu-kvm

# 安装KVM 调试工具(可不安装)
yum -y install qemu-kvm-tools

# 构建虚拟机的命令行工具
yum -y install virt-install

# qemu 组件,创建磁盘、启动虚拟机等
yum -y install qemu-img

# 网络支持工具
yum -y install bridge-utils

# 虚拟机管理工具
yum -y install libvirt

# 图形界面管理虚拟机
yum -y install virt-manager

检测CPU是否支持虚拟化


cat /proc/cpuinfo | grep vmx


查看KVM模块是否已安装


Lsmod #显示已载入的系统模块
lsmod | grep kvm

#设置开启启动界面的显示模式
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

在这里插入图片描述

KVM网络设置

网络模式

桥接模式:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)
NAT模式: 默认设置,数据包由 NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
路由模式
隔离模式

使用Bridge网桥模式进行部署

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=none
IPV6INIT=no
ONBOOT=yes
BRIDGE=br0			#删除原先地址,设置为网桥模式,关联br0网卡

在这里插入图片描述

创建、编辑桥接网卡


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.21.120
NETMASK=255.255.255.0
GATEWAY=192.168.21.2

systemctl restart network.service

KVM部署与管理

创建KVM存储和镜像数据的目录、上传centos7镜像

mkdir -p /data_kvm/iso
mkdir -p /data_kvm/store

cd /mnt
cp -p CentOS-7-x86_64-DVD-1810-7.6.iso /data_kvm/iso/
ll /data_kvm/iso/

使用虚拟系统管理器管理虚拟机

创建流程:
创建存储池(ISO、STORE)-------》添加存储卷------》创建虚拟机

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值