KVM 虚拟化的部署

本文详细介绍了KVM(Kernel-based Virtual Machine)虚拟化技术,包括其组成部分、虚拟化类型、优缺点以及运行模式。通过实验展示了如何在Linux环境中配置KVM,包括创建yum源、安装组件、设置网络和部署虚拟机。实验步骤清晰,便于读者实践操作。
摘要由CSDN通过智能技术生成

一、KVM简介

  • 广义的KVM实际上包含两个部分,一部分是基于Linux内核支持的KVM内核模块,另一部分是经过简化和修改的Qemu
  • KVM内核模块模拟处理器和内存以支持虚拟机的运行,Qemu主要处理I/O以及为用户提供一个用户空间来进行虚拟机的管理。两者相互结合,相辅相成,构成了一个完整的虚拟化平台

二、虚拟化类型

  • 全虚拟化:将物理硬件资源全部通过软件方式抽象化,最后进行调用,使用hypervisor(VMM)软件,其原理是在底层硬件和服务器之间建立一个抽象层。
  • 半虚拟化:物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor作为OS上的一个程序模块运行,并对虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation都属于这个类型
  • 直通:直接使用物理硬件资源(需要支持,还不完善)

三、虚拟化技术的优劣

1、优点:

  • 集中化管理(远程管理、维护)
  • 提高硬件利用率 (物理资源利用率低:例如峰值,虚拟化解决了“空闲”容量)
  • 动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)
  • 高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)

2、劣势:

  • 前期高额费用(初期的硬件支持),才能保证后期的可扩展应用
  • 降低硬件利用率(特定场景:例如极度吃资源的应用不一定适合虚拟化)
  • 更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)
  • 实施配置复杂、管理复杂(管理人员。排障困难)
  • 一定的限制性
  • 安全性(虚拟化技术自身的安全隐患)

四、KVM 运行时的三种模式

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

五、实验

1、实验环境

在这里插入图片描述
查看cpu是否支持虚拟化
在这里插入图片描述
在这里插入图片描述

2、创建本地yum源信息

[root@localhost ~]# vim /etc/fstab  /进入配置,添加永久挂载
/dev/cdrom  /mnt iso9660 defaults 0 0
[root@localhost ~]# mount -a /使配置文件生效
mount: /dev/sr0 写保护,将以只读方式挂载

在这里插入图片描述

[root@localhost ~]# vim /etc/ssh/sshd_config  /修改配置文件,关掉DNS解析
115 UseDNS NO  /取消DNS注释,并改为NO
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv CentOS-* bak
[root@localhost yum.repos.d]# ls
bak
[root@localhost yum.repos.d]# vim epel.repo  /创建本地yum源
[loacl]
name=kvm
baseurl=file:///mnt
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# ls
bak  epel.repo     
 [root@localhost yum.repos.d]# mv epel.repo local.repo
[root@localhost yum.repos.d]# yum clean all && yum repolist  /清楚缓存并加载新的yum源
已加载插件:fastestmirror, langpacks
正在清理软件源: loacl
Cleaning up list of fastest mirrors
Other repos take up 985 M of disk space (use --verbose for details)
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
loacl                                                                     | 3.6 kB  00:00:00     
(1/2): loacl/group_gz                                                     | 166 kB  00:00:00     
(2/2): loacl/primary_db                                                   | 3.1 MB  00:00:00     
源标识                                         源名称                                       状态
loacl                                          kvm                                          4,021
repolist: 4,021
[root@localhost yum.repos.d]# 
         

3、下载kvm所需组件

