首页 > 编程知识 正文

kvm虚拟化与vmware区别,kvm模块工作环境

时间:2023-05-03 18:24:33 阅读:164801 作者:2396

文章概述1 .虚拟化技术1.1概述1.2虚拟化技术的发展雏形1.3虚拟化类型2.KVM体系结构和原理2.1 KVM概述2.2 KVM虚拟化体系结构/三种模式2.3 KVM原理2.3.1 KVM虚拟化技术核心功能(原理方面) 2.3.2 KVM每个核心组件功能3 .虚拟化特性4.KVM平台4.1项目拓扑图4.2 KVM环境准备构建4.3KVM4.4的好

简介在美国环保EPA报告中,EPA调查了服务器和数据中心的能源效率,发现服务器实际上只运行了5%的时间,其他时间一直处于休眠状态。 为了提高硬件利用率,KVM等虚拟化技术应运而生。从Linux 2.6.20版开始,KVM直接集成到Linux内核中,并通过Intel-VT、AMD-V等CPU虚拟化指令集支持高性能虚拟化1 .虚拟化技术1.1概述通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多台逻辑计算机的同时,每台逻辑计算机可以运行不同的操作系统,APP应用相互影响这样可以提高计算机工作效率虚拟化理解1、在一个操作系统上模拟(windows )多个操作系统(centos、windows ) 10、suse,同时每个操作系统的服务不同) nginx tomcat 从而实现一台主机组成一个集群定位器,以软件/APP的方式实现物理硬件功能的实际应用: workstation、virtualbox、网吧等1.2虚拟化技术的发展雏形

1961年,IBM709机器实现了时分系统,将CPU占用分割为多个极短的时间片(1/100sec ),分别执行不同的工作,通过轮询这些时间片,使多个CPU看到一个CPU

1972年,IBM正式将system370机器的分时系统命名为虚拟机;

1990年,IBM推出的system390机器是逻辑分区(将一个CPU分割为多个,相互独立,即支持逻辑分割);

Xen:2003年登场了。 通过外部虚拟机管理程序/VMM程序(虚拟机管理程序),可以控制宿主机并为多台客户机分配资源。

KVM:2007年上市,目前嵌入kernel内核;

Xen支持的虚拟化技术:全虚拟化、半虚拟化;

KVM支持的虚拟化技术:完全虚拟化。

1.3虚拟化类型完全虚拟化:通过软件抽象所有物理硬件资源,最后调用半虚拟化。 需要修正操作系统的直通。 直接使用物理硬件资源。 (需要支持且不完整)全虚拟化使用的方法:

虚拟机管理程序(VMM )软件在底层硬件和服务器之间构建抽象层。 基于核心的虚拟机的虚拟机管理程序(VMM ) (面向Linux系统的开放源代码产品)捕获CPU指令,并对指令的硬件控制器和外围设备进行访问。注意:

2.KVM体系结构和原理2.1 KVM配置文件广义KVM实际上包括两个部分,在没有硬件资源的情况下,软件资源具有高性能(以相同的功能)。

一个基于LINUX内核支持的KVM内核模块,另一个是对Qemu的简化和修改。 1、KVM内核模块仿真处理器和内存支持虚拟机的运行,Qemu主要处理I/O,为用户提供管理虚拟机的用户空间工具。 两者相互结合、相辅相成,构成完整的虚拟化平台。 2、Libvirt:KVM的管理工具。 不仅是KVM这样的VMM,Xen、VirtualBox、甚至OpenStack的基础Libvirt中还有后台daemon程序libvirtd、API库、命令行工具virsh这三个注: Qemu Qemu是一个完整的虚拟化解决方案,它是纯软件虚拟化,包括处理器虚拟化、内存虚拟化和各种虚拟设备的模拟,但由于是纯软件模拟2.2 KVM虚拟化架构/三种模式1、访客模式(guestOS ) VM的操作系统是guestOS客户端在操作系统中运行的模式,客户端分为内核模式和用户模式,作用如下: 用户模式)为用户提供虚拟机管理的用户空间工具,并代表用户执行I/O。 Qemu在此模式下工作) ) Qemu的主要作用

