Hujin Blog

Stay hungry Stay foolish

VLLM 源码 —— 单机多卡模块间的通信

背景 在了解了单机单卡的模型加载过程后,我们看看单机多卡的场景。单机单卡流程简单,但是在实际场景中要想运行真正的大模型需要的显卡数量肯定不可能是1张,这里我们再看看单机多卡的情况下的整体流程 整体流程 借用猿姐的神图 整体架构: 分为三大块: process0:AsyncLLM process1: Executor+scheduler process2: Worker ...

VLLM 源码 —— 单机单卡模型的加载

背景 我们通过vllm运行大模型的时候,从日志中可以看到经历了很多流程,包括物理设备检测、参数的校验、GPU显存检测、模型检测、模型加载、kv 管理、分布式推理等操作,最终启动了http server服务提供给我们去调用,在这个过程的背后是什么原理,我们尝试通过阅读源码的方式来学习下。 本次我们先看看大模型加载的流程。我们运行大模型的命令行是: 1 vllm serve /var/lib/...

sanlock原理和使用

介绍 sanlock 是一个基于 SAN 的分布式锁管理器。集群中的每个节点都各自运行 sanlock 服务,锁的状态都被写到了共享存储上,使用 Disk Paxos 算法读写共享存储以实现对分布式锁的获取、释放和超时。一般认为 SAN 中的 LUN 的可靠性要比集群中的主机高,对主机来说,应用程序进程可能会崩溃、重启,主机的 IP 网络也可能会发生故障,而 SAN 是通过专门的光网连接的,...

Neuvector源码之 网络流量拓扑

背景 容器环境通信频繁,包含大量的东西向和南北向通信,通过neuvector的网络活动功能,可以全局查看集群中容器间的流量/访问host的流量/访问外网以及来自外网的流量。 网络活动功能比较丰富,包含: 网络抓包 模式切换(学习/告警/保护) 实时流量查看(方向/协议/端口/数据统计等) 容器的自动发现和展示 这里我们只深入介绍下实时流量的实现,并讨论下移植到虚拟机场...

Docker容器的网络命名空间为什么不可见?

背景 因为做过openstack的虚拟网络,习惯使用netns去管理linux的网络命名空间,也一直理解容器网络应该是类似的。 但是实际在使用时(runtime使用docker)发现每个非hostnetwork的容器创建后并不会查看到一个network namespace(通过ip netns ls查看); 在使用的runtime是containerd的时候呢,这个namespace又出现了...

Neuvector源码之 文件管理

背景 进程规则、文件规则、网络规则、dlp、waf都是在监控组下的功能。本次我们通过源码的方式来深入了解文件规则是如何实现的。 文件规则支持用户自定义关注的文件、目录,设置规则的学习或者保护模式,相应的如果容器访问到了指定的文件,且文件规则设置保护模式,则对文件的写会产生告警。 架构图 我们从几个维度来看neuvector的文件管理功能: 页面/接口用户下发的文件规则如何让...

Calico单节点网络实现

背景 最近有跟同事讨论calico的网络实现的话题,说calico 设计很巧妙,把 2-3层都给处理成了3层,想看看是如何实现的 实现 查看官方文档,发现有几个解释,通过这几个解释我们实际看看Calico中如何实现将2-3层流量都处理成3层的 问题一: 为什么容器中有一条到169.254.1.1的路由规则 1 2 3 4 Why does my container have a rou...

Kata容器网络实现

背景 最近看到安全容器相关的文章,想着看看kata的网络实现 架构图 在k8s中配置使用containerd作为runtime-endpoint实现,在containerd中配置runtime支持runc和kata 实现 默认情况下,containerd容器在创建sandbox的时候,创建对应的netns出来 在创建容器时,cni负责创建和配置容器网卡,也就是在对应的ne...

Neuvector源码之 合规性检测

背景 Neuvector安全基线支持 CIS Benchmark 标准,可对容器、镜像、Register、主机、kubernetes 进行安全标准检查,多维度展现容器资产的基线合规情况并帮助建立容器运行环境下的最佳基线配置,减少攻击面 NeuVector 的合规性审核包括 CIS 基线测试、自定义检查、机密审核以及 PCI、GDPR 和其他法规的行业标准模板扫描。本文将通过源码的方式分析合规...

Calico BGP - Bird

背景 Calico支持多种网络模式,包括vxlan/ipip/bgp,其中vxlan和ipip属于overlay类型,在嵌套部署模式比较通用,但网络性能相对bgp会低一些。这主要是由于bgp模式下没有数据报文的封包和解包操作 本文会将calico中bgp相关的操作流程抽离,通过demo的方式来介绍calico中bgp网络的实现 架构 calico架构 Calico作为一种常用的Kub...