Centos7安装kvm服务器

2023-05-16

Centos7安装kvm服务器

    • 什么是kvm
      • virt-manager及相关软件简介
      • virt-manger架构及原理
      • KVM
      • QEMU
      • Libvirt
    • 检查硬件是否支持kvm虚拟化
    • 启用嵌套虚拟化(可选)
        • 检查是否启用嵌套虚拟化
        • 热生效嵌套虚拟化(临时启用)
        • 重新加载模块并验证
        • 永久启用嵌套虚拟化功能
        • 虚拟机硬件直通
        • 虚拟机内查看嵌套虚拟化是否成功
    • 安装kvm服务器
        • 安装kvm的所有包(不推荐)
      • 关闭防火墙和SELinux
      • 配置开机自动加载内核
      • 启动libvirt服务
      • 查看是否正确设置了虚拟化
      • 设置kvm命令软链接(可选)
      • 查看kvm版本
      • 查看kvm模块
    • 创建桥接网卡
    • KVM常用目录
    • libvirtd远程管理

什么是kvm

参考: RHEL7部署虚拟化服务器
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/part-deployment
KVMkernel based virtual machine;
意思是基于内核的虚拟机


virt-manager及相关软件简介

virt-manager 是虚拟机管理器(Virtual Machine Manager)应用程序的缩写,也是管理工具的软件包名称。是用于管理虚拟机的图形化的桌面用户接口。其工作流程依赖 libvirt 的 API 实现,能够提供诸如虚拟机生命周期管理,虚拟机CPU,内存,磁盘,网卡,显卡,终端等虚拟资源的管理功能。virsh 是用于管理虚拟化环境中的客户机和 Hypervisor 的命令行工具,与virt-manager 等工具类似,它也是通过 libvirt API 来实现虚拟化的管理。virsh是完全在命令行文本模式下运行的用户态工具,它是系统管理员通过脚本程序实现虚拟化自动部署和管理的理想工具。


virt-manger架构及原理

virt-manager 架构如下图所示:
在这里插入图片描述


KVM

KVM(Kernel-based Virtual Machine, 即内核级虚拟机) 是一个开源的系统虚拟化模块。它使用 Linux 自身的调度器进行管理,KVM 目前已成为学术界的主流 VMM 之一。 它包含一个为处理器提供底层虚拟化可加载的核心模块kvm.ko。kvm 还需要一个经过修改的 QEMU 软件(qemu-kvm),作为虚拟机上层控制和界面。 KVM 的虚拟化需要硬件支持。是基于硬件的完全虚拟化。通过使用 KVM,可以运行多个其本身运行未改动的镜像的虚拟机。


QEMU

QEMU 是个独立的虚拟化解决方案,从这个角度它并不依赖KVM。而KVM是另一套虚拟化解决方案,不过因为这个方案实际上只实现了内核中对处理器虚拟化特性的支持,换言之,它缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具,所以它借用了 QEMU 的代码并加以精简,连同KVM一起构成了另一个独立的虚拟化解决方案,KVM+QEMU。


Libvirt

libvirt 是对虚拟机进行管理的工具和应用程序接口(API),提供如下功能:

  • 1,它提供统一、稳定、开放的源代码的应用程序接口(API)、守护进程(libvirtd)和和一个默认命令行管理工具(virsh)。
  • 2,它提供了对虚拟化客户机和它的虚拟化设备、网络和存储的管理。
  • 3,它提供了一套较为稳定的 C 语言应用程序接口。目前,在其他一些流行的编程语言中也提供了对 libvirt 的绑定,在 Python、Perl、Java、Ruby、PHP、OCaml 等高级编程语言中已经有 libvirt 的程序库可以直接使用。
  • 4,它对多种不同的 Hypervisor 的支持是通过一种基于驱动程序的架构来实现的。libvirt 对不同的 Hypervisor 提供了不同的驱动,包括Xen 的驱动,对QEMU/KVM 有 QEMU 驱动,VMware 驱动等。
  • 5,它作为中间适配层,让底层 Hypervisor 对上层用户空间的管理工具是可以做到完全透明的,因为 libvirt 屏蔽了底层各种 Hypervisor 的细节,为上层管理工具提供了一个统一的、较稳定的接口(API)。

