百度
360搜索
搜狗搜索

openstack的计算节点是,openstack常用命令详细介绍

本文目录一览: openstack查询虚机在哪个计算节点上

场景(一个租户,两个网络,一个路由,内部网络使用GRE,Libvirt VIF Driver使用LibvirtHybridOVSBridgeDriver):

场景一虚拟网络拓扑

Figure 11 场景一虚拟网络拓扑
如图我们有一个外网(External
Network),IP段为172.16.0.0/16,两个内网,分别是Internal:10.18.0.0/24,和
Internal2:10.22.22.0/24,值得注意的是这是两个网络(network),而不是子网(subnet)。
在这个场景下,计算节点的内部应当是这样的:

计算节点网络连接原理

下面我将解释如何得到这幅图。首先我们看下我们的虚拟机在libvirt的名称,通过 nova show 命令我们大概可以获得像这样输出(截取前半部分):

+--------------------------------------+-------------------------------

|

| Property | Value |

+--------------------------------------+-------------------------------

| Internal network | 10.18.0.3, 172.16.19.232 |

| OS-DCF:diskConfig | MANUAL |

| OS-EXT-AZ:availability_zone | nova |

| OS-EXT-SRV-ATTR:host | compute1 |

| OS-EXT-SRV-ATTR:hypervisor_hostname | compute1 |

| OS-EXT-SRV-ATTR:instance_name | instance-0000001e |

我们看到这台虚拟机被部署在compute1节点上,instance_name为instance-0000001e,我们上compute1节点使用virsh dumpxml将instance-0000001e的信息打印出来(截取网络相关):

<mac
address='fa:16:3e:e9:26:5a'/>

<address type="pci" domain="0x0000"
bus='0x00' slot='0x03' function='0x0'/>

在这里我们看到这台虚拟机的网络设备是tap48e06cd2-60,而且似乎连到了qbr48e06cd2-60上,让我们用brctl show再看下(截取相关部分):

qbr48e06cd2-60 8000.bed5536ff312 no qvb48e06cd2-60tap48e06cd2-60

看到这里网桥qbr48e06cd2-60上接了两个接口,qvb48e06cd2-60和tap48e06cd2-60,其中的tap设备是
我们虚拟机使用的虚拟网络设备,那qvb48e06cd2-60是什么?我们先用lshw –class
network把所有网络设备打印出来(截取相关部分):

*-network:5description: Ethernet interface
physical id: 7 logical name: qvb48e06cd2-60 serial: be:d5:53:6f:f3:12
size: 10Gbit/s capabilities: ethernet physical configuration:
autonegotiation=off broadcast=yes driver=veth driverversion=1.0
duplex=full firmware=N/A link=yes multicast=yes port=twisted pair
promiscuous=yes speed=10Gbit/s

我们注意到这里显示这个设备的driver是veth,而veth总是成对出现的,我们用ethtool -S 看下这个veth的另一端连到了那里:

# ethtool -S qvb48e06cd2-60NIC statistics: peer_ifindex: 16

OK,看下16号是哪个设备,ip link(截取相关部分):

16: qvo48e06cd2-60:

mtu 1500 qdisc

pfifo_fast state UP qlen 1000link/ether aa:c0:0f:d2:e2:43 brd

ff:ff:ff:ff:ff:ff

通过上面两个步骤我们已经知道了这对从虚拟机的网络设备到veth pair这个流程,这个过程在官方文档中针对不同的 Libvirt VIF Driver有不同的简单的描述,见 https://wiki.openstack.org/wiki/LibvirtVIFDrivers



下面应该是连到Open vSwitch上吧,让我们验证下:

# ovs-vsctl show

1910d375-2692-4214-acdf-d364382c25a4

Bridge br-int

Port br-int

Interface br-int

type: internal

Port patch-tun

Interface patch-tun

type: patch

options: {peer=patch-int}

Port "qvo48e06cd2-60"

tag: 1

Interface "qvo48e06cd2-60"

Port "qvodfdc29e2-9a"

tag: 2

Interface "qvodfdc29e2-9a"

Port "qvo18cec000-80"

tag: 2

Interface "qvo18cec000-80"

Port "qvob86d15f1-8f"

tag: 1

Interface "qvob86d15f1-8f"

Bridge br-tun

Port br-tun

Interface br-tun

type: internal

Port patch-int

Interface patch-int

type: patch

options: {peer=patch-tun}

Port "gre-1"

Interface "gre-1"

