KVM虚拟化

虚拟化介绍

**虚拟化:**在一台计算机上虚拟出多个逻辑的计算机,而且每个逻辑计算机
它可以是不同操作系统

**虚拟化技术:**可以扩大硬件容量,单个cpu模拟出多个cpu并行,
允许一个平台上同时运行多个操作系统,应用程序都可以在相互独立
的空间内运行,而且互不影响。

为什么企业使用虚拟化技术

1、节约成本
2、提高效率,物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。

那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使用的呢?
这个主要是通过一个叫做 Hypervisor 的程序实现的。
Hypervisor:一种运行在物理服务器硬件与操作系统之间的中间软件层
可允许多个操作系统和应用来共享硬件资源
根据 Hypervisor 的实现方式和所处的位置,虚拟化又分为两种:
完全虚拟化:直接在物理机上部署虚拟化,且不需要修改操作系统内核
半虚拟化:需要修改操作系统内核,使其支持虚拟化驱动来实现虚拟化技术

全虚拟化:

image

半虚拟化:

image

KVM简介

KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。
KVM有一个内核模块叫 KVM.ko,只用于管理虚拟 CPU 和内存。
那 IO 的虚拟化,比如存储和网络设备则是由 Linux 内核与Qemu来实现。

Qemu-KVM虚拟化

KVM本身不执行任何设备模拟,需要用户空间程序QEMU通过/dev/KVM接口设置一个虚拟客户机的地址空间。

  • KVM和Qemu的关系
    • Qemu是一个独立的虚拟化解决方案,通过intel-VT 或AMD SVM实现全虚拟化,安装qemu的系统,可以直接模拟出另一个完全不同的系统环境。QEMU本身可以不依赖于KVM,但是如果有KVM的存在并且硬件(处理器)支持比如Intel VT功能,那么QEMU在对处理器虚拟化这一块可以利用KVM提供的功能来提升性能。
    • KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel-VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。准确来说,KVM是Linux kernel的一个模块。
  • Qemu的三种运行模式:
    • 1.第一种模式是通过kqemu模块实现内核态的加速。
    • 2.第二种模式是在用户态直接运行QEMU,由QEMU对目标机的 所有 指令进行翻译后执行,相当于全虚拟化。
    • 3.第三种模式则是KVM官方提供的KVM-qemu加速模式。
  • qmeu的两种特点:
    • 1.QEMU可以在没有主机内核驱动程序的情况下运行。
    • 2.它适用于多种操作系统(GNU / Linux,* BSD,Mac OS X,Windows)和体系结构。
    • 3.它执行FPU的精确软件仿真。

QEMU的两种操作模式:完整的系统仿真和用户模式仿真。

  • QEMU用户模式仿真具有以下功能:
    • 1.通用Linux系统调用转换器,包括大部分ioctls。
    • 2.使用本机CPU clone的仿真为线程使用Linux调度程序。
    • 3.通过将主机信号重新映射到目标信号来实现精确信号处理。
  • QEMU全系统仿真具有以下特点:
    • 1.QEMU使用完整的软件MMU来实现最大的便携性。
    • 2.QEMU可以选择使用内核加速器,如KVM。加速器本地执行大部分客户代码,同时继续模拟机器的其余部分。
    • 3.可以仿真各种硬件设备,并且在某些情况下,客户机操作系统可以透明地使用主机设备(例如串行和并行端口,USB,驱动器)。主机设备传递可用于与外部物理外围设备(例如网络摄像头,调制解调器或磁带驱动器)交谈。
    • 4.对称多处理(SMP)支持。目前,内核加速器需要使用多个主机CPU进行仿真。

部署KVM

环境说明

主机名 ip 系统
KVM 192.168.48.151 centos 8

首先先修改机器配置

  • 内存尽量给大点,cpu虚拟化功能都勾选,虚拟计数器看情况勾选

在这里插入图片描述

//新建分区,将硬盘所有大小都给这个分区

[root@KVM ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
|-sda1        8:1    0    1G  0 part /boot
`-sda2        8:2    0   99G  0 part 
  |-cs-root 253:0    0 63.9G  0 lvm  /
  |-cs-swap 253:1    0    4G  0 lvm  [SWAP]
  `-cs-home 253:2    0 31.2G  0 lvm  /home
sdb           8:16   0  200G  0 disk 
sr0          11:0    1 10.3G  0 rom  
[root@KVM ~]# parted /dev/sdb 
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel                                                          
New disk label type? msdos                                                
(parted) unit 
Unit?  [compact]? MiB                                                     
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 204800MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start  End  Size  Type  File system  Flags
 
(parted) mkpart 
Partition type?  primary/extended? primary                                
File system type?  [ext2]? xfs                                            
Start? 10                                                                 
End? 204790                                                               
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End    Size   Type     File system  Flags
 1      10.5MB  205GB  205GB  primary  xfs          lba
 
(parted) q                                                                
Information: You may need to update /etc/fstab.
 
//刷新分区表
[root@KVM ~]# udevadm settle 
 
[root@KVM ~]# lsblk 
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0   100G  0 disk 
|-sda1        8:1    0     1G  0 part /boot
`-sda2        8:2    0    99G  0 part 
  |-cs-root 253:0    0  63.9G  0 lvm  /
  |-cs-swap 253:1    0     4G  0 lvm  [SWAP]
  `-cs-home 253:2    0  31.2G  0 lvm  /home
sdb           8:16   0   200G  0 disk 
`-sdb1        8:17   0 190.7G  0 part 
sr0          11:0    1  10.3G  0 rom 
 
//格式化并挂载
[root@KVM ~]# mkfs.xfs /dev/sdb1 
[root@KVM ~]# blkid /dev/sdb1
/dev/sdb1: UUID="a7f6c042-a8ec-4e56-891a-fc82bea345c7" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="b1325be8-01"
[root@KVM ~]# mkdir /KVMdata
[root@KVM ~]# echo "UUID=a7f6c042-a8ec-4e56-891a-fc82bea345c7  /KVMdata xfs defaults 0 0" >> /etc/fstab 
 
[root@KVM ~]# mount -a
[root@KVM ~]# df -Th 
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs               tmpfs     3.8G     0  3.8G   0% /dev/shm
tmpfs               tmpfs     3.8G  9.0M  3.8G   1% /run
tmpfs               tmpfs     3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/mapper/cs
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值