文章目录
- 前言
- 一KVM理论
- 1.1概述
- 1.2KVM运行时的三种模式
- 1.3KVM工作原理
- 二KVM虚拟化平台实操
- 2.1安装centos7系统
- 2.2centos7系统开局优化和KVM环境准备
- 2.3安装KVM
- 2.4设置KVM网络为桥接
- 2.5KVM管理
- 2.5.1开始创建虚拟机
- KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核 它依托 CPU 虚拟化指令集如 Intel-VT、 AMD-V 实现高性能的虚拟化支持。
1.1概述
-
广义的 KVM 实际上包含两部分 一部分是基于 LINUX 内核支持的 KVM 内核模块 另一部
分就是经过简化和修改的 Qemu。
- KVM 内核模块模拟处理器和内存以支持虚拟机的运行Qemu 主要处理 I/O 以及为用户提 供一个用户空间工具来进行虚拟机的管理。 两者相互结合 相辅相成 构成了一个完整的虚 拟化平台。
- 请注意 Qemu 本身并不是 KVM 的一部分 Qemu 是一套完整的虚拟化解决方案 是纯软 件实现虚拟化 包括处理器虚拟化、 内存虚拟化以及各种虚拟设备的模拟 但因为是纯软件 模拟出来的 所以 Qemu 的性能比较低。
1.2KVM运行时的三种模式
-
客户模式 可以简单理解成客户机在操作系统运行中的模式 客户模式又分为内核模式 和用户模式。
-
用户模式 为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O Qemu 运行在 这个模式之下。
-
内核模式 模拟 CPU 以及内存 实现客户模式的切换 处理从客户模式的退出。 KVM 内 核模块运行在这个模式下
-
1.3KVM工作原理
- 用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVMDriver 为虚 拟机创建虚拟 CPU 和虚拟内存 然后执行 VMLAU·NCH 指令进入客户模式 装载 Guest OS 并运 行。 Guest OS 运行过程中如果发生中断或者影子缺页等异常 将暂停 Guest OS 的运行并保 存当前上下文退出到内核模式来处理这些异常。 内核模式处理这些异常时如果不需要 I/O 则处理完成后重新进入客户模式。 如果需要 I/O 则进入到用户模式 由 Qemu 来处理 I/O 处理完成后进入内核模式 再进入客户模式
-
拓扑图
2.1安装centos7系统
- 在VMware软件中新建虚拟机并安装centos7系统
- 此处比较简单不在赘述
2.2centos7系统开局优化和KVM环境准备
-
centos7系统安装完成后需要勾选上KVM虚拟化功能且网卡选择NAT模式
-
设置镜像光盘自动挂载
[rootlocalhost ~]# vim /etc/fstab /dev/sr0 /mnt iso9660 defaults 0 0//尾行添加
-
优化ssh
[rootlocalhost ~]# vim /etc/ssh/sshd_config UseDNS no//取消注释并将yes改成no
-
yum本地仓库搭建
[rootlocalhost ~]# cd /etc/yum.repos.d/[rootlocalhost yum.repos.d]# mkdir bak[rootlocalhost yum.repos.d]# mv * bakmv: 无法将目录"bak" 移动至自身的子目录"bak/bak" 下[rootlocalhost yum.repos.d]# lsbak[rootlocalhost yum.repos.d]# vim abc.repo输入以下信息[abc]nametestbaseurlfile:///mntenabled1gpgcheck0[rootlocalhost yum.repos.d]# yum clean all//清空yum仓库[rootlocalhost yum.repos.d]# mount /dev/sr0 /mnt//因为没有重启所以需要手动挂载一下光盘镜像[rootlocalhost yum.repos.d]# yum makecache//加载yum数据
-
防火墙优化
[rootlocalhost yum.repos.d]# systemctl stop firewalld.service [rootlocalhost 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.[rootlocalhost yum.repos.d]# setenforce 0[rootlocalhost yum.repos.d]# vim /etc/selinux/config SELINUXdisabled//将enforcing修改为disabled
-
已完成所有开局优化重启系统
[rootlocalhost yum.repos.d]# reboot
2.3安装KVM
-
有些是已经安装过的但是下面的安装还是需要在过一遍
[rootlocalhost ~]# yum groupinstall -y "GNOME Desktop" //安装 GNOME 桌面环境 如果装了图形界面不需要装了[rootlocalhost ~]# yum -y install qemu-kvm //安装KVM 模块[rootlocalhost ~]# yum -y install qemu-kvm-tools // KVM 调试工具,可不安装[rootlocalhost ~]# yum -y install virt-install //构建虚拟机的命令行工具[rootlocalhost ~]# yum -y install qemu-img //qemu 组件,创建磁盘、 启动虚拟机等[rootlocalhost ~]# yum -y install bridge-utils //网络支持工具[rootlocalhost ~]# yum -y install libvirt //虚拟机管理工具[rootlocalhost ~]#yum -y install virt-manager //图形界面管理虚拟机[rootlocalhost ~]# reboot//重启
-
注意 在使用 yum 安装完桌面后需要进行一些优化
执行 ln -sf /lib/systemd/system/graphical.target/etc/systemd/system/default.target 命 令 将 系 统 的 默 认 运 行 target 更 改 为graphical.targe。 重启后系统将进入图形化界面。
-
进行一些检查
[rootlocalhost ~]# cat /proc/cpuinfo | grep vmx //查看CPU是否支持虚拟化[rootlocalhost ~]# lsmod | grep kvm //查看KVM模块是否安装kvm_intel 183621 0 kvm 586948 1 kvm_intelirqbypass 13503 1 kvm[rootlocalhost ~]# systemctl start libvirtd //开启libvirtd服务[rootlocalhost ~]# systemctl enable libvirtd //开机启动libvirtd服务
2.4设置KVM网络为桥接
-
宿主服务器安装完成 KVM 首先要设定网络 在 libvirt 中运行 KVM 网络有两种方法 NAT 和 Bridge 默认是 NAT。
- 用户模式 即 NAT 方式 这种方式是默认网络 数据包由 NAT 方式通过主机的接口进行 传送 可以访问外网 但是无法从外部访问虚拟机网络。
- 桥接模式 这种模式允许虚拟机像一台独立的主机一样拥有网络 外部的机器可以直接 访问到虚拟机内部 但需要网卡支持 一般有线网卡都支持。 这里以 Bridge桥接 为例。
-
修改ens33网卡
[rootlocalhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE"Ethernet"PROXY_METHOD"none"BROWSER_ONLY"no"BOOTPROTOnone//原本的修改为noneDEFROUTE"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"#IPADDR192.168.233.136#NETMASK255.255.255.0#GATEWAY192.168.233.2#DNS18.8.8.8#DNS2114.114.114.114BRIDGEbr0//注释掉原本的IP地址添加此处
-
新建桥接网卡
[rootlocalhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0TYPEBridgeOTPROTOstaticDEFROUTEyesPEERDNSyesPEERROUTESyesIPV4_FAILURE_FATALnoIPV6INITyesIPV6_AUTOCONFyesIPV6_DEFROUTEyesIPV6_PEERDNSyesIPV6_PEERROUTESyesIPV6_FAILURE_FATALnoIPV6_ADDR_GEN_MODEstable-privacyNAMEbr0DEVICEbr0ONBOOTyesIPADDR192.168.233.136NETMASK255.255.255.0GATEWAY192.168.233.2//添加上述内容即可[rootlocalhost ~]# systemctl restart network//重启网卡
2.5KVM管理
-
创建KVM存储和镜像文件夹并上传镜像
[rootlocalhost ~]# mkdir -p /data_kvm/iso //上传镜像centos 7.6的镜像[rootlocalhost ~]# mkdir -p /data_kvm/store //虚拟机存储[rootlocalhost ~]# mount.cifs //192.168.11.1/ccc /abcPassword for root//192.168.11.1/ccc: [rootlocalhost ~]# cd /abc/Linux/[rootlocalhost Linux]# cp CentOS-7-x86_64-DVD-1810.iso /data_kvm/iso/[rootlocalhost Linux]# ls /data_kvm/iso/CentOS-7-x86_64-DVD-1810.iso[rootlocalhost Linux]# [rootbdqn ~]# virt-manager //图形界面敲打开虚拟系统管理器
-
创建存储池
双击打开QEMU/KVM–存储–添加加号–填写名称–前进–浏览–其他位置–计算机–data_kvm–store–打开–完成使用相同方法创建镜像存储池选择的文件夹是/data_kvm/iso
-
创建存储卷
2.5.1开始创建虚拟机
-
打开虚拟系统管理器–右击QEMU/KVM–选择新建
-
本地安装介质–前进
-
选择使用ISO映像–浏览选择刚刚创建的镜像的存储池中的镜像–前进
-
配置内存和CPU–前进
-
管理–选择刚刚创建的存储池中的存储卷–前进
-
点击在安装前自定义配置–选择网络桥接–完成
-
点击引导选项–勾选主机引导时启动虚拟机–开始安装–出现提示选择是
实操结束