Curve文件系统空间分配方案of 11 Curve文件系统空间分配方案(基于块的方案,已实现)© XXX Page 2 of 11 背景 本地文件系统空间分配相关特性 局部性 延迟分配/Allocate-on-flush Inline file/data 空间分配 整体设计 空间分配流程 特殊情况 空间回收 小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 背景 根据 ,文件系统基 ,文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 CurveFS方案设计(总体设计,只实现了部分) 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush 在sync/flush之前,尽可能多的积累更多的文件数据块才进行空间分配,一方面可以提高局部性,另一方面可以降低磁盘碎片。 几百字节的小文件不单独分配磁盘空间,直接把数据存放到文件的元数据中。 针对上述的本地文件系统特性,Curve文件系统分配需要着重考虑 。 局部性 虽然Curve是一个分布式文件系统,但是单个文件系统的容量可能会比较大,如果在空间分配时,不考虑局部性,inode中记录的extent数量很多,导致文件系统元数据量很大。© XXX Page 3 of 11 假如文件系统大小为1PiB,空间分配粒度为1M0 码力 | 11 页 | 159.17 KB | 6 月前3
 FIT2CLOUD CloudExplorer 产品白皮书 v1.7.................................................................................32 2.4.7 部署资源池及网络分配管理........................................................................36 2.4.8 流程配额管理......... 杭州飞致云信息科技有限公司 软件用起来才有价值,才有改进的机会 17 公有云对象存储桶新建、变更、回收,对象文件上传下载删除 支持 资源查找 支持 服务目录管理 支持 配置部署资源池及网络分配 支持 流程管理、订单管理 支持 配置申请向导选项显示可见、选项范围、是否必选 支持 配置审批环节修改选项 支持 配额管理 支持 运营 当前各类资源使用量 支持 查看当月及历史月份费用 支持 面向业务部门应用开发测试运维人员提供应用运行环境资源在线服务以及查找、操作管理, 面向 IT 管理员提供虚拟化、私有云、公有云资源纳管、自动同步、用户组织角色权限管理、 分权分域管理、生命周期管理、服务目录管理、逻辑资源池及网络分配管理、流程管理等。 如图 9 所示。 杭州飞致云信息科技有限公司 软件用起来才有价值,才有改进的机会 18 图 9: CloudExplorer 功能架构 2.3 自服务门户 2.3.10 码力 | 60 页 | 0 Bytes | 1 年前3
 CloudExplorer 3.0 管理员手册v1.2添加应用商店 Jenkins 产品.........................................................................208 8 部署资源池网络分配策略管理.............................................................................................214 vCenter,用于部署管理 IBM Power 虚拟化平台中的虚拟资 源,如虚拟机等。 OpenStack 是主流的私有云平台,目前私有云平台市场中占多数,业内存在很多厂商 基于开源 OpenStack 平台封装商业化版本为企业客户提供产品及服务。包 括华为、华三、EasyStack、UnitedStack、海云捷讯等。 青云 一个国产商业化私有云平台,公有云平台。 云管理平台 是一种统一纳管虚拟化 流量,是重要的网络安全隔离手段。可以通过配置安全组规则,允许或禁 止安全组内的实例的出流量和入流量。 弹性 IP 是私有云、公有云中租户能够申请获取保留专用的公网 IP 地址。在私有云、 公有云中,如果指定给虚拟机分配公网 IP,虚拟机停止后再启动会自动分 配一个新的公网 IP,及公网 IP 地址会发生变化,会导致无法使用之前的公 网 IP 访问,给访问带来麻烦,因此需要预留固定的公网 IP 地址,绑定给特0 码力 | 308 页 | 0 Bytes | 1 年前3
 Curve核心组件之snapshotcloneS3Adaptor(一个封装了s3 client的接口层)与S3交互,存取s3 中的对象。 SnapshotDataStore: • SnapshotCloneMetaStore负责管理快照和克隆任务等元数据, 通过调用etcdclient,与etcd存储交互,存取etcd中的快照和克隆 元数据。 SnapshotCloneMetaStore: • CurveClient封装了Client接 久化任务元数据到etcd,开始执行克隆 任务。 • 2. 调用mds接口创建clone卷信息,该 clone卷是个临时卷,位于/clone目录下。 • 3. 调用mds接口为目的卷分配空间。 • 4. 根据目的卷的分配信息,调用 chunkserver接口创建CloneChunk。 • 5. 更新克隆卷状态为metaInstalled。 • 6. 发起ChunkServer数据拷贝 • 7 chunk chunkserver meta object data object data object S3 Snap Task etcd MDS client 2.创建克隆卷 3.分配卷空间 7.拷贝数据 datastore metastore http service clone Task user 快照、克隆元数据 SnapshotCloneServer 1.发起克隆0 码力 | 23 页 | 1.32 MB | 6 月前3
 openEuler 24.03 LTS 技术白皮书处理器, 成为使能多样性算力的首选。 AI openEuler 兼容 NVIDIA、Ascend 等主流算力平台的软件栈,为用户提供高效的开发运行环境。通过将不同 AI 算力平台的软 件栈进行容器化封装,即可简化用户部署过程,提供开箱即用的体验。同时,openEuler 也提供丰富的 AI 框架,方便大家快速在 openEuler 上使用 AI 能力。 1. openEuler 已兼容 CANN、CUDA CANN、CUDA 等硬件 SDK,以及 TensorFlow、PyTorch 等相应的 AI 框架软件,支持 AI 应用在 openEuler 上高效开发与运行。 2. openEuler AI 软件栈容器化封装优化环境部署过程,并面向不同场景提供以下三类容器镜像。 OS for AI • SDK 镜像:以 openEuler 为基础镜像,安装相应硬件平台的 SDK,如 Ascend 平台的 CANN 或 提供各自擅长服务的框架,例如 Linux 提供通用的文件系统、网络服务,实时操作系统提供实时控制、 实时计算等服务;多 OS 基础设施是从工程角度为把不同 OS 从工程上有机融合在一起的一系列机制,包括资源表达与分配,统一 构建等功能。 混合关键性部署框架当前能力: - 支持裸金属模式下 openEuler Embedded Linux 和 RTOS(Zephyr/UniProton)的生命周期管理、跨 OS0 码力 | 45 页 | 6.18 MB | 1 年前3
 openEuler 21.09 技术白皮书刷新 并行,优化TLB shootdown流程加速TLB刷新, 提升业务性能。 大页 vmalloc 性能优化:对于超过 huge page 的 最小 size 的空间进行 vmalloc() 分配时,将会尝试 使用 huge page 而不是 base page 来映射内存, 改善 TLB 的利用,降低 TLB miss。 OOM 内存回收算法:在发生 OOM 时,优先对 低优先级的进程组进行内存回收,保障在线业 points to consistent buckets mutually reachable 1. 哈希表目录 : 采用哈希表来管理目录项,提高线性查找效率,减少伪共享。 2. 统一的分配器:数据结构使用统一的分配器,这样可以打破不同数据结构之间的界限,使得内存管理更加地简单 与灵活。 3. 采用软更新技术,简化了实现复杂度:软更新 (Soft Update) 是一种轻量级的保证文件系统一致性的技术。 技术白皮书 14 云原生调度增强 在云业务场景中,交互类延时敏感在线业务存在潮汐现象,CPU 资源利用率普遍较低 (~15%),在线和离线业务混合部署 是提升资源利用率的有效方式。在现有的内核资源分配和管理机制,混部后的在线业务的性能抖动大,服务质量无法的到有效 保障。openEuler 面向云原生业务混部场景,创新 CPU 调度算法和内存回收算法,支撑提升系统的 CPU 利用率和保证在线 业务的服务质量。0 码力 | 35 页 | 3.72 MB | 1 年前3
 BRPC与UCX集成指南–Busy poll下不要开启,可能导致电耗过高、cpu降速40 Ucp Worker ●创建UcpWorker,封装ucp worker和逻辑。 ●是整个ucp实现RDMA的核心。 ●系统可以有多个worker,共享使用一个UcpContext。 ●不同的连接分配到不同的worker,一般情况下只需要一个worker足够应付网络通讯。 ●worker逻辑在一个pthread中运行。41 UcpConnection ●封装ucp_ep ●支持读写接口 – ssize_t Read(butil::IOBuf *out, size_t n); – ssize_t Write(butil::IOBuf *buf); – ssize_t Write(butil::IOBuf *data_list[], int ndata);49 UcpWorker的实现 ●封装 ucp_worker_h ucp_worker_h ●一个UcpWorker对用多个UcpConnection,由UcpCm分配。 ●在pthread运行,busy poll or wait mode。50 UcpWorker实现 提供Accept51 UcpWorker的实现 ●提供Connect。52 UcpWorker的实现 ●提供Release Connection。 –在UcpCm决定关闭连接时53 UcpWorker的实现0 码力 | 66 页 | 16.29 MB | 6 月前3
 openEuler 22.03-LTS 技术白皮书刷新并行,优化 TLB shootdown 流程加速 TLB 刷新,提升业务性能。 • 大页 vmalloc 性能优化:对于超过 huge page 的最小 size 的空间进行 vmalloc() 分配时,将会尝试使用 huge page 而不是 base page 来映射内存,改善 TLB 的利用,降低 TLB miss。 • OOM 内存回收算法:在发生 OOM 时,优先对低优先级的进程 少内存故障带来的系统复位,提升系统可 用性。 功能描述 1. 内核核心数据高可靠:支持内核核心数据在高可靠内存区域分配,避免内核数据的读写触发内存故障,提升系统可 靠性。 2. 支持进程使用高可靠内存:通过进程属性,将进程设置为高可靠进程,指定进程从高可靠内存区域分配内存。 3. 支持内存文件系统使用高可靠内存:内存文件系统(tmpfs)的读操作发生在内核态,如果触发内存故障,会触发系 复位,提升系统可靠性。 应用场景 对系统可靠性要求较高的半封闭场景,如某些嵌入式场景。上述特性,要求内核、tmpfs、文件缓存等使用的内存大小 可控,可预估。如果超过预先设置的大小,会导致内存分配失败。 内核模块高可靠 内核数据高可靠 内核映像高可靠 内存文件系统高可靠 高低可靠性内存分区管理 不同可靠性等级的内存 文件缓存高可靠 关键进程高可靠 普通进程低可靠 用户态服务0 码力 | 17 页 | 6.52 MB | 1 年前3
 Curve核心组件之chunkserverCopySetService。创建copyset等操 作 • RaftService。Braft内置的service, 完成raft成员之间的选举,日志复制, 安装快照等操作。 ChunkServer架构CopysetNode封装了braft的Node,并 实现了braft的状态机,完成与raft的交 互。详细交互流程后面展开。 CopysetNodeManager负责管理 CopysetNode的创建、初始化、删除等 2、解析MDS的心跳response中的raft 成员变更信息,向CopysetNode发起变 更 ChunkServer架构ChunkOpRequest模块封装了对 ChunkService到达的I/O请求的实际处 理过程。请求到来时,封装一个 OpRequest,将上下文保存在里面,然 后发起Propose提交给raft,等raft apply后再执行后面的操作。 ChunkSer chunk的请求可以并发执行。 ChunkServer架构DataStore是对chunk落盘逻辑的封装。 包含chunkfile的创建、删除,以及实际 对chunk的读写,chunk基本cow的快照, 克隆chunk的管理等等。 ChunkServer架构LocalFileSystermAdaptor是对底层文件 系统的一层抽象,目前适配封装了ext4 文件系统的接口。 之所以要做这层抽 象,目的是隔离了底层文件系统的实0 码力 | 29 页 | 1.61 MB | 6 月前3
 Raft在Curve存储中的工程实践chunkserverCurve块存储RAFT应用 请求处理流程 以写请求为例: 1. Client 发送写请求给 Leader ChunkServer。 2. ChunkServer 收到请求,将请求封装成一个 log entry,提交给 raft。 3. raft模块在本地持久化 entry 的同时发送 entry 给其 他副本(ChunkServer)。 4. 本地持久化 log entry mds:保存元数据,包括topo信息、文件系统信 息、元数据分布信息等,持久化到etcd中。 • metaserver:采用raft协议3副本的方式保存文 件文件的元数据,包括inode,dentry,文件的 空间分配信息。 • 数据集群:采用外部存储,S3或者Curve块存储,保 存写入文件的数据。Curve文件存储RAFT应用 基于rocksdb的存储引擎 • 要求存储的元数据的大小不超过内存的大小 • 文件时会调用fallocate为文件预分配固定大小的空间,但是即便fallocate以后,在写文件未写过的块 时仍需要更改元数据,存在一定的IO放大。 解决思路: 直接使用覆盖写过一遍的文件。由于chunk大小固定,预先生成一批被写过的固定大小文件。创建 chunk文件或快照文件时直接从预分配的文件池中获取进行重命名,删除chunk时再将文件重命名放到 预分配池中,这个预分配池就是chunkfile pool。0 码力 | 29 页 | 2.20 MB | 6 月前3
共 98 条
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 10
 













