虚拟化第一天

虚拟化

虚拟化,是指通过虚拟化技术将一台计算机虚拟成多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而提高计算机的应用效率。
虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源的利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

虚拟化分类

按种类

1,完全虚拟化
最流行的虚拟化方法使用名为 hypervisor 的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。 VMware 和微软的VirtualPC是代表该方法的两个商用产品,而基于核心的虚拟机 (KVM) 是面向 Linux 系统的开源产hypervisor 可以捕获 CPU 指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,hypervisor 给处理器带来开销

2,准虚拟化
完全虚拟化是处理器密集型技术,因为它要求 hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户端操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor 协同工作。这种方法就叫准虚拟化 (para-virtualization)

3,系统虚拟化
就操作系统层的虚拟化而言,没有独立的hypervisor 层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统 ( 不过每个实例有各自的应用程序和用户账户 ) 。虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。

4,桌面虚拟化
服务器虚拟化主要针对服务器而言,而虚拟化最接近用户的还是要算的上桌面虚拟化了,桌面虚拟化主要功能是将分散的桌面环境集中保存并管理起来,包括桌面环境的集中下发,集中更新,集中管理。桌面虚拟化使得桌面管理变得简单,不用每台终端单独进行维护,每台终端进行更新。终端数据可以集中存储在中心机房里,安全性相对传统桌面应用要高很多。桌面虚拟化可以使得一个人拥有多个桌面环境,也可以把一个桌面环境供多人使用

按架构

1型虚拟化
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare的 ESXi 都属于这个类型。
在这里插入图片描述

vmware vsphere
ESXI-操作系统(直接部署在物理服务器)-硬件
vcenter-管理端(也要装到一台服务器上)

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

虚拟化-KVM

2010 年 11 月,红帽发布其企业级 Linux 的 6.0 版本( RHEL6.0 ),这个版本将默认安装的 Xen 虚拟化机制彻底去除,仅提供 KVM 虚拟化机制
自 Linux 2.6.20 之后逐步取代 Xen 被集成在Linux 的各个主要发行版本中,使用 Linux 自身的调度器进行管理。

KVM — 全称是基于内核的虚拟机(Kernel-based Virtual Machine)是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟技术,该内核模块使得 Linux 变成了一个Hypervisor,虚拟机使用 Linux 自身的调度器进行管理。

KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。

扫描二维码关注公众号,回复: 5740819 查看本文章

但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。

在这里插入图片描述

Linux 上的分为
用户空间:指用户得到一个虚拟机
内核空间:
虚机:

Guest(指的就是虚拟机,也代指VM):客户机系统,包括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有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。IO 的虚拟化,就交给 Linux 内核和qemu来实现

Libvirt:
是 KVM 的管理工具。Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理Xen,VirtualBox 等。OpenStack 底层也使用 Libvirt。

Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具
virsh
(1)libvirtd是服务程序,接收和处理 API(软件调用接口) 请求;
(2)API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-
manager,这是个图形化的 KVM 管理工具,后面我们也会介绍;
(3)virsh 是我们经常要用的 KVM 命令行工具,后面会有使用的示例。
作为 KVM 和 OpenStack 的实施人员,virsh 和 virt-manager 是一定要会
用的。

libvirt提供
#virsh list --all 查看所有虚拟机

kvm虚拟化所需组件介绍

kvm: 核心套件
virt-manager: 图形化 KVM 管理软件
libvirt: 提供虚拟机与宿主相互通信的机制
libvirt-python: 允许使用 libvirt API
python-virtinst:CLI 下创建 KVM 的工具
libvirt-client: 提供 client 访问 kvm 服务器的机制 ,并包含 virsh 命令进行
管理和控制 VMs
qemu-kvm: 提供用户级 KVM 环境
qemu-img:VMs 磁盘管理

环境搭建:
内存4G
网络地址转换NAT
磁盘50G 存储为单个文件
软件选择 带GUI的服务器
安装位置
分配分区:/boot 512M / all

#systemctl get-default 查看当前
graphical.target
#systemctl set-default multi-user.target 设置为文字界面
#reboot
#startx开启图形化
ctrl + c 结束进程 

搭建本地yum源 
#cd /etc/yum.repos.d/
#mkdir old
#mv * old/
#mount /dev/sr0 /mnt
#vim cdrom.repo

[cdrom]
name=123
baseurl=file:///mnt
enable=1
gpgcheck=0

#yum clean all
#yum install kvm libvir* qemu* -y

#modprobe kvm 加载kvm
#lsmod | grep kvm 查看
#systemctl start libvirtd
#systemctl enable libvirtd
#yum -y install virt-manager 安装图形管理界面
#virsh list产看是否安装成功

nat网络模式连接

NAT ( 默认上网 ) :虚拟机利用 host 机器的 ip 进行上网 . 对外显示一个 ip,
virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提
供 NAT 访问外网的功能,默认ip为192.168.122.1

#cd /etc/sysconfig/network-scripts
#mv ifcfg-ens33 ifcfg-ens33.bak
#vim ifcfg-ens33
TYPE=Ethernet
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

#vim ifcfg-br0
TYPE=Bridge
NAME=br0
DEVICE=br0
ONBOOT=yes
BOOTPROTP=none
IPADDR=192.168.146.200
NATMASK=255.255.255.0
GATEWAY=192.168.146.2
DNS1=119.29.29.29
DNS2=8.8.8.8

#reboot

猜你喜欢

转载自blog.csdn.net/PpikachuP/article/details/88951056
今日推荐