8. 云服务技术*
本文最后更新于 2024年1月27日 下午
云服务技术*
本节内容大多来源于互联网,作为后续学习补充之用。
云服务的发展过程
协同阶段
在融合阶段,云技术和通信网络仍然保持相互独立,但是彼此之间可以通过云侧Leaf-Spin结构中的Leaf设备建立pop节点,以支持网侧的不同网络类型的通信。
在此阶段,云和网的管理系统是独立的,甚至云的管理能力并不强大。不同的云网之间往往无法实现统一管理。
协同阶段提出的一个重要概念是云原生,指从网络架构上对云进行支持。
融合阶段
在融合阶段,网中IT侧的业务运营系统,包括OSS/MSS和BSS全部实现云化。同时5G核心网中的网元完成了虚拟化。
故障定位仅限于接入层,通过探针技术实现对故障的定位。
在这个阶段,云的故障和排除可以通过采集平台采集网关信息,融合对不同云网络的管理。
此阶段提出了原子抽象的概念,即将各种功能以最小的粒度单位拆分为资源模块并共享给整个网络使用,这种概念的实现需要统一标准和开放的网络接口。
云服务的分类
客户的维度
按照客户的维度可以分为公有云、私有云和专属云。其中专属云指的是对某些公共系统中的全体人员使用的云服务,主要面向政企部门。
技术的维度
按照技术的维度可以分为中心云和边缘云。
面向的维度
按照面向的维度可以分为通信云和网络云,网络云更面向计算机服务,而通信云面向通信网的虚拟化。
SDN
传统网络是一个分布式的网络,在二层网络中,设备通过广播的方式传递设备间的可达信息。在三层网络中,设备间通过标准路由协议传递拓扑信息。这些模式要求每台设备必须使用相同的网络协议,保证各厂商的设备可以实现相互通信。随着业务的飞速发展,用户对网络的需求日新月异,一旦原有的基础网络无法满足新需求,就需要上升到协议制定与修改的层面,这样就会导致网络设备升级十分缓慢。
软件定义网络(SDN, Software Defined Network)
是一种架构,它抽象了网络的不同、可区分的层,使网络变得敏捷和灵活,SDN
的目标是通过使企业和服务提供商能够快速响应不断变化的业务需求来改进网络控制。
SDN将网络设备的转发面与控制面解耦合,通过控制器负责网络设备的管理、网络业务的编排和业务流量的调度,具有成本低、集中管理、灵活调度等优点。
SDN架构
SDN架构可分为基础设施层、控制层和应用层。
- 基础设施层(物理层)
主要为转发设备,实现转发功能,例如数据中心交换机。
- 控制层
由SDN控制软件组成,可通过标准化协议与转发设备进行通信,实现对基础设施层的控制。
- 应用层
云平台和各种业务系统。
SDN使用北向和南向API来进行层与层之间的通信,分为北向API和南向API。
北向API负责应用层和控制层之间的通信,南向API负责基础设施层和控制层之间的通信。一般来说,SDN北向对接云平台,南向对接VXLAN中的物理交换机、虚拟交换机、防火墙等实例。
虚拟机和容器
虚拟机
虚拟机(VM, Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。
容器
容器是一种沙盒技术,主要目的是为了将应用运行在其中,与外界隔离;方便这个沙盒可以被转移到其它宿主机器。本质上,它是一个特殊的进程。通过命名空间(Namespace)、控制组(Control
Groups)、切根(Change to
Root)技术把资源、文件、设备、状态和配置划分到一个独立的空间。
通俗点的理解就是一个装应用软件的箱子,箱子里面有软件运行所需的依赖库和配置。开发人员可以把这个箱子搬到任何机器上,且不影响里面软件的运行。
命名空间
命名空间(Namespace)是程序设计者命名的内存区域,程序设计者根据需指定一些有名字的空间域,把一些全局实体分别存放到各个命名空间中,从而与其他全局实体分隔开。
通过命名空间来分类,区别不同的代码功能,避免不同的代码片段同时使用时由于不同代码间变量名相同而造成冲突。
每个容器都可以拥有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统环境中一样。命名空间机制保证了容器之间彼此互不影响。
Linux操作系统默认提供的API,包括:
PID Namespace
不同容器就是通过pid(process id)名字空间隔离开的,不同命名空间中可以有相同的pid。Mount Namespace
mount允许不同命名空间的进程看到的文件结构不同,因此不同命名空间中的进程所看到的文件目录就被隔离了。另外,每个命名空间中的容器在/proc/mounts
的信息只包含当前命名的挂载点。IPC Namespace
容器中进程交互还是采用Linux常见的进程交互方法(interprocess communication -IPC),包括信号量、消息队列和共享内存等。Network Namespace
网络隔离是通过Net实现,每个Net有独立的网络设备,IP地址,路由表,/proc/net
目录。这样每个容器的网络就能隔离开来。UTS Namespace
UTS(UNIX Time-sharing System)允许每个容器拥有独立的hostname和domain name,使其在网络上可以被视作一个独立的节点而非主机上的一个进程。User Namespace
每个容器可以有不同的用户uid和组id,也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。
Cgroup
控制组(Control
Groups)是Linux内核提供的一种可以限制、记录、隔离进程组的物理资源机制。因为Namespace技术只能改变进程的视觉范围,不能真实地对资源做出限制。所以就必须采用Cgroup技术对容器进行资源限制,防止某个容器把宿主机资源全部用完导致其它容器也宕掉。
Cgroups可以对一组进程及将来的子进程的资源的限制、控制和统计的能力,这些资源包括CPU,内存,存储,网络等。通过Cgroups,可以方便的限制某个进程的资源占用,并且可以实时的监控进程的监控和统计信息。在Linux的/sys/fs/cgroup
目录中,有cpu
、memory
、devices
、net_cls
等子目录,可以根据需要修改相应的配置文件来设置某个进程对物理资源的最大使用率。
切根(change to Root)
切根的意思就是改变一个程序运行时参考的根目录位置,让不同容器在不同的虚拟根目录下工作,从而相互不直接影响。
SDS和分布式存储
SDS
软件定义存储(SDS, Software Defined
Storange)区别于传统的“硬件定义”存储,将存储硬件和控制面、数据面进行分离,采用标准化硬件作为载体(如X86架构),基于软件实现企业级存储功能和服务。相对于传统存储硬件盒子,SDS中存储软件成为了核心。
由于SDS不依赖专属的硬件,可以让存储软件运行在通用服务器上,可避免硬件绑定以及有效降低硬件采购成本;拥有标准
API
接口和自动化工具,有效降低运维难度。存储资源虚拟化,支持多种存储协议,可整合企业存储资源,提升存储资源利用率。
SDS一般基于分布式存储。
分布式存储
分布式存储是一种数据存储技术,通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。
传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
分布式存储的方式有三种:文件存储(POSIX/NFS/CIFS)、对象存储(S3)和块存储(iSCSI/iSER/NVMeoF)。
文件存储
文件存储一般体现形式是目录和文件,数据以文件的方式存储和访问,按照目录结构进行组织。基于文件的存储使用一个文件系统去映射存储设备上数据的存储位置。
文件存储可以对数据进行一定的高级管理,比如在文件层面进行访问权限控制等。
文件存储的优点是方便共享。
文件存储器的配置过程非常简单,但数据访问受到单一数据路径的限制,与块存储器或对象存储器相比,这会影响性能。
文件存储器同样只使用常见的文件级协议,例如用于 Windows 的新技术文件系统
(NTFS) 或用于 Linux 的网络文件系统 (NFS)。
这可能会限制在不同系统中的可用性。
块存储
块存储会将数据拆分成块,并单独存储各个块。这些块的功能类似于 PC
中的单个硬盘驱动器。每个数据块都有一个唯一标识符,所以存储系统能将较小的数据存放在最方便的位置。
块存储器最适合存储不经常更改的静态文件,因为对文件所做的任何更改都会导致创建新对象。
对象存储
在对象存储(Object Storage Service)系统中,文件中的数据被分成称为对象的离散单元,并保存在单个存储库中,而不是作为文件夹中的文件或服务器上的块来保存。每个对象都具有三个组件:
- 源文件数据(内容本身)
- 元数据(内容的属性)
- 访问对象API的唯一标识号UUID,通常包含生成时间,物理地址等信息。
数据对象对外体现为一个UUID,数据和元数据打包在一起作为一个整体对象存储在数据池中。对象通过UUID进行访问,访问的时候对象是作为一个整体访问的。
对象存储就可以非常简单的扩展到超大规模,因此非常适合数据量大、增速又很快的视频、图像等。
对象存储器与块存储器之间的一个重要区别是它们处理元数据的方式。 在对象存储器中,可以定制元数据以包含有关存储在对象中的数据文件的其他详细信息。 例如,可以定制视频文件附带的元数据,以说明该视频的制作地点、用于拍摄的摄像机类型,甚至每一帧中拍摄的主体。 在块存储器中,元数据仅限于基本文件属性。
虚拟交换机
在物理环境之中,主机是通过物理交换机(pSwitch)连接到网络当中。而在虚拟化环境中,则使用虚拟交换机(vSwitch)。虚拟机通过vSwitch来连接网络,vSwitch是通过主机上的物理网卡作为上行链路与外界网络进行连接。
跟普通服务器设备一样,每个虚拟机有着自己的虚拟网卡(virtual NIC),每个
virtual NIC有着自己的MAC地址和IP地址。
vSwitch相当于一个虚拟的二层交换机,该交换机连接虚拟网卡和物理网卡,将虚拟机上的数据报文从物理网口转发出去。与物理交换机一样,vSwitch的作用就是用来转发数据。
Spine-Leaf 架构
传统数据中心的网络通常基于三层模型:
- 接入交换机连接到服务器
- 汇聚交换机为接入交换机提供冗余连接
- 核心交换机在汇聚交换机之间提供快速传输
Spine-Leaf体系架构是由Spine和Leaf这两个交换层组成的数据中心网络拓扑结构。Leaf层由访问交换机组成,汇聚来自服务器的流量,并直接连接到Spine或网络核心。Spine交换机在全网格拓扑中互连所有Leaf交换机。Spine交换机具有高吞吐量、低延迟且端口密集,它们与每个Leaf交换机都有直接的高速
(40-400Gbps) 连接。
Spine-Leaf 架构减少了核心层,实现了层次的扁平化,如下图所示。
Spine-Leaf架构更适合满足现代应用程序的需求,例如高吞吐量和低延迟。
此外,关于Spine-Leaf 架构的其他常见差异如下:
- 放弃了生成树协议 (STP)
- 越来越多地使用固定端口交换机而不是网络骨干的模块化模型
- 横向与纵向基础架构的扩展
如今东西向流量(同层服务器之间)越来越多,低延迟、优化流量对于东西向流量的性能至关重要,尤其是在时间敏感或数据密集型应用程序中。
Spine-Leaf架构的主要好处之一就是它允许数据流从数据的源到数据的目标路径较短。无论源和目的地如何,Spine-Leaf结构中的数据流在网络上的跳数都相同,任意两个服务器之间都是Leaf-->Spine-->Leaf三跳可达的。
由于Spine-Leaf 架构不再需要 STP,容量也得到了提高。其依赖诸如 ECMP(等价多路径)路由等协议来平衡所有可用路径上的流量,同时仍然避免网络环路。
除了更高的性能外,Spine-Leaf 架构还提供了更好的可扩展性。可以添加额外的Spine交换机并将其连接到每个Leaf ,从而进一步增加容量。同样,当端口密度成为问题时,可以无缝添加新的Leaf 交换机。在这两种情况下,网络都不必为基础设施的这种扩展(“横向扩展”)而重新设计,也没有停机时间。
VLAN和VXLAN
VLAN
VLAN是虚拟局域网(Virtual LAN)的缩写,用于划分二层网络。
早期以太网是基于CSMA/CD。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过二层设备实现LAN互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。
VLAN可以将一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,广播报文就被限制在一个VLAN内。
VXLAN
VLAN作为传统的网络隔离技术,在标准定义中VLAN的数量只有4096个,无法满足大型数据中心的租户间隔离需求。另外,VLAN的二层范围一般较小且固定,无法支持虚拟机大范围的动态迁移。
因此,出现了VLAN的扩展方案VXLAN(Virtual eXtensible
LAN),虚拟扩展局域网)。
本质上VXLAN是一种隧道技术,能在三层网络的基础上建立二层以太网网络隧道,从而实现跨地域的二层互连。VXLAN在源网络设备与目的网络设备之间建立一条逻辑VXLAN隧道,它将虚拟机发出的原始以太报文完整的封装在UDP报文中,然后在外层使用物理网络的IP报文头和以太报文头封装,这样,封装后的报文就像普通IP报文一样,可以通过路由网络转发,使虚拟机彻底摆脱了二、三层网络的结构限制。
在IP网络基础上,当源和目的之间有通信需求时,便在IP网络之上创建一条虚拟的隧道,透明转发用户数据。任意两点之间都能通过VXLAN隧道来通信,忽略底层网络的结构和细节。
VTEP
VTEP(VXLAN Tunnel End
Point)是直接与终端连接的设备,负责原始以太报文的VXLAN封装和解封装。
VXLAN网关
和VLAN类似,不同VNI之间的主机,以及VXLAN网络和非VXLAN网络中的主机不能直接相互通信。为了满足这些通信需求,VXLAN引入了VXLAN网关的概念。VXLAN网关分为二层网关和三层网关,VXLAN二层网关(VXLAN网关)用于终端接入VXLAN网络,也可用于同一VXLAN网络的子网通信;VXLAN三层网关(VXIP网关)用于VXLAN网络中跨子网通信以及访问外部网络。
VTEP可以内置在二层网关中。
BSS/OSS和BOSS系统
业务支撑系统(BSS, Business Support System),负责对接客户;运营支撑系统(OSS, Operating Support System)负责计费和监控通信系统。两者合并称为BOSS系统,负责账单和运营通信服务。
功能
总的来说,按照功能进行划分,BOSS系统可以分为如下四块:
计费系统
计费系统是指处理计费数据采集和批价两个过程的系统。计费数据采集工作包括计算机从电信基础网络(如交换机、网关等)上收集有关的原始基础数据和信息,进行相应的差错检验、格式转换等预处理,生成的结果只记录了用户使用网络(如通话)的情况,并不体现应向用户收取的费用;批价反应了向用户收取的费用情况。
营业、帐务系统
营业系统受理和处理用户的业务请求,帐务系统将用户使用电信网络的情况汇总形成账单。这两个过程在以往是比较单调的,但随着个性化服务的需求越来越强烈,要求系统实现功能的数量越来越多,越来越复杂,需要建设相对独立、灵活的营业系统和帐务系统。
客户服务系统
中国电信的"10000"和中国联通的"10010"等是客服系统的原形,随着发展,客服系统有了新的定义和功能。客服系统一方面能保证为客户提供快速方便的服务;另一方面保证在未来新业务开放的情况下,系统能及时提供相应的功能保证。
决策支持系统
决策支持系统的主要任务是通过动态、有选择性地采集和更新数据源的有效信息及企业外部相关信息,进行智能化地分析、处理、预测、模拟等,最终向各级决策管理者或专业人员提供及时、科学、有效的分析报告,做好信息、智力支持工作。
结构
BOSS的结构分为三层:
接入层:是BOSS系统与外部进行数据交换的平台,由接入逻辑构成。
业务层:是BOSS系统业务处理的逻辑平台,它通过对数据访问子层的调用访问业务数据,实现不同的功能模块,满足不同的业务需求。
数据层:是BOSS系统对业务数据进行统一组织、集中管理的平台,它通过数据访问子层为业务层提供规范、高效的数据服务,实现业务数据的充分共享,是整个BOSS系统的基础。
MSS
安全托管服务(MSS,Managed Security
Service)是由网络安全服务供应商提供的一种服务模式或能力,用以监测和管理安全设备、系统,甚至软件即服务
(SaaS) 类应用程序等。