![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
openstack
文章平均质量分 79
qq_42533216
这个作者很懒,什么都没留下…
展开
-
KVM虚拟化技术的-NUMA技术和应用
其基本特征是由多个SMP服务器通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构,因而扩展能力最好,理论上其扩展无限制,目前的技术可实现512个节点互联,数千个CPU。在SMP系统上,所有的cpu对共享内存控制器拥有相同的访问权限。NUMA架构每个处理器都可以访问自己的存储器和其他处理器的存储器,访问自己的存储器要比访问其他的存储器快的多,速度相差10-100倍,所以NUMA调优的目的就是让处理器尽量访问自己的存储器,以提高访问速度。.转载 2022-08-03 16:17:35 · 2620 阅读 · 0 评论 -
RabbitMQ 集群
如果没有持久化的话,然后就没有然后了。因此,在集群环境中,队列只有元数据会在集群的所有节点同步,但队列中的数据只会存在于一个节点,数据没有冗余且容易丢,甚至在durable的情况下,如果所在的服务器节点宕机,就要等待节点恢复才能继续提供消息服务。默认的情况下,消息只会存在于它被创建的节点上,但是它们在所有节点上可见和可访问。比如,如果一个节点可以存放1GB的消息,增加另外两个节点只会增加另外两个拷贝而已。对于Queue来说,消息实体只存在于其中一个节点,A、B两个节点仅有相同的元数据,即队列结构。...原创 2022-07-18 11:40:04 · 409 阅读 · 0 评论 -
lun的概念
在磁盘阵列和磁带库大行其道的时代,存储越来越智能化,越来越像一个独立的机器,实际上存储和主机的电气独立本来就是一个必然趋势。有了独立的磁盘阵列用了之后,服务器只要看到存储的控制系统,就有可能使用磁盘阵列的磁盘资源,但是磁盘阵列不可能只为某一个服务器来使用,所以他必须管制主机使用某部分磁盘资源。一个阵列的控制系统,大多都有虚拟化的功能,阵列想让主机看到什么样的东西,主机才能看到相应的东西。,具体的做法,就是生成一个特别的设备文件,操作系统操作这个特殊的设备文件。而我们知道,设备文件。那么,必然的,同一个。..转载 2022-07-15 14:31:30 · 1311 阅读 · 0 评论 -
openstack 相关博客
包含很多openstack相关的分析。原创 2022-07-15 10:46:49 · 141 阅读 · 0 评论 -
openstack 虚拟机关于NUMA
NUMA:(Non Uniform Memory Access)即非一致内存访问架构。NUMA具有多个节点(Node),每个节点可以拥有多个CPU(每个CPU可以具有多个核或线程),节点内使用共有的内存控制器,因此节点的所有内存对于本节点的所有CPU都是等同的,而对于其它节点中的所有CPU都是不同的。节点可分为本地节点(Local Node)、邻居节点(Neighbour Node)和远端节点(Remote Node)三种类型。本地节点:对于某个节点中的所有CPU,此节点称为本地节点;邻居节点:与本地节点相原创 2022-07-08 11:03:57 · 1337 阅读 · 0 评论 -
NBD Network Block Device
1. 介绍NBD(Network Block Device),即网络块设备。可以将一个远程主机的磁盘空间,当作一个块设备来使用。就像一块硬盘一样使用它,你可以很方便的将另一台服务器的硬盘空间,增加到本地服务器上。NBD与NFS有所不同,NFS只是提供一个挂载点供客户端使用,客户端无法改变这个挂载点的分区格式,而NBD提供的是一个块设备,客户端可以把这个块设备格式化成各种类型的分区,更便于用户的使用。NBD是一个内核模块,大部分Linux发行版都已包含它。在centos中, 编译成模块NBD, 保存在 /l转载 2022-06-23 14:50:01 · 614 阅读 · 0 评论 -
dev/mapper的解释
二、/dev/mapper目录的解释 为了方便叙述,假设一台服务器有三块硬盘分别为a,b,c,每块硬盘的容量为1T。在安装Linux的时候,先根据系统及自身的需要建立基本的分区,假设对硬盘a进行了分区,分出去了0.1T的空间挂载在/boot目录下,其他硬盘未进行分区。系统利用Device mapper机制建立了一个卷组(volume group,VG),你可以把VG当做一个资源池来看待,最后在VG上面再创建逻辑卷(logical volume,LV)。若要将硬盘a的剩余空间、硬盘b和硬盘c都加入到VG中原创 2022-06-23 10:49:05 · 6576 阅读 · 2 评论 -
虚机串口的配置
sss转载 2022-06-02 10:48:01 · 3294 阅读 · 0 评论 -
oslo: oslo_config组件解析 和代码中的应用
oslo: oslo_config组件解析OpenStack中大量使用了一些第三方组件,为了使一些基础组件的接口的统一及更友好的使用,Openstack利用oslo的项目统一了第三方组件的接口。如最常使用的oslo项目:oslo_config oslo_log oslo_messaging stevedoreoslo_configOpenStack中用于从配置文件及命令行解析配置参数的第三方库。在Openstack中配置文件相关的概念简要介绍如下:配置文件: INI风格的文件,key=原创 2022-05-23 17:08:00 · 799 阅读 · 0 评论 -
Attach Volume 操作(Part I) - 每天5分钟玩转 OpenStack(53)
Attach Volume 操作(Part I) - 每天5分钟玩转 OpenStack(53)上一节我们创建了 volume,本节讨论如何将 volume attach 到 Instance,今天是第一部分。Volume 的最主要用途是作为虚拟硬盘提供给 instance 使用。Volume 是通过 Attach 操作挂载到 instance 上的。本节我们就来详细讨论 Cinder 是如何实现 Attach 的。上一节我们成功创建了基于 LVM provider 的 v.转载 2022-05-20 10:39:24 · 252 阅读 · 0 评论 -
qemu使用
qemu使用本文目录前言: qemu-img基本命令 qemu-img使用回到目录前言:qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemu-img这个二进制文件。qemu-img也是QEMU/KVM使用过程中一个比较重要的工具,本节对其用法和实践使用方法进行介绍。本文先介绍qemu-img的基本命令及语法,这个也可以通过qemu-img --help得到。然后简单介绍创建和使用kvm虚拟机镜像文件的一般过程。回到目录qemu-.原创 2022-05-18 18:13:10 · 5063 阅读 · 0 评论 -
不同虚拟化技术 virtio 之间的区别
目录概述I/O设备半虚拟化驱动(virtio)Guest of WindowsGuest of LinuxVirtio in Openstackvirtio_blk和virtio-scsivirtio-blk:virtio-scsi:概述IDE - Slow Write in the Guest SystemSCSI - Faster Write(as IDE) in Guest SystemVIRTIO - Fastest Write (mo...转载 2022-05-13 12:01:15 · 1874 阅读 · 0 评论 -
Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)
Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)上一节我们讨论了 attach volume 操作中 cinder-api 的工作,本节讨论 cinder-volume 和 nova-compute 如何将 volume attach 到 Instance。cinder-volume 初始化 volume 的连接cinder-volume 接收到 initialize_connection 消息后,会通过 tgt 创建 target,转载 2022-05-13 10:41:13 · 271 阅读 · 0 评论 -
openstack 相关操作详解代码流程
文章连接TechnologyNote的个人空间_哔哩哔哩_Bilibili原创 2022-05-13 10:31:48 · 127 阅读 · 0 评论 -
浅谈linux中的根文件系统(rootfs的原理和介绍)
linux中有一个让很多初学者都不是特别清楚的概念,叫做“根文件系统”。我接触linux前前后后也好几年了,但是对这个问题,至今也不是特别的清楚,至少没法给出一个很全面很到位的解释。于是,今天我们就来理一理这个话题。一、先交代一下文件系统在开始讨论根文件系统这个话题之前,我们必首先交代一下文件系统这个概念。毕竟,根文件系统只是文件系统中的一种比较特殊的形式而已。根据伟大的百度百科:文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结转载 2022-05-13 10:04:22 · 1642 阅读 · 0 评论 -
OpenStack基于Libvirt的虚拟化平台调度实现----Nova虚拟机启动源码实现(4)
完成对方法_create_image的解析,我们回到方法spawn中,继续对Nova虚拟机启动源码实现进行解析。再来看方法spawn的源码:def spawn(self, context, instance, image_meta, injected_files, admin_password, network_info=None, block_device_info=None): """ 在虚拟化平台上建立新的实例/虚拟机/域;...转载 2022-05-12 14:55:53 · 564 阅读 · 0 评论 -
qemu-img 创建系统启动盘的命令
qemu-img command [command options]Command:check [-f fmt] filename # 对磁盘镜像文件进行一致性检查,查找镜像文件中的错误# 目前仅支持对"qcow2 "、"qed"、"vdi"格式文件的检查# 参数-f fmt是指定文件的格式,如果不指定格式,qemu-img会自动检测。# filename是磁盘镜像文件的名称(包括路径)qcow2是QEMU 0.8.3版本引入的镜像文件...转载 2022-05-12 10:59:33 · 3460 阅读 · 0 评论 -
Attach Volume 操作 openstack
上一节我们创建了 volume,本节讨论如何将 volume attach 到 Instance,今天是第一部分。Volume 的最主要用途是作为虚拟硬盘提供给 instance 使用。Volume 是通过 Attach 操作挂载到 instance 上的。本节我们就来详细讨论 Cinder 是如何实现 Attach 的。上一节我们成功创建了基于 LVM provider 的 volume。每个 volume 实际上是存储节点上 VG 中的一个 LV。那么问题来了:存储节点上本地的 ...转载 2022-05-11 21:40:24 · 421 阅读 · 0 评论 -
openstack 服务的启动
基本所有的openstack服务都依赖 evenlet 完成各种并发任务,它的进程可分为两类:1、WSGIService: 接收和处理 http 请求,依赖eventlet.wsgi的wsgi server处理 http 请求,比如nova-api2、Service: 接收和处理 rpc 请求,如nova-operation等无论是WSGIService还是Service类型的进程,每当接收到一个请求(http 或 rpc),都会在线程池中分配一个协程处理该请求一、WS...转载 2022-04-21 14:45:58 · 877 阅读 · 0 评论 -
从数据库分析OpenStack创建虚机流程
基本介绍在OpenStack创建虚拟机的过程中,可能会涉及到的数据库有三个,分别是:nova nova_api nova_cell0下图是OpenStack的所有的数据库这三个数据库里存放的表主要有:nova 早期的OpenStack只有nova一个数据库,里面存放了所有的关于虚拟机的表。如instance表:存放每一个主机主机信息(后面会介绍到);quotas表:项目配额信息 ;fixed_ips表;块存储设备表等。 nova_api 从nova数据库中移除的一部分...转载 2022-04-01 16:25:57 · 2844 阅读 · 0 评论 -
with 上下文管理和在openstack中的应用
with这个关键字,对于每一学习Python的人,都不会陌生。操作文本对象的时候,几乎所有的人都会让我们要用with open,这就是一个上下文管理的例子。你一定已经相当熟悉了,我就不再废话了。with open('test.txt') as f: print f.readlines()什么是上下文管理器?基本语法with EXPR as VAR: BLOCK先理清几个概念上下文表达式:with open(‘test.txt’) as f: 上下文...转载 2022-04-01 14:38:20 · 123 阅读 · 0 评论 -
cinder
目录文章目录目录 Cinder Cinder 的软件架构 cinder-api cinder-scheduler cinder-volume Driver 框架 Plugin 框架 cinder-backup Volume Provider 中间件 创建 Volume 流程分析 cinder-api 阶段 cinder-scheduler 阶段 cinder-volume 阶段 TaskFlow 创建 Volume 失败重试机制转载 2022-03-18 16:30:02 · 690 阅读 · 0 评论 -
openstack, kvm, qemu-kvm以及libvirt之间的关系
openstack, kvm, qemu-kvm以及libvirt之间的关系KVM是最底层的hypervisor,它是用来模拟CPU的运行,它缺少了对network和周边I/O的支持,所以我们是没法直接用它的。QEMU-KVM就是一个完整的模拟器,它是构建基于KVM上面的,它提供了完整的网络和I/O支持。Openstack不会直接控制qemu-kvm,它会用一个叫libvirt的库去间接控制qemu-kvm。libvirt提供了跨VM平台的功能,它可以控制除了QEMU之外的模拟器,包括vmwar转载 2022-03-16 16:23:19 · 516 阅读 · 0 评论 -
libvirt介绍和使用
libvirt介绍和使用正在上传…重新上传取消分享放大价值关注0.5042017.05.22 18:06:42字数 1,780阅读 10,840导读:why&&what libvirt具体介绍 API 剖析 driver 剖析 如何使用libvirt?why&&what实现一朵可运行、可运维的云,需要完整的实现三层:VIM层、VNFM层、NFVO层,其中实现对VNF的生命周期管理是VNFM层要实现核心功能。但要做到对VNF的控制管理谈何容易,转载 2022-03-16 15:26:42 · 2394 阅读 · 0 评论 -
openstack 通过qemu 启动虚拟机, 启动文件的分析
大家从OpenStack页面上,轻松一点就创建了一个虚拟机,但是当你登陆到一台物理机上ps查看的时候,却发现参数复杂之极。ps -ef|grep qemu qemu-system-x86_64-enable-kvm-name instance-00000024-machine pc-i440fx-trusty,accel=kvm,usb=off-cpu SandyBridge,+erms,+smep,+fsgsbase,+pdpe1gb,+rdrand,+f16c,+osxsav转载 2022-03-10 14:40:47 · 1713 阅读 · 0 评论 -
【neutron源码分析】create_network/create_subnet/create_port源码分析
1. network源码分析 通过执行命令创建网络上,neutron net-create xxxxx 首先neutronclient发送HTTP请求给neutron-server,调用create函数。def create(self, request, body=None, **kwargs): self._notifier.info(request.context, self._resource + '.create.s...转载 2021-09-07 11:34:07 · 1480 阅读 · 0 评论 -
openstack 中的网络架构和工作流程
一、首先给出openstack中neutron创建了两个vlan网络,一个router的网络结构,左图是控制节点和网络节点合并部署,右图是计算节点,可以看到计算节点上已创建出三台测试用虚拟机cirros-vm1、cirros-vm2、cirros-vm3,两个物理机节点底层通过交换机相连二、在没有创建路由器之前(上述结构图中的qrouter虚线部分还未创建),我们看一下为何cirros-vm2(172.16.101.3)去ping cirros-vm1(172.16.100.6)ping不通.转载 2021-08-17 10:51:53 · 2819 阅读 · 0 评论 -
OpenStack干货分享 | Neutron源码分析之L3
OpenStack干货分享 | Neutron源码分析之L3概念OpenStack Neutron中,Router提供虚拟三层服务,包括租户网络(Tenant Network)之间、租户网络与外部网络(External Network)之间的路由和网络地址转换,原生模式下路由器管理功能以Service Plugin的形式集成在Neutron Server中,路由器实体以Linux网络命名空间的形式存在,由Neutron L3 Agent管理。本文从Neutron newton版本L3模块源.转载 2021-08-17 10:00:01 · 767 阅读 · 0 评论 -
Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]学习 Neutron 系列文章:(1)Neutron 所实现的虚拟化网络(2)Neutron OpenvSwitch + VLAN 虚拟网络(3)NeutronOpenvSwitch + GRE/VxLAN 虚拟网络(4)Neutron OVS OpenFlow 流表 和 L2 Population(5)Neutron DH.转载 2021-08-10 09:56:33 · 885 阅读 · 0 评论 -
深入浅出KVM (六) 丨Nova 通过 libvirt 管理 QEMU/KVM 虚机
深入浅出KVM (六) 丨Nova 通过 libvirt 管理 QEMU/KVM 虚机2018.01.31 12:21:21字数 746阅读 2,2901. Libvirt 在 OpenStack 架构中的位置在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该 Hypervisor 的虚机。Nova 使用 libvirt 管理 QEMU/KVM 虚机,还使用别的 API 去管理别的虚机。libvirt 的.转载 2021-06-03 10:26:55 · 973 阅读 · 0 评论 -
RPC是怎么执行的
RPC是怎么执行的我们都知道rpc是远程过程调用的意思,通俗的说,就是可以跨节点调用其他节点上的方法。 当然这里要跟rmi区分开来,他们之间有类似的地方。rmi是远程方法调用,是java领域特有的。而rpc是不区分语言的,发送端和接收端可以是异构的。这篇文章不会具体说rpc的整个过程,因为在之前的文章中,已经详细的讲解了rpc的发送逻辑,这里接着说rpc的接收逻辑。RPC发送端回顾下之前说过的rpc的发送端def delete_v2(self, context, job_i..转载 2021-05-21 15:23:06 · 188 阅读 · 0 评论 -
给neutron服务添加一个表
参考:https://blog.csdn.net/energysober/article/details/80289478https://blog.csdn.net/happyAnger6/article/details/54586463一、给neutron添加数据库中的表:1.先运行(一行代码):neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /opt/stack/neutron/neutron/db转载 2021-05-12 17:39:07 · 236 阅读 · 0 评论 -
:Neutron 是如何向 Nova 虚机分配固定IP地址的 (How Neutron Allocates Fixed IPs to Nova Instance)
Nova 虚机获取固定IP (Fixed IP)主要分为两个步骤:(1)在创建虚机过程中,Neutron 随机生成 MAC 和 从配置数据中分配一个固定IP 地址,并保存到 Dnsmasq 的 hosts 文件中,让 Dnsmasq 做好准备。(2)虚机在启动时向 Dnsmasq 获取 IP 地址本文将分析该过程。整个过程涉及不同节点的几个模块:下面将具体分析该过程。1. 创建虚机时的数据流Nova-compute 在创建虚机时,需要 Neutron 所做的主要事情之一就是.转载 2021-05-11 17:18:28 · 755 阅读 · 0 评论 -
OpenStack Nova Placement API 统一资源管理接口的未来
目录 目录 Placement API 为何称之为 “未来” 操作对象基本概念 数据库操作样例 Placement API 在创建虚拟机时的调度过程 Placement REST API 摘要 Placement Client Placement APInova-placement-api,Nova provides a nova-placement-api WSGI scr..转载 2021-05-10 15:16:40 · 528 阅读 · 0 评论 -
Open vSwitch方式实现floating IP
OpenStack实践(九):Open vSwitch方式实现floating IPloong576关注0人评论3297人阅读2019-02-10 15:09:25架构图:环境:openstack版本 pike 控制节点主机 openstack-controller(ubuntu 16.04.5) 172.27.34.37/137 esn160、ens192、ens224 计算节点主机 openstack-computer(ubuntu 16..转载 2021-05-07 15:12:07 · 395 阅读 · 0 评论 -
openstack中的各种API
初看openstack代码,会发现里边有各种和api相关的文件和目录,本文以nova为例,来分析一下这些api的组织与功能。nova中和api有关的文件/目录夹有:api目录多个rpcaip.py多个api.py本文不区分api和API,取决于输入法:)openstack中的几种api:rest api:项目对外接口。本地调用api(local api): 进程内方法调用,及普通的Python方法调用。远程调用api(rpc api): 跨进程方法调用。使用openstack RPC转载 2021-04-29 11:34:26 · 2439 阅读 · 0 评论 -
OpenstackSDK 源码详解
OpenstackSDK 源码详解openstacksdk是基于当前最新版openstacksdk-0.17.2版本,可从 GitHub:OpenstackSDK 获取到最新的源码。openstacksdk的官方使用手册为:SDK 文档实验使用的openstack是Queen版本。SDK 的历史背景据官方文档介绍,openstacksdk项目是由shade、os-client-config、python-openstacksdk三个子项目合并而成的。由于我对这三个项目不太熟悉,所以也没什么好说的,感转载 2021-04-25 16:02:58 · 1463 阅读 · 0 评论 -
OpenStack floating IP
1.弹性公网IP、私有IP、浮动IP、虚拟IP之间区别弹性公网IP是可以直接访问Internet的IP地址。一个弹性公网IP只能给一个ECS使用。私有IP是公有云内网所使用的IP地址,用于内网通信,私有IP不能访问Internet。浮动IP与弹性公网IP功能类似,都是公网IP,用于连接公网,主要不同点在于浮动IP接口无法配置带宽参数。虚拟IP(即VIP)是一个未分配给真实弹性云服务器网卡的IP地址。主要用在弹性云服务器的主备切换,达到高可用性HA(High Availability)的目的。当主服务转载 2021-04-22 17:24:59 · 1511 阅读 · 0 评论 -
kolla-ansible 部署一主一计算 openstack环境
原文地址:https://www.cnblogs.com/diantong/p/12010193.html (1).实验环境 主机名IP地址角色内存网卡CPU磁盘OpenStack-con192.168.128.110controller(控制)8G桥接网卡ens32和ens334核200G OpenStack-com 192.168.128.111compute(计算)4G桥接网卡ens324核20GOpenStack-sto192.168.128.112st...原创 2021-04-09 17:08:46 · 691 阅读 · 0 评论 -
openstack 虚拟机新增指定的ip地址
openstack 虚拟机新增指定的ip地址获得 tenant idkeystone tenant-list | grep DEV获得 network 信息neutron net-list创建新的 portneutron port-create --tenant-id 00f77483830d48e5aafba5880f5c437d --fixed-ip subnet_id=a42781d8-07fd-4744-8409-0b1b40750a71,ip_addres.转载 2021-04-06 18:01:02 · 378 阅读 · 0 评论