自制文件系统 —— 05 总结:一切都为了狙击“文件”

发表于 3年以前  | 总阅读数:268 次

坚持思考,就会很酷

为什么会有这个系列?

自制文件系统系列的开端,主要是因为绝大部分人用到了文件这个概念,但是总**是不以为然或者讳莫如深**。其实关键还是对其原理缺乏了解。总有朋友对 inode,文件的管理,权限等等有疑问,而这些只是最基础的概念。

自制文件系统的诞生理由就来源于此,目的是让大家认清楚,文件是怎么来的,权限是怎么来的,文件系统不过如此,朴实无华。

自制 FS 系列的特点

自制文件系统系列是一个完整的系列,从最开始教你看文件系统,介绍 FUSE 框架,最后做一个只读的文件系统,再做一个可写的分布式文件系统,是层层递进的。

[03篇] ,[04 篇] 介绍了原理并且附有完整的 Go 实现代码,可以让 0 基础的朋友,也能完整的制作出来,至于领悟多少,就看个人发挥了。

自制文件系统系列是典型的实战系列,着眼于动手,而不是纯粹的讲解。并且笔者也尽可能的把复杂的,非主干的知识剔除,目的是让你感受纯粹的文件系统,文件的概念。

我们学到了什么 ?

  1. 亲自参与了文件的组织管理,权限的配置,内容的处理,加密存储,解密读取;
  2. 亲自参与了数据的跨节点传输;
  3. 亲手捕捉了来自内核的 IO 请求;

分布式存储远不止如此!

你以为文件系统就这样了吗?不不不,还远远不够。

我们在 [04 篇 ] 里提到了分布式文件系统的架构,分为 Client,元数据中心,Server 这三大部分

1 客户端

Client 一般会有哪些功能在里面?如下图:

哈希策略

客户端主要是承接用户请求,然后把请求分发到后端服务器,这里就涉及到怎么分发的策略了。

一般有 3 类分发策略:

  1. 轮询:请求依次分发,这样能保证每一个后段节点都能得到请求;
  2. 普通哈希:普通的哈希策略,这个考量一定的随机性,一般可以选定一个随机因子。比如时间戳,请求数等等;
  3. 一致性哈希:这个方式在扩缩容的场景有比较好的表现,能够保证在扩缩容的保证迁移量控制在一个常数级别;

轮询下发示意图:

思考问题:哈希策略是为了后端节点的请求均衡,那如果由于各种原因已经导致了不均衡,怎么办?

这时候就要提到重要话题了:均衡迁移,一般也叫做 balance ,目的就是为了每个节点的数量平衡。

由于 balance 迁移一般会跟正常业务抢占 IO 资源,所以这里会涉及到 Qos 的策略,并且 balance 的触发时机和力度都是必须要考虑的。

哈希均衡是一个分布式系统里重要的模块功能,关系到怎么才能合理利用分布式机器节点。balance 的一个重要考量是:迁移尽量少的数据,避免过多的资源浪费。

副本策略

副本就是数据存储多个副本的意思,这样就避免单点问题,数据就算丢了一份,还有其他份,这样可以提高可靠性。多副本说起来简单,但其实有很有讲究,其中最关键就是一致性的问题

怎么能保证写下去的数据是一致的?这里就关乎策略了,都写成功了才算成功,还是写部分成功了就报告成功?

上面分别对应两大类策略:WARO(Write ALl Read One),Quroum。这两大策略被统一在 CAP 理论里面,你要可用性高,那么必然要容忍一段时间的不一致。要数据完全一致,同一个副本组那么可用性就会拉跨。副本策略一般用 WRAO 是最简单的实现。

WRAO

Quroum

现在讲了副本的策略,那么组成副本的形式又有哪几种呢?

这个其实可以按照粒度来区分,一般有几种形式组成副本:

  1. 文件级别
  2. 磁盘级别
  3. 主机级别

主机级别

  • 优点:这个简单了,把多台主机组成副本镜像,主机的数据完全一致,互成镜像;
  • 缺点:修复的粒度太大,扩容、缩容的粒度必须是副本数倍数的主机数,而且要是同构的机器,这个给资源准备提出了高要求;

磁盘级别

  • 优点:磁盘镜像(这个跟 raid 1 很像,区别在分布式上)实现比主机级别的复杂点,这个是把多个磁盘组成副本镜像组。这个扩容、缩容的粒度就可以做到磁盘级别;
  • 缺点:实现自然是比主机镜像要复杂,修复粒度还是较大,副本粒度还可以再做小一点;

文件级别

  • 优点:把多个文件组成副本镜像组,副本粒度更小,调度更灵活。并且可以实现全局打散,让一块磁盘和所有的主机产生副本关系。这样在修复盘的时候,效率最高;
  • 缺点:但同样的,粒度越小实现越复杂,元数据膨胀,越难管理;

纠删码策略

纠删码也是数据冗余的一种策略,和副本不同,纠删码能够做到更高的可靠性和更低的冗余度。什么意思?

举个例子:

  • 在 3 副本系统中,1 TiB 的用户数据,需要 3 TiB 的物理空间。只能容许一个副本节点损坏;
  • 在 6+3 的纠删码系统中,1T 的用户数据,只需要 1.5 TiB 的空间,能够容许 3 个节点损坏;

纠删码的优势够大,对吧?特别是在这个数据为王的时代。公有云厂商如果用更低的价格存储了更多的数据,那就有极大的竞争力。

