KVM虚拟化简介及安装

Posted shuaiyin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟化简介及安装相关的知识,希望对你有一定的参考价值。

kvm是基于图形化的linux操作的

安装图形化界面的知识点:

磁盘空间有两个词:

精简置备:我先在我系统里面去声明我要一个50G的空间,但是呢,我不会把50G都分给你,你用多少,我分给你多少,但是做多不能超过50G.

厚置备:直接把50G都分给你。

虚拟化

虚拟化的分类

什么是虚拟化:(1u是指的服务器的厚度)

10年前,他都是单独的服务器提供服务,像apache是部署在Linux操作系统里,他会单独的拿一台物理的硬件服务器来部署这个服务,如果部署多个服务的话,那么就需要多个物理服务器,随着业务增加,那么需要服务器的数量也就增加,这就增加了公司分费用,就需要买很多很多服务器,也随着硬件硬件的发展,一个磁盘空间1T多,如果只部署一个服务的话,又太浪费,所以最后慢慢衍生出来了虚拟化技术,有了这项技术,把一个服务器虚拟成多个小的逻辑计算机,帮助我们提供服务,那现在用一台服务器就可以把所需要的服务集中部署在一台服务器里,这样节约了成本。

通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统(虚拟出来的计算机都具有单独的操作系统,跟我们宿主机是相互隔离的),并且应用程序都可以在相互独立的空间内运行而互不影响。

虚拟化的优势:

从新定义划分IT资源,可以实现IT资源的动态分配,灵活调度,跨域共享。

提高IT资源利用率

虚拟化目标

同一主机上运行多个系统或应用 , 从而提高系统资源的利用率 , 同时带来降低 成本 , 方便管理和容错容灾。

虚拟化的种类:

根据用途来分:

完全虚拟化:含有hypervisor的一种软件,VMware和微软的VirtualPC是代表该方法的两个商用商品,KVM就是基于Linux完全虚拟化的一款开源的产品,hypervisor可以捕获CPU的指令,为指令访问硬件控制器和外设充当中介。缺点,给处理器带来开销。

准虚拟化:完全虚拟化是一项处理器密集型技术,因为他要求hypervisor管理各个虚拟服务器,并让他们彼此独立。为了减轻这一负担,可以改动客户端操作系统,让他以为自己运行在虚拟环境下,能够与hypervisor协同工作,这就是准虚拟化。

准虚拟化代表:Xen

系统虚拟化:没有独立的hypervisor层,主机操作系统本身负责多个虚拟服务器之间的资源分配。在完全虚拟化和准虚拟化里面,我们的虚拟机要享用资源,必须通过hypervisor层给他管理和分配资源。

桌面虚拟化:比如上机考试的电脑,他本地是没有操作系统,而是远端有一个中心机房,把操作系统投射到你屏幕里,进行统一管理。

虚拟化类型

对于系统虚拟化技术来说,虚拟层为用户提供了一个完整的虚拟机:包括内核 在内的一个完整的系统镜像。 CPU 虚拟化技术可以为每个用户提供一个独享且和其他用户隔离的系统环境,虚拟层可以为每个用户分配虚拟化后的 CPU 、 内存和 IO 设备资源。

物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机 (Guest)。那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使 用的呢?
这个主要是通过一个叫做 Hypervisor 的程序实现的。根据 Hypervisor 的实 现方式和所处的位置,虚拟化按照结构分为两种类型:1型虚拟化和2型虚拟化。

根据虚拟化的架构来分(就是通过hyoervisor软件部署的位置来区分):

1型虚拟化:hypervisor(典型代表:ESXi,Xen)(软件)直接部署在服务器的硬件上。

技术图片

2型虚拟化:首先在你的硬件上部署一个Linux操作系统,在这个操作系统上部署我们hypervisor软件(KVM,VirtualBox,VMWare Workstation)

技术图片

理论上讲:

1型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高;
2型虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌 套意味着可以在KVM虚拟机中再运行KVM。

如何查看系统版本

cat /etc/redhat-release

如何查看内核

uname

如何查看红帽的系统版本

cat /etc/issue

个人用的是VMware Workstation

企业用的是VMware Vsphere

KVM

  kvm全称“基于内核的虚拟机”,是一个开源的软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟技术,该内核模块使得Linux变成一个hypervisor,虚拟机使用Linux自身的调度器进行管理。(就是说Linux要部署一个kvm模块,他才能变成hypervisor层)。

kvm是基于CPU的类型进行管理。

kvm空间:

技术图片

用户空间:指的是用户得到一个虚拟机

内核空间:指的是你的kvm宿主机里面它部署的虚拟化的软件,是通过驱动内核来实现的

虚机:指的是用户的得到一个虚拟机层

Guest:指的我们虚拟机,也称VM

kvm:运行在内核空间,提供CPU和内存的虚拟

QEMU(扩展软件):帮我们提供了虚拟机的I/O设备(CPU 内存 显示器),其他的硬件虚拟化

kvm有一个内核模块叫kvm.ko,它来提供我们CPU和内存

Libvirt:kvm的管理工具

