积分充值
 首页
前端开发
AngularDartElectronFlutterHTML/CSSJavaScriptReactSvelteTypeScriptVue.js构建工具
后端开发
.NetC#C++C语言DenoffmpegGoIdrisJavaJuliaKotlinLeanMakefilenimNode.jsPascalPHPPythonRISC-VRubyRustSwiftUML其它语言区块链开发测试微服务敏捷开发架构设计汇编语言
数据库
Apache DorisApache HBaseCassandraClickHouseFirebirdGreenplumMongoDBMySQLPieCloudDBPostgreSQLRedisSQLSQLiteTiDBVitess数据库中间件数据库工具数据库设计
系统运维
AndroidDevOpshttpdJenkinsLinuxPrometheusTraefikZabbix存储网络与安全
云计算&大数据
Apache APISIXApache FlinkApache KarafApache KyuubiApache OzonedaprDockerHadoopHarborIstioKubernetesOpenShiftPandasrancherRocketMQServerlessService MeshVirtualBoxVMWare云原生CNCF机器学习边缘计算
综合其他
BlenderGIMPKiCadKritaWeblate产品与服务人工智能亿图数据可视化版本控制笔试面试
文库资料
前端
AngularAnt DesignBabelBootstrapChart.jsCSS3EchartsElectronHighchartsHTML/CSSHTML5JavaScriptJerryScriptJestReactSassTypeScriptVue前端工具小程序
后端
.NETApacheC/C++C#CMakeCrystalDartDenoDjangoDubboErlangFastifyFlaskGinGoGoFrameGuzzleIrisJavaJuliaLispLLVMLuaMatplotlibMicronautnimNode.jsPerlPHPPythonQtRPCRubyRustR语言ScalaShellVlangwasmYewZephirZig算法
移动端
AndroidAPP工具FlutterFramework7HarmonyHippyIoniciOSkotlinNativeObject-CPWAReactSwiftuni-appWeex
数据库
ApacheArangoDBCassandraClickHouseCouchDBCrateDBDB2DocumentDBDorisDragonflyDBEdgeDBetcdFirebirdGaussDBGraphGreenPlumHStreamDBHugeGraphimmudbIndexedDBInfluxDBIoTDBKey-ValueKitDBLevelDBM3DBMatrixOneMilvusMongoDBMySQLNavicatNebulaNewSQLNoSQLOceanBaseOpenTSDBOracleOrientDBPostgreSQLPrestoDBQuestDBRedisRocksDBSequoiaDBServerSkytableSQLSQLiteTiDBTiKVTimescaleDBYugabyteDB关系型数据库数据库数据库ORM数据库中间件数据库工具时序数据库
云计算&大数据
ActiveMQAerakiAgentAlluxioAntreaApacheApache APISIXAPISIXBFEBitBookKeeperChaosChoerodonCiliumCloudStackConsulDaprDataEaseDC/OSDockerDrillDruidElasticJobElasticSearchEnvoyErdaFlinkFluentGrafanaHadoopHarborHelmHudiInLongKafkaKnativeKongKubeCubeKubeEdgeKubeflowKubeOperatorKubernetesKubeSphereKubeVelaKumaKylinLibcloudLinkerdLonghornMeiliSearchMeshNacosNATSOKDOpenOpenEBSOpenKruiseOpenPitrixOpenSearchOpenStackOpenTracingOzonePaddlePaddlePolicyPulsarPyTorchRainbondRancherRediSearchScikit-learnServerlessShardingSphereShenYuSparkStormSupersetXuperChainZadig云原生CNCF人工智能区块链数据挖掘机器学习深度学习算法工程边缘计算
UI&美工&设计
BlenderKritaSketchUI设计
网络&系统&运维
AnsibleApacheAWKCeleryCephCI/CDCurveDevOpsGoCDHAProxyIstioJenkinsJumpServerLinuxMacNginxOpenRestyPrometheusServertraefikTrafficUnixWindowsZabbixZipkin安全防护系统内核网络运维监控
综合其它
文章资讯
 上传文档  发布文章  登录账户
IT文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部系统运维(25)存储(25)

语言

全部中文(简体)(20)zh(2)JavaScript(1)西班牙语(1)zh-cn(1)

格式

全部PDF文档 PDF(25)
 
