千家信息网

如何配置KVM虚拟化平台

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,前言Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理
千家信息网最后更新 2025年01月23日如何配置KVM虚拟化平台

前言

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

KVM虚拟化架构

•KVM模块直接整合在Linux内核中

KVM的组成

KVM Driver

•虚拟机创建•虚拟机内存分配•虚拟机CPU寄存器读写•虚拟CPU运行 

QEMU(经过简化与修改)

•模拟PC硬件的用户控件组件•提供I/O设备模型及访问外设的途径 

KVM虚拟化三种模式

•客户模式: 虚拟机•用户设置: 设置•内核模式: KVM Driver 内核态

KVM工作原理

实验操作

1、在虚拟机开机前,先在虚拟机上添加一个硬盘,并将硬盘格式化,并挂载到/data/目录下

开启虚拟机的虚拟化

[root@localhost ~]# fdisk -l磁盘 /dev/sdb:107.4 GB, 107374182400 字节,209715200 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x000be35b   设备 Boot      Start         End      Blocks   Id  System/dev/sda1   *        2048    12584959     6291456   83  Linux/dev/sda2        12584960    54527999    20971520   83  Linux/dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris/dev/sda4        62916608    83886079    10484736    5  Extended/dev/sda5        62918656    83886079    10483712   83  Linux[root@localhost ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xc2432934 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):nPartition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): p分区号 (1-4,默认 1):起始 扇区 (2048-209715199,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199):将使用默认值 209715199分区 1 已设置为 Linux 类型,大小设为 100 GiB命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。[root@localhost ~]# [root@localhost ~]# mkfs /dev/sdb1mke2fs 1.42.9 (28-Dec-2013)文件系统标签=OS type: Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks6553600 inodes, 26214144 blocks1310707 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=4294967296800 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,         4096000, 7962624, 11239424, 20480000, 23887872Allocating group tables: 完成                            正在写入inode表: 完成                            Writing superblocks and filesystem accounting information: 完成   [root@localhost ~]# mkdir /data[root@localhost ~]# mount /dev/sdb1 /data/[root@localhost ~]# df -hT文件系统       类型      容量  已用  可用 已用% 挂载点/dev/sda2      xfs        20G  3.3G   17G   17% /devtmpfs       devtmpfs  1.9G     0  1.9G    0% /devtmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shmtmpfs          tmpfs     1.9G  9.0M  1.9G    1% /runtmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup/dev/sda5      xfs        10G   37M   10G    1% /home/dev/sda1      xfs       6.0G  174M  5.9G    3% /boottmpfs          tmpfs     378M   12K  378M    1% /run/user/42tmpfs          tmpfs     378M     0  378M    0% /run/user/0/dev/sdb1      ext2       99G   60M   94G    1% /data[root@localhost ~]# 

2、在宿主机共享所需镜像,并挂载到虚拟机上

[root@localhost ~]# mount.cifs //192.168.100.100/tools /mnt/Password for root@//192.168.100.100/tools:  [root@localhost ~]# 

3、配置KVM必须环境包

[root@localhost ~]# yum groupinstall "GNOME Desktop" -y  ##安装桌面环境[root@localhost ~]# yum install qemu-kvm  -y  ##KVM模块[root@localhost ~]# yum install qemu-kvm-tools -y   ##KVM调试工具[root@localhost ~]# yum install virt-install -y   ##构建虚拟机的命令行工具[root@localhost ~]# yum install qemu-img -y   ##qemu组件,创建磁盘,启动虚拟机[root@localhost ~]# yum install bridge-utils -y   ##网络支持工具[root@localhost ~]# yum install libvirt -y   ##虚拟机管理工具[root@localhost ~]# yum install virt-manager -y   ##图像化管理虚拟机

4、判断cpu是否支持虚拟化。并查看虚拟机模块

[root@localhost ~]# lsmod | grep kvmkvm_intel             170086  0 kvm                   566340  1 kvm_intelirqbypass              13503  1 kvm[root@localhost ~]# 
cat /proc/cpuinfo | grep svm   ##AMD服务器可用cat /proc/cpuinfo | grep vmx   ##inter服务器可用egrep '(vmx|svm)' /proc/cpuinfo   ##两者都可用

5、开启服务,并设置开机自启动

#开启服务[root@localhost ~]# systemctl start libvirtd#开机自启动[root@localhost ~]# systemctl enable libvirtd

6、将所需镜像,将挂载的软件包移动到/data/目录下

[root@localhost ~]# cd /data/#创建两个文件[root@localhost data]# mkdir vdisk viso#复制并调到后台运行[root@localhost data]# cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso &[1] 29318[root@localhost data]# [1]+  完成                  cp -i -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso[root@localhost data]# ls viso/CentOS-7-x86_64-DVD-1708.iso[root@localhost data]# 

7、配置虚拟机的桥接网卡

#进入网卡文件[root@localhost data]# cd /etc/sysconfig/network-scripts/#复制创建br0网卡[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-br0#进入ens33网卡,设置桥接命令[root@localhost network-scripts]# vim ifcfg-ens33##末行添加#桥接命令BRIDGE=br0#配置桥接网卡,将桥接网卡设置为静态的地址[root@localhost network-scripts]# vim ifcfg-br0 TYPE=bridgePROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=br0DEVICE=br0ONBOOT=yesIPADDR=192.168.52.134NETMASK=255.255.255.0GATEWAY=192.168.52.1[root@localhost network-scripts]# systemctl restart network   ##重启网卡[root@localhost network-scripts]# ifconfig     ##查看网卡信息br0: flags=4163  mtu 1500        inet 192.168.52.134  netmask 255.255.255.0  broadcast 192.168.52.255        inet6 fe80::69d9:68eb:e59e:c66f  prefixlen 64  scopeid 0x20        ether 00:0c:29:eb:34:07  txqueuelen 1000  (Ethernet)        RX packets 14  bytes 1274 (1.2 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 29  bytes 4473 (4.3 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33: flags=4163  mtu 1500        ether 00:0c:29:eb:34:07  txqueuelen 1000  (Ethernet)        RX packets 3356082  bytes 4925169168 (4.5 GiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 227829  bytes 18565675 (17.7 MiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

8、进入图形化管理界面

[root@localhost ~]# virt-manager

选择存储,单击选择,进入存储控制界面

选择创建新的存储池,然后输入名称

然后选择前进,然后在里边跳出的页面,单击浏览。进入下列界面

进入选择data目录下的vdisk文件夹,然后选择点击打开

退出界面后点击完成,就完成新的存储池的创建

在data上选择添加新加卷,点击进入后输入名称,并且在下边的存储卷配额上输入要分配的区间大小

跟上边一样的步骤,创建一个iso存储池,在这里选择/data/中的viso/中的/镜像,然后点击打开

然后点击完成,就完成了地址池的添加,查看创建好的存储池,创建好之后,点击文件中的关闭

点击文件,选择生成新的虚拟主机

在上述选择前进,之后,在选择要安装的系统镜像的时候,选择iso中的镜像

镜像选择完成,点击前进

分派内存的大小,一般根据自己的实际内存的大小分派

选择创建自定义存储,选择自己刚才的vdisk中创建的Centos7文件

点击选择,在安装前自定义配置,然后点击完成

在引导选项中,选择主机引导时启动虚拟机

点击开始安装,后边就跟我们安装CentOS的步骤一样了

0