openstack创建虚拟机流程,OpenStack使用flat网络创建虚拟机失败——PortBindingFailed: Binding failed for port
openstack创建虚拟机流程,OpenStack使用flat网络创建虚拟机失败——PortBindingFailed: Binding failed for port详细介绍
本文目录一览: Openstack 虚机实例操作总结
Openstack作为常见的IAAS服务,其最核心的对象就是虚机实例,而Openstack下支持的虚机操作有很多种,有些是特别常见的虚机操作比如创建虚机、启动虚机、删除虚机等,而有些虚机操作则是针对特定场景下比如出现故障而提供的保护/恢复虚拟机资源的各种解决方案,下面先通过一张图总体了解一下Openstack的各种虚机操作及及其应用场景:
文章余下部分将借助上图中常规操作和故障操作这两大应用场景来对Openstack各种虚机实例的操作一一展开说明。
所谓常规操作,这里是指日常对Openstack虚机最基本的操作,且Openstack集群及虚机运行状态良好的情况下。
创建虚机,Openstack专业术语:启动虚机实例,根据已经定义好的主机类型、存储资源、网络资源等从无到有新建一个虚拟机。如果底层的虚拟化基于KVM,相当于先编辑一个虚机的 XML 文件然后进行 DEFINE 。
以上两种操作后的虚机实例,都可以通过其他Openstack的接口重新恢复(Pause--> Unpause,Suspend--> Resume)虚机,并且显然经过Pause操作的虚机实例恢复要快的多。
对应Openstack Resize操作,用来修改虚机实例的规格,当原始的主机类型(Flavor)无法满足其上运行的业务需求时,通过新的Flavor在当前宿主机或者新的宿主机上重新启动一个新的虚机,但是这个虚机的资源比如网络资源、OS版本等还是跟之前的虚机是一样的,只是扩展了CPU Core数目、内存和磁盘大小,提高了虚机性能。
对应Openstack Snapshot操作,用来作备份恢复的,将某个状态下的虚机导出image并上传至Glance管理,方便以后通过快照来恢复一个出现故障的虚机,另外Openstack快照跟传统意义的快照不是一个含义。
对应Openstack Lock操作,用来作资源保护,如果为防止误操作或者不想让某些人操作虚机实例可以执行此操作,当然可以通过Unlock操作来解除锁定。
首先解释一下,这里的故障操作不是指错误操作或者误操作,而是Openstack虚机实例或者其它组件出现故障时应对的措施或者操作。
冷迁移(Migrate)和热迁移(Live Migrate)最大的区别在于将虚机实例从一个计算节点迁移到另一个计算节点的过程中是不是做了虚机关闭的操作。
对应Openstack Shelve操作,用作释放暂不使用的虚机资源。
对于暂时不用的虚机如前文所述可以通过Pause/Suspend来暂停以节约成本,不过这两种操作下虚机实例需要的比如CPU、内存等资源宿主机仍然要维护,如果想从底层来释放这些资源可以执行Shelve操作,它的原理是释放虚机之前先会对虚机做快照并上传Glance,然后才从宿主机删除虚机,当然如果想恢复则可以执行Unshelve操作。
当虚机实例因为某个文件系统误删或者权限导致虚机实例无法正常开启时,可以执行Rescue操作来尝试恢复:选择一个虚机image来引导虚机正常起来,同时把之前的系统盘作为数据盘挂载到起来的虚机OS下,修复好之后使用Unrescue操作从原启动盘重新引导虚机。
对应Openstack Rebuild操作,当虚机实例损坏无法正常开启,而一般的修复操作比如Rescue不起作用,此时可以考虑在原先虚机实例的基础上利用虚机镜像或者快照进行Rebuild操作,它的原理替换原先虚机实例的镜像文件,同时保持虚机其他比如网络资源、其他分配属性不变而实现虚机正常开启。
上述的操作都是在宿主机ok的情况下进行的,如果虚机实例的宿主机直接挂掉该怎么办呢?还好有Evacuate操作,它能够在当前宿主机宕掉的情况,将其上的虚机实例迁移到其它正常的计算节点,不过它需要满足共享存储(比如后端采用NFS、CEPH等)。
以上基本上就是目前Openstack所支持的对虚机实例的所有操作,实际使用中需要结合具体的业务场景。
如何借助OpenStack命令行工具管理虚拟机
OpenStack中有两种不同的界面用来管理云资源。一个是通过Horizon,这是基于Web的OpenStack仪表板;另一个就是通过OpenStack命令行接口(CLI)。
我在本教程中将演示如何从命令行,在OpenStack上创建或终止虚拟机。这个过程是在Havana版本的OpenStack中进行测试的。至于像OpenStack Folsom这些早期的OpenStack版本,你只要将本教程所用的命令行中的“neutron”换成“quantum”即可。
姑且假设部署的一套OpenStack系统已在某处构建并运行起来。我要使用OpenStack CLI客户程序,在现有的OpenStack系统上管理虚拟机。
安装OpenStack CLI客户程序
第一步就是安装必要的OpenStack命令行客户程序:
在Debian、Ubuntu或Linux Mint上,执行这个命令:
$ sudo apt-get install python-pip $ sudo pip install python-novaclient python-keystoneclient python-neutronclient
在CentOS、Fedora或RHEL上,执行这个命令:
$ sudo yum install python-pip $ sudo pip install python-novaclient python-keystoneclient python-neutronclient
设定环境变量
为了能够使用OpenStack CLI客户程序,你就要设定必要的环境变量。为此,创建一个名为openrc.sh的脚本,如下所示。
$ sudo vi openrc.sh export OS_USERNAME=dan export OS_PASSWORD=my_password export OS_TENANT_NAME=demo export OS_AUTH_URL=http://192.168.10.10:5000/v2.0
在上述脚本中,OS_USERNAME/OS_PASSWORD是OpenStack用户名及密码。OS_TENANT_NAME是所创建的项目的名称。OS_AUTH_URL是Keystone端点的URL。Keystone是一项OpenStack服务,负责不同的OpenStack组件之间的身份验证。你应该把192.168.10.10换成所部署的系统中运行OpenStack Keystone的那个主机的IP地址。
现在,运行openrc.sh,设定环境变量,如下所示。
$ source openrc.sh
这时候,你可以准备运行OpenStack命令行客户程序了。确认你在运行时没有遇到任何错误:
$ nova list
它显示内容为空的结果,这意味着一切都正常。
构建网络
现在,你可以准备构建一个连接虚拟机的网络了。
创建一个名为"xmodulo"的新网络。
$ neutron net-create xmodulo
创建一个名为"xmodulo_subnet"的新子网,并将其添加到刚构建的那个网络。
$ neutron subnet-create xmodulo 10.0.0.0/24 --name xmodulo_subnet
检查可用网络列表,确认该网络已成功构建。
$ neutron net-list
在输出结果中,要记下你所构建的网络的"ID"(编号)。之后你创建虚拟机时,要用到这个编号。
启动虚拟机
在创建并启动虚拟机之前,你首先要知道几个信息。
查明你想创建的那个虚拟机的类型。为此,运行下面这个命令。
$ nova flavor-list
在该示例中,我准备选择最小的虚拟机类型"m1.nano",它有64 MB内存、1个虚拟处理器(vCPU)、无磁盘。记下这个类型名称。
下一步,为你的虚拟机选择所要使用的虚拟机映像。为了列出所有可用的虚拟机映像,请使用这个命令:
$ nova image-list
记下你想为虚拟机使用的那个映像的ID。
下一步,为你的虚拟机选择所要使用的安全组的类型。安全组为你的虚拟机决定了入站访问规则。想了解可用的安全组,请运行该命令:
$ nova secgroup-list
想检查"默认"安全组的访问规则,请使用这个命令:
$ nova secgroup-list-rules default
在该示例中,我准备为虚拟机选择名为"default"的安全组。该安全组里面正好没有规则。
最后,我们使用到目前为止所获得的信息,创建一个虚拟机。指定你已了解的虚拟机类型(--flavor)、虚拟机映像的ID(--image)以及网络的ID(net-id=)。把[vm-name]换成你虚拟机的名称,这个名称需要很独特。
$ nova boot [vm-name] --flavor m1.nano --image d2b830be-3 7df-4fa9-90b2-91c472d19aaa --security-groups default -ni c net-id=1cbcddcf-3a7d-481f-b6f2-a97c6447c925
为了确认虚拟机已成功创建并启动,请运行这个命令:
$ nova list
停止、暂停和清除虚拟机
当你停止运行某个虚拟机时,它完全关闭。另一方面,你暂停虚拟机时,它临时被冻结,随时可以从暂停状态重新启动。在这两种情况下,虚拟机映像仍留在OpenStack里面。
想停止虚拟机,运行这个命令:
$ nova stop [vm-name]
想暂停虚拟机,运行这个命令:
$ nova suspend [vm-name]
如果你想从OpenStack清除已终停止虚拟机或已暂停虚拟机的映像,请使用这个命令:
$ nova delete [vm-name]
在openstack上创建虚拟机时候参数怎么设置
1. 点击左边的 Identity–>Projects,并点击面板右上方创建项目
2. 创建一个属于你的项目并且在配额中调整你所需要的资源
创建用户
1. 点击左边的 Identity–>Users,并点击面板右上方创建用户
2. 设置密码、项目等信息
云计算怎么从openstack进入localhost中
云计算可以使用OpenStack来从localhost中进入,OpenStack是一个开放源的云计算平台,它可以提供虚拟机、存储、网络等服务。OpenStack使用户能够在本地构建自己的云环境,从而更好地管理资源和应用程序。要从OpenStack进入localhost,首先需要在localhost上安装OpenStack软件包,其次需要使用OpenStack命令配置虚拟机,最后连接到localhost。
安装OpenStack软件包时,首先需要正确设置操作系统,确保有足够的磁盘空间,然后安装和配置必要的软件组件,如操作系统、数据库和网络组件,其中操作系统可以是Linux、Windows等,数据库可以是MySQL、PostgreSQL等,网络组件可以是Open vSwitch、Neutron等。
接下来需要使用OpenStack命令配置虚拟机,这一过程主要分为以下几步:首先定义虚拟机的配置,包括CPU、内存、硬盘等;其次下载虚拟机的镜像文件,如Ubuntu、CentOS等;最后创建虚拟机,将虚拟机与网络连接起来,以及安装必要的软件。
最后,连接到localhost,可以使用SSH命令,或者使用OpenStack提供的命令行工具,如OpenStack Client,以及GUI工具,如Horizon。
要将OpenStack中的云计算资源导入到本地主机(localhost)中,需要使用OpenStack的命令行工具或API。下面是一个大致的步骤:
1. 安装OpenStack命令行工具
你可以通过pip安装OpenStack命令行工具,如下所示:
```
pip install python-openstackclient
```
2. 配置OpenStack命令行工具
在安装完OpenStack命令行工具后,需要配置连接OpenStack的凭证。可以通过以下命令创建一个OpenStack的配置文件:
```
touch ~/.config/openstack/clouds.yaml
```
接下来在该配置文件中添加如下内容,用于连接OpenStack:
```
clouds:
mycloud:
auth:
auth_url: http://
:5000/v3
username:
password:
project_name:
user_domain_name:
project_domain_name:
region_name:
```
3. 列出可用的云计算资源
使用以下命令可以列出OpenStack中可用的所有云计算资源:
```
openstack server list
```
4. 下载云计算资源的镜像文件
使用以下命令可以下载云计算资源的镜像文件:
```
openstack image save --file
```
5. 导入镜像文件到本地
使用以下命令可以将镜像文件导入到本地:
```
openstack image create
--file
--disk-format qcow2 --container-format bare --public
```
6. 创建本地虚拟机
使用以下命令可以在本地创建虚拟机:
```
openstack server create --flavor
--image
--key-name
```
这些步骤可以将OpenStack中的云计算资源导入到本地主机中。当然,具体的步骤可能因为OpenStack版本和具体的环境而有所不同。
1 首先需要安装openstack客户端和云计算软件,确保网络畅通
2 打开openstack客户端,输入用户名、密码、租户名等信息,并使用openstack命令行工具将云计算资源通过API导入localhost中
3 可以通过在localhost中运行虚拟机来访问openstack中的云计算资源,也可以通过网络端口将openstack资源直接映射到localhost中
延伸:在openstack中使用云计算资源可以大大提高计算效率和数据处理速度,同时也能够更好地管理资源和数据。
在实际应用中,需要根据具体需求选择相应的openstack配置和网络部署方案。
云计算从Openstack进入localhost中的步骤如下:
1.首先,你需要在本地主机上安装Openstack管理系统,以便连接到Openstack云。
2.接下来,你需要创建一个Openstack虚拟网络,用于连接本地主机。
3.然后,你需要在Openstack中创建一个虚拟机,用来运行本地主机的应用程序。
4.最后,你需要将虚拟机连接到本地主机,以便远程访问本地主机上的应用程序。
以上就是从Openstack进入本地主机的步骤,只要按照这些步骤准确地操作,就可以轻松地实现云计算从Openstack进入本地主机的过程。
openstackwin10操作延时
您要问的是openstackwin10操作延时怎么办?1、对于还未创建的虚机,更新镜像信息,加入os_type选项,先查找镜像id,更新镜像,查看镜像,看看是否多了一项os_type,就可以创建虚拟机了。2、对于已经创建的windows镜像,可以在数据库中更新os_type字段信息,重启虚机(测试发现,只有进行硬重启,才能生效),查看验证在相应计算节点,查看虚拟机配置文件。
openstack 怎么修改实例的配置
1. 使用命令:nova boot --flavor 1 --key_name mykey --image 9e5c2bee-0373-414c-b4af-b91b0246ad3b --security_group default cirrOS
其中:
flavor是虚拟机的配置,比如说内存大小,硬盘大小等,默认下1为最小,4为最大。
key_name是创建虚拟机使用的密钥,使用以下三条命令创建密钥:
ssh-keygen
cd .ssh
nova keypair-add --pub_key id_rsa.pub mykey
image是已上传镜像的ID,使用nova image-list查询。
security_group是安全组。
cirrOS是你所要创建的虚拟机名。
2.使用dashboard,dashboard创建实例很简单,选择项目,然后选云主机中的创建云主机,然后一步一步按照提示就行了。
Open Stack的原理和概念架构是什么?
Open Stack的原理是将企业数据中心的物理硬件设备虚拟化,形成虚拟资源池,利用一些优秀的云管理工具,例如 Fuel,Chef,Juju Charms等对虚拟资源进行管理。OpenStack起源于Rackspace Hosting和NASA的联合项目。它以开源的形式给出? 源码可以从网站上下载;OpenStack的全部组件源码都由Python编程语言开发而来,与Java等其它编程语言相比,python程序具有非常高的并发处理能力和非常低的系统资源占用率,这些代码易于维护和扩展。埃科锐国际通过搭建Open Stack云平台对计算、网络、存储和控制服务等进行管理进而加速和优化企业的云之旅。
Open Stack是一个不独立的可以管理虚拟机的软件平台,Open Stack提供了为公共和私有云基础设施构建和管理云计算平台所需的核心软件工具集。OpenStack的一个主要优点是其设计具有水平可扩展性,这使得随着时间的推移添加新的计算、存储和网络资源来构建云变得更加容易,除此之外还有许多优秀的开源工具可用于安装? 运行和管理OpenStack云。埃科锐国际的Open Stack私有云是一个安全的企业云服务平台,企业可以控制和维护数据中心内的大量计算池、存储池和网络池。
Open Stack的概念架构:应用开发者(AppDev),应用运维者(DevOps),云操作者(CloudOps),应用所有者(AppOwner)要与云进行交互。展示层(Presentation):应用开发者与computerapi(计算接口),imageapi(映像接口)进行交互,运维者与计算接口,映像接口,Userdashboard(仪表盘)进行交互处理信息? 应用拥有者通过顾客门户UI平台管理,提供一个web管理页面,与底层交互。逻辑控制层:包括部署(Orchestration),scheduling(调度),政策(Policy)、Imageregistry(映像注册层),Logging(日志)为私有云服务提供逻辑控制服务。管理层:企业云服务平台运维者通过admin Api(管理员接口),Monitoring(监控),在一些成熟的架构中还具有标准和配置管理等支持服务。Accrets国际是一家主营私有云托管服务、云迁移服务、云架构部署服务的信息科技服务型公司,拥有超过百年的累积IT设计、方案实施、运营服务管理经验。
openstack部署虚拟机是部署到计算节点上吗
不一定,控制节点如果安装了compute服务,也是可以创建虚拟机的
场景(一个租户,两个网络,一个路由,内部网络使用GRE,Libvirt VIF Driver使用LibvirtHybridOVSBridgeDriver): 场景一虚拟网络拓扑 Figure 11 场景一虚拟网络拓扑 如图我们有一个外网(External Network),IP段为172.16.0.0/16,两个内网,...
openstack是什么 知乎
(1)官方的解释相信大家都已经了解了,不了解也没有关系。现在从常识的角度来给大家解释和说明。
OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目,OpenStack被公认作为基础设施即服务(简称IaaS)资源的通用前端。
如果这些还不明白,那么从另外的角度给大家介绍:
首先让大家看下面两个图就很简单明了了:
此图为openstack的登录界面
下面是openstack的一个管理界面
从这两个图,相信有一定开发经验,就能看出openstack是什么了。可以说他是一个框架,甚至可以从软件的角度来理解它。如果不明白,就从传统开发来讲解。不知道你是否了解oa,erp等系统,如果不了解可以到网上去找,资料一大把。他和oa,erp有什么不同。很简单就是openstack是用做云计算的一个平台,或则一个解决方案。它是云计算一个重要组成部分。
上面对openstack有了一个感性的认识。
(2)openstack能干什么。
大家都知道阿里云平台,百度云平台,而阿里云平台据传说就是对openstack的二次开发。对于二次开发相信只要接触过软件的都会明白这个概念。不明白的自己网上去查一下。也就是说openstack,可以搭建云平台,什么云平台,公有云,私有云。现在百度在招聘的私有云工程师,应该就是这方面的人才。
(3)openstack自身都包含什么
以下是5个OpenStack的重要构成部分:
l Nova – 计算服务
l Swift – 存储服务
l Glance – 镜像服务
l Keystone – 认证服务
l Horizon – UI服务
图1 OpenStack基本构架
下图展示了Keystone、Dashboard二者与其它OpenStack部分的交互。
下面详细介绍每一个服务:
(一)OpenStack计算设施—-Nova Nova是OpenStack计算的弹性控制器。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的。
功能及特点
l 实例生命周期管理
l 计算资源管理
l 网络与授权管理
l 基于REST的API
l 异步连续通信
l 支持各种宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
OpenStack计算部件
l Nova弹性云包含以下主要部分:
l API Server(nova-api)
l 消息队列(rabbit-mq server)
l 运算工作站(nova-compute)
l 网络控制器(nova-network)
l 卷管理(nova-volume)
l 调度器(nova-scheduler)
API服务器(nova-api)
API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API,接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做“OpenStack API”。
消息队列(Rabbit MQ Server)
OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效。
运算工作站(nova-compute)
运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接收请求并执行,从而对实例进行各种操作。在典型实际生产环境下,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署。
网络控制器(nova-network)
网络控制器处理主机的网络配置,例如IP地址分配,配置项目VLAN,设定安全群组以及为计算节点配置网络。
卷工作站(nova-volume)
卷工作站管理基于LVM的实例卷,它能够为一个实例创建、删除、附加卷,也可以从一个实例中分离卷。卷管理为何如此重要?因为它提供了一种保持实例持续存储的手段,比如当结束一个实例后,根分区如果是非持续化的,那么对其的任何改变都将丢失。可是,如果从一个实例中将卷分离出来,或者为这个实例附加上卷的话,即使实例被关闭,数据仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问。
因此,为了日后访问,重要数据务必要写入卷中。这种应用对于数据服务器实例的存储而言,尤为重要。
调度器(nova-scheduler)
调度器负责把nova-API调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构。
目前nova调度器使用了几种基本的调度算法:
随机化:主机随机选择可用节点;
可用化:与随机相似,只是随机选择的范围被指定;
简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。
(二)OpenStack镜像服务器—-GlanceOpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意一种存储中:
本地文件系统(默认)
l OpenStack对象存储
l S3直接存储
l S3对象存储(作为S3访问的中间渠道)
l HTTP(只读)
功能及特点
提供镜像相关服务
Glance构件
l Glance控制器
l Glance注册器
(三)OpenStack存储设施—-Swift
Swift为OpenStack提供一种分布式、持续虚拟对象存储,它类似于Amazon Web Service的S3简单存储服务。Swift具有跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效。
功能及特点
l 海量对象存储
l 大文件(对象)存储
l 数据冗余管理
l 归档能力—–处理大数据集
l 为虚拟机和云应用提供数据容器
l 处理流媒体
l 对象安全存储
l 备份与归档
l 良好的可伸缩性
Swift组件
l Swift账户
l Swift容器
l Swift对象
l Swift代理
l Swift RING
Swift代理服务器
用户都是通过Swift-API与代理服务器进行交互,代理服务器正是接收外界请求的门卫,它检测合法的实体位置并路由它们的请求。
此外,代理服务器也同时处理实体失效而转移时,故障切换的实体重复路由请求。
Swift对象服务器
对象服务器是一种二进制存储,它负责处理本地存储中的对象数据的存储、检索和删除。对象都是文件系统中存放的典型的二进制文件,具有扩展文件属性的元数据(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并没有有效测试证明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同样能运行良好。不过,XFS被认为是当前最好的选择。
Swift容器服务器
容器服务器将列出一个容器中的所有对象,默认对象列表将存储为SQLite文件(译者注:也可以修改为MySQL,安装中就是以MySQL为例)。容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。
Swift账户服务器
账户服务器与容器服务器类似,将列出容器中的对象。
Ring(索引环)
Ring容器记录着Swift中物理存储对象的位置信息,它是真实物理存储位置的实体名的虚拟映射,类似于查找及定位不同集群的实体真实物理位置的索引服务。这里所谓的实体指账户、容器、对象,它们都拥有属于自己的不同的Rings。
(四)OpenStack认证服务(Keystone)
Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定。如下图所示:
Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。除此之外,Keystone提供以下三种服务:
l 令牌服务:含有授权用户的授权信息
l 目录服务:含有用户合法操作的可用服务列表
l 策略服务:利用Keystone具体指定用户或群组某些访问权限
认证服务组件
服务入口:如Nova、Swift和Glance一样每个OpenStack服务都拥有一个指定的端口和专属的URL,我们称其为入口(endpoints)。
l 区位:在某个数据中心,一个区位具体指定了一处物理位置。在典型的云架构中,如果不是所有的服务都访问分布式数据中心或服务器的话,则也称其为区位。
l 用户:Keystone授权使用者
译者注:代表一个个体,OpenStack以用户的形式来授权服务给它们。用户拥有证书(credentials),且可能分配给一个或多个租户。经过验证后,会为每个单独的租户提供一个特定的令牌。[来源:http://blog.sina.com.cn/s/blog_70064f190100undy.html]
l 服务:总体而言,任何通过Keystone进行连接或管理的组件都被称为服务。举个例子,我们可以称Glance为Keystone的服务。
l 角色:为了维护安全限定,就云内特定用户可执行的操作而言,该用户关联的角色是非常重要的。
译者注:一个角色是应用于某个租户的使用权限集合,以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组,它使得通用的权限可以简单地分组并绑定到与某个指定租户相关的用户。
l 租间:租间指的是具有全部服务入口并配有特定成员角色的一个项目。
译者注:一个租间映射到一个Nova的“project-id”,在对象存储中,一个租间可以有多个容器。根据不同的安装方式,一个租间可以代表一个客户、帐号、组织或项目。
(五)OpenStack管理的Web接口—-Horizon
Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例。总之,Horizon具有如下一些特点:
l 实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等
l 访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等
l 偏好设定:对虚拟硬件模板可以进行不同偏好设定
l 镜像管理:编辑或删除镜像
l 查看服务目录
l 管理用户、配额及项目用途
l 用户管理:创建用户等
l 卷管理:创建卷和快照
l 对象存储处理:创建、删除容器和对象
l 为项目下载环境变量
OpenStack使用flat网络创建虚拟机失败——PortBindingFailed: Binding failed for port
kolla-ansible ussuri 集群环境
通过镜像创建虚拟机时(ussuri),选择flat网络,结果创建失败,虚拟机处于关闭/错误状态。
查看日志:
/var/log/kolla/nova/nova-compute.log
/var/log/kolla/neutron/neutron-server.log
nova_compute.log显示,端口绑定失败,大概可知,是由于nova请求neutron失败所致,所以问题在neutron上。
从neutron_server.log的报错信息可以看到一些信息,报错的主体为plugins.ml2.managers,network_type为flat,physical_network为physnet1。
打开neutron.conf (/etc/kolla/neutron-server/neutron.conf)
可以看到driver为openvswitch
查看openvswitch_agent.ini (/etc/kolla/neutron-openvswitch-agent/openvswitch_agent.ini)
可以看到ovs的bridge_mappings为空,其原因是 在kolla-ansible部署前,没有在配置文件中指定外部网络接口 。我们需要通过手动创建虚拟网桥把flat网络和物理接口连接起来。
flat网络名字可以通过ml2_conf.ini (/etc/kolla/neutron-server/ml2_conf.ini)文件确认
进入容器neutron_openvswitch_agent,需要用root角色
在容器中,通过以下openvswitch命令,添加虚拟网桥,并映射到flat网络接口
打开openvswitch_agent.ini (/etc/kolla/neutron-openvswitch-agent/openvswitch_agent.ini)
可以看到bridge_mappings为空。编辑文件,将bridge_mappings的值改为physnet1:br-ex。
其中physnet1表示桥接的物理网卡,br-ex是新建的虚拟网桥。
docker restart neutron_server neutron_openvswitch_agent
the End