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

无数据

分类

全部系统运维(16)存储(11)Linux(4)DevOps(1)

语言

全部中文(简体)(14)英语(1)日语(1)

格式

全部PDF文档 PDF(16)
 
本次搜索耗时 0.013 秒,为您找到相关结果约 16 个.
  • 全部
  • 系统运维
  • 存储
  • Linux
  • DevOps
  • 全部
  • 中文(简体)
  • 英语
  • 日语
  • 全部
  • PDF文档 PDF
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 CurveFS rename 接口实现方案

    4. 当 2 个操作的 dentry 属于同一个 copyset 有什么不一样? 背景 当前 curvefs 并没有实现 rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1) 删除 file1 的 dentry,(2) 增加 file2 file2 的 dentry(该 dentry 的 inodeid 等同 file1 的 inode id)。 关于 rename 接口的实现,主要调研了 chubaofs 和 juicefs,而 rename 的实现难点主要在于其原子性的保证。 方案调研 Chubaofs chubaofs 中的 rename 实现不是原子性的,它是通 用创建源文件的硬连接,然后删除源文件的方式来实现的,主要有以下 下 4 步 : 将源文件的 nlink 加一 创建目标文件的 dentry 删除源文件的 dentry 将源文件的 nlink 减一 而每一步骤都有可能出错,chubaofs 针对以上的 4 步骤中出现的错误处理如下: 步骤 1 出错,啥事都没发生 步骤 2 出错,等同于创建硬连接出错,恢复机制如下: 将源文件的 nlink 减一 步骤 3 出错,相当于创建了硬链接,但是没有删除源文件,
    0 码力 | 15 页 | 555.93 KB | 6 月前
    3
  • pdf文档 Curve文件系统元数据管理

    1、设计一个分布式文件系统需要考虑的点: 2、其他文件系统的调研总结 3、各内存结构体 4、curve文件系统的元数据内存组织 4.1 inode定义: 4.2 dentry的定义: 4.3 内存组织 5 元数据分片 5.1 分片方式一:inode和dentry都按照parentid分片 5.1.1 场景分析 查找:查找/A/C。 创建:/A/C不在,创建/A/C 删除文件:删除/A/C 删除目录:删除/A 进行分片,Dentry按照parentid进行分片 rename:rename /A/C到/B/E hardlink:生成一个hardlink /B/E,指向文件/A/C 6、curve文件系统的多文件系统的设计 1、设计一个分布式文件系统需要考虑的点: 文件系统的元数据是否全缓存? 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? + dump record 差 否 chunk 链式多副本 overwirte有数据不一致风险 chubaofs(cfs) 有元数据服务器 inode → b tree(key ino) dentry → b tree (key parentIno + name) extent → B+ tree 这个在inode的ExtentsTree字段 meta partition(raft group)
    0 码力 | 24 页 | 204.67 KB | 6 月前
    3
  • pdf文档 CurveFS方案设计

    加速,需要新的缓存结构 c. 扩展性/可用性/可靠性 依赖于第三方kv存储,目前是etcd CurveFS 单机内存元数据设计 类似 fastcfs 和 moosefs 的元数据设计方式,采用通用的 dentry,inode 两层映射关系,所有的元数据都缓存在内存中,持久化在 binlog 文件中,binlog采用定期dump的方式删除。基于这种方式的开发: a. 性能 加载:数据量较大的情况下,元数据节点启动较慢;但是元数据使用 以同步方式调用 slave,slave 在内存中也缓存了全部元数据信息 master-slave 多副本数据 CurveFS 分布式元数据设计 类似 chubaofs 的元数据设计方式,同样是采用 dentry,inode 两层映射关系,所有的元数据都缓存在内存中。元数据是分片的,使用 multi-raft 持久化元数据以及保证多副本数据一致性。基于这种方式开发: a. 性能 由于元数据分片, CurveFS 近期要能支持mysql所要接口,长期需要支持通用文件接口。 kv 虽然改造简单,短期内对基本功能的支持没有问题,但这个架构不利于 Curve 长期的规划和演进,因此选择通用的 dentry,inode 两层映射的元数据结构。对于 fs© XXX Page 4 of 14 的场景,元数据的量比块存储场景会多很多,长期看元数据节点的设计也是需要满足高可用、高可扩、高可靠的。 因此
    0 码力 | 14 页 | 619.32 KB | 6 月前
    3
  • pdf文档 CurveFS Copyset与FS对应关系

    增加详细设计 1、背景 2、chubaofs的元数据管理 2.1、meta partition的创建 2.2、meta partition的管理 2.3、meta partition和inode以及dentry的对应关系? 3、curvefs的copyset和fs的对应关系 3.1 如何获取inodeid 3.2 copyset fs共用吗? 3.3 copyset个数是否可以动态调整? 4、curvefs的topo信息 metaserver 子模块拆分 8、inode和dentry的内存估算 8.1 一台机器上能存放多少个inode和dentry 8.2 一台机器上建议的copyset数量 8.3 每个copyset建议管理存储容量的大小 1、背景 curvefs使用raft作为元数据一致性的保证。为了提高元数据的可扩展性和并发处理能力,采用元数据分片的方式管理inode和dentry的元数据。inode的分片依据是fsid id + inodeid,dentry的分片依据是fsid + parentinodeid。借鉴curve块设备的设计思路,(补充copyset的设计文档在这 ),curvefs的元数据分片仍然按照的copyset的方式去管理。 curve块存储的topo信息由PhysicalPool、LogicalPool、Zone、Server、ChunkServer、CopySetInfo组成。curve
    0 码力 | 19 页 | 383.29 KB | 6 月前
    3
  • pdf文档 CurveFS Client 概要设计

    (fuse_req_t req, fuse_ino_t parent, const char *name); 根据parent inode id和name从denty缓存中找到对应的denty结构; 如果dentry缓存中不存在对应的inode,则从mds根据parent inode id获取parent inode 所在copyset,metaserver ip等信息 ,然后从metaserver获取de mode_t mode, dev_t rdev); 这两个函数的功能是类似,都用来创建文件。 根据parent inode id 和name,向mds查询创建dentry和inode的位置,去meta server创建dentry和inode 预分配一些空间?可先不做 mkdir© XXX Page 7 of 11 void (*mkdir) (fuse_req_t req, fuse_ino_t fuse_ino_t parent, const char *name, mode_t mode); 根据parent inode id 和name,向mds查询创建dentry和inode的位置,去meta server创建dentry和inode forget void (*forget) (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup); 根
    0 码力 | 11 页 | 487.92 KB | 6 月前
    3
  • pdf文档 curvefs client删除文件和目录功能设计

    方案设计 Trash机制: Session机制: 遗留问题 工作量评估 背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除inode和dentry结构,遗留了nlink和lookup count相关的内容还未实现,是不完备的。本文首先调研moosefs,chubaofs等分布式系统,参考并设计解决上述遗留问题。 当前删除接口代码如下:© eq_t req, fuse_ino_t parent, const char *name) { Dentry dentry; CURVEFS_ERROR ret = dentryManager_->GetDentry(parent, name, &dentry); if (ret != CURVEFS_ERROR::OK) { LOG(ERROR) ret; } // TODO(xuchaojie) : judge can inode be deleted ret = inodeManager_->DeleteInode(dentry.inodeid()); if (ret != CURVEFS_ERROR::OK) { LOG(ERROR) << "inodeManager_ DeleteInode
    0 码力 | 15 页 | 325.42 KB | 6 月前
    3
  • pdf文档 Curve文件系统元数据Proto(接口定义)

    // } // dentry interface© XXX Page 7 of 15 message GetDentryRequest { required uint32 fsId = 1; required uint64 parentInodeId = 2; required string name = 3; } message Dentry { required = 4; } message GetDentryResponse { required MetaStatusCode statusCode = 1; optional Dentry dentry = 2; } message ListDentryRequest { required uint32 fsId = 1; required uint64 dirInodeId ListDentryResponse { required MetaStatusCode statusCode = 1; repeated Dentry dentrys = 2; } message CreateDentryRequest { required Dentry dentry = 1; } message CreateDentryResponse { required MetaStatusCode
    0 码力 | 15 页 | 80.33 KB | 6 月前
    3
  • pdf文档 Curve文件系统元数据持久化方案设计

    持久化文件中涉及到的数字均以小端序存储 利用 fork 子进程 (COW) 的方式解决在持久化的过程中,读写冲突的问题以及性能问题 实现 1、inode、entry 的编码 给 inode、dentry 增加编码函数 // 这里要尽可能减少 key/value 编码后的字节数,这样同样的内存可以存入较多的 key/value 对 序列化目前主要考虑以下 2 种,一种是参考 chubaofs uint32 fsId = 1; required uint64 parentInodeId = 2; required string name = 3; } message Dentry { required uint32 fsId = 1; required uint64 inodeId = 2; required uint64 parentInodeId = 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文档 Open Flags 调研

    FDIRClientSession flock; FCFSAPIOpendirSession *opendir; } sessions; FDIRDEntryInfo dentry;© XXX Page 14 of 23 int flags; int magic; struct { int last_modified_time; offset; //current offset } FCFSAPIFileInfo; static int do_open(fuse_req_t req, FDIRDEntryInfo *dentry, struct fuse_file_info *fi, const FCFSAPIFileContext *fctx) { int result; FCFSAPIFileInfo
    0 码力 | 23 页 | 524.47 KB | 6 月前
    3
  • pdf文档 openEuler 21.09 技术白皮书

    buckets 2 3 4 … 1 2 3 4 … directory VFS inode points to latest next dentry points to consistent next dentry points to latest buckets points to consistent buckets mutually reachable openEuler
    0 码力 | 36 页 | 3.40 MB | 1 年前
    3
共 16 条
  • 1
  • 2
前往
页
相关搜索词
CurveFSrename接口实现方案Curve文件系统文件系统数据管理数据管理设计方案设计CopysetFS对应关系Client概要curvefsclient删除目录功能功能设计Proto定义接口定义持久OpenFlags调研openEuler21.09技术白皮皮书白皮书
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