KVM虚拟化技术学习-基础入门

简介: KVM虚拟化技术学习-基础入门

1.虚拟化技术概述

       虚拟化[Virtualization]技术最早出现在 20 世纪 60 年代的 IBM ⼤型机系统,在70年代的 System 370 系列中逐渐流⾏起来,这些机器通过⼀种叫虚拟机监控器[Virtual Machine Monitor,VMM]的程序 在物理硬件之上⽣成许多可以运⾏独⽴操作系统软件的虚拟机[Virtual Machine]实例。随着近年多核系 统、集群、⽹格甚⾄云计算的⼴泛部署,虚拟化技术在商业应⽤上的优势⽇益体现,不仅降低了 IT 成 本,⽽且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深⼊到⼈们⽇常的⼯作与⽣活中。


       虚拟化是⼀个⼴义的术语,对于不同的⼈来说可能意味着不同的东⻄,这要取决他们所处的环境。 在计算机科学领域中,虚拟化代表着对计算资源的抽象,⽽不仅仅局限于虚拟机的概念。例如对物理内 存的抽象,产⽣了虚拟内存技术,使得应⽤程序认为其⾃身拥有连续可⽤的地址空间[Address Space], ⽽实际上,应⽤程序的代码和数据可能是被分隔成多个碎⽚⻚或段),甚⾄被交换到磁盘、闪存等外部 存储器上,即使物理内存不⾜,应⽤程序也能顺利执⾏


2.虚拟化技术主要分类

平台虚拟化(Platform Virtualization) 针对计算机和操作系统的虚拟化。


资源虚拟化(Resource Virtualization) 针对特定的系统资源的虚拟化,⽐如内存、存储、⽹络资源等。


应⽤程序虚拟化(Application Virtualization) 包括仿真、模拟、解释技术等。


3.KVM虚拟化技术简介

1.KVM架构


1e6fb5a7348c4c5b8f7cea618e2c5227.png



2.KVM架构解析


从rhel6开始使⽤,红帽公司直接把KVM的模块做成了内核的⼀部分。


xen⽤在rhel6之前的企业版中默认内核不⽀持,需要重新安装带xen功能的内核 KVM 针对运⾏在 x86 硬件上的、驻留在内核中的虚拟化基础结构。


KVM 是第⼀个成为原⽣ Linux 内核 (2.6.20)的⼀部分的 hypervisor,它是由 Avi Kivity 开发和维护的,现在归 Red Hat 所有。 这个 hypervisor 提供 x86 虚拟化,同时拥有到 PowerPC® 和 IA64 的通道。另外,KVM 最近还添加了 对对称多处理(SMP)主机(和来宾)的⽀持,并且⽀持企业级特性,⽐如活动迁移(允许来宾操作系 统在物理服务器之间迁移)。


KVM 是作为内核模块实现的,因此 Linux 只要加载该模块就会成为⼀个hypervisor。


KVM 为⽀持 hypervisor 指令的硬件平台提供完整的虚拟化(⽐如 Intel® Virtualization Technology [Intel VT] 或 AMD Virtualization [AMD-V] 产品)。


KVM 还⽀持准虚拟化来宾操作系统,包括 Linux 和 Windows®。 这种技术由两个组件实现。第⼀个是可加载的 KVM 模块,当在 Linux 内核安装该模块之后,它就可以 管理虚拟化硬件,并通过 /proc ⽂件系统公开其功能。


第⼆个组件⽤于 PC 平台模拟,它是由修改版 QEMU 提供的。QEMU 作为⽤户空间进程执⾏,并且在来宾操作系统请求⽅⾯与内核协调。 当新的操作系统在 KVM 上启动时(通过⼀个称为 KVM 的实⽤程序),它就成为宿主操作系统的⼀个 进程,因此就可以像其他进程⼀样调度它。但与传统的 Linux 进程不⼀样,来宾操作系统被 hypervisor 标识为处于 "来宾" 模式(独⽴于内核和⽤户模式)。 每个来宾操作系统都是通过 /dev/KVM 设备映射的,它们拥有⾃⼰的虚拟地址空间,该空间映射到主机 内核的物理地址空间。


如前所述,KVM 使⽤底层硬件的虚拟化⽀持来提供完整的(原⽣)虚拟化。I/O 请求通过主机内核映射到在主机上(hypervisor)执⾏的 QEMU 进程。 KVM 在 Linux 环境中以主机的⽅式运⾏,不过只要底层硬件虚拟化⽀持,它就能够⽀持⼤量的来宾操 作系统.


4.KVM软件安装

1.初始化配置


systemctl stop firewalld.service

setenforce 0

2.查看CPU是否支持VT技术


[root@localhost ~]# cat /proc/cpuinfo | grep -E 'vmx|svm'

3.查看是否加载了KVM


[root@localhost ~]# lsmod | grep kvm

kvm_amd                64937  0

kvm                   554609  1 kvm_amd

irqbypass              13503  1 kvm

4.清理环境,卸载原有的KVM


yum remove `rpm -qa | egrep 'qemu|virt|KVM'` -y

