12.Nova计算管理
Nova作为OpenStack的核心服务,最重要的功能就是提供对于计算资源的管理。
计算资源的管理就包含了已封装的资源和未封装的资源。已封装的资源就包含了虚拟机、容器。未封装的资源就是物理机提供的CPU和内存资源。
Nova可以提供全生命周期的管理,从资源进入到Nova开始,到分配、使用、管理、维护、损坏。
Nova只负责资源管理,不做监控,同时不做物理管理。
理论上来说,Nova需要和所有的服务都建立连接,因为所有的业务都需要Nova的资源支持。
12.1Nova架构
- API:提供对外访问的接口,主要是对接Cli和web两个类型的服务。
- Conductor:主控服务,主要负责查询和连接Nova核心数据库。同时负责Nova所有请求的执行,但是需要注意的是Conductor并不承担真正的任务执行工作,更多的是任务管理和下发。
- Scheduler:分配、资源管理器,所有的资源封装,从哪个物理机进行分配,由Scheduler决定。所以一个物理机资源,物理机对资源是所有权,scheduler拥有管理权,用户拥有使用权。
- placement:资源监控服务,主要负责监控底层服务器可以提供的资源的数量。
- DB数据库:记录了Nova核心的配置信息,同时还记录了资源分配的情况。
Nova或者说整体OpenStack对资源池的管理分为了三级。分别为Region、Availablility Zone、Host Aggregate。对应区域、可用区、主机组(机柜)
区域对应了一个物理上的地域概念,比如上海、北京,区域之间是完全隔离的。只做网络联通,具有物理地域隔离的特性。
AZ可用区可以理解为一个Region下的不同的机房,他们的电力、网络等资源都是独立的。
每个机房的内部有很多的服务器,对服务器进行分组就可以形成Host Aggregate,但是一般情况下,我们都是按照机柜进行分组,所以一般我们也称主机组叫机柜编号。
如何定位到一台唯一的服务器,Region ID-AZ ID-机柜ID-设备ID
12.2常见的资源分配手段
- 轮询:按顺序每台设备分发一个请求,优势在于节省了监控资源,可以快速下发任务,降低延迟。但是缺点在于没有考虑到实际压力,默认所有的任务压力相同。
- 队列:所有任务都会进入队列排队,不分配明确的响应设备。当设备进入空闲状态,会自动从队列中找到排队最前面的任务分配给设备执行。优势在于不会出现任务不响应或者慢响应的情况,但是缺点就是如果有任务造成设备高延迟响应,同时并发量极高,就会堵塞队列。造成所有任务响应高延迟现象。
一般情况下,为了解决队列的排队问题。可以选择开启并发队列。同时大型的互联网公司会对不同的队列开放VIP、SVIP等。简单来说就是优先响应高优先级的队列,保证关键业务的正常执行。
- 监控:监控资源的全局使用率,哪个服务器最空闲,就分配给谁去执行。
- 按CPU使用率
- 按内存使用率(Nova默认)
- 按任务数
- 按优先级
12.3如果想把线下的服务器迁移到云上,需要怎么做
- OpenStack上需要创建一个规格,规格需要大于等于线下服务器的配置
- 创建一个普通的用户,给用户使用
- 上传线下服务器的镜像
- 开放用户操作规格和镜像的权限
- 创建一个项目分配给用户,同时让规格能够在该项目中使用
- 创建VPC,创建VPC可分配的网络,开放用户权限
- 添加一个公网IP给用户开放
- 更换用户登录
- 创建VPC,设置IP和子网
- 创建实例,选择规格、网络、公网IP、存储、镜像规格,设置密码创建完成
- 开始迁移
- 迁移完成,测试目标端功能是否正常
- 关闭源端,迁移结束
卷+磁盘+硬盘+块存储+LUN
存储服务+windows+硬件+存储服务的类型+逻辑磁盘
文件共享服务:FTP、TFTP、NAS、NFS、CIFS
FTP文件共享协议
TFTP快速文件共享协议
NAS提供文件共享服务的存储设备
NFS Linux系统使用的文件共享协议
CIFS windows系统使用的文件共享协议
13.Swift
14.Linux网络虚拟基础
Linux下的网络虚拟化本质就是将原本物理网络中的物理网卡、物理虚拟机以软件应用的形式在操作系统中虚拟化。通过系统软件实现虚拟的网卡和虚拟的交换机以实现在一个物理设备内的多重网络交换。
正常情况下,一个物理网卡只能有一个IP,转换也必须要物理设备实现,但是在虚拟化的场景下,每个虚拟机都会有自己独特的网络需求。所以如何让一个物理设备的虚拟环境能够满足不同虚拟机的需求,就成为了需要解决的问题。通过虚拟化,我们将全套的物理网络在服务器中进行了虚拟实现。
本质就是物理结构的软件化,通过软件实现了物理网络的所有功能。
在常规的网络虚拟化中,我们需要对网卡和交换机做虚拟化。然后制定一些隔离规则,保证虚拟网络安全性。
14.1常规的网卡虚拟化方式
- TAP:TAP是目前常用的虚拟化解决方案,TAP技术可以实现桥接、NAT、仅主机网络。其中桥接指的是虚拟机的网卡直接复制物理机网卡的信息。等同于给虚拟机挂上了物理网卡上网。中间不需要做任何转换。NAT模式指的是虚拟机内部的网卡和物理机的网卡配置不同。所以我们需要将虚拟机的配置转换为物理机的配置来实现网络联通,流量发出虚拟机网卡配置转换为物理机网卡配置,流量返回物理机网卡配置转换为虚拟机网卡配置。但是需要注意的是NAT并不是改变了网卡配置,改变的是发出的流量的信息,改变的就是封装中控制信息的内容。物理机底层需要记录物理网卡和虚拟网卡的映射关系,以保证流量控制信息在进出时正常的转换。仅主机指的是只在物理机内部交换信息,不对外发送数据。一般用于物理机内部的多个虚拟机之间的信息交互。
- TUN:Tunnel隧道网络,一般常用于VPN技术以及VXLAN技术,其主要的目标是为了打破物理网络的隔离特性,在物理网络的基础上建立一个虚拟的网络架构。通过在物理网络上架构隧道,可以实现物理网络和虚拟网络的隔离,不论物理网络怎么建设,虚拟网络都可以自定义,实现了每个用户的独立网络建设。
- VETH:虚拟以太网,一般是用于创建子接口使用的,这部分技术使用的不是很多,主要是负责在一个物理网卡上实现多种流量的传输。例如eth0可以创建出eth0.1
14.2交换机虚拟化
Linux Bridge:Linux网桥、Open vSwitch:开放虚拟交换机
Linux Bridge和OVS本质上都是交换机虚拟化,都可以实现虚拟网卡的接入。为虚拟网卡提供相关的网络服务功能,但是Linux Bridge网桥只能提供基本的网络服务,满足上述网卡的通信需求。OVS就可以在基本的网络服务之上提供高级管理功能和更多的网络服务方式。
Linux Bridge只能在物理机内部实现,OVS可以跨物理机实现。
14.3如何隔离一个物理机中不同虚拟机的网络?
由于虚拟网卡和虚拟交换机拥有和物理网络设备一样的功能,所以我们完全可通过在虚拟网络中做网络配置,实现网络隔离,比如vlan或者将不同的网络分配不同网段的IP地址。NameSpace命名空间法通过创建隔离域的形式实现网络隔离的,在不同域中的虚拟机都无法发现对方的存在,网络自然可以隔离开。网络隔离可以理解为软隔离,需要打通网络的时候,可以通过配置实现。命名空间是硬隔离,等于虽然资源源自于同一台设备,但是虚拟机层面都直接隔离开,网络无法打通。
TAP网卡主要是关联Bridge进行流量转发,可以关联OVS
Tun网卡主要是关联OVS进行流量转发,通过关联bridge可以实现基本的网络转发
15.Neutron的基本对象
- 网络:也可以被称为VPC网络,每一个网络等于是一个跨物理设备的大型网络架构,网络和网络之间是完全隔离的,在网络中所包含的所有的虚拟机或其他设备都需要让自己的IP属于该网络才可以通信。
- 子网:子网是网络中的不同网段的网络,等同于在大型网络中划分vlan,子网是分配给虚拟机的单位,里面包含了DHCP服务。虚拟机得到分配的IP一定归属于某一个子网,而所有的子网都应该归属于网络。
- 路由:路由是一种记录从源到目的之间的通信传递方式的信息,比如从虚拟机到公网的转发方式和转发路径信息。网络中所有的路由统一整合起来就成为了路由表。路由表记录了当前网络的所有转发信息。
15.1Neutron基本管理对象
- 网络:代表当前创建的网络的全局
- 子网:网络的拆分网段
- 端口:一般是挂载给虚拟机的虚拟网卡,端口的IP源于子网,其一定要属于子网的范围,可以有手动分配和DHCP两种方式。
- 路由:记录了虚拟机访问的路径和方式。
- Floating IP:浮动IP,一般是指公网IP地址。
15.2数据中心网络设计
在传统网络中,用户的流量往往是对外访问,所以采用三层结构组网还是二层结构组网都不会有很大的性能差距。但是在数据中心网络中,往往流量的转发是基于内部的转发形式。这就导致如果数据中心使用的是三层架构,就很容易出现流量被堆积在核心层。
网络架构设计一般是分为了接入层、汇聚层和核心层。接入层主要负责是终端接入,端口多流量小,汇聚层主要负责将接入层的流量做汇聚,以实现流量汇聚转发。核心层负责了全局的跨网络流量转发,核心层设备接口少,但是流量大。
东西向、南北向流量:东西向流量指的是同层流量转发,一般针对的是内部同级别的设备之间的流量互传。南北向指的是纵向流量转发,一般是内部到外部的流量转发。
传统网络南北向流量占到了转发总流量的80%以上。数据中心的流量大部分是内部互转,所以东西向流量占到了总流量的85%以上。
传统三层网络结构适用于传递南北向流量,数据中心网络适合于东西向流量转发。
数据中心网络使用三层架构会造成流量拥塞,所以必须要采用新架构减少影响,尽量让流量在内部互传,不要到达核心层,所以数据中心为了避免流量大量的转发到核心层,就将核心流量都在二层完成。适配于这种结构的网络就叫做大二层网络。
为了让流量可以在二层完成互转,这就对二层设备的性能提出了要求,所以数据中心有专门的数据中心通信设备。传统网络交换机都是S系列,园区网交换机就是CE系列。
如果所有的东西向流量都需要在二层完成转发,那么如何实现基于物理网络架构的逻辑网络设计?这种情况下就需要使用到VXLAN技术。
在云架构下,每个用户都需要使用网络,但是根据用户网络架构的不同,IP地址是会出现冲突的。如何实现在一个大型网络中为不同的用户维护相同的IP呢?想要实现相同IP不冲突,就需要让这两组IP不要互相发现对方。所以需要通过隔离来进行实现,每个用户都是一个独立的完全可用的隔离网络。通过VXLAN技术可以实现网络的隔离,因为隔离的不是物理网络而是虚拟网络
VXLAN虚拟扩展本地局域网本质上是一种隧道技术,传统的隧道技术只构建1个或者是一类隧道。VXLAN建立了若干条隧道,然后给隧道可以做分组,将相同的一类隧道展现出来的时候,就形成了一个隧道网络,这个隧道网络就是虚拟网络。一个物理链路上可以有若干条隧道。根据隧道网络的ID不同,在一个物理网上,可以有多个虚拟网络。