2.3 KVM原理1、来宾:客户端系统、CPU(vcpu )、内存、驱动程序(如控制台、网卡、I/O设备驱动程序等)、KVM在受限CPU模式下运行2、 KVM内核模块模拟处理器和内存以支持虚拟机的运行3、Qemu主要处理I/O,用户空间/dev/虚拟机管理。 kvm工具libvirt (已定义)为客户提供设备I/O操作的系统调用libvirt: kvm管理工具以上构成完整的虚拟化平台:1) KVM驱动程序配置处理器、内存虚拟化和客户端

Qemu处理2)Qemu利用接口libkvm调用(ioctl)虚拟机设备接口/dev/kvm来分配资源、管理、维护虚拟机

2.3.1 KVM虚拟化技术核心功能(原理方面) QEMU:工作在用户层,控制libkvm工具(工具作用,控制内核中的kvm)来调用物理虚拟化资源;
调用虚拟化资源的方式是 ioctl ,供给虚拟机kvm:工作在内核层,虚拟化/抽象化物理硬件资源,供给Qemu组件调用 2.3.2 KVM各核心组件功能 QEMU:
功能:控制I/O虚拟化,调用硬件资源KVM:
功能:为虚拟化提供CPU、内存(硬件资源)的虚拟化 3.虚拟化的特性 优势 1、集中化管理 (远程管理、维护)2、提高硬件利用率 (物理资源利用率低-例如峰值,虚拟化解决了“空闲”容量)3、动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)4、高可靠 (可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境) 劣势 1、前期高额费用(初期的硬件支持)2、降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化)3、更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)4、实施配置复杂、管理复杂(管理人员mdbm、排障困难)5、一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用)6、安全性(虚拟化技术自身的安全隐患) 4.搭建KVM平台 4.1 项目拓扑图 虚拟机资源 CPU:双核双线程-CPU虚拟化开启内存:8G硬盘:300G双网卡:单网卡操作系统:Centos 7.5

