openstack学习文档略代码t副本.docx
《openstack学习文档略代码t副本.docx》由会员分享,可在线阅读,更多相关《openstack学习文档略代码t副本.docx(14页珍藏版)》请在冰豆网上搜索。
![openstack学习文档略代码t副本.docx](https://file1.bdocx.com/fileroot1/2023-1/23/2a79368c-a2f7-4e46-8afe-f7793de2a2b7/2a79368c-a2f7-4e46-8afe-f7793de2a2b71.gif)
openstack学习文档略代码t副本
Openstack
学习文档
学院:
信息工程学院
学号:
12014245906
班级:
软件工程一班
姓名:
杜文浩
目录
一.Openstack简介4
1.什么是openstack4
2.openstack运用范围5
3.openstack的主要项目组件5
二.Openstack的数据库服务(MySQL)6
1.MySQL安装6
2.数据库的安装:
7
3.创建keystone数据库并授权7
4.创建glance数据库并授权:
7
5.创建nova数据库并授权:
7
6.创建neutron并授权:
7
7.创建cinder并授权:
8
三.消息代理服务RabbitMQ8
1.RabbitMQ8
2.RabbitMQ术语介绍9
3.RabbitMQ原理:
9
4.RabbitMQ的安装与配置10
四.Keystone11
1.Keystone基本概念介绍:
11
2.各种概念之间的关系解释:
13
3.Keystone在openstack中的访问流程范例。
14
4.Keystone的安装与配置14
五.ComputerServices(Nova)21
1.Nova的定义:
openstack的主要逻辑模块:
21
2.Nova的架构:
22
3.Nova的处理过程:
22
4.Nova的安装与配置:
23
4.1创建配置文件23
4.2 Nova的数据库配置23
(1)配置数据库23
#vim/etc/nova/nova.conf23
(2)RabbitMQ配置24
(3)vnc相关配置24
(4)Keystone相关配置25
4.3创建Novaservice和endpoint25
(2) 启动NovaService26
(3)novnc安装与启动26
六.ImageServices(Glance)29
1.Glance的定义:
29
2.镜像服务组件:
29
3.Glance与openstack其他模块之间的关系:
30
4.Glance支持的Image格式:
30
5.Glance的安装与配置:
30
七.NetworkingServices(Neutron)35
1.Neutron的定义:
35
2.Neutron服务模块层次:
36
3.Quantum/Neutron的关键概念:
36
4.Neutron服务网络管理的三种模式,两种IP:
37
5.Neutron的安装与配置37
(5)Nova在neutron.conf的相关配置39
(7) Nova相关配置在nova.conf40
(7) 创建NeutronService和endpoint41
5.3 NeutronPlugin41
(1)NeutronML2配置41
(2)Linuxbridge配置42
5.4 neutron启动42
5.5 测试Neutron安装44
一.Openstack简介
1.什么是openstack
OpenStack是一个由NASA(美国国家航空航天局)和网络主机服务商Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。
OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。
它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。
OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
2.openstack运用范围
OpenStack是IaaS(基础设施即服务)组件,让任何人都可以自行建立和提供云端运算服务。
此外,OpenStack也用作建立防火墙内的“私有云”(PrivateCloud),提供机构或企业内各部门共享资源。
3.openstack的主要项目组件
OpenStack云计算平台,帮助服务商和企业内部实现类似于AmazonEC2和S3的云基础架构服务(InfrastructureasaService,IaaS)。
OpenStack包含两个主要模块:
Nova和Swift,前者是NASA开发的虚拟服务器部署和业务计算模块;后者是Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。
OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。
它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。
每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。
截止到Icehouse版本,下面列出了几个核心项目(即OpenStack服务)。
二.Openstack的数据库服务(MySQL)
1.MySQL安装
#yuminstallmysql-server
#cp/usr/share/mysql/my-f/etc/f
#vim/etc/f
增加以下配置:
[mysqld]
default-storage-engine=innodb
innodb_file_per_table
collation-server=utf8_general_ci
init-connect='SETNAMESutf8'
character-set-server=utf8
#chkconfigmysqldon
#/etc/init.d/mysqldstart
2.数据库的安装:
#mysql–uroot
mysql>showdatabases;
3.创建keystone数据库并授权
mysql>createdatabasekeystone;
mysql>grantallonkeystone.*tokeystone@'192.168.56.0/255.255.255.0'identifiedby'keystone';
4.创建glance数据库并授权:
mysql>createdatabaseglance;
mysql>grantallonglance.*toglance@'192.168.56.0/255.255.255.0'identifiedby'glance';
5.创建nova数据库并授权:
mysql>createdatabasenova;
mysql>grantallonnova.*tonova@'192.168.56.0/255.255.255.0'identifiedby'nova';
6.创建neutron并授权:
mysql>createdatabaseneutron;
mysql>grantallonneutron.*toneutron@'192.168.56.0/255.255.255.0'identifiedby'neutron';
7.创建cinder并授权:
mysql>createdatabasecinder;
mysql>grantalloncinder.*tocinder@'192.168.56.0/255.255.255.0'identifiedby'cinder';
mysql>showdatabases
三.消息代理服务RabbitMQ
1.RabbitMQ
是一套用erlang语言基于AMQP协议开发的,可复用的企业消息系统。
它遵循MozillaPublicLicense开源协议。
AMQP即高级消息队列协议。
类似于OSI或TCP/IP协议分层,AMQP也分为三层:
(1)、ModelLayer:
规范服务器端Broker的行为。
(2)、SessionLayer:
定义客户端与服务器端Broker的Context。
(3)、TransportLayer:
传输二进制数据流。
2.RabbitMQ术语介绍
Broker:
消息队列服务器实体。
Exchange:
消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:
消息队列载体,每个消息都会被投入到一个或多个队列。
Binding:
绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
RoutingKey:
路由关键字,exchange根据这个关键字进行消息投递。
vhost:
虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
producer:
消息生产者,就是投递消息的程序。
consumer:
消息消费者,就是接受消息的程序。
channel:
消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。
3.RabbitMQ原理:
(1).MessageProducer
RabbitMQProducer既消息生产者,负责生成需要发送的Message。
Message由Header和Body组成,Header是由Producer添加的各种属性的集合,包括Message是否客被缓存、由哪个MessageQueue接受、优先级是多少等。
而Body是真正需要传输的APP数据。
(2).MessageExchange和MessageQueue
change既消息交换机。
负责接受Producer发送的Message并根据不同路由算法将Message发送到MessageQueue;
MessageQueue会在Message不能被正常消费时将其缓存起来,当Consumer与MessageQueue之间的连接通畅时,MessageQueue将Message转发给Consumer。
Exchange与MessageQueue之间的关联通过Binding来实现。
Exchange在与多个MessageQueue发生Binding后会生成一张路由表,路由表中存储着MessageQueue所需消息的限制条件即BindingKey。
当Exchange收到Message时会解析其Header得到RoutingKey,Exchange根据RoutingKey与ExchangeType将Message路由到MessageQueue;
BindingKey由Consumer在BindingExchange与MessageQueue时指定,而RoutingKey由Producer发送Message时指定,两者的匹配方式由ExchangeType决定。
4.RabbitMQ的安装与配置
:
略。
四.Keystone
1.Keystone基本概念介绍:
User:
User即用户,他们代表可以通过keystone进行访问的人或程序。
Users通过认证信息(credentials,如密码、APIKeys等)进行验证。
Tenant:
Tenant即租户,它是各个服务中的一些可以访问的资源集合。
例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Neutron中一个tenant可以是一些网络资源。
Users默认的总是绑定到某些tenant上。
Role:
Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。
Users可以被添加到任意一个全局的或租户的角色中。
在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。
Service:
Service即服务,如Nova、Glance、Swift。
根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。
但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。
Endpoint:
Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。
因此,在keystone中包含一个endpoint模板,这个模板提供了所有存在的服务endpoints信息。
一个endpointtemplate包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。
publicurl可以被全局访问(如),privateurl只能被局域网访问(如http:
//compute.example.local),adminurl被从常规的访问中分离。
Token:
Token是访问资源的钥匙。
它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。
每个Token都有一个有效期,Token只在有效期内是有效的。
2.各种概念之间的关系解释:
(1)租户下,管理着一堆用户(人,或程序)。
(2)每个用户都有自己的credentials(凭证)用户名+密码或者用户名+APIkey,或其他凭证。
(3)用户在访问其他资源(计算、存储)之前,需要用自己的credential去请求keystone服务,获得验证信息(主要是Token信息)和服务信息(服务目录和它们的endpoint)。
(4)用户拿着Token信息,就可以去访问特点的资源了。
3.Keystone在openstack中的访问流程范例。
4.Keystone的安装与配置
4.1keystone的安装
略
)
五.ComputerServices(Nova)
1.Nova的定义:
openstack的主要逻辑模块:
(1)计算管理(codenamed “Nova”)基于用户需求为VM提供计算资源管理. 基于Python语言编写。
(2)Nova-API:
对外统一提供标准化接口.接受和响应最终用户ComputeAPI的请求,同时还实现与Openstack其他各逻辑模块的通讯与服务提供
(3)Nova-Scheduler:
从队列上得到一个虚拟机实例请求并且决定它应该在哪里运行(使用多种过滤器或算法调度)
(4)Queue:
提供了一个守护进程之间传递消息的中央枢纽。
消息队列系统作用还可以实现与Openstack其他各逻辑模块之间的通信建立连接枢纽
(5)Nova-Database:
存储云基础设施的编译时和运行时的状态,从理论上讲,OpenStackNova可以支持任何SQL-Alchemy支持的数据库,但是目前被广泛使用的数据库有sqlite3(只适用于测试和开发工作),MySQL和PostgreSQL。
(6)Nova-Compute:
主要是一个人工守护进程,它可以通过虚拟机管理程序的API(XenAPIforXenServer/XCP,libvirtforKVMorQEMU,VMwareAPIforVMware等)来创建和终止虚拟机实例。
支持多种虚拟化平台
(7)Nova还提供控制台的服务,让最终用户通过代理服务器访问他们的虚拟实例的控制台。
这涉及到多个守护进程(nova-console,nova-novncproxy、nova-xvpnvncproxy和nova-consoleauth)
2.Nova的架构:
3.Nova的处理过程:
4.Nova的安装与配置:
4.1创建配置文件
略
4.5本章错误展示
(1)在配置文件时没有删除前面的“空格”导致后面出错。
(2)创建novaendpoint时最后一个ip配置的时候多输入了一个“\”,导致后面的keystone的service出错。
六.ImageServices(Glance)
1.Glance的定义:
Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。
Glance服务提供了一个RESTAPI,使你能够查询虚拟机镜像元数据和检索的实际镜像。
通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpeenStack对象存储系统。
2.镜像服务组件:
Glance-API :
接收最终用户或Noav对镜像的请求,检索和存储镜像的相关API调用。
Glance-registry:
存储,处理和检索有关镜像的元数据,元数据大小、类型等等。
Database :
存储镜像元数据,可以支持多种数据库,现在使用比较广泛的是mysql和sqlite.
3.Glance与openstack其他模块之间的关系:
4.Glance支持的Image格式:
(1)raw–非结构化的镜像格式
(2)vhd–一种通用的虚拟机磁盘格式,可用于Vmware、Xen、MicrosoftVirtualPC/VirtualServer/Hyper-V、VirtualBox等
(3)vmdk–Vmware的虚拟机磁盘格式,同样也支持多种Hypervisor
(4)vdi–VirtualBox、QEMU等支持的虚拟机磁盘格式
(5)qcow2–一种支持QEMU并且可以动态扩展的磁盘格式
(6)aki–AmazonKernel镜像
(7)ari–AmazonRamdisk镜像
(8)ami–Amazon虚拟机镜像
5.Glance的安装与配置:
5.1Glance配置准备
略
5.7本章错误警示
(1)在配置文件时没有删除前面的“#”导致后面出错。
(2)在keystone中注册Glance时复制资料中的随机码,没有用自己keystone中的随机码,导致镜像上传失败。
七.NetworkingServices(Neutron)
1.Neutron的定义:
(1)网络服务(codenamed “Quantum/Neutron”)提供在被管理设备之间的网络连接服务.
(2)允许用户自己创建自己的网络并attach端口使用.
(3)通过开发的Plugins支持SDN和OpenFlow
(4)用户自定义子网地址,私有网络/公有网络以及FloatingIP分配规则.
2.Neutron服务模块层次:
(1)NeutronAPI:
提供Openstack其他服务或管理员及用户访问的接口
(2)抽象层:
网络资源抽象化,包括网络,子网,端口及路由。
将底层各种各样的网络资源按照openstack定义的网络描述规则化
(3)Plug-in:
通过Plug-in方式可以整合更多的高级的功能以及与底层网络厂商的设备实现更好的集成
3.Quantum/Neutron的关键概念:
(1)网络Network:
一个L2二层网络单元
租户可通过Quantum/NeutronAPI创建自己的网络
(2)子网Subnet
一段IPV4/IPV6地址段
为Instance提供私网或公网地址
(3)路由器Router
三层路由器
为租户的Instance提供路由功能
(4)端口Port
虚拟交换机上的端口
管理Instance的网卡
4.Neutron服务网络管理的三种模式,两种IP:
(1)两种IP:
固定IP(Fixed-IP):
分配给虚拟机实例使用
浮动IP(FloatingIP):
分配给虚拟机实例的外网地址,通过NAT方式实现。
(2)三种模式:
Flat模式
FlatDHCP模式
VLAN模式
5.Neutron的安装与配置
5.1Neutron的安装
#cd/usr/local/src/neutron-2014.1.3
#pythonsetup.pyinstall
5.2Neutron的配置
略。