type: gre

options: {in_key=flow, local_ip="192.168.10.11", out_key=flow, remote_ip="192.168.10.10"}

ovs_version: "1.11.0"

果然qvo48e06cd2-60是连到了br-int上, OpenStack采用这么复杂的机制,而不是把tap设备直接连到Open vSwitch上,这与安全组有关,将在3.2.4基于iptables的Security Group介绍。

在研究到OVS内部前,我们先注意下在poty “qvo48e06cd2-60”下有一个“tag: 1”,这个tag是Open

vSwitch用来区分不同子网的。在这里,tag1表示我们的10.18.0.0/24子网,tag2表示10.22.22.0/24子网。

br-int和br-tun通过patch连接,在官方文档上patch的介绍并不多,但一旦两个OVS网桥通过网桥连接,这两个网桥将近乎为同一个网桥,参考资料见: Open vSwitch FAQ

和 Connecting OVS Bridges with Patch Ports



首先看下bt-int的流表规则:

# ovs-ofctl dump-flows br-intNXST_FLOW reply (xid=0×4):

cookie=0×0,

duration=246746.016s, table=0, n_packets=702, n_bytes=78521,

idle_age=1324, hard_age=65534, priority=1 actions=NORMAL

只有一个NORMAL的动作,在Open vSwitch的官方文档里解释为将包以传统的,非OpenFlow的方式进行交换,也就是说效果和没设置OpenFlow规则一样(见 Open vSwitch Advanced Features Tutorial

)。那么我们分析br-tun的流表规则,首先在计算节点上用ovs-ofctl dump-ports-desc查看br-tun上所有接口:

OFPST_PORT_DESC reply (xid=0x2):1(patch-int):

addr:ea:a2:71:f5:9f:ad config: 0 state: 0 speed: 0 Mbps now, 0

Mbps max 2(gre-1): addr:d6:89:b0:03:d2:72 config: 0 state: 0

speed: 0 Mbps now, 0 Mbps max LOCAL(br-tun): addr:9a:49:9a:35:d1:4e

config: 0 state: 0 speed: 0 Mbps now, 0 Mbps max

阅读更多 >>>  强电需要用linux吗

然后用ovs-ofctl dump-flows或者EasyOVS查看br-tun的流表规则(这里使用EasyOVS使排版相对好看):

ID TAB PKT PRI MATCH ACT

0 0 339 1 in=1 resubmit(,1)

1 0 285 1 in=2 resubmit(,2)

2 0 3 0 * drop

3 1 216 0 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 resubmit(,20)

4 1 123 0 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 resubmit(,21)

5 10 363 1

*

learn(table=20,hard_timeout=300,priority=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0->NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[]),output:1

6 2 341 1 tun_id=0x2 mod_vlan_vid:1,resubmit(,10)

7 2 17 1 tun_id=0x3 mod_vlan_vid:2,resubmit(,10)

8 2 3 0 * drop

9 20 0 0 * resubmit(,21)

10 21 3 1 vlan=2 strip_vlan,set_tunnel:0x3,output:2

11 21 16 1 vlan=1 strip_vlan,set_tunnel:0x2,output:2

12 21 4 0 * drop

13 3 0 0 * drop

这里为了好看只显示了ID、表名、计数器、匹配规则和行为。先看这几条流:0、3、4、9、10、11、12,这些流定义了从br-int进入的包的行为,逐条从上往下看:

0. 表0:当匹配到从port 1(patch-int)进入的包时,提交给表1继续匹配;3. 表1:当目标MAC地址为单播地址时,提交给表20继续匹配;

4. 表1:当目标MAC地址为多播/广播地址时,提交给表21继续匹配;、

9.

表20:提交给21继续匹配(这个表并非只是转发,当OVS根据表10动态建立自动学习的规则时,会添加到表20,比如下面这条流表规则是自动建立的目标

MAC地址为路由的规则:“cookie = 0×0, duration = 11.099s, table = 20, n_packets =

45, n_bytes = 6132, hard_timeout = 300, idle_age = 3, hard_age = 2,

priority = 1,vlan_tci = 0×0001/0x0fff,dl_dst = fa:16:3e:a1:3f:19 actions

= load:0 -> NXM_OF_VLAN_TCI[], load:0×2 -> NXM_NX_TUN_ID[],

output:2”);

10. 表21:当目标VLan标签为2时,剥去VLan标签,然后将Tunnel Key设置为3(GRE通道的Key,详见 rfc2890

的相关描述)并从port 2(gre-1)发出去;

