自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vsock 开发实践-virtio-vsock

总的来说,virtio-serial 对内核无要求,兼容性更强且稳定,但是性能低,适合于小规模数据传输的通用场景下使用。而virtio-vsock 对内核有要求,更适合于高吞吐低延迟对性能要求更高的场景下。我们知道在不使用tcp/ip通信的情况下,传统实现guest和host之间的通信主要是基于virtio-serial 串口通信,但是virtio-serial 有一定的局限性。qemu 启动的虚机理应已经有vsock device,检查一下 vsock。设备,适用于云原生和高性能通信场景。

2025-05-13 10:37:01 532

原创 kubernetes-harbor镜像仓库使用自签https证书

HTTPS协议通过加密确保数据传输安全,其过程分为证书验证和数据传输两个阶段。在证书验证阶段,浏览器发起HTTPS请求,服务端返回证书,客户端验证其合法性。数据传输阶段则使用对称加密,客户端生成随机数并通过公钥加密后传输至服务端,服务端解密后使用该随机数构造对称加密算法加密数据。文章还介绍了在Harbor镜像仓库中使用自签证书实现HTTPS的步骤,包括生成CA证书、服务端证书,配置Harbor的证书文件,以及在客户端操作系统中信任自签证书。通过这些步骤,可以实现客户端无感知地使用HTTPS访问Harbor。

2025-05-13 10:16:32 73

原创 排错-harbor-db容器异常重启

看报错提示是由于数据目录不为空导致初始化失败,docker-compose.yml 中将宿主机目录 /data/database 挂载进容器的。(默认的docker-compose log driver走了tcp syslog, 可以自行更改)docker-compose.yml中新增 privileged: true ,使用特权模式。harbor-db 容器一直restart,查看日志发现 报错。不保留数据,清空容器宿主机上的数据目录 ,再重启重启就行。

2025-05-12 17:59:01 192

原创 kubernetes-使用nsenter排查容器问题

命令是一个可以在。它位于包中。。相当多的容器为了轻量级,是不包含较为基础的命令的,比如说ip address,ping,telnet,ss,tcpdump等等命令,这就给调试容器网络带来相当大的困扰:只能通过docker inspect ContainerID命令获取到容器IP,以及无法测试和其他网络的连通性。这时就可以使用调试容器网络。

2025-05-07 11:35:11 97

原创 kubernetes-排查哪个pod打开文件过多

最近通过监控发现某kubernetes宿主机负载逐步增高,同时通过ss -s 发现tcp closed以及打开文件句柄数总是一直涨,涨到一定程度后掉下来了。通过pod uuid反向查找具体pod name。这样能找到具体哪个进程打开了过多的文件描述符。查找进程对应哪个具体哪个POD UUID。然后再排查具体POD的责任人,进而处理~所以首先得找到哪个进程打开了过多的句柄。通过ps 查找具体哪个进程。

2025-05-07 09:48:04 188

原创 openvswitch系列之二 安装ovs

在ovs学习过程中,如果自己想要安装一个ovs交换机其实一条简单的命令 apt install openvswitch 就可以了,但是这种方法只能安装低版本的ovs。在特殊情况下需要安装指定版本,例如需要下发meters表时需要ovs2.8以上的版本,那么就需要下载安装包手动安装。看似一个复杂的过程,其实也是比较简单的。下面就一起来看看如果手动安装一个指定版本ovs交换机。

2025-04-27 09:49:22 283

原创 openvswitch系列之一 简介

Open vSwitch是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准!它旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护),同时还支持标准的管理接口和协议。安全:VLAN隔离、流量过滤 监控:NetFlow Qos 自动控制。

2025-04-27 09:46:03 740

原创 vsock 框架介绍

vsock 被广泛应用于qemu、以及kata container等云计算场景下。

2025-04-24 10:34:34 1115

原创 openvswitch 常用命令参考

nw_tosnw_ecnnw_ttldl_vlanip_fragarp_shaarp_thaipv6_srcipv6_dstportset field其中,TABLE名支持bridgecontrollerinterfacemirrornetflowportqosqueuessl,sflow。

2025-04-23 09:53:08 1187

原创 openvswitch trace排查虚机网络

远程管理功能,它能通过网络策略实现更多控制。它是XenServer的“波士顿”计划Xen云平台的默认交换机,并且还支持Xen,KVM,Proxmox VE和VirtualBox。虚拟化sdn 基于openvswitch实现,基于ovs trace排查流量路径,查看某虚机 172.16.12.7 (mac fa:16:3e:51:97:cc) 到 172.16.12.10 的路径。Open vSwitch是一种开源软件,专门管理多租赁公共云计算环境,为网络管理员提供虚拟VM之间和之内的流量可见性和控制。