Libvirt 包含3个东西:

1 后台daemon程序libvirtd:libvirtd是服务程序,接受和处理API请求

2 API(软件的接口,可以根据这个接口开发管理的软件,调用这个程序)库

3 命令行工具virsh

安装kvm准备工作

1 确认宿主机Bios的虚拟化VT开启

Intel(R)Virtualization Tech [ Enable ]

2 确认处理器有VT(在虚拟机查看)

grep vmx /proc/cpuinfo (针对INTEL 芯片)

grep svm /proc/cpuinfo (针对AMD 芯片)

KVM虚拟化安装

1 安装要求

64bitCPU(支持虚拟化)

2G以上空闲内存(如何确认内存大小,grep –e Mem Total /proc/meminfo或者free  -m)

6GB空间储存空间

拓展知识点:

查看系统的块设备(一般我们的硬盘就是块设备):lsblk

nmtui(设置网卡命令)

如何把图形化界面换成命令行界面

先查看:systemctl get-default 一般graphical.target就是图形化

后设置:systemctl set-default multi-user.target 命令行界面

又想用图形化界面怎么办?

命令行输入startx即可。当又不想用的时候,ctrl+c退出这个进程。

2 安装kvm

(1)配置源

先把yum.repo.s里的大C文件归拢

vim cdrom.repo

[cdrom]

name=123

baseurl=file:///mnt

enable=1

gpgcheck=0

清除缓存:yum clean all 或者 yum makecache

挂载 mount /dev/sr0 /mnt

下载 yum install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client qemu-kvm qemu-img

也可以用*代替

yum install kvm libvirt* qemu*  virt-manager -y

安装简单版kvm

yum install kvm virt-manager libvirt*

kvm:核心套件

virt-manager:图形化kvm管理软件

virtsh:命令行管理kvm工具

libvirt:提供虚拟机与宿主机互通信机制

libvirt-python:允许使用libvirt API

python-virtinst:CLI下创建kvm的工具(也就是命令行下)

libvirt-client:提供client访问kvm服务器的机制,并包含virsh命令进行管理和控制VMs

qemu-kvm:提供用户级kvm环境

qemu-img:VMs(虚拟机)磁盘管理

3 启动kvm

(1)modprobe kvm 加载kvm模块

(2)lsmod | grep kvm 查看是否加载成功

(3)systemctl start libvirtd

(4)systemctl enable libvirtd

(5)systemctl status libvirtd

4 验证虚拟化是否安装成功

看virsh list这个命令是否能使用

kvm网络模式设置

1 NAT(默认上网):利用宿主机的ip进行上网

我一台主机访问另一台主机,访问的这个动作不是由自己完成,而是由别人完成

2自带的Bridge:有一个缺点,虚拟机和宿主机不能联通

3 linuxBridge:创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。此种方式host却可以和vm联通

技术图片

linux Bridge配置:

Vim ifcfg-eth0

TYPE=Ethernet

NAME=eth0

DEVICE=eth0

ONBOOT=yes

BRIDGE=br0

Vim ifcfg-br0

TYPE=Bridge

NAME=br0

DEVICE=br0

ONBOOT=yes

BOOTPROTO=none

IPADDR=192.168.254.20

PREFIX=24(NETMASK=255.255.255.0)

GATEWAY=192.168.254.1

DNS=192.168.254.251

如何从命令行安装图形化界面

yum grouplist

yum groupinstall “带图形的GUI” -y

如何用kvm建立虚拟机

一 点击应用程序 – 系统工具  -- 虚拟系统管理器(virt manager)

二 选中QEMU/KVM,点击电脑的亮光

三 选择本地安装介质,前进

四 选择使用ISO映像,将要安装的系统光盘读取进来

五 进行内存和大小设置

如果选择了新建存储大小,会在/var/lib/libvirt/images这里创建属于此虚拟机的磁盘文件

六 命名,并勾选在安装前自定义配置,网络选择宿主机的

七 选择引导选项 勾选启用引导菜单和IDE CDROM 1还有VirtIO 磁盘 1

八 选择IDE CDROM 1,选择源路径,进行连接,连接要安装的操作系统光盘

九 而后安装即可

远程管理kvm(就是说用一台含有kvm的宿主机,去管理另一台含有kvm的宿主机)

就是在我一台没有开启kvm的情况下,去管理他的虚拟机

第一步 打开虚拟系统管理器

第二步 点击文件 – 添加连接

管理程序选择 QEMU/KVM

连接到远程主机 勾选

用法 SSH

用户名 root

主机名 要管理的ip

第三步 弹出Openssh

第一次弹出此处切记填yes或no,不是输密码

第二次弹出输入密码

连接成功后就会多出一台QEMU/KVM

以上是关于KVM虚拟化简介及安装的主要内容,如果未能解决你的问题,请参考以下文章

KVM详解

kvm介绍 转载

KVM虚拟化及部署!

KVM虚拟化及部署!

KVM之初体验——QEMU安装虚拟机

XEN虚拟化简介及XEN在CentOS 6.5上的安装