文章目录
- 1.云计算基础
- 什么是云计算
- 云计算的分类
- 开源软件、自由软件、免费软件
- 2.云计算机制
- 云基础设施机制
- 云管理机制
- 云安全机制
- 基本云架构
- 3.虚拟化技术
- 服务器虚拟化
- 服务器虚拟化技术
- CPU虚拟化
- 内存虚拟化
- 设备和I/O虚拟化
- 存储虚拟化
- 网络虚拟化
- 桌面虚拟化
- KVM
- 4.网络与存储基础知识
- 内联网和外联网
- 网络中的流量
- SDN
- 虚拟存储
- 云存储概念
- 5.云计算相关
- 边缘计算
- 雾计算
1.云计算基础
什么是云计算
按照自己的理解,云计算中的计算并不是就指代单纯的计算,就好像计算机并不是只算数,还用来上网玩游戏啥的。而云指的就是互联网和虚拟。那么云计算指的是将一个资源非常强大的物理机或者是一些分散的物理机集群起来,用虚拟化的技术做成不同类别的资源池,比如cpu资源池、磁盘存储资源池、带宽资源池等。而用户可以根据自己的需求定制自己需要的各类资源从而构成一个虚拟出来的计算机,以共自己使用。再说通俗一点就是普通用户在云服务提供商买一台云服务器,或者企业买一套云产品。但是从云服务提供商角度来讲云计算技术还包括它的实现。
云计算的分类
-
按照运营模式分类
- 公有云:普通用户在阿里云、华为云、腾讯云买的云服务器,有公网ip的就是公有云。
- 私有云:企业内部用的管理系统肯定就架在私有云上。
- 社区云:多家企业或者一个行业组织有共享的需求,这个时候用社区云。社区内的人可以访问,社区外的普通用户无法访问。
- 混合云:比如一个企业有内部信息和外部公开信息,这个时候用混合云。
- 行业云:并不是一个新的类型,而是针对一个行业定制出来的云,可以是公有云也可以是私有云
-
按服务模式分类
- IaaS: 基础设施即服务。提供基础的服务器,平时自己购买的云服务器就是IaaS的范畴。
- PaaS: 平台即服务。在操作系统的基础上还提供DevCloud这种开发环境。
- SaaS: 软件即服务。腾讯会议这种应该算是SaaS。
开源软件、自由软件、免费软件
- 开源软件:是指在软件发行的时候,附上软件的源代码,并授权允许用户更改/自由再散布/衍生著作。开源的源码可以收费。自由软件必定开源,开源软件未必自由,有些开源许可证对用户过于苛刻,它们就没有被列为自由软件。
- 自由软件:是开源软件的一个子集。它允许使用者以任何方式获取项目,修改项目,再发布项目或者再发布修改之后的项目,至于具体的方式,不作任何强制性限制。使用者可以以公布或者不公布源代码方式发布项目
- 免费软件:免费提供给用户使用的软件。其源码不一定会公开,而且使用者也并没有使用、复制、研究、修改和再散布的权利。
2.云计算机制
云基础设施机制
- 逻辑网络边界
使用防火墙等设备进行网络隔离,形成一个虚拟网络边界
在企业内部防火墙和外部防火墙之间区域为DMZ区域,用来对外提供代理服务器和Web服务器
- 虚拟服务器
在物理服务器上用虚拟化软件或技术虚拟出来的服务器
- 云存储设备
对物理存储设备虚拟化,以虚拟存储设备的形式为云用户提供服务
云存储等级:文件、块(文件最底层的存储逻辑)、数据集(比如数据库表)、对象(包括数据、元数据、对象ID)
存储接口:网络存储接口、对象存储接口、数据库存储接口
- 云使用监控
用于收集用户对资源的使用,收费标准
- 资源复制
将虚拟机影像复制做成多个用户的实例
云管理机制
- 远程管理系统:提供给云用户的登录和访问入口
远程管理系统能建立一个入口以便访问各种底层系统的控制和管理功能。这些功能包括了资源管理,SLA管理和计费管理。
- 资源管理系统:帮助协调IT资源,相应云用户和云服务提供商执行的管理操作。核心是VIM
VIM:虚拟基础设施管理器
- SLA管理系统
SLA: 服务等级协议
SLO: 服务等级目标
SLA是关于网络服务供应商和客户间的一份合同,其中定义了服务类型、服务质量和客户付款等术语。
代表的是一系列商品化的可用云管理产品,包括SLA数据的管理、收集、存储、报告以及运行时通知。
- 计费管理系统
专门用于收集和处理使用数据,用于云提供者的结算和云用户的计费
云安全机制
-
使用加密技术来保证云上数据的保密性;
-
使用散列来保证云上数据的完整性;
-
数字签名确保数据来源就是其声称的发布者,即真实性;
-
公钥基础设施与数字签名相辅相成;
-
身份认证与访问管理(IAM),包括认证、授权、用户管理(创建新的用户身份、访问组、重设密码等)、证书管理
-
单点登录SSO
-
基于云的安全组,一方面可以实现运行于同一个物理服务器上的多个虚拟服务器分属不同的安全组实现隔离,另一方面是逻辑网络边界隔离实现内网外网部署。
-
强化的虚拟服务器映像。将普通的服务器不必要的服务和软件关停和卸载,减少攻击面。
基本云架构
- 负载分布架构
也就是负载均衡,通过增加一个或多个同类的IT资源进行IT资源的水平扩展,使用负载均衡器进行资源上的均匀分配。
- 资源池架构
将相同的资源进行分类分组和维护。常见的资源池有物理服务器池、虚拟服务器池、存储池、网络池、CPU池、内存池。
- 动态可扩展架构
有一些预定义的扩展条件的模型,触发这些条件会导致系统自动从资源池中动态分配IT资源。常见的动态扩展类型有动态水平扩展(增减同类型IT资源实例来扩展IT资源,以便处理工作负载的变化,理解为整个资源的复制)、动态垂直扩展(增加单个IT资源,比如增加内存容量或者增加处理器内核)、动态重定位(迁移到性能更强的服务器上)。
- 弹性资源容量架构
根据实时需求动态变化资源配置。
- 服务负载均衡架构
可以认为是负载分布架构的一个特殊变种,专门用来实现云服务的扩展。
- 云爆发架构
云的资源先保持冗余的非活跃状态,先使用企业内部的资源,当企业内部资源使用达到预设阈值时,将企业内部的资源扩展到云中。
- 弹性磁盘供给架构
传统资源付费是用户购买时买了40g磁盘存储,尽管一直没用也要付费。弹性磁盘供给架构按照用户实际使用的存储量进行精确计费。
- 冗余存储架构
引入辅云存储设备,定期将主云数据复制到辅云,当主云设备故障时,存储设备网关将云用户请求转向辅云存储设备。
3.虚拟化技术
服务器虚拟化
- 系统虚拟化:使用虚拟化软件在一台物理机上虚拟出一台或多台虚拟机
- 服务器虚拟化:是将系统虚拟化应用在服务器上
虚拟机监视器VMM和虚拟化平台Hypervisor目前不做严格区分
根据虚拟化层实现方式不同,主要分为寄居虚拟化(在hostOS上)和裸金属虚拟化(直接在硬件)
- 软件辅助虚拟化:分为优先级压缩和二进制代码翻译
- 优先级压缩:VMM运行在ring0,客户机内核运行在ring1,客户机应用程序运行在ring3
- 二进制代码翻译:VMM扫描客户机OS代码,修改不支持虚拟化的部分。
- 硬件辅助虚拟化:VT-x技术在处理器上引入了一个新的执行模式用于运行虚拟机,当虚拟机执行在这个特殊模式中时,任何操作都会被处理器截获并报告给VMM。
KVM是全虚拟化,Xen同时支持半虚拟化和全虚拟化
服务器虚拟化技术
CPU虚拟化
将物理cpu抽象为虚拟cpu,每个客户操作系统可以使用一个或多个虚拟cpu,这些客户操作系统之间的虚拟cpu相互隔离。
-
x86下的软件cpu虚拟化
- 全虚拟化采用二进制代码动态翻译来解决客户机操作系统特权指令问题。虚拟机运行时在敏感指令执行前插入陷入指令,将执行陷入到VMM中,再由VMM转换为相同效果的指令代码
- 半虚拟化采用超级调用。修改客户操作系统,将敏感指令改成对VMM的超级调用。
-
x86下的硬件虚拟化
-
Intel退出Intel VT,AMD退出AMD-V
-
是给处理器增加支持虚拟化的指令集
-
内存虚拟化
为了虚拟内存,x86架构的cpu都配置了内存管理单元MMU和转译后备缓冲器TLB来优化虚拟内存的性能
虚拟机内存管理的两种实现方式
- 影子页表法,影子页表工作在hypervisor中,它为每个虚拟机维护一个虚拟机中页表对应的页表,不过这个页表中的内容是真实的机器地址
- 页表写入法,客户机每次对页表的修改都会陷入虚拟机监视器,由虚拟机监视器来更新页表。这个页表中记录的也是真实的机器地址
设备和I/O虚拟化
把真实设备统一管理,包装成多个虚拟设备给多台虚拟机使用。目前主要通过软件方式实现。
另外虚拟的网络也是用软件实现,不占用物理带宽
存储虚拟化
RAID是存储虚拟化的雏形,它通过将多块物理磁盘以阵列的方式组合起来向上层提供一个存储空间。
之后出现NAS和SAN。
NAS将文件存储与本地计算机解耦合,将文件存储集中在链接到网络上的NAS存储单元,如NAS文件服务器。可以使用NFS和SMB协议访问。
SAN一般由磁盘阵列链接光纤通道组成。
网络虚拟化
VLAN和VPN等。
桌面虚拟化
服务器虚拟化是将一个实体服务器分割为多个小的虚拟服务器。
桌面虚拟化范围更广,虚拟计算机被存储在远程服务器中并可以交付应用到用户设备上,它的操作方式和操作实体机相同。
桌面虚拟化需要一台服务器托管虚拟镜像,桌面虚拟化将用户的桌面环境与使用的中断设备解耦合,服务器上存储的是每个用户的完整的桌面环境。
目前桌面云有华为的FusionAccess。
桌面云:将计算机的桌面以虚拟机形式运行在后台虚拟服务器上,以云计算的服务方式,将桌面虚拟机提供给最终用户使用。用户可以在专用的瘦客户机或者普通个人计算机上通过远程桌面协议访问桌面云中的虚拟化桌面。
桌面云的使用体验和个人计算机基本没有差异,可完成与个人计算机相同的功能,实现日茶馆办公,图形图像处理等工作。
KVM
kvm本身不执行任何模拟,需要用户空间程序通过/dev/kvm
接口设置各个客户机虚拟服务器的地址空间,向他提供模拟的I/O,并将它的视频显示映射会宿主的显示屏,目前这个应用程序就是qemu。
kvm支持最新的硬件内存虚拟化功能,Intel的EPT和AMD的NPT。
内存页面共享通过内核同页合并(Kernel Same-Page Merging, KSM)的内核功能来支持。
ksm扫描每个虚拟机的内存,如果虚拟机拥有相同的内存页面,ksm将这些页面合并到一个虚拟机之间共享的页面,进存储一个副本。如果一个客户机尝试更改这个共享页面,它将得到自己的专用副本。
Qos: quality of service,服务质量,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。
4.网络与存储基础知识
内联网和外联网
内联网不允许与互联网连接,外联网是客户、分销商、供应商等通过vpn等技术可以访问的网络,其中包含了DMZ区域
网络中的流量
- 南北流量:客户端和服务器之间的网络流量
- 东西流量:不同服务器间的流量或数据中心与不同数据中心之间的网络流量
东西流量远超南北流量
SDN
SDN:软件定义网络,让网络像软件一样灵活编程。软件定义网络SDN的一个核心思想就是“转发、控制分离”,要实现转、控分离,就需要在控制器与转发器之间建立一个通信接口标准,允许控制器直接访问和控制转发器的转发平面。
OpenFlow:是一种网络通信协议,应用于SDN架构中控制器和转发器之间的通信。OpenFlow引入了“流表”的概念,转发器通过流表来指导数据包的转发。控制器正是通过OpenFlow提供的接口在转发器上部署相应的流表,从而实现对转发平面的控制。
虚拟存储
虚拟存储化的核心在于如何把物理存储设备映射到单一的逻辑资源池中。
虚拟化技术是通过建立一个虚拟抽象层来实现的。这个虚拟抽象层向用户提供了一个统一的接口,向用户隐藏了复杂的物理实现,根据虚拟抽象层在存储系统中所处的区域,存储虚拟化的实现方式可以分为基于存储设备端的虚拟存储、基于存储网络的虚拟存储、基于服务端的虚拟存储。
网络存储架构大致可以分为3中:直接连接存储、NAS、SAN
- 直接连接存储(Direct Attached Storage, DAS)
可以理解为本地文件系统。这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见的硬盘,U盘等,这种设备很难做到共享。
- 存储区域网络(Storage Area Network, SAN)
是一种独立于业务网络系统之外,以块级数据为其基本访问单元的高速存储专用网络。SAN将DAS这些“存储孤岛”用告诉网络连接起来,实现数据的异地备份并获得优异的扩展能力。
- 网络附加存储(Network Attached Storage, NAS)
是一个共享存储设备,可以向开放式系统服务器提供整合的文件系统和存储服务。 应用程序和用户可以通过共享Internet协议(IP)网络来访问数据。 每个NAS设备都具有自己的唯一 IP 地址。
这三种网络存储架构都可以使用RAID提供高校的安全存储空间。另外因为NAS对消费者来说是最普遍的一种网络存储形式,因此一般提到网络存储就是只NAS。
RAID: 简称为独立磁盘冗余磁盘阵列,是一种存储技术
云存储概念
云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。
与传统的存储设备相比,云存储不仅仅是一个硬件,还是包含网络设备、存储设备、服务器、应用软件、公共访问接口、接入网络和客户端程序等多个部分的复杂系统。各部分以存储设备为核心,通过应用软件来对外提供数据存储和业务访问服务。
云存储系统的结构有4层组成
- 存储层:最基础的部分,DAS\SAN\NAS物理存储设备
- 基础管理层:最核心的部分,通过集群系统、分布式文件系统和网格计算等技术,实现云存储中多个存储设备之间的协同工作,使多个存储设备协同起来对外提供同一种服务
- 应用接口层
- 访问层:授权用户通过接口登录存储系统,享受云存储服务。
5.云计算相关
边缘计算
与将数据传到远程的云端进行处理相反,边缘计算则在靠近数据源头的网络边缘提供计算和存储服务。通俗的说,边缘计算是去中心化或分布式的云计算,原始数据不传回云端,而是在本地完成分析和处理。由于边缘计算有着实际需求的支持,特别是在物联网中被大量应用。
雾计算
雾计算是边缘计算中重要的一类
雾计算的计算模式中,数据、数据处理和应用集中在网络边缘的设备中,而不是全部保存在云中。之所以称为雾,是因为雾相对于云更贴近地面也就是用户终端。