一,云计算概述
云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。
二,虚拟化介绍
1.背景
美国环境保护EPA报告中曾经统计过一组统计数据:EPA研究服务器和数据中心得到能源效率时发现,实际上服务器只有5%的时间在工作的其它时间一直处于休眠状态 ,软件资源是没有硬件资源性能高(稳定和效率)的相同功能
虚拟化技术
通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可以运行不同的操作系统,应用程序都可以在相互独立的空间内运行而相互不影响,从而提高计算机的工作效率
2虚拟化技术实现的方式
在一个操作系统中(win10)模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务(nginx+Tomcat),从而实现一台宿主机搭建一个集群(从整体)
通过软件、应用程序的方式,来实现物理硬件的功能
ensp以软件形式实现物理设备的功能(二层交换机、路由器、三层交换机)
3.虚拟化类型
全虚拟化
将物理硬件资源资源全部通过软件大的方式抽象化(抽象资源),最后进行调用
使用方法:使用hypervisor(VMM)软件,其原理在底层硬件和服务器之间建立一个抽象层,而基于核心的虚拟化是面向linux系统的开源产品hypervisor(VMM)可以捕捉CPU指令,为指令访问硬件控制器和外设充当中介
半虚拟化
需要修改操作系统
直通
直接使用物理硬件资源(需要支持,还不完善)
4.虚拟化的优点和缺点
优点
集中化管理(远程管理、维护)
提高硬件利用率(物理资源利用率低,比如峰值,虚拟化解决了“空闲”容量)
动态调整机器、资源配置(虚拟化把系统的应用程序和服务器硬件分离、提高了灵活性)
高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)
缺点
前期高额费用(初期的硬件支持)
降低硬件利用率(特定场景,比如极度吃资源的应用不一定适合虚拟化)
更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)
实施配置复杂、管理复杂(管理人员运维、排障困难)
一定的限制性(虚拟化技术涉及各种限制,必须与支持、兼容虚拟化的服务器、应用程序及供应商结合使用)
安全性(虚拟化技术自身的安全隐患)
三,KVM架构及原理
KVM虚拟化架构及模式
客户模式(guestOs) :VM中的OS为Guestos
客户机在操作系统中运行的模式,客户机分为内核模式和用户模式,作用如下:
用户模式:
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)
linux内核模式
模拟CPU、 内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下
2.KVM的核心组件
在内核层:将物理资源逻辑分割为虚拟化资源
在抽象层:Qemn组件,会和内核层的KVM进行对接,调用所需的资源
3.KVM工作流程
用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。KVM驱动为虚拟机创建虚拟CPU和虚拟内存,
然后执行VMLAU :NCH指令进入客户模式,装载Guest OS并运行。Guest OS运行过程中如果发生异常,则暂停Guest OS的运行并保存当前状态同时退出到内核模式来处理这些异常。
内核模式处理这些异常时如果不需要I/o则处理完成后重新进入客户模式。如果需要I/o则进入到用户模式,则由Qemu 来处理I/O, 处理完成后进入内核模式,再进入客户模式
四,实验
2,关闭防火强
hostnamectl set-hostname kvm
[root@localhost ~]# su
[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# systemctl disable firewalld
[root@kvm ~]# setenforce 0
[root@kvm ~]# ntpdate ntp1.aliyun.com #时间同步
vim /etc/resolv.conf #添加映射
3.环境优化
vim /etc/ssh/sshd_config
4.制作本地yum 仓库
[root@kvm yum.repos.d]# mkdir bak
[root@kvm yum.repos.d]# mv CentOS-* bak
[root@kvm yum.repos.d]# vim local.repo
[root@kvm yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: local
Cleaning up list of fastest mirrors
Other repos take up 1.0 G of disk space (use --verbose for details)
[root@kvm yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local | 3.6 kB 00:00:00
(1/4): local/group_gz | 166 kB 00:00:00
(2/4): local/filelists_db | 3.2 MB 00:00:00
(3/4): local/primary_db | 3.1 MB 00:00:00
(4/4): local/other_db | 1.3 MB 00:00:00
元数据缓存已建立
[root@kvm yum.repos.d]# vim local.repo
5.安装KVM
[root@kvm yum.repos.d]# yum groupinstall -y "GNOME Desktop" //安装GNOME桌面环境,若装了图形界面可以不需要安装
[root@kvm yum.repos.d]# yum -y install qemu-kvm //安装KVM模块
[root@kvm yum.repos.d]# yum -y install qemu-kvm-tools //安装KVM调试工具,可以不安装
[root@kvm yum.repos.d]# yum -y install virt-install //构建虚拟机的命令行工具
[root@kvm yum.repos.d]# yum -y install qemu-img //gemu组件创建磁盘、启动虚拟机
[root@kvm yum.repos.d]# yum -y install bridge-utils //网络支持工具
[root@kvm yum.repos.d]# yum -y install libvirt //虚拟机管理工具
[root@kvm yum.repos.d]# yum -y install virt-manager //图形界面管理虚拟机
6.设置开启启动界面的显示模式
[root@kvm yum.repos.d]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
7.kvm 网络配置
使用bridge网桥模式进行部署
vim /etc/sysconfig/network-scripts/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=56ae07f6-d0ca-40c4-9450-452d3dfae832
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.189.14 ##注释掉
#NETMASK=255.255.255.0 ##注释掉
#GATEWAY=192.168.189.2 ##注释掉
#DNS1=114.114.114.114 ##注释掉
BRIDGE=br0 ##删除原先地址,设置为网桥模式,关联br0网卡
vim /etc/sysconfig/network-scripts/ifcfg-br0 #创建、编辑桥接网卡
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6PEERDNS=yes
IPV6PEERROUTES=yes
IPV6_ADDR_GEN_MODE=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.189.14
NETMASK=255.255.255.0
GATEWAY=192.168.189.2
8.KVM部署与管理
创建KVM存储和镜像数据的目录、上传centos7 镜像
mkdir -p /data_kvm/iso ##创建KVM存储镜像的目录
mkdir -p /data_kvm/store ##创建存储池的目录
mkdir /abc
cd /abc/ ##上传虚拟机的镜像文件
CentOS-7-x86_64-DVD-1810-7.6.iso ##使用XFTP 7 上传文件
cp -p CentOS-7-x86_64-DVD-1810-7.6.iso /data_kvm/iso/ ##需要确保属主属组是root
9.使用虚拟机系统管理器管理虚拟机
虚拟机操作,输入virt-manager,弹出虚拟系统管理器
[root@kvm ~]# virt-manager