
# 更改Kafka Broker的存储目录
#### 操作场景
增加Broker的存储目录时，MRS集群管理员需要在Manager中修改Broker的存储目录（由参数"log.dirs"控制），以保证Kafka正常工作，新创建的主题分区将在分区最少的目录中生成。
该操作适用于以下场景：
- 更改Broker角色的存储目录，所有Broker实例的存储目录将同步修改。
- 更改Broker单个实例的存储目录，只对单个实例生效，其他节点Broker实例存储目录不变。
 
#### 约束与限制
由于Kafka不感知磁盘容量，建议各Broker实例配置的磁盘个数和容量保持一致。
#### 对系统的影响
- 更改Broker角色的存储目录需要重新启动服务，服务重启时无法访问。
- 更改Broker单个实例的存储目录需要重新启动实例，该节点Broker实例重启时无法提供服务。
- 服务参数配置如果使用旧的存储目录，需要更新为新目录。
 
#### 前提条件
- 在各个数据节点准备并安装好新磁盘，并格式化磁盘。
- 已安装好Kafka客户端。
- 更改Broker单个实例的存储目录时，保持活动的Broker实例数必须大于创建主题时指定的备份数。
 
#### 更改Kafka角色的存储目录
1. 登录MRS集群Manager。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> Kafka \> 实例"，查看并记录Kafka角色的业务IP地址。
3. 以**root** 用户登录到安装Kafka服务的各个数据节点中，执行如下操作。
   
   1. 创建目标目录。 例如目标目录为"${BIGDATA_DATA_HOME}/kafka/data2"，则执行以下命令：
      ```
      mkdir ${BIGDATA_DATA_HOME}/kafka/data2
      ```
      
   
   2. 挂载目录到新磁盘。 例如挂载"${BIGDATA_DATA_HOME}/kafka/data2"到新磁盘。
      
   
   3. 修改新目录的权限。 例如新目录路径为"${BIGDATA_DATA_HOME}/kafka/data2"，则执行以下命令：
      ```
      chmod 700 ${BIGDATA_DATA_HOME}/kafka/data2 -R
      ```
      ```
      chown omm:wheel ${BIGDATA_DATA_HOME}/kafka/data2 -R
      ```
      
   
   
   
   
4. 在MRS集群Manager页面，选择"集群 \> 服务 \> Kafka \> 配置 \> 全部配置"。
5. 添加新目录到"log.dirs"的默认值后面。 
   搜索"log.dirs"参数，将新目录添加到配置项"log.dirs"的默认值后面，多个目录使用逗号分隔。
   例如"${BIGDATA_DATA_HOME}/kafka/data1/kafka-logs,${BIGDATA_DATA_HOME}/kafka/data2/kafka-logs"。
   
   
6. 单击"保存"，并单击"确定"。界面提示"操作成功"，单击"完成"。
7. 选择"集群 \> 服务 \> Kafka ，右上角选择"更多 \> 重启服务"，重启Kafka服务后生效。
 
#### 更改Kafka单个实例的存储目录
1. 登录MRS集群Manager。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> Kafka \> 实例"，查看并记录待操作的Broker角色的业务IP地址。
3. 以**root** 用户登录到Broker节点，执行如下操作。
   
   1. 创建目标目录。 例如目标目录为"${BIGDATA_DATA_HOME}/kafka/data2"，则执行以下命令：
      ```
      mkdir ${BIGDATA_DATA_HOME}/kafka/data2
      ```
      
   
   2. 挂载目录到新磁盘。 例如挂载"${BIGDATA_DATA_HOME}/kafka/data2"到新磁盘。
      
   
   3. 修改新目录的权限。 例如新目录路径为"${BIGDATA_DATA_HOME}/kafka/data2"，则执行以下命令：
      ```
      chmod 700 ${BIGDATA_DATA_HOME}/kafka/data2 -R
      ```
      ```
      chown omm:wheel ${BIGDATA_DATA_HOME}/kafka/data2 -R
      ```
      
   
   
   
   
4. 登录FusionInsight Manager，选择"集群 \> 服务 \> Kafka \> 实例"。
5. 单击待操作的Broker实例名称，选择"实例配置"。
6. 搜索"log.dirs"参数，将新目录添加到配置项"log.dirs"的默认值后面，多个目录使用逗号分隔。 
   例如"${BIGDATA_DATA_HOME}/kafka/data1/kafka-logs,${BIGDATA_DATA_HOME}/kafka/data2/kafka-logs"。
   
   
7. 单击"保存"，并单击"确定"，界面提示"操作成功"，单击"完成"。
8. 在Broker实例概览页面选择"更多 \> 重启实例"，重启Broker实例后生效。
 
#### 相关文档
- 如果MRS集群上报ALM-38001告警，请参考[ALM-38001 Kafka磁盘容量不足](https://support.huaweicloud.com/usermanual-mrs/ALM-38001.html)进行处理。
- 如果MRS集群上报ALM-38009告警，请参考[ALM-38009 Broker磁盘IO繁忙](https://support.huaweicloud.com/usermanual-mrs/ALM-38009.html)进行处理。
 
