在VMware Workstation的Centos上实现KVM虚拟机的安装部署:详细安装部署过程(保姆级)

KVM概述

• 以色列qumranet公司研发,后被RedHad公司收购
(1)kvm只支持x86平台
(2)依赖于 HVM,inter VT AMD-v

• KVM是(Kernel-based Virtual Machine)的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。

• KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

工作原理

KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。
但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。

KVM的整体结构:

从GUI到Linux内核,包括以下五个组件:
1、virt-manager: 一个用来管理VM的GUI/CUI用户接口,它使用libvirt api 调用VM的各种功能。
2、libvirt:API库,作为较通用的服务器虚拟化软件,它支持Xen,VMware ESXi/GSX,当然,还有QEMU/KVM。
3、QEMU:一个和KVM内核模块交互的模拟器,处理多种客户机系统请求如I/O,一个QEMU进程对应一个客户机系统。
4、KVM内核模块: 从狭义上来说,KVM是一个Linux内核模块,主要负责vCPU的创建,虚拟内存的分配,vCPU寄存器的读写以及vCPU的运行。
5、Bridge-utils - Bridge-utils是一个Linux桥接工具集合,用于创建和配置网络桥接设备。在KVM中使用网络桥接可以实现更高效的网络通信。

KVM的安装与部署

镜像下载地址: http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/

如果是物理服务器,需要在BIOS中打开虚拟化功能(Virtualization Technology),一般的服务器默认是打开这个功能的。
如果是用VMware Workstation做实验,建立的虚拟机的CPU要勾选虚拟化功能,这样虚拟机才会支持KVM虚拟化

首先准备一台新的虚拟机,处理器也不要只给一个
在这里插入图片描述
配置好以后就可以启动了
查看内核中的KVM模块是否已经安装

[root@server159 ~]# lsmod  | grep kvm
kvm_intel             188740  0 
kvm                   637289  1 kvm_intel
irqbypass              13503  1 kvm

在这里插入图片描述
然后就安装KVM所需要的组件

[root@server159 ~]# yum install qemu qemu-img qemu-kvm  libvirt  libvirt-python  libguestfs-tools virt-manager  virt-viewer  virt-install -y

启动libvirtd服务,并设置为开机自启

[root@server159 ~]# systemctl  start  libvirtd
[root@server159 ~]# systemctl  enable  libvirtd

创建一个目录来存放虚拟磁盘,跟在window上创建一个目录存放VMware一样
然后创建虚拟磁盘

[root@server159 ~]#  mkdir  -p  /data/kvm
[root@server159 ~]# qemu-img  create  -f  raw  /data/kvm/server1.raw  10G
Formatting '/data/kvm/server1.raw', fmt=raw size=10737418240 

我们创建了一个10G的虚拟磁盘,但是并不会直接占用我们的10G内存,是根据使用量来决定的

[root@server159 ~]# ls  -lh  /data/kvm/server1.raw 
-rw-r--r-- 1 root root 10G Nov 23 19:52 /data/kvm/server1.raw
[root@server159 ~]# du  -h  /data/kvm/server1.raw 
0	/data/kvm/server1.raw

然后创建一个目录来保存并下载KVM安装的镜像,

[root@server159 ~]# ls /data/iso/
CentOS-7-x86_64-Minimal-2009.iso

配置br0网卡来提供桥接网络

[root@server159 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0

然后ens33和br0网卡的设置

[root@server159 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 
TYPE=Bridge
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.121.159
PREFIX=24
DNS1=192.168.121.2
GATEWAY=192.168.121.2

[root@server159 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br0

然后重启网络

[root@server159 ~]# systemctl restart network

查看ip在哪张网卡

[root@server159 ~]# ifconfig 
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.121.159  netmask 255.255.255.0  broadcast 192.168.121.255
        inet6 fe80::250:56ff:fe22:e283  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:22:e2:83  txqueuelen 1000  (Ethernet)
        RX packets 32  bytes 2012 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 34  bytes 2500 (2.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::250:56ff:fe22:e283  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:22:e2:83  txqueuelen 1000  (Ethernet)
        RX packets 874221  bytes 1263022646 (1.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68757  bytes 6441324 (6.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

然后修改VNC访问的密码

[root@server159 ~]# vim /etc/libvirt/qemu.conf 

在这里插入图片描述

然后开始安装我们的虚拟机

[root@server159 ~]# virt-install --name=server1  --virt-type=kvm --memory 1024,maxmemory=2048  --cdrom=/data/iso/CentOS-7-x86_64-Minimal-2009.iso  --disk path=/data/kvm/server1.raw   --network bridge=br0  --vnc --vncport=5901 --vnclisten=0.0.0.0  --noautoconsole  --autostart

在这里插入图片描述
看一下端口启动没有
在这里插入图片描述
然后去我们window上安装的Real VNC通过这个端口访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

连接进来以后就是这个界面,这个大家都熟悉, 我就不介绍了
根据自己要求来配就好了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装好以后就直接重启KVM虚拟机,当然VNC就会直接断开连接
然后在宿主机查看KVM虚拟机的情况

[root@server159 ~]# virsh list
 Id    Name                           State
----------------------------------------------------

[root@server159 ~]# virsh start server1
Domain server1 started

[root@server159 ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 2     server1                        running

然后这时候就可以用VNC来连接KVM虚拟机了
在这里插入图片描述
然后使用Xshell连接
在这里插入图片描述
在这里插入图片描述

可以看到是可以连接的,也ping通百度访问外网,现在就和我们的宿主机差不多了

这样我们的KVM虚拟机就安装好了

希望对大家有用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/184055.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、loadbalancer

文章目录 POM依赖环境准备配置配置文件配置类 案例展示 POM依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version><relativePath/></p…

Android开发从0开始(ContentProvider与数据)

内容提供者&#xff1a;ContentProvider 为App存取内部数据提供外部接口&#xff0c;让不同应用共享数据。 ①在配置里AndroidManifest.xml <provider android:name".UserInfoProvider" android:authorities"com.example.chapter07_server.provider.U…

pytest-pytest-html测试报告这样做,学完能涨薪3k

在 pytest 中提供了生成html格式测试报告的插件 pytest-html 安装 安装命令如下&#xff1a; pip install pytest-html使用 我们已经知道执行用例的两种方式&#xff0c;pytest.main()执行和命令行执行&#xff0c;而要使用pytest-html生成报告&#xff0c;只需要在执行时加…

不小心删除了重要文档?试试这10个工具,成功率高达99%!

微软于今年早些时候发布了下一版本的 Windows 操作系统 Windows 11。测试版已经推出&#xff0c;而稳定版本将于今年晚些时候推出。很多Windows爱好者已经安装了Windows版。毫无疑问&#xff0c;测试版让用户体验了Windows的新功能。然而&#xff0c;测试版中也出现了很多未知的…

mybatis注解方式动态标签时有特殊符号,出现元素内容必须由格式正确的字符数据或标记组成

原始代码demo Select("SELECT COUNT(1) FROM AAAA WHERE name #{nage} AND age< 4") public Integer sumXxxxx(String nage, String age);现需求改为nage可以为空&#xff0c;因此使用了动态拼接 Select("<script> SELECT COUNT(1) FROM AAAA WHERE …

Windows | 模仿网易云任务栏实现自定义按钮及缩略图

前言 最近更新网易云发现任务栏按钮中除了播放相关的按钮&#xff0c;多了一个喜欢的按钮&#xff1a; 之前我一直以为网易云任务栏的按钮只是 Windows 为音乐软件专门提供的&#xff0c;于是我又看了一眼系统自带的播放器&#xff0c;发现并没有爱心按钮&#xff1a; 这时我就…

基于5G+物联网+SaaS+AI的农业大数据综合解决方案:PPT全文44页,附下载

关键词&#xff1a;智慧农业大数据&#xff0c;5G智慧农业&#xff0c;物联网智慧农业&#xff0c;SaaS智慧农业&#xff0c;AI智慧农业&#xff0c;智慧农业大数据平台 一、智慧农业大数据建设背景 1、应对全球人口快速增长带来的粮食生产压力&#xff0c;未来的粮食生产力必…

【C++】:多态

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关多态的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…

Python Opencv实践 - 全景图片拼接stitcher

做一个全景图片切片的程序Spliter 由于手里没有切割好的全景图片资源&#xff0c;因此首先写了一个切片的程序spliter。 如果有现成的切割好的待拼接的切片文件&#xff0c;则不需要使用spliter。 对于全景图片的拼接&#xff0c;需要注意一点&#xff0c;各个切片图片之间要有…

什么是机器学习

前言 机器学习&#xff08;Machine Learning, ML&#xff09;是一个总称&#xff0c;用于解决由各位程序员自己基于 if-else 等规则开发算法而导致成本过高的问题&#xff0c;想要通过帮助机器 「发现」 它们 「自己」 解决问题的算法来解决 &#xff0c;而不需要程序员将所有…

影响语音芯片识别率的因素概述

语音芯片识别率是指芯片对人类语音信号的识别能力。在实际应用中&#xff0c;语音芯片识别率的高低直接影响了用户对芯片的体验和满意度。因此&#xff0c;提高语音芯片识别率是当前语音技术领域的重要任务之一。 1.、语音芯片的硬件设计&#xff1a;设计良好的芯片可以更好地…

竹云参编《公共数据授权运营平台技术要求》团体标准正式发布

2023年11月23日&#xff0c;第二届全球数字贸易博览会“数据要素治理与市场化论坛”于杭州成功召开&#xff0c;国家数据局党组书记、局长刘烈宏&#xff0c;浙江省委常委、常务副省长徐文光出席会议并致辞。会上&#xff0c;国家工业信息安全发展研究中心发布并解读了我国首部…

大厂前沿技术导航

百度Geek说 - 知乎 腾讯技术 - 知乎 美团技术团队

Java 项目中常用注解汇总!! (自整理)

Spring框架的注解 PostMapping("/getDetails") post请求 映射到接口 RequestBody 用来接收HTTP请求体中参数 GetMapping("/getDetails") get请求 映射到接口 RequestParam 用来接收URL中的查询参数 PutMappi…

Tomcat 配置

1&#xff1a; 打开 2&#xff1a;选择版本号&#xff0c;我这边是 1.7 3&#xff1a;添加 web 4: 添加jar包 5&#xff1a;添加 6&#xff1a;添加 Tomcat

逆矩阵相关性质与例题

1.方阵的行列式&#xff1a;就是将方阵中的每一个元素转换至行列式中。 1.性质一&#xff1a;转置方阵的行列式等于转置前的行列式。&#xff08;对标性质&#xff1a;行列式与它的转置行列式相等&#xff09; 2.性质二&#xff1a;|ka||a|*k的n次方&#xff0c;n为方阵阶数。 …

平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析

Kubernetes 在生产环境中的复杂性已经成为常态&#xff0c;在2023年这个平台工程盛行的时代&#xff0c;容器管理的最大亮点可能在于其灵活性&#xff0c;然而在运维政策和治理等方面仍然存在诸多挑战。八年过去了&#xff0c;在生产环境中使用 Kubernetes 仍然需要面临许多挑战…

目前比较好用的护眼台灯,小学生适合的护眼台灯推荐

随着技术的发展&#xff0c;灯光早已成为每家每户都需要的东西。但是灯光不好可能会对眼睛造成伤害是很多人没有注意到的。现在随着护眼灯产品越来越多&#xff0c;市场上台灯的选择越来越多样化&#xff0c;如何选择一个对眼睛无伤害、无辐射的台灯成为许多家长首先要考虑的问…

mysql:修改密码的几种方式

背景 当我们 brew install mysql 新安装 mysql 的时候&#xff0c;是没有密码的&#xff0c;我们可以直接通过 mysql -u root 连接上。但是密码还是要设置的&#xff0c;一是为了安全&#xff0c;二是有些数据库软件如 Sequel 连接都是必须要密码的&#xff0c;接下来我们来看…

自监督LIGHTLY SSL教程

Lightly SSL 是一个用于自监督学习的计算机视觉框架。 github链接&#xff1a;GitHub - lightly-ai/lightly: A python library for self-supervised learning on images. Documentation&#xff1a;Documentation — lightly 1.4.20 documentation 以下内容主要来自Documen…