
# dfs.datanode.data.dir中定义的磁盘数量等于dfs.datanode.failed.volumes.tolerated的值时，DataNode启动失败
#### 问题描述
当"dfs.datanode.data.dir"（DataNode在本地文件系统中存储块的位置。）中定义的磁盘数量等于"dfs.datanode.failed.volumes.tolerated"（DataNode停止提供服务前允许失败的卷数）的值时，DataNode启动失败。
#### 处理步骤
默认情况下，单个磁盘的故障将会引起HDFS DataNode进程关闭，导致NameNode为每一个存在DataNode上的block调度额外的副本，在没有故障的磁盘中引起不必要的块复制。
为了防止此情况，用户可以通过配置DataNodes来承受dfs.data.dir目录的故障。
1. 登录Manager，选择"集群 \> 服务 \> HDFS \> 配置 \> 全部配置"。
2. 搜索参数"dfs.datanode.failed.volumes.tolerated"。 "dfs.datanode.failed.volumes.tolerated"：表示DataNode停止提供服务前允许失败的卷数。默认情况下，必须至少有一个有效卷。值-1表示有效卷的最小值是1。大于等于0的值表示允许失败的卷数。默认值"-1"，取值范围：-1\~DataNode上配置的磁盘卷数。
   例如：如果当前该参数值为3，DataNode只有在4个或者更多个目录故障之后才会出现故障。该值会影响到DataNode的启动。
   如果想要DataNode不出现故障，配置的"dfs.datanode.failed.volumes.tolerated"一定要小于所配置的卷数，也可以将"dfs.datanode.failed.volumes.tolerated"设置成-1，相当于设置该值为n-1（n为卷数），那样DataNode就不会出现启动失败。
   
3. 修改完成后保存，并重启配置过期的服务或实例。
 
