KVM虚拟化技术及环境配置
KVM一、KVM概述(1)虚拟化产生背景(2)虚拟化类型(3)虚拟化优劣势(4)KVM架构以及原理二、实验搭建(1)基础环境(2)安装KVM(3)设置KVM网络一、KVM概述KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine)是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor它由 Quramnet 开发,该公司于
一、KVM概述
KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine)
是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor
- 它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购。
- 它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
- 它从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中。
- 它需要支持虚拟化扩展的 CPU。
- 它是完全开源的。
(1)虚拟化产生背景
美国环境保护EPA报告中曾经统计过一组统计数据:EPA研究服务器和数据中心得能源效率时发现,实际上服务器只有5%得时间时在工作的,其他时间一直处于休眠状态
软件资源是没有硬件资源性能高(稳定和效率)的(相同功能)
(2)虚拟化类型
- 全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用
使用的方法:使用hypervisor
(VMM)软件,其原理是在底层硬件和服务器之间建立一个抽象层,而基于核心的虚拟机是面向Linux系统的开源产品hypervisor(VMM)可以捕捉CPU的指令。为指令访问硬件控制器和外设充当中介。
- 半虚拟化:需要修改操作系统
- 直通:直接使用物理硬件资源(需要支持,还不完善)
(3)虚拟化优劣势
优势
- 集中化管理(远程管理、维护)
- 提高硬件利用率(物理资源利用率低-例如峰值,虚拟化解决了“空闲”容量)
- 动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)
- 高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)
劣势
- 前期高额费用(初期的硬件支持)
- 降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化)
- 更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)
- 实施配置复杂、管理复杂(管理人员运维、排障困难)
- 一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用)
- 安全性(虚拟化技术自身的安全隐患)
(4)KVM架构以及原理
KVM虚拟化架构/三种模式
客户模式(guestOS):VM中的OS为Guestos
- 客户机在操作系统中运行的模式,客户机分为内核模式和用户模式
用户模式:
- 为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)
linux内核模式
- 模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下
KVM原理
- Guest:客户机系统,包括CPU (vCPU)、内存、驱动(Console、网卡、I/O设备驱动等),被KVM置于—种受限制的CPU模式下运行。
- KVM内核模块模拟处理器和内存以支持虚拟机运行
- Qemu主要处理l/O以及为客户提供一个用户空间/dev/kvm
libvirt来进行虚拟机管理ioctl(定义)专用于设备输入输出操作的系统调用
以上构成一个完整的虚拟化平台
二、实验搭建
(1)基础环境
进行一些基础的配置
----修改主机名----
hostnamectl set-hostname kvm
su
----将镜像光盘挂载----
vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
mount -a
环境优化
----设置DNS反向解析----(是否反解DNS,设置为NO可以让客户端连接服务器更快)
vim /etc/ssh/sshd_config
----115行 取消DNS注释,改为NO----
UseDNS no
YUM仓库
----本地YUM仓库----
cd /etc/yum.repos.d/
mv CentOS-* repo.bak
vim local.repo
[local]
name=kvm
baseurl=file:///abc
gpgcheck=0
enabled=1
yum clean all && yum makecache
关闭防火墙策略
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
(2)安装KVM
安装KVM基本组件
安装 GNOME 桌面环境 如果装了图形界面可以不需要装
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 | grep kvm
设置开启启动界面的显示模式
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
(3)设置KVM网络
- NAT 默认设置,数据包由 NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
- 网桥:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO=none '//原本的修改为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="0739b616-18e4-49b1-9a09-f75cc793899b"
DEVICE="ens33"
ONBOOT="yes"
#IPADDR=192.168.90.10
#NETMASK=255.255.255.0
#GATEWAY=192.168.90.2
#DNS1=8.8.8.8
#DNS2=114.114.114.114
BRIDGE=br0 '//注释掉原本的IP地址,添加此段'
创建、编辑桥接网卡
vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
OTPROTO=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.90.10 #这里可以改成之前ens33的ip,这样就可以再次连上xshell了
NETMASK=255.255.255.0
GATEWAY=192.168.90.2 #网卡也跟之前一样
systemctl restart network '重启网卡'
到这一步基本的虚拟化环境已经配置完成
如果需要创建虚拟机
virt-manager
输入完之后桌面会有管理虚拟机的一个可视化工具安装
自行创建即可
更多推荐
所有评论(0)