OpenStack学习笔记(一)

基于OpenStack设计与实现书籍内容笔记:

了解最原始的初始化虚拟化技术:

允许多个用户远程共享同一高性能计算设备的时间

了解了虚拟化技术的初衷:

使昂贵的大型资源得到尽可能的充分利用

云计算的三种模式:公有云、私有云和混合云

扩展了解:

1、公有云:面向大众提供资源的服务;用户通过互联网来获取这些资源的使用;

优势:成本低,扩展性非常好

缺点:对于云端的资源缺乏控制、保密数据的安全性、网络性能和匹配性问题

2、私有云:“私有”更多是指此类平台属于非共享资源,而非指其安全优势。私有云是为了一个客户单独使用而构建的,所以这些数据、安全和服务质量都较公有云有着更好地保障。

私有云又分为两类:

内部私有云:由组织在自己的数据中心内构建,该形式在规模和资源可扩展性上有局限,但是却有利于标准化云服务管理流程和安全性。这种方式适合那些需要对应用、平台配置和安全机制完全控制的机构。

外部私有云:这种私有云部署在组织外部,由第三方机构负责管理。第三方为该组织提供专用的云环境,并保证隐私和机密性。该方案相对内部私有云成本更低,也更便于扩展业务规模。

3、混合云:在混合云模式中,云平台由两种不同模式(私有或公有)云平台组合而成。这些平台依然是独立实体,但是利用标准化或专有技术实现绑定,彼此之间能够进行数据和应用的移植

​应用混合云模式,一个机构可以将次要的应用和数据部署到公有云上,充分利用公有云在扩展性和成本上的优势。同时将任务关键型应用和数据放在私有云中,安全性更高。

4、公有云用户的需求就是快速上线,经济实惠。而私有云用户更多的是要求平滑过渡,保留现有体验,不影响现有业务。在选择公有云还是私有云时,最终的要求来自于用户自身,通过我们的比较,可以看出公有云和私有云各有偏重,也在不同的用户眼中有不同的评价。

扩展了解Vanderpool虚拟化技术:能够在同一台PC上运行多个操作系统同时工作的技术

云计算的原型理念:网络即是电脑

初始OpenStack:由RackSpace和NASA合作研发并发起,以Apache许可证授权的开源代码项目

OpenStack基金会的了解:简单的说是一非营利组织,由各个公司资会费,共同管理OpenStack项目,帮助推广OpenStack的开发、发行和应用

云计算有三种服务类型:

IaaS(基础架构):云服务提供商把 IT 系统的基础设施层作为服务出租出去,由消费者自己安装操作系统、中间件、数据库和应用程序。

PaaS(平台即服务):云服务提供商把 IT 系统中的平台软件层作为服务出租出去,消费者自己开发或者安装程序,并运行程序。

SaaS(软件即服务):云服务提供商把 IT 系统中的应用软件层作为服务出租出去,消费者不用自己安装应用软件,直接使用即可,这进一步降低了云服务消费者的技术门槛

PaaS和SaaS并不一定需要底层虚拟化技术的支持,但IaaS一般都是建立在虚拟化技术基础之上的

IaaS系统要解决的问题:如何自动管理这些物理主机上虚拟出来的虚拟机

IaaS的初衷:在大规模网络上或数据中心里,将有成千上万台物理主机,仅仅靠运维人员来完成这些管理任务是不现实的,这时候需要软件系统来自动辅助运维人员管理和维护系统的运行,给用户提供虚拟机服务

扩展了解:

1、Hypervisor:一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。

2、Hypervisor协调硬件资源访问,各个虚拟机之间的防护。服务器启动后,它会加载所有虚拟机客户端的操作系统,为虚拟机分配内存、磁盘和网络等。

3、Hypervisor是所有虚拟化技术的核心,主要功能是非中断的支持多工作负载迁移能力。

基于视频笔记:

