积分充值
 首页
前端开发
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)

语言

全部中文(简体)(21)zh(2)JavaScript(1)zh-cn(1)

格式

全部PDF文档 PDF(25)
 
本次搜索耗时 0.013 秒,为您找到相关结果约 25 个.
  • 全部
  • 系统运维
  • 存储
  • 全部
  • 中文(简体)
  • zh
  • JavaScript
  • zh-cn
  • 全部
  • PDF文档 PDF
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 CurveFS ChunkID持久化

    chunkid 持久化© XXX Page 2 of 3 1. 2. 3. 1. 2. 3. 4. 5. 6. 1. 2. 3. 4. 1. 1. 1. 2. 1. 2. 3. 4. 3. 2. 背景 将原有的获取chunkid的方法从space迁入mds中,并持久化写入etcd中; 只考虑单 ChunkIDGenerator 类对象,方法 AllocateS3Chunk 调用 ChunkIDGenerator对象的GenChunkID方法; ChunkIDGenerator 类 构造函数 初始化 init 函数:用于初始化或者更改 ChunkIdAllocatorImpl 的一些配置。但是这些配置不会立即生效,而是等到当前 chunkId池枯竭时才会生效。 析构函数 GenChunkID 申请的chunkID池是否枯竭?
    0 码力 | 3 页 | 79.38 KB | 6 月前
    3
  • pdf文档 Curve文件系统元数据持久化方案设计

    © XXX Page 1 of 12 元数据持久化© XXX Page 2 of 12 前言 Raft Log Raft Snapshot 持久化文件 key_value_pairs 其他说明 实现 1、inode、entry 的编码 2、KVStore Q&A 单靠 redis 的 AOF 机制能否保证数据不丢失? redis 的高可用、高可扩方案? redis + muliraft redis 中哈希表实现的优点? 参考 前言 根据之前讨论的结果,元数据节点的架构如下图所示,这里涉及到两部分需要持久化/编码的内容: Raft Log:记录 operator log Raft Snapshot:将内存中的数据结构以特定格式 dump 到文件进行持久化© XXX Page 3 of 12 Raft Log +------+------------+-----+----- -----+----------------+---------+ 持久化文件 字段 字节数 说明 CURVEFS 7 magic number(常量字符 "CURVEFS"),用于标识该文件为 curvefs 元数据持久化文件 version 4 文件版本号(当文件格式变化时,可以 100% 向后兼容加载旧版持久化文件) size 8 键值对数量 key_value_pairs / 键值对(当
    0 码力 | 12 页 | 384.47 KB | 6 月前
    3
  • pdf文档 Curve核心组件之Client - 网易数帆

    C u r v e 核 心 组 件 之 C l i e n t 吴汉卿CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 OpenStack 和 k8s • 网易内部线上无故障稳定运行400+天 • 已开源 • github主页: https://opencurve https://github.com/opencurve/curve-qemu-block-driver NBD: 实现了Curve-NBD,与内核NBD模块进行交互 可以作为容器的数据存储 CSI插件也已经开源: https://github.com/opencurve/curve-csi CLIENT上层应用CLIENT虚拟块设备CLIENT主要功能  提供接口  数据面:AioW 复制组所在的chunkserver列表  复制组的leader信息CLIENT IO流程 逻辑chunk与物理chunk映射关系 物理chunk所属的复制组(copyset)  由MDS分配并持久化,client拆分用户请 求时会获取并进行缓存  为了减少元数据量,MDS一次会连续分配 1G范围内的映射关系,称为SegmentCLIENT IO流程 复制组所在的chunkserver列表
    0 码力 | 27 页 | 1.57 MB | 6 月前
    3
  • pdf文档 Curve文件系统元数据管理

    文件系统的元数据是否全缓存? 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 内存空间分配元数据 元数据持久化 元数据扩展 小文件优化 空间管理单位 数据持久化 其他© XXX Page 3 of 24 binlog,随时间会越来越大 差 DG Master/Slave glusterfs 无中心化服务器 dht算法 hash 扩展时大量迁移 client缓存 inode→ hashtable(gfid) dentry→ hashtable(name) inode扩展属性字段 和写数据一样 好 写多份 overwirte有数据不一致风险 curve 有元数据服务器 1、系统加载的时候,元数据从持久化介质加载。 2、业务运行过程中,元数据的增删改查。 3、系统退出的时候,元数据持久化。© XXX Page 7 of 24 场景一:系统加载的时候,元数据从持久化介质中加载。 元数据进行恢复的时候,有两种情况。 一种系统必须等到元数据全部加载到内存才能提供服务,这种情况下,元数据需要在内存全缓存。这种方式,对性能友好,但是需要消耗比较多的内存,元数据服务的扩展性受限于内存,而且在元数据服务启动的
    0 码力 | 24 页 | 204.67 KB | 6 月前
    3
  • pdf文档 CurveFS方案设计

    块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 满足数据库场景的文件接口。 调研 开源fs 当前对已有的开源分布式文件系统进行了调研,主要包括系统架构,元数据内存结构,元数据持久化,调研文档如下: chubaofs: ChubaoFS© XXX Page 3 of 14 1. 2. 3. moosefs: https://kms.netease.com/ 要怎样的元数据节点的性能? 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于 range 获取方式。如果需要对 list 加速,需要新的缓存结构 c. 扩展性/可用性/可靠性 依赖于第三方kv存储,目前是etcd CurveFS 单机内存元数据设计 类似 fastcfs 和 moosefs 的元数据设计方式,采用通用的 dentry,inode 两层映射关系,所有的元数据都缓存在内存中,持久化在 binlog 文件中,binlog采用定期dump的方式删除。基于这种方式的开发:
    0 码力 | 14 页 | 619.32 KB | 6 月前
    3
  • pdf文档 新一代云原生分布式存储

    易用性:跨平台,超融合,弹性 小型主机 容量有限分布式存储的分类 按照各种应用场景所需的存储接口分类 对象 存储 文件 存储 块存储 接口为简单的 Get、PUT、DEL 和其他扩展 通常意义是支持 POSIX 接口 传统意义的文件系统: Ext4 对指定地址空间进行随机读写 传统意义的块存储:磁盘分布式存储的要素 如何构建分布式文件系统? 以分布式块存储为例。 •提供大容量的块设备 可靠性 & 可用性 —— 多副本/EC 服务不可用时 间 数据一致性 —— 一致性协议 如何保证数据不丢?如何保证各种硬件故障的时候读 写都正常? 可扩展性 —— 和数据分布的方式相关 所用容量都用完后,可以新增机器扩展容量分布式存储的要素 — 数据分布 无中心节点:哈希算法 INPUT (Offset, Len) HASH HASH mod 72 (DiskNums) (0 51 • 映射信息无需记录,直接通过计算获得 • 伪随机算法在服务器数量特别大的时候接近均衡 • 节点故障(DiskNums)变更会涉及其他数据的迁移 有中心节点:持久化对应关系 • 需要将数据分布(元数据)持久化 • 中心节点感知集群的信息,进行资源实时调度 • 节点故障不会涉及其他的数据迁移 KEY (Offset, Len) VALUE (DiskID) (0, 4MB)
    0 码力 | 29 页 | 2.46 MB | 6 月前
    3
  • pdf文档 Curve设计要点

    快照克隆服务器 独立于核心服务 储到支持S3接口的 对象存储,不限制数量 异步快照、增量快照 从快照/镜像克隆 ( lazy/非lazy ) 从快照回滚数据组织形式 • 底层 可用性 / 可靠性 扩展性 / 负载均衡 向上提供无差别文件流 • Application 块/对象/EC等 感知具体格式 提供不同文件类型支撑不同上层应用数据组织形式 • PageFile/AppendFile/AppendECFile prometheus + grafana 可视化 • 每日报表 • 丰富的数据定位问题易运维 • 丰富的metric体系 • prometheus + grafana 可视化 • 每日报表 • 丰富的数据定位问题 • 集群状态查询工具 • curve_ops_tool • 自动化部署工具 • 一键部署,一键升级高质量 • 良好的模块化和抽象设计 • 完善的测试体系 • 单元测试 单元测试 行覆盖80%+,分支覆盖70%+ • 集成测试 Given When Then 方法 完备的测试用例集 • 自动化异常测试 41个异常用例 • 自动化大压力随机故障注入 20轮随机故障注入背景 01 02 03 04 总体设计 系统特性 近期规划• 性能优化 • 满足数据库性能要求 • 大io吞吐优化 • muti raft 性能优化 • 开源 • 系列技术分享
    0 码力 | 35 页 | 2.03 MB | 6 月前
    3
  • pdf文档 Curve核心组件之chunkserver

    Curve核心组件之ChunkServer 查日苏CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 openstack 和 k8s 网易内部线上无故障稳定运行500+天 • 已开源 • github主页: https://opencurve.github de封装了braft的Node,并 实现了braft的状态机,完成与raft的交 互。详细交互流程后面展开。 CopysetNodeManager负责管理 CopysetNode的创建、初始化、删除等 ChunkServer架构心跳模块有两方面的职责: 1、向MDS节点上报心跳,心跳中包括 ChunkServer本身的一些统计信息 2、解析MDS的心跳response中的raft ChunkserverID,token,chunkserver持久化这些信息,并在后续心跳上报时携带这些信息。ChunkServer核心模块-CopysetNode 写请求: 1. Client发送写请求给Leader ChunkServer 2. 请求封装,提交给Raft node 3. 本地持久化entry的同时发送给其他peer 4. 本地持久化log entry成功,并且有一个peer也落 盘成功,则commit
    0 码力 | 29 页 | 1.61 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。借鉴 partition和data partition。meta partition管理的元数据,data partition管理数据。meta partition管理inode和dentry信息。 创建一个文件系统时,如何初始化meta partition? master\cluster.go, chubaofs的文件系统使用volume的来表示,在创建一个文件系统的时候,会创建3个meta partition和10个data set 带来的copyset数量过多影响性能的问题。 3.3 copyset个数是否可以动态调整? 根据copyset个数是否可以动态调整,有两种实现。 一种是curve块存储方案,在集群初始化的时候,把所有的copyset创建好。采用这种方式, 可以采用hash的方式去确定inode的分片。比如说, , copysetid = (fsid + inodeid << shift ) % totalCopysetNum
    0 码力 | 19 页 | 383.29 KB | 6 月前
    3
  • pdf文档 CurveFS Client 概要设计

    判断inode结构中,对应请求[off, size]位置的空间是否有分配:如果未分配或只有部分分配空间,则调用空间分配器分配空间,并根据空间分配器返回结果,修改inode结构(包括file length); inode修改需要持久化到底层并修改本地cache; 调用curve client接口,写curve卷对应[offset,len] 数据。 (这里涉及到一个问题,是否从fuse下来的请求是4k对齐的,如果不是,那么这里还需要修改为read offset,len] 调用curve client写); 修改inode结构,如果上述区域存在先前未写过的区域,则需要去掉unwritten,具体方式根据inode结构而定;inode修改需要持久化到底层并修改本地cache;© XXX Page 6 of 11 read void (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t fuse_file_info *fi); 根据inode id 找到inode id 对应的inode 结构(从缓存或者metaserver) 根据to_set字段设置相应的attr字段,然后持久化到metaserver,并更新本地缓存。 access 可先不支持,返回ENOSYS rename void (*rename) (fuse_req_t req, fuse_ino_t parent
    0 码力 | 11 页 | 487.92 KB | 6 月前
    3
共 25 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
CurveFSChunkID持久Curve文件系统文件系统数据方案设计方案设计核心组件Client网易数帆管理数据管理一代新一代原生分布布式分布式存储要点chunkserverCopysetFS对应关系概要
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