自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (4)
  • 收藏
  • 关注

原创 neutron服务启动源码分析(四)

初始化neutron agent, 创建br-int 交换机,启用tunnel则创建br-tun交换机以及流表, agent侧开启rpc,如果启用dvr则下发dvr流表,初始化firewall (目前是 基于iptables 的 neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver)调用了OVSNeutronAgentOSKenApp的start方法。这里初始了配置,import 了native的module。

2024-01-05 15:36:26 465

原创 经纬度的作用

了解并正确使用经纬度对于我们来说是非常有益的,它不仅可以满足我们对于地理位置的好奇心,还能够帮助我们更好地理解和探索我们生活的这个地球。随着科技的发展,如今我们的手机、平板电脑甚至手表等设备都内置了全球定位系统(GPS)功能,可以随时获取当前位置的经纬度。这为我们的生活带来了很大的便利,无论是出行导航还是外卖送餐,都离不开经纬度的精确定位。通过知道一个地点的经纬度,我们可以在地图上准确地找到该地点的位置。当我们在手机上使用导航软件或者在网上查找地址时,经常会发现一个选项,就是显示当前位置的经纬度。

2024-01-05 10:04:59 540

原创 neutron 安全组代码实现(二)

由前面安全组代码实现一中,我们知道,最终执行了ML2 plugin的create_security_group_rule 方法,由类继承我们知道最终执行了 SecurityGroupServerNotifierRpcMixin.create_security_group_rule, 函数中执行了父类sg_db.SecurityGroupDbMixin 中的create_security_group_rule。最终执行了refresh_firewall , 最终调用firewall driver更新。

2024-01-05 09:58:25 464

原创 neutron 安全组代码实现(一)

安全组创建create请求由controller处理,调用create函数,self._notifier.info 这里先init 了neutron-lib库中的rpc.py中的NOTIFIER,然后调用oslo_message发送了一个info的通知 security_group.create.start, 调用。因为event是events.BEFORE_RESPONSE,所以最终执行了self._notify_loop,最终执行了callback。最终发送cast广播出去了。

2024-01-05 09:57:14 1004

原创 openstack计算节点上iptables安全组分析

由上面可以看出,neutron-openvswi-INPUT链中将来自是 tap323ef4ca-8a和 tapa937d188-d6的流入转给了neutron-openvswi-o323ef4ca-8和 neutron-openvswi-oa937d188-d 两个安全组子链,再看下这俩安全组子链。之前介绍过neutron 安全组基于iptables 和 ct 实现,分析一下计算节点上面的neutron 安全组的iptables,加深一下理解iptables以及安全组的实现。FORWARD 链先跳到。

2023-11-09 16:27:19 479

原创 程序员的护城河有哪些

综上所述,程序员的“护城河”是一种综合能力,包括技术能力、经验、项目和作品集、开源社区贡献、持续学习和适应能力、解决问题的能力、团队合作能力、时间管理和情绪管理等多个方面。通过展示自己的学习能力和对新技术的掌握,程序员可以在竞争中保持优势。通过在开源项目中积极参与并提交代码,程序员可以展示他们的技术能力、合作能力和对技术社区的价值贡献。:程序员可以通过他们参与过的项目和作品集来展示他们的实际能力和成就。:程序员需要具备解决问题的能力,这包括分析问题、提出解决方案、实施解决方案和测试解决方案的能力。

2023-11-09 16:25:25 97

原创 Linux vim 报错 E437

方法2:要下一劳永逸,将上述命令写入 /etc/bashrc或者/etc/profile 文件确保永久生效,切记保存后顺手执行 source /etc/bashrc。方法1:要是偷懒,那直接执行命令 export TERM=linux 或者 export TERM=xterm。或者将export TERM=xterm 添加至/etc/profile文件中即可。这个错误一般是环境变量TERM没有配置或者配置错误所致。执行export TERM=xterm;

2023-11-08 12:59:31 255

原创 Linux-源码安装go

使用go 1.14 版本。

2023-11-08 12:56:30 364

原创 通过ssh隧道转发本地ssh,实现内网穿透

但我自己有比如阿里云上的一台服务器B,我想直接SSH A服务器,怎么办?实际场景,有A服务器,位于某内网环境,没有外网IP,外面无法SSH。当然也可以用开源工具 frp。

2023-11-07 22:43:38 242

原创 mysql常用操作集合