2025-04-23 09:50:48 189

原创 kubernetes-使用ceph-rbd-csi

Ceph是开源的,它使许多供应商能够提供基于Ceph的软件去定义合适的存储系统。因各个项目集群在部署时对存储的需求各有差异,使用Ceph作为统一储存,则在确保可靠性的同时又能具备相应的灵活性,将计算与存储解耦与K8s灵活的部署方式相得益彰。Ceph提供统一的横向扩展存储,带有自我修复和智能预测故障的功能,已经成为软件定义存储的事实上的标准之一。配置cephx的账号和密码(ceph auth 的账号和密码在ceph侧自行生成即可,当然如果不开启cephx的情况下,这里userID和userKey随便填就行)

2025-04-18 19:48:43 888

原创 kubernetes-高频率使用命令

【代码】kubernetes-高频率使用命令。

2025-04-17 14:50:08 103

原创 Linux-最大线程数问题排查

于是通过 top 以及 top -H 查看系统进程数 300+ 和线程数 4100+,发现top -H 发现用户启动了过多的线程,由此定位到了原因。这是因为在Linux内核中,线程是通过轻量级进程(LWP)实现的,每个线程会占用一个进程号(PID),因此会被计入。发现系统默认除了root 用户默认最多的进程+线程总数最大是4096,所以是不是用户启动了过多进程或线程呢。最近有用户反馈登录CentOS 7系统后,执行任意命令,报错。看到这个怀疑是系统ulimit 限制导致的。

2025-04-15 13:59:18 277

原创 go-开发谚语

你应该了解的go语言的谚语,开发箴言,有利于日常开发。

2025-04-15 09:29:26 245

原创 Kubenetes-基于kubespray 部署集群

kubespray 是一个部署生产级别的kubernetes集群的github 开源项目,基于ansible-playbook实现自动化部署。github地址: https://github.com/kubernetes-sigs/kubespray,具体支持的比如OS以及插件等功能详见github。#这里kubestrap 将ssh ip和cluster 通信的ip 在inventory里面区分开了,这块设计的挺好。PS:上面主机全部都能翻墙国外下载docker镜像,部署完成,在线部署还是很顺利的~

2025-04-14 17:51:47 393

原创 Kubernetes-如何进入某POD中

工作中需要进入pod中查询比如pod 网络等问题。

2025-04-09 17:40:53 574

原创 代码调试-使用gdb调试libvirtd

​ 想知道libvirtd在执行具体函数时,函数的具体传参以及局部变量信息。想调试libvirt 输出某函数执行的过程中的详细信息。client 连接测试。

2025-03-21 15:38:17 173

原创 Linux下使用cgroup限制进程IO

​ 这里涉及到磁盘IO以及网络IO,网络IO依靠rsync 的bwlimit限制接口,对于磁盘IO,考虑使用cgroup实现。​ 在给用户通过rsync 传输数据时,为了避免对线上业务造成IO压力,考虑对进程限制磁盘IO以及网络IO吞吐。系统是centos 6 ,下面配置一下。

2025-03-18 11:57:01 200

原创 Kolla-Ansible deploy部署报错 KeyError: \\‘KernelMemory

解决办法:降低docker版本至docker-ce-20.10.9。

2025-03-04 19:50:26 267

原创 openstack ironic ipa 以及用户镜像制作

中的centos和ubuntu操作系统的镜像可以直接从社区直接下载下来使用,但是总是感觉有问题,cloud-init初始化程序是通用的,启动速度很慢,查了一下相关信息,发现是cloud-init进程会去访问外网一个地址,感觉使用起来用户体验很差。手工制作镜像是最符合实际使用需求的,想定制什么样的镜像都可以,但是有些费时费力。目标是建立一个拥有Nova所需的所有组件的镜像,如trove所需的数据库镜像,ironic所需的支持硬件裸机的镜像。最终成功了,这真的是够费劲的,遇到各种问题,各种改脚本兼容。

2025-02-25 20:31:58 665

原创 C语言读写文件

的安全版本,它接受一个额外的参数来指定文件路径的缓冲区大小。这样做的好处是可以防止恶意代码通过修改文件路径来攻击你的程序。函数被视为不安全,因为它可能容易受到缓冲区溢出攻击。为了解决这个问题,推荐使用。在打开文件失败时,会返回一个非零值,而不是NULL,这使得错误处理更加明确。函数打开文件时,你可能会遇到编译警告C4996,提示这个函数或变量可能不。这是因为在某些编译器(如Microsoft的Visual C++)中,在C语言编程中,文件操作是常见且重要的任务。

