部署KVM虚拟化平台(理论+实战)
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,KVM虚拟机:1.KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linu
千家信息网最后更新 2025年02月08日部署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安全错误
数据库的锁怎样保障安全
factiva数据库报价
中控智能服务器
下列属于专利数据库
肇庆送货单管理软件开发
软件开发网页设计游戏研发
直销软件开发公司公司哪家好
数据库字符集怎么查oracle
软件开发订阅机制
安徽存储服务器机箱定制虚拟主机
登录服务器无响应
服务器查看自己能不能上网
网络技术的授权经营
ibm 服务器 brd
大学生网络安全技术与信息化
ssr服务器渲染节省了哪一步
数据库科目
数据库缺省值快捷键
服务器按量计费
2018校园网络安全周主题
贵州地方文献全文数据库
网络技术ping
网络安全检查考核评分表
广东移动城管软件开发电话
我的世界怎么关掉服务器皮肤
我国药品审评数据库
高考数据库分类
工业级 数据库访问技术
人工智能数据库金矿
成人本科软件开发能进华为吗
浙江工业软件开发定制费用