常见分布式系统-终版 | 学习笔记

简介: 快速学习常见分布式系统-终版

开发者学堂课程【分布式文件存储系统技术及实现:常见分布式系统-终版 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/368/detail/4375


常见分布式系统-终版

内容介绍

一、概念

二、Ceph 系统

三、HDFS 系统

四、Pangu 系统

 

一、概念

首先是 HDFS ,这个系统的应用最广的分布式存储,另外一个是 Ceph ,这个系统是目前用于存储时比较常用的系统,这个系统有一定的限制性,第三个是 Pangu 系统,这个系统是阿里云自主研发的一套分布式存储系统。这个在阿里集团应用比较广泛,接下来会结合这个系统,介绍在实战过程中这个系统到底是怎么做的。除此之外,还有其他一些非常优秀的分布式系统,如 GPFS、Lustre、MooseFS 这些系统。

 

二、Ceph 系统

这个系统应用在快速存储设备是非常有名气的,首先从架构上看,可以看黄色的底层部分组成了 rathers 模块。它有两个模块,第一个是 osd 以及 Ceph monitor。

image.png

1.osd:

它是一个对象存储模块,这个里边从观察来讲给它任意一个 Disk 它会告诉你这个对象存在什么地方,然后告诉用户数据在哪里。

2.Ceph monitor:

对整个机群的一个监控系统,它会看 osd 的运行状态,比如某个 osd 当机的情况下 Ceph monitor 会发觉,然后发起数据复制,这样保证数据安全。接着再往上一层蓝色的部分是存储文件 mate 的 Mds 模块它主要用于存储文件的一些 made 信息,这样再 made 里面存储了这个文件当前是用哪些对象把它组织成一个文件的,这时候它基于下边的 moderns 模块就把自己的一些文件 maita 以及用户的数据,然后这样组织在一起,对外呈现了一个文件系统,最关键的一个是对用户的友好性比较好,再上层 Linux 内核模块,它开发的 kernel 存储,这个时候把 Ceph 里面的一个文件放在本地的一个文件系统,以及有自己的 Ceph 定位,这个时候可以很方便的用无状态的。相对来说这个架构里面没有中英节点,像 Ceph monitor 这样的节点虽然处于一个比较核心的地位,但是存储的量比较少,所以其存储的量比当前的一些集中式的存储架构要好很多,这个也是以后常见分布式系统的一个重要发展方向。

 

三、HDFS 系统

image.png

这个系统用得非常广泛,像美国的互联网和中国的互联网的一些公司都在普遍采用这个系统的开源,因此用户也比较熟悉。这个系统里边也主要分成三个模块,下面由一个蓝色的模块 Namenode ,这个里面存储了文件的 Metadata 信息,其中包括文件名和文件长度还有位置信息,中间部分黄色的叫做 Datanodes 这里面存储了用户的实际数据,在这里面 Namenode 会把数据切成几块后放在不同的 Datanodes 里面,这时候用户数据也分成多份,在用户数据出问题的时候保证数据还是可以用的,保证数据文件里面的数据还是可以用的。另外还有一部分是红色模块 Client 用户端,它在 HDFS 里面提供了文件接口,它的好处就是在实现系统的过程中简单,不容易出错,质量也可以保证,另外也可以看到在上图中在数据分布的特点上也表现出它可以将文件数据中的数据分配到不同的 rack 上去,也就是在机架锻炼中数据访问的一个保障。

 

四、Pangu 系统

这个系统的架构基本同 HDFS 相同,但也有它自己的特色。

第一点,在 HDFS 中 Namenode 是一个单点,这个时候如果 Namenode 出现单机的情况下,整个系统会不可用,而在 Pangu 文件系统中结合了 Paxos 协议去实现 Pangu mase ,这个时候只要不多于 mate Pangu 当机, Pangu 仍然可以对外提供服务。

另外 Pangu 里面有客户端的 Checksum 机制,前列路保护数据正确性,多份数据备份,同时还采用了高效的异常恢复机制,比如:某K次方坏了的情况下,这个时候,数据被丢失,可以在十分钟左右把其的数据全部恢复到以前的拷贝处。

另外,Pangu 的回收站也是在防止误删数据的一个有利的前提,类似于现在 windows 里边的回收站,可以随时把这个文件再恢复到以前的状态。第三点高可用高性能,这个就是 Pangu 现在非常有优势的一个点。

1.数据聚簇

其概念是这样的,把数据分成 paticion ,在存储数据的时候,每个 paticion  上的数据,都可以把他存储到某一些级上。在其调度的时候,可以让运行的进程离数据最近,这样,数据在传输过程中不得网络,可以保证非常高的吞吐量,流量控制和优先级是多个用户共同使用进行的一个前提,如果说有一些用户它的优先级比较高,这个时候要保证它的服务质量,这个用户可以设置让其高一点级,然后低一点级在高一点级流量比较低的时候可以把机群的利用率用上,这样可以极大的节约成本,其中每个用户有专用的机群。

2.热点和慢盘规避:

防止一些机器随时出现当机或热点这些提高性能的地方,否则在完成一些任务的时候总是有一些掺伪,导致一些任务完成不了的话,这样不断的积累会导致机群的整体利用率降低。

3.混合存储:

用高性能的设备作为缓存,然后利用低性能的设备作为永久存储,这样既实现了机群写路的高性能,同时也降低了存储的成本。

4.管理和维护:

第一点是增加了安全访问认证,用户在每次去请求用户数据的时候都会带着自己的认证信息去 Pangu ,Pangu 会将这个信息做到数据的隔离;

5.配额管理和审计:

Pangu 将所有的文件操作都记录到日志里面,供其查询,这样可以发现我们在用文件系统的时候是不是非常高效的,即可以发现用户是不是正确的运用了这个系统,将这个系统充分的应用起来。

6.磁盘自动上下线:

由于磁盘是非常容易坏的,所以需要一个自动的磁盘去管理信息。即使机群识别了一些节点,但在机群中有非常多的节点达到效果后存储容量降低,然后各种错误的评级也会增加。

7.热升级:

其保证了在应用有效更新的过程中 Pangu 无缝切换,用户不感知这样的水平。

8.动态扩容/缩容:

可以有效防止规划的时候投入非常多的硬件设备,保证了其非常快的发展,或者保证把以前一些机群下线掉。

9.在线监控离线分析:

这个系统可以有效的了解了系统内部正在发生的事情,同时可以在系统出现异常的时候,及时通知管理人员去处理,防止灾难的发生

相关文章
|
8月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
188 0
|
8月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
316 0
|
8月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
199 1
|
8月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
168 1
|
8月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
118 1
|
8月前
|
SpringCloudAlibaba Java 持续交付
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
801 1
|
8月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
1047 0
|
8月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
111 0
|
8月前
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
168 0
|
8月前
|
SQL SpringCloudAlibaba 中间件
SpringCloud Alibaba Seata处理分布式事务--学习笔记
SpringCloud Alibaba Seata处理分布式事务--学习笔记
83 0