11. 表21:当目标VLan标签为1时,剥去VLan标签,然后将Tunnel Key设置为2并从port 2(gre-1)发出去;

12. 表21:对没成功匹配的包,丢弃。

再看1、6、7、5,这几个流定义了来自GRE通道(Network节点)的包的行为:

1. 表0:当匹配到从port 2(gre-1)进入的包时,提交给表2继续匹配;6. 表2:当Tunnel Key为2时,添加VLan tag 1,提交给表10继续匹配;

7. 表2:当Tunnel Key为3时,添加VLan tag 2,提交给表10继续匹配;

5. 表10:首先从报文中学习VLan、MAC等信息并把规则添加表20,然后再从port 1(patch-int)发出去。
7)openstack 扩充计算节点

使用一断时间之后,玩的正hgin,创建一个新主机报错了:
openstack创建云主机时界面报错:错误: 实例 "xxxx" 执行所请求操作失败,实例处于错误状态。: 请稍后再试 [错误: No valid host was found. There are not enough hosts available.].
出现这种情况,大家可以去调查一下nova下的调度信息日志(nova-scheduler.log),不外乎下面资源用完了的情况:vCPU,内存,存储空间,网络。
我们假定现在是cpu和内存资源不够用了,无法创建更多虚拟机了,我们需要扩充计算节点。下面我们新增一台计算节点。
我们同样准备了一台CentOS7.2的主机,把它升级到最新,它的管理IP为192.168.25.25。
1,执行安装脚本安装。创建下面脚本,保存在任意位置,赋予执行权限,然后执行。

拷贝下面内容到该文件,注意如果你的环境不是严格按照我的做的话,必要的参数自行修改。

这样一台计算节点就安装完了,下面我们来验证一下。
在控制节点上执行下面命令 。看到nova-compute 的节点多了,有新加的这一台主机名,且状态是正常enabled 和up的就OK了。

Openstack中计算节点和控制节点的硬件配置各是什么样的?

这个硬件需要根据你的实际使用来具体配置了,没有一个具体的数字,比如我们的环境,控制节点的话3个1t的硬盘,两个做raid1,一个做热备,32核的cpu,24个16g的内存条。计算节点的话12个1.8t的硬盘来做存储。

openstack中创建完一个实例,这个实例实际的存放位置,具体在计算节点哪个目录?

用的ubuntu计算节点:/var/lib/nova/instances/
/var/lib/nova/instances/_base这里有个初始镜像
/var/lib/nova/instances/xxxxxxxxxxxxxxx/disk这里是快照

OpenStack-12-增加flat网段

使用OpenStack虚机启动的网卡是临时的,虚拟机重启就失效了,虚拟机挂起也会失效,网卡重启也会失效

测试环境: 分别在三台机器上增加一个网卡,选择lan网段,地址172.16.0.0/24

(一)增加一个flat网络原因

(二)添加网卡eth1

控制节点:

计算节点1:

计算节点2:

互相进行ping测试,测试连通性

(三)控制节点配置
1:控制节点

a:

b:

c:重启
systemctl restart neutron-server.service neutron-linuxbridge-agent.service

(四)计算节点配置
a:

b:重启

(五)创建网络
1、命令行创建:
neutron net-create --shared --provider:physical_network net172_16_0
--provider:network_type flat jiage

neutron subnet-create --name jiage
--allocation-pool start=172.16.0.1,end=172.16.0.250
--dns-nameserver 223.5.5.5 --gateway 172.16.0.254
jiage 172.16.0.0/24

查看创建的网络和子网详情

2、web页面创建网络:
管理员-网络-创建网络(供应商:平面)

创建子网

创建实例测试网络是否可用:项目-实例-创建实例(创建过程中可以选择刚创建的网络)

目前网络内网是通的,但是外网不通.因为指定的网关真实并不存在
需要创建一个linux系统作为路由器使用:

openstack常用命令

1,查看服务

openstack service list
删除服务:openstack service delete 服务ID #服务ID通过openstack service list查看。

2,查看endpoint

openstack endpoint list
删除endpoint:openstack service delete endpoint_ID #endpoint的ID通过openstack endpoint list查看。

