部署KVM虚拟化平台笔记

KVM(Kernel-based Virtual Machine)是一种基于Linux内核的虚拟化技术,自Linux 2.6.20版本后就被直接整合到Linux内核中。KVM依托CPU虚拟化指令集(如Intel-VT、AMD-V)实现高性能的虚拟化支持。由于与Linux内核高度整合,KVM在性能、安全性、兼容性、稳定性上都有很好的表现。本文将详细记录部署KVM虚拟化平台的过程。

一、环境准备

1. 虚拟机设置

在BIOS或UEFI中开启CPU虚拟化功能。

修改主机名:

hostnamectl set-hostname kvm

su

2. 系统环境设置

关闭防火墙和SELinux:

systemctl stop firewalld

setenforce 0

将镜像光盘设为自动/永久挂载:

mkdir /mnt

vim /etc/fstab

添加以下行

/dev/cdrom /mnt iso9660 defaults 0 0

mount -a

df -hT

二、安装KVM

1. 安装KVM基本组件

使用YUM安装KVM及相关工具:

yum -y install qemu-kvm

yum -y install qemu-kvm-tools

yum -y install virt-install

yum -y install qemu-img

yum -y install bridge-utils

yum -y install libvirt

yum -y install virt-manager

如果系统没有图形界面,可以安装GNOME桌面环境:

yum groupinstall -y "GNOME Desktop"

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

2. 检测CPU是否支持虚拟化

通过以下命令检测CPU是否支持虚拟化:

cat /proc/cpuinfo | grep vmx # Intel

cat /proc/cpuinfo | grep smv # AMD

3. 开启libvirtd服务

systemctl start libvirtd

systemctl enable libvirtd

三、设置KVM网络

KVM支持两种网络模式:NAT和Bridge。默认是NAT模式,但这里我们使用Bridge模式以允许虚拟机像独立主机一样拥有网络。

1.修改网络接口配置文件,将网络接口设置为桥接模式:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

将DEVICE改为桥接模式

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

NAME=ens33

DEVICE=ens33

ONBOOT=yes

BRIDGE=br0

创建桥接网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-br0

TYPE=Bridge

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

NAME=br0

DEVICE=br0

ONBOOT=yes

IPADDR=192.168.23.201 # 根据实际情况设置

NETMASK=255.255.255.0

GATEWAY=192.168.23.1 # 根据实际情况设置

DNS1=8.8.8.8

DNS2=8.8.4.4

2.重启网络服务:

systemctl restart network

四、部署与管理KVM虚拟机

1. 创建存储池和镜像数据目录

mkdir -p /var/lib/libvirt/images

2. 上传CentOS镜像文件

使用FTP、SCP等工具将CentOS的ISO镜像文件上传到服务器上的某个目录,例如/lrz

3. 制作本地YUM仓库

cd /etc/yum.repos.d/

mkdir bak

mv *.repo bak

vim local.repo

添加以下内容

相关推荐
d111111111d4 分钟前
STM32外设基地址与寄存器偏移地址的深度解析
笔记·stm32·单片机·嵌入式硬件·学习
jlspcsdn18 分钟前
20251222项目练习
前端·javascript·html
行走的陀螺仪41 分钟前
Sass 详细指南
前端·css·rust·sass
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
React 怎么区分导入的是组件还是函数,或者是对象
前端·react.js·前端框架
老王熬夜敲代码1 小时前
解决IP不够用的问题
linux·网络·笔记
LYFlied1 小时前
【每日算法】LeetCode 136. 只出现一次的数字
前端·算法·leetcode·面试·职场和发展
子春一21 小时前
Flutter 2025 国际化与本地化工程体系:从多语言支持到文化适配,打造真正全球化的应用
前端·flutter
polarislove02141 小时前
8.1 时钟树-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件
一灰灰1 小时前
开发调试与生产分析的利器:MyBatis SQL日志合并插件,让复杂日志秒变可执行SQL
chrome·后端·mybatis
QT 小鲜肉1 小时前
【Linux命令大全】001.文件管理之file命令(实操篇)
linux·运维·前端·网络·chrome·笔记