部署KVM虚拟化平台(理论+实战)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,KVM虚拟机:1.KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linu
千家信息网最后更新 2025年12月02日部署KVM虚拟化平台(理论+实战)
KVM虚拟机:
1.KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一
2.KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization
虚拟化发展过程:
IDC数据中心设备租用 → 提出虚拟化方案,出现OpenVZ → 共享优化出现Xen,提出半虚架构,但是操作复杂 → 进入全虚KVM,不需要和内核接触,只需要安装管理工具
案例概述
1.公司部分Linux服务器利用率不高,为充分利用这些Linux服务器,可以部署KVM,在物理机上运行多个业务系统
2.例如在运行Nginx的服务器.上部署KVM,然后在虚拟机上运行Tomcat
案例前置知识点
KVM虚拟化架构
KVM模块直接整合在Linux内核中

KVM组成:
KVM Driver:
1.虚拟机创建
2.虚拟机内存分配
3.虚拟CPU寄存器读写
4.虚拟CPU运行
QEMU (经过简化与修改):
1.模拟PC硬件的用户控件组件
2.提供I/O设备模型及访问外设的途径
KVM虚拟化三种模式:
1.客户模式(虚拟机)
2.用户模式(工具)
3.内核模式

KVM工作原理:

Demo:
环境准备:
1.需要先添加一块磁盘:大小为20G
2.处理器的设置:虚拟化引擎的选项全部勾
[root@client ~]# cd /dev[root@client dev]# lssda sda1 sda2 sda3 sda4 sda5 sdb #此时有sdb硬盘[root@client dev]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xba1e8e30 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n #输入nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p #输入p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):将使用默认值 41943039分区 1 已设置为 Linux 类型,大小设为 20 GiB命令(输入 m 获取帮助):w #输入w保存退出The partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。[root@client dev]# mkfs /dev/sdb1 #格式化mke2fs 1.42.9 (28-Dec-2013)文件系统标签=OS type: Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks1310720 inodes, 5242624 blocks262131 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=4294967296160 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000Allocating group tables: 完成正在写入inode表: 完成Writing superblocks and filesystem accounting information: 完成[root@client dev]# mkdir /data #创建挂载[root@client dev]# mount /dev/sdb1 /data/[root@client data]# df -hT文件系统 类型 容量 已用 可用 已用% 挂载点/dev/sdb1 ext2 20G 44M 19G 1% /data#此时显示已经挂载#电脑中有CentOS 7镜像文件的文件夹需要进行共享,设置账户Everyone可以进行读取,然后使用smbclient -L查看挂载[root@client data]# smbclient -L //192.168.10.190/Enter SAMBA\root's password:OS=[Windows 10 Home China 18363] Server=[Windows 10 Home China 6.3] Sharename Type Comment --------- ---- ------- database Disk F$ Disk 默认共享 gfs Disk IPC$ IPC 远程 IPC ISO Disk rpm Disk#此时显示ISO文件夹被共享[root@client data]# mount.cifs //192.168.10.190/ISO /mntPassword for root@//192.168.10.190/ISO:[root@client data]# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/sdb1 20G 44M 19G 1% /data//192.168.10.190/ISO 226G 173G 54G 77% /mnt#此时显示文件成功挂载在mnt目录下[root@client data]# cd /mnt/[root@client mnt]# lsCentOS-7-x86_64-DVD-1708.iso安装KVM:
[root@client mnt]# yum list #进行自检[root@client mnt]# yum groupinstall "GNOME Desktop" -y #桌面环境[root@client mnt]# yum install qemu-kvm -y #KVM模块[root@client mnt]# yum install qemu-kvm-tools -y #KVM调试工具[root@client mnt]# yum install virt-install -y #构建虚拟机的命令工具[root@client mnt]# yum install qemu-img -y #qemu组件,创建磁盘,启动虚拟机[root@client mnt]# yum install bridge-utils -y #网络支持工具[root@client mnt]# yum install libvirt -y #虚拟机管理工具[root@client mnt]# yum install virt-manager -y #图像化管理虚拟机[root@client mnt]# egrep '(vmx|svm)' /proc/cpuinfo #查看是否支持虚拟化[root@client mnt]# lsmod | grep kvm #检查KVM是否安装kvm_intel 170086 0kvm 566340 1 kvm_intelirqbypass 13503 1 kvm[root@client mnt]# systemctl start libvirtd[root@client mnt]# systemctl enable libvirtd #开机自启动配置桥接实例:
[root@client mnt]# cd /data/[root@client data]# mkdir vdisk viso[root@client data]# lslost+found vdisk viso[root@client data]# cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso/[root@client data]# ls viso/CentOS-7-x86_64-DVD-1708.iso[root@client data]# cd /etc/sysconfig/network-scripts/[root@client network-scripts]# cp -p ifcfg-ens33 ifcfg-br0[root@client network-scripts]# ifconfigens33: flags=4163 mtu 1500 inet 192.168.18.145 netmask 255.255.255.0 broadcast 192.168.18.255 inet6 fe80::6a0c:e6a0:7978:3543 prefixlen 64 scopeid 0x20 ether 00:0c:29:a4:cb:c7 txqueuelen 1000 (Ethernet) RX packets 6559352 bytes 9624037086 (8.9 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 364406 bytes 30690747 (29.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0......此处省略多行[root@client network-scripts]# vim ifcfg-ens33#在末行按o转下行插入BRIDGE=br0#插入完成后按Esc退出插入模式,输入:wq保存退出[root@client network-scripts]# vim ifcfg-br0TYPE="bridge" #Ethernet改为bridgePROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static" #dhcp改为staticDEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="br0" #ens33改为br0DEVICE="br0" #ens33改为br0ONBOOT="yes"IPADDR=192.168.18.145 #输入ens33的IP地址NETMASK=255.255.255.0 #输入子网掩码GATEWAY=192.168.18.1 #输入网关#修改退出插入模式,输入:wq保存退出[root@client network-scripts]# service network restart #重启网络服务Restarting network (via systemctl): [ 确定 ][root@client network-scripts]# ifconfigbr0: flags=4163 mtu 1500 inet 192.168.18.145 netmask 255.255.255.0 broadcast 192.168.18.255 inet6 fe80::e169:c641:eeea:50f7 prefixlen 64 scopeid 0x20 ether 00:0c:29:a4:cb:c7 txqueuelen 1000 (Ethernet) RX packets 20 bytes 1298 (1.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 35 bytes 4588 (4.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33: flags=4163 mtu 1500 ether 00:0c:29:a4:cb:c7 txqueuelen 1000 (Ethernet) RX packets 6559967 bytes 9624087097 (8.9 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 364793 bytes 30733147 (29.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0......以下省略多行#桥接之后原来ens33的网卡IP到br0上了 回到图形化界面输入:
[root@client ~]# virt-manager 此时会跳出虚拟系统管理器界面,我们需要添加存储池
自定义池名称后点击浏览目录,选择目录为/data/vdisk,查找到我们挂载CentOS7的文件夹目录,点击完成
然后点击添加新卷
添加镜像存储池:iso,点击前进,选择路径为/data/viso
创建完毕后可以点击左上角的文件 → 关闭
在虚拟系统管理器左上角文件选择新建虚拟机
安装操作系统为本地安装,点击前进
使用ISO镜像:点击浏览,选择iso存储池,找到镜像,点击选择卷
再点击前进,内存输入2048,再点击前进
选择或创建自定义存储,点击管理,选择disk存储池,点击之前的卷,点击选择卷
再点击前进,再点击完成,此时会进入Centos7的安装界面:
此时KVM虚拟化部署试验成功!
输入
文件
系统
管理
选择
工具
模式
磁盘
存储
命令
大小
模块
目录
硬件
镜像
支持
服务
运行
内存
内核
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器主流操作系统
延庆区加工软件开发值得推荐
网络安全基础培视频
数据库pdf微盘
如何构建tb级的桌面数据库
爱国主义与网络安全
tw软件开发
软件开发人员任务分解
成安企业万词霸屏需要服务器吗
征途2服务器
加强网络安全工作的技术保障能力
大话西游2服务器庄生梦蝶
数据库查询表结构
存储行业的软件开发咋样
数据库命名db1
猫和老鼠安卓服务器
数据库原理及应用答案 清华
学籍管理系统数据库课设
上海金税卡安全接入服务器地址
项城管理软件开发
山东安卓软件开发报价
团伙网络安全审查办法
代码和数据库放在一台服务器上
画一幅简单的网络安全画
工业网络安全 上市公司
明日之后各个区服务器装备
网络安全公司市场占有率
印度网络技术全球排名
查看自己在数据库中的权限
南通游戏软件开发