检查硬件是否支持kvm虚拟化

在这里插入图片描述

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-system_requirements-kvm_requirements

# 检查硬件是否支持KVM虚拟化
egrep -c "vmx|svm" /proc/cpuinfo

## 说明:回显 0表示不支持,>=1表示支持

image.png


启用嵌套虚拟化(可选)

参考:RHEL7启用嵌套虚拟化


检查是否启用嵌套虚拟化

# 查看CPU品牌
grep -m 1 'model name' /proc/cpuinfo

image.png

# 检查主机系统中是否有嵌套虚拟化可用
cat /sys/module/kvm_intel/parameters/nested

## intel_CPU查看是否开启嵌套虚拟化
cat /sys/module/kvm_intel/parameters/nested

## AMD_CPU查看是否开启嵌套虚拟化
cat /sys/module/kvm_amd/parameters/nested

0N禁用虚拟化嵌套,1Y开启嵌套虚拟化


热生效嵌套虚拟化(临时启用)

该方法是临时启用,重启后失效
0N禁用虚拟化嵌套,1Y开启嵌套虚拟化

echo "
# intel_CPU临时开启嵌套虚拟化
Y " > /sys/module/kvm_intel/parameters/nested


echo "
# AMD_CPU临时开启嵌套虚拟化
Y " > /sys/module/kvm_amd/parameters/nested

重新加载模块并验证

# 卸载旧的 kvm 内核模块
## intel_CPU内核模块
modprobe -r kvm_intel
# AMD_CPU内核模块
modprobe -r kvm_amd

# 激活嵌套功能--
## 重新加载iniel_CPU模块
modprobe kvm_intel nested=1
## 重新加载AMD_CPU模块
modprobe kvm_amd nested=1

# 结果是Y,透传(嵌套虚拟化)功能开启
cat /sys/module/kvm_intel/parameters/nested

永久启用嵌套虚拟化功能

# 在系统启动时自动开启kvm嵌套虚拟化内核模块
# 在宿主机创建kvm-nested.conf文件
vim /etc/modprobe.d/kvm-nested.conf

# intel_CPU启用嵌套虚拟化功能
options kvm_intel nested=1

# amd_CPU启用嵌套虚拟化功能
options kvm_amd nested=1

虚拟机硬件直通

host-passthrough直接将物理CPU暴露给虚拟机使用,在虚拟机上完全可以看到的就是物理CPU的型号.
这种方式是CPU性能最好的,也可以适用于有些应用检查CPU某些特性;但是虚拟机不能迁移到不同型号的CPU上

# 修改虚拟机配置
virsh edit Vm-Name

将文件中的 custom 改为 host-passthrough

<!-- host-passthrough:直接将物理CPU暴露给vm实例使用 -->
<cpu mode='host-passthrough'/>

虚拟机内查看嵌套虚拟化是否成功

# 重启vm实例
reboot

# 查看vm实例是否成功启用透传成功
lsmod | grep kvm

# 查看VM实例是否支持虚拟化
grep vmx /proc/cpuinfo

安装kvm服务器

参考: RHEL7安装虚拟化软件包组

  • libvirt的作用:虚拟机的管理软件
  • virt-install的作用: 虚拟机实例安装工具
  • virt-clone的作用:虚拟机克隆工具
  • qemu-kvm的作用: 虚拟机磁盘工具
  • acpid服务的作用:通过这个服务来执行电源关闭的动作
# 安装kvm服务器
yum install -y libvirt virt-install qemu-kvm qemu-kvm-tools

# 安装acpid电源管理服务
yum install -y acpid

# 安装virt常用工具
yum install -y virt-top

安装kvm的所有包(不推荐)

有些包一时半会用不上。

# 安装kvm虚拟化套件(大约32个包)
yum install virt* -y
# 或
yum –y install qemu-kvm qemu-kvm-tools libguestfs libguestfs-tools libvirt virt-install bridge-utils virt-viewer virt-top virt-v2v acpid

在这里插入图片描述


关闭防火墙和SELinux

## 永久关闭防火墙
systemctl disable --now firewalld
## 注销firewalld服务
systemctl mask firewalld

# 关闭SELinux
## 立即临时关闭SELinux
setenforce 0
## 永久关闭SELinux
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
## 查看SELinux永久策略是否关闭
grep 'SELINUX=' /etc/selinux/config

