searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

云计算基本介绍及相关组件

2023-12-06 06:37:22
22
0

一、 什么是云计算

 

1、什么是云计算:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务)

2、云计算所包含的几个层次服务:

SaaS:把在线软件作为一种服务;

PaaS:把平台作为一服务;

IaaS:把硬件设备作为一种服务。

3、OpenStack:是一个开源的IaaS云计算平台,任何人可以自行建立和提供云端运算服务,用python语言编写

二、 Openstack共享服务组件和核心组件

OpenStack共享服务组件:

数据库服务:MairaDB及MongoDB

消息传输:RabbitMQ

缓存:Memcached

存储:ceph、GFS、LVM、ISICI等

高可用及负载均衡:pacemaker、keepalive、lvs等

OpenStack核心组件:

身份服务:Keystone

计算:Nova

镜像服务:Glance

网络&地址管理:Neutron

对象存储:Swift

块存储:Cinder

UI界面:Horizon

测量:Ceilometer

部署编排:Heat

 

三、 Keyston—身份认证服务

(一) 功能

1) 管理用户及其权限

2) 维护openstack services的endpoint(endpoint是一个网络上可访问的地址,通常是一个URL。Service通过endpoint暴露自己的API,keystone负责管理和维护每个service的endpoint)。

3) Authentication(认证)和authorization(鉴权)

四、 Glance—镜像服务

(一) Glance

Glance负责镜像管理的模块,包括虚拟机镜像的查找、注册和检索等。

(二) Glance架构

1) Glance-api

对外提供rest api,响应镜像查询、获取和存储的调用。

2) Glance-registry

负责处理和存取镜像的metadata,例如镜像的大小和类型。

3) Database

Glance数据库里保存镜像大小元数据,镜像发给谁

4) Store backend

镜像存放在backend中。可保存在运行glance服务的服务器目录下面,也保存在第三方存储里面。

五、 Nova—计算服务

(一) 用途和功能

1) 虚拟机生命周期的管理,从创建到被删除

2) 管理计算资源比如CPU、内存

3) Nova生成虚拟机,但生成虚拟机的操作通过调用虚拟化KVM

 

(二) Nova架构

1) Nova-api

对外提供一个接口,提供如下服务,比如创建快照、解除浮动ip的绑定、连接接口、分离接口、编辑实例、更新元数据、废弃实例、调整实例大小、锁定实例、解锁实例、硬重启实例、重建实例、删除实例。

2) Nova-scheduler

负责一个虚拟机被启动在哪一个计算节点(即kvm的虚拟化节点)上,即调度。

“实例类型”体现了资源需求。调度过程为filter(过滤)—>weighting(权重计算)。

3) Nova-compute

节点上运行了nova-compute服务即为计算节点,起到管理作用。Openstack对虚拟机的操作,最终都交给nova-compute来完成。nova-compute管理虚拟化,比如kvm,kvm去生成虚拟机。

4) Nova-conductor

 访问数据库,nova-compute经常需要更新数据库,比如更新和获取虚机的状态。处于安全性和伸缩性的考虑,nova-compute并不会直接访问数据库,而是将这个任务委托给nova-conductor。

5) Nova-console

访问虚拟机的控制台

Nova -console:用户可以通过多种方式访问虚机的控制台:

6) Nova组件间消息传输使用message queue

六、 Neutron—网络服务

(一) 什么是neutron?

SDN:通过软件实现网络的功能。

1) Neutron:通过程序定义虚拟网络设备。

2) 功能

提供网络支持,包括二层交换、三层路由、负载均衡、防火墙等。

二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换机属数据链路层设备,可以识别数据帧中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。

(二) Network—隔离的二层广播域

1) Local

同一个宿主机里面的虚拟机可以通信

2) Flat

虚拟机可以跨宿主机通信,不过虚拟机必须在同一个网段里面,(同一网段指的是ip地址和子网掩码相与得到相同的网络地址)同一个网络地址里面的两个ip。一块网卡是一个ip地址。

注:同一个网段指的是网络段相同的地址,子网掩码是用来切割地址的网络地址和主机地址的,但反过来看,同一网段的地址子网掩码一定相同!为每个网段都分配一个IP地址段,例如:192.168.2.0--192.168.254.0段IP地址。这就是同一网段!

3) Vlan

即虚拟局域网,vlan作用是隔离广播域,广播域的定义如下图。

交换机如果收到广播,处于同一广播域的所有主机都会接收到。但有时并不想让处于同一广播域的所有的主机都接收到,所以给交换机一个打vlan标记的功能,只有同一个vlan标记的主机才可接收广播。网关接口可实现不同vlan之间的通信。

虚拟机通过VLAN进行流量隔离,不同租户虚拟机被划分到不同的VLAN中。VLAN技术通过VLAN ID对不同的VLAN进行区分,用于进行VLAN识别的VID字段长度为12bit,即实际可分配的VLAN ID数量为2^12-2 = 4094(首尾两个VLAN ID保留)。

 

