公司部分 Linux 服务器利用率不高,为充分利用这些 Linux 服务器,可以部署 KVM 虚拟化平台,在物理机上运行多个业务系统(虚拟机)。例如,在运行 Nginx 的服务器上部署 KVM,然后在虚拟机上运行 Tomcat,MySQL等企业服务。
KVM:就是Keyboard Video Mouse的缩写。KVM 交换机通过直接连接键盘、视频和鼠标 (KVM) 端口,让您能够访问和控制计算机。KVM 技术无需目标服务器修改软件。这就意味着可以在 BIOS 环境下,随时访问目标计算机。KVM 提供真正的主板级别访问,并支持多平台服务器和串行设备。
KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT 基础机房设施管理系统。可以从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备。KVM over IP 解决方案具备完善的多地点故障转移功能、符合新服务器管理标准 (IPMI) 的直接界面,以及将本地存储媒体映射至远程位置的功能。
中文名称
KVM
全称
Keyboard Video Mouse
本质
计算机技术
优点
支持多平台服务器和串行设备
地位
网络中的管理设备
● 功能
支持串口overIP远程调试串口设备
虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。
那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使用的呢?
这个主要是通过一个叫做 Hypervisor 的程序实现的。
根据 Hypervisor 的实现方式和所处的位置,虚拟化又分为两种:
1型虚拟化和2型虚拟化
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。

物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

理论上讲:
1型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高;
2型虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行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。
它是完全开源的。
KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。
但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。
Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被 KVM 置于一种受限制的 CPU 模式下运行。
KVM:运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理。
QEMU:修改过的为 KVM 虚机使用的 QEMU 代码,运行在用户空间,提供硬件 I/O 虚拟化,通过 IOCTL /dev/kvm 设备和 KVM 交互。
KVM 所支持的功能包括:
支持CPU 和 memory 超分(Overcommit)
支持半虚拟化I/O (virtio)
支持热插拔 (cpu,块设备、网络设备等)
支持对称多处理(Symmetric Multi-Processing,缩写为 SMP )
支持实时迁移(Live Migration)
支持 PCI 设备直接分配和 单根I/O 虚拟化 (SR-IOV)
支持 内核同页合并 (KSM )
支持 NUMA (Non-Uniform Memory Access,非一致存储访问结构 )
libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
Virsh:基于 libvirt 的 命令行工具 (CLI)
Virt-Manager:基于 libvirt 的 GUI 工具
virt-v2v:虚机格式迁移工具
virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等
sVirt:安全工具
1、真机 Linux 必须是 64 位操作系统,RHEL5.4及以上的系统平台
2、CPU 支持 VT 技术(BIOS 中开启)
注意:VMware 虚拟机需要
内存 至少3G
硬盘 60G
虚拟化引擎必须勾选 虚拟化 Intel VT -x/EPT 或 AMD -V/RVI(V)
3、安装前要查看 CPU 是否支持虚拟化
cat /proc/cpuinfo | egrep "vmx|svm"
4、安装前关闭 iptables 防火墙与 selinux
iptables -F
systemctl stop firewalld
setenforce 0
5、KVM 安装方式
(1)可在安装系统时选择桌面与所有虚拟化选项
(2)在已有的系统上安装 KVM 软件
在 CentOS7 的系统光盘镜像中,已经提供了安装 KVM 所需软件,通过部署基于光盘镜像的本地 yum 源,直接使用 yum 安装所需软件即可。
yum groupinstall "GNOME Desktop" #安装 GNOME 桌面环境
yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager
qemu-kvm # KVM 模块
qemu-kvm-tools # KVM 调试工具,可不安装
qemu-img # qemu 组件, 创建磁盘,启动虚拟机
bridge-utils # 网络支持工具
libvirt # 虚拟机管理服务
virt-manager # 图形界面管理虚拟机
6、检测 KVM 模块安装是否成功
lsmod | grep kvm
如果没有的话,可以用 modprobe kvm 重新加载一下
注意:使用 yum 安装完桌面后,将系统默认的运行 target 修改为 graphical.target。重启系统后进入图形界面,若不修改系统的默认运行 target,重启时可能会出错。
从Centos7以后采用target概念来定义运行级别,分为3级、5级,含义如下:
3级->multi-user.target
5级->graphical.target
- 相关命令如下
- 查看当前运行的级别
runlevel
- 修改开机默认运行级别命令
systemctl set-default multi-user.target或graphical.target
查看开机默认运行级别:
systemctl get-default
修改默认运行级别为图形方式:
systemctl set-default graphical.target
7、设置 KVM 网络
宿主服务器安装完成 KVM,首先要设定网络,在 libvirt 中运行 KVM 网络有两种方法,NAT 和 Bridge,默认是 NAT。
1、用户模式,即 NAT 方式,这种方式是默认网络,数据包由 NAT 方式通过主机接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络。
2、桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部机器可以直接访问到虚拟机内部,但需要网卡支持,并编辑网卡参数文件以支持交接
Bridge 案例
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens32 ifcfg-br0
vim ifcfg-br0
TYPE 改为 Bridge
NAME 改为 br0
UUID 删掉
DEVICE 改为 br0
vim ifcfg-ens32
UUID 删掉
IPADDR 删掉
NETMASK 删掉
GATEWAY 删掉
DNS1 删掉
添加 BRIDGE=br0
重启 network 服务
systemctl restart network
8、virt-manager KVM 管理工具
virt-manager 是基于 libvirt 的图形化虚拟机管理软件,不同版本的 virt-manager 的界面和操作方法可能不同,是使用 KVM 虚拟机最简单的方法
virt-manager
最好在 VMware 虚拟机 图形界面 打开
9、创建虚拟机
(1)创建存储池并创建存储卷
双击 QEMU/KVM -> 存储 -> 单击 " + " 按钮新建存储池,创建两个存储池 KVM,ISO
用 ftp 将 CentOS7 安装镜像上传到服务器目录 /virtual/ISO 中。
KVM:用于存放虚拟机磁盘镜像文件
ISO:用于存放安装操作系统的镜像文件
(2)新建虚拟机
右击 QEMU/KVM -> 新建
本地安装
前进
使用 ISO 镜像 PS:用存储池 ISO 上传的镜像
前进
内存:2G
前进
选择或创建自定义存储 PS:用存储池 KVM 中的磁盘
前进
勾选 在安装前自定义配置
网络为桥接
完成
引导选项 勾选 自动启动 主机引导时启动虚拟机 应用
IDE CDROM 1 点击连接 把存储池 ISO 中的镜像连接
开始安装
原文:https://www.cnblogs.com/2567xl/p/11737170.html