2021 => KVM架构详解与安装配置 => 小白入门篇2

本文详细解析KVM虚拟化架构,包括硬件、KVM组件、虚拟机创建和管理。介绍了KVM的软件安装步骤,如启用CPU虚拟化、安装相关软件,并展示了通过命令行和Web前端创建虚拟机的过程。还解决了虚拟机与宿主机通信问题,通过配置桥接模式实现网络互通。此外,文章还涵盖了虚拟机安装过程中可能遇到的问题及其解决方案。
摘要由CSDN通过智能技术生成

架构解析

  • KVM架构图解析
  • kvm安装
  • Guest客户机安装
    • Web前端监控页面
    • GUI安装
    • 命令行安装(重点)
    • 问题解决
  • 配置KVM宿主机桥接模式

KVM架构图解析

  • hardware(硬件)
    •  有多个磁盘、CPU
  • KVM.ko
    •  在硬件上安装操作系统内核(Linux Kernel),KVM是作为内核里的一个功能 提供physical drives(物理驱动) => File System(文件系统) Block devices(块设备)
    • 通过物理驱动去使用底层硬件
  • KVM guest(虚拟机)
    •  装上KVM后,创建kvm虚拟机 => 有 多个VCPU(虚拟cpu)、自己的操作系统(KVM内核,同样提供"物理驱动")
    •  在虚拟机上装应用(Applications)
    •  还有iothred(I/O线程)
    •  Vcpu与IO都是通过Hardware emulation(QEMU 硬件模拟设备)与真实硬件进行交互
    • QEMU => 开源的虚拟化软件,被红帽收购,进行优化,可以模拟硬件设备,一台独立运行的操作系统虚拟机 guest就是被模拟出来的
    • 虚拟机就是与QEMU模拟出来的硬件交互,然后QEMU将指令在转义给真正的底层硬件
  • KVM全称 QEMU-KVM
    • 我们虚拟机上也有虚拟磁盘,我们向虚拟机中存东西,真正提供存储的还是底层的硬件设备

---------------KVM 解析----------------

简介: 当新的操作系统在KVM上启动时(通过一个称为KVM的使用程序),它就会成为"宿主机操作系统"的一个"进程" KVM在linux环境中以"主机"的方式运行,不过只要"底层硬件虚拟化支持",能够支持大量的来兵操作系统。

一、KVM 软件安装

🌍 环境:8G真实内存 >6G        16G真实内存 > 12G

开启CPU硬件虚拟化

< 设置 —— 处理器 —— 虚拟化引擎

< 关闭防火墙 selinux

< uname -r 查看内核版本 2.6以上即可

1. 查看CPU是否支持VT虚拟化技术: cat /proc/cpuinfo | grep -E 'vmx|svm'   
                           #vmx(当前CPU支持inter的全虚拟化)  svm(AMD的全虚拟化)
​
2. 清理环境,卸载KVM: yum remove  `rpm -qa | egrep 'qemu|virt|KVM'`  -y
    rm -rf /var/lib/libvirt /etc/libvirt/
​
3. 安装软件:yum install *qemu* *virt* librbd1-devel -y
   软件介绍: 在所谓的KVM技术中,应用到其实只有2个东西:qemu+KVM
       KVM负责cpu虚拟化+内存虚拟化,实现cpu和内存的虚拟化,但KVM不能模拟其他设备
       qemu是模拟IO设备(网卡 磁盘),KVM加上qemu之后就能实现真正意义上的服务虚拟化。
       因为用到上面两,所有一般称为qemu-KVM
       libvirt是调用KVM虚拟化技术的接口用于管理,用libvirt管理更方便。
​
4. 启动服务: systemctl start libvirtd
​
5. 查看KVM加载模块:lsmod | grep kvm

kvm_intel             188688  3
kvm                   636965  21 kvm_intel
irqbypass              13503  3 kvm

二、GuestOS 安装

修改主机名: hostnamectl set-hostname KVM-Server

通过飞机驾驶舱安装和管理虚拟机:(Web前端页面)
1. yum install cockpit -y
2. systemctl start cockpit
3. ss -anpult|grep 9090
4. 网址输入192.168.178.200:9090
5. 登入后输入自己的root账号及密码
通过图形方式安装:GUI =>创建虚拟机VM1
​
1. systemctl  stop cockpit.socker
2. 先准备一个Centos-7X86镜像文件
3. 调出图形界面 :virt-manager    
4. 创建一个新虚拟机:在"Virtual Machine.." > File > New.... > 本地安装 > 选择IOS镜像  > 磁盘最少不低于2个G > 安装 
​
​
#纯文本安装(了解即可)
环境:极端情况-服务器没有图形 客户端也没有图形
#virt-install --connect qemu:///system -n vm6 -r 512 --disk
path=/virhost/vmware/vm6.img,size=7 --os-type=linux --os-variant=rhel6 --
vcpus=1 --network bridge=br0 --location=http://127.0.0.1/rhel6u4 -x
console=ttyS0 --nographics
​
#virt-install --connect qemu:///system -n vm9 -r 2048 --disk
path=/var/lib/libvirt/images/vm9.img,size=7 --os-type=linux --os•variant=centos7.0 --vcpus=1 --location=ftp://192.168.100.230/centos7u3 -x
console=ttyS0 --nographics
​
#解析
--connect => 连接你的系统VMM
-n vm9 => 给虚拟机取个名字
-r 2048 --disk => 2G的磁盘
path => 磁盘镜像的存放路径
size => 磁盘的大小/块数
--os-type => 系统的类型
--os-variant => 系统版本
--vcpus => CPU的数量
--location => 安装路径(将你的镜像挂在到目录上)
-x-console=ttys0  => 安装的终端
​
#注意:1. ⽤这种⽅式安装的操作系统,⼤⼩写会胡乱变化,不影响远程操作
      2. 内存必须2G以上