云计算:代表计算资源像云水一样,按需分配,循环利用。比如一个干旱的位置需要雨水100滴,云就会降100滴雨水(资源)给这个干旱地,当不需要时,100滴雨水蒸发回答云上

云应用形式:

一、私有云:将基础设施与软硬件资源构建于防火墙内,基于iaas构建私有云平台供企业内部使用

二、云存储: 云存储系统是一个以数据存储和管理为核心的云计算系统

三、云游戏: 游戏运行云平台服务端,云平台将游戏画面解压缩后传给用户,用户端无需高配置处理器和显卡,只需要基本的视频解压缩能力即可。

四、云物联: 基于云平台实现物物相连的互联网。

五、云安全:通过网状的大量客户端检测网络中软件的异常,获取木马,恶意程序的最新信息,推送到云平台服务端自动分析和处理,再把解决方案发送给每一个客户端

六、公有云:云平台对外开放,主要以Iaas和Paas为主,较为成熟的是Iaas,如阿里云,腾讯云,青云等

七、混合云: 公有云和私有云的结合,即对企业内部又对企业外部,例如AWS

传统应用与云应用:

一、传统应用

    传统应用像养宠物,宠物病了要细心呵护

    每个应用都是独特的、专门的

    专门的服务器、硬件和软件保证可靠性

    资源不够,增加cpu、内存、磁盘

    专门的技术支持

二、云感知应用

    云感知应用像养牛,牛生病了,你需要一头新的牛

    应用跑在一个或多个虚拟机里

    资源不够,增加新的虚拟机

    应用挂起,重启或创建新的虚拟机

openstack相关组件和通信流程介绍:

五大组件

当你需要使用一台电脑时的步骤:发起命令买一台电脑,然后连网,装操作系统,附加硬盘,备份数据

horizon->提供web界面的控制台,点点鼠标发起请求->kevstone->认证全局,所有组件都要经过它->nova->调用虚拟化驱动,创建一台虚拟机(相当于买一台电脑)->neutron->连上网络(网络虚拟化)->glance->提供镜像(相当于装操作系统,镜像也备份在swift中)->cinder->附加硬盘(块存储)->swifit->备份(对象存储)(用于海量数据的存储备份)

horizon,nova,neutron三个组件基本实现了一个openstack私有云的功能,所以为核心组件

核心项目三个

1、控制台:

项目名:Horizon

功能:web方式管理云平台,建云主机,分配网络,配安全组,加云盘

2、计算:

项目名:Nova

功能:负责响应虚拟机创建请求、调度、销毁云主机

3、网络:

项目名:Neutron

功能:提供一整套API,用户可以基于该API实现自己定义专属网络,不同厂商可以基于此API提供自己的产品实现

存储项目2个

1、对象存储

项目名:Swift

功能:REST风格的接口和扁平的数据组织结构。RESTFUL HTTP API来保存和访问任意非结构化数据,ring环的方式实现数据自动复制和高度可以扩展架构,保证数据的高度容错和可靠性

2、块存储

项目名:Cinder

功能:提供持久化块存储,即为云主机提供附加云盘。

共享服务项目3个

1、认证服务

项目名:Keystone

功能:为访问openstack各组件提供认证和授权功能,认证通过后,提供一个服务列表(存放你有权访问的服务),可以通过该列表访问各个组件。

2、镜像服务

项目名:Glance

功能:为主机安装操作系统提供不同的镜像选择

3、计费服务

项目名:Ceilometer

功能:收集云平台资源使用数据,用来计费或者性能监控

高层服务项目1个

1、编排服务

项目名:Heat

功能:自动化部署应用,自动化管理应用的整个生命周期.主要用于Paas

组件间通信是基于rest api

keystone功能:

1、认证

2、分发rest api

keystone中决定user用户权限的是role,endpoint只是提供三类的访问途径,用户访问哪个路径都可以,不会改变用户的权限,只是为了统一有个规定

Endpoint 分为三类:

admin url –> 给admin用户使用,Port:35357