配置开机自动加载内核

https://blog.csdn.net/omaidb/article/details/122718636

# 在启动时自动加载virtio-net.ko
echo virtio-net >/etc/modules-load.d/virtio-net.conf

启动libvirt服务

libvirtd服务启动会设置net.ipv4.ip_forward =1

# 开机自启动libvirt服务并现在启动
systemctl enable --now libvirtd

# 为虚拟机提供关闭电源服务
systemctl enable --now acpid.service

查看是否正确设置了虚拟化

# 查看系统虚拟化功能的完整列表
virsh capabilities

# 查看是否正确设置了虚拟化
virt-host-validate

image.png


设置kvm命令软链接(可选)

新版本已经自动将qemu-kvm安装到/usr/bin/目录下

# 创建qemu-kvm的软链接,让用户可以直接通过命令行使用
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

查看kvm版本

https://www.onitroad.com/jc/linux/how-to-check-kvm-qemu-kvm-version-in-linux.html

# 查看kvm版本
yum info qemu-kvm

image.png

# 查看qemu-kvm的版本
qemu-kvm -version

在这里插入图片描述


查看kvm模块

# 查看kvm模块支持
lsmod | grep kvm
## 有下列内容就说明模块正常

在这里插入图片描述


创建桥接网卡

KVM服务器装好后默认是NAT模式,想要指定虚拟机网卡为桥接模式,需要先创建桥接网卡.
https://blog.csdn.net/omaidb/article/details/128792834


KVM常用目录

