openstack数据库获取一个虚机的floating_ip, fix_ip, project_name, user_name, hostname, host

 转载请注明

http://www.cnblogs.com/juandx/p/5418204.html

openstack有3个库,nova,neutron,keystone,我现在需要做的是跨库联表查询虚机的信息

获取一个虚机的floating_ip, fix_ip, project_name, user_name, hostname, host  (不知道在instances表中host和node有什么区别)
select j.floating_ip_address as floating_ip, i.fix_ip, i.port_id, i.project_name, i.user_name, i.hostname,i.host from neutron.floatingips as j right join (select h.ip_address as fix_ip,h.port_id, g.project_name, g.user_name, g.hostname,g.host from neutron.ipallocations as h right join(select f.name as project_name,e.name as user_name,e.hostname,e.port_id,e.host from keystone.project as f right join (select a.name,b.* from keystone.user as a right join (select substring(substring_index(c.network_info,‘ovs_interfaceid‘,-1),5,36) as port_id, d.* from nova.instance_info_caches as c right join nova.instances as d on c.instance_uuid=d.uuid where d.deleted=0) as b on a.id=b.user_id) as e on f.id=e.project_id) as g on g.port_id=h.port_id) as i on i.port_id=j.fixed_port_id order by host,project_name,user_name,floating_ip;

  

nova和neutron的连接关系在nova.instance_info_caches这个表中,里面有fix ip的port,可以去neutron.ipallocations这个表中找到对应分配的ip,然后去neutron.floatingips这个表中找对应的floatingip

nova和keystone的连接关系是nova.instances的user_id和project_id,这个就简单了

但是instance_info_caches中的信息是一个mediumstest类型的json,所以我用msyql 的substring_index过滤port的信息,没要找到在这样的数据中直接用key,value的方法,如果大神知道请告诉我。

时间: 2024-10-09 01:51:37

openstack数据库获取一个虚机的floating_ip, fix_ip, project_name, user_name, hostname, host的相关文章

OpenStack配置串口显示虚机界面

OpenStack配置串口显示虚机界面 OpenStack的horizon能够显示虚拟机的界面.horizon是web界面,在我们的电脑上,姑且称之为本地,虚拟机运行在远端服务器上,称之为远端.本地显示远端的界面,OpenStack提供了多种方式,noVNC 远程桌面协:RDP(Remote Desktop Protocol 远程桌面协议):SPICE (Simple Protocol for Independent Computing Environment独立计算环境简单协议).这些都是图形

Openstack之Nova创建虚机流程分析

前言  Openstack作为一个虚拟机管理平台,核心功能自然是虚拟机的生命周期的管理,而负责虚机管理的模块就是Nova. 本文就是openstack中Nova模块的分析,所以本文重点是以下三点: 先了解Openstack的整体架构,搞清楚为什么要用这样的架构: 然后再了解架构中的各个组件,组件提供的主要功能与各个组件之间的交互: 了解虚机的启动过程,能在遇到问题时发现问题出在哪个模块中的哪个组件. Nova组件介绍 接下来进行详细介绍,如有错误,欢迎拍砖! 下图为创建虚拟机的一个大概流程图.

Python通过OpenStack API接口筛选虚机

开发背景: 由于在OpenStack上有过热迁移失败的记录,虚机重装挂载磁盘会报错,数据盘挂载不上,所以需要在OpenStack上找出所有有过热迁移并且迁移失败的虚机处理,以免后续重装挂载不上磁盘. 开发环境: centos,Python 2.7.5,OpenStack 具体思路: Shell筛选命令nova list –all 找出所有虚机nova instance-action-list 虚机ID | egrep -in 'live-migration|error' 筛选出具有相应动作的虚机

openstack allinone vxlan,虚机网络不通

环境:openstack Q版本,allinone,linuxbridge+vxlan现象:虚机可以拿到地址,但是ping不通网关和dhcp服务器 由于是allinone环境,虚机的tap直接挂到bridge,而dhcp和网关的接口也是直接挂到该bridge,按理虚机是可以直接访问dhcp和网关的,但是虚机确实不通,通过抓包发现连接dhcp的tap没有报文,好像是linux bridge没有转发报文,实在没有办法,把vxlan接口从bridge中删除,虚机竟然可以ping通了,重启linuxbr

Unity中获取一个本机没有被使用过的端口号

百度了一下,主要两种做法: 1.利用GetActiveTcpListeners()方法 怎么使用百度很多文章,但是我试了以后,得到的端口列表跟 netstat -ano 一比较,完全不对,至于为什么,没找到相关文章,自己看资料看了半天也没找到是什么原因,对这个比较熟悉的朋友可以指点下是什么原因. 2.利用进程运行netstat –ano命令,获取到输出文本,得到已被占用的端口信息. 这种方法有个很坑的地方,大多文章的做法是: List<int> ports = new List<int&

Python 之 获取VM虚机属性的另类方法

代码 #Author Kang import ssl import pysphere from pysphere import VIServer,MORTypes,VIProperty from pysphere.resources import VimService_services as VI ssl._create_default_https_context = ssl._create_unverified_context host_ip = '10.3.151.2' username =

Nova: 虚机的块设备总结 [Nova Instance Block Device]

和物理机一样,虚拟机包括几个重要的部分:CPU.内存.磁盘设备.网络设备等.本文将简要总结虚机磁盘设备有关知识. 1. Nova boot CLI 中有关虚机块设备的几个参数 nova boot CLI 的完整参数如下: usage: nova boot [--flavor <flavor>] [--image <image>] //boot from image with id [--image-with <key=value>] //image metadata p

OpenStack 企业私有云的几个需求(1):Nova 虚机支持 GPU

本系列会介绍OpenStack 企业私有云的几个需求: GPU 支持 自动扩展(Auto-scaling)支持 混合云(Hybrid cloud)支持 物理机(Bare metal)支持 CDN 支持 企业负载均衡器(F5)支持 大规模扩展性(100个计算节点)支持 商业SDN控制器支持 内容比较多,很多东西也没有确定的内容.想到哪就写到哪吧.先从 GPU 支持开始. 1. 基础知识 1.1 VGA(图像显示卡),Graphics Card(图形加速卡),Video Card(视频加速卡),3D

OpenStack之虚机冷迁移代码简析

OpenStack之虚机冷迁移代码简析 前不久我们看了openstack的热迁移代码,并进行了简单的分析.真的,很简单的分析.现在天气凉了,为了应时令,再简析下虚机冷迁移的代码. 还是老样子,前端的Horizon代码就省去了,直接看后端的代码实现,前端通过请求的action进入到nova/api/openstack/compute/contrib/admin_actions.py文件.代码如下: 1 @wsgi.action('migrate') 2 def _migrate(self, req