一、云计算的产生背景
1.云计算的产生背景
云计算的驱动力:
1.技术驱动
2.需求驱动
3.商业模式驱动
海量的数据和终端
IT的复杂性、商业延迟也是促进云计算产生的一个因素
2.云计算的概念
—商业视角 云计算=信息电厂
–技术视角 云计算=计算/存储的网络
云计算分为狭义和广义两个
狭义的是指:IT技术设施的交付和使用模式,通过按需易扩展的方式获得所需的资源,包括基础架构,平台,软件等
广义的是指:通过网络按需、易扩展的方式获得所需的服务,这种服务可以是IT和软件,互联网相关的,也可以是任意其他的服务。比如,医疗云,教育云等
3.云计算的部署模式:
1.private cloud(私有云)
2.public cloud(公有云)
【私有云和公有云通过企业防火墙隔离】
3.混合云
4.云计算的商业应用模式:
IaaS(Infrastructure as a service):将基础设施当作服务(虚拟机的租用,云盘等)
PaaS(Platform as a service):主要面型技术开发者
SaaS(Software as a service):面向中断用户
二、云计算的价值
1.行业客户对云的认知
- 大多数客户人为云计算必须演进至开放平台
- 认为交付将基于云来进行
- 认为找到合适的战略合作伙伴以启动云战略至关重要
- 且和多人关心云平台的安全性
2.行业客户反应的困难与挑战
- 复杂性与平滑过度
- 可靠性
- 工作负载及可迁移性
- 数据的安全性
- 厂商锁定
- 看不到投资回报
3.云计算的价值:
- 只能资源的调度,即实现负载均衡和通过热迁移来实现节能减排
- 提高资源的利用率通过的方式:通过资源共享通过分时共享
- 分布式的计算和存储
- 统一管理
- 业务快速部署
4.云计算带来的机会
- 对于云计算供应商
- 对于最终的消费者
- 对于中小型客户
- 对于企业级的客户
- 对于政府机构
三、虚拟化技术的简介
-
虚拟化技术的起源
虚拟化技术的发展由来:
60年代在大型机有所应用
90年代在小型机上出现逻辑区分的应用
2000年,X86平台虚拟技术开始出现
2001年,X86平台虚拟化技术在服务器上开始应用
虚拟化技术的推动力:
CPU的处理速度越来越快,超出软件对硬件性能的要求
INTER和AMD在CPU里加入了虚拟指令
企业成本压力
环保压力
不断增长的业务压力
-
虚拟化的概念
虚拟化是指通过虚拟化技术,将一台计算机虚拟为堕胎逻辑计算机,在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可以运行不同的操作系统,并且,应用程序都可以在相互独立的空间内运行而互不影响,从而显著的提高了计算机的工作效率。
物理机:宿主机
虚拟机:客户机
虚拟化后的区别就是:物理机上可以同时运行多个虚拟机,而且还有虚拟机监控器,通过虚拟机监控器的模拟,可以使得虚拟机在上层软件看来就是一个真实的机器。
虚拟机是将物理资源池化了,多个虚拟机直接从资源池种获取资源,与硬件解耦和。
- 虚拟化的主要内容
- 计算虚拟化:CPU虚拟化 内存虚拟化 IO虚拟化
- 存储虚拟化:裸设备+逻辑卷 存储设备虚拟化 主机存储虚拟化+文件系统
- 网络虚拟化: VPN VLAN
-
虚拟化的本质
分区
隔离
封装
独立
- 5.虚拟化技术的应用案例:—热迁移
四、OpenStack 的架构—了解各个组件
-
提供身份认证服务的 Keystone组件
主要负责身份服务,管理用户、租户、角色、服务和服务断点
可以支持SQL,PAM,LDAP作为后端
-
提供计算服务的Nova组件
主要负责虚拟机实例的调度分配以及实例的创建、起停、迁移、重启等操作,从而来管理云中实例的生命周期。
是整个云中的组织控制器
主要功能:
计算服务:
计算节点运行虚拟机的分布式控制器
负责处理器调度策略及API调用等。
-
提供镜像服务的 Glance组件
能够实现镜像的创建、镜像快照管理、以及镜像模板等等。
同时也支持各种格式的镜像格式
-
提供对象存储服务的Swift
主要提供了存取数据的应用服务。
通常用于保存非结构化的数据,比如通常作为Glance组件的存储后端或者作为一些云盘等应用
-
提供网络服务的Neutron
基于软件定义网络的思想,实现网路资源的软件化管理。支持各种各样类型的插件,实现多租户网络的隔离。也可以对硬件以及软件的解决方案进行集成。
-
提供块存储服务 Cinder
为虚拟机实例提供卷的持久化服务,同时支持一些对卷的快照、备份等的一些管理。基于插件的架构,非常易于扩展。
总结:块存储服务 持久化磁盘 基于插件的架构,易于扩展
-
提供WEB统一化管理界面服务的 HORIZON组件
主要提供了自动化仪表板的管理服务,实现对用户、租户、卷、网络等几乎多有资源的图形化管理。
-
提供监控和计量服务的 Ceilometer
提供对Opens tack中平台组件的监控
提供纪良服务
五、NOVA
1、什么是Nova?
Nova是Open stack云中的计算组织控制器,管理opens tack云中实例的生命周期的左右活动,使得nova称为一个负责管理计算资源、网络、认证所需的可扩展性平台。
2.常用术语
KVM:内核虚拟化,Open Stack 默认的Hypervisor
Qemu: KVM 的替补角色,没有KVM的执行效率高,不支持全虚拟化
Flavor:新建虚拟机的配置列表,虚拟机模板
Keypair:ssh连接访问实例的密钥对
安全组:是一个控制访问策略的容器,里面包含了各种各样的安全组规则
安全组规则:用来控制实例访问的具体策略
3.Nova框架
Nova组件
Nova API:提供了统一风格的 RestAPI接口,作为Nova组件的入口,接受用户的请求
Nova scheduler :负责调度,将实例分配到具体的计算节点
Nova conductor:主要负责与Nova数据库进行交互
Nova compute:用于虚拟机实例的创建和管理
以及提供消息传递的消息队列:Nova各个组件之间的消息传递
和数据库模块:
【重要!!!!】Nova各个组件如何协作运行?
首先,用户通过CLI命令行或者horizon向Nova组件提出创建实例的请求时,Nova API 作为Nova的入口,将会接受用户的请求,将会以消息队列的方式,将请求发送给Nova scheduler,Nova scheduler从消息队列中,侦听到Nova API的消息队列后,去数据库中查询,当前计算节点的负载和使用情况,由于Nova scheduler不能直接跟数据库进行交互,因此,将会借助于消息队列的方式通过Nova conductor组件,进而与数据库进行交互,然后将查询到的结果,将虚拟机实例分配到当前负载最小,并且满足启动虚拟机实例的那个计算节点上,但最终的虚拟机实例的组件,还是要靠Nova compute来完成。但是实例的创建,离不开镜像、网络等一些资源的配合,因此,Nova compute将会与Nova volume、Nova network等等一些组件通过消息队列的方式实现相互的协作。最终完成虚拟机实例的创建。
-
Nova的功能特性:
• 实现实例的生命周期的管理
• 调动管理平台的网络、存储等资源
• 提供了统一风格的 RestAPI接口
• 支持KVM、VMware等透明的hypervisor
• 各个模块之间通过消息队列来进行消息传递
六、提供对象存储服务的Swift介绍
1.什么是Swift?
Swift 是 提供高可用分布式对象存储的服务,为nova组件提供虚拟机镜像存储服务,在数据冗余方面,无需采用read【?】通过在软件层面,引入一致性散列技术和数据冗余,牺牲一定得数据一致性,来达到高可用和可伸缩性。支持多租户模式下,容器和对象读写操作,适用于互联网应用场景下非结构化的数据存储,比如,华为云盘等。
2. Swift中的常用术语【1】
Account:用户定义的管理存储区域
Container:存储隔间,类似于文件夹或者目录
Object:包含了基本的存储实体和它自身的元数据
Ring:环,记录了磁盘上存储的实体名称和物理位置的映射关系。
以上术语之间的关系:
首先,可以创建多个account,每个account里可以创建多个容器container,每个container下可以创建多个object,【container 之间不能相互嵌套】
Swift的介绍
Swift在物理结构上往往会存储对象的多个副本,通常按照物理位置的特点,将对象拷贝到不同的物理位置的特点,将对象拷贝到不同的物理位置上,来保证数据的可靠性。
常用术语2
Region:地域,从地理位置上划分的一个概念
Zone:可用区,按照独立的供网、供电既基础设备划分
Node:节点,代表了一台存储服务器
Disk:磁盘,代表着物理服务器上的存储设备
Cluster:群集,为冗余考虑而设计的架构
以上术语之间的关系:
可以根据不同的物理位置,有不同的Region,不同的region代表两个不同的城市,然后在同一个region下,为冗余的考虑,设置了多个可用区,zone。每一个可用去可以有不同的存储节点,node;在更大的架构上,两个region可以构成一个cluster。
-
Swift的架构
首先,用户提出一个对象存储服务的申请,由Swift的API接受和处理,收到之后,先去找???认证节点,对用户的身份进行认证。认证通过后,将请求提交给,名称为Swift Proxy的组件,Swift Proxy是Swift 的代理,由Swift Proxy来确定究竟应该将存储对象放在哪一个满足存储要求的存储节点上。最终将对象存储到指定的存储节点上即可。最终将返回结果返回给用户。
05Keystone 简介
提供身份验证、服务规则和服务令牌功能
任何服务之间相互调用,都需要经过keystone的身份验证
常用术语:
User:Openstack最基本的用户
Project:指分配给使用者的资源的集合
Role:代表一组用户可以访问组员的权限
Domain:定义管理边界,可以包含多个project/tenant、user、role等
Endpoint:服务的URL路径,暴露出来的访问点
七、Keystone认证模型
首先创建两个域domain1和2,给两个公司使用,每个公司在domain下创建三个子公司project1 2 3,project下可以创建多个用户User,用户User可以跨多个project存在。
Keystone认证原理
当用户再创建时,将通过Keystone将会创建一个访问令牌accesstoken,假设当用户提出创建虚拟机实例的请求时,首先将自己的访问令牌和访问请求提交给NOVE服务,NOVE服务为确保用户的访问令牌并没有篡改过,因此首先会将访问令牌交给keystone进行验证,验证通过后nova为了启动虚拟机的实例,还需要向Glance组件申请相关的镜像资源,Glance为保证访问令牌在传递的过程中没有被篡改过,也需要将访问令牌发送给keystone做确认,验证通过后将会发放镜像资源给nova组件,虚拟机实例的创建还需要存储、网络等资源,因此nova组件还需要给负责各种资源的模块传递申请资源的请求,资源申请的过程中都会伴随这访问令牌的验证,nova拿到启动虚拟机实例的所有资源后进行实例的启动,然后分配给相关的用户。整个过程来看组件之间资源的调用都离不开keystone的验证….
八、Neutron介绍
1.Neutron的简介:
Neutron时open stack中负责提供网络服务的组件,基于软件定义网络的思想,实现软件化的网络资源管理,在实现上,充分利用了linux系统中各种与网络相关的技术,支持第三方插件
2. Neutron中常用的术语
Bridge-int:综合网桥,常用于实现内部网路通讯功能的网桥
Br-ex:外部网桥,通常用于跟外部网络通讯的网桥。
Neutron-server:提供了API接口,将配置好的API接口,提供给相关的插件,进行后续处理
Neutron-L2-agent:二层代理,用于实现二层网络通讯的代理,用于管理VLAN的插件,接受Neutron-server的指令来创建VLAN。
Neutron-DHCP-agent:为子网自动分发IP地址
Neutron-L3-agent:负责租户网络和floating IP之间的地址转换,通过linux iptables 中的NAT功能来实现IP转换
Neutron-metadata-agent:运行在网络节点上,用来响应nova中的metadata请求
LBaaS agent:为堕胎实例和open vswitch agent提供负载均衡服务
3. Neutron的架构
当Neutron通过API接口,接受来自用户或者其他组件的网络请求时,以消息队列的方式提交给2、3层代理,其中Neutron-DHCP-agent实现子网的创建和IP地址的自动分发。而Neutron-L2-agent实现相同VLAN下,网络的通信,Neutron-L3-agent实现同一个租户网络下,不同子网间的通信