​

命令行模式安装(重点)

--------------创建一台新的虚拟机VM2-----------------

1. 查看虚拟机的配置文件
[root@kvmserver ~]# ls /etc/libvirt/qemu
networks  VM1.xml #图形化安装的vm1的配置文件
​
2. 查看虚拟机的存储媒介
[root@kvmserver ~]# ls /var/lib/libvirt/images/
VM1.qcow2   #vm1的磁盘镜像文件,后缀自定义
​
3. 创建新的虚拟机VM2,拷贝配置文件与存储文件
[root@kvmserver qemu]# cp -rm /etc/libvirt/qemu/VM1.xml  /etc/libvirt/qemu/VM2.xml 
[root@kvmserver ~]# cp -r /var/lib/libvirt/images/VM1.qcow2 
                     /var/lib/libvirt/images/VM2.qcow2 
​
4. 修改VM2.xml配置文件:vim /etc/libvirt/qemu/VM2.xml 
#找到进行修改
  <name>VM2</name>          #名字要修改不同
  <uuid>d82fa31b-e754-420f-b326-42ae0b90c491</uuid>   #uuid也要修改不同,随便修改一位    
  <memory unit='KiB'>1048576</memory>                 #内存大小可改
  <currentMemory unit='KiB'>1048576</currentMemory>   #当前内存大小,必须与上面一样
      <source file='/var/lib/libvirt/images/VM2.qcow2'/>    #修改磁盘镜像文件名     
      <mac address='52:54:00:76:e9:3f'/>    #Mac地址修改 只能修改后三段 76:e5:3f
     
5.创建虚拟机,配置生效:
[root@kvmserver ~]# virsh define /etc/libvirt/qemu/vm2.xml
​
6. 重启生效:systemctl restart  libvirtd
​
7. 配置路由转发,永久生效: vim /etc/sysctl.conf 
#添加  net.ipv4.ip_forward=1
​
8. 加载参数:sysctl -p
net.ipv4.ip_forward = 1
​

🗡 GuestOS安装问题解决

示例一:用图形安装guest OS的时候卡住
解决手端:升级及更新系统: yum upgrade -y
​
示例二:安装了各种兼容程序之后还是不行
1. 查看是否已安装了包:rpm -q qemu-kvm
2. 查看是否安装了ev包:rpm -q qemu-kvm-ev   #如果有将其删除
3. 查看kvm包是否安装:rpm -qa | grep kvm

三、配置KVM宿主机桥接模式与客户机(虚拟机)

👀现象:qemu创建的客户机guest(虚拟机),有IP,可以ping通外网与其他主机,虚拟机之间也可以互ping

但是虚拟机与宿主机无法通信

🗡 解决给宿主机配置桥接 接口

kvm:
1. 添加桥接配置文件:vim /etc/sysconfig/network-scripts/ifcfg-br0 
TYPE=Bridge   #类型
NAME=br0      #名字
DEVICE=br0
IPADDR=192.168.178.5    #IP地址,自定义 2~254 看自己VMware平台分配了哪个网段
NETMASK=255.255.255.0
GATEWAY=192.168.178.2   #网关
DNS1=192.168.178.2      #DNS解析,与网关一样即可,不配置无法与外网通行
​
2. 修改原有提供网络的接口文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33
#添加
BRIDGE=br0    #指定桥接的名字,与上方一样即可
DEVICE="ens33"  #原有的网络接口名
ONBOOT="yes"    #自启
​
3. 重启网络: systemctl  restart  network
​
4. 查看接口是否启动与加入:
[root@kvmserver network-scripts]# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000c295f24a2   no      ens33  #表明接口ens33已加入br0
​
​
5. 打开虚拟机(guest): virt-manager 
6. 双击自己创建的虚拟机,找到"虚拟网络接口配置"(NIC:.....)
   选择自己刚新建的桥接端口
​
#==================================================
VM1:
1. 修改网络配置文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet   #网络类型
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPADDR=192.168.178.102  #自定义IP
NETMASK=255.255.255.0   
GATEWAY=192.168.178.2   #网关
DNS1=192.168.178.2
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=1f5f8b5b-48f1-4d49-abc7-91a673dd5fc3
DEVICE=eth0     #设备名
ONBOOT=yes      #是否自启
​
2. 重启网络:systemctl restart network
​
3. 测试: ping  www.baidu.com
         ping  192.168.178.5(宿主机的IP)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值