2025-02-19 14:17:30 336

原创 搭建openstack可以这么简单

基于kolla-ansible 部署openstack Yoga版本用于开发测试,本文绝对是目前为止最简单部署的了,请看完全文。

2025-02-19 12:50:58 369

原创 CentOS虚机在线扩容系统盘数据盘

最近在制作Openstack下的镜像,用户需要CentOS6以及CentOS7的虚机镜像,遇到了些关于系统盘以及数据盘在线扩容的问题,故此整理一下。所以,假如虚机镜像大小20G,创建系统盘大小是50G的虚机时,默认情况下cloud-init会调用growpart以及resize2fs扩容系统盘。​ 如果是centos7的系统镜像,虚机开机过程中cloud-init调用growpart和resize2fs即可直接在线扩容系统盘。如果没有LVM逻辑卷的情况下,则可以考虑使用growpart命令。

2025-02-08 19:19:40 537

原创 deepseek+kimi自动生成ppt

打开deepseek官网,输入详细的需求,让他生成个ppt。打开kimi粘贴刚才deepseek生成的内容。接着deepseek开始思考生成了。可以一键生成啦,下载编辑使用吧。接着复制生成了的内容。

2025-02-08 08:56:46 4833

原创 anolis 8 安装KVM

上面virsh 命令能运行就代表livirt正常。基于anolis 8.8 x86_64。

2025-01-21 18:36:38 183

原创 tcpdump 精准分析vxlan网络

VXLAN本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发。从用户的角度来看,接入网络的服务器就像是连接到了一个虚拟的二层交换机的不同端口上,可以方便地通信。我们知道,在云计算中,大部分overlay网络都是基于vxlan实现的,在一般云网络运维场景下,外层报文的三层头都是物理机(宿主机)的 ip 地址,虚拟机实际通信的源/目的 ip 地址都是被封装到了内层报文中,所以需要弄明白虚机的流量路径,所以抓包分析一下。

2025-01-21 18:33:22 1476

原创 tcpdump抓包length为何超过MTU大小

上述三个功能很类似,都是网卡驱动层提供的流分组重组技术,用于减轻CPU负载。比如内核可以发送一个14K的长包,驱动层就会给长包分成10个小于1514的包,发送出去。接收过程也一样,网卡驱动在收到多个同一会话的包后,组合成一个超过1514的长包,发送给内核。巨型帧,是指有效负载超过IEEE 802.3标准所限制的1500字节的以太网帧。这里的GRO选项开启后,网卡收到的TCP数据流,可以在发送给内核之前,进行流重组,生成大于MTU值的数据包。2,TSO,GRO,GSO数据流分组重组。这里有几种可能的情况。

2025-01-20 16:48:09 462

原创 记一次虚机上传过慢问题排查

最近线上虚机有个特殊的用户反馈,用户反馈虚机从A服务器下载文件特别慢,于是scpA服务器数据到本地client,发现只有几十K的流量。当时第一反应怀疑是虚机负载压力比较大,但是查看虚机IO以及负载都很低。。。。然后tcpdump抓包发现有大量重传,虚机A,但是抓包存在length1466的包都重传了,理应分片为啥不分片呢?所以还是哪块网络有问题。

2025-01-20 14:04:57 590

转载 动图图解!既然IP层会分片,为什么TCP层也还要分段?

byte 数据需要发送,需要分片才能完成发送,分片后的 IP Header ID 相同,同时为了分片后能在接收端把切片组装起来,还需要在分片后的IP包里加上各种信息。首先,虽然我们平时用的网络感觉挺稳定的,但其实这是因为TCP在背地里做了各种重传等保证了传输的可靠,其实背地里线路是动不动就丢包的,而越大的包,发生丢包的概率就越大。因此,就算TCP分段过后,在链路上的其他节点的IP层也是有可能再分片的,而且哪怕数据被第一次IP分片过了,也是有可能被其他机器的IP层进行二次、三次、四次…

2025-01-17 15:07:11 64

原创 tcp粘包原理和解决

举个例子:有三个数据包,大小分别为2k、4k、6k,如果采用UDP发送的话,不管接受方的接收缓存有多大,我们必须要进行至少三次以上的发送才能把数据包发送完,但是使用TCP协议发送的话,我们只需要接受方的接收缓存有12k的大小,就可以一次把这3个数据包全部发送完毕。TCP为了保证可靠传输并减少额外的开销(每次发包都要验证),采用了基于流的传输,基于流的传输不认为消息是一条一条的,是无保护消息边界的(保护消息边界:指传输协议把数据当做一条独立的消息在网上传输,接收端一次只能接受一条独立的消息)。