3,查看域
openstack domain list
4,查看项目
openstack project list
5,查看用户
openstack user list
6,查看角色
openstack role list
7,查看镜像
openstack image list
8,列出可用类型: openstack flavor list
9,列出可用镜像: openstack image list
10,列出可用网络:openstack network list
11,列出可用的安全组:openstack security group list
12,检查实例的状态:openstack server list
13,创建角色
openstack role create user
14,查看cinder存储
cinder service-list
15,查看镜像信息
qemu-img info /var/lib/glance/images/镜像id
※可以查看到virtual size,后面创建实例的磁盘大小,必须大于此值。

阅读更多 >>>  抖音场景素材库的确切位置在哪里?

【检查服务是否正常】
●以下在控制节点执行:
1,检查keystone服务是否正常
source 环境变量
openstack token issue #显示则正常

2,检查glance服务是否正常
openstack image list #显示则正常
或:openstack image-list
3,检查nova服务是否正常
openstack compute service list
或:nova service-list
是否有:
nova-conductor 控制节点
nova-consoleauth 控制节点
nova-scheduler 控制节点
nova-compute 计算节点
4,检查neutron服务是否正常
neutron agent-list

openstack最大支持多少计算节点
openstack 控制节点怎么与计算节点通讯

Openstack计算服务通过认证服务获取认证;通过镜像服务获取镜像;通过仪表盘提供的用户界面与用户交互。镜像的存取受工程和用户的限制,配额受工程的限制(例如不同工程允许虚拟机实例数量不同)。Openstack计算服务可以在标准硬件上进行横向扩展,可以下载镜像并开启虚拟机实例。
Openstack计算服务包含如下几部分,每部分都对应一个组件:
nova-api
接收并响应终端用户的计算服务API调用。该服务执行若干策略并且发起大多数编排行为,比如运行某个虚拟机实例。

云计算的知识梳理

一、云计算的定义:

官方:云计算是一种按使用量付费的模式(资源服务模式),该模式可以实现随时随地、便捷按需的从可配置资源共享池中获取所需的资源。包括网络、服务器、存储、应用及服务,资源能够快速供应并释放,大大减少了资源管理工作的开销。

百度百科:云计算 是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。

特点:1.超大规模 2.虚拟化 3.高可靠性 4.按需服务 5.高可扩展性

二、OpenStack的历史版本:

云计算:2010年 元年,因为出现了OpenStack的第一个版本Austin(2010-10-21),目前已经到最新版本Queens,前一个版本是Pike版本,发行版本的规律:字母表顺序A-Z来命名的

三、OpenStack的难点在哪里?

1、OpenStack涉及的知识领域极广

2、OpenStack是一个平台,并不是一个具体的实施方案

OpenStack的Cinder(存储服务)定义了上层API,分布式存储软件,Ceph、HDFS对应的驱动

3、OpenStack本身是一个分布式系统:All-in-one部署

对于一个小白来说,OpenStack的搭建无疑是一个痛点,这个门槛有点高,我在开始学习的时候,也是煞费苦心,所以学好基础知识真的非常重要。

四、什么是虚拟化?

1)、虚拟化与虚拟化技术是什么?

虚拟化是云计算的基础,

虚拟化:软件模拟硬件的过程

具体定义:虚拟化使一台物理机上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO等硬件资源,每一台虚拟机逻辑上是相互隔离的。

行业内专用术语:

1、物理机:宿主机Host

2、虚拟机:客户机Guest

2)、虚拟化分类(按照虚拟化实现结构):

1、1型虚拟化

定义:Hypervisor直接安装在物理机(裸机)上,多个虚拟机在Hypervisor上运行。

特点: 1型虚拟机本身就是一个操作系统,不需要其他操作系统的支持

举例:VMware的ESXI(workstation、server)

2型虚拟化

? ? 物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

虚拟化技术:一种运行在基础物理服务器和操作系统之间的中间软件层,可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisor协调着这些硬件资源的访问,以及各个虚拟机之间的防护。服务器启动时,它会加载所有虚拟机客户端的操作系统,同时为虚拟机分配内存、磁盘和网络等。也可叫做VMM(?virtual machine monitor?),即虚拟机监视器。

1型和2型虚拟化的对比:

1、前者性能比后者好

2、前者不需要操作系统支持,后者需要

3、后者更加灵活,特点:支持虚拟机的嵌套

使用虚拟化的原因:

打破实体结构间不可切割的障碍,使用户能更好的利用这些资源

没有虚拟化:服务器的IT资源30%

有虚拟化:服务器的IT资源70%

3)、虚拟化的优点

1、提高IT资源利用率

