坚持思考,就会很酷
自制文件系统系列的开端,主要是因为绝大部分人用到了文件这个概念,但是总**是不以为然或者讳莫如深**。其实关键还是对其原理缺乏了解。总有朋友对 inode,文件的管理,权限等等有疑问,而这些只是最基础的概念。
自制文件系统的诞生理由就来源于此,目的是让大家认清楚,文件是怎么来的,权限是怎么来的,文件系统不过如此,朴实无华。
自制文件系统系列是一个完整的系列,从最开始教你看文件系统,介绍 FUSE 框架,最后做一个只读的文件系统,再做一个可写的分布式文件系统,是层层递进的。
[03篇] ,[04 篇] 介绍了原理并且附有完整的 Go 实现代码,可以让 0 基础的朋友,也能完整的制作出来,至于领悟多少,就看个人发挥了。
自制文件系统系列是典型的实战系列,着眼于动手,而不是纯粹的讲解。并且笔者也尽可能的把复杂的,非主干的知识剔除,目的是让你感受纯粹的文件系统,文件的概念。
你以为文件系统就这样了吗?不不不,还远远不够。
我们在 [04 篇 ] 里提到了分布式文件系统的架构,分为 Client,元数据中心,Server 这三大部分。
Client 一般会有哪些功能在里面?如下图:
客户端主要是承接用户请求,然后把请求分发到后端服务器,这里就涉及到怎么分发的策略了。
一般有 3 类分发策略:
轮询下发示意图:
思考问题:哈希策略是为了后端节点的请求均衡,那如果由于各种原因已经导致了不均衡,怎么办?
这时候就要提到重要话题了:均衡迁移,一般也叫做 balance ,目的就是为了每个节点的数量平衡。
由于 balance 迁移一般会跟正常业务抢占 IO 资源,所以这里会涉及到 Qos 的策略,并且 balance 的触发时机和力度都是必须要考虑的。
哈希均衡是一个分布式系统里重要的模块功能,关系到怎么才能合理利用分布式机器节点。balance 的一个重要考量是:迁移尽量少的数据,避免过多的资源浪费。
副本就是数据存储多个副本的意思,这样就避免单点问题,数据就算丢了一份,还有其他份,这样可以提高可靠性。多副本说起来简单,但其实有很有讲究,其中最关键就是一致性的问题。
怎么能保证写下去的数据是一致的?这里就关乎策略了,都写成功了才算成功,还是写部分成功了就报告成功?
上面分别对应两大类策略:WARO(Write ALl Read One),Quroum。这两大策略被统一在 CAP 理论里面,你要可用性高,那么必然要容忍一段时间的不一致。要数据完全一致,同一个副本组那么可用性就会拉跨。副本策略一般用 WRAO 是最简单的实现。
WRAO
Quroum
现在讲了副本的策略,那么组成副本的形式又有哪几种呢?
这个其实可以按照粒度来区分,一般有几种形式组成副本:
主机级别
磁盘级别
文件级别
纠删码也是数据冗余的一种策略,和副本不同,纠删码能够做到更高的可靠性和更低的冗余度。什么意思?
举个例子:
纠删码的优势够大,对吧?特别是在这个数据为王的时代。公有云厂商如果用更低的价格存储了更多的数据,那就有极大的竞争力。
俗话说的好,天下没有免费的早餐。纠删码也是如此,虽然有更高的可靠性,还有更低的冗余度。但是却带来更复杂的管理,还有更多的计算能力要求。
划重点:校验块是要用算法计算出来的,吃 CPU ,所以纠删码的节点,CPU 不能太差。因为写的时候要计算,修复读的时候要计算。注意,纠删码通常是用 Quroum 来提高可用性。
修复策略,这个跟冗余策略是关联的。
修复策略跟副本镜像级别有很大关联,如果是文件级别,那么修复粒度可以做到文件,如果是磁盘级别,那么修复的数据量就会响应的大了。
元数据中心一般有哪些功能?
顾名思义,就是元数据集中放置的地方,一般会放置一些用户的元数据,当然还有集群本身的元数据。这是一个非常重要的角色,但是由于过于重要,所以问题也常常会出现在这里,比如性能瓶颈,单点故障,那遇到这种情况,你会怎么做呢?
怎么解决单点故障?
划重点:以前说过的,使用冗余的节点是解决单点故障的唯一途径。 多节点随之而来的是一致性,所以一般用 Paxos,raft 或者其他一致性算法来管理管理多节点,形成一个对外有机的整体。
怎么解决性能问题?
性能这个就尴尬了,除非是支持线性扩容,否则这元数据中心必定是有性能极限的。所以一般通过固化集群规模,搭建多个集群来解决。
更极端一点?
是的,还有更极端的方式:取消元数据中心,设计一个无元数据的集群**。**
有项目实践的例子吗?
有,比如 Glusterfs ,就是一个典型的实现,最大的特点就是无元数据中心。
一般元数据中心还可以加上一个服务注册发现的功能,这样就能在集群组件扩容,缩容的时候从容面对。
集群拓扑的管理是元数据中心必须承担的责任。比如副本镜像的绑定关系,纠删码的绑定关系,存储节点的状态维护等等。
举个例子,A,B,C 这三台主机组成一个主机镜像。
192.168.56.1
192.168.56.2
192.168.56.3
这样写数据的时候如果选到了这组主机镜像,那么就只需要把请求发往这三台主机。
Server 一般有哪些功能?
存储服务端最核心的就是存储用户数据,管理磁盘空间,这是最核心的需求。
在这个模块什么是最重要的考虑?
稳定和安全。怎么把数据快速的存入,安全的持久化,快速的读出 是这个模块最核心的诉求。
所谓存储引擎就是最底层存储数据的模块,比如和文件,或者块设备打交道的模块。目的是掏空硬盘硬件的性能,跑出最高 iops,最高吞吐,最低时延 是这里的毕生追求。
这里的主角是 IO ,引擎模块就是要极限的压榨出 IO 的极限性能。
举个例子?
有,很多,比如 rocksdb 其实就可以作为一个很好的存储引擎模块,这个是一个 kv 存储引擎库,以前常用于 mongodb 的底层。当然了,现在 mongodb 已经改用 WiredTiger 这个存储引擎。
业务上增、删、改是常有的事。数据新增了要扩容,删除了自然要回收,这样才能达到重复利用空间的目的。怎么回收?很简单的,就是把删除的空间腾出来即可。如下,Compact 就是一个非常简单的方式。
磁盘坏盘是经常的,所以换盘的流程是 必须要设计的。这个是做到服务端(当然要客户端配合)。这个原则是什么呢?当然是数据安全。只有确认数据能够修复回来,那么就可以安全换盘。
这里只提到了一些最关键的模块,其实还有很多模块没提到,比如缓存策略,Qos 模块,任务调度策略等等。
文件系统远不止如此,但是后续的功能就不在这个模块讲了,这个系列就只狙击“文件”的概念。自制系列完结撒花,后续更新其他系列文章。坚持思考,就会很酷。
~完~
本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/x7WZmFULZ1AKXu6Kgw0P-Q
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。