虚拟化技术概述

  • 一、计算机系统虚拟化定义
  • 1.1 物理机向虚拟机演进过程
  • 1.2 计算机系统虚拟化定义
  • 二、虚拟化技术分类
  • 2.1 虚拟化管理程序 Hypervisor(VMM)
  • 2.2 虚拟化管理程序 Hypervisors作用
  • 2.3 虚拟化管理程序Hypervisors分类
  • 2.3.1 半虚拟化(Hypervisor Type I)
  • 2.3.2 硬件辅助全虚拟化(HypervisorTyep II)
  • 2.3.3 软件全虚拟化(Hypervisor Type III)
  • 2.3.4 操作系统虚拟化
  • 三、虚拟化技术管理工具
  • 四、虚拟机管理工具 VMware Workstation pro
  • 4.1 安装前准备
  • 4.2 安装Linux操作系统虚拟机
  • 4.2.1 创建虚拟机
  • 4.2.2 安装操作系统
  • 4.3 VMware Workstation虚拟机网络设置
  • 4.4 VMware Workstation虚拟机系统安全设置及更新
  • 4.4.1 关闭防火墙
  • 4.4.2 关闭SELINUX
  • 4.4.3 更新系统
  • 4.5 VMware Workstation虚拟机快照设置
  • 4.6 VMware Workstation Pro模板机
  • 4.6.1 新安装的虚拟机硬盘文件注意事项
  • 4.6.2 利用模板机快速创建虚拟机
  • 五、虚拟机管理工具KVM
  • 5.1 KVM系统需求
  • 5.2 安装KVM虚拟机管理工具
  • 5.3 使用virt-manager安装KVM虚拟机
  • 5.3.1 前提准备
  • 5.3.2 KVM虚拟机组成
  • 5.3.3 Linux主机安装
  • 5.3.4 查看已安装的虚拟机



一、计算机系统虚拟化定义

1.1 物理机向虚拟机演进过程

当物理机资源足够某一应用使用,并有多余的富余时,可以把多余的资源提供给其它的应用使用,这时就需要一种计算资源“打包技术”,2001年vmware公司提出来虚拟机,即在一台物理机上运行多个虚拟机,让不同或相同的应用使用虚拟机运行,这就达到了共享一台物理机计算资源的方式。

网络虚拟化nsx 网络虚拟化技术_网络

网络虚拟化nsx 网络虚拟化技术_虚拟化_02

1.2 计算机系统虚拟化定义

计算机系统虚拟化就是对计算机资源的抽像。在物理机中创建软件或虚拟表示形式的应用、服务器、存储和网络,以减少 IT 开销,同时提高效率和敏捷性。

虚拟化可以提高 IT 敏捷性、灵活性和可扩展性,同时大幅节约成本。更高的工作负载移动性、更高的性能和资源可用性、自动化运维 - 这些都是虚拟化的优势,虚拟化技术可以使 IT 部门更轻松地进行管理以及降低拥有成本和运维成本。

二、虚拟化技术分类

2.1 虚拟化管理程序 Hypervisor(VMM)

一种运行在物理机和虚拟机操作系统之间的中间软件层,可以允许多个操作系统和应用共享硬件,即虚拟机监视器,也可称之为VMM。

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_03

2.2 虚拟化管理程序 Hypervisors作用

Hypervisor是所有虚拟化技术的核心。 非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。

Hypervisors是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,而且在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。

2.3 虚拟化管理程序Hypervisors分类

目前市场上各种x86 管理程序(hypervisor)的架构存在差异,三个最主要的架构类别包括:

2.3.1 半虚拟化(Hypervisor Type I)

虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”型。
裸机型在虚拟化中Hypervisor直接管理调用硬件资源,不需要底层操作系统,也可以将Hypervisor看作一个很薄的操作系统。这种方案的性能处于主机虚拟化与操作系统虚拟化之间。

例如:Xen

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_04

网络虚拟化nsx 网络虚拟化技术_服务器_05

2.3.2 硬件辅助全虚拟化(HypervisorTyep II)

虚拟机运行在传统操作系统(HOST OS)上,同样创建的是硬件全仿真实例,被称为“托管(宿主)”型。托管型/主机型Hypervisor运行在基础操作系统上,构建出一整套虚拟硬件平台(CPU/Memory/Storage/Adapter),使用者根据需要安装新的操作系统和应用软件,底层和上层的操作系统可以完全无关化,如Windows运行Linux操作系统。主机虚拟化中VM的应用程序调用硬件资源时需要经过:VM内核->Hypervisor->主机内核,因此相对来说,性能是三种虚拟化技术中最差的。

例如:kvm

网络虚拟化nsx 网络虚拟化技术_虚拟化_06

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_07

2.3.3 软件全虚拟化(Hypervisor Type III)