2、显著减少了服务器的数量,企业不动资产和管理成本。

3、加速应用部署

4、提高应用兼容性

五、云计算服务三层架构:根据提供服务的不同(会在下一篇详细讲解三种服务)

1、IaaS:infrastructure as a Service

定义:基础服务层

功能:提供的服务是存储、计算、网络等硬件资源? OpenStack

特点:负责管理虚拟机的整个生命周期,虚拟机创建、修改、启动停止、快照/备份、销毁

举例:阿里云、腾讯云、亚马逊的AWS(Amazon webserice)

2、PaaS:platform as a service

定义:平台服务层

功能:提供的服务是应用程序的运行环境和一系列中间件服务

特点:负责保证服务的性能和可用性。

举例:大数据和深度学习容器云平台

3、SaaS:Software as a service

定义:软件服务层

功能:提供的服务是软件/应用程序。

特点:用户需要登录并使用它,"拿来即用"

举例:facebook、twitter、instagram、QQ、微信

网上还有人说Docker的CaaS(container as a service)容器服务层。

六、OpenStack是什么?

OpenStack is a cloud operating system that controls large pools of storage, compute,and networking resources throughout a datacenter,all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface。

官方定义:OpenStack是一个(可以管理整个数据中心里存储、计算及网络资源的)云操作系统。

OpenStack 作为一个操作系统,管理资源是它的首要任务;

OpenStack 管理资源主要有三个方面:计算、存储和网络。

整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。这四个节点也可以安装在一台机器上,单机部署(All-in-one部署)

控制节点 负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等

计算节点 负责虚拟机运行

网络节点 负责对外网络与内网络之间的通信

存储节点 负责对虚拟机的额外存储管理等等

下面我给出一张官方架构图(给出中文版方便理解):

OpenStack的组件:

Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信 (核心服务)

Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板(核心服务)

Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板(核心服务)

Keystone:认证管理服务,为OpenStack的其他组件提供认证(auth)服务?(核心服务)

Cinder:提供管理存储节点的Cinder相关(为虚拟机提供存储卷(虚拟硬盘))?(核心服务)

Swift:为Glance和Cinder提供对象存储服务

Ceilometer:为OpenStack提供监控(monitor)、计量服务;提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作

Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。

Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理 ?(核心服务)

第一次写关于技术方面的文章,不足之处后面还会修改补充,希望自己坚持下去。

openstack.创建实例的工作流程,分析各个组件间是如何协同工作的?

OpenStack创建实例的工作流程涉及多个组件,包括 Nova、Neutron、Glance等。以下是OpenStack创建实例的工作流程以及各个组件的协同工作方式:
1.用户使用Horizon或API创建实例请求。
2.Horizon或API将实例请求发送给Nova API。
3.Nova API将实例请求发送给Nova Scheduler,Nova Scheduler选择一个合适的计算节点创建实例。
4.Nova Scheduler通过RPC调用Nova Compute来创建实例。
5.Nova Compute创建实例并将实例状态更新到Nova数据库。
6.Nova Compute通过RPC调用Neutron来创建实例的网络。
7.Neutron创建实例的网络并将网络状态更新到Neutron数据库。
8.Nova Compute使用Glance API来下载实例镜像。
9.Glance API从镜像仓库中下载实例镜像并将镜像缓存到Glance Image Cache中。
10.Nova Compute使用Qemu/KVM等虚拟化技术来启动实例,并将实例状态更新到Nova数据库。
11.实例启动后,Nova Compute将实例的元数据信息发送给Nova Metadata Service。
12.Nova Metadata Service将实例的元数据信息发送给Nova API。
13.Nova API将实例的元数据信息发送给Horizon或API,用户可以通过Horizon或API访问实例的元数据信息。
在整个过程中,各个组件的协同工作是通过OpenStack中的消息队列系统RabbitMQ来实现的。当一个组件需要与另一个组件通信时,它会将消息发送到RabbitMQ中,另一个组件则会从RabbitMQ中接收消息并进行处理。通过消息队列的方式,各个组件之间可以实现异步通信,从而提高系统的可靠性和稳定性。
总的来说,OpenStack创建实例的工作流程涉及多个组件的协同工作,通过消息队列系统实现各个组件之间的通信和协作,从而实现实例的创建、网络的配置、镜像的下载等操作

网站数据信息

"openstack的计算节点是,openstack常用命令"浏览人数已经达到22次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:openstack的计算节点是,openstack常用命令的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!