Linux运维架构篇 KVM技术详解和部署

Posted 鹧鸪鹄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux运维架构篇 KVM技术详解和部署相关的知识,希望对你有一定的参考价值。

文章目录

一、虚拟化技术概念

概念

将一台服务器资源逻辑分片成多个相互独立的空间,从而提高计算机整体的工作效率
主要解决了两个问题
资源的充分利用
提高生产效率
例如windows中的虚拟机软件vm 可以在上面部署服务 就是利用将宿主机的cpu资源分片来模拟出多个系统来搭建服务
虚拟化的最主要的功能就是通过软件来模拟硬件的性能

分类

全虚拟化
将物理硬件资源通过VMM软件的方式虚拟化,然后统一分配调用
全虚拟化的运行速度要快于硬件模拟,但是性能不如裸机,因为VMM软件(需要占用一些资源)
半虚拟化
类似于全虚拟化技术,但是需要更改系统内核才能实现虚拟化
半虚拟化性能可以接近于裸机上的性能
直通
直接调用物理机硬件,目前还不完善

二、KVM虚拟化简介

1.概念

KVM 是基于虚拟化扩展的 X86 硬件的开源 Linux 原生的全虚拟化方案 (CPU需支持Intel-VT x 或 AMD-V)
KVM 内嵌于内核模块中,模拟处理器和内存以支持虚拟机运行 虚拟机被实现为常规的 Linux进程,由标准 Linux 调度程序进行调度
虚拟机的每个虚拟 CPU 被实现为一个常规的 Linux 进程,这使得 KMV 能够使用 Linux 内核的已有功能
KVM 本身不执行任何模拟,需要客户空间程序(虚拟机)通过 /dev/kvm (此虚拟设备需要开起硬件辅助虚拟化才能看到)接口设置一个客户机虚拟服务器的地址空间,且由Qemu 模拟 I/O(ioctl)进行调度资源和维护管理

2.原理

Guest: 客户机系统,包括CPU (vCPU) 、内存驱动(Console、 网卡、I/O设备驱动等),被KVM置于-种受限制的CPU 模式下运行。
KVM内核模块模拟处理器和内存以支持虚拟机运行
Qemu 主要处理I/O以及为客户提供一个用户空间/dev/kvm 工具ibvirt来进行虚拟机管理
ioctl (定义) 专用于设备输入输出操作的系统调用
libvirt: KVM管理工具
以上构成一个完整的虚拟化平台

3 KVM2种模式

客户模式
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu_ 工作在此模式下(Qemu的主要功能)
内核模式
模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下

4 KVM的工作流程

用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。
KVM驱动为虚拟机创建 虚拟CPU和虚拟内存,
然后执行VMLAU.NCH指令进入客户模式,装载Guest OS并运行。
Guest OS运行过程中如果发生异常,则暂停Guest OS的运行并保存当前状态同时退出到内核模式来处理这些异常。
内核模式处理这些异常时如果不需要I/O则处理完成后重新进入客户模式。如果需要I/O则进入到用户模式,则由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式

三 部署

宿主机配置
cpu2核心2线程 内存8gb 硬盘300g centos7

先修改主机名 将dns改成反向解析 将系统光盘设置自动挂载 关闭防火墙

hostnamectl set-hostname KVM
su -
systemctl stop firewalld.service 
setenforce 0
vim /etc/fstab
mount -a
df -hT
vim /etc/ssh/sshd_config



配置在线yum源

本地源也可以使用

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

配置KVM组件

yum groupinstall -y "GNOME Desktop"  #安装 GNOME 桌面环境  如果装了图形界面可以不需要装
yum -y install qemu-kvm    # KVM 模块
yum -y install qemu-kvm-tools  # 安装KVM 调试工具,可不安装
yum -y install virt-install    # 构建虚拟机的命令行工具
yum -y install qemu-img       # qemu 组件,创建磁盘、启动虚拟机等
yum -y install bridge-utils   # 网络支持工具
yum -y install libvirt        # 虚拟机管理工具
yum -y install virt-manager   # 图形界面管理虚拟机	
lsmod | grep kvm          #查看虚拟化模块是否安装
grep -E '(vmx|svm)' /proc/cpuinfo  #查看cpu是否支持虚拟化 如果输出由vmx和svm就是支持



设置kvm网络

KVM网络的两种模式

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

vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=P98632e8-9e37-499e-af39-897cf7a3b59e
DEVICE=ens33
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.30.24
NETMASK=255.255.255.0
GATEWAY=192.168.30.2

service network restart


创建目录存放系统镜像

创建完毕后将系统镜像放入文件中

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


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

① 创建存储池(ISO、STORE)
② 添加存储卷
③ 创建虚拟机

virt-manager

1




2


3









以上是关于Linux运维架构篇 KVM技术详解和部署的主要内容,如果未能解决你的问题,请参考以下文章

linux运维架构之路-KVM虚拟化技术

详解虚拟化之KVM概念架构功能常用工具及部署

centos7部署KVM虚拟化平台详解

Linux企业运维——K8s高可用集群架构搭建详解

Linux企业运维——K8s高可用集群架构搭建详解

Linux企业运维——K8s高可用集群架构搭建详解