internal url –> OpenStack内部服务使用来跟别的服务通信,Port:5000

public url –> 互联网用户可以访问的地址,Port:5000

keystone详解:

User:user用户;使用Openstack组件的客户端可以是人、服务、系统,任何的客户端来访问openstack组件,都需要有一个用户名。

Credetials:用于确认用户身份的凭证

Authentication:验证用户身份的过程。Keystone 服务通过检查用户的 Credential 来确定用户的身份

Token:是一个数字字符串,访问资源时需要"亮出"你的令牌。

Role:给user用户划分权限

Policy:Policy就是一个JSON文件,默认是/etc/keystone/policy.json。通过配置这个文件,Keystone实现了对User基于Role的权限管理。

Project(Tenant):是一个人、或服务所拥有的资源集合。不同的Project之间资源是隔离的。在一个Project(Tenant)中可以包含多个User,每一个User都会根据权限的划分来使用Project(Tenant)中的资源

Service:即Openstack中运行的各个组件服务。

Endpoint 分为三类:

admin url –> 给admin用户使用,Port:35357

internal url –> OpenStack内部服务使用来跟别的服务通信,Port:5000

public url –> 互联网用户可以访问的地址,Port:5000

Catalog:catalog一个openstack部署的相关服务的集合,每个服务都有一个或者多个endpoint(即可以访问的url地址),即catalog=services+endpoint

glance组件:

v1版本

分为glance-api,glance-registry

glance-api:1、接受api请求,发给glance-registry。2、到后端的存储设备拉取镜像

glance-registry:1、查询数据库,获取镜像的元数据(镜像信息存在mysql数据库里)

v2版本

只用glance-api来完成上述操作

glance组件内布通信不走rpc机制(MQ),直接通信

简单了解三种存储方式

1、站在用户的角度,看到的是一个文件夹,就是文件存储

2、站在用户的角度,看到的是一个裸盘,就是块存储

3、站在用户的角度,存放文件调用的是rest api的方式去存,就算对象存储

文件存储可以基于原来的文件做修改,对象存储不行(只能覆盖)

cinder主要组成:

1、cinder-api:提供 rest 接口,负责处理 client 请求,并将 RPC 请求发送至 cinder-scheduler 组件

2、cinder-scheduler: 负责 cinder 请求调度,负责 cinder-volume 具体的调度处理,发送 cinder RPC 请求到选择的 cinder-volume。(实际上是从数据库里去调用所有cinder-volume信息,通过自己的算法来选)

3、cinder-volume:负责具体的 volume 请求处理,由不同后端存储提供 volume 存储空间

openstack组件内部的通信,一个组件一个服务是基于rpc机制实现的。

rpc机制是基于AMQP(高级消息队列协议)实现的。AMQP是用于异步消息通讯的消息中间件协议,从而满足组件内部的松耦合性。rabbitmq就是基于AMQP的消息队列,可以理解为rpc机制就算基于rabbitmq实现的

AMQP 模型有四个重要的角色:

1、Exchange:根据 Routing key 转发消息到对应的 Message Queue 中

2、Routing key:用于 Exchange 判断哪些消息需要发送对应的 Message Queue

3、Publisher:消息的发送者(消息的发布者),将消息发送的 Exchange 并指明 Routing Key,以便 Message Queue 可以正确的收到消息

4、Consumer:消息的接受者(消息的订阅者),从 Message Queue 获取消息

拿寄快递举例:

publisher:快递内容

exchange:京东快递

routing key:地址

message queue:收快件箱

consumer:收件人

快递发布(publisher)选择一个快递->京东快递或顺丰快递(exchange)->发送到对应地址(routing key)->放在收件箱(message queue)<-收件人(consumer)从收件箱取件

Publisher可以分为4类:

1、Direct Publisher发送点对点的消息;

2、Topic Publisher采用“发布——订阅”模式发送消息;

3、Fanout Publisher发送广播消息的发送;

4、Notify Publisher同Topic Publisher,发送 Notification 相关的消息。

