部署KVM虚拟化平台(理论+实战)

KVM虚拟机:

1.KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一

2.KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization

虚拟化发展过程:

IDC数据中心设备租用 → 提出虚拟化方案,出现OpenVZ → 共享优化出现Xen,提出半虚架构,但是操作复杂 → 进入全虚KVM,不需要和内核接触,只需要安装管理工具

案例概述

1.公司部分Linux服务器利用率不高,为充分利用这些Linux服务器,可以部署KVM,在物理机上运行多个业务系统
2.例如在运行Nginx的服务器.上部署KVM,然后在虚拟机上运行Tomcat

案例前置知识点

KVM虚拟化架构

KVM模块直接整合在Linux内核中

<img src="https://img-blog.csdnimg.cn/20191219094458210.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phcnJ5Wmhv,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" style="zoom: 67%;" />

KVM组成:

KVM Driver:

1.虚拟机创建
2.虚拟机内存分配
3.虚拟CPU寄存器读写
4.虚拟CPU运行

QEMU (经过简化与修改):

1.模拟PC硬件的用户控件组件
2.提供I/O设备模型及访问外设的途径

KVM虚拟化三种模式:

1.客户模式(虚拟机)
2.用户模式(工具)
3.内核模式

<img src="https://img-blog.csdnimg.cn/20191219094917435.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phcnJ5Wmhv,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" style="zoom:67%;" />

KVM工作原理:

<img src="https://img-blog.csdnimg.cn/20191219095651288.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phcnJ5Wmhv,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" style="zoom:67%;" />

Demo:

环境准备:

1.需要先添加一块磁盘:大小为20G

2.处理器的设置:虚拟化引擎的选项全部勾

[[email protected] ~]# cd /dev
[[email protected] dev]# ls
sda   sda1   sda2    sda3   sda4   sda5   sdb
#此时有sdb硬盘

[[email protected] dev]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xba1e8e30 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n       #输入n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p       #输入p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w      #输入w保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

[[email protected] dev]# mkfs /dev/sdb1       #格式化
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

[[email protected] dev]# mkdir /data      #创建挂载
[[email protected] dev]# mount /dev/sdb1 /data/
[[email protected] data]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sdb1      ext2       20G   44M   19G    1% /data
#此时显示已经挂载

#电脑中有CentOS 7镜像文件的文件夹需要进行共享,设置账户Everyone可以进行读取,然后使用smbclient -L查看挂载
[[email protected] data]# smbclient -L //192.168.10.190/
Enter SAMBA\root‘s password:
OS=[Windows 10 Home China 18363] Server=[Windows 10 Home China 6.3]

        Sharename       Type      Comment
        ---------       ----      -------
        database        Disk
        F$              Disk      默认共享
        gfs             Disk
        IPC$            IPC       远程 IPC
        ISO             Disk
        rpm             Disk
#此时显示ISO文件夹被共享

[[email protected] data]# mount.cifs //192.168.10.190/ISO /mnt
Password for [email protected]//192.168.10.190/ISO:
[[email protected] data]# df -h
文件系统              容量  已用  可用 已用% 挂载点
/dev/sdb1              20G   44M   19G    1% /data
//192.168.10.190/ISO  226G  173G   54G   77% /mnt
#此时显示文件成功挂载在mnt目录下
[[email protected] data]# cd /mnt/
[[email protected] mnt]# ls
CentOS-7-x86_64-DVD-1708.iso

安装KVM:

[[email protected] mnt]# yum list         #进行自检
[[email protected] mnt]# yum groupinstall "GNOME Desktop" -y      #桌面环境
[[email protected] mnt]# yum install qemu-kvm -y      #KVM模块
[[email protected] mnt]# yum install qemu-kvm-tools -y        #KVM调试工具
[[email protected] mnt]# yum install virt-install -y      #构建虚拟机的命令工具
[[email protected] mnt]# yum install qemu-img -y      #qemu组件,创建磁盘,启动虚拟机
[[email protected] mnt]# yum install bridge-utils -y      #网络支持工具
[[email protected] mnt]# yum install libvirt -y       #虚拟机管理工具
[[email protected] mnt]# yum install virt-manager -y      #图像化管理虚拟机
[[email protected] mnt]# egrep ‘(vmx|svm)‘ /proc/cpuinfo      #查看是否支持虚拟化