注:局域网和虚拟局域网区别:局域网主要是指在某一个区域内由多台计算机组成的计算机组;虚拟局域网是局域网衍生,主要是一组逻辑上的设备和用户,这些设备和用户不受到物理位置的限制,可根据功能等因素组织起来,形成通信,因此被称为虚拟局域网。

同一局域网的两台电脑,对外IP是相同的,对内是不同的。

4) Vxlan和gre

两者都是基于隧道技术的overlay网络。

(三) Subnet

确定到子网地址段

(四) Port

虚拟交换机上的一个端口。

(五) Neutron部署方案

1) 方案一:控制节点+计算节点(通常采用)

控制节点:部署服务包括neutron server(主服务),core plugin(核心插件)的agent和service plugin的agent。

计算节点:部署neutron plugin的agent

2) 方案二:控制节点+网络节点+计算节点

控制节点:部署neutron server服务

网络节点:部署core plugin(核心插件)的agent和service plugin的agent。

计算节点:部署neutron plugin的agent

(六) 几类网络流量

1) Management网络

管理网路,用于openstack组件之间的交互,连接数据库,连接mq等。

2) Api

Openstack各组件通过该网络向用户暴露api服务。Keystone,nova,neutron,glance,cinder,horizon的endpoints均配置在api网络上。Management和api用第一块网卡。

3) Vm网络

虚拟机之间通信的一种网络,用第二块网卡

4) External网络

虚拟机访问外网用external网络,用第三块网卡

 

 

租户网是跑虚拟机网络连通的一块网卡;

集群网是跑openstack自己组件的网卡;

(七) 组件构成

1) Neutron server

对外提供openstack网络api,接收请求,并调用plugin处理请求。

2) Plugin

处理Neutron server发过来的请求

3) Agent

具体创建网络的工作由agent代理去做

4) Network provider

Agent代理通过Network provider工具实现创建网络

5) Database

存放openstack的网络状态信息,包括network,subnet,port,router等。

6) Queue

组件间通信和调用

 

七、 Horizon web—管理界面

Horizon是组件,提供了dashboard服务。

八、 管理区域的概念

(一) Region

从地理位置上划分了不同区域region,比如北京机房region1和上海机房region2分别有自己的云平台,两个私有云环境,有自己的独属的控制节点、计算节点等等。但处于同一个集群以便统一管理,他们的keystone和dashboard服务是共用的。

 

(二) AZ

北京机房里面有很多独立的机架,每个机架上有很多服务器,这些所有的服务器组成了云平台环境。其中的一个或多个机架可以划成一个可用域AZ。

 

(三) Host aggreates

即主机聚合,是在AZ里进行二次划分,同一AZ下的不同的服务器根据其服务配置(比如有的服务器侧重内存大,有的服务器CPU多,有的服务器磁盘IO快)相同的为一个Host aggreates。

 

 

九、 Cinder—块存储服务

(一) Cinder

1) Block storage

块存储:挂接裸硬盘(也称为Volume卷),将裸硬盘分区、格式化、创建文件系统。

 

2) Cinder

Block storage service提供对volume从创建到删除整个生命周期的管理,而cinder就提供了block storage servide。

3) Cinder功能

提供rest api使用户能够查询和管理volume

提供scheduler调度volume创建请求

 

4) Cinder架构

Cinder-api对外提供统一的接口;cinder-volume负责存储,对接第三方存储;cinder-scheduler调度服务;cinder-database数据库。

Cinder提供存储管理,具体存储空间是由对外挂载的第三方存储服务比如NFS,LVM或者其他分布式存储提供的。

 

Cinder-volume通过driver驱动架构对接第三方存储。如果采用NFS存储,他有自己的驱动写在cinder-volume的配置文件里面。

 

5) Cinder工作流程

 

多种存储方式:LVM、NFS、Ceph、EMC

 

十、 Ceph

Ceph是分布式存储。支持三种存储接口:块存储、文件存储、对象存储。Openstack与ceph整合以支持虚拟机镜像的后端存储。

(一) 核心组件

1) Monitors:监视器

2) MDS:ceph元数据,主要保存ceph文件系统的元数据,块存储和对象存储不需要。

3) Osd:对象存储守护程序,负责存储数据、处理数据复制、恢复、回填、再平衡。

4) Rados:RADOS是ceph存储集群的基础。在ceph中,所有数据都以对象的形式存储,并且无论什么数据类型,RADOS对象存储都将负责保存这些对象。RADOS层可以确保数据始终保持一致。

5) Librados:librados库,为应用程序提供访问接口。同时也为块存储、对象存储、文件系统提供原生的接口。

librados第三方扩展库,将底层的RADOS对象存储扩展成了三种不同的接口,RBD块设备、radosgw对象存储、cephfs文件存储。

 

6) Radosgw:网关接口,提供对象存储服务。使用ligrgw和librados;来实现允许应用程序与ceph对象存储建立连接。

7) RBD:块设备,将数据分散存储在多个osd

8) Cephfs:ceph文件系统

 

0条评论
0 / 1000
y****n
3文章数
0粉丝数
y****n
3 文章 | 0 粉丝