Exchange可以分为3类:

 1.Direct Exchange根据Routing Key进行精确匹配,只有对应的 Message Queue 会接受到消息;

 2.Topic Exchange根据Routing Key进行模式匹配,只要符合模式匹配的Message Queue都会收到消息;

 3.Fanout Exchange将消息转发给所有绑定的Message Queue。

OpenStack RPC 模块提供了 rpc.call,rpc.cast, rpc.fanout_cast 三种 RPC 调用方法,发送和接收 RPC 请求。

rpc.call:发送 RPC 请求并返回请求处理结果(一定要有返回值)

rpc.cast:发送 RPC 请求无返回(不需要返回值)

rpc._cast:用于发送 RPC 广播信息无返回结果

组件间通信基于rest api(每个组件内都会有一个api组件存在),组件内通信基于rpc机制

nova与cinder的工作原理类似

nova主要组成:

nova-api:与cinder-api作用类似

nova-scheduler:与cinder-scheduler作用类似

nova-compute:与cinder-volume作用类似

nova-conductor:帮助nova-computer查看数据库,然后将消息通过message queue传给nova-computer

为什么查看数据库时要借助nova-conductor而不是nova-computer直接查?

1、基于安全考虑:一旦虚拟机被攻破了,就会通过nova-computer拿到虚拟机相关信息

2、基于数据库压力考虑:nova-computer有很多个,可以同时建很多虚拟机出来,多个nova-computer同时访问数据库会对数据库造成压力

MQ(message queue)是消息的分发机制,是各个组件之间用来解耦和。是一个异步机制

数据库是用来记录整个openstack的状态的,例如各个组件的状态,建立虚拟机的详细信息,镜像的详细信息,用户的令牌等

openstack的组件全部可以单独找一台机器布置,完全是分布式的

neutron包含组件

1、neutron-server:可以理解为一个专门用来接收neutron rest api调用的服务器,然后负责将不同的rest api分发到不同的neutron-plugin上

2、neutron-plugin:可以理解为不同网络功能实现的入口,各个厂商可以开发自己的plugin。接收到分发过来的rest api后,像neutron database完成一些信息的注册,然后将具体要执行的业务操作和参数通知给自身对应的neutron agent

3、neutron-agent:可以直观的理解为neutron-plugin在设备上的代理,将通知的业务操作和参数转换为具体的设备级操作,以指导设备的动作。当设备本地发生问题时,neutron-agent会将情况通知给neutron-plugin。

neutron database:neutron的数据库,一些业务相关的参数都存在这。

neutron-plugin分为两部分:core-plugin,service-plugin

core-plugin:neutron中即为ML2(二层插件,数据链路层,基于mac地址)

ML2包括network、subnet(子网)、port(虚拟交换机上的一个虚拟交换端口)

service-plugin:除了core-plugin以外的其它plugin,包括route、firewall、loadbalancer(负载均衡器)、VPN等

部署时通常neutron-server和neutron-plugin部署在一台机器上,neutron-agent(具体干活的)部署于一台专门的机器上(这台机器被称为网络节点)

三个节点:控制节点(各个组件的api放在上面负责发请求接请求)、计算节点(负责建虚拟机的)、网络节点(负责各种各样的网络功能)

vlan网络模式特点:

1、必须跟物理网络绑定

2、大二层:广播通信

3、可以不需要网络节点

4、小规模部署,效率高

缺点:

1、4096 vlan上限问题

2、mac地址和arp表过大

3、广播风暴问题

4、基于ip地址的子网划分限制网络规模

流程图:

OpenStack部分组件通信流程图

Rpc机制实现简图

 