mysql常用操作集合。

2023-11-07 18:17:36 67

原创 nova虚机保存自定义镜像代码分析

虚机保存自定义镜像请求api 的_action_create_image ,这里查询instance以及bdms,因为未开enable_snapshot_volume_backed,所以执行了self.compute_api.snapshottry:bdms):context,instance,metadata)else:instance,

2023-11-03 15:42:42 487

原创 markdown 如何更改字体以及颜色等功能

markdown 是IT人士写文档的常用方式,但是markdown默认又不支持颜色字体等特殊功能,所以呢想实现字体颜色高亮等特殊功能,实现的方法呢就是使用HTML,所以将部分文字改成HTML代码就行

2023-11-03 14:55:33 409

原创 Linux在线扩容磁盘

经过测试,发现如果磁盘不分区的话只是mkfs /dev/sdb 整个磁盘的话,不论xfs还是ext 文件系统,都是能够热扩容的。Linux 磁盘文件系统主要用的是xfs和ext2-ext4, 于是做了相关扩容测试。我们df -h 后发现大小没变,只能重新卸载挂载磁盘。

2023-11-03 14:45:47 422

原创 neutron服务启动源码分析(三)

v2_factory里面就是pecan的相关内容了,hooks中定义了filter用于校验body合法性的,入口在 root.V2Controller(), 这里将v2controller 传给了pecan,创建了pecan的application。这里做了很多初始化的事情, 初始化neutronManager, 初始化extensionManager初始化, 以及将pecan中 router mapping中的collection与对应的controller 对应起来。

2023-10-31 16:12:56 140

原创 neutron服务启动源码分析(二)

wsgi.Loader() 构造了loader实例,传入 config_path = conf.api_paste_config 使用该参数,对应到neutron配置文件中是 /usr/share/neutron/api-paste.ini,调用了loader的load_app方法。load_app 最终调用 deploy.loadapp 通过paste deploy 实现对api-paster.ini中配置信息的解析以及具体实现。上面可以看出其中api-paste.ini 中的。

2023-10-31 16:11:55 116

原创 neutron服务启动源码分析(一)

serve_wsgi 传入cls,然后直接调用对于cls的create函数并start启动,这里代指NeutronApiService class的create和start。boot_server函数主要是加载配置文件,配置日志,最终调用server_func() ,也就是 wsgi_eventlet.eventlet_wsgi_server。run_wsgi_app() 函数最终构造了一个wsgi Server实例,名字为Neutron,start函数中传入监听地址和端口号以及worker数量。

2023-10-30 11:45:50 302

原创 neutron 给虚机分配keepalived vip

neutron 给虚机分配keepalived vip。

2023-10-30 10:38:14 35

原创 openstack常用命令集合

openstack常用命令集合。

2023-10-27 12:49:06 155

原创 Cinder volume服务启动以及创建挂载过程代码走读

cinder-volume的task_flows 中提取volume的spec相关信息,通知volume创建,开始创建volume云盘,因为基于镜像创建系统盘,所以执行_create_from_image函数,调用rbd driver clone_image,同时更新volume_glance_metadata表。筛选根据az,容量,特性等filter筛选合适的backend,并更新volume backend信息,最后调用cinde-volume的rpc_api create_volume。

2023-10-27 12:03:15 531

原创 计算节点上iptables安全组分析

openstack neutron iptables规则在计算节点上的实现

2023-10-27 11:57:21 141

原创 iptables使用与理解

深入理解iptables,了解iptables在openstack云计算相关使用

2023-10-27 11:53:08 251

原创 ceph常用命令整理

工作中需要计算云盘快照容量以及云盘自身的大小。

2023-10-27 11:49:01 106

原创 go 与时间相关的计算以及实例

获取当前某年某月某日以及格式化输出年月日等。计算当前时间以及几天前的时间。

2023-10-27 10:44:28 73

原创 openstack 开启嵌套虚拟化

嵌套式虚拟nested是一个可通过内核参数来启用的功能。它能够使一台虚拟机具有物理机CPU特性,支持vmx或者svm(AMD)硬件虚拟化。该特性需要内核升级到Linux 3.X版本 ,所以在centos6下是需要先升级内核的,而在centos7下已默认支持该特性,不过默认是不开启的,需要通过修改参数支持。工作中,有时用户想在虚拟机里面运行kvm或者kata等虚拟化功能的应用,所以需要让vm支持vt,所以需要支持嵌套虚拟化功能。cpu模式需要是passthrough模式,透传cpu feature给vm。