[[email protected] mnt]# lsmod | grep kvm     #检查KVM是否安装
kvm_intel             170086  0
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm

[[email protected] mnt]# systemctl start libvirtd
[[email protected] mnt]# systemctl enable libvirtd        #开机自启动

配置桥接实例:

[[email protected] mnt]# cd /data/
[[email protected] data]# mkdir vdisk viso
[[email protected] data]# ls
lost+found  vdisk  viso
[[email protected] data]# cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso/
[[email protected] data]# ls viso/
CentOS-7-x86_64-DVD-1708.iso
[[email protected] data]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp -p ifcfg-ens33 ifcfg-br0
[[email protected] network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.18.145  netmask 255.255.255.0  broadcast 192.168.18.255
        inet6 fe80::6a0c:e6a0:7978:3543  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a4:cb:c7  txqueuelen 1000  (Ethernet)
        RX packets 6559352  bytes 9624037086 (8.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 364406  bytes 30690747 (29.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
......此处省略多行
[[email protected] network-scripts]# vim ifcfg-ens33
#在末行按o转下行插入
BRIDGE=br0
#插入完成后按Esc退出插入模式,输入:wq保存退出
[[email protected] network-scripts]# vim ifcfg-br0
TYPE="bridge"               #Ethernet改为bridge
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"          #dhcp改为static
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="br0"                  #ens33改为br0
DEVICE="br0"                #ens33改为br0
ONBOOT="yes"
IPADDR=192.168.18.145       #输入ens33的IP地址
NETMASK=255.255.255.0       #输入子网掩码
GATEWAY=192.168.18.1        #输入网关
#修改退出插入模式,输入:wq保存退出
[[email protected] network-scripts]# service network restart      #重启网络服务
Restarting network (via systemctl):                        [  确定  ]

[[email protected] network-scripts]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.18.145  netmask 255.255.255.0  broadcast 192.168.18.255
        inet6 fe80::e169:c641:eeea:50f7  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a4:cb:c7  txqueuelen 1000  (Ethernet)
        RX packets 20  bytes 1298 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 4588 (4.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:a4:cb:c7  txqueuelen 1000  (Ethernet)
        RX packets 6559967  bytes 9624087097 (8.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 364793  bytes 30733147 (29.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
......以下省略多行
#桥接之后原来ens33的网卡IP到br0上了

回到图形化界面输入:

[[email protected] ~]# virt-manager 

此时会跳出虚拟系统管理器界面,我们需要添加存储池

自定义池名称后点击浏览目录,选择目录为/data/vdisk,查找到我们挂载CentOS7的文件夹目录,点击完成

然后点击添加新卷

添加镜像存储池:iso,点击前进,选择路径为/data/viso

创建完毕后可以点击左上角的文件 → 关闭

在虚拟系统管理器左上角文件选择新建虚拟机

安装操作系统为本地安装,点击前进

使用ISO镜像:点击浏览,选择iso存储池,找到镜像,点击选择卷

再点击前进,内存输入2048,再点击前进

选择或创建自定义存储,点击管理,选择disk存储池,点击之前的卷,点击选择卷

再点击前进,再点击完成,此时会进入Centos7的安装界面:

此时KVM虚拟化部署试验成功!

原文地址:https://blog.51cto.com/14464303/2460057

时间: 2024-10-01 03:35:32

部署KVM虚拟化平台(理论+实战)的相关文章

Linux之部署KVM虚拟化平台

Linux之部署KVM虚拟化平台 案例需求: 1.安装KVM所需软件,验证. 2.设置KVM网络,将网络设置为桥接模式. 3.使用virt-manager安装linux系统. 4.kvm基本管理的命令 (1)查看虚拟机的状态 (2)虚拟机的关机,强制关机和开机 (3)虚拟机的挂起和恢复 (4)配置虚拟机实例伴随宿主机自动启动 (5)导出虚拟机配置 5.kvm文件管理 (1)将raw格式磁盘转换为qcow2格式 (2)转换后,修改xml配置文件 (3)查看虚拟机磁盘信息 6.虚拟机克隆 7.虚拟机

部署KVM虚拟化平台

防伪码:一场秋雨一场寒,十场秋雨穿上棉. 第四章 部署KVM虚拟化平台 前言:我们在以前学习过vsphere虚拟化平台,安装过esxi5.5,在esxi5.5上安装过虚拟机,使用vcenter管理esxi,从而实现了虚拟机的迁移,备份,高可用等操作,但是安装成本很高,需要购买正版.今天这一章内容是利用linux内核的一个模块kvm,并使用一些辅助工具来搭建虚拟机,完成和esxi类似的操作,实现linux虚拟化.KVM直接整合到了linux内核,因此在性能.安全性.兼容性.稳定性上都有好的表现.我

CentOS7中部署KVM虚拟化平台

CentOS7中部署KVM虚拟化平台 虚拟化介绍 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原来的物理结构,使用户可以灵活管理这些资源,并允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化优势: 减少了服务器的数量,降低了硬件采购成本 资源利用率最大化 降低机房空间.散热.用电消耗的成本 硬件资源可以动态调整,提高了企业IT业务的灵活性 高可用性 在不中断服务的情况下进行物理硬件调整 具备更高效的容灾能力 KVM虚拟化: KVM自从Linux2.6

部署KVM虚拟化平台------搭建

一 .部署KVM虚拟化平台 hyper-v是windows中的虚拟化1.KVM模块直接整合在Linux内核中,kvm是内核模块,虚拟机与kvm模块之间为管理工具2.KVM组成1.KVM Driver---虚拟机创建---虚拟机内存分配---虚拟CPU寄存器读写---虚拟CPU运行 2.QEMU (经过简化与修改)---模拟PC硬件的用户控件组件---提供I/O设备模型及访问外设的途径 二.虚拟化的三种模式 **1.客户模式:典型的虚拟机环境(虚拟网卡.内存.硬盘): 2.用户模式:工具层,下面是

centos7部署KVM虚拟化平台详解

KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持.它与Linux内核高度整合,因此在性能.安全性.兼容性.稳定性上都有很好的表现.在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程.因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下: 话不多说,开始搭建KVM虚拟化平台: 1.安装: [[email protected] media]

部署 KVM 虚拟化平台

KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持.它与Linux内核高度整合,因此在性能.安全性.兼容性.稳定性上都有很好的表现.在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程.因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下:下面开始安装,在 Centos 的光盘中,已经提供了安装 KVM 所需软件,只需要部署基于光盘镜像的本

CentOS7上部署KVM虚拟化平台

什么是虚拟化 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化的优势 1:减少服务器的数量,降低硬件采购成本.2:资源利用率最大化3:降低机房空间.散热.用电消耗成本.4:硬件资源可动态调整,提高企业IT业务灵活性.5:高可用性6:在不中断服务的情况下进行物理硬件调整.7:降低管理成本.8:具备更高效的灾备能力. ? 操作步骤 在虚拟机里添加一个40G的新磁盘

使用GFS集群部署KVM虚拟化平台(实例!!!)

实验环境 4台GFS节点服务器做GlusterFS集群,提供存储服务给KVM客户端做虚拟化 服务器角色 IP地址 磁盘空间 gfs-node1 192.168.142.152 40G+40G gfs-node2 192.168.142.154 40G+40G gfs-node3 192.168.142.162 40G+40G gfs-node4 192.168.142.163 40G+40G kvm-client 192.168.142.163 40G 第一步:部署GFS节点服务器 1.为四台G

使用GFS集群部署KVM虚拟化平台

实验环境 4台GFS节点服务器做GlusterFS集群,提供存储服务给KVM客户端做虚拟化 服务器角色 IP地址 磁盘空间 gfs-node1 192.168.142.152 40G+40G gfs-node2 192.168.142.154 40G+40G gfs-node3 192.168.142.162 40G+40G gfs-node4 192.168.142.163 40G+40G kvm-client 192.168.142.163 40G 第一步:部署GFS节点服务器 1.为四台G