https://blog.csdn.net/nb_zsy/article/details/107674063

  • /etc/libvirt/storage/*.xml KVM中Storage Pool的定义文件
  • /var/lib/libvirt/images KVM默认查找镜像的地方
  • /var/lib/libvirt/images/ KVM将宿主机的该目录作为默认的Storage Pool
  • /etc/libvirt/libvirtd.conf libvirtd配置文件
  • /etc/libvirt/qemu.conf qemu配置文件

libvirtd远程管理

https://cloud.tencent.com/developer/article/2168916

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Centos7安装kvm服务器 的相关文章

随机推荐

  • COMODO杀毒软件Linux版

    科摩多Linux杀毒软件 CAVL 提供同样出色的防病毒保护 xff0c 同时附带一个额外的完全可配置的反垃圾邮件系统 具有按访问和按需求病毒扫描 xff0c CAVL还采用了基于云计算的对未知文件的分析 xff0c 针对零日恶意软件提供了
  • ubuntu系统下安装windows并引导双系统

    首先 xff0c 感谢wenbusy xff0c 给了我很大的帮助 xff0c 以下部分内容来自于该博主 windows系统安装ubuntu很容易 xff0c 但在ubuntu下如何安装windows构成双系统并成功引导 xff1f 本文来
  • 3.4 小乌龟git使用说明

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 安装二 使用步骤1 设置语言2 添加你的git 用户名和邮箱3 创建git空项目3 1 方法1 本地创建3 2 方法2
  • WinScp连接Win7

    本机安装WinScp 目标Win7安装OpenSSH 下载openSSH https github com PowerShell Win32 OpenSSH releases下载后解压放在C xff1a ProgramFiles目录下设置环
  • DEBIAN_FRONTEND noninteractive参数

    DEBIAN FRONTEND这个环境变量 xff0c 告知操作系统应该从哪儿获得用户输入 如果设置为 noninteractive xff0c 你就可以直接运行命令 xff0c 而无需向用户请求输入 xff08 所有操作都是非交互式的 x
  • RFC3630 - TE Extensions to OSPF Version 2中文

    Traffic Engineering TE Extensions to OSPF Version 2 该标准是RFC2370的更新 标准RFC2370是关于OSPFv2的Opaque LSA的扩展 xff0c 在被更新以后 xff0c 已
  • 【分享】免梯子的chatGPT,玩 ChatGPT 的正确姿势

    火了一周的 ChatGPT xff0c HG 不允许还有小伙伴不知道这个东西是什么 xff1f 简单来说就是 xff0c 你可以让它扮演任何事物 xff0c 据说已经有人用它开始了颜色文学创作 因为它太火了 xff0c 所以 xff0c 本
  • 使用Unity3D Physics来工作

    这个教程将教你如何用Unity3D构建一个小球击倒柴火堆的游戏 xff01 在这个过程中 xff0c 你将了解到关于使用物理引擎的重要性和你这么做后可以减少无数小时的手工动画的时间 继续阅读 xff01 有什么完整的现代游戏引擎会缺少物理引
  • 不想学挖掘机的厨师不是好程序员!

    程序员大部分学历都不高 xff1f 我想是的 xff0c 因为刚开始只要你会敲代码 xff0c 就能挣到钱的 相比于其他行业 xff0c 程序员的工资还是受很多人认可的 xff0c 我就是其中的一员 但是我们想往高处爬 xff0c 显然没有
  • 关于X射线球管的参数

    球管的规格参数包括结构参数和电参数两种 前者指球管结构所决定的各种参数 xff0c 如靶面的倾斜角度 有效焦点 外形尺寸 重量 管壁的滤过当量 阳极转速 工作温度和冷却形式等 电参数是指球管电性能的规格数据 xff0c 如灯丝加热电压和电流
  • [DSA] 决定数字血管造影系统综合性能的关键参数研究

    一 购买数字血管造影系统的目的 xff1a 放射介入学的出现 xff0c 彻底改变了放射学在医学中的地位 xff0c 使放射学不仅能够诊断 xff0c 而且能够治疗 xff0c 并将诊断与治疗有机的结合起来 xff0c 它已渗透到了临床学科
  • 软件的生命周期(软件工程各阶段的工作)

    其实软件工程是一个非常大的概念 xff0c 我们的软件测试也好 xff0c 软件开发也好 xff0c 软件运维也好 xff0c 其实都是属于软件工程的范畴 今天就讲一讲软件工程和我们软件测试相关的一些内容 我们今天三个主要的节点 xff1a
  • 查看磁盘分区UUID的四种方法

    查看磁盘分区 UUID 的四种方法 xff08 Helloblock 写作 xff09 1 使用 dev disk by uuid 目录 root 64 server ls l dev disk by uuid 总用量 0 lrwxrwxr
  • Lodash 核心 lodash

    baseCreate Object create ptoto propertiesObject 不能以名称而去定义该方法的作用 它并不只是为了创建一个对象 其可以理解为 34 创建一个继承了指定对象的对象 34 并且创建后的对象是不存在原型
  • MySql之索引

    索引 1 gt 什么是索引 xff1f 2 gt MySql的查询方式3 gt 索引的实现原理4 gt 索引应用在什么情况下5 gt 索引的创建 删除6 gt 索引的常见失败情况第一种情况即使添加了索引也不走索引的原因 第二种情况第三种情况
  • VNC远程管理配置

    其实配置VNC很简单 xff0c 只要运行vncserver就好了 运行完毕后 xff0c 它会在家目录生成 vnc目录 xff0c 里面最重要的一个文件是Xstartup 然后你可以使用vncviewer yourremotehost i
  • uCOS/FreeRTOS任务创建的两种模式

    在我们使用uCOS FreeRTOS编写代码时 xff0c 首先要面临的一个问题是怎样创建任务并启动整个系统 一般来说 xff0c 我们会有两种不同的方式 这两种方式不仅适用于uCOS FreeRTOS xff0c 同时也适用于其它RTOS
  • 树莓派 —— 配置Windows通过VNC连接树莓派

    VNC简介 VNC Virtual Network Console 是虚拟网络控制台的缩写 它 是一款优秀的远程控制工具软件 xff0c 由著名的 AT amp T 的欧洲研究实验室开发的 VNC 是在基于 UNIX 和 Linux 操作系
  • 测试UDP端口连通性

    测试UDP端口连通性 Linux使用netcat测试udp端口Centos7安装netcat 依赖epel源 netcat常用参数使用netcat创建TCP客户端和服务器使用netcat创建UDP客户端和服务器 windows使用netca
  • Centos7安装kvm服务器

    Centos7安装kvm服务器 什么是kvmvirt manager及相关软件简介virt manger架构及原理KVMQEMULibvirt 检查硬件是否支持kvm虚拟化启用嵌套虚拟化 可选 检查是否启用嵌套虚拟化热生效嵌套虚拟化 临时启