Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >物理机搭建KVM并与局域网互访(保姆级教程)

物理机搭建KVM并与局域网互访(保姆级教程)

作者头像
互联网-小阿宇
发布于 2022-11-21 13:13:26
发布于 2022-11-21 13:13:26
4.1K00
代码可运行
举报
文章被收录于专栏:互联网-小阿宇互联网-小阿宇
运行总次数:0
代码可运行

物理机搭建KVM并与局域网互访

★KVM简介

1、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

2、KVM的核心组件:

(1)、 kvm.ko内核模块 (kvm.ko)/dev/kvm:工作为hypervisor,在用户空间可通过系统调用ioctl()与内核中的kvm模块交互,从而完成虚拟机的创建、启动、停止、删除等各种管理功能; (2)、 qemu-kvm:用户空间的工具程序 qemu-kvm进程:工作于用户空间,用于实现IO设备模拟;用于实现一个虚拟机实例; (3)libvirt:工具箱用于与主流操作系统虚拟化进行交互工具

  • libvirt是cs架构应用:
  • 客户端:libvirt-client

virt-manager

  • daemon:图像化工具

libvirt-deaemon

3、KVM运行模式

KVM模块load进内存之后,系统的运行模式:

  • 内核模式:GuestOS执行IO类的操作时,或其它的特殊指令操作时的模式;它也被称为“Guest-Kernel”模式;
  • 用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;
  • 来宾模式:GuestOS的用户模式;所有的非IO类请求;

4、KSM机制

扫描物理内存,发现多个虚拟机实例有相同的内存空间,合并成为一个共享内存空间,节省内存。

5、kvm工具集:

  • qemu工具

qemu-kvm:用户空间的工具程序,创建管理虚拟机

qemu-img:是 QEMU 的磁盘管理工具

  • libvirt工具

GUI:virt-manager, virt-viewer:图形化管理 CLI: virsh, virt-install:创建管理虚拟机

  • 集群工具:

libvirtd:管理虚拟机和其他虚拟化功能,比如存储管理,网络管理的软件集合。Libvirt是一个C工具包的虚拟化功能与最新版本的Linux(以及其他操作系统)。主包包含libvirtd服务器虚拟化支持出口。

★ 安装步骤

  • 此次物理机配置

运行内存

磁盘空间

操作系统

32G

2块4T(RAID1阵列)

linux-centos7(桌面版)

1.查看系统版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

2.检查是否开启虚拟化。有VMX或者svm

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat /proc/cpuinfo | egrep 'vmx|svm'

如果返回无数据则无法搭建,虚拟机安装请参考点击 物理机的话安装系统的时候弄桌面版 虚拟机和物理机都建议弄桌面 也方便KVM工具操作

3.查看是否加载kvm

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# lsmod | grep kvm
kvm_intel             183621  4 
kvm                   586948  1 kvm_intel
irqbypass              13503  3 kvm

没有任何输出即为报错

4.安装kvm相关的软件包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer

5.修改配置文件 添加一些优化参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysctl.conf
#末尾添加
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000    65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_nonlocal_bind = 1

为了防止报错

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
net.bridge.bridge-nf-call-ip6tables = 0  找不到
net.bridge.bridge-nf-call-iptables = 0  找不到
net.bridge.bridge-nf-call-arptables = 0  找不到

临时添加模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
modprobe br_netfilter
modprobe  ip_vs_rr

开机自动加载模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat > /etc/rc.sysinit << EOF
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
EOF

cat > /etc/sysconfig/modules/br_netfilter.modules << EOF
modprobe br_netfilter
EOF

chmod 755 /etc/sysconfig/modules/br_netfilter.modules
lsmod |grep br_netfilter

使配置文件生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sysctl -p

6.修改宿主机网络为桥接 如果不设置桥接,后面创建出来的虚拟机不能与局域网内的主机互访 记得把配置文件备份一份 有的默认网卡名叫ens33,有的叫eth0,都可以无所谓

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-em1 /root/ifcfg-em1_backup

再复制出来一份文件叫br0,一会作为桥接网卡

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost network-scripts]# cp ifcfg-em1 ifcfg-br0

修改配置文件如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-em1
#文件内容如下:
TYPE=Ethernet
NAME=em1
UUID=b8730dd7-4855-401c-8ad3-5c009969089c    #UUID用自己机器默认的
DEVICE=em1
ONBOOT=yes
BRIDGE=br0   #这个br0是桥接网卡
#文件内容只需要有以上几个就行,其他的都删除或者注释,否则后面会报错