所谓的软件全虚拟化,即非硬件辅助全虚拟化,模拟CPU让VM使用,效率低,例如:QEMU

2.3.4 操作系统虚拟化

称为轻量级虚拟化,允许操作系统内核拥有彼此隔离和分割的多用户空间实例(instance),这些实例也被称之为容器。其是基于Linux内核中的namespace,cgroup实现

例如:LXC,Docker

网络虚拟化nsx 网络虚拟化技术_服务器_08

三、虚拟化技术管理工具

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_09

四、虚拟机管理工具 VMware Workstation pro

4.1 安装前准备

  • 创建安装目录
  • 准备操作系统ISO镜像文件
  • 虚拟机软件准备

4.2 安装Linux操作系统虚拟机

4.2.1 创建虚拟机

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_10

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_11

网络虚拟化nsx 网络虚拟化技术_虚拟化_12

网络虚拟化nsx 网络虚拟化技术_虚拟化_13

网络虚拟化nsx 网络虚拟化技术_服务器_14

网络虚拟化nsx 网络虚拟化技术_网络_15

网络虚拟化nsx 网络虚拟化技术_服务器_16

网络虚拟化nsx 网络虚拟化技术_网络_17

网络虚拟化nsx 网络虚拟化技术_运维_18

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_19

网络虚拟化nsx 网络虚拟化技术_网络_20

网络虚拟化nsx 网络虚拟化技术_服务器_21

网络虚拟化nsx 网络虚拟化技术_网络_22

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_23

网络虚拟化nsx 网络虚拟化技术_网络_24

4.2.2 安装操作系统

网络虚拟化nsx 网络虚拟化技术_网络_25

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_26

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_27

网络虚拟化nsx 网络虚拟化技术_服务器_28

网络虚拟化nsx 网络虚拟化技术_服务器_29

网络虚拟化nsx 网络虚拟化技术_虚拟化_30

网络虚拟化nsx 网络虚拟化技术_服务器_31

网络虚拟化nsx 网络虚拟化技术_服务器_32

网络虚拟化nsx 网络虚拟化技术_虚拟化_33

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_34

网络虚拟化nsx 网络虚拟化技术_网络_35

网络虚拟化nsx 网络虚拟化技术_运维_36

网络虚拟化nsx 网络虚拟化技术_服务器_37

网络虚拟化nsx 网络虚拟化技术_服务器_38

网络虚拟化nsx 网络虚拟化技术_运维_39

网络虚拟化nsx 网络虚拟化技术_虚拟化_40

网络虚拟化nsx 网络虚拟化技术_服务器_41

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_42

网络虚拟化nsx 网络虚拟化技术_运维_43

网络虚拟化nsx 网络虚拟化技术_服务器_44

网络虚拟化nsx 网络虚拟化技术_虚拟化_45

网络虚拟化nsx 网络虚拟化技术_服务器_46

网络虚拟化nsx 网络虚拟化技术_运维_47

网络虚拟化nsx 网络虚拟化技术_虚拟化_48

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_49

网络虚拟化nsx 网络虚拟化技术_网络_50

网络虚拟化nsx 网络虚拟化技术_服务器_51

网络虚拟化nsx 网络虚拟化技术_运维_52

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_53

4.3 VMware Workstation虚拟机网络设置

网络虚拟化nsx 网络虚拟化技术_运维_54

网络虚拟化nsx 网络虚拟化技术_服务器_55

  • 虚拟机配置操作
# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
# cat /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="c8838cc3-83d3-45fb-8ddd-863e5f6c7c2c"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.10.130"
PREFIX="24"
GATEWAY="192.168.10.2"
DNS1="119.29.29.29"

网络虚拟化nsx 网络虚拟化技术_虚拟化_56

  • 重启网络
systemctl restart network
ip a s ens33

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:2d:2e:6b brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.130/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::81a2:2c89:8b27:a756/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
  • ping网关,检查网络连通性
ping 192.168.10.2

PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
64 bytes from 192.168.10.2: icmp_seq=1 ttl=128 time=0.186 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=128 time=0.369 ms
64 bytes from 192.168.10.2: icmp_seq=3 ttl=128 time=0.145 ms
  • ping互联网服务器,检查网络连通性
ping -c 4 www.baidu.com

PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=11.7 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=128 time=11.6 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=128 time=12.1 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=4 ttl=128 time=11.6 ms

--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 11.629/11.778/12.118/0.239 ms

4.4 VMware Workstation虚拟机系统安全设置及更新

4.4.1 关闭防火墙

# 关闭防火墙
systemctl stop firewalld
# 设置防火墙为开机禁用状态
systemctl disable firewalld

4.4.2 关闭SELINUX

#关闭SELINUX后,必须重启系统才能使其修改生效。
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 确认是否关闭
cat /etc/selinux/config

......
SELINUX=disabled
......

4.4.3 更新系统

