ProxyAssistant - 强大的浏览器代理管理扩展
ProxyAssistant 是一款功能强大的浏览器代理管理扩展,支持 Chrome、Firefox、Edge 等多款浏览器,支持多场景管理,帮助用户轻松配置和切换网络代理。作为一款开源的浏览器扩展,ProxyAssistant 凭借其丰富的功能特性、优秀的用户体验和完善的多语言支持,已成为众多用户管理网络代理的首选工具。 一、项目概述1.1、项目简介ProxyAssistant 诞生于对高效代理管理工具的需求。作为一款现代化的浏览器扩展,它采用了最新的 Manifest V3 规范,充分利用了现代浏览器提供的各种 API,为用户提供了一个界面美观、功能完善、操作便捷的代理管理解决方案。项目采用原生 JavaScript 和 jQuery 开发,是一款成熟稳定的代理管理工具。 该扩展的核心设计理念是”简单易用,功能强大”。无论是需要频繁切换不同代理服务器的用户,还是需要为不同网站配置不同代理规则的高级用户,ProxyAssistant 都能满足其需求。同时,项目完全开源,采用 MIT 许可证,任何人都可以自由使用、修改和分发。 项目地址:https://github.com/bu...
Ceph 命令注册及执行流程
一、介绍本文的内容基于 Ceph v20.2.0 版本进行分析。 分析 ceph -h 的输出信息可以看到,其支持两种类型的命令,分别是 Local Commands 和 Monitor Commands。其中 Local Commands 比较典型的就是 ceph daemon {type.id|path} <cmd> 命令,用于直接和本地组件的 socket 进行通信,执行一些命令。而 Monitor Commands 则是将相关命令发送给 Monitor,有些是由 Monitor 自身处理该命令并返回,也有一些只是经由 Monitor 中转给其他组件执行(比如 ceph tell osd.0 * 等命令)。 对于 Local Commands,我们分析每个组件(MON/MGR/OSD/MDS)的 admin socket 命令的注册和执行流程; 对于 Monitor Commands,我们分析 二、Local Commands 分析对于本地的命令,我们仅分析每个组件的 admin socket 的命令注册和执行的流程。注意:虽然...
Ceph 和 LinuxKernel 版本时间对照表
本文提供了一份详细的Ceph、Ceph-client与Linux内核版本对应关系表,涵盖了从2015年至今的月度发布记录。内容包含各版本的具体发布时间、GitHub链接以及三个组件的时间轴甘特图,旨在帮助用户快速查询和规划Ceph部署时所需的内核兼容性。 一、版本时间对照1.1、版本时间对照表 Month ceph ceph-client linux 2011-07 v3.0 2011-10 v3.1 2012-01 v3.2 2012-03 v3.3 2012-05 v3.4 2012-07 v3.5 2012-10 v3.6 2012-12 v3.7 2013-02 v3.8 2013-04 v3.9 2013-07 v3.10 2013-09 v3.11 2013-11 v3.12 2014-01 v3.13 2014-03 v3.14 2014-06 v3.15 2014-08 v3.16 2014-10 v3.17 2...
CephFS Inode 编号的申请与释放
一、Inode 编号介绍1.1、编号规则在 CephFS 中 MDS 负责管理所有的 Inode 信息。CephFS 本身支持 多MDS 策略,为了避免多MDS 分配的 Inode 出现冲突,所以 MDS 在分配 Inode 的时候需要使用 RankID 来区分 Inode 的范围。每个 MDS 中限制 Inode 分配范围的函数为 InoTable::reset_state ,每个 MDS 中负责的 Inode 范围为:[(rank+1) << 40, ((rank+1) << 40)) ,即从 (rank+1) << 40 开始的连续 1 << 40 个 Inode 。 MDSRank 起始Inode编号(十进制) 起始Inode编号(十六进制) 结束Inode编号(十六进制) 管辖的Inode数量 0 1,099,511,627,776 0x10000000000 0x1FFFFFFFFF 1,099,511,627,776 1 2,199,023,255,552 0x20000000000 0x2FFFFFF...
Ceph Crimson 设计实现深入解析
Crimson 是 Crimson OSD 的代码名称,它是下一代用于多核心可扩展性的 OSD 。它通过快速网络和存储设备提高性能,采用包括 DPDK 和 SPDK 的顶级技术。BlueStore 继续支持 HDD 和 SSD。Crimson 旨在与早期版本的 OSD 守护进程与类 Ceph OSD 兼容。 Crimson 基于 SeaStar C++ 框架构建,是核心 Ceph 对象存储守护进程 OSD 组件的新实现,并替换了 Ceph OSD 。Crimson OSD 最小化延迟并增加 CPU 处理器用量。它使用高性能异步 IO 和新的线程架构,旨在最小化上下文切换和用于跨通信的操作间的线程通信。 以下分析基于 v19.2.1 进行分析。 一、架构对比Ceph OSD 是 Ceph 集群的一部分,负责通过网络提供对象访问、维护冗余和高可用性,并将对象持久化到本地存储设备。作为 Classic OSD 的重写版本,Crimson OSD 从客户端和其他 OSD 的角度兼容现有的 RADOS 协议,提供相同的接口和功能。Ceph OSD 的模块(例如 Messenger、OSD ...
3FS 集群部署笔记
一、3FS 介绍3FS (Fire-Flyer File System) 是一款高性能分布式文件系统。本文详细介绍了在 CentOS 8.5 环境下,从依赖安装、编译配置到集群部署的全过程,包括 Soft-RoCE 模拟 RDMA、FoundationDB 和 ClickHouse 的配置,以及存储拓扑和客户端挂载。适用于开发者快速搭建高性能存储集群。 3FS (Fire-Flyer File System) 项目仓库: https://github.com/deepseek-ai/3FS 。 二、编译安装为了支持多种运行环境的编译安装,3FS 提供了一些 Dockerfile 可供参考。 2.1、安装依赖软件本测试环境使用的系统版本是 CentOS 8.5.2111 ,是比较老的系统版本,为了能够顺利编译安装 3FS ,需要安装一些依赖软件。 这里是在每台需要运行 3FS 的机器上执行下面的编译安装命令。 /etc/yum.repos.d/centos-all.repo 文件内容: [appstream]name=CentOS-8.5.2111 -...
Ceph Crimson 集群部署教程
当前 ceph 集群搭建部署的方式主要有三种: ceph-ansible, vstart.sh 和 cephadm 。 其中 vstart.sh 脚本用于在开发环境中快速搭建测试集群。 ceph-ansible 是之前推荐的部署 ceph 集群的方式,支持在直接在宿主机上部署或者通过容器部署的方式,目前社区已不推荐使用。 cephadm 是当前最新的支持部署生产集群的方式,仅支持容器部署。接下来主要介绍通过 vstart.sh 和 cephadm 部署 crimson 集群的方式。 一、vstart.sh 搭建集群通过这种方式部署的时候理论上对于 Ceph 版本没有特殊的要求,本文中使用的版本为 v19.2.1 。 vstart.sh 常用于在开发环境环境中快速搭建集群,且在部署集群前我们需要编译出对应的二进制包。由于编译环境可能会有各种依赖缺失,版本异常等问题,这里推荐使用 bugwz/ceph-images 中提供的 CentOS Stream 9 的编译打包环境。同时后续的集群的搭建也可以在容器内部进行。 搭建集群操作步骤如下: 软件编译: 使用开发容器镜像,编...
CephFS 对接 Samba 使用教程
一、Samba 介绍Samba 是一款基于 GNU 通用公共许可证的自由软件,Samba 项目是软件自由保护协会 (Software Freedom Conservancy) 的成员。自 1992 年以来,Samba 一直为所有使用 SMB/CIFS 协议的客户端(例如所有版本的 DOS 和 Windows、OS/2、Linux 以及许多其他系统)提供安全、稳定且快速的文件和打印服务。 Samba 项目源码位于 https://git.samba.org/samba.git , 镜像代码仓库地址为 https://github.com/samba-team/samba 。 1.1、二进制包安装部署我们的机器环境为 CentOS 8.5.2111 , 受限于系统版本较老,导致最终安装版本为 Samba 4.19.4 。以下操作基于这些环境进行。 由于安装的 Samba 软件默认缺少 vfs_ceph 的相关库,所以在测试的时候无法测试一些使用场景,因此在实际部署测试的时候并不会使用该版本进行测试,而是会采用编译安装的版本进行测试。 1.1.1、环境初始化相关命令...
Ceph QoS 机制深入分析
一、CephFS QoS社区的相关实现: 基于 tokenbucket 算法的目录 QoS : https://github.com/ceph/ceph/pull/29266 基于 dmclock 算法的 subvolume QoS : 来自日本的 line 公司提出的想法,https://github.com/ceph/ceph/pull/38506 , https://github.com/ceph/ceph/pull/52147 1.1、基于 TokenBucket 算法的目录 QoS该实现并未合并到主分支。 相关材料: 社区的原始PR: https://github.com/ceph/ceph/pull/29266 实现特点: 基于 TokenBucketThrottle 类在客户端侧实现的 TokenBucket 类型的 QoS,用于约束每个独立的客户端的访问请求; QoS 的限制粒度为每个独立的客户端,没有全局的QoS限制; 用于限制目录级别的操作 QoS; 支持 IOPS 和 BPS 的 QoS 限制,且支持突发流量; 仅支持 FUSE 类型的挂载方式,...
GPFS CSI 对接 K8S 指南
一、介绍GPFS CSI 指的是 GPFS(现在被称为IBM Spectrum Scale)的容器存储接口。IBM Spectrum Scale 是一种高性能的共享磁盘文件管理系统,旨在支持大规模的数据集和高吞吐量的环境,如高性能计算(HPC),大数据分析和AI工作负载。通过GPFS CSI,用户可以有效地将 Spectrum Scale 集成到 Kubernetes 这样的容器管理系统中,以实现数据的动态扩展和管理。 GPFS CSI 仓库代码: https://github.com/IBM/ibm-spectrum-scale-csi 本文中的机器部署拓扑: 机器节点 机器IP地址 角色 node01 10.10.0.1 Server/Client/GUI(Dashboard) node02 10.10.0.2 Server/Client node03 10.10.0.3 Server/Client/minikube 字段解释: Server: 部署 GPFS 集群的节点; Client: 挂载 GP...

