当前位置 : 主页 > 网络编程 > 其它编程 >

KVM虚拟化平台搭建实操+KVM理论详解

来源:互联网 收集:自由互联 发布时间:2023-07-02
文章目录前言一KVM理论1.1概述1.2KVM运行时的三种模式1.3KVM工作原理二KVM虚拟化平台 文章目录 前言 一KVM理论 1.1概述 1.2KVM运行时的三种模式 1.3KVM工作原理 二KVM虚拟化平台实操 2.1安装ce
文章目录前言一KVM理论1.1概述1.2KVM运行时的三种模式1.3KVM工作原理二KVM虚拟化平台

文章目录

  • 前言
  • 一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 实现高性能的虚拟化支持。
一KVM理论

1.1概述

  • 广义的 KVM 实际上包含两部分 一部分是基于 LINUX 内核支持的 KVM 内核模块 另一部

    分就是经过简化和修改的 Qemu。

    • KVM 内核模块模拟处理器和内存以支持虚拟机的运行Qemu 主要处理 I/O 以及为用户提 供一个用户空间工具来进行虚拟机的管理。 两者相互结合 相辅相成 构成了一个完整的虚 拟化平台。
    • 请注意 Qemu 本身并不是 KVM 的一部分 Qemu 是一套完整的虚拟化解决方案 是纯软 件实现虚拟化 包括处理器虚拟化、 内存虚拟化以及各种虚拟设备的模拟 但因为是纯软件 模拟出来的 所以 Qemu 的性能比较低。

1.2KVM运行时的三种模式

  • 客户模式 可以简单理解成客户机在操作系统运行中的模式 客户模式又分为内核模式 和用户模式。

    • 用户模式 为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O Qemu 运行在 这个模式之下。

    • 内核模式 模拟 CPU 以及内存 实现客户模式的切换 处理从客户模式的退出。 KVM 内 核模块运行在这个模式下

  • mark

  • mark

1.3KVM工作原理

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

    mark

2.1安装centos7系统

  • 在VMware软件中新建虚拟机并安装centos7系统
  • 此处比较简单不在赘述

2.2centos7系统开局优化和KVM环境准备

  • centos7系统安装完成后需要勾选上KVM虚拟化功能且网卡选择NAT模式

  • mark

  • 设置镜像光盘自动挂载

    [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

    mark

    mark

    mark

    mark

    mark

  • 创建存储卷

    mark

2.5.1开始创建虚拟机
  • 打开虚拟系统管理器–右击QEMU/KVM–选择新建

    mark

  • 本地安装介质–前进

    mark

  • 选择使用ISO映像–浏览选择刚刚创建的镜像的存储池中的镜像–前进

    mark

  • 配置内存和CPU–前进

    mark

  • 管理–选择刚刚创建的存储池中的存储卷–前进

    mark

  • 点击在安装前自定义配置–选择网络桥接–完成

    mark

  • 点击引导选项–勾选主机引导时启动虚拟机–开始安装–出现提示选择是

    mark

    mark

实操结束

上一篇:ls命令设计思想
下一篇:没有了
网友评论