- 云计算那些事儿:从IaaS到PaaS进阶
- 陈晓宇
- 2398字
- 2020-08-27 18:35:30
2.3 IaaS
IaaS(基础设施即服务),它将物理服务器资源池化,并结合计算虚拟化、网络虚拟化,以及存储虚拟化技术,向最终用户交付计算、网络和存储服务。比如,我们可以在AWS或者阿里云上面购买虚拟机、VPC,以及块存储等服务,用户没有必要购买与运维任何物理设备。虚拟化是IaaS的基础,通过虚拟化将资源拆分,并重新组合,为每个用户提供一套甚至多套基础设施环境。IaaS整体架构如图2-3所示,最底层是物理硬件层面,在硬件层面上通过虚拟化技术虚拟出多种资源。在IaaS中,虚拟化起到了关键作用,IaaS的核心是管理这些虚拟化资源。最上层提供云服务的用户接入,包括多租户、计费、资源申请和管理、监控告警等。
图2-3 IaaS整体架构
2.3.1 资源管理
IaaS包含了很多资源类型,主要包括虚拟机、存储、网络、CDN等多个方面,下面将介绍几个IaaS中常用的资源。
2.3.1.1 虚拟机管理
虚拟机是一种通过虚拟化技术(硬件或者软件),模拟出一套具有完整硬件系统功能,可以运行在隔离环境中的计算机系统。
针对虚拟机的管理有两方面,即虚拟机的生命周期管理和虚拟机的镜像(虚拟机的rootfs)管理。虚拟机生命周期管理主要负责虚拟机创建、启动、关闭、修改配置、迁移、销毁等操作;而镜像管理主要负责存储和下载虚拟机的镜像文件。每种虚拟化的实现都有自己的虚拟机镜像格式和启动方式。例如,KVM通常是raw或者qcow2格式,而VMware通常是ova格式,需要有一个统一的虚拟机镜像仓库。当启动虚拟机的时候,下载对应的虚拟机镜像,并在合适的Hypervisor上面启动。
2.3.1.2 物理机管理
物理机管理又被称为裸金属管理,是直接管理物理服务器的。这种直接使用物理机的方式似乎和使用虚拟化云服务器的方式背道而驰。但在某些领域里,还是有很多裸金属管理需求的。第一,要求强隔离的金融企业或者政府部门,需要服务必须单独部署;第二,裸金属可以提供自动安装操作系统等服务,可以异构管理x86、ARM、Power等多种架构的服务器;第三,混合云场景中,用户可以在公有云提供的裸金属服务器上面安装VMware虚拟化软件。
2.3.1.3 存储管理
存储管理负责维护存储的生命周期,从创建、使用到最终销毁。可以对外提供多种访问方式,包括对象存储、文件存储,以及块存储。虚拟机只是提供计算能力的,数据需要借助外部存储持久化。通常,虚拟机都会外挂一个或者多个数据盘用于保存数据。对于块存储操作来说,常用操作包括存储创建、加载、卸载,以及删除等操作。对于文件存储来说,需要创建一个目录,并对该目录授权挂载。对象存储则需要申请access key和secret key、创建Bucket、上传文件等。
存储管理底层对接的存储实现可能是商业存储(如EMC),也可能是开源分布式存储(如Ceph)。存储管理系统需要兼容各种存储接口,通常采用插件化的方式适配多种存储。
2.3.1.4 网络管理
网络管理需要提供VPC、VPN、防火墙、路由、DNS、DHCP,以及负载均衡等服务的管理。通过创建VPC网络可以在网络上面将资源隔离,VPN可以实现跨数据中心及混合云网络接入等,防火墙限制网络的上行和下行规则,路由器可以实现多个VPC子网互通,还可以用于网关NAT等,DNS和DHCP分别提供虚拟机的网络地址解析和地址分配,负载均衡允许多个部署相同服务的虚拟机加入同一个服务组,通过负载均衡分配流量,提供四层或者七层的流量分发,从而保证系统的并发性和可靠性。
2.3.2 监控和告警
无论是虚拟机、存储,还是网络都需要一套完善的监控系统,负责采集性能数据。对于虚拟机,需要采集内存、CPU、网络I/O、磁盘I/O等性能指标。对于存储,需要监控存储的用量和存储的读取速度(如IOPS)等。对于网络,需要监控网络延迟、网络抖动等。性能数据的采集通常有两种方式,一种是侵入式的,例如在每个虚拟机上安装zabbix agent,直接将agent集成到虚拟机镜像里面,从而完成指标采集。还有一种方式是通过API获取。例如Xen或者VMware都提供了RESTful API获取虚拟机的指标数据,可以通过接口获得,这两种采集方式获取的指标会有差异,主要是视角不同,一个是来自操作系统内部的,一个是聚焦操作系统外部的虚拟化层的,各有道理。在建立完善的监控基础之上,需要提供告警和预警的功能,根据多指标维度设置告警策略和通知组,并在考虑出发策略的时候提供短信或者邮件通知。
2.3.3 用户权限
对于IaaS系统,首先需要提供的是租户管理系统,这里包括了用户管理、团队管理、权限管理、项目管理等。无论是私有云,还是公有云,多租户的场景都是必要的,需要为每个租户提供一套资源视图和资源隔离的环境,并且,可以针对用户在某一个项目里面授权不同角色,从而限制其操作权限。计费、告警等功能也都需要和用户关联。
2.3.4 安全管理
安全涉及很多方面,首先是数据访问安全,确保数据只能被授权的用户访问,控制用户对数据的读写权限,还有数据的传输安全,确保在数据传输过程中,如果流量被劫持,数据不被解密;其次是网络安全和网络隔离。对内,多租户之间需要做到网络二层隔离,防止网络蠕虫;对外,需要防御网络攻击(如DDoS)。还有虚拟化安全,防止虚拟机逃逸及越权执行敏感指令等。针对操作系统和应用层面,还需要提供云杀毒,协助用户提升等级。
2.3.5 计量与计费
计量是为了获取资源的使用量,然后根据计量数据计费。云计算初衷之一就是按需计费,按用量计费。特别是在公有云场景下,计量和计费更加重要。图2-4为在阿里云购买虚拟机的计价清单,是根据用户申请时指定的虚拟机CPU核数和内存大小,以及网络带宽动态调整的。即便是私有云,也会有计费的场景,特别是子公司或者多部门财务独立核算的场景。
图2-4 在阿里云购买虚拟机的计价清单
计量和监控的概念很相似,都是记录资源的用量,但相比监控来说,并不要求实时性,通常是按照小时为刻度,但对数据的可靠性要求更高,数据必须保证安全不丢失。随着时间的推移,计量信息会定期生成文本,或者以记录数据库的方式,保留历史用量信息。
计费则是建立在计量基础之上的,结合定价策略、成本考量等因素指定单价。如果是计算资源,通常是以CPU和内存为主要参考指标。如果高IO,主要是以磁盘读写,或者网络带宽为主要参考指标。计费模式主要有包年包月、按量付费、竞价计费,还有阶梯计价等。