积分充值
 首页
前端开发
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文库
  • 综合
  • 文档
  • 文章

无数据

分类

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

语言

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

格式

全部PDF文档 PDF(27)
 
本次搜索耗时 0.013 秒,为您找到相关结果约 27 个.
  • 全部
  • 系统运维
  • 存储
  • 全部
  • 中文(简体)
  • zh
  • JavaScript
  • 西班牙语
  • zh-cn
  • 全部
  • PDF文档 PDF
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 curvefs client删除文件和目录功能设计

    1 of 15 curvefs client 删除文件和目录功能设计© XXX Page 2 of 15 背景 相关调研 moosefs chubaofs 方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? 方案设计 工作量评估 背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除inode和dentry结构,遗留了nlink和lookup count相关的内容还未实现,是不完备的。本文首先调研moosefs,chubaofs等分布式系统,参考并设计解决上述遗留问题。 当前删除接口代码如下:© XXX Page 3 of 15 CURVEFS_ERROR Fu 文件的nlink用于实现hard link。 hard link使用nlink字段表示文件的link的引用计数,第一次创建文件是nlink字段为1。每创建一个新的指向该文件的hard link时,nlink字段+1, 每删除一个hard link或指向的原文件时,nlink字段-1。© XXX Page 4 of 15 当nlink字段减到0时,才真正删除inode。所以在实现unlink接口或r
    0 码力 | 15 页 | 325.42 KB | 6 月前
    3
  • pdf文档 CurveFS方案设计

    © XXX Page 1 of 14 CurveFS方案设计(总体设计,只实现了部分)© XXX Page 2 of 14 时间 修订人 修订内容 2021-03-23 李小翠 初稿(背景,调研,架构设计) 2021-03-30 李小翠 增加快照部分 2021-04-13 李小翠、陈威 补充元数据数据结构 2021-04-19 李小翠、吴汉卿、许超杰等 补充文件空间分配,讨论与确认 背景 文件空间管理 开发计划及安排 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 满足数据库场景的文件接口。 调研 开源fs 当前对已有的开源分布式文件系统进行了调研,主要包括系统架构,元数据内存结构,元数据持久化,调研文档如下: chubaofs: 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于 namespace
    0 码力 | 14 页 | 619.32 KB | 6 月前
    3
  • pdf文档 CurveFS Client 概要设计

    © XXX Page 1 of 11 CurveFS Client 概要设计(已实现)© XXX Page 2 of 11 背景 概述 关键接口分析 init destroy lookup write read open create & mknod mkdir forget unlink rmdir opendir readdir getattr & setattr access rename 内容 2021-04-27 许超杰 初稿 背景 CurveFS初步设计见 , 目前需细化Client端设计 CurveFS方案设计(总体设计,只实现了部分) 概述 CurveFS client 向上提供两层接口,分别是© XXX Page 3 of 11 对接fuse,提供通用文件系统接口。对于fuse接口,先前进行了一些调研,见FUSE调研 后删除旧的parent下的inode和dentry 两者都涉及到rename的事务性的问题?( ) 这里可能还需要详细分析到底是否需要完整的事务的4个特性acid,还是只需要实现其中部分 目前阶段rename可先不实现,但是可以先考虑一些方案。 symlink & readlink void (*symlink) (fuse_req_t req, const char *link, fuse_ino_t
    0 码力 | 11 页 | 487.92 KB | 6 月前
    3
  • pdf文档 Curve文件系统元数据持久化方案设计

    Snapshot 持久化文件 key_value_pairs 其他说明 实现 1、inode、entry 的编码 2、KVStore Q&A 单靠 redis 的 AOF 机制能否保证数据不丢失? redis 的高可用、高可扩方案? redis + muliraft 存在的问题? redis 改造 vs 自己实现? redis 中哈希表实现的优点? 参考 前言 根据之前讨论的结果,元数据节点的架 保存编码后的 value© XXX Page 5 of 12 其他说明 持久化文件中涉及到的数字均以小端序存储 利用 fork 子进程 (COW) 的方式解决在持久化的过程中,读写冲突的问题以及性能问题 实现 1、inode、entry 的编码 给 inode、dentry 增加编码函数 // 这里要尽可能减少 key/value 编码后的字节数,这样同样的内存可以存入较多的 key/value 对 2、KVStore 将当前实现中的 MemoryDentryStorage 和 MemoryInodeStorage 抽象成一个 KVStore,对外提供 SET/GET/DEL 等接口,inode/dentry 均编码后以 key-value 的形式存入 KVStore 当前实现可先只实现 KVStore(提供方便 API),Raft 等可以后续接入(目前实现中持久化可以在 KVStore
    0 码力 | 12 页 | 384.47 KB | 6 月前
    3
  • pdf文档 CurveFs 用户权限系统调研

    Page 1 of 33 CurveFs 用户权限系统调研(已实现)© XXX Page 2 of 33 一、Curvefs测试 1. 启动curvefs 问题1:root用户无法访问挂载目录 测试 allow_root 测试allow_other 参考文献 问题2:本地文件系统挂载默认是共享的? 问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID Entry保存在哪? ACL的表示 内存中的ACL 是如何与具体的 Inode 相关联 如何存储和获取ACL信息 Inode权限校验 chmod、chown、setfacl、getfacl接口文件系统自己如何实现 结论: 参考文献: 一、Curvefs测试 代码:https://github.com/cw123/curve/tree/fs_s3_joint_debugging 环境:test2 1 问题2:本地文件系统挂载默认是共享的? 目前没有查到相关确切的资料说明,但是从现象上看本地文件系统默认是多用户共享的,但是fuse作为用户态文件系统默认访问权限是文件系统的拥有者,可以通过allow_other实现共享。© XXX Page 7 of 33 strace ./bazel-bin/curvefs/src/client/fuse_client -f -o volume=/fs -o allow_other
    0 码力 | 33 页 | 732.13 KB | 6 月前
    3
  • pdf文档 Open Flags 调研

    XXX Page 1 of 23 open flags 调研(已实现)© XXX Page 2 of 23 open接口原型 open flags flags定义 flags的含义 libfuse open open flags 在curvefs上的测试 open flags 实现方式 整体flags支持方案 具体flag的实现方案 O_TRUNC I/O模式类 O_DIRECT O_SYNC 前工作目录;反之,如 果dirfd的值是AT_FDCWD,pathname则是相对于进程当前工作目录的相对路径,此时等同于open。 open flags flags定义 flags通过宏定义实现,定义见 ,主要包括如下flag fcntl.h # 红色是不支持且会执行结果错误;橙色是暂不确定但不影响写入结果;紫色为暂时无法测试;黑色是已经支持 #define O_RDONLY 00000000 O_DSYNC: 每次write都等待物理I/O完成,但是如果写操作不影响读取刚写入的数据,则不等待文件属性更新(在linux 2.6.33之前只有O_SYNC flag, 但是在绝大多数文件系统中对O_SYNC的实现都是O_DSYNC的含义,在2.6.33版本支持了O_DSYNC flag,且值使用原O_SYNC的值,但为了兼容老版本的O_SYNC,现在O_SYNC=O_DSYNC|04000000)。 FASYNC:
    0 码力 | 23 页 | 524.47 KB | 6 月前
    3
  • pdf文档 CurveFS Copyset与FS对应关系

    方案分配的那么均衡。 结论:采用思路二,由分片管理fs 3.2 copyset fs共用吗? fs是否共用copyset,在实现上,只需要获取分片的时候把inodeid替换成fsid+inodeid的组合就行了。在获取inode和copyset的对应关系上,实现起来差别不大。fs是否共用copyset的影响比较大的方面在其他地 方。一个是copyset的数目,如果的每个fs独占copyset copyset。原因是,为了避免fs独占copyset 带来的copyset数量过多影响性能的问题。 3.3 copyset个数是否可以动态调整? 根据copyset个数是否可以动态调整,有两种实现。 一种是curve块存储方案,在集群初始化的时候,把所有的copyset创建好。采用这种方式, 可以采用hash的方式去确定inode的分片。比如说, , copysetid = (fsid + inodeid << shift ) % totalCopysetNum 如果采用hash方案,扩容按照pool扩容,避免hash带来的数据迁移。用这种方式简化处理,改变hash映射方式带来的数据迁移,在技术实现上难度应该很大,暂时不考虑。 还有一种方式是chubaofs方案,在文件系统初始化的时候,初始化少数copyset,然后copyset的处理能力有限, ,这个copyset转化为readonly,继续创建新的copyset
    0 码力 | 19 页 | 383.29 KB | 6 月前
    3
  • pdf文档 Curve核心组件之snapshotclone

    Curve核心组件 - SnapShotCloneServer 许超杰CURVE基本架构 01 02 03 04 快照和克隆的特点 快照克隆服务器架构 快照的实现 05 克隆的实现CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 基于brpc提供restful API的对外http接口 HttpService: • Serivce层面区分上层请求为同步接口调用,还是异步接口调用, 同步接口调用直接调用Core层接口实现功能,异步接口创建Task, 并交由TaskManager调度。 SnapshotService & CloneService: • 任务管理层负责调度SnapshotTask和CloneTask,并向上提供如 cancel task等功能。 SnapshotTaskManager & CloneTaskManager: • 快照克隆核心模块,负责向下调用DataStore,MetaStore等底层 模块,实现快照和克隆的具体功能。 SnapshotCore & CloneCore:快照克隆服务器架构 • SnapshotDataStore负责管理快照转储的数据块,通过调用 S3Adaptor(一个封装了s3
    0 码力 | 23 页 | 1.32 MB | 6 月前
    3
  • pdf文档 Raft在Curve存储中的工程实践

    Understandable Consensus Algorithm(Extended Version)》 • raft 是一种Leader-Based的Multi-Paxos变种,提供了更完整更清晰的协议描述,更容易理解和实现。 • raft可以解决分布式理论中的CP,即一致性和分区容忍性 • 大多数副本成功即可返回成功 • 速度取决于写的较快的大多数RAFT协议简介 • Leader:负责从客户端接受日志,把日志复制到其 照。BRAFT简介 • raft协议提出之后,涌现出了非常多的实现,比如etcd,braft,tikv等。 • braft是raft的一个实现,实现了raft的一致性协议和复制状态机,而且提供了一种通用的基础库。基 于braft,可以基于自己的业务逻辑构建自己的分布式系统。 • braft本身不提供server功能,需要业务自己实现状态机。 Node(一个raft实例) int init(const Curve文件系统也是使用copyset管理。 • 写日志的方式与Curve块存储基本一致,实现细节略有差异。 • raft apply和raft snapshot的实现和Curve块存储不同。 • metaserver有两套存储引擎,基于memory和基于rocksdb。 Curve文件系统与Curve块存储的实现区别CURVE的RAFT配置变更 心跳 • 通过心跳维持mds和chunkserver/metaserve的
    0 码力 | 29 页 | 2.20 MB | 6 月前
    3
  • pdf文档 Curve文件系统元数据管理

    © XXX Page 1 of 24 Curve文件系统元数据管理(已实现)© XXX Page 2 of 24 1. 2. 3. 4. Inode 1、设计一个分布式文件系统需要考虑的点: 2、其他文件系统的调研总结 3、各内存结构体 4、curve文件系统的元数据内存组织 4.1 inode定义: 4.2 dentry的定义: 4.3 内存组织 5 元数据分片 3、各内存结构体 时间复杂度 空间复杂度 特点 可用实现 Btree 一个节点上保存多条数据,减少树的层次(4~5层),方便从盘上读取数据,减少去盘上读取次数。适合在盘上和内存组织目录树。 google,https://github.com/abseil/abseil-cpp/tree/master/absl/c ontainer 实现了btree map和btree set,(Apache)。 btree_multiset ,( ) Apache B+tree 内部结点不保存数据,只有叶子结点保存数据。 https://github.com/begeekmyfriend/bplustree,(MIT),实现了落 盘 BST O(log(n)) O(n) c++ stl 模板© XXX Page 4 of 24 skip list O(log(n)) O(n) level db,https://github
    0 码力 | 24 页 | 204.67 KB | 6 月前
    3
共 27 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
curvefsclient删除文件目录功能设计功能设计CurveFS方案方案设计Client概要Curve系统文件系统数据持久CurveFs用户权限调研OpenFlagsCopysetFS对应关系核心组件snapshotcloneRaft存储工程实践管理数据管理
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