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

无数据

分类

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

语言

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

格式

全部PDF文档 PDF(23)
 
本次搜索耗时 0.012 秒,为您找到相关结果约 23 个.
  • 全部
  • 系统运维
  • 存储
  • 全部
  • 中文(简体)
  • 西班牙语
  • zh
  • zh-cn
  • 全部
  • PDF文档 PDF
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 Curve文件系统空间分配方案

    背景 本地文件系统空间分配相关特性 局部性 延迟分配/Allocate-on-flush Inline file/data 空间分配 整体设计 空间分配流程 特殊情况 空间回收 小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 背景 根据 ,文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 CurveFS方案设计(总体设计,只实现了部分) 延迟分配/Allocate-on-flush 在sync/flush之前,尽可能多的积累更多的文件数据块才进行空间分配,一方面可以提高局部性,另一方面可以降低磁盘碎片。 Inline file/data 几百字节的小文件不单独分配磁盘空间,直接把数据存放到文件的元数据中。 针对上述的本地文件系统特性,Curve文件系统分配需要着重考虑 。 局部性 虽然Curve是一个分布式文件系统,但是单个文件系统的容量 list,表示每个已分配的块,哪些仍然是空闲的(offset, length),以offset为key进行排序(这里可以用map或者btree对所有的free extent进行管理)。 当前设计不考虑持久化问题,空间分配器只作为内存结构,负责空间的分配与回收。在初始化时,扫描文件系统所有inode中已使用的空间。 空间分配流程 在新文件进行空间分配时,随机选择level1中标记为0的块,先预分配给这个
    0 码力 | 11 页 | 159.17 KB | 6 月前
    3
  • pdf文档 Raft在Curve存储中的工程实践

    点初始状态一致的时候,保证节点之间状态一致。 raft日志复制RAFT协议简介 raft配置变更 • 配置:加入一致性算法的服务器集合。 • 集群的配置不可避免会发生变更,比如替换宕机的机器。 直接配置变更可能出现双主问题 • 共同一致(joint consensus) • 集群先切换到一个过渡的配置(old + new),一旦共同一 致已经被提交,系统切换到新的配置(new)。RAFT协议简介 日志压缩 • raft在Curve中的应用 05 Q&A 04 Curve对raft的优化Curve对RAFT的优化 优化点一:轻量级快照 问题背景: raft的快照需要定期打快照,用来清理log。对于Curve块存储场景,系统状态就是Chunk当前的数据。 如果把所有chunk 拷贝一遍打快照,会出现两个问题: 1. 每次快照,空间上要多出1倍,空间浪费严重。 2. Curve块存储快照间隔默认30 分钟一次,每次快照 pool 问题背景: Chunkserver使用基于ext4实现的本地文件系统,由于写操作存在较大的IO放大,因此在创建chunk 文件时会调用fallocate为文件预分配固定大小的空间,但是即便fallocate以后,在写文件未写过的块 时仍需要更改元数据,存在一定的IO放大。 解决思路: 直接使用覆盖写过一遍的文件。由于chunk大小固定,预先生成一批被写过的固定大小文件。创建 ch
    0 码力 | 29 页 | 2.20 MB | 6 月前
    3
  • pdf文档 Curve文件系统元数据管理

    rename:rename /A/C到/B/E symbolic link: hardlink:生成一个hardlink /B/E,指向文件/A/C list:遍历/A目录 5.1.2 好处 5.1.2 问题 5.2 分片方式二:Inode按照inodeid进行分片,Dentry按照parentid进行分片 rename:rename /A/C到/B/E hardlink:生成一个hardlink /B/E,指向文件/A/C inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 内存空间分配元数据 元数据持久化 元数据扩展 小文件优化 空间管理单位 数据持久化 其他© XXX Page 3 of 24 moosefs(mfs) 有元数据服务器 全内存 fsnode → hashtable(inode id) fsedge link, symlink,rename的处理。 fastcfs的inode和dentry没有分开,两者在同一个结构体里面。这种方式如何应对硬链接? 看了下fastcfs的实现,在硬链接这里是有问题的。 考虑inode和dentry的内存组织形式,可以考虑hashmap,skiplist,btree等,但是无论选择哪种方式组织,节点都可以抽象成一个Key - Value的形式。 inode可以抽象成
    0 码力 | 24 页 | 204.67 KB | 6 月前
    3
  • pdf文档 CurveFS方案设计

    multi-raft, 扩展性、可用性和可靠性与元数据节点一致 对比结论 CurveFS 近期要能支持mysql所要接口,长期需要支持通用文件接口。 kv 虽然改造简单,短期内对基本功能的支持没有问题,但这个架构不利于 Curve 长期的规划和演进,因此选择通用的 dentry,inode 两层映射的元数据结构。对于 fs© XXX Page 4 of 14 的场景,元数据的量比块存储场景会多 一个卷对应一个文件系统 文件系统中文件数据和chunk是一对多的关系。 底层 chunk 固定大小,一个 chunk 可以分为多个固定大小的 extent 大文件可以包含多个 chunk, 小文件可以共用 chunk 文件的目录数结构有单独的元数据节点存储 元数据包含两层映射,dentry,inode inode 在每个文件系统中是全局唯一的,inode 中包含文件的信息,包括用户,时间,软/硬链,数据分布等 种方式。具体的元数据结构设计:Curve文件系统元数据管理(已实现) 索引设计© XXX Page 11 of 14 1. 2. 3. 4. 文件空间管理 文件空间管要解决的问题是:一个文件的数据如何存储?物理空间如何分配给不同的文件,如何从不同的文件回收?从这两个角度出发,分别调研了以下系统的空间管理策略: bluestore: CurveFS空间分配调研#bluestore
    0 码力 | 14 页 | 619.32 KB | 6 月前
    3
  • pdf文档 curvefs client删除文件和目录功能设计

    Trash机制: Session机制: 遗留问题 工作量评估 背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除inode和dentry结构,遗留了nlink和lookup count相关的内容还未实现,是不完备的。本文首先调研moosefs,chubaofs等分布式系统,参考并设计解决上述遗留问题。 当前删除接口代码如下:© XXX Page << ", inode = " << dentry.inodeid(); return ret; } return ret; } 存在两个问题: 一是删除时nlink字段未考虑: 文件的nlink用于实现hard link。 hard link使用nlink字段表示文件的link的引用计数,第一次创建文件是nlink字段为1。每创建一个新的指向该文件的hard XXX Page 8 of 15 1. 2. 1. 2. 1. 1. 2. 3. 4. 5. 缺点: moosefs是单mds,所以不存在接口原子性的问题,这块要重新考虑,我们实现上会比moosefs复杂,需要引入一些额外的复杂性。 由于是按目录管理trash,那么必须是两个trash(其中一个是reserve)以区分两种不同的情况。 chubaofs
    0 码力 | 15 页 | 325.42 KB | 6 月前
    3
  • pdf文档 新一代云原生分布式存储

    | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介 | 场景介绍 | 使用中的问题 Curve 架构简介 | 数据对比 | 应用情况 FAQ 答疑存储的发展 互联网时代,数据大爆炸 大型主机 成本高 单点问题 扩容困难 各存储设备通过网络互联 大规模 弹性扩容 底层构建在分布式存储之上 云的概念 成本:共用基础设施 弹性:随意扩缩容 client W W W client分布式存储介绍 01 存储的发展 | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介 | 块存储场景 | 使用中的问题 Curve 架构简介 | 数据对比 | 应用情况 FAQ 答疑架构简介 — 总体架构 开源分布式存储界的扛把子 支持块存储、文件存储、对象存储架构简介 — 概念介绍 object:存储单元 -> 文件系统 -> 块设备层 -> 不同协议/驱动使用中的问题 • io抖动(一致性协议): 异常场景(比如阵列卡一致性巡检,坏盘,慢盘,网络异常),服务升级 • 性能差(一致性协议):在通用硬件下,无法支撑数据库、kafka等中间件对存储性能和稳定性要求 • 容量不均衡(数据放置):集群各节点容量不均衡需要人为干预 • 上述问题和架构涉及、核心功能的选型有关,在已有开源版本上改进代价很大分布式存储介绍
    0 码力 | 29 页 | 2.46 MB | 6 月前
    3
  • pdf文档 NJSD eBPF 技术文档 - 0924版本

    采⽤eBPF加速云原⽣环境中 Curve⽂件系统性能 ⽹易数帆科技 向东提纲 • 什么是Curve • Curve的应⽤场景及挑战 • Curve客户端⾯临问题及分析 • 什么是ebpf • 基于epbf的Curve Cache设计 • Curve社区介绍Curve是什么? • Curve云原⽣软件定义存储 • Curve分布式块存储 • Curve分布式⽂件存储 ⼤数据计算场景 • 中间件数据存储场景 • ⽀持POSIX兼容的⽂件API • ⽀持低延迟的⽂件数据访问Curve⽂件系统⾯临的问题 • ⽤户态实现 • 稳定性/可靠性⾼ • 容易更新及维护 • 基于FUSE提供POSIX兼容⽂件接⼝ • 问题 • 相对kernel⽂件系统的实现(ext4, xfs)性能 差异⼤,延迟⾼FUSE⽂件IO读写流程 • 场景1 pytorch 瓶颈在/dev/fuse通讯开销基于FUSE可能的优化点 • 降低内核与libfuse通讯延迟 • 基于⽂件属性的操作内核直接返回? • 基于⽂件数据的操作先内核读写 cache?实现POSIX兼容API途径及问题 • 基于FUSE的实现 • curve / ceph / gluster • LD_PRELOAD重载⽂件系统系统调⽤ • vpp / f-stack / DirectFUSE •
    0 码力 | 20 页 | 7.40 MB | 6 月前
    3
  • pdf文档 CurveFS Client 概要设计

    e结构(包括file length); inode修改需要持久化到底层并修改本地cache; 调用curve client接口,写curve卷对应[offset,len] 数据。 (这里涉及到一个问题,是否从fuse下来的请求是4k对齐的,如果不是,那么这里还需要修改为read merge write,即读出未对齐缺少的部分,然后整个[offset,len] 调用curve client写); 根据inode结构,拆分unwritten/未分配的区域与写过的区域,未写过的区域填0,其他区域继续读取 根据inode结构中信息,调用curve client接口,读取对应的[offset, len]数据。(这里同样要考虑4k对齐的问题,如果不对齐,则需要读取对齐的区域,然后去掉多读的部分)(读写可以做数据缓存, 当前先不考虑)。 open void (*open) (fuse_req_t req, fuse_ino_t ino ino, uint64_t nlookup); 根据inodeid找到对应的inode结构,lookup count值减少nlookup。 ( ) 这里涉及到一个lookup count 存在哪里的问题 unlink void (*unlink) (fuse_req_t req, fuse_ino_t parent, const char *name); 根据parent inode id 和
    0 码力 | 11 页 | 487.92 KB | 6 月前
    3
  • pdf文档 CurveFs 用户权限系统调研

    CurveFs 用户权限系统调研(已实现)© XXX Page 2 of 33 一、Curvefs测试 1. 启动curvefs 问题1:root用户无法访问挂载目录 测试 allow_root 测试allow_other 参考文献 问题2:本地文件系统挂载默认是共享的? 问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID, SGID, STICKY) fuse_client -f -o volume=/fs -o user=test -o conf=./curvefs/conf/curvefs_client.conf /tmp/fsmount 问题1:root用户无法访问挂载目录 测试发现client mount进程是哪个用户启动的就只有该用户(filesystem owner)可以访问该目录,即使挂载点mode是777。 # filesystem /tmp/fsmount# 参考文献 Why does root get Permission denied when accessing FUSE directory? man fuse 问题2:本地文件系统挂载默认是共享的? 目前没有查到相关确切的资料说明,但是从现象上看本地文件系统默认是多用户共享的,但是fuse作为用户态文件系统默认访问权限是文件系统的拥有者,可以通过allow_other实现共享。©
    0 码力 | 33 页 | 732.13 KB | 6 月前
    3
  • pdf文档 Curve文件系统元数据持久化方案设计

    1、inode、entry 的编码 2、KVStore Q&A 单靠 redis 的 AOF 机制能否保证数据不丢失? redis 的高可用、高可扩方案? redis + muliraft 存在的问题? redis 改造 vs 自己实现? redis 中哈希表实现的优点? 参考 前言 根据之前讨论的结果,元数据节点的架构如下图所示,这里涉及到两部分需要持久化/编码的内容: Raft Log:记录 $value_length 保存编码后的 value© XXX Page 5 of 12 其他说明 持久化文件中涉及到的数字均以小端序存储 利用 fork 子进程 (COW) 的方式解决在持久化的过程中,读写冲突的问题以及性能问题 实现 1、inode、entry 的编码 给 inode、dentry 增加编码函数 // 这里要尽可能减少 key/value 编码后的字节数,这样同样的内存可以存入较多的 key/value (或者第三方 codis + 哨兵) redis cluster/codis 主要解决扩展性的问题,它会进行分片,每个 redis 实例保存分片的 key 主从复制主要解决高可用,一个分片实例挂 2 个从实例,当主节点挂掉时,cluster/哨兵会自动将从节点升为主节点 redis + muliraft 存在的问题? 每个 raft ,需要独立的 snapshot(目前 redis 做不到)探索其可行性??
    0 码力 | 12 页 | 384.47 KB | 6 月前
    3
共 23 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
Curve文件系统文件系统空间分配方案Raft存储工程实践数据管理数据管理CurveFS设计方案设计curvefsclient删除目录功能功能设计一代新一代原生分布布式分布式NJSDeBPF技术文档0924版本Client概要CurveFs用户权限调研持久
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