2025-01-16 15:44:23 913

原创 centos下nvme over rdma 环境配置

RDMA(全称:Remote Direct Memory Access)是一种远程直接内存访问技术,通过在硬件中实现传输层协议,将内存/消息原语接口暴露至用户空间,通过绕过CPU和内核网络协议栈来实现高吞吐和低延迟的网络。RoCE(RDMA over Converged Ethernet)是一种允许通过以太网使用远程直接内存访问(RDMA)的网络协议。关于什么是NVMe over Fabrics,什么是NVMe over RDMA,本文就不做介绍了,网上资料一大堆。

2024-09-13 18:12:26 1006

原创 CentOS 7下CX5-RDMA网络测试

RDMA(Remote Direct Memory Access) 全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA 通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和 CPU 周期用于改进应用系统性能。RDMA需要智能网卡支持,这里使用的是Mellanox cx5。基于CentOS 7.8 x86_64。

2024-09-13 15:01:56 2144

原创 SPDK 部署NVMe over TCP

SPDK NVMe over Fabrics Target是一个用户空间应用程序,通过以太网,Infiniband或光纤通道等结构呈现块设备,SPDK目前支持RDMA和TCP传输。默认TCP transport就支持了,如果要走RDMA需要spdk编译时加相关参数开启。前文讲到基于 Anolis OS release 8.6 kernel 5.10.134-13.an8.x86_64 安装了spdk 22.0。

2024-09-10 11:44:13 995

原创 SPDK绑定nvme磁盘失败报错

如下在spdk 接管设备时,报错Active devices: data@nvme0n1, so not binding PCI dev。于是查看磁盘信息, 原因是曾经被我格式化过了。此时需要使用dd 将文件系统信息擦除。

2024-09-10 11:18:45 514

原创 anolis 8 安装部署spdk

SPDK的部署可以参考官方 https://github.com/spdk/spdk 有文档这里记录一下,基于 Anolis OS release 8.6 kernel 5.10.134-13.an8.x86_64v 下的部署以及遇到的问题使用 v22 版本 , 这里会git clone github项目,国内访问github会失败,建议自行GG解决github访问过慢问题哈。

2024-09-09 18:20:27 384 1

原创 Anolis 8 NVME over TCP 配置使用

NVMe over TCP,简单来说就是使用TCP协议下发NVMe命令给远端的NVMe设备。NVMe over TCP环境搭建时,发送NVMe命令的叫做host端,接收NVMe命令的叫target端。host 端挂载target端的磁盘到本地使用。基于 Anolis OS release 8.6 kernel 5.10.134-13.an8.x86_64。

2024-09-09 17:47:53 731

原创 uniapp 支持复制当前文本内容

uniapp 小程序上面有时需要支持复制功能,如下代码即可。(注意小程序隐私协议需要打开剪切板功能)

2024-09-02 09:37:59 1200

原创 etcd v2/v3 最全常用命令差异

命令可以查看ETCD集群的成员状态。这将列出集群中所有节点的信息,包括节点ID、名称、客户端URLs和peerURLs等。系统,广泛应用于配置共享、服务发现、分布式锁等多个领域。下面整理了v2/v3版本中命令的使用差异。命令可以监视ETCD集群中键值对的变化。当指定键的值发生变化时,该命令将输出新的键值对。命令可以获取ETCD集群中的键值对。命令可以设置键的TTL,即键在多长时间后自动删除。使用etcdctl 查看etcd 整个目录树结构。命令可以删除ETCD集群中的键值对。命令可以设置或更新键值对。

2024-08-29 10:01:12 561

原创 一次bad udp checksum故障

用户反馈 client 访问某服务 的 udp 端口 1107 访问异常,使用tcpdump在服务端抓包时发现,客户端发给服务端的udp报文可以接收到,但服务端发给客户端的udp报文会报错bad udp cksum。发现是打开了,关闭了再抓包就发现正常了,这可能和宿主机网卡有某些关系吧。服务跑在虚拟机上,查询虚机 tx checksumming 参数。

2024-08-28 14:11:40 1200

转载 Linux 网卡特性配置 ethtool 详解 网卡Offload

网络中校验和比较本文说明了网卡,IP层,TCP层,UDP层的校验和功能,以及异同点。网卡校验和高级的网卡(e1000e等千M网卡)的接收,发送的校验和的计算方法是CRC32。

2024-08-28 13:54:41 763

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关注的人

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