[root@localhost yum.repos.d]# yum -y install qemu-kvm-tools.x86_64 qemu-kvm virt-install qemu-img bridge-utils libvirt virt-manager
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 10:qemu-kvm-tools-1.5.3-160.el7.x86_64 已安装并且是最新版本 /安装kvm调试工具,可不安装
软件包 10:qemu-kvm-1.5.3-160.el7.x86_64 已安装并且是最新版本 /安装kvm模块
软件包 virt-install-1.5.0-1.el7.noarch 已安装并且是最新版本  /构建虚拟机的命令行工具
软件包 10:qemu-img-1.5.3-160.el7.x86_64 已安装并且是最新版本  /qemu组件,创建磁盘、启动虚拟机
软件包 bridge-utils-1.5-9.el7.x86_64 已安装并且是最新版本  /网络支持工具
软件包 libvirt-4.5.0-10.el7.x86_64 已安装并且是最新版本         /虚拟机管理工具
软件包 virt-manager-1.5.0-1.el7.noarch 已安装并且是最新版本  /图形界面管理虚拟机
无须任何处理
[root@localhost yum.repos.d]# lsmod | grep kvm   /查看kvm模块是否安装
kvm_intel             183621  0  
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm
[root@localhost yum.repos.d]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target   /设置开启启动界面的显示画面

4、设置KVM网络

  • KVM 网络的两张方式:
    ①NAT :默认设置,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
    ②网桥:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持

4.1 使用bridge网桥模式部署

[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=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=0de0f6a2-9f0e-4770-bdaf-62ee8ddb261a
DEVICE=ens33
ONBOOT=yes
CONNECTION_METERED=yes
#IPADDR=192.168.159.180
#NETMASK=255.255.255.0
#GATEWAY=192.168.159.2
BRIDGE=br0
[root@localhost network-scripts]# cat 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.159.180
NETMASK=255.255.255.0
GATEWAY=192.168.159.2

4.2 重启网卡,查看

[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:0c:29:2d:17:fd brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:28:22:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:28:22:17 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:2d:17:fd brd ff:ff:ff:ff:ff:ff
    inet 192.168.159.180/24 brd 192.168.159.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet6 fe80::5b8a:812:2aa5:3275/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

5、KVM的部署与管理

5.1 创建kvm管理目录

[root@localhost ~]# mkdir -p /data_kvm/iso /创建kvm存储镜像的目录
[root@localhost ~]# mkdir -p /data_kvm/store  /创建存储池的目录
[root@localhost ~]# cp CentOS-7-x86_64-DVD-1810-7.6.iso /data_kvm/iso/
[root@localhost ~]# cd /data_kvm/iso
[root@localhost iso]# ls
CentOS-7-x86_64-DVD-1810-7.6.iso
[root@localhost iso]# ll
总用量 4481024
-rw-r--r--. 1 root root 4588568576 820 21:59 CentOS-7-x86_64-DVD-1810-7.6.iso

5.2 创建存储池

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

5.3 创建存储卷

在这里插入图片描述

5.4 创建镜像池

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

5.5 创建虚拟机

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

在这里插入图片描述

选择最小化安装
在这里插入图片描述
在这里插入图片描述

要在CentOS 7上进行KVM虚拟化部署,可以按照以下步骤进行操作: 1. 首先,部署KVM环境。这可以通过安装libvirt、virt和qemu-kvm等软件包来实现。 2. 将CentOS 7的ISO镜像拉入宿主机。这可以通过将ISO镜像文件复制到宿主机上的任意位置来完成。 3. 使用VMM GUI或命令行工具(如virt-install)创建KVM虚拟机。在创建虚拟机时,需要指定虚拟机的名称、内存大小、CPU数量和磁盘路径等参数。 4. 确保虚拟机的网络使用桥接模式,这样虚拟机可以与宿主机和其他虚拟机进行通信。 5. 可以在虚拟机关机状态下创建快照,以便在需要时可以恢复到该状态。这可以通过VMM GUI或命令行工具来完成。 需要注意的是,虚拟机的定义文件通常存储在`/etc/libvirt/qemu/`目录中。如果需要克隆虚拟机,可以复制定义文件并进行相应的修改。 总结起来,CentOS 7 KVM虚拟化部署的步骤包括:部署KVM环境、拉入ISO镜像、创建虚拟机、配置网络和创建快照。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [CentOS部署kvm虚拟化机器](https://blog.csdn.net/weixin_45052781/article/details/125988357)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Centos7 安装KVM](https://blog.csdn.net/justlpf/article/details/126720554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值