本帖最后由 999的demo 于 2024-6-24 00:39 编辑
EDS产品架构 EDS(EnterpriseDistributed Storage,企业级分布式存储)采用分布式存储架构,提供分布式存储服务,在统一平台下提供块、文件、对象三种存储服务。 EDS软件整理架构PGW负责存储协议的接入,每个节点均有负责协议接入的网关 MDS负责保存文件系统的元数据,管理目录结构;3.x版本在开源基础上进行优化,在510版本直接重构。 OSD负责存储数据,包括数据的复制、故障重建、扩容后再均衡,采用基于日志的强一致性协议。 MON监控服务 负责监控整个集群的运行状态,维护展示集群状态的各种图表,采用paxos强一致性协议(分布式一致性协议的一种) 分布式缓存层 phxTire:基于NVMe SSD的分层,缓存数据,提升数据访问吞吐 phxCache:持久化缓存小文件/对象,聚合后写回到数据存储层;均采用raft强一致性协议(基于日志的一致性算法) 分布式数据库——主要解决小文件合并问题 phxKV对接MDS(存储文件元数据),降低元数据存储时延,保存小文件/对象合并的索引;采用raft强一致性协议 EDS读写流程将完整条带数据写入到分部署缓存phxTire,将小文件/对象写入到phxCache EDS写入流程 EDS读取流程 文件及对象存储功能特性 小文件合并从EDS3.0.5开始支持小文件合并。默认合并的大小为4M,可以更改 小文件的痛点 存储空间利用率大于数据实际大小,写放大严重(个对象至少会分配384K的空间,如果数据很小的话也会占用384K的空间) 系统缓存大量小文件元数导致内存耗尽 小文件导致数据重建速度缓慢 小文件合并写入原理 通过phxCache将多个小文件合并,当数据大小达到设置的阈值时会将该数据存放到OSD中;而小文件在合并之后的大文件中的位置(元数据)写入到了phxKV中去。 可以减少底层索引数量(底层元数据数量) 小文件合并读取原理 从phxKV读取文件元数据,然后找到该小文件在大文件中的位置和大文件所对应的条带,从中读取小文件。 EC纠错码(n+m)EC算法是数据冗余的一种技术,类似RAID5使用校验位来实现冗余 EC和RAID5的区别 EC可以是跨节点的,EC校验的硬件单位可以是单个磁盘、一组磁盘、1个主机或一组主机十分灵活;而RAID5一般是由节点内的若干块盘组成,只能容忍硬盘故障,不能容忍节点故障。 EC和副本的区别 EC的故障恢复比副本更复杂,副本直接再copy一份即可 EC比副本的优势是成本,例如相比于3副本EC在保证同样可靠性的同时,并不需要保存3份数据 ECn+m的概念 N就是存储的数据位,M就是存储的校验位;EC4+2就表示4位存数据,2位存校验,即可用存储为2/3 EC4+2的具体分片原理,如下图 chunk:将数据进行分片,如图分成4个片d1、d2、d3、d4 encode:根据4个数据片,生成2个校验片,这样就形成4+2的EC数据片 EC4+2允许这6个数据片任意损坏2个假如损坏了d2和c1,如下图 decode:通过d1、d3、d4、c2,根据EC的计算,可以算出原始的数据块 re-encode:将原始的数据块分成d1、d2、d3、d4,再次计算出c1、c2 replace:将损坏的数据块d2、c1进行替换掉即可 EC4+2:1和EC4+2的区别 EC 4+2:1(故障域为硬盘组) 每个数据带包括4个数据块和2个编码块,允许任意2块磁盘故障而不影响数据完整性或任意1个节点故障而不影响数据完整性,该策略最少需要3个节点数(3个故障域) EC 4+2(故障域为主机节点) 4+2指的是每个数据带包括4个数据块和2个编码块,允许任意2块磁盘故障而不影响数据完整性或任意2个节点故障而不影响数据完整性,该策略至少需要6个节点数(6个故障域) EDS故障域EC的单位可以是一组磁盘或单个主机,这个单位就可以简单理解为故障域 EDS有两种故障域,半主机故障域和整主机故障域 整机故障域(一个主机就是一个故障域) 对于EC4+2来说,需要EDS节点数大于等于6,此时每个主机节点就是一个故障域 对于EC8+2来说,需要EDS节点数大于等于10,此时每个主机节点就是一个故障域 半主机故障域(一个主机就是两个故障域) 由于EC4+2需要6个故障域,当使用3台主机做EC4+2时,一个主机就为两个故障域,此时就称为半主机故障域 由于EC8+2需要10个故障域,当使用5台主机做EC8+2时,一个主机就为两个故障域,此时就称为半主机故障域 故障域内SSD和HDD之间的关系 单个SSD最多可配置10个HDD 在3x版本中,SSD和HDD是以磁盘组的形式存在的,因此添加ssd必须添加hdd 在5x版本中,SSD不在故障域内,独立出来了,因此在扩SSD时可以单独扩,不受故障域影响 磁盘扩容 由于数据是平分到每个故障域内的,因此扩容必须保障每个故障域内的磁盘是一致的(如果不一致,遵循最小短板原理);在故障域内的数据又是平分到每个磁盘上的,所以磁盘的容量也需要一致(如果不一致,遵循最小短板原理) 因此在半主机故障域时,每个主机内有两个故障域,扩容磁盘时SDD和HDD需要是双数;在单主机故障域时,扩容的磁盘可以是单数 文件快照文件存储提供了基于目录的快照,支持生成用户所需的指定目录在某个时间点上的一致性映像,在不中断正常业务的前提下,快速(秒级)得到与源文件系统一致的数据副本。副本生成之后立即可用,并且对副本的读操作不再影响源文件系统中的数据。 通过快照技术可以解决如在线备份、数据分析、应用测试等难题。 快照原理(采用COW写时复制技术实现) 创建快照: 创建快照以后,如果源卷的数据发生了变化,那么快照系统会首先将原始数据拷贝到快照卷上对应的数据块中,然后再对源卷进行改写 删除快照: 删除快照时就直接删除对应的快照LUN就可以了 对象多版本与快照相对应,是对象存储的数据保护技术 开启对象多版本功能后,在同一个资源中可以存储相同的文件(即文件名相同,但是内容不同的就可以理解为多版本),在数据被误删后,能够通过历史版本来快速恢复 对象版本的控制 在下载时需要指定版本下载 删除对象不会彻底删除,会将对象存放在已删除列表里 注意事项 如果开启小对象合并功能,多版本功能是无法使用的 WROM
WORM(Write One ReadMany)特性利用软件机制模拟传统光盘归档功能,WORM能够将文件设置为写保护状态,处于此状态的文件只能被读取,不能被更改、删除或重命名,从而有效防止数据被错误或恶意地删除或篡改 特权删除 允许具有CIFS共享管理员权限的用户删除处于保护期内的文件(但是仍然不能修改文件内容) 注意事项 同一个共享目录不支持WROM与回收站同时使用 非空目录不支持设置WROM 文件WROM功能开启后不支持关闭 文件防病毒仅对CIFS生效 主要应用于文件共享场景,共享存储可以提供安全能力,能够检测和处置写入的病毒,从而提升整体安全能力。 实现原理 通过CIFS协议上传到EDS后,都会立即触发病毒异步扫描。存储会根据扫描结果自动处置可疑文件,可疑文件对客户端可见,但无法访问。 高安全模式:打开未扫描完成的文件时会等待扫描完成才能打开。客户端不会访问到恶意文件,该模式对性能影响较大,适用于冷数据归档场景; 高性能模式:允许打开未扫描完成的文件,后台会同步进行病毒扫描。客户端可能会访问到恶意文件,该模式对性能影响较小,适用于通用场景。 |