CenOS7安装KVM并创建虚拟机


前言


KVM 的全称 Kernel-based Virtual Machine,是指基于内核的虚拟机,它是一个 Linux 系统的一个内核模块,从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中,该内核模块可以使得 Linux 变成了一个 Hypervisor。
那什么又是 Hypervisor 呢?Hypervisor 又称虚拟机监视器(英语:virtual machine monitor,缩写为 VMM),是用来建立与执行虚拟机器的软件、固件或硬件。hypervisor 提供虚拟的作业平台来执行虚拟操作系统,而这些虚拟操作系统可以共享 Hypervisor 所在机器的硬件资源。
那接下来简单说说如何在 CentOS 操作系统中安装 KVM,并如何通过 KVM 再虚拟化创建操作系统。

一、查看操作系统配置情况

1.1查看系统版本

[root@shigj ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

1.2查看CPU是否支持虚拟化

[root@shigj ~]# grep -E 'svm|vmx' /proc/cpuinfo

在这里插入图片描述

1.3查看是否加载KVM

[root@shigj ~]# lsmod | grep kvm
kvm_intel             188740  0 
kvm                   637289  1 kvm_intel
irqbypass              13503  1 kvm

1.4关闭selinux

[root@shigj ~]# setenforce 0
[root@shigj ~]# vim /etc/sysconfig/selinux
SELINUX=disabled

二、安装KVM相关软件包

2.1简介

在这里插入图片描述

2.2安装所需的依赖包

[root@shigj ~]# yum install qemu-kvm qemu-img \
> virt-manager libvirt libvirt-python virt-manager \
> libvirt-client virt-install virt-viewer -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
软件包 10:qemu-kvm-1.5.3-175.el7_9.4.x86_64 已安装并且是最新版本
软件包 10:qemu-img-1.5.3-175.el7_9.4.x86_64 已安装并且是最新版本
软件包 virt-manager-1.5.0-7.el7.noarch 已安装并且是最新版本
软件包 libvirt-4.5.0-36.el7_9.5.x86_64 已安装并且是最新版本
软件包 libvirt-python-4.5.0-1.el7.x86_64 已安装并且是最新版本
软件包 virt-manager-1.5.0-7.el7.noarch 已安装并且是最新版本
软件包 libvirt-client-4.5.0-36.el7_9.5.x86_64 已安装并且是最新版本
软件包 virt-install-1.5.0-7.el7.noarch 已安装并且是最新版本
软件包 virt-viewer-5.0-18.el7.x86_64 已安装并且是最新版本
无须任何处理

2.3启动libvirt并设置开机自启动

[root@shigj ~]# systemctl start libvirtd
[root@shigj ~]# systemctl enable libvirtd

2.4查看机器的存储并创建系统镜像和存储目录

[root@shigj ~]# df -Th
[root@shigj ~]# mkdir /data/iso
[root@shigj ~]# mkdir /data/images

2.5创建物理桥接设备

查看网卡信息
[root@shigj ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.20  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::82fa:5bff:fe32:49cd  prefixlen 64  scopeid 0x20<link>
        ether 80:fa:5b:32:49:cd  txqueuelen 1000  (Ethernet)
        RX packets 2048721  bytes 10159480842 (9.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1803090  bytes 1114460173 (1.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 80:fa:5b:32:49:cd  txqueuelen 1000  (Ethernet)
        RX packets 7911077  bytes 10658996414 (9.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2369461  bytes 1151027323 (1.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1684766  bytes 1141960501 (1.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1684766  bytes 1141960501 (1.0 GiB)
关闭NetworkManager服务
[root@shigj ~]#chkconfig NetworkManager off
[root@shigj ~]#service NetworkManager stop
桥接设备关联网卡
[root@shigj ~]#virsh iface-bridge enp4s0f1 br0
查看是否成功
[root@shigj ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.80fa5b3249cd	yes		enp4s0f1
virbr0		8000.525400aaf2fe	yes		virbr0-nic

三、进行虚拟化部署

3.1本地安装Xmanager(虚拟化界面工具)

3.2进入图形化

[root@shigj ~]# virt-manager

3.3创建虚拟机

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

四、桥接模式(追加内容)

3.1简介

由于本人的实际操作重启宿主机之后网桥无法使用了,又在网络上寻找解决办法,特追加内容,以供日后避开坑道使用
在 QEMU/KVM 的网络使用中,桥接模式可以让虚拟机需物理机共享一个物理网络设备连接外部网络,虚拟机有自己独立的 IP 地址,可以访问外部网络,外部网络也可以访问虚拟机。
优缺点:使用桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话,那桥接模式就不太适用了

3.2桥接模式网络配置步骤

本环境已经安装完毕
[root@shigj ~]# yum install bridge-utils
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.bfsu.edu.cn
软件包 bridge-utils-1.5-9.el7.x86_64 已安装并且是最新版本

3.3加载 tun 和 bridge 模块

[root@shigj ~]# lsmod | grep tun
tun                    36164  3 
[root@shigj ~]# lsmod | grep bridge
bridge                151336  0 
stp                    12976  1 bridge
llc                    14552  2 stp,bridge

3.4创建 brdige

[root@shigj ~]# brctl addbr br0
[root@shigj ~]# brctl addif br0 enp4s0f1
[root@shigj ~]# brctl show br0
bridge name	bridge id		STP enabled	interfaces
br0		8000.80fa5b3249cd	no		enp4s0f1							
[root@shigj ~]# brctl stp br0 on
[root@shigj ~]# brctl show br0
bridge name	bridge id		STP enabled	interfaces
br0		8000.80fa5b3249cd	yes		enp4s0f1	
[root@shigj ~]# ifconfig enp4s0f1
enp4s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::cb75:59e4:4785:118  prefixlen 64  scopeid 0x20<link>
        ether 80:fa:5b:32:49:cd  txqueuelen 1000  (Ethernet)
        RX packets 26294  bytes 3250364 (3.0 MiB)
        RX errors 0  dropped 6  overruns 0  frame 0
        TX packets 71876  bytes 78833976 (75.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@shigj ~]# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether ee:f7:95:49:af:e7  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@shigj ~]# ifconfig enp4s0f1 0 up
[root@shigj ~]# ifconfig br0 up
[root@shigj ~]# dhclient br0
[root@shigj ~]# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.20  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::82fa:5bff:fe32:49cd  prefixlen 64  scopeid 0x20<link>
        ether 80:fa:5b:32:49:cd  txqueuelen 1000  (Ethernet)
        RX packets 12638  bytes 1303940 (1.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 17466  bytes 52983081 (50.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

总结

本文根据网络内容特别整理以供所有人避坑使用
KVM在具备Intel VT或AMD-V功能的x86平台上运行。它也被移植到S/390,PowerPC与IA-64平台上。在Linux内核3.9版中,加入ARM架构的支持。
1)KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
2)是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
3)它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
4)KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
5)KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
6)在主流的Linux内核,如2.6.20以上的内核均已包含了KVM核心。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值