rm -rf /var/lib/libvirt /etc/libvirt/

5.安装KVM相关软件包


yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer -y

6.启动libvirt并设置开机自启


systemctl start libvirtd

systemctl enable libvirtd

7.创建两个新目录,一个存放系统镜像,一个做虚拟机的存储盘


mkdir -p /kvm/iso

mkdir -p /kvm/images

8.创建物理桥接设备


1.关闭networkManager服务

chkconfig NetworkManager off

service NetworkManager stop

2.桥接设备关联网卡

virsh iface-bridge eno3 br0

3.查看是否成功

[root@localhost ~]# brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.000c29a62525       yes             ens33

virbr0          8000.5254005793d8       yes             virbr0-nic

5.图像化安装CentOS7

1.进入图像化


b7f3a4df95a44421b697c2ec4618a5eb.png

2.创建虚拟机



de57c9b863c441c7841418245591c4f6.png


3.选择安装类型



a2713386e66346958d49f6ccf419e6d0.png


local install media:本地镜像文件安装


network install :网络方式安装


network boot:网络PEX安装


import existing disk image:打开原有的虚拟机磁盘文件


4.选择镜像


6be13e97a5114a7d9d71d27f603abea4.png



5.创建存储池


1.iso镜像文件位置

29c1c9ff3bde47c59a6207490e722287.png


2.image虚拟机存放位置


5be6de8db9d348fdb7f77104ed481d6b.png

6.点击选择卷



a18890ca5c434005b2e2f4c9762d456b.png


7.找到/kvm/iso下的文件


ef4811ee82e14e059f965844055d21e7.png


8.选择刚刚创建的存储卷


234adc52bdfc42f39f1a6383cac1be57.png

0b1181c4e1bc4d64ba79befead12b29b.png


9.开始安装


f8eb11fddcdf416f8797d434fc38be14.png


74d9c7ae57204c5bb1cd3d0cecade579.png


安装系统即可。。。。


10.安装成功


ecd6d06a96e248aeb08d9085b51ee4f7.png



6.命令行模式安装

1.虚拟机的组成


1.配置文件


[root@localhost ~]# ls /etc/libvirt/qemu/

centos7.0.xml  networks

2.存储虚拟机的介质


[root@localhost ~]# ls /kvm/images/

disk.qcow2

2.根据配置文件创建虚拟机


1.复制配置文件


[root@localhost ~]# cp  /etc/libvirt/qemu/centos7.0.xml  /etc/libvirt/qemu/centos7.0-2.xml

2.复制磁盘镜像文件


[root@localhost ~]# cp /kvm/images/disk.qcow2 /kvm/images/disk-2.qcow2

3.修改配置文件必要的内容


[root@localhost ~]# vi /etc/libvirt/qemu/centos7.0-2.xml

#修改一下内容

centos7.0-2    #虚拟机名字

cac95646-ab50-4c0a-9770-e97f0723e19f #UUID 修改一位即可

1048576   #内存

1048576 #实际内存

1 #CPU核数

 #MAC地址 修改后三位其中一个即可

4.创建虚拟机


[root@localhost ~]# virsh define /etc/libvirt/qemu/centos7.0-2.xml

[root@localhost ~]# systemctl restart libvirtd

3.查看

40908863a2e24ab0a45104c28bee9d2a.png

目录
相关文章
|
1月前
|
存储 分布式计算 分布式数据库
云计算和虚拟化技术
云计算是指把计算资源、存储资源、网络资源、应用软件等集合起来,采用虚拟化技术,将这些资源池化,组成资源共享池,共享池即是“云”。
137 64
|
14天前
|
存储 持续交付 虚拟化
|
24天前
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
2月前
|
KVM 虚拟化
虚拟化技术概述及KVM环境安装
关于虚拟化技术概述及KVM环境安装的教程,涵盖了虚拟化的定义、分类、管理工具,以及KVM的系统需求、安装步骤和使用指南。
73 11
虚拟化技术概述及KVM环境安装
|
28天前
|
安全 KVM 虚拟化
OpenEuler 中配置 KVM 虚拟化环境指南
本文档详细介绍了如何在OpenEuler系统中配置和管理KVM虚拟化环境,包括环境准备、组件安装、虚拟机安装及管理命令等,适合初学者和有经验的用户。内容覆盖了从桥接网卡配置到虚拟机的安装与管理,以及常见问题的解决方法,帮助用户高效利用虚拟化技术。
|
3月前
|
Devops 虚拟化 Docker
DevOps 中的标准虚拟化技术
【8月更文挑战第27天】
52 5
|
3月前
|
存储 运维 Devops
|
3月前
|
存储 虚拟化 网络虚拟化
|
3月前
|
存储 Linux 调度
OpenStack如何支持虚拟化技术?
【8月更文挑战第21天】
199 0
|
3月前
|
存储 运维 虚拟化
Docker技术概论(1):Docker与虚拟化技术比较
Docker技术概论(1):Docker与虚拟化技术比较
126 17
Docker技术概论(1):Docker与虚拟化技术比较