4.2 KVM环境准备 首先安装centos7系统:即在VMware软件中新建虚拟机,并安装centos7系统centos7系统优化:在centos7系统安装完成后,需要勾选上KVM虚拟化功能,且网卡选择NAT模式
相关优化配置 1、防火墙优化[root@kvm ~]# systemctl stop firewalld.service[root@kvm ~]# systemctl disable firewalld.service'//关闭防火墙,永久关闭'[root@kvm ~]# vi /etc/selinux/config...SELINUX=disabled'//将enforcing修改为disabled'2、设置镜像光盘自动挂载[root@kvm ~]# vi /etc/fstab'//设置永久挂载'.../dev/cdrom /mnt iso9660 defaults 0 0[root@kvm ~]# mount -a'//让挂载生效'3、优化ssh[root@kvm ~]# vim /etc/ssh/sshd_config'//设置DNS反向解析,让客户端连接服务器更快'...UseDNS no'//取消注释,并将yes改成no'4、yum本地仓库搭建[root@kvm ~]# cd /etc/yum.repos.d/[root@kvm yum.repos.d]# mkdir backup[root@kvm yum.repos.d]# mv C* backup[root@kvm yum.repos.d]# lsbackup local.repo[root@kvm yum.repos.d]# vim yql.repo'//搭建本地Yum仓库'//添加以下配置[yql]name=testbaseurl=file:///mntenabled=1gpgcheck=0[root@kvm yum.repos.d]# yum clean all'//清空yum仓库'[root@kvm yum.repos.d]# mount /dev/sr0 /mnt'//因为没有重启,所以需要手动挂载一下光盘镜像'[root@kvm yum.repos.d]# yum makecache'//建立缓存,加载yum数据' 4.3 安装KVM 安装相关组件包 [root@kvm ~]# yum groupinstall -y "GNOME Desktop" '//安装 GNOME 桌面环境 如果装了图形界面不需要装了'[root@kvm ~]# yum -y install qemu-kvm '//安装KVM 模块'[root@kvm ~]# yum -y install qemu-kvm-tools '// KVM 调试工具,可不安装'[root@kvm ~]# yum -y install virt-install '//构建虚拟机的命令行工具'[root@kvm ~]# yum -y install qemu-img '//Qemu 组件,创建磁盘、 启动虚拟机等'[root@kvm ~]# yum -y install bridge-utils '//网络支持工具'[root@kvm ~]# yum -y install libvirt '//虚拟机管理工具'[root@kvm ~]# yum -y install virt-manager '//图形界面管理虚拟机'[root@kvm ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target'//将 系 统 的 默 认 运 行 target 更 改 为graphical.targe。 重启后系统将进入图形化界面。'[root@kvm ~]# reboot'//重启' 查看虚拟化模块,并开启相关服务 [root@kvm ~]# cat /proc/cpuinfo | grep vmx '//查看CPU是否支持虚拟化'[root@kvm ~]# lsmod | grep kvm '//查看KVM模块是否安装'kvm_intel 183621 0 kvm 586948 1 kvm_intelirqbypass 13503 1 kvm[root@kvm ~]# systemctl start libvirtd '//开启libvirtd服务'[root@kvm ~]# systemctl enable libvirtd '//开机启动libvirtd服务' 4.4 设置KVM网络为桥接 宿主服务器安装完成 KVM, 首先要设定网络, 在 libvirt 中运行 KVM 网络有两种方法:
分别为 NAT 和 Bridge, 默认是 NAT。 1、用户模式, 即 NAT 方式, 这种方式是默认网络, 数据包由 NAT 方式通过主机的接口进行传送, 可以访问外网, 但是无法从外部访问虚拟机网络。2、桥接模式, 这种模式允许虚拟机像一台独立的主机一样拥有网络, 外部的机器可以直接访问到虚拟机内部, 但需要网卡支持, 一般有线网卡都支持。这里以 Bridge(桥接) 为例。 修改ens33网卡 [root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none'//修改为none'DEFROUTE=yes#IPADDR=192.168.140.30#NETMASK=255.255.255.0#GATEWAY=192.168.140.2#DNS=192.168.140.2BRIDGE=br0'//注释掉原本的IP地址和网关等设置,添加此处'IPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=5aa5a365-ef5d-4600-a8f0-a89e553e2714DEVICE=ens33ONBOOT=yes 新建桥接网卡,并重启网卡服务 [root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0'//配置桥接网卡'TYPE=BridgeOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=br0DEVICE=br0ONBOOT=yesIPADDR=192.168.140.30NETMASK=255.255.255.0GATEWAY=192.168.140.2[root@kvm~]# systemctl restart network'//重启网卡' 4.5 KVM管理 创建KVM存储和镜像文件夹,并上传镜像 [root@kvm ~]# mkdir -p /data_kvm/iso '//创建上传镜像centos 7.5的镜像目录'[root@kvm ~]# mkdir -p /data_kvm/store '//创建虚拟机存储文件目录'[root@kvm ~]# mount.cifs //192.168.140.1/elk /mntPassword for root@//192.168.140.1/elk: ******//输入电脑主机密码(若没密码按空格即可)[root@kvm ~]# cd /mnt/[root@kvm mnt]# lsCentOS-7-x86_64-DVD-1708.iso[root@kvm mnt]# cp CentOS-7-x86_64-DVD-1708.iso /data_kvm/iso/[root@kvm mnt]# ll /data_kvm/iso/总用量 4415488-rwxr-xr-x 1 root root 4521459712 1月 11 08:50 CentOS-7-x86_64-DVD-1708.iso[root@kvm ~]# virt-manager '//图形界面敲,打开虚拟系统管理器' 4.5.1 创建存储池 双击打开QEMU/KVM–存储–添加(加号)–填写名称–前进–浏览–其他位置–计算机–data_kvm–store–打开–完成

(1) 先创建存储池选择 /data_kvm/store




(2) 再使用同样的方法,创建存储池选择 /data_kvm/iso

4.5.2 创建存储卷

4.6 开始创建虚拟机 打开虚拟系统管理器—右击QEMU/KVM—选择新建
本地安装介质—前进
选择使用ISO映像—浏览选择刚刚创建的镜像的存储池中的镜像—前进
配置内存和CPU—前进
管理–选择刚刚创建的存储池中的存储卷–前进
点击在安装前自定义配置–选择网络(桥接)–完成
点击引导选项–勾选主机引导时启动虚拟机–开始安装–出现提示选择是

4.7 总结 VMM是一个系统软件,可以维护多个高效、隔离的程序环境(虚拟机),同时可以管理计算机系统的真实资源,为虚拟机提供端口;使用KVM虚拟化技术,极大地提高了硬件利用率。集中化管理多台虚拟机,维护方便

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。