KVM虚拟化平台的搭建

KVM虚拟化平台的搭建

1.KVM原理简介

  • 广义的KVM实际上包含两部分,一部分是基于LINUX内核支持的KVM内核模块,另一部分就是经过简化和修改的Qemu。
    • KWM内核模块模拟处器和内存以支持虚拟机的运行,Qemu主要处理 I/0以及为用户提供一个用户空间工具来进行虛拟机的管理。两者相互结合,相辅相成,构成了一个完整的虚拟化平台。
  • 注意: Qemu本身并不是KVI的一部分,Qemu 是一套完整的虚拟化解决方案,是纯软件实现虚拟化,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟出来的,所以Qemu的性能比较低。

2.KVM运行时的三种模式

  • 客户模式: 可以简单理解成客户机在操作系统运行中的模式,客户模式又分为内核模式和用户模式。
  • 用户模式: 为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O, Qemu 运行在
    这个模式之下。
  • 内核模式: 模拟 CPU 以及内存, 实现客户模式的切换, 处理从客户模式的退出。 KVM 内
    核模块运行在这个模式下

在这里插入图片描述

  • KVM的工作原理

用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVMDriver 为虚
拟机创建虚拟 CPU 和虚拟内存, 然后执行 VMLAU·NCH 指令进入客户模式, 装载 Guest OS 并运行。 Guest OS 运行过程中如果发生中断或者影子缺页等异常, 将暂停 Guest OS 的运行并保
存当前上下文退出到内核模式来处理这些异常。 内核模式处理这些异常时如果不需要 I/O
则处理完成后重新进入客户模式。 如果需要 I/O 则进入到用户模式, 由 Qemu 来处理 I/O,
处理完成后进入内核模式, 再进入客户模式,
在这里插入图片描述

3.KVM虚拟化平台的部署

  • 逻辑架构图

在这里插入图片描述

  • 在VMware Workstation中安装centos7系统注意点
    • 处理器数量:2 每个处理器内核数:2 处理器内核总数:4
    • 虚拟化Intel VT-X 选项√下(打开虚拟机的虚拟化功能)
    • 内存大小为16G 网络NAT模式 声卡和打印机移除(稍作优化) 挂载光盘 硬盘1TB
    • 安装GNOME桌面 点开发工具 分区自动分配 安装操作系统
  • 自动挂载硬盘
[root@localhost ~]# vim /etc/fstab 
/dev/sr0 /mnt iso9660 defaults 0 0	'//尾行添加'
[root@localhost ~]# mount -a
  • 优化ssh服务
[root@localhost ~]# vim /etc/ssh/sshd_config 
UseDNS no	'//取消注释,并将yes改成no'
  • 搭建本地yum仓库
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv * bak
mv: 无法将目录"bak" 移动至自身的子目录"bak/bak" 下
[root@localhost yum.repos.d]# ls
bak
[root@localhost yum.repos.d]# vim kvm.repo
输入以下信息
[kvm]
name=test
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum clean all	'//清空yum仓库'
[root@localhost yum.repos.d]# mount /dev/sr0 /mnt	'//因为没有重启,所以需要手动挂载一下光盘镜像'
[root@localhost yum.repos.d]# yum makecache	'//加载yum数据'
  • 防火墙优化
[root@localhost yum.repos.d]# systemctl stop firewalld.service 
[root@localhost yum.repos.d]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost yum.repos.d]# setenforce 0
[root@localhost yum.repos.d]# vim /etc/selinux/config 
SELINUX=disabled	'//将enforcing修改为disabled'
  • KVM的开局优化完成,优化完成后重启系统
[root@localhost yum.repos.d]# init 6
  • 安装KVM的环境
[root@localhost ~]# yum groupinstall -y "GNOME Desktop"  '//安装 GNOME 桌面环境  如果装了图形界面不需要装了'
[root@localhost ~]# yum -y install qemu-kvm  '//安装KVM 模块'
[root@localhost ~]# yum -y install qemu-kvm-tools    '// KVM 调试工具,可不安装'
[root@localhost ~]# yum -y install virt-install      '//构建虚拟机的命令行工具'
[root@localhost ~]# yum -y install qemu-img     '//qemu 组件,创建磁盘、 启动虚拟机等'
[root@localhost ~]# yum -y install bridge-utils   '//网络支持工具'
[root@localhost ~]# yum -y install libvirt   '//虚拟机管理工具'
[root@localhost ~]# yum -y install virt-manager   '//图形界面管理虚拟机'
[root@localhost ~]# ln -sf /lib/systemd/system/graphical.target
/etc/systemd/system/default.target 
#将系统的默认运行target更改为graphical.targe。重启后系统将进入图形化界面。
[root@localhost ~]# reboot	'//重启'
  • 检查KVM的一些细节
[root@localhost ~]# cat /proc/cpuinfo | grep vmx     '//查看CPU是否支持虚拟化'
[root@localhost ~]# lsmod | grep kvm   '//查看KVM模块是否安装'
kvm_intel             183621  0 
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm
[root@localhost ~]#  systemctl start libvirtd       '//开启libvirtd服务'
[root@localhost ~]#  systemctl enable libvirtd   '//开机启动libvirtd服务'
  • 设置KVM的网络模式为桥接模式
    • 宿主服务器安装完成 KVM, 首先要设定网络, 在 libvirt 中运行 KVM 网络有两种方法:NAT 和 Bridge, 默认是 NAT。
    • 用户模式,即NAT模式,这种方式是默认网络,数据包由NAT方式通过主机的接口进行传输,可以访问外网,但是无法从外部访问虚拟机。
    • 桥接模式 这种模式允许虚拟机像一台独立的主机一样拥有网络, 外部的机器可以直接访问到虚拟机内部, 但需要网卡支持, 一般有线网卡都支持。这里以 Bridge(桥接) 为例。
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO=none	'//原本的修改为none'
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0739b616-18e4-49b1-9a09-f75cc793899b"
DEVICE="ens33"
ONBOOT="yes"
#IPADDR=192.168.233.136
#NETMASK=255.255.255.0
#GATEWAY=192.168.233.2
#DNS1=8.8.8.8
#DNS2=114.114.114.114
BRIDGE=br0	'//注释掉原本的IP地址,添加此处'
  • 新建桥接网卡
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
OTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.233.136
NETMASK=255.255.255.0
GATEWAY=192.168.233.2
'//添加上述内容即可'
[root@localhost ~]# systemctl restart network	'//重启网卡'
  • 创建KVM存储和镜像文件加,并上传镜像
[root@localhost ~]# mkdir -p /data_kvm/iso   '//上传镜像centos 7.6的镜像'
[root@localhost ~]# mkdir -p /data_kvm/store    '//虚拟机存储'
[root@localhost ~]# mount.cifs //192.168.11.1/ccc /abc
Password for root@//192.168.11.1/ccc:  
[root@localhost ~]# cd /abc/Linux/
[root@localhost Linux]# cp CentOS-7-x86_64-DVD-1810.iso /data_kvm/iso/
[root@localhost Linux]# ls /data_kvm/iso/
CentOS-7-x86_64-DVD-1810.iso
[root@localhost Linux]# 
[root@bdqn ~]# virt-manager      '//图形界面敲,打开虚拟系统管理器'
  • 创建存储池

双击打开QEMU/KVM–存储–添加(加号)–填写名称–前进–浏览–其他位置–计算机–data_kvm–store–打开–完成,使用相同方法创建镜像存储池,选择的文件夹是/data_kvm/iso
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 创建存储卷

在这里插入图片描述

  • 创建虚拟机

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

发布了129 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/double_happy111/article/details/105279695