openstack入门 www.aboutyun.com
课程整体介绍 理论 利于排错 实践
该如何学习openstack 1.看书 2.实践 3.爱好 4.尽量不要走极端 5.日志 6.配置文件
云计算openstack的理解 云计算是一种通过网络以服务的方式提供动态可伸缩的虚拟化的资源的计算模式。
云计算openstack的理解 云计算拥有以下特点: 虚拟化和自动化 服务器,存储介质,网络等资源都可以随时替换 所有的资源都由云端统一管理 高度的伸缩性以满足业务需求
Openstack用途 搭建云平台 openstack是一个搭建云平台的一个解决方案
Openstack发展历史 Openstack在2010年正式发布它的第一个版本Austin 版本命名:ABCDEFGHIJ 网络组件 nova network->Quantum(F版)->Neutron
Openstack主要组成 Compute(代号为“Nova”): 提供计算和简单的网络服务 Identity(代号为“Keystone”) :提供认证服务 Dashboard(代号为“Horizon”) :提供web管理接口 Image Service(代号为“Glance”) :提供镜像管理服务 Network(代号为“Neutron”) :提供网络服务 Object Storage(代号为“Swift”) :提供对象存储服务 Block Storage(代号为“Cinder”):提供块存储服务
Openstack概念架构 Cinder连接VM后所产生的数据可以备份到Swift对象存储中 Glance提供镜像可以保存在Switf对象存储中 Nova为VM提供计算资源 Glance为VM提供镜像 Cinder为VM提供块存储资源 Neutron为VM提供网络资源及网络连接 Keystone(身份验证功能)模块可以对其他模块进行相应操作进行身份及权限验证(包括Nova,Glance,Cinder,Swift,Neutron,Ceilometer) 通过Ceilometer(监控功能)可以监控的模块(包括Nova,Glance,Cinder,Neutron)
OpenStack–Keystone身份验证服务 Keystone作为Openstack的核心模块,为Nova(计算),Glance(镜像),Swift(对象存储),Cinder(块存储),Neutron(网络)以及Horizon(Dashboard)提供认证服务
Keystone简介:基本概念 User Telent Role User即用户,他们代表可以通过keystone进行访问的人或程序。 Tenant即租户,它是各个服务中的一些可以访问的资源的容器。 Role Role即角色,Roles代表一组用户可以访问的资源权限
Keystone简介:基本概念 Service Endpoint Service即服务,如Nova、Glance、Swift。 Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板,这个模板提供了所有存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。public url可以被全局访问(如http://compute.example.com),private url只能被局域网访问(如http://compute.example.local),admin url被从常规的访问中分离。
Keystone简介:基本概念 Token Token是访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有一个有效期,Token只在有效期内是有效的。
Keystone简介:基本概念
Keystone在OpenStack中的访问流程范例
Keystone在OpenStack中的简化流程
Keystone CLI与排错 Keystone Keystone-all keystone-manage 用于验证的,面向管理员 和用户的API 例如启动keystone keystone-manage 管理keystone的命令行接口,用于管理与keystone相连接的数据库 同步数据库 keystone-manage db_sync
OpenStack–Glance镜像服务 镜像服务组件 Glance-API :接收最终用户或Nova对镜像的请求,检索和存储镜像的相关API调用。 Glance-registry: 存储,处理和检索有关镜像的元数据,元数据大小、类型等等。 Database :存储镜像元数据,可以支持多种数据库,现在使用比较广泛的是mysql和sqlite.
OpenStack–Glance与其它组件关系
OpenStack–Glance镜像支持格式 raw – 非结构化的镜像格式 vhd – 一种通用的虚拟机磁盘格式, 可用于Vmware、Xen、Microsoft Virtual PC/Virtual Server/Hyper-V、VirtualBox等。 vmdk – Vmware的虚拟机磁盘格式, 同样也支持多种Hypervisor vdi – VirtualBox、QEMU等支持的虚拟机磁盘格式 iso – 光盘存档格式 qcow2 – 一种支持QEMU并且可以动态扩展的磁盘格式 aki – Amazon Kernel 镜像 ari – Amazon Ramdisk 镜像 ami – Amazon 虚拟机镜像
OpenStack–镜像容器格式 ovf – 开放式虚拟机磁盘格式, 由Vmware发起, 目前已被多种虚拟化设备支持 bare – 这表示镜像没有container或者元数据 aki – Amazon Kernel 镜像 ari – Amazon Ramdisk 镜像 ami – Amazon 虚拟机镜像
OpenStack–镜像状态 Queued:镜像ID已经被保留,镜像还没有上传 Saving:镜像正在被上传 Active:镜像可以使用了 Killed:镜像损坏或者不可用 Deleted:镜像被删除
OpenStack–Nova 什么是nova 这个是最核心的,Nova最开始的时候,可以说是一套虚拟化管理程序,还可以管理网络(nova-network)和存储(nova-volume)等
OpenStack–Nova组件 Nova组件 Nova-API:对外统一提供标准化接口.接受和响应最终用户Compute API的请求,同时还实现与Openstack其他各逻辑模块的通讯与服务提供 Nova-Scheduler:选择合适的物理机 Queue:消息队列系统作用还可以实现与Openstack其他各逻辑模块之间的通信建立连接枢纽 Nova-Database:存储云基础设施的编译时和运行时的状态,从理论上讲,OpenStack Nova可以支持任何SQL-Alchemy支持的数据库,但是目前被广泛使用的数据库有sqlite3(只适用于测试和开发工作),MySQL和PostgreSQL。 Nova-Compute:实例的启动和关闭 Nova还提供控制台的服务,让最终用户通过代理服务器访问他们的虚拟实例的控制台。这涉及到多个守护进程(nova-console,nova-novncproxy、nova-xvpnvncproxy和nova-consoleauth)
OpenStack–Nova架构 Nova架构
OpenStack–Nova进程分布 控制节点 Nova-schedule Nova-conductor nova-consoleauth Nova-api Nova-schedule Nova-conductor nova-consoleauth nova-novncproxy nova-cert
OpenStack–Nova进程分布 控制节点: Nova-api Nova-schedule Nova-conductor nova-consoleauth nova-novncproxy nova-cert nova-consoleauth:用来做认证,vnc proxy连接到nova-consoleauth来验证token
OpenStack–Nova进程分布 计算节点 Nova-compute:实例生命周期的管理 客户端 Nova-client: nova api发请求 Nova-manage:整个nova管理, 查看租户、账户、角色等 更详细信息: http://www.aboutyun.com/thread-11995-1-1.html
OpenStack–Neutron概念 Neutron为什么难以理解 Neutron是什么 openstack的网络组件 网络不在是实实在在的网线、路由等,都是通过命令来实现的 Neutron是什么 openstack的网络组件 Neutron能干什么 Neutron: 管理虚拟环境下的网络
OpenStack–Neutron基础网络概念 什么是L2,L3 交换机、路由器、DHCP 什么是iptables 什么是Dnsmasq 混杂模式(Promiscuous Mode) 什么是网络叠加模式
OpenStack–Neutron基础网络概念 什么是网络叠加模式 什么是VLAN 什么是VXLAN 什么是GRE 什么是Tap/Tun .什么是网桥
OpenStack–Neutron基础网络概念 什么是namespace 什么是Open vSwitch 详细内容: http://www.aboutyun.com/thread-12041-1-1.html
OpenStack–Horizon Dashboard服务 在整个Openstack应用体系框架中,Horizon就是整个应用的入口。它提供了一个模块化的,基于web的图形化界面服务门户。用户可以通过浏览器使用这个Web图形化界面来访问、控制他们的计算、存储和网络资源,如启动实例、分配IP地址、设置访问控制等。
OpenStack–Horizon Dashboard服务 云管理员: 提供一个整体视图,可以总览整个云的资源规模及运行状况.可以创建终端用户和项目,向终端用户分配项目并进行项目可使用的资源配额管理。 终端用户(云用户): 提供了一个自助服务门户,可以在由云管理分配的项目中,在不超过配额限制的范围内,自由的操作、使用和分配资源。
OpenStack–Horizon Dashboard服务 管理员:
OpenStack–Horizon Dashboard服务 云终端用户
OpenStack–块存储Cinder架构
OpenStack–块存储Cinder Cinder支持的存储类型 本地存储:LVM, Sheepdog 网络存储:NFS, RBD(Ceph) HP:3PAR (iSCSI/FC),LeftHand (iSCSI) IBM: Storwize family/SVC (iSCSI/FC),XIV (iSCSI), GPFS,zVM Netapp: NetApp(iSCSI/NFS) EMC: VMAX/VNX (iSCSI),Isilon(iSCSI) Solidfire: Solidfire cluster(iSCSI)等
OpenStack–块存储Cinder解析 API Service 负责接受和处理 Rest 请求,并将请求放入 RabbitMQ对列 Scheduler Service 处理任务队列的任务,并根据预定策略选择合适的 Volume Service 节点来执行任务。目前版本的 Cinder仅仅提供了一个 Simple Scheduler, 该调度器选择卷数量最少的一个活跃节点来创建卷。 块设备到虚拟机的创建,挂载以及卸载 Volume Service 该服务运行在存储节点上,管理存储空间。每个存储节点都有一个 Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。为了支持不同类型和型号的存储,均通过Drivers的形式为Cinder的 Volume Service 提供相应的Cinder-Volume
OpenStack–对象存储swift 什么是swift Swift应用场景 对象存储的组件,是开源的,用来创建可扩展的、冗余的、对象存储(引擎)。 swift 看起来更像是一个长期的存储系统 (long term storage system) ,为了获得、调用、更新一些静态的永 久性的数据。比如说,适合存储一些类型的数据:虚拟机镜像,图片存储,邮件存储,文档的备份。没有“ 单点”或者主控结点 (master point of control) , swift看起来具有更强的扩展性、冗余和持久性。 Swift应用场景 swift使用标准化的服务器存储 PB 级可用数据。但它并不是文件系统 (file system) ,实时的数据存储系统(real-timedata storage system) 。
OpenStack–对象存储swift组件 Proxy Server Proxy Server是提供Swift API的服务器进程,负责Swift其余组件间的相互通信。对于每个客户端的请求, 它将在Ring中查询Account、Container或Object的位置,并且相应地转发请求。 Storage Server 提供了磁盘设备上的存储服务。在Swift中有三类存储服务器:Account、Container和Object。其中 Container服务器负责处理Object的列表,Container服务器并不知道对象存放位置,只知道指定Container 里存的哪些Object。这些Object信息以sqlite数据库文件的形式存储。Container服务器也做一些跟踪统计, 例如Object的总数、Container的使用情况。 Consistency Servers 在磁盘上存储数据并向外提供Rest-ful API并不是难以解决的问题,最主要的问题在于故障处理。
OpenStack–对象存储swift组件 Ring Ring是Swift最重要的组件,用于记录存储对象与物理位置间的映射关系。在涉及查询Account、Container、 Object信息时,就需要查询集群的Ring信息。
OpenStack–对象存储数据模型 Swift 采用层次数据模型 共设三层逻辑结构:Account/Container/Object(即账户/容器/对象),每层节点数均没有限制,可以任意 扩展。 Account对应租户,用于隔离 Container对应某个租户数据的存储区域 Object对应存储区域中具体的block
OpenStack–对象存储swift特性 极高的数据持久性 各个存储的节点完全对等,是对称的系统架构。 因为是对称的系统架构,扩容的时候只需简单的增加机器,扩展性很好。 不存在单节点故障,前面提到因为各个节点完全对等,没有所谓的“主从”结构。
OpenStack–对象存储swift
OpenStack–对象存储swift
OpenStack–对象存储swift Swift在openstack的作用