本次搜索耗时 0.011 秒,为您找到相关结果约 25 个.
  • 全部
  • 系统运维
  • 存储
  • 全部
  • 中文(简体)
  • zh
  • JavaScript
  • 西班牙语
  • zh-cn
  • 全部
  • PDF文档 PDF
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 Curve核心组件之Client - 网易数帆

    信息  元数据信息在打快照时会进行变化  MetaCache:元数据缓存  IOTracker:跟踪一个上层IO请求  IOSplitor:IO转换拆分  ChunkClient、CliClient:与Chunkserver进行通信  前者负责IO请求  后者负责获取复制组(copyset)的leader  MDSClient:负责与MDS交互,挂卸载卷、获取元数据信息 CLIENT主要功能  提供接口  数据面:AioWrite/AioRead、Write/Read  控制面:Create/Delete、Open/Close、Rename等  IO处理:转换、拆分、合并  元数据获取及缓存  逻辑chunk与物理chunk映射关系  物理chunk所属的复制组(copyset)  复制组所在的chunkserver列表  复制组的leader信息 的主-从关系CLIENT IO流程 用户下发一个写请求 off: 8M len: 16M 请求落在两个逻辑chunk上,所以 请求会被拆分成两个子请求:  ChunkIdx 1, off: 8M len 8M  ChunkIdx 2, off: 0 len 8MCLIENT IO流程 子请求由哪个chunkserver处理,依赖以 下信息:  逻辑chunk与物理chunk映射关系
    0 码力 | 27 页 | 1.57 MB | 6 月前
    3
  • pdf文档 Curve文件系统元数据管理

    string name; }; 4.3 内存组织 inode和dentry的关系需要在内存中通过某种方式组织起来。 还需要额外考虑一下的hard link, symlink,rename的处理。 fastcfs的inode和dentry没有分开,两者在同一个结构体里面。这种方式如何应对硬链接? 看了下fastcfs的实现,在硬链接这里是有问题的。 考虑inode和dentry 久化的记录加载到内存里。实现把string转化为inode结构体,再插入内存结构中。 场景二:业务运行过程中,元数据的增删改查。 如果采用raft的方式对元数据持久化进行保证,所有元数据的处理都是先写WAL,再修改内存结构。那么任何对元数据的增删改查,对应着一条记录,根据记录去修改内存数据。 按照之前的讨论,curve文件系统的元数据管理采取先写log的方式。这里先不考虑log的组成形式。 的时候对元数据持久化。 对业务逻辑进行进一步抽象,忽略业务细节,会发现,元数据的内存管理需要提供这些功能。收到一条record,解析record,然后根据不同的opcode在内存对元数据进行处理。 伪码如下:© XXX Page 8 of 24 while (stop) { get and parse a record -> record switch (record->opcode)
    0 码力 | 24 页 | 204.67 KB | 6 月前
    3
  • pdf文档 Raft在Curve存储中的工程实践

    响应来自其他服务器的请求,如果接受不 到消息,就变成候选人并发起一次选举。 • 时间被划分成一个个的任期,每个任期开始都是一次 选举。 • 选举成功,领导⼈会管理整个集群直到任期结束。 • 选举失败,这个任期就会没有领导⼈⽽结束。 raft选举leader raft任期RAFT协议简介 raft复制状态机 1. leader收到客户端的请求。 2. leader把请求指令记录下来,写入日志,然后并⾏发 Curve块存储 • 高性能、更稳定、易运维 • 支持NBD(network block device)、iscsi • 支持RDMA和SPDK Curve块存储架构 • client:接受用户请求。 • mds:保存元数据,包括topo信息、块设备信息、 数据分布信息等,持久化到etcd中。 • chunkserver:采用raft协议3副本的方式保存块 设备上的数据。 • snaps • chunk -> copyset -> chunk in 3 chunkserverCurve块存储RAFT应用 请求处理流程 以写请求为例: 1. Client 发送写请求给 Leader ChunkServer。 2. ChunkServer 收到请求,将请求封装成一个 log entry,提交给 raft。 3. raft模块在本地持久化 entry 的同时发送 entry
    0 码力 | 29 页 | 2.20 MB | 6 月前
    3
  • pdf文档 CurveFS Copyset与FS对应关系

    一台机器上能存放多少个inode和dentry 8.2 一台机器上建议的copyset数量 8.3 每个copyset建议管理存储容量的大小 1、背景 curvefs使用raft作为元数据一致性的保证。为了提高元数据的可扩展性和并发处理能力,采用元数据分片的方式管理inode和dentry的元数据。inode的分片依据是fsid + inodeid,dentry的分片依据是fsid + parentinodeid。借鉴curve块 创建dentry,去parent inodeid所在的meta partition进行创建就好了。 查找inode和partition的时候,通过inodeid去查询应该由哪个partition进行处理。inode是拿着inodeid查询,dentry是拿着parent的inode id去查询。© XXX Page 6 of 19 一个fs的meta partition使用第一个叫做MetaWrapper的结构体组织起来© 3、curvefs的copyset和fs的对应关系 curvefs的元数据的分片,需要考虑到在创建inode的时候,其实是不知道inodeid的,在创建完成之后,才有inodeid。inodeid的分配最好下放到各个分片去进行处理。否则整个集群的inode都去一个地方获取id会 造成巨大的锁开销,这个是不能接受的。 curve块设备的元数据管理,在分配数据的时候,offset一开始就是知道的,这是和curvefs分配很大的一个不同点。
    0 码力 | 19 页 | 383.29 KB | 6 月前
    3
  • pdf文档 curvefs client删除文件和目录功能设计

    sustained机制/reserve机制 当一个trashtime等于0的TYPE_FILE类型的文件被一个客户端正在打开,而同时有另一个客户端要删除它时,此时master对该文件节点的处理是并不立即删除该文件而是设置为TYPE_RESERVED类型并将该fsn ode连接到reserved链表中,使该文件虽然已经从文件树中删除掉,但因为另一个正在打开该文件的客户端因为持有该节点inodeid chubaofs的方案如下: chubaofs实现了类似trash的机制,称为freelist, 当inode被unlink时,client会发送UnlinkInodeRequest, 对应的metasever接收到请求后,如果是文件,使得nlink计数减1,如果减到0,则将inodeid放到freelist中。 inode在freelist中存放7天,以应对有文件被打开的情况。 如果nlink减到0的是目录,则直 中,如果在Orpha 的OrphanInodeList OrphanInodeList nInodeList中,则向metaserver发送EvictInodeRequest, metaserver在收到该请求后,则设置inode的DeleteMarkFlag,并将其放入freelist。 freelist在定期清理时,当发现设置了DeleteMarkFlag,则直接从inode tree和free list中移除该inode,不再等待7天。
    0 码力 | 15 页 | 325.42 KB | 6 月前
    3
  • pdf文档 CurveFS S3数据整理(合并碎片、清理冗余)

    客户端在对一个文件的某个部分多次写入后, 同一个chunk会产生很多版本数据; 而客户端在读的时候, 会需要对这些chunk进行筛选和构建, 得到有效的部分, 越是散乱的状态, 就越需要发送更多次读请求至s3. 最后导致无效旧数据的堆积和读请求性能的下降, 所以需要在合适的时候进行重叠元数据和数据的合并 原则是尽力而为, 并不能做到完美 方案 基于一下3个基础的数据结构, 2层索引 s3chuninfolist[index] 不是s3类型的inode退出 对于每一个s3类型的inode来说, 对每一个index内的chunkinfo按照chunkid升序排序. 对于一个chunk来说,chunkinfo数量大于20即进行处理 计算变更 - 记录整个chunk最大的chunkid - 读出一个chunk所有有效的部分(如果是最后一个chunk,需要注意不超出len),compaction+1,chunkid为上一步获取的chunkid,为需要新增的obj 已标记为删除的inode不进行整理, 已经在整理的任务不会被新的删除标记的请求打断. 如果标记删除到实际删除之间的时间间隔非常短, 并且在标记删除前已经开始了整理任务, 可能会出现边删除边整理的状态(出现概率较小) 可以在实际删除前检查当前整理的inode列表, 如果在列表里就暂时跳过(同步删除)/重新丢进删除队列(异步删除) 或者就不管, 处理一下报错, 让后续的应该会开发的数据清理工具来删除, 因为出现这个冲突的概率比较小
    0 码力 | 3 页 | 101.58 KB | 6 月前
    3
  • pdf文档 Curve文件系统空间分配方案

    11 背景 本地文件系统空间分配相关特性 局部性 延迟分配/Allocate-on-flush Inline file/data 空间分配 整体设计 空间分配流程 特殊情况 空间回收 小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 背景 根据 ,文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 CurveFS方案设计(总体设计,只实现了部分) ,需要从level2中,随机或者选择可用空间 最大的extent分配出去。 文件申请空间时,之前预分配块的剩余空间被其他文件占用。此时,首先从level1查找一个可用的块,不满足要求时,按情况1进行处理。 file1再次追加写入数据时,会附带32MiB来申请空间。此时,从level1中查找32MiB对应的块标记是否为0,如果为0,则将这个块继续分配给file1。否则,可以从level1中随机选择一个可用的块进行分配© 文件释放了一小段空间,则尝试与level2中的extent进行合并。 如果合并之后是一个完整的块,则重新将level1中对应的bit置为0,同时删除该extent。 如果不能合并,则向level2中插入一个新的extent。 小文件处理 大量小文件的情况下,按照上述的分配策略,会导致level1的bitmap标记全为1,同时level2中也会有很多extent。 所以可以参考chubaofs,对大小文件区分不同的分配逻辑。同时
    0 码力 | 11 页 | 159.17 KB | 6 月前
    3
  • pdf文档 BRPC与UCX集成指南

    proto:4 BRPC简介 client server EchoRequest EchoResponse5 BRPC简介 ●Channel类 –代表一个连接,Client通过Channel发 送请求和接收应答 ●Server类 –代表一个服务器,可以注册不同的 接口服务,例如上面的EchoService6 BRPC SERVER7 BRPC SERVER8 BRPC client9 EventDispatcher ●是socket事件分发的中心 ●使用epoll和边沿触发 ●提供监视一个fd是否可读写,并调用对应socket对象的成员函数1314 Socket 输入事件处理15 Socket options ●是创建socket的参数 ●主要成员: –fd 是socket文件句柄 –void (*on_edge_triggered_events)(Socket*) Listener 获得一个socket fd后,创建通讯Socket。 SocketOptions关键字段: fd, on_edge_triggered_events18 例子:Request输入处理19 Channel创建Socket20 Channel远程调用的发起21 UCX ●NVIDIA Mellanox 开源项目 ●支持RDMA,TCP,Shared memory等 ●能
    0 码力 | 66 页 | 16.29 MB | 6 月前
    3
  • pdf文档 Curve核心组件之chunkserver

    2、解析MDS的心跳response中的raft 成员变更信息,向CopysetNode发起变 更 ChunkServer架构ChunkOpRequest模块封装了对 ChunkService到达的I/O请求的实际处 理过程。请求到来时,封装一个 OpRequest,将上下文保存在里面,然 后发起Propose提交给raft,等raft apply后再执行后面的操作。 ChunkServer架构CloneManager主要负责克隆相关的功 器,统计一些IO层面和copyset层面的 一些指标,方便监控和跟踪。 ChunkServer架构并发控制层,负责对chunkserver的IO 请求进行并发控制,对上层的读写请 求安照chunk粒度进行Hash,使得不同 chunk的请求可以并发执行。 ChunkServer架构DataStore是对chunk落盘逻辑的封装。 包含chunkfile的创建、删除,以及实际 对chu ChunkServer架构LocalFileSystermAdaptor是对底层文件 系统的一层抽象,目前适配封装了ext4 文件系统的接口。 之所以要做这层抽 象,目的是隔离了底层文件系统的实 际读写请求,如果将来curve要适配裸 盘或者采用其他文件系统,可以在这 层进行适配。 ChunkServer架构CURVE基本架构 01 02 03 04 ChunkServer架构 ChunkServer核心模块
    0 码力 | 29 页 | 1.61 MB | 6 月前
    3
  • pdf文档 Curve设计要点

    client MDS leader Chunk server 1、发起请求 2、查询元数据 5、返回结果 5、返回结果 user 3、查询leader节点 4、向leader cs发起请求 1. 用户发起请求; 2. Client 向 mds 查询请求的元数据, 并缓存到本地,请求转换为对 chunk 的请求 3. Client 向 chunkserver 查询 chunk 所在的 所在的 copyset的leader Chunkserver节点; 4. Client 向 leader 发送读写请求, Chunkserver 完成后通知client; 5. Client通知用户请求完成。背景 01 02 03 04 总体设计 系统特性 近期规划单卷4K随机读写IOPS 102k 39.7k 41.7k 127k 4K随机写 4K随机读 Ceph(L/N) • 无需人工干预 • 对io影响几乎无影响易运维 • 升级秒级影响 • 客户端采用CS架构 • NEBD Client: 对接上层业务 • NEBD Server: 接受请求 调用Curve Client处理 • 升级只需重启Server 秒级影响易运维 • 丰富的metric体系 • prometheus + grafana 可视化 • 每日报表 • 丰富的数据定位问题易运维
    0 码力 | 35 页 | 2.03 MB | 6 月前
    3
共 25 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
Curve核心组件Client网易数帆文件系统文件系统数据管理数据管理Raft存储工程实践CurveFSCopysetFS对应关系curvefsclient删除目录功能设计功能设计S3整理合并碎片清理冗余空间分配方案BRPCUCX集成指南chunkserver要点
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