admin管理员组

文章数量:1586763

文章目录

  • 前言
  • 磁盘损坏的定义
  • HDFS(存储系统)的磁盘检测
  • YARN(计算系统)的磁盘检测
    • 附注:YARN AsyncDispatcher的内部细节流程

前言


在分布式集群运行环境中,磁盘损坏是极为司空见惯的事情。损坏的一个直接影响是系统少了一个可用空间,同时也意味着上面存储数据的损坏。而对于这样磁盘的损坏,它分别对于存储系统和计算系统的影响并不相同。同样的,对于坏盘和处理逻辑,也未必是相同的。本文,笔者来聊聊Hadoop中HDFS,YARN模块分别对于此的处理过程。

磁盘损坏的定义


当我们说一个磁盘损坏了,我们的定义标准是如何的呢?
我们先暂不考虑硬件层面的检测标准,光从软件层面来考虑的话,我们一般有以下这样的标准:
1)文件无法被创建
2)已有文件无法被访问

基于这两点,系统一般会采用在目标目录下写一个简单的文件数据,然后尝试是否能获取文件的状态来进行基本的测试。

OK,下面我们进入本文的主题内容。

HDFS(存储系统)的磁盘检测


相比于计算系统,存储系统会更大规模的使用到磁盘作为数据存储的介质。当有磁盘损坏时,系统理性具有更高的敏感性,及时将上面丢失的数据replicate到其它节点上。

以此为基本原则,HDFS采用了一种异常触发的机制,当遇到以下读写数据异常时,存储节点会触发一次磁盘检测逻辑:
1)客户端读写数据抛出异常。
2)系统进行常规数据完整性检查行为时,发生读数据异常。
3)物理数据文件与系统文件元数据信息不一致的情况

以上3类情况并不是一定说是磁盘损坏导致,只是说大概率是此原因所致。

但系统确实检测出磁盘为坏盘时,它将会把盘移

本文标签: 分布式节点系统