Cinder组件内部通信流程图

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 很高兴听到您对OpenStack Glance的学习笔记感兴趣。OpenStack Glance是一个开源的镜像服务,它允许用户在OpenStack云环境中创建、共享和管理虚拟机镜像。Glance支持多种镜像格式,包括RAW、QCOW2、VMDK等,并提供了RESTful API和CLI工具来管理镜像。在使用Glance时,用户可以通过上传、下载、删除、共享和复制镜像等操作来管理镜像。同时,Glance还支持镜像元数据的管理,用户可以通过元数据来描述镜像的属性和特征。希望这些信息对您有所帮助,祝您学习愉快! ### 回答2: OpenStack是目前最流行的开源云计算平台之一,其中的Glance组件是一个用来管理镜像的服务。本文将介绍OpenStack Glance的基本概念和使用方法。 Glance的作用 Glance是OpenStack中的镜像服务,它的主要作用是将镜像存储在一个地方,并提供管理、查询、验证和下载等功能。在OpenStack的虚拟机中,镜像是用来部署和运行实例的重要资源。 Glance的安装 1. 确认Nova、Keystone和Swift已安装且正在运行。 Glance依赖这些服务。 2. 安装Glance。可以使用yum安装Glance组件,或者通过源码安装。 Glance的配置 1. 修改glance-api.conf和glance-registry.conf文件。配置文件是Glance的核心,包含了Glance API和Glance registry的所有设定。 2. 设置后端存储。Glance支持多种后端存储,包括文件系统、Swift、Ceph等。 Glance的使用 1. 添加镜像。可以使用命令行工具或Web API向Glance添加镜像。 2. 查看镜像。可以使用命令行工具或Web API来查询Glance中已有的镜像。 3. 下载和导出镜像。可以使用命令行工具或Web API来下载和导出镜像。 4. 镜像格式转换。可以使用命令行工具或Web API来转换Glance中的镜像格式。 5. 镜像元数据管理。可以使用命令行工具或Web API来管理镜像元数据。 总结 通过本文的介绍,我们了解到了OpenStack Glance的安装、配置和使用方法。Glance是OpenStack的重要组件之一,它的功能和使用方法对于开发人员以及云计算管理员都是非常重要的。希望这些学习笔记能够帮助你更好地理解和使用OpenStack Glance。 ### 回答3: OpenStack是开源的云计算平台,其中包含许多开源软件。Glance是OpenStack中的一款镜像服务,可用于管理虚拟机镜像。Glance有许多功能特性,包括镜像上传、下载、删除、共享等。本篇文章将介绍Glance的学习笔记。 1. 安装Glance:若要使用Glance,必须先安装它。在OpenStack中,使用命令“apt-get install glance”即可安装Glance。请注意,该命令仅在Ubuntu和Debian操作系统上有效。如果使用其他操作系统,请查阅相应文档进行安装。 2. 配置Glance:在安装Glance后,必须配置它才能使用。Glance的配置文件位于“/etc/glance/glance.conf”中。首先,必须配置数据库的信息,例如数据库的类型、用户名、密码、地址等。然后,必须配置镜像存储的位置,例如文件系统、Swift、Ceph等。最后,必须配置API的认证信息,例如使用Keystone进行认证等。 3. 使用Glance上传和下载镜像:Glance的主要功能是上传和下载镜像。首先,必须通过命令或API创建一个镜像,然后将镜像上传到Glance中。上传时,可以指定镜像的名称、描述、格式、架构等。上传完成后,可以使用命令或API下载镜像。下载时,可以指定镜像的ID、名称、格式等。下载完成后,可以使用该镜像创建实例。 4. 共享镜像:如果多个用户需要访问相同的镜像,可以使用Glance的共享功能。将镜像共享给指定的项目或用户,这些用户就可以访问到该镜像。共享时,必须指定共享的对象,该对象可以是项目或用户。 5. 删除镜像:如果需要删除镜像,可以使用命令或API删除它。删除前,请先确认该镜像是否正在使用,如果正在使用,建议先停止相关实例,否则无法删除镜像。 综上所述,Glance是OpenStack中非常重要的一个组件,通过学习Glance的使用,可以更好地管理虚拟机镜像。在使用Glance时,应始终注意镜像的安全性和隐私性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值