2023-10-27 10:41:49 368

原创 求string数组中的并集交集以及差集

常用 utils 之 求string数组中的并集交集以及差集。

2023-09-01 14:21:43 85

原创 vue 2使用Element UI

接下来,可以在当前项目的任何视图中使用Element UI!安装完成后,还需要在main.js中添加配置。改变后的main.js。

2023-07-22 15:15:40 87

原创 golang优化-处理断言失败

类型断言 将会在检测到不正确的类型时,以单一返回值形式返回 panic,处理不好会对线上服务造成严重影响。因此,请始终使用“逗号 ok”的方式。

2023-07-21 06:49:08 61

原创 golang优化-正确姿势使用 goroutine

Goroutines 是轻量级的,但它们不是免费的: 至少,它们会为堆栈和 CPU 的调度消耗内存。虽然这些成本对于 Goroutines 的使用来说很小,但当它们在没有受控生命周期的情况下大量生成时会导致严重的性能问题。具有非托管生命周期的 Goroutines 也可能导致其他问题,例如防止未使用的对象被垃圾回收并保留不再使用的资源。因此,不要在代码中泄漏 goroutine。使用 go.uber.org/goleak 来测试可能产生 goroutine 的包内的 goroutine 泄漏。

2023-07-20 17:52:56 47

原创 小刀初试之使用idea开发vue

idea安装vue插件使用

2023-07-19 22:31:22 687

原创 gorm-使用mysql事务

了解mysql事务并通过grom使用mysql事务

2023-07-19 10:59:20 301

原创 openstack-cinder-volume服务启动分析

分析cinder-volume服务启动流程,代码分析

2023-07-11 18:06:53 252

原创 go-基于list方式的redis消息队列

基于list方式的redis消息队列

2023-07-06 10:51:18 136

原创 go-封装使用redis功能

昨天上文中提过了通过连接池连接redis,日常redis常用的功能包括set,get , del,expire key等基础功能,以及sadd,hset,hget 功能,下面函数都封装好了,直接用即可。

2023-07-05 10:56:40 316

原创 go-使用连接池连接redis

开发过程中,必不可少的就是要使用redis,借助redigo,通过连接池的方式连接redis,可以极大的提高性能。(基于go 1.16 和 github.com/gomodule/redigo v1.8.8)

2023-07-04 15:37:08 518

原创 uniapp-小程序获取微信用户名称和头像

uniapp 开发小程序过程中,如何获取微信用户的昵称和头像信息,这个uniapp已经集成,通过getUserInfo即可获取到。

2023-06-30 21:46:25 3804 7

原创 go-连接使用mongo-增删改查(二)

mongo 连接自然要对文档进行增删改查,

2023-06-30 09:50:26 168

原创 go-连接使用mongo(一)

使用版本 go.mongodb.org/mongo-driver v1.8.4。工作中开发基于go,需要连接mongo,一直稳定运行,记录一下代码。

2023-06-30 09:49:59 225

原创 IP地址五种分类以及私有地址段

IP地址五种分类以及私有地址

2023-06-29 20:09:15 1177

原创 go-gorm 之mysql数据库读写分离

gorm 数据库mysql读写分离

2023-06-29 18:32:09 464

原创 go-gorm使用连接池连接mysql数据库

工作中服务端使用go开发的,需要连接mysql ,基于gorm,经过稳定运行,记录一下连接mysql的代码吧。

2023-06-29 14:25:34 647

Openstack-在京东的应用实践

Openstack_在京东的应用实践

2023-07-20

开源力量之两小时玩转openstack

开源力量之两小时玩转openstack

2023-07-20

Neutron 网络之负载均衡 - UnitedStack

UnitedStack公司之详细讲解Neutron 网络之负载均衡

2023-07-20

TIDB-K8S的实践

架构师大会,TiDB的实践分享,在K8S微服务的实战经验分享

2019-02-11

滴滴NOSQL之Fusion的演进之路

滴滴分布式NoSQL数据库Fusion的演进之路,海量存储,大数据

2019-02-11

业务驱动的技术架构

云计算,业务,技术架构,大神著作,必看经典,

2019-02-11

rsync+innotify数据同步

innotify数据同步,rsync+innotify

2013-10-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除