# 更新系统
yum -y update
# 重启操作系统
reboot

4.5 VMware Workstation虚拟机快照设置

为了防止部署应用过程中多次使用同一环境,可以考虑使用虚拟机快照功能。建议关闭虚拟机后再做快照。

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_57

网络虚拟化nsx 网络虚拟化技术_运维_58

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_59

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_60

4.6 VMware Workstation Pro模板机

在后期应用中,可能会同时需要多台虚拟机,建议使用虚拟机模板机创建虚拟机使用。虚拟机模板机安装完成后,关闭防火墙、关闭SELINUX、更新操作系统即可,不需要配置IP地址,后期使用过程中再设置IP地址。

4.6.1 新安装的虚拟机硬盘文件注意事项

网络虚拟化nsx 网络虚拟化技术_网络_61

4.6.2 利用模板机快速创建虚拟机

网络虚拟化nsx 网络虚拟化技术_运维_62

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_63

网络虚拟化nsx 网络虚拟化技术_运维_64

网络虚拟化nsx 网络虚拟化技术_虚拟化_65

网络虚拟化nsx 网络虚拟化技术_服务器_66

网络虚拟化nsx 网络虚拟化技术_网络_67

网络虚拟化nsx 网络虚拟化技术_网络_68

网络虚拟化nsx 网络虚拟化技术_运维_69

网络虚拟化nsx 网络虚拟化技术_运维_70

网络虚拟化nsx 网络虚拟化技术_网络_71

网络虚拟化nsx 网络虚拟化技术_网络_72

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_73

网络虚拟化nsx 网络虚拟化技术_服务器_74

网络虚拟化nsx 网络虚拟化技术_服务器_75

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_76

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_77

网络虚拟化nsx 网络虚拟化技术_网络_78

五、虚拟机管理工具KVM

5.1 KVM系统需求

  • 官方推荐宿主机硬件需求 Host system requirements
  • 1核心
  • 2G内存
  • 6G硬盘
  • 运行KVM虚拟机需求 KVM hypervisor requirements
[root@localhost ~]# lscpu
虚拟化:           VT-x       #intel虚拟技术
  • 检查CPU是否有以下特性,此特性支持CPU虚拟化
[root@localhost ~]#  egrep 'svm|vmx'  /proc/cpuinfo
vmx
  • 在BIOS中开启虚拟化功能 BIOS Enable Virtualization
  • 不同CPU厂商 CPU虚拟化技术名称
  • Intel CPU: VT-x
  • AMD CPU: AMD -V

5.2 安装KVM虚拟机管理工具

如果需要在vmware workstation 测试环境上安装kvm:

网络虚拟化nsx 网络虚拟化技术_运维_79

  • 管理KVM虚拟机管理工具组件
[root@localhost ~]# yum grouplist
[root@localhost ~]# yum -y groupinstall "虚拟化*"
  • 安装完成后验证libvirtd状态及系统模块是否添加
[root@localhost ~]#systemctl status libvirtd
[root@localhost ~]#lsmod | grep kvm
  • 在firewalld中配置default默认区域中masquerade,以便虚拟机通过连接外网。
[root@localhost ~]# firewall-cmd --permanent --zone=public  --add-masquerade --permanent

#加载配置,使上述配置生效。
[root@localhost ~]# firewall-cmd --reload
  • 通过命令查看虚拟机列表
[root@localhost ~]# virsh list --all

5.3 使用virt-manager安装KVM虚拟机

5.3.1 前提准备

  • 准备iso镜像文件
  • 准备一套系统预备工具 PXE&kickstart || Cobbler(并未使用)

5.3.2 KVM虚拟机组成

  • 磁盘镜像文件 /var/lib/libvirt/images
  • 配置文件 /etc/libvirt/qemu/

5.3.3 Linux主机安装

  • 使用命令 virt-manager打开窗口

网络虚拟化nsx 网络虚拟化技术_服务器_80

网络虚拟化nsx 网络虚拟化技术_网络_81

网络虚拟化nsx 网络虚拟化技术_网络_82

网络虚拟化nsx 网络虚拟化技术_虚拟化_83

网络虚拟化nsx 网络虚拟化技术_运维_84

网络虚拟化nsx 网络虚拟化技术_网络_85

网络虚拟化nsx 网络虚拟化技术_运维_86

网络虚拟化nsx 网络虚拟化技术_网络虚拟化nsx_87

网络虚拟化nsx 网络虚拟化技术_虚拟化_88

网络虚拟化nsx 网络虚拟化技术_服务器_89

网络虚拟化nsx 网络虚拟化技术_网络_90

网络虚拟化nsx 网络虚拟化技术_虚拟化_91

网络虚拟化nsx 网络虚拟化技术_运维_92

5.3.4 查看已安装的虚拟机

# 通过命令查看虚拟机列表
[root@localhost ~]# virsh list --all