俗话说的好,天下没有免费的早餐。纠删码也是如此,虽然有更高的可靠性,还有更低的冗余度。但是却带来更复杂的管理,还有更多的计算能力要求。

划重点:校验块是要用算法计算出来的,吃 CPU ,所以纠删码的节点,CPU 不能太差。因为写的时候要计算,修复读的时候要计算。注意,纠删码通常是用 Quroum 来提高可用性。

修复策略

修复策略,这个跟冗余策略是关联的。

  • 副本镜像策略的话,修复就是数据拷贝成镜像即可,把数据源拷贝到目的文件;
  • 纠删码的修复就是通过算法计算出缺失的数据块,然后写到目的地(这里是要吃计算能力的);

修复策略跟副本镜像级别有很大关联,如果是文件级别,那么修复粒度可以做到文件,如果是磁盘级别,那么修复的数据量就会响应的大了。

2 元数据中心

元数据中心一般有哪些功能?

顾名思义,就是元数据集中放置的地方,一般会放置一些用户的元数据,当然还有集群本身的元数据。这是一个非常重要的角色,但是由于过于重要,所以问题也常常会出现在这里,比如性能瓶颈,单点故障,那遇到这种情况,你会怎么做呢?

怎么解决单点故障

划重点:以前说过的,使用冗余的节点是解决单点故障的唯一途径。 多节点随之而来的是一致性,所以一般用 Paxos,raft 或者其他一致性算法来管理管理多节点,形成一个对外有机的整体。

怎么解决性能问题

性能这个就尴尬了,除非是支持线性扩容,否则这元数据中心必定是有性能极限的。所以一般通过固化集群规模,搭建多个集群来解决。

更极端一点

是的,还有更极端的方式:取消元数据中心,设计一个无元数据的集群**。**

有项目实践的例子吗?

有,比如 Glusterfs ,就是一个典型的实现,最大的特点就是无元数据中心。

服务注册发现

一般元数据中心还可以加上一个服务注册发现的功能,这样就能在集群组件扩容,缩容的时候从容面对。

集群拓扑管理

集群拓扑的管理是元数据中心必须承担的责任。比如副本镜像的绑定关系,纠删码的绑定关系,存储节点的状态维护等等。

举个例子,A,B,C 这三台主机组成一个主机镜像。

192.168.56.1
192.168.56.2
192.168.56.3

这样写数据的时候如果选到了这组主机镜像,那么就只需要把请求发往这三台主机。

3 服务端

Server 一般有哪些功能?

存储服务端最核心的就是存储用户数据,管理磁盘空间,这是最核心的需求。

在这个模块什么是最重要的考虑?

稳定和安全。怎么把数据快速的存入,安全的持久化,快速的读出 是这个模块最核心的诉求。

存储引擎

所谓存储引擎就是最底层存储数据的模块,比如和文件,或者块设备打交道的模块。目的是掏空硬盘硬件的性能,跑出最高 iops,最高吞吐,最低时延 是这里的毕生追求。

这里的主角是 IO ,引擎模块就是要极限的压榨出 IO 的极限性能。

举个例子?

有,很多,比如 rocksdb 其实就可以作为一个很好的存储引擎模块,这个是一个 kv 存储引擎库,以前常用于 mongodb 的底层。当然了,现在 mongodb 已经改用 WiredTiger 这个存储引擎。

空间回收策略

业务上增、删、改是常有的事。数据新增了要扩容,删除了自然要回收,这样才能达到重复利用空间的目的。怎么回收?很简单的,就是把删除的空间腾出来即可。如下,Compact 就是一个非常简单的方式。

磁盘坏盘策略

磁盘坏盘是经常的,所以换盘的流程是 必须要设计的。这个是做到服务端(当然要客户端配合)。这个原则是什么呢?当然是数据安全。只有确认数据能够修复回来,那么就可以安全换盘。

这里只提到了一些最关键的模块,其实还有很多模块没提到,比如缓存策略,Qos 模块,任务调度策略等等。

自制系列对哪些人适用?

  1. 做存储的,对象存储,块存储,文件存储等从业人员;
  2. Linux 后端开发人员;
  3. 大学生,正在理解“文件”的概念;
  4. Go 开发人员,对存储感兴趣的开发人员;

总结

  1. 自制文件系统系列通过介绍文件系统,框架原理介绍,动手实践形成一个完整的系列文章,让人从 0 开始感受了一个文件系统的诞生;
  2. 文件系统内部也是分布式的,客户端和核心功能是协议解析,请求均衡转发,冗余策略(副本策略、纠删码策略),修复策略,等等。服务端的核心模块是存储引擎(单机存储),磁盘管理;
  3. 希望能让大家理解到一个观点:“文件”就是这样朴实无华

后记

文件系统远不止如此,但是后续的功能就不在这个模块讲了,这个系列就只狙击“文件”的概念。自制系列完结撒花,后续更新其他系列文章。坚持思考,就会很酷

~完~

本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/x7WZmFULZ1AKXu6Kgw0P-Q

 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:1年以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:1年以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:1年以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:1年以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:1年以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:1年以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:1年以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:1年以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:1年以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:1年以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:1年以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:1年以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:1年以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:1年以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:1年以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:1年以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:1年以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:1年以前  |  398次阅读  |  详细内容 »
 相关文章
Android插件化方案 5年以前  |  237231次阅读
vscode超好用的代码书签插件Bookmarks 2年以前  |  8065次阅读
 目录