计算虚拟化
1.什么是 虚拟化
-
什么是虚拟化:虚拟化是一种技术,将物理设备进行逻辑化,转化成文件夹或文件,实现软硬件解耦
-
好处:
-
提高资源利用率
-
软硬件解耦(具备其他高级特性:HA,DRS,DPM)
-
虚拟机可移植性强
-
-
2.虚拟化
2.1、虚拟化中的概念
2.2、虚拟化类型
-
裸金属型虚拟化(I型):Hypervisor直接调用底层硬件,不需要通过底层操作系统
-
Hypervisor负责管理所有的资源和虚拟环境:VMM承担管理资源,同时向上提供vm用于运行guest os
-
优点:不依赖操作系统,支持多种操作系统,多种应用;
-
缺点:虚拟层内核开发难度大
-
-
宿主型虚拟化(II型):物理资源由主机操作系统管理,实际的虚拟化资源由VMM提供
-
优点:简单,易于实现
-
缺点:安装运行应用程序依赖于主机操作系统对设备的支持,管理开销大,性能消耗较大
-
2.3、特点:
-
分区:虚拟化层为多个虚拟机划分服务器资源,每个虚拟机可以单独运行一个操作系统
-
隔离:通过分区建立的虚拟机之间采用逻辑隔离措施,防止相互影响
-
封装:每个虚拟机的配置都独立存储于物理硬件的 一小组文件中
-
相对硬件独立:封装成文件后,迁移只需迁移配置文件和设备文件复制到另一台主机即可,不需要关心底层硬件是否兼容;
2.4、虚拟机的底层形式文件(磁盘文件、配置文件)
-
磁盘文件 虚拟机啊的磁盘在底层的存放形式,不同的虚拟化的格式
-
配置文件 虚拟机的配置信息(网卡信息、cpu信息、系统的信息)
3.计算虚拟化
3.1、cpu虚拟化 (二进制翻译)
-
CPU虚拟化需要解决两个问题
-
如何模拟CPU指令 (所有敏感指令)
-
敏感指令:可以读写系统关键资源的指令叫做敏感指令。
-
特权指令:决大多数的敏感指令是特权指令,特权指令只能在处理器的最高特权级 (内核态)执行。
-
-
如何让多个VM共享CPU
-
利用与Native操作系统类似的机制—通过定时器中断,在中断触发时陷入VMM,从而根据调度机制进行调度。
-
-
-
CPU虚拟化:硬件–>VMM(虚拟机监视程序)–>Guest os(虚拟机操作系统)–>app
-
当Guest OS执行到特殊指令的时候,系统会切换到VMM,让VMM来处理特殊指令
-
-
经典虚拟化:基于Power pc cpu架构 Power pc cpu架构和传统的X86架构不同的是指令集的不同,有部分指令无法被虚拟化层拦截(X86架构的16条指令),没有通过虚拟化层的转译,硬件无法识别指令从而会引发一些错误,因此CPU虚拟化分为:全虚、半虚、硬虚
-
全虚:将所有指令都收集到虚拟化层进行处理
-
优势:不需要修改Guest os
-
劣势:虚拟化层开销大,从而导致CPU虚拟化的效率不高
-
-
半虚:设计理念是将16条指令,由VMM(虚拟化层)移向Guest OS(虚拟机操作系统)自身 通过主动的方式由Guest OS去处理这些指令,而不是被移交给VMM做处理。在这种设计理念下,就需要修改Guest OS内核。 使其在虚拟化进程中捕捉到特殊指令,并直接通过Guest os内核对CPU进行操作,因为中间少了VMM的虚拟化封装解码等等操作,所以对CPU性能的损耗会非常低从而使虚拟机效率高
-
优点:虚拟化层的开销小
-
劣势:需要修改虚拟机操作系统 因为一般Guet os虚拟机操作系统,是不会直接交给虚拟化层,需要修改Guest os内核(目前支持x86、mips、arm这些内核版本)
-
-
硬虚(硬件辅助虚拟化):Guest OS执行到特殊指令可以直接下达到计算机系统硬件去处理,而不需要通过VMM去处理
-
优点:虚拟化效率最高
-
缺点:需要CPU支持硬件辅助虚拟化 如:Intel基于x86架构的硬件辅助虚拟化技术Intel VT(Intel Virtualization Technology)和Amd的and-v。 内存虚拟化
-
3.2、内存虚拟化
概念: 把物理机的真实物理内存统一管理,包装成多个虚拟机的内存给若干虚拟机使用
-
Native操作系统对内存的认识与管理达成以下两点认识:
-
内存都是从物理地址0开始的
-
内存都是连续的
-
-
内存虚拟化需要解决两个的问题:
-
从物理地址0开始的:物理地址0只有一个,无法同时满足所有客户机从0开始的要求;
-
地址连续:虽然可以分配连续的物理地址,但是内存使用效率不高,缺乏灵活性。
-
-
KVM(基于内核的虚拟机)是一种内建于Linux中的开源虚拟化技术,可将Linux转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟pc机或虚拟机(VM)。 由标准的Linux程序进行调度,并且使用专门的虚拟硬件,如网卡、图形适配器、CPU、内存和磁盘等。 要实现内存虚拟化,让客户机使用一个隔离的、从零开始且具有连续的内存空间,KVM引入一层新的地址空间,即虚拟pc机物理地址空间(GPA)。 这个地址空间并不是真正的物理地址空间,它只是宿主机虚拟地址空间在虚拟PC机地址空间的一个映射。 对虚拟PC机来说,PC机物理地址空间都是从零开始的连续的地址空间,但分布在宿主机上的物理内存来说这并不是连续的
-
虚拟机的虚拟地址到物理机的物理地址的转换:GVA—>GPA—>HVA—>HPA;
-
影子列表:从软件上实现GVA到HPA的转换,有hypervisor将影子列表载入物理内存管理单元(MMU)
-
缺点:技术复杂,内存开销大
-
-
扩展列表(ept)
3.3、I/o虚拟化
I/O设备是可对数据进行输入输出的如:磁盘、网卡 I/o虚拟化分为全虚、半虚、I/o透传
-
全虚:VMM为虚拟机直接模拟出一个与真实设备相似的io设备
-
半虚:建议一个特权级别的虚拟机,Dom0:安装原生驱动和后端驱动;普通虚拟机(DomU):安装前端驱动
-
io透传:直接将原生驱动安装给VM使用
3.4:KVM技术:
基于内核的虚拟机,linux内核模块。II型虚拟化
任意一装有linux操作系统的虚拟机,安装KVM模块之后即变成了Hypervisor
运行模式:
-
Guest Mode(指虚拟机):包含虚拟机的cpu,内存,磁盘等虚拟设备
-
User MOde(用户空间):QEMU运行于该空间,用来模拟执行io操作
-
kernel mode(内核空间):可以操作硬件的空间
组成部分:
-
KVM内核模块:KVM的核心部分,这个部分的主要的功能是初始化cpu,硬件和打开虚拟机模式
-
QEMU:一个通用的开源的使用纯软件技术实现的模拟器,让虚拟机以为自己和硬件进行交互,实际上与虚拟机进行交互的是QEMU,QEMU与硬件进行交互
-
管理工具(Libvirt):用于对接各种的hypervisor
kvm体系架构:
Libvirt管理工具:
io全模拟流程:
io_virtio模拟流程:
网络虚拟化
网络流量:
-
南北流量:流量经过路由
-
东西流量:流量不经过路由
网络的基本概念:
-
IP和MAC:
-
ip互联网协议地址,为计算机网络中主机通信设计的
-
mac,物理地址,硬件地址,用来确定网络设备在网络中的位置
-
-
广播
-
单播
-
路由
-
默认网关:
-
vlan:虚拟局域网,在逻辑上将一个物理的局域网划分为多个逻辑设备的广播域的技术
-
作用:限制广播域、增加安全性,提高网络的健壮性,灵活
-
vlan:端口
-
Access:仅允许一个vlan id通过本接口,该vlan id与本接口的id相同
-
Trunk:允许多个id通过
-
-
vlan最多可以支持4096个vlan网络,vlan不能跨网段同行
物理网络
服务器接入网络的两种方式:
-
TOR:柜顶接入
-
EoR:列头接入
链路聚合:将多个物理接口逻辑成
虚拟网络:
-
桥接: 是工作于二层的虚拟网络设备,功能类似于物理的交换机
-
NAT:
-
虚拟交换机:Open vSwitch(OVS)
-
基于软件实现的开源虚拟以太网交换机
-
作用:传递虚拟机之间的流量,以及实现vm与外界网络的通信
-
为什么要用ovs:
-
状态可移植
-
适应动态网络
-
支持逻辑标签的维护
-
支持硬件支撑
-
-
OVS能够支持多种标准的管理接口和协议,还可以支持跨多个物理服务器的分布式环境。
-
OVS提供了对OpenFlow协议的支持,并且能够与众多开源的虚拟化平台相整合。
分布式虚拟交换机:
-
分布式交换机在所有关联主机之间作为单个虚拟交换机使用。此功能可使虚拟机在跨主机进行迁移时确保其网络配置保持一致。
-
-
-
分布式虚拟交换机在功能上类似于普通的二层交换机。 其中一端与VM的虚拟端口相连,中间是一条虚拟的链路。 另外一端则通过上行链路与主机上的物理网络适配器相连,再与物理交换机相连。 从而连接到各个主机和虚拟机,实现网络互通。
用户态虚拟交换 机: 华为虚拟交换模式: 1. 普通模式:
-
SR-IOV直通模式:物理机需要智能网卡
-
用户态交换模式: 物理机需要智能网卡,EVS
-
网络安全策列
-
二层网络安全策列: 防止用户虚拟机IP和MAC地址仿冒,防止用户虚拟机DHCP Server仿冒。
-
IP和MAC地址绑定
-
DHCP服务隔离
-
-
广播报文抑制:
-
虚拟交换机提供虚拟机虚端口发送方向的广播报文抑制开关,以及抑制阈值设置功能。可以通过开启虚拟机网卡所在端口组的广播包抑制开关设置阈值,减少过量广播报文对二层网络带宽的消耗。
-
管理员可以通过系统Portal,基于虚拟交换机端口组对象,配置报文抑制开关和报文抑制带宽阈值。
-
-
安全组:用户根据虚拟机安全需求创建安全组,每个安全组可以设定一组访问规则
-
用户通过在创建虚拟机时选定要加入的安全组来对自身的虚拟机进行安全隔离和访问控制
-
-
Trunk口:
-
Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
-
trunk端口收报文: 收到一个报文,判断是否有VLAN信息,如果没有则打上端口的PVID,并进行交换转发;如果有判断该trunk端口是否允许该 VLAN的数据进入:如果允许则报文携带原有VLAN标记进行转发,否则丢弃该报文。
-
trunk端口发报文: 比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,否则报文将携带原有的VLAN标记进行转发。
-
存储虚拟化
常见的物理磁盘类型:
机械硬盘HDD:
固态硬盘SSD:
各类硬盘对比
固态硬盘 | SAS | NL-SAS | SATA | |
---|---|---|---|---|
性能 | 非常高 | 高 | 较高 | 较高 |
可靠性 | 一般 | 高 | 较高 | 一般 |
价格 | 很高 | 高 | 较便宜 | 便宜 |
能耗 | 一般 | 高 | 较低 | 较低 |
推荐场景 | 适合数据访问非常大的用户使用 | 适合数据较为离散的高中端用户使用 | 适合较大数据块、业务I/O压力不大的用户使用 | 适合大数据块、业务压力不大的用户使用 |
集中式存储和分布式存储:
-
RAID机制(冗余磁盘阵列)
特点 方式 高效 多块磁盘并行读写 安全 奇偶校验、热备技术
-
RAID技术:(冗余磁盘阵列)
-
高效(多块磁盘并行读写)
-
安全(奇偶校验和热备技术)
-
-
常用的RAID类型
-
RAID0(条带化):多块硬盘逻辑成一块硬盘用(不具备冗余功能)
-
容量不变
-
读写速度提升(所有RAID中读写速度最快的)
-
安全性和一块硬盘一样
-
-
RAID1(镜像):多块硬盘逻辑成一块硬盘用
-
容量减半
-
读写速度不变
-
安全性提升(所有RAID中的安全性最高的)、
-
-
RAID5(独立的数据磁盘与分布式校验块):最少需要三块硬盘
-
每块磁盘只能存储2/3
-
读写速度提升
-
安全性提升
-
-
RAID6:最少需要4块硬盘
-
总结
-
类型 方式 特点 RAID 0 将数据分成两份,两块磁盘并行读写 高效 没有安全机制 RAID 1 将数据备份,分别在两块磁盘写入 安全 不高效 RAID 5 将数据均匀分布 安全、高效 允许坏一块盘,可将数据恢复过来 数据利用率低(2/3) RAID 6 更安全、高效 允许坏2块盘 允许坏2块盘,安全级别更高 利用率低 可组合 RAID 0+RAID 1=RAID 10 同时拥有两种机制特点
-
-
集中式存储类型
块存储:块存储指的是块设备,一切以磁盘形式存在的存储都是块设备,即块存储。块存储强调的是裸磁盘(所有以磁盘形式提供给主机的访问的存储就是块存储)。
文件存储:通俗的理解“块存储+文件系统”打包后,对外提供存储服务。
对象存储:对象存储通俗的说就是基于对象的存储,对象在一个层结构中不会再有层级结构。而文件存储依旧保持传统的文件目录结构层级,当文件层级太深,就会降低速率。
集中式存储按照技术架构分为SAN、NAS
名称 | 中文名称 | 区别1 | 区别2 |
---|---|---|---|
nas存储 | 网络附属存储 | 不能用作非虚拟化存储 | 已有文件系统,在主机上看到的是目录 |
san存储 | 储存区域网络 | 可用 | 向上提供的是裸设备,相当于什么都没有的磁盘 |
最主要的区别:有无文件系统
-
SAN存储:FCSAN、IPSAN
-
FC-SAN 在FC-SAN中,存储服务器上通常配置两个网络接口适配器:一个用于连接业务IP网络的普通网卡(network interface card,NIC),服务器通过该网卡与客户机交互;另一个网络接口适配器是与FC-SAN连接的主机总线适配器(hoat bus adaptor,HBA),服务器通过该适配器与FC-SAN中的存储设备通信。
-
IP-SAN IP-SAN是近年来十分流行的一种网络存储技术。在早期的SAN环境中,数据以块为基本访问单位在光纤通道中传播,即早期的SAN都是 FC-SAN。由于 FC 协议与 IP 协议不兼容,要实现FC-SAN,必须单独采购部署FC-SAN的设备和组件,其高昂的价格、复杂的配置也让众多中小用户望而却步。因此,FC-SAN主要应用于对性能、冗余度和可用性等都有较高要求的中高端存储需求。 为了提高SAN的普及程度和应用范围,并充分利用SAN本身所具备的架构优势,SAN的发展方向开始考虑与已经普及并且相对廉价的IP网络进行融合。因此,使用已有IP网络构架的IP-SAN应运而生,IP-SAN是标准的TCP/IP协议和SCSI指令集相结合的产物,是基于IP网络来实现块级数据存储的方式。
IP-SAN与FC-SAN的区别在于传输协议和传输介质不同。常见的IP-SAN协议有iSCSI、FCIP、iFCP等,其中,iSCSI是发展最快的协议标准,平时我们所说的IP-SAN是指基于iSCSI协议的SAN。
对比FC-SAN,IP-SAN主要有以下几方面的优点:
-
接入标准化。不需要专用的HBA卡和光纤交换机,只需要普通的以太网卡和以太网交换机就可以实现存储和服务器的连接。
-
传输距离远。理论上只要是IP网络可达的地方,就可以使用IP-SAN,而IP网络是目前地球上应用最为广泛的网络。
-
可维护性好。大部分网络维护人员都有IP网络基础,IP-SAN自然比FC-SAN更容易被人接受。另一方面,IP网络维护工具已经非常发达,IP-SAN充分发扬了拿来主义。
-
后续带宽扩展方便。因为iSCSI是承载于以太网的,随着10GB以太网的迅速发展,IP-SAN单端口带宽扩展到10GB已经是发展的必然。
这些优势使得产品的总体拥有成本(TCO)降低,比如建设一个存储系统,总体拥有成本包括需要购买磁盘阵列、接入设备(HBA 和交换机)、人员培训、日常维护、后续扩容、容灾扩展等。IP-SAN因为IP网络的广泛应用优势,可以大幅降低单次采购的接入设备采购成本、减少维护成本,而且后续扩容和网络扩展成本也大幅降低。
IP-SAN和FC-SAN其它方面的对比如下表:
描述 | IP SAN | FC SAN |
---|---|---|
网络速度 | 1Gb、10Gb、40Gb | 4Gb、8Gb、16Gb |
网络架构 | 使用现有IP网络 | 单独建设光纤网络和HBA卡 |
传输距离 | 理论上没有距离限制 | 受到光纤传输距离的限制 |
管理、维护 | 与IP设备一样操作简单 | 技术和管理较复杂 |
兼容性 | 与所有IP网络设备都兼容 | 兼容性差 |
性能 | 目前主流1Gb,10Gb正在发展 | 非常高的传输和读写性能 |
成本 | 购买与维护成本都较低 | 购买(光纤交换机、HBA卡、光纤磁盘阵列等)与维护(培训人员、系统设置与监测等)成本高 |
容灾 | 本身可以实现本地和异地容灾,且成本低 | 容灾的硬件、软件成本高 |
安全性 | 较低 | 较高 |
分布式存储
概念: 分布式存储的资源来自于各个主机(服务器),然后将资源整合和分布式存储池,再为各个主机所用。
副本机制:
-
数据写入:在数据写入时,首先数据先到分布式存储池,然后在下放到物理磁盘的过程中,复制成三份(三副本机制。两份就为两副本机制),每份数据保存在不同的硬盘上。三副本机制下三个物理硬盘才能提供一个物理硬盘的空间。这样就造成了空间浪费的问题。
-
数据读取:不是读三分数据。只会读一份数据,然后把数据返回给客户端。如何优先读的数据坏掉了。才会读剩下的两份数据。
问题: 分布式存储为什么不用RAID机制
-
为了保证数据的高可用性和安全性,集中式存储使用的是RAID技术,RAID可以通过硬件和软件的方式来实现,无论是软RAID或者硬RAID,所有的硬盘都需要在一个服务器内(硬RAID需要统一RAID卡,软RAID需要统一操作系统)。
-
由于分布式存储的硬盘分布在不同的服务器上,所以无法再使用RAID机制。因此,分布式存储是通过副本机制来实现数据的高可靠性的。副本机制是指将数据复制成多份一模一样的内容,并分别保存在不同的服务器上,当某台服务器出现故障后,数据并不会丢失。