修改桥接网卡

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-br0
#文件内容如下
TYPE=Bridge                 #桥接
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_AUTOCONF=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
BOOTPROTO=static          #静态IP
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.166      #根据自己使用的网络进行设置
NETMASK=255.255.255.0     #根据自己使用的网络进行设置
GATEWAY=192.168.1.1       #根据自己使用的网络进行设置
DNS1=8.8.8.8              #设置一下DNS要不不能上网
DNS2=114.114.114.114
#文件内容只需要有以上几个就行,其他的都删除或者注释,否则后面会报错

重启网络并重启主机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart network
网络重启之后建议把主机也重启一下
reboot

开机以后可以看一下自己的网络是不是配置成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip a

7.启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# systemctl start libvirtd

8.进入图形华界面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# virt-manager

9.主机导入镜像 位置自定义

10.开始创建KVM虚拟机 点击文件,新建虚拟机。

本地安装介质,前进!

后面我现在没截图 有机会我会完善文章 后面都是图形化操作比较简单

  • 选择镜像
  • 配置运行内存,cpu
  • 配置磁盘空间这个注意一下(这个是根据自己物理机磁盘空间分布情况而定) 默认的位置应该是/var/lib/libvirt,显示我只有50G可用 但是我的4T内存挂载到/home,我想从4T中分给他们用 在选择的时候自己根据目录创建一个卷就行了
  • 设置网络的时候选择桥接网络 (只有使用桥接网络才可以达到与局域网其他主机互访) 应该是桥接br0主机em1

后面就可以启动虚拟机一系列进行系统设置了

虚拟机创建成功以后需要做的

设置一下网络,修改固定ip、添加DNS可以上网 修改文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#我下面只写出需要修改或添加的位置:
BOOTPROTO=static  #修改  
ONBOOT=yes        #修改
#尾部添加 根据自己网络设置
IPADDR=192.168.1.167
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=144.144.144.144

修改好之后重启网络
systemctl restart network

验证: 在虚拟机上试试能不能上网

用同局域网内的主机是否能ping通

成功

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux安装kvm
KVM(Kernel-based Virtual Machine)是一种开源的虚拟化解决方案,允许在 Linux 操作系统上创建虚拟机。在 Linux 上安装 KVM 很简单,本文将为您提供安装 KVM 的详细步骤。
堕落飞鸟
2023/04/03
2.5K0
CentOS 7上安装KVM,并创建虚拟机
安装KVM [root@kvm-centos7 ~]# yum -y install qemu-kvm libvirt virt-install bridge-utils # 确保模块已加载 [root@kvm-centos7 ~]# lsmod | grep kvm kvm_intel 170181 0 kvm 554609 1 kvm_intel irqbypass 13503 1 kvm [root@
菲宇
2019/06/12
1.1K0
CentOS 7上安装KVM,并创建虚拟机
KVM--虚拟化环境安装(一)
Qemu是一个模拟器,它向Guest OS模拟CPU和其他硬件,Guest OS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。
Kevin song
2022/06/07
2K0
KVM--虚拟化环境安装(一)
centos中KVM虚拟化
1.确认 CPU 已经支持虚拟化,intel 的 CPU 虚拟化技术叫 vmx,AMD 的 CPU 叫 svm
@凌晨
2020/05/28
7680
KVM虚拟化平台部署及管理
前言 KVM即Kernel Virtual Machine,最初是由以色列公司Qumranet开发。2007年2月被导入Linux 2.6.20核心中,成为内核源代码的一部分。2008年9月4日,Redhat收购了Qumranet,至此Redhat拥有了自己的虚拟化解决方案,之后便舍弃Xen开始全面扶持KVM,从RHEL6开始KVM便被默认内置于内核中。本文介绍KVM虚拟化平台部署及管理。 KVM简介 KVM特点 KVM必须在具备Intel VT或AMD-V功能的x86平台上运行。KVM包含一个为处理器提供
小小科
2018/05/04
2.7K0
KVM虚拟化平台部署及管理
KVM系列教程(一)安装KVM
本实验环境采用VMware WorkStation 15及RHEL 7.3镜像部署安装。
Weiyang
2020/04/19
2.9K0
KVM系列教程(一)安装KVM
KVM 简介
KVM(Kernel-based Virtual Machine) ,基于内核的虚拟机,配合QEMU(处理器虚拟软件),需要CPU支持虚拟化技术(并且在BIOS里打开虚拟化选项),效率可达到物理机的80%以上。此外,它对SMP的支持很好。
为为为什么
2022/08/06
1.8K0
CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统
笔记内容:CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统 笔记日期:2018-03-07
端碗吹水
2020/09/23
4K0
CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统
KVM简介,安装及常见使用详解
查看状态操作结果,如Active: active (running),说明运行情况良好
用户8851537
2021/07/21
3.5K0
KVM部署篇
KVM 介绍 KVM是以色列初创公司Qumranet开发,2008年9月RedHat公司收购了Qumranet KVM是Linux内核的一个模块,它把Linux内核变成了一个Hypervisor KVM是完全开源的,RedHat基于KVM的虚拟化解决方案叫做RHEV KVM在Linux操作系统里面以进程的形式出现,由标准的Linux调度程序进行调度,这使得KVM能够使用Linux内核的已有功能,只有一个KVM内核模块还不能实现虚拟化的全部功能,就好比操作系统只有内核还不能成为一个完整的操作系统一样 QEMU
老七Linux
2018/05/31
1.6K0
Centos7.4安装kvm虚拟机(使用virt-manager管理)
之前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的做法:
拓荒者
2019/05/25
1.2K0
通过实例来学习使用Linux KVM
KVM是Kernel-based Virtual Machine的缩写,从名字上可以知道,KVM是在支持虚拟化硬件环境上,基于Linux操作系统内核的虚拟化技术。 其上的客户操作系统可以完全虚拟化或者半虚拟化。半虚拟化允许多个客户操作系统在一套硬件上运行,可以更有效的使用系统资源,如:内存,处理器。在半虚拟化中,客户端操作系统被修改得适合在虚拟机上运行,最小化那些不适合在虚拟环境中执行的操作的执行时间。 1. 管理VM的工具 KVM包提供特定的工具来管理虚拟机管理程序qemu-kvm。 不过建议使用li
小小科
2018/05/02
2.2K0
CentOS 7 安装KVM,并创建虚拟机
使用KVM(基于内核的虚拟机)+ QEMU的虚拟化。 需要具有Intel VT或AMD-V功能的CPU。 安装KVM [root@kvm-centos7 ~]# yum -y install q
shaonbean
2018/01/02
2.8K0
CentOS 7 安装KVM,并创建虚拟机
kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)
打算部署kvm虚拟机环境,下面是虚拟化部署前的一些准备工作: 操作系统环境安装 1)修改内核模式为兼容内核启动 [root@ops ~]# uname -a Linux openstack 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@ops ~]#vim /boot/grub/grub.conf ...... default=1        #由默认的0改为1,
洗尽了浮华
2018/01/22
1.6K0
kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)
CentOS7 KVM虚拟化技术
虚拟化:是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互相不影响,从而显著提高计算机的工作效率。
用户9615083
2022/12/25
6200
CentOS7 KVM虚拟化技术
部署 KVM 虚拟化平台
KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持。它与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。 在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下:
小手冰凉
2019/09/10
1.4K0
部署 KVM 虚拟化平台
CentOS7环境下使用Cockpit创建KVM虚拟机
yum -y install qemu-kvm qemu-kvm-tools qemu-img virt-manager libvirt libvirt-python libvirt-client bridge-utils virt-viewer virt-install
yuanfan2012
2019/10/28
5.3K1
CentOS7环境下使用Cockpit创建KVM虚拟机
openstack创建镜像,开启云主机
标题:openstack创建镜像,开启云主机 作者:cuijianzhe 地址:https://solo.cjzshilong.cn/articles/2019/11/07/1573111362693.html
cuijianzhe
2022/06/14
2.2K0
openstack创建镜像,开启云主机
KVM系列教程(一)安装KVM
本实验环境采用VMware WorkStation 15及RHEL 7.3镜像部署安装。
Weiyang
2020/04/20
4.3K0
KVM系列教程(一)安装KVM
CentOS6 最小化安装KVM 详细教程
shaonbean
2018/01/02
1.3K0
CentOS6 最小化安装KVM 详细教程
相关